{"version":3,"file":"static/js/main.713b0dd5.js","mappings":"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GACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,GACN,EACAA,EACA,CAAC,GAAI,IACL,EACAA,EACA,CAAC,IAAK,IACN,GACAA,EACA,CAAC,IAAK,GACN,EACAA,EACA,CAAC,EAAG,GACJA,EACA,CAAC,EAAG,GACJ,EACA,EACA,GACAA,EACA,CAAC,IAAK,IACNA,EACA,CAAC,GAAI,MAEL79B,KAAMomC,EAAE,CACRvqB,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJ,EACAA,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJgiB,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,MAENvM,MAAO8U,EAAE,CACT,EACA,EACA,EACA,EACA,EACA,GACAvI,EACA,CAAC,EAAG,GACJ,GACA,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,GAAI,GACL,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,KAEJ/e,KAAMsnB,EAAE,CACRvqB,EACA,CAAC,EAAG,KACJA,EACA,CAAC,EAAG,GACJgiB,EACA,CAAC,EAAG,GACJA,EACA,CAAC,EAAG,GACJhiB,EACA,CAAC,EAAG,MAEJqsH,KAAM9hG,EAAE,CACR,EACA,EACA,EACA,GACAvqB,EACA,CAAC,EAAG,GAAI,GACRA,EACA,CAAC,GAAI,EAAG,GACRgiB,EACA,CAAC,GAAI,IACL,GACA,GACA,GACA,GACAA,EACA,CAAC,GAAI,IACL,GACAA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,GACN,GACAA,EACA,CAAC,GAAI,IACL,GACA,GACAA,EACA,CAAC,GAAI,IACL,GACAhiB,EACA,CAAC,EAAG,GACJ,GACA,GACA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","sources":["../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@mui/icons-material/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/react-swipeable-views-core/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/extends.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/react-swipeable-views/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.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/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@icons/material/CheckIcon.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/@mui/icons-material/AccessTime.js","../node_modules/@mui/icons-material/AddBox.js","../node_modules/@mui/icons-material/AddPhotoAlternate.js","../node_modules/@mui/icons-material/AdminPanelSettings.js","../node_modules/@mui/icons-material/Apartment.js","../node_modules/@mui/icons-material/ArrowBack.js","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowForward.js","../node_modules/@mui/icons-material/ArrowForwardIos.js","../node_modules/@mui/icons-material/ArrowRight.js","../node_modules/@mui/icons-material/Article.js","../node_modules/@mui/icons-material/Ballot.js","../node_modules/@mui/icons-material/BatteryCharging20.js","../node_modules/@mui/icons-material/BatteryCharging30.js","../node_modules/@mui/icons-material/BatteryCharging60.js","../node_modules/@mui/icons-material/BatteryCharging90.js","../node_modules/@mui/icons-material/Bluetooth.js","../node_modules/@mui/icons-material/CalendarMonth.js","../node_modules/@mui/icons-material/CalendarToday.js","../node_modules/@mui/icons-material/Cancel.js","../node_modules/@mui/icons-material/Chat.js","../node_modules/@mui/icons-material/CheckCircle.js","../node_modules/@mui/icons-material/ChevronLeft.js","../node_modules/@mui/icons-material/ChevronRight.js","../node_modules/@mui/icons-material/Circle.js","../node_modules/@mui/icons-material/Clear.js","../node_modules/@mui/icons-material/Computer.js","../node_modules/@mui/icons-material/ContentCopy.js","../node_modules/@mui/icons-material/Dashboard.js","../node_modules/@mui/icons-material/DashboardCustomize.js","../node_modules/@mui/icons-material/DateRange.js","../node_modules/@mui/icons-material/Delete.js","../node_modules/@mui/icons-material/DesktopMac.js","../node_modules/@mui/icons-material/DeviceUnknown.js","../node_modules/@mui/icons-material/DevicesOther.js","../node_modules/@mui/icons-material/DoNotDisturbOnTotalSilence.js","../node_modules/@mui/icons-material/Downloading.js","../node_modules/@mui/icons-material/Edit.js","../node_modules/@mui/icons-material/EmojiEmotions.js","../node_modules/@mui/icons-material/Equalizer.js","../node_modules/@mui/icons-material/ExpandMore.js","../node_modules/@mui/icons-material/Forum.js","../node_modules/@mui/icons-material/Fullscreen.js","../node_modules/@mui/icons-material/FullscreenExit.js","../node_modules/@mui/icons-material/Gavel.js","../node_modules/@mui/icons-material/Group.js","../node_modules/@mui/icons-material/GroupAdd.js","../node_modules/@mui/icons-material/Groups.js","../node_modules/@mui/icons-material/Headphones.js","../node_modules/@mui/icons-material/Help.js","../node_modules/@mui/icons-material/History.js","../node_modules/@mui/icons-material/Home.js","../node_modules/@mui/icons-material/Info.js","../node_modules/@mui/icons-material/KeyboardBackspace.js","../node_modules/@mui/icons-material/Label.js","../node_modules/@mui/icons-material/Language.js","../node_modules/@mui/icons-material/LibraryAddCheck.js","../node_modules/@mui/icons-material/LinkedIn.js","../node_modules/@mui/icons-material/LocalOffer.js","../node_modules/@mui/icons-material/LocationOff.js","../node_modules/@mui/icons-material/LocationOn.js","../node_modules/@mui/icons-material/Logout.js","../node_modules/@mui/icons-material/MarkChatRead.js","../node_modules/@mui/icons-material/Menu.js","../node_modules/@mui/icons-material/MoreVert.js","../node_modules/@mui/icons-material/MoveDown.js","../node_modules/@mui/icons-material/Palette.js","../node_modules/@mui/icons-material/People.js","../node_modules/@mui/icons-material/PermDeviceInformation.js","../node_modules/@mui/icons-material/Person.js","../node_modules/@mui/icons-material/PhoneAndroid.js","../node_modules/@mui/icons-material/PhoneIphone.js","../node_modules/@mui/icons-material/Place.js","../node_modules/@mui/icons-material/Report.js","../node_modules/@mui/icons-material/Router.js","../node_modules/@mui/icons-material/Search.js","../node_modules/@mui/icons-material/Settings.js","../node_modules/@mui/icons-material/SignalWifi3Bar.js","../node_modules/@mui/icons-material/SignalWifiBad.js","../node_modules/@mui/icons-material/SignalWifiConnectedNoInternet4.js","../node_modules/@mui/icons-material/SupportAgent.js","../node_modules/@mui/icons-material/Tablet.js","../node_modules/@mui/icons-material/TabletAndroid.js","../node_modules/@mui/icons-material/Token.js","../node_modules/@mui/icons-material/Tv.js","../node_modules/@mui/icons-material/Twitter.js","../node_modules/@mui/icons-material/Update.js","../node_modules/@mui/icons-material/ViewList.js","../node_modules/@mui/icons-material/ViewModule.js","../node_modules/@mui/icons-material/Visibility.js","../node_modules/@mui/icons-material/VisibilityOff.js","../node_modules/@mui/icons-material/Watch.js","../node_modules/@mui/icons-material/WhatsApp.js","../node_modules/@mui/icons-material/WorkHistory.js","../node_modules/@mui/icons-material/WorkOff.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/node_modules/@mui/base/className/ClassNameGenerator.js","../node_modules/@mui/material/node_modules/@mui/base/composeClasses/composeClasses.js","../node_modules/@mui/material/node_modules/@mui/base/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/material/node_modules/@mui/base/generateUtilityClasses/generateUtilityClasses.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/material/node_modules/@mui/styled-engine/index.js","../node_modules/@mui/material/node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/material/node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/material/node_modules/@mui/system/esm/compose.js","../node_modules/@mui/material/node_modules/@mui/system/esm/borders.js","../node_modules/@mui/material/node_modules/@mui/system/esm/display.js","../node_modules/@mui/material/node_modules/@mui/system/esm/flexbox.js","../node_modules/@mui/material/node_modules/@mui/system/esm/grid.js","../node_modules/@mui/material/node_modules/@mui/system/esm/positions.js","../node_modules/@mui/material/node_modules/@mui/system/esm/palette.js","../node_modules/@mui/material/node_modules/@mui/system/esm/shadows.js","../node_modules/@mui/material/node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/material/node_modules/@mui/system/esm/typography.js","../node_modules/@mui/material/node_modules/@mui/system/esm/getThemeValue.js","../node_modules/@mui/material/node_modules/@mui/system/esm/merge.js","../node_modules/@mui/material/node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/material/node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/material/node_modules/@mui/system/esm/style.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useThemeWithoutDefault.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/createMixins.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/node_modules/@mui/system/esm/propsToClassKey.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType.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/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/private-theming/useTheme/ThemeContext.js","../node_modules/@mui/private-theming/useTheme/useTheme.js","../node_modules/@mui/utils/esm/capitalize.js","../node_modules/@mui/utils/esm/createChainedFunction.js","../node_modules/@mui/utils/esm/debounce.js","../node_modules/@mui/utils/esm/deepmerge.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/ownerDocument.js","../node_modules/@mui/utils/esm/ownerWindow.js","../node_modules/@mui/utils/esm/resolveProps.js","../node_modules/@mui/utils/esm/setRef.js","../node_modules/@mui/utils/esm/useControlled.js","../node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef.js","../node_modules/@mui/utils/esm/useId.js","../node_modules/@mui/utils/esm/useIsFocusVisible.js","../node_modules/attr-accept/dist/es/index.js","../node_modules/classnames/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/css-unit-converter/index.js","../node_modules/decimal.js-light/decimal.js","../node_modules/eventemitter3/index.js","../node_modules/fast-equals/src/utils.ts","../node_modules/fast-equals/src/comparator.ts","../node_modules/fast-equals/src/index.ts","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/invariant/browser.js","../node_modules/lodash.debounce/index.js","../node_modules/lodash.throttle/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/_baseExtremum.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseLt.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/constant.js","../node_modules/lodash/debounce.js","../node_modules/lodash/eq.js","../node_modules/lodash/every.js","../node_modules/lodash/find.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/flatMap.js","../node_modules/lodash/forOwn.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBoolean.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isMap.js","../node_modules/lodash/isNaN.js","../node_modules/lodash/isNil.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/isSet.js","../node_modules/lodash/isString.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/last.js","../node_modules/lodash/map.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/max.js","../node_modules/lodash/memoize.js","../node_modules/lodash/min.js","../node_modules/lodash/noop.js","../node_modules/lodash/now.js","../node_modules/lodash/property.js","../node_modules/lodash/range.js","../node_modules/lodash/some.js","../node_modules/lodash/sortBy.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/throttle.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/uniqBy.js","../node_modules/lodash/upperFirst.js","../node_modules/moment-timezone/index.js","../node_modules/moment-timezone/moment-timezone.js","../node_modules/moment-timezone/node_modules/moment/moment.js","../node_modules/moment/locale/en-gb.js","../node_modules/moment/moment.js","../node_modules/performance-now/src/performance-now.coffee","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/raf/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-input-mask/index.js","../node_modules/react-input-mask/lib/react-input-mask.production.min.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-phone-input-2/lib/lib.js","../node_modules/react-resize-detector/node_modules/tslib/tslib.es6.js","../node_modules/react-resize-detector/src/utils.ts","../node_modules/react-resize-detector/src/ResizeDetector.tsx","../node_modules/react-resize-detector/src/useResizeDetector.ts","../node_modules/react-smooth/node_modules/dom-helpers/class/addClass.js","../node_modules/react-smooth/node_modules/dom-helpers/class/hasClass.js","../node_modules/react-smooth/node_modules/dom-helpers/class/removeClass.js","../node_modules/react-smooth/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-smooth/node_modules/prop-types/index.js","../node_modules/react-smooth/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-smooth/node_modules/react-transition-group/CSSTransition.js","../node_modules/react-smooth/node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-smooth/node_modules/react-transition-group/Transition.js","../node_modules/react-smooth/node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-smooth/node_modules/react-transition-group/index.js","../node_modules/react-smooth/node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-smooth/node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-swipeable-views-core/lib/checkIndexBounds.js","../node_modules/react-swipeable-views-core/lib/computeIndex.js","../node_modules/react-swipeable-views-core/lib/constant.js","../node_modules/react-swipeable-views-core/lib/getDisplaySameSlide.js","../node_modules/react-swipeable-views-core/lib/index.js","../node_modules/react-swipeable-views-core/lib/mod.js","../node_modules/react-swipeable-views/lib/SwipeableViews.js","../node_modules/react-swipeable-views/lib/index.js","../node_modules/react-swipeable-views/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-swipeable-views/node_modules/prop-types/index.js","../node_modules/react-swipeable-views/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-use-websocket/src/index.ts","../node_modules/react-use-websocket/src/lib/attach-listener.ts","../node_modules/react-use-websocket/src/lib/attach-shared-listeners.ts","../node_modules/react-use-websocket/src/lib/constants.ts","../node_modules/react-use-websocket/src/lib/create-or-join.ts","../node_modules/react-use-websocket/src/lib/get-url.ts","../node_modules/react-use-websocket/src/lib/globals.ts","../node_modules/react-use-websocket/src/lib/manage-subscribers.ts","../node_modules/react-use-websocket/src/lib/proxy.ts","../node_modules/react-use-websocket/src/lib/socket-io.ts","../node_modules/react-use-websocket/src/lib/use-event-source.ts","../node_modules/react-use-websocket/src/lib/use-socket-io.ts","../node_modules/react-use-websocket/src/lib/use-websocket.ts","../node_modules/react-use-websocket/src/lib/util.ts","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/reactcss/lib/index.js","../node_modules/reactcss/lib/loop.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/recharts/node_modules/react-is/index.js","../node_modules/reduce-css-calc/dist/index.js","../node_modules/reduce-css-calc/dist/lib/convert.js","../node_modules/reduce-css-calc/dist/lib/reducer.js","../node_modules/reduce-css-calc/dist/lib/stringifier.js","../node_modules/reduce-css-calc/dist/parser.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/index.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/parse.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/stringify.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/unit.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/walk.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/tinycolor2/tinycolor.js","../node_modules/warning/warning.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@babel/runtime/helpers/esm/extends.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@mui/material/node_modules/@babel/runtime/helpers/esm/extends.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@mui/material/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@mui/utils/node_modules/@babel/runtime/helpers/esm/extends.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/react-toastify/src/utils/propValidator.ts","../node_modules/react-toastify/src/utils/constant.ts","../node_modules/react-toastify/src/utils/cssTransition.tsx","../node_modules/react-toastify/src/utils/collapseToast.ts","../node_modules/react-toastify/src/core/eventManager.ts","../node_modules/react-toastify/src/hooks/useKeeper.ts","../node_modules/react-toastify/src/hooks/toastContainerReducer.ts","../node_modules/react-toastify/src/hooks/useToastContainer.ts","../node_modules/react-toastify/src/hooks/useToast.ts","../node_modules/react-toastify/src/components/CloseButton.tsx","../node_modules/react-toastify/src/components/ProgressBar.tsx","../node_modules/react-toastify/src/components/Icons.tsx","../node_modules/react-toastify/src/components/Toast.tsx","../node_modules/react-toastify/src/components/Transitions.tsx","../node_modules/react-toastify/src/components/ToastContainer.tsx","../node_modules/react-toastify/src/core/toast.tsx","serviceWorkerRegistration.js","reportWebVitals.js","../../packages/react-router/index.tsx","../../packages/react-router-dom/index.tsx","../node_modules/@swc/helpers/src/_async_to_generator.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/material/Grid/GridContext.js","../node_modules/@mui/material/Grid/gridClasses.js","../node_modules/@mui/material/Grid/Grid.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@mui/material/Divider/dividerClasses.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/material/node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/material/node_modules/@mui/base/utils/isHostComponent.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/material/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/FormControl/formControlClasses.js","../node_modules/@mui/material/FormControl/FormControl.js","../node_modules/@mui/material/FormHelperText/formHelperTextClasses.js","../node_modules/@mui/material/FormHelperText/FormHelperText.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/utils/esm/getScrollbarSize.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/node_modules/@mui/base/Portal/Portal.js","../node_modules/@mui/material/node_modules/@mui/base/ModalUnstyled/ModalManager.js","../node_modules/@mui/material/node_modules/@mui/base/Unstable_TrapFocus/Unstable_TrapFocus.js","../node_modules/@mui/material/node_modules/@mui/base/ModalUnstyled/modalUnstyledClasses.js","../node_modules/@mui/material/node_modules/@mui/base/ModalUnstyled/ModalUnstyled.js","../node_modules/@mui/material/node_modules/@mui/base/BackdropUnstyled/backdropUnstyledClasses.js","../node_modules/@mui/material/node_modules/@mui/base/BackdropUnstyled/BackdropUnstyled.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/Select/Select.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/material/TextField/textFieldClasses.js","../node_modules/@mui/material/TextField/TextField.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/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/Button/buttonClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../node_modules/@mui/material/Button/Button.js","../node_modules/@mui/material/IconButton/iconButtonClasses.js","../node_modules/@mui/material/IconButton/IconButton.js","../node_modules/jwt-decode/lib/atob.js","../node_modules/jwt-decode/lib/index.js","../node_modules/jwt-decode/lib/base64_url_decode.js","Assets/Images/missingLinkLogo.svg","../node_modules/@mui/material/CssBaseline/CssBaseline.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createBox.js","../node_modules/@mui/material/Box/Box.js","../node_modules/@mui/material/Container/containerClasses.js","../node_modules/@mui/material/Container/Container.js","../node_modules/@swc/helpers/src/_define_property.js","../node_modules/@swc/helpers/src/_object_spread.js","../node_modules/@mui/material/node_modules/@mui/base/ClickAwayListener/ClickAwayListener.js","../node_modules/@mui/material/SnackbarContent/snackbarContentClasses.js","../node_modules/@mui/material/SnackbarContent/SnackbarContent.js","../node_modules/@mui/material/Snackbar/snackbarClasses.js","../node_modules/@mui/material/Snackbar/Snackbar.js","../node_modules/@mui/material/Alert/alertClasses.js","../node_modules/@mui/material/Alert/Alert.js","../node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","../node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","../node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","../node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/AlertTitle/alertTitleClasses.js","../node_modules/@mui/material/AlertTitle/AlertTitle.js","Components/Toast.js","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/Link.js","Components/Copyright.js","../node_modules/@mui/material/useMediaQuery/useMediaQuery.js","Views/Login.js","Views/PasswordReset.js","../../packages/kerberus-components/src/Components/Backend/SocketCache.js","../../packages/kerberus-components/src/Components/Backend/MainContext.js","../../packages/kerberus-components/node_modules/jwt-decode/build/jwt-decode.esm.js","../../packages/kerberus-components/src/Components/Backend/CloudFetcher.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@mui/private-theming/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@mui/private-theming/ThemeProvider/nested.js","../node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js","../node_modules/@mui/material/node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js","../node_modules/swr/dist/index.mjs","Components/Backend/SWRFetcher.js","Components/Backend/LoginProvider.js","../../packages/kerberus-components/src/Components/Backend/SocketContext.js","../../packages/kerberus-components/node_modules/uuid/dist/esm-browser/rng.js","../../packages/kerberus-components/node_modules/dayjs/dayjs.min.js","../../packages/kerberus-components/node_modules/dayjs/plugin/utc.js","../../packages/kerberus-components/node_modules/dayjs/plugin/timezone.js","../../packages/kerberus-components/node_modules/dayjs/plugin/isoWeek.js","../../packages/kerberus-components/node_modules/dayjs/plugin/isBetween.js","../../packages/kerberus-components/node_modules/dayjs/plugin/duration.js","../../packages/kerberus-components/node_modules/dayjs/plugin/customParseFormat.js","../../packages/kerberus-components/node_modules/dayjs/plugin/relativeTime.js","../../packages/kerberus-components/src/Components/dayjs-utils.js","../../packages/kerberus-components/node_modules/uuid/dist/esm-browser/regex.js","../../packages/kerberus-components/node_modules/uuid/dist/esm-browser/validate.js","../../packages/kerberus-components/node_modules/uuid/dist/esm-browser/stringify.js","../../packages/kerberus-components/node_modules/uuid/dist/esm-browser/v4.js","../../packages/kerberus-components/src/Components/Backend/WsDataProvider.js","Components/Backend/SocketProvider.js","../node_modules/@mui/material/styles/cssUtils.js","../node_modules/@mui/material/AppBar/appBarClasses.js","../node_modules/@mui/material/AppBar/AppBar.js","../node_modules/@mui/utils/esm/usePreviousProps.js","../node_modules/@mui/material/node_modules/@mui/base/BadgeUnstyled/badgeUnstyledClasses.js","../node_modules/@mui/material/node_modules/@mui/base/utils/appendOwnerState.js","../node_modules/@mui/material/node_modules/@mui/base/BadgeUnstyled/BadgeUnstyled.js","../node_modules/@mui/material/node_modules/@mui/base/BadgeUnstyled/useBadge.js","../node_modules/@mui/material/utils/shouldSpreadAdditionalProps.js","../node_modules/@mui/material/Badge/Badge.js","../node_modules/@mui/material/Toolbar/toolbarClasses.js","../node_modules/@mui/material/Toolbar/Toolbar.js","../node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../node_modules/@mui/material/MenuItem/menuItemClasses.js","../node_modules/@mui/material/MenuItem/MenuItem.js","../node_modules/@mui/material/Collapse/collapseClasses.js","../node_modules/@mui/material/Collapse/Collapse.js","../node_modules/@mui/material/Accordion/AccordionContext.js","../node_modules/@mui/material/Accordion/accordionClasses.js","../node_modules/@mui/material/Accordion/Accordion.js","../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js","../node_modules/@mui/material/AccordionDetails/AccordionDetails.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@mui/material/node_modules/@mui/base/PopperUnstyled/PopperUnstyled.js","../node_modules/@mui/material/Popper/Popper.js","../node_modules/@mui/material/Tooltip/tooltipClasses.js","../node_modules/@mui/material/Tooltip/Tooltip.js","../node_modules/@mui/material/internal/svg-icons/Person.js","../node_modules/@mui/material/Avatar/avatarClasses.js","../node_modules/@mui/material/Avatar/Avatar.js","../../packages/kerberus-components/src/Components/SmallAvatarWrapper.js","../../packages/kerberus-components/src/Components/Backend/ImageProvider.js","Components/HelperIcon.js","../node_modules/@mui/material/node_modules/@mui/base/SliderUnstyled/sliderUnstyledClasses.js","../node_modules/@mui/material/node_modules/@mui/base/SliderUnstyled/SliderValueLabelUnstyled.js","../node_modules/@mui/utils/esm/visuallyHidden.js","../node_modules/@mui/material/node_modules/@mui/base/SliderUnstyled/useSlider.js","../node_modules/@mui/material/node_modules/@mui/base/SliderUnstyled/SliderUnstyled.js","../node_modules/@mui/material/Slider/Slider.js","Components/HiddenTimeSlider.js","Assets/Images/mlLogo_noText_colored.svg","Components/InfoModal.js","Components/ShowOfflineStatus.js","Components/Layout/AppBar.js","../node_modules/@mui/material/Slide/Slide.js","../node_modules/@mui/material/Drawer/drawerClasses.js","../node_modules/@mui/material/Drawer/Drawer.js","../node_modules/@mui/material/ListItem/listItemClasses.js","../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../node_modules/@mui/material/ListItem/ListItem.js","../node_modules/@mui/material/ListItemIcon/ListItemIcon.js","../node_modules/@mui/material/ListItemText/ListItemText.js","../node_modules/@mui/material/ListItemButton/ListItemButton.js","../../packages/kerberus-components/src/Components/StyledBadgeAvatar.js","../node_modules/@mui/material/ListItemAvatar/listItemAvatarClasses.js","../node_modules/@mui/material/ListItemAvatar/ListItemAvatar.js","Components/Layout/ListItems.js","Components/Layout/Drawer.js","../node_modules/@mui/material/node_modules/@mui/base/NoSsr/NoSsr.js","../node_modules/@mui/material/SwipeableDrawer/SwipeArea.js","../node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer.js","Components/Layout/DrawerMobile.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/react-big-calendar/node_modules/@babel/runtime/helpers/esm/extends.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/react-big-calendar/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/react-big-calendar/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/react-big-calendar/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/uncontrollable/lib/esm/utils.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/uncontrollable/node_modules/@babel/runtime/helpers/esm/extends.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/uncontrollable/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/date-arithmetic/index.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/react-big-calendar/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/lodash-es/_baseSlice.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/toFinite.js","../node_modules/lodash-es/toInteger.js","../node_modules/lodash-es/chunk.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/dom-helpers/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/dom-helpers/esm/isWindow.js","../node_modules/dom-helpers/esm/isDocument.js","../node_modules/dom-helpers/esm/getScrollAccessor.js","../node_modules/dom-helpers/esm/scrollLeft.js","../node_modules/dom-helpers/esm/scrollTop.js","../node_modules/dom-helpers/esm/offset.js","../node_modules/dom-helpers/esm/offsetParent.js","../node_modules/dom-helpers/esm/position.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/animationFrame.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/isEqual.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/react-overlays/node_modules/@babel/runtime/helpers/esm/extends.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/react-overlays/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/enums.js","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/math.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/within.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/createPopper.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/react-overlays/esm/popper.js","../node_modules/react-overlays/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/react-overlays/esm/usePopper.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/react-overlays/esm/ownerDocument.js","../node_modules/react-overlays/esm/safeFindDOMNode.js","../node_modules/react-overlays/esm/useRootClose.js","../node_modules/react-overlays/esm/useWaitForDOMRef.js","../node_modules/react-overlays/esm/mergeOptionsWithPopperConfig.js","../node_modules/react-overlays/esm/Overlay.js","../node_modules/dom-helpers/esm/height.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/matches.js","../node_modules/lodash-es/_baseFindIndex.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/findIndex.js","../node_modules/lodash-es/_baseRange.js","../node_modules/lodash-es/_createRange.js","../node_modules/lodash-es/range.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/react-big-calendar/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/lodash-es/_isFlattenable.js","../node_modules/lodash-es/_baseFlatten.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/_baseSortBy.js","../node_modules/lodash-es/_compareAscending.js","../node_modules/lodash-es/_compareMultiple.js","../node_modules/lodash-es/_baseOrderBy.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/lodash-es/sortBy.js","../node_modules/dom-helpers/esm/width.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/last.js","../node_modules/lodash-es/_parent.js","../node_modules/lodash-es/_baseUnset.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_customOmitClone.js","../node_modules/lodash-es/flatten.js","../node_modules/lodash-es/_flatRest.js","../node_modules/lodash-es/omit.js","../node_modules/lodash-es/defaults.js","../node_modules/lodash-es/transform.js","../node_modules/lodash-es/mapValues.js","../node_modules/react-big-calendar/dist/react-big-calendar.esm.js","../node_modules/dom-helpers/esm/closest.js","../node_modules/uncontrollable/lib/esm/uncontrollable.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/uncontrollable/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/uncontrollable/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","Components/CalendarToolbar.js","../../packages/kerberus-components/node_modules/react-input-mask/lib/react-input-mask.production.min.js","../../packages/kerberus-components/node_modules/react-input-mask/index.js","../../packages/kerberus-components/src/Components/MaskedTextFieldWrapper.js","../node_modules/@mui/material/Card/cardClasses.js","../node_modules/@mui/material/Card/Card.js","../node_modules/@mui/material/node_modules/@mui/base/AutocompleteUnstyled/useAutocomplete.js","../node_modules/@mui/material/ListSubheader/listSubheaderClasses.js","../node_modules/@mui/material/ListSubheader/ListSubheader.js","../node_modules/@mui/material/internal/svg-icons/Cancel.js","../node_modules/@mui/material/Chip/chipClasses.js","../node_modules/@mui/material/Chip/Chip.js","../node_modules/@mui/material/Autocomplete/autocompleteClasses.js","../node_modules/@mui/material/Autocomplete/Autocomplete.js","Components/LayoutPaper.js","Views/Profile/OnlineHours.js","Views/Profile/OfflineHours.js","Views/Admin/AdminCalendar.js","../../packages/kerberus-components/src/Components/Clock.js","../../packages/kerberus-components/src/Components/StatusBadges.js","../node_modules/@mui/material/LinearProgress/linearProgressClasses.js","../node_modules/@mui/material/LinearProgress/LinearProgress.js","../../packages/kerberus-components/src/Components/LinearLoading.js","../../packages/kerberus-components/src/Components/Dashboard/GridLarge.js","../../packages/kerberus-components/src/Components/Dashboard/GridSmall.js","../../packages/kerberus-components/node_modules/embla-carousel-react/embla-carousel-react.esm.js","../../packages/kerberus-components/node_modules/embla-carousel-autoplay/embla-carousel-autoplay.esm.js","../../packages/kerberus-components/src/Components/Dashboard/SocialsDashboard.js","../../packages/kerberus-components/src/Components/Dashboard/LayoutTemplate.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/@mui/material/internal/switchBaseClasses.js","../node_modules/@mui/material/internal/SwitchBase.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","../node_modules/@mui/material/FormControlLabel/FormControlLabel.js","../node_modules/@mui/material/Switch/switchClasses.js","../node_modules/@mui/material/Switch/Switch.js","../node_modules/@mui/material/FormGroup/formGroupClasses.js","../node_modules/@mui/material/FormGroup/FormGroup.js","../node_modules/react-color/es/helpers/alpha.js","../node_modules/react-color/es/helpers/checkboard.js","../node_modules/react-color/es/components/common/Checkboard.js","../node_modules/react-color/es/components/common/Alpha.js","../node_modules/react-color/es/components/common/EditableInput.js","../node_modules/react-color/es/helpers/hue.js","../node_modules/react-color/es/components/common/Hue.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/lodash-es/merge.js","../node_modules/react-color/es/components/common/Raised.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/react-color/es/components/common/Saturation.js","../node_modules/react-color/es/helpers/saturation.js","../node_modules/lodash-es/_castFunction.js","../node_modules/lodash-es/forEach.js","../node_modules/react-color/es/helpers/color.js","../node_modules/react-color/es/components/common/ColorWrap.js","../node_modules/react-color/es/helpers/interaction.js","../node_modules/react-color/es/components/common/Swatch.js","../node_modules/react-color/es/components/alpha/AlphaPointer.js","../node_modules/react-color/es/components/alpha/Alpha.js","../node_modules/lodash-es/map.js","../node_modules/react-color/es/components/block/BlockSwatches.js","../node_modules/react-color/es/components/block/Block.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/react-color/es/components/circle/CircleSwatch.js","../node_modules/react-color/es/components/circle/Circle.js","../node_modules/lodash-es/isUndefined.js","../node_modules/react-color/es/components/chrome/ChromeFields.js","../node_modules/react-color/es/components/chrome/ChromePointer.js","../node_modules/react-color/es/components/chrome/ChromePointerCircle.js","../node_modules/react-color/es/components/chrome/Chrome.js","../node_modules/react-color/es/components/compact/CompactColor.js","../node_modules/react-color/es/components/compact/CompactFields.js","../node_modules/react-color/es/components/compact/Compact.js","../node_modules/react-color/es/components/github/GithubSwatch.js","../node_modules/react-color/es/components/github/Github.js","../node_modules/react-color/es/components/hue/HuePointer.js","../node_modules/react-color/es/components/hue/Hue.js","../node_modules/react-color/es/components/material/Material.js","../node_modules/react-color/es/components/photoshop/PhotoshopFields.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/es/components/photoshop/PhotoshopButton.js","../node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/es/components/photoshop/Photoshop.js","../node_modules/react-color/es/components/sketch/SketchFields.js","../node_modules/react-color/es/components/sketch/SketchPresetColors.js","../node_modules/react-color/es/components/sketch/Sketch.js","../node_modules/react-color/es/components/slider/SliderSwatch.js","../node_modules/react-color/es/components/slider/SliderSwatches.js","../node_modules/react-color/es/components/slider/SliderPointer.js","../node_modules/react-color/es/components/slider/Slider.js","../node_modules/react-color/es/components/swatches/SwatchesColor.js","../node_modules/react-color/es/components/swatches/SwatchesGroup.js","../node_modules/react-color/es/components/swatches/Swatches.js","../node_modules/react-color/es/components/twitter/Twitter.js","../node_modules/react-color/es/components/google/GooglePointerCircle.js","../node_modules/react-color/es/components/google/GooglePointer.js","../node_modules/react-color/es/components/google/GoogleFields.js","../node_modules/react-color/es/components/google/Google.js","../node_modules/@mui/lab/node_modules/@date-io/moment/build/index.esm.js","../node_modules/@mui/lab/LocalizationProvider/LocalizationProvider.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@mui/lab/node_modules/@babel/runtime/helpers/esm/extends.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@mui/lab/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/lab/internal/svg-icons/Clock.js","../node_modules/@mui/lab/internal/pickers/text-field-helper.js","../node_modules/@mui/lab/internal/pickers/hooks/useUtils.js","../node_modules/@mui/lab/node_modules/@mui/utils/esm/formatMuiErrorMessage.js","../node_modules/@mui/lab/TimePicker/shared.js","../node_modules/@mui/base/generateUtilityClass/ClassNameGenerator.js","../node_modules/@mui/base/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/base/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/base/composeClasses/composeClasses.js","../node_modules/@mui/lab/internal/pickers/PickersToolbarText.js","../node_modules/@mui/lab/internal/pickers/PickersToolbarButton.js","../node_modules/@mui/lab/internal/pickers/PickersToolbar.js","../node_modules/@mui/lab/internal/svg-icons/Pen.js","../node_modules/@mui/lab/internal/svg-icons/Calendar.js","../node_modules/@mui/lab/internal/pickers/utils.js","../node_modules/@mui/lab/internal/pickers/time-utils.js","../node_modules/@mui/lab/internal/pickers/hooks/date-helpers-hooks.js","../node_modules/@mui/lab/TimePicker/TimePickerToolbar.js","../node_modules/@mui/lab/internal/pickers/wrappers/WrapperVariantContext.js","../node_modules/@mui/lab/internal/pickers/PickersPopper.js","../node_modules/@mui/lab/internal/pickers/wrappers/DesktopWrapper.js","../node_modules/@mui/lab/internal/pickers/hooks/useViews.js","../node_modules/@mui/lab/node_modules/@mui/utils/esm/useId.js","../node_modules/@mui/lab/node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@mui/lab/ClockPicker/shared.js","../node_modules/@mui/lab/ClockPicker/ClockPointer.js","../node_modules/@mui/lab/ClockPicker/Clock.js","../node_modules/@mui/lab/ClockPicker/ClockNumber.js","../node_modules/@mui/lab/ClockPicker/ClockNumbers.js","../node_modules/@mui/lab/internal/svg-icons/ArrowLeft.js","../node_modules/@mui/lab/internal/svg-icons/ArrowRight.js","../node_modules/@mui/lab/internal/pickers/PickersArrowSwitcher.js","../node_modules/@mui/lab/ClockPicker/ClockPicker.js","../node_modules/@mui/lab/MonthPicker/PickersMonth.js","../node_modules/@mui/lab/MonthPicker/MonthPicker.js","../node_modules/@mui/lab/internal/pickers/date-utils.js","../node_modules/@mui/lab/CalendarPicker/useCalendarState.js","../node_modules/@mui/lab/CalendarPicker/PickersFadeTransitionGroup.js","../node_modules/@mui/lab/internal/pickers/constants/dimensions.js","../node_modules/@mui/lab/PickersDay/PickersDay.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/@mui/lab/CalendarPicker/PickersSlideTransition.js","../node_modules/@mui/lab/CalendarPicker/PickersCalendar.js","../node_modules/@mui/lab/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/lab/CalendarPicker/PickersCalendarHeader.js","../node_modules/@mui/lab/YearPicker/PickersYear.js","../node_modules/@mui/lab/YearPicker/yearPickerClasses.js","../node_modules/@mui/lab/YearPicker/YearPicker.js","../node_modules/@mui/lab/internal/pickers/Picker/PickerView.js","../node_modules/@mui/lab/CalendarPicker/CalendarPicker.js","../node_modules/rifm/dist/rifm.esm.js","../node_modules/@mui/lab/internal/pickers/hooks/useMaskedInput.js","../node_modules/@mui/lab/internal/pickers/KeyboardDateInput.js","../node_modules/@mui/lab/internal/pickers/hooks/useIsLandscape.js","../node_modules/@mui/lab/internal/pickers/Picker/Picker.js","../node_modules/@mui/lab/internal/pickers/hooks/useValidation.js","../node_modules/@mui/lab/internal/pickers/hooks/useOpenState.js","../node_modules/@mui/lab/internal/pickers/hooks/usePickerState.js","../node_modules/@mui/lab/DesktopTimePicker/DesktopTimePicker.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","../node_modules/@mui/material/DialogContent/DialogContent.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/lab/internal/pickers/PickersModalDialog.js","../node_modules/@mui/lab/internal/pickers/wrappers/MobileWrapper.js","../node_modules/@mui/lab/internal/pickers/PureDateInput.js","../node_modules/@mui/lab/MobileTimePicker/MobileTimePicker.js","../node_modules/@mui/lab/TimePicker/TimePicker.js","../node_modules/@mui/material/DialogTitle/DialogTitle.js","../node_modules/@mui/material/DialogContentText/dialogContentTextClasses.js","../node_modules/@mui/material/DialogContentText/DialogContentText.js","Components/ConfirmationDialog.js","Views/Admin/AdminDashboardMaker.js","../node_modules/@mui/material/AvatarGroup/avatarGroupClasses.js","../node_modules/@mui/material/AvatarGroup/AvatarGroup.js","Components/DayEnabledCheckbox.js","../node_modules/@mui/x-data-grid/constants/gridClasses.js","../node_modules/@mui/x-data-grid/components/containers/GridRootStyles.js","../node_modules/reselect/es/defaultMemoize.js","../node_modules/reselect/es/index.js","../node_modules/@mui/x-data-grid/utils/warning.js","../node_modules/@mui/x-data-grid/utils/createSelector.js","../node_modules/@mui/x-data-grid/hooks/features/columns/gridColumnsSelector.js","../node_modules/@mui/x-data-grid/hooks/utils/useGridSelector.js","../node_modules/@mui/x-data-grid/components/GridApiContext.js","../node_modules/@mui/x-data-grid/hooks/utils/useGridApiContext.js","../node_modules/@mui/x-data-grid/context/GridRootPropsContext.js","../node_modules/@mui/x-data-grid/hooks/utils/useGridRootProps.js","../node_modules/@mui/x-data-grid/hooks/features/rows/gridRowsSelector.js","../node_modules/@mui/x-data-grid/components/containers/GridRoot.js","../node_modules/@mui/x-data-grid/hooks/utils/useGridLogger.js","../node_modules/@mui/x-data-grid/components/containers/GridMainContainer.js","../node_modules/@mui/x-data-grid/components/ErrorBoundary.js","../node_modules/@mui/x-data-grid/components/base/GridErrorHandler.js","../node_modules/@mui/x-data-grid/components/base/GridHeaderPlaceholder.js","../node_modules/@mui/x-data-grid/models/events/gridEvents.js","../node_modules/@mui/x-data-grid/lib/createDetectElementResize/index.js","../node_modules/@mui/x-data-grid/components/GridAutoSizer.js","../node_modules/@mui/x-data-grid/hooks/features/sorting/gridSortingSelector.js","../node_modules/@mui/x-data-grid/hooks/features/filter/gridFilterSelector.js","../node_modules/@mui/x-data-grid/hooks/features/density/densitySelector.js","../node_modules/@mui/x-data-grid/components/base/GridOverlays.js","../node_modules/@mui/x-data-grid/components/base/GridBody.js","../node_modules/@mui/x-data-grid/components/base/GridFooterPlaceholder.js","../node_modules/@mui/x-data-grid/context/GridContextProvider.js","../node_modules/@mui/x-data-grid/utils/utils.js","../node_modules/@mui/x-data-grid/hooks/core/useGridLoggerFactory.js","../node_modules/@mui/x-data-grid/hooks/utils/useGridApiMethod.js","../node_modules/@mui/x-data-grid/hooks/utils/useGridApiEventHandler.js","../node_modules/@mui/x-data-grid/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js","../node_modules/@mui/x-data-grid/utils/cleanupTracking/TimerBasedCleanupTracking.js","../node_modules/@mui/x-data-grid/utils/EventManager.js","../node_modules/@mui/x-data-grid/hooks/core/useGridApiInitialization.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@babel/runtime/helpers/esm/typeof.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@mui/x-data-grid/hooks/core/preProcessing/useGridPreProcessing.js","../node_modules/@mui/x-data-grid/hooks/core/strategyProcessing/useGridStrategyProcessing.js","../node_modules/@mui/x-data-grid/hooks/core/useGridStateInitialization.js","../node_modules/@mui/x-data-grid/hooks/core/useGridInitialization.js","../node_modules/@mui/x-data-grid/hooks/core/useGridErrorHandler.js","../node_modules/@mui/x-data-grid/hooks/core/useGridLocaleText.js","../node_modules/@mui/x-data-grid/hooks/utils/useGridInitializeState.js","../node_modules/@mui/x-data-grid/hooks/utils/useGridNativeEventListener.js","../node_modules/@mui/x-data-grid/hooks/features/clipboard/useGridClipboard.js","../node_modules/@mui/x-data-grid/hooks/features/columnMenu/columnMenuSelector.js","../node_modules/@mui/x-data-grid/hooks/features/columnMenu/useGridColumnMenu.js","../node_modules/@mui/x-data-grid/hooks/utils/useFirstRender.js","../node_modules/@mui/x-data-grid/hooks/core/preProcessing/useGridRegisterPreProcessor.js","../node_modules/@mui/x-data-grid/components/icons/index.js","../node_modules/@mui/x-data-grid/components/panel/filterPanel/filterPanelUtils.js","../node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputValue.js","../node_modules/@mui/x-data-grid/components/cell/GridEditInputCell.js","../node_modules/@mui/x-data-grid/hooks/features/sorting/gridSortingUtils.js","../node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputMultipleValue.js","../node_modules/@mui/x-data-grid/colDef/gridStringOperators.js","../node_modules/@mui/x-data-grid/colDef/gridStringColDef.js","../node_modules/@mui/x-data-grid/colDef/gridNumericOperators.js","../node_modules/@mui/x-data-grid/colDef/gridNumericColDef.js","../node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputDate.js","../node_modules/@mui/x-data-grid/colDef/gridDateOperators.js","../node_modules/@mui/x-data-grid/components/cell/GridEditDateCell.js","../node_modules/@mui/x-data-grid/colDef/gridDateColDef.js","../node_modules/@mui/x-data-grid/components/cell/GridBooleanCell.js","../node_modules/@mui/x-data-grid/components/cell/GridEditBooleanCell.js","../node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputBoolean.js","../node_modules/@mui/x-data-grid/colDef/gridBooleanColDef.js","../node_modules/@mui/x-data-grid/colDef/gridBooleanOperators.js","../node_modules/@mui/x-data-grid/utils/keyboardUtils.js","../node_modules/@mui/x-data-grid/models/gridEditRowModel.js","../node_modules/@mui/x-data-grid/components/cell/GridEditSingleSelectCell.js","../node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputSingleSelect.js","../node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js","../node_modules/@mui/x-data-grid/colDef/gridSingleSelectOperators.js","../node_modules/@mui/x-data-grid/colDef/gridSingleSelectColDef.js","../node_modules/@mui/x-data-grid/components/menu/GridMenu.js","../node_modules/@mui/x-data-grid/components/cell/GridActionsCell.js","../node_modules/@mui/x-data-grid/colDef/gridActionsColDef.js","../node_modules/@mui/x-data-grid/models/colDef/gridDefaultColumnTypes.js","../node_modules/@mui/x-data-grid/hooks/features/columns/gridColumnsUtils.js","../node_modules/@mui/x-data-grid/hooks/features/preferencesPanel/gridPreferencePanelsValue.js","../node_modules/@mui/x-data-grid/hooks/features/columns/useGridColumns.js","../node_modules/@mui/x-data-grid/models/gridDensity.js","../node_modules/@mui/x-data-grid/hooks/features/density/useGridDensity.js","../node_modules/@mui/x-data-grid/components/columnSelection/GridCellCheckboxRenderer.js","../node_modules/@mui/x-data-grid/hooks/features/focus/gridFocusStateSelector.js","../node_modules/@mui/x-data-grid/hooks/features/selection/gridSelectionSelector.js","../node_modules/@mui/x-data-grid/hooks/features/pagination/gridPaginationSelector.js","../node_modules/@mui/x-data-grid/components/columnSelection/GridHeaderCheckbox.js","../node_modules/@mui/x-data-grid/colDef/gridCheckboxSelectionColDef.js","../node_modules/@mui/x-data-grid/hooks/features/export/serializers/csvSerializer.js","../node_modules/@mui/x-data-grid/hooks/features/export/utils.js","../node_modules/@mui/x-data-grid/hooks/features/export/useGridCsvExport.js","../node_modules/@mui/x-data-grid/utils/exportAs.js","../node_modules/@mui/x-data-grid/hooks/features/rows/gridRowsMetaSelector.js","../node_modules/@mui/x-data-grid/models/gridFeatureMode.js","../node_modules/@mui/x-data-grid/models/gridFilterItem.js","../node_modules/@mui/x-data-grid/hooks/features/filter/gridFilterState.js","../node_modules/@mui/x-data-grid/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js","../node_modules/@mui/x-data-grid/hooks/features/filter/gridFilterUtils.js","../node_modules/@mui/x-data-grid/hooks/features/filter/useGridFilter.js","../node_modules/@mui/x-data-grid/hooks/utils/useGridVisibleRows.js","../node_modules/@mui/x-data-grid/hooks/features/focus/useGridFocus.js","../node_modules/@mui/x-data-grid/utils/domUtils.js","../node_modules/@mui/x-data-grid/hooks/features/keyboard/useGridKeyboard.js","../node_modules/@mui/x-data-grid/hooks/features/pagination/useGridPageSize.js","../node_modules/@mui/x-data-grid/hooks/features/pagination/useGridPage.js","../node_modules/@mui/x-data-grid/hooks/features/pagination/useGridPagination.js","../node_modules/@mui/x-data-grid/hooks/features/preferencesPanel/gridPreferencePanelSelector.js","../node_modules/@mui/x-data-grid/hooks/features/preferencesPanel/useGridPreferencesPanel.js","../node_modules/@mui/x-data-grid/hooks/features/editRows/gridEditRowsSelector.js","../node_modules/@mui/x-data-grid/hooks/features/editRows/useGridCellEditing.old.js","../node_modules/@mui/x-data-grid/hooks/features/editRows/useGridEditing.old.js","../node_modules/@mui/x-data-grid/hooks/features/editRows/useGridRowEditing.old.js","../node_modules/@mui/x-data-grid/models/params/gridEditCellParams.js","../node_modules/@mui/x-data-grid/models/params/gridRowParams.js","../node_modules/@mui/x-data-grid/hooks/features/editRows/useGridRowEditing.new.js","../node_modules/@mui/x-data-grid/hooks/features/editRows/useGridEditing.new.js","../node_modules/@mui/x-data-grid/hooks/features/editRows/useGridCellEditing.new.js","../node_modules/@mui/x-data-grid/hooks/features/rows/useGridRows.js","../node_modules/@mui/x-data-grid/models/gridRows.js","../node_modules/@mui/x-data-grid/hooks/features/rows/useGridRowsPreProcessors.js","../node_modules/@mui/x-data-grid/hooks/features/rows/useGridParamsApi.js","../node_modules/@mui/x-data-grid/hooks/features/selection/useGridSelection.js","../node_modules/@mui/x-data-grid/hooks/features/selection/useGridSelectionPreProcessors.js","../node_modules/@mui/x-data-grid/hooks/features/sorting/useGridSorting.js","../node_modules/@mui/x-data-grid/hooks/features/scroll/useGridScroll.js","../node_modules/@mui/x-data-grid/hooks/features/rows/useGridRowsMeta.js","../node_modules/@mui/x-data-grid/DataGrid/useDataGridComponent.js","../node_modules/@mui/x-data-grid/hooks/features/keyboard/useGridKeyboardNavigation.js","../node_modules/@mui/x-data-grid/hooks/features/export/useGridPrintExport.js","../node_modules/@mui/x-data-grid/hooks/features/dimensions/useGridDimensions.js","../node_modules/@mui/x-data-grid/hooks/features/events/useGridEvents.js","../node_modules/@mui/x-data-grid/hooks/features/statePersistence/useGridStatePersistence.js","../node_modules/@mui/x-data-grid/constants/localeTextConstants.js","../node_modules/@mui/x-data-grid/components/cell/GridCell.js","../node_modules/@mui/x-data-grid/components/menu/columnMenu/GridColumnMenuContainer.js","../node_modules/@mui/x-data-grid/components/menu/columnMenu/GridColumnsMenuItem.js","../node_modules/@mui/x-data-grid/components/menu/columnMenu/GridFilterMenuItem.js","../node_modules/@mui/x-data-grid/components/menu/columnMenu/HideGridColMenuItem.js","../node_modules/@mui/x-data-grid/components/menu/columnMenu/SortGridMenuItems.js","../node_modules/@mui/x-data-grid/components/menu/columnMenu/GridColumnMenu.js","../node_modules/@mui/x-data-grid/components/GridRowCount.js","../node_modules/@mui/x-data-grid/components/GridSelectedRowCount.js","../node_modules/@mui/x-data-grid/components/containers/GridFooterContainer.js","../node_modules/@mui/x-data-grid/components/GridFooter.js","../node_modules/@mui/x-data-grid/components/GridHeader.js","../node_modules/@mui/x-data-grid/components/panel/GridPreferencesPanel.js","../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../node_modules/@mui/material/CircularProgress/CircularProgress.js","../node_modules/@mui/x-data-grid/components/containers/GridOverlay.js","../node_modules/@mui/x-data-grid/components/GridLoadingOverlay.js","../node_modules/@mui/x-data-grid/components/GridNoRowsOverlay.js","../node_modules/@mui/material/Table/TableContext.js","../node_modules/@mui/material/Table/Tablelvl2Context.js","../node_modules/@mui/material/TableCell/tableCellClasses.js","../node_modules/@mui/material/TableCell/TableCell.js","../node_modules/@mui/material/TablePagination/TablePaginationActions.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js","../node_modules/@mui/material/internal/svg-icons/LastPage.js","../node_modules/@mui/material/internal/svg-icons/FirstPage.js","../node_modules/@mui/material/TablePagination/tablePaginationClasses.js","../node_modules/@mui/material/TablePagination/TablePagination.js","../node_modules/@mui/x-data-grid/components/GridPagination.js","../node_modules/@mui/x-data-grid/components/panel/GridPanelContent.js","../node_modules/@mui/x-data-grid/components/panel/GridPanelFooter.js","../node_modules/@mui/x-data-grid/components/panel/GridPanelWrapper.js","../node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterForm.js","../node_modules/@mui/x-data-grid/components/panel/filterPanel/GridFilterPanel.js","../node_modules/@mui/x-data-grid/components/panel/GridPanelHeader.js","../node_modules/@mui/x-data-grid/constants/envConstants.js","../node_modules/@mui/x-data-grid/components/panel/GridColumnsPanel.js","../node_modules/@mui/x-data-grid/components/panel/GridPanel.js","../node_modules/@mui/x-data-grid/components/GridRow.js","../node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnUnsortedIcon.js","../node_modules/@mui/x-data-grid/components/ErrorOverlay.js","../node_modules/@mui/x-data-grid/components/GridNoResultsOverlay.js","../node_modules/@mui/x-data-grid/constants/defaultGridSlotsComponents.js","../node_modules/@mui/x-data-grid/DataGrid/useDataGridProps.js","../node_modules/@mui/x-data-grid/components/virtualization/GridVirtualScroller.js","../node_modules/@mui/x-data-grid/components/virtualization/GridVirtualScrollerContent.js","../node_modules/@mui/x-data-grid/components/virtualization/GridVirtualScrollerRenderZone.js","../node_modules/@mui/x-data-grid/hooks/features/virtualization/useGridVirtualScroller.js","../node_modules/@mui/x-data-grid/components/DataGridVirtualScroller.js","../node_modules/@mui/x-data-grid/components/columnHeaders/GridIconButtonContainer.js","../node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaderSortIcon.js","../node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaderTitle.js","../node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaderSeparator.js","../node_modules/@mui/x-data-grid/components/columnHeaders/ColumnHeaderMenuIcon.js","../node_modules/@mui/x-data-grid/components/columnHeaders/ColumnHeaderFilterIcon.js","../node_modules/@mui/x-data-grid/components/menu/columnMenu/GridColumnHeaderMenu.js","../node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaderItem.js","../node_modules/@mui/x-data-grid/hooks/features/columnHeaders/useGridColumnHeaders.js","../node_modules/@mui/x-data-grid/components/GridScrollArea.js","../node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeaders.js","../node_modules/@mui/x-data-grid/components/columnHeaders/GridColumnHeadersInner.js","../node_modules/@mui/x-data-grid/components/DataGridColumnHeaders.js","../node_modules/@mui/x-data-grid/DataGrid/DataGrid.js","../node_modules/@mui/utils/esm/chainPropTypes.js","../node_modules/@mui/x-data-grid/components/containers/GridToolbarContainer.js","../node_modules/@mui/x-data-grid/components/toolbar/GridToolbarColumnsButton.js","../node_modules/@mui/x-data-grid/components/toolbar/GridToolbarDensitySelector.js","../node_modules/@mui/x-data-grid/components/toolbar/GridToolbarFilterButton.js","../node_modules/@mui/x-data-grid/components/toolbar/GridToolbarExportContainer.js","../node_modules/@mui/x-data-grid/components/toolbar/GridToolbarExport.js","../node_modules/@mui/x-data-grid/components/toolbar/GridToolbar.js","Views/Admin/SocialGroupRequests.js","Views/Admin/AdminSocialGroup.js","../node_modules/@mui/material/ToggleButtonGroup/isValueSelected.js","../node_modules/@mui/material/ToggleButtonGroup/toggleButtonGroupClasses.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.js","../node_modules/@mui/material/ToggleButton/toggleButtonClasses.js","../node_modules/@mui/material/ToggleButton/ToggleButton.js","../node_modules/@mui/material/CardContent/cardContentClasses.js","../node_modules/@mui/material/CardContent/CardContent.js","Components/SocialIcons.js","../node_modules/@swc/helpers/src/_object_without_properties.js","../node_modules/@swc/helpers/src/_object_without_properties_loose.js","../node_modules/@mui/material/Icon/iconClasses.js","../node_modules/@mui/material/Icon/Icon.js","../node_modules/swr/immutable/dist/index.mjs","../../packages/kerberus-components/src/Components/Backend/DataProvider.js","Components/Profile/ProfileMenu.js","Components/Profile/ProfileCard.js","Components/UserCardList.js","Components/SearchToolbar.js","Components/UserDatagrid.js","Components/MyConnections/SearchBar.js","Components/UserList.js","Components/Admin/DatagridColumns.js","Components/Admin/UserCreation.js","Components/Admin/DatagridColumnsMobile.js","Views/Admin/AdminUsers.js","../node_modules/tslib/tslib.es6.js","../node_modules/file-selector/src/file.ts","../node_modules/file-selector/src/file-selector.ts","../node_modules/react-dropzone/dist/es/utils/index.js","../node_modules/react-dropzone/dist/es/index.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/useController.ts","../node_modules/react-hook-form/src/useWatch.ts","../node_modules/react-hook-form/src/useFormState.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/logic/focusFieldBy.ts","../node_modules/react-hook-form/src/logic/generateId.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/getValidationModes.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/useForm.ts","Assets/Images/Slack_Mark.svg","Assets/Images/Slack_Mark_Black.svg","Components/Icons/Slack.js","Components/Company/CompanyLinks.js","Views/Company/CompanySettings.js","Components/GetOnlineData.js","Components/GetUserData.js","Components/Company/DatagridColumns.js","Components/Company/DatagridColumnsMobile.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/recharts/es6/util/types.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-smooth/es6/AnimateGroupChild.js","../node_modules/react-smooth/es6/AnimateGroup.js","../node_modules/react-smooth/es6/index.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/util/Global.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/constant.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/recharts/es6/component/Text.js","../node_modules/recharts/es6/component/Label.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/d3-array/src/range.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale/src/band.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/d3-scale/src/diverging.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/component/Cell.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/cartesian/Bar.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/recharts/es6/cartesian/CartesianGrid.js","../node_modules/recharts/es6/cartesian/Area.js","../node_modules/recharts/es6/chart/AreaChart.js","Components/Icons/Shapes.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@mui/x-date-pickers/node_modules/@babel/runtime/helpers/esm/extends.js","../javascript/esm|/builds/kerberus/kerberusiot/frontend/timetable/node_modules/@mui/x-date-pickers/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/x-date-pickers/locales/utils/getPickersLocalization.js","../node_modules/@mui/x-date-pickers/locales/enUS.js","../node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","../node_modules/@mui/x-date-pickers/internals/hooks/useUtils.js","../node_modules/@mui/x-date-pickers/internals/utils/date-utils.js","../node_modules/@mui/x-date-pickers/DatePicker/shared.js","../node_modules/@mui/x-date-pickers/internals/components/icons/index.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbar.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePickerToolbar.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/WrapperVariantContext.js","../node_modules/@mui/x-date-pickers/PickersActionBar/PickersActionBar.js","../node_modules/@mui/x-date-pickers/internals/components/PickersPopper.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/DesktopWrapper.js","../node_modules/@mui/x-date-pickers/internals/utils/utils.js","../node_modules/@mui/x-date-pickers/internals/hooks/useViews.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/useId.js","../node_modules/@mui/x-date-pickers/node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@mui/x-date-pickers/ClockPicker/shared.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockPointer.js","../node_modules/@mui/x-date-pickers/ClockPicker/Clock.js","../node_modules/@mui/x-date-pickers/internals/utils/warning.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockNumber.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockNumbers.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher.js","../node_modules/@mui/x-date-pickers/internals/utils/time-utils.js","../node_modules/@mui/x-date-pickers/internals/hooks/date-helpers-hooks.js","../node_modules/@mui/x-date-pickers/ClockPicker/clockPickerClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickerViewRoot/PickerViewRoot.js","../node_modules/@mui/x-date-pickers/internals/constants/dimensions.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockPicker.js","../node_modules/@mui/x-date-pickers/MonthPicker/PickersMonth.js","../node_modules/@mui/x-date-pickers/MonthPicker/monthPickerClasses.js","../node_modules/@mui/x-date-pickers/MonthPicker/MonthPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useDateValidation.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useValidation.js","../node_modules/@mui/x-date-pickers/CalendarPicker/useCalendarState.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersFadeTransitionGroup.js","../node_modules/@mui/x-date-pickers/PickersDay/pickersDayClasses.js","../node_modules/@mui/x-date-pickers/PickersDay/PickersDay.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersSlideTransition.js","../node_modules/@mui/x-date-pickers/CalendarPicker/DayPicker.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersCalendarHeader.js","../node_modules/@mui/x-date-pickers/YearPicker/PickersYear.js","../node_modules/@mui/x-date-pickers/YearPicker/yearPickerClasses.js","../node_modules/@mui/x-date-pickers/YearPicker/YearPicker.js","../node_modules/@mui/x-date-pickers/internals/utils/defaultReduceAnimations.js","../node_modules/@mui/x-date-pickers/CalendarPicker/calendarPickerClasses.js","../node_modules/@mui/x-date-pickers/CalendarPicker/CalendarPicker.js","../node_modules/@mui/x-date-pickers/internals/utils/text-field-helper.js","../node_modules/@mui/x-date-pickers/internals/components/KeyboardDateInput.js","../node_modules/@mui/x-date-pickers/internals/hooks/useMaskedInput.js","../node_modules/@mui/x-date-pickers/internals/hooks/useIsLandscape.js","../node_modules/@mui/x-date-pickers/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/useOpenState.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePickerState.js","../node_modules/@mui/x-date-pickers/DesktopDatePicker/DesktopDatePicker.js","../node_modules/@mui/x-date-pickers/internals/components/PickersModalDialog.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/MobileWrapper.js","../node_modules/@mui/x-date-pickers/internals/components/PureDateInput.js","../node_modules/@mui/x-date-pickers/MobileDatePicker/MobileDatePicker.js","Components/ActivityGraph.js","Components/Groups/GraphModal.js","../../packages/kerberus-components/src/Components/Dashboard/GridSmallMobile.js","../../packages/kerberus-components/src/Components/Dashboard/SocialsDashboardLandscape.js","../../packages/kerberus-components/src/Components/Dashboard/SocialsDashboardPortrait.js","../../packages/kerberus-components/src/Components/Dashboard/LayoutTemplateMobile.js","Components/DashboardModalCompany.js","Views/Company/CompanyView.js","Views/ProfileList.js","Components/Groups/ActiveTime.js","Views/SocialGroupList.js","../node_modules/@mui/lab/TreeView/TreeViewContext.js","../node_modules/@mui/lab/TreeView/descendants.js","../node_modules/@mui/lab/TreeView/treeViewClasses.js","../node_modules/@mui/lab/TreeView/TreeView.js","../node_modules/@mui/lab/TreeItem/TreeItemContent.js","../node_modules/@mui/lab/TreeItem/useTreeItem.js","../node_modules/@mui/lab/TreeItem/treeItemClasses.js","../node_modules/@mui/lab/TreeItem/TreeItem.js","Components/DashboardModalSocialGroup.js","../node_modules/@virtuoso.dev/urx/src/utils.ts","../node_modules/@virtuoso.dev/urx/src/actions.ts","../node_modules/@virtuoso.dev/urx/src/constants.ts","../node_modules/@virtuoso.dev/urx/src/streams.ts","../node_modules/@virtuoso.dev/urx/src/pipe.ts","../node_modules/@virtuoso.dev/urx/src/transformers.ts","../node_modules/@virtuoso.dev/urx/src/system.ts","../node_modules/@virtuoso.dev/react-urx/src/index.ts","../node_modules/react-virtuoso/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/react-virtuoso/src/loggerSystem.ts","../node_modules/react-virtuoso/src/hooks/useSize.ts","../node_modules/react-virtuoso/src/hooks/useChangedChildSizes.ts","../node_modules/react-virtuoso/src/utils/correctItemSize.ts","../node_modules/react-virtuoso/src/hooks/useScrollTop.ts","../node_modules/react-virtuoso/src/domIOSystem.ts","../node_modules/react-virtuoso/src/AATree.ts","../node_modules/react-virtuoso/src/utils/binaryArraySearch.ts","../node_modules/react-virtuoso/src/sizeSystem.ts","../node_modules/react-virtuoso/src/scrollToIndexSystem.ts","../node_modules/react-virtuoso/src/stateFlagsSystem.ts","../node_modules/react-virtuoso/src/propsReadySystem.ts","../node_modules/react-virtuoso/src/initialTopMostItemIndexSystem.ts","../node_modules/react-virtuoso/src/followOutputSystem.ts","../node_modules/react-virtuoso/src/groupedListSystem.ts","../node_modules/react-virtuoso/src/comparators.tsx","../node_modules/react-virtuoso/src/sizeRangeSystem.ts","../node_modules/react-virtuoso/src/listStateSystem.ts","../node_modules/react-virtuoso/src/utils/simpleMemoize.ts","../node_modules/react-virtuoso/src/initialItemCountSystem.ts","../node_modules/react-virtuoso/src/scrollSeekSystem.ts","../node_modules/react-virtuoso/src/topItemCountSystem.ts","../node_modules/react-virtuoso/src/totalListHeightSystem.ts","../node_modules/react-virtuoso/src/upwardScrollFixSystem.ts","../node_modules/react-virtuoso/src/initialScrollTopSystem.ts","../node_modules/react-virtuoso/src/alignToBottomSystem.ts","../node_modules/react-virtuoso/src/windowScrollerSystem.ts","../node_modules/react-virtuoso/src/scrollIntoViewSystem.ts","../node_modules/react-virtuoso/src/listSystem.ts","../node_modules/react-virtuoso/src/utils/positionStickyCssValue.ts","../node_modules/react-virtuoso/src/hooks/useWindowViewportRect.ts","../node_modules/react-virtuoso/src/List.tsx","../node_modules/react-virtuoso/src/gridSystem.ts","../node_modules/react-virtuoso/src/Grid.tsx","../node_modules/react-virtuoso/src/Table.tsx","../node_modules/react-virtuoso/src/components.tsx","Components/ActivityLog.js","Views/Profile/LastWeekOnlineHours.js","Views/Profile/LastWeekOfflineHours.js","Components/OfficeHoursCard.js","Components/LocationCard.js","Views/Dashboard.js","Views/Device/DeviceCalendar.js","Components/Device/DatagridMacAddress.js","Components/Icons/DeviceIcons.js","Components/Device/GetDeviceIcon.js","Views/Device/DeviceView.js","../node_modules/@mui/utils/esm/scrollLeft.js","../node_modules/@mui/material/internal/animate.js","../node_modules/@mui/material/Tabs/ScrollbarSize.js","../node_modules/@mui/material/TabScrollButton/tabScrollButtonClasses.js","../node_modules/@mui/material/TabScrollButton/TabScrollButton.js","../node_modules/@mui/material/Tabs/tabsClasses.js","../node_modules/@mui/material/Tabs/Tabs.js","../node_modules/@mui/material/Tab/tabClasses.js","../node_modules/@mui/material/Tab/Tab.js","Views/Device/DeviceRoutes.js","Components/Groups/SocialGroupHeader.js","../node_modules/@mui/material/CardMedia/cardMediaClasses.js","../node_modules/@mui/material/CardMedia/CardMedia.js","Components/Groups/SocialGroupModal.js","Components/Groups/SocialGroupSettingsAdmin.js","Components/Groups/SocialGroupSettingsUser.js","Views/Groups/GroupSettings.js","Components/Groups/SocialGroupActivityLogModal.js","Components/Groups/DatagridColumns.js","Components/Groups/DatagridColumnsMobile.js","Components/Groups/SocialGroupToolbar.js","Views/Groups/GroupView.js","Components/Groups/SocialGroupInviteDatagrid.js","Views/Groups/GroupInvitations.js","Views/Groups/GroupRoutes.js","Views/Groups/GroupsList.js","Components/MyConnections/DatagridColumns.js","Components/MyConnections/DatagridColumnsMobile.js","Views/MyConnections/MyConnectionsView.js","Views/Profile/ProfileIcon.js","Views/Profile/ProfileText.js","Views/Profile/ProfileCalendar.js","Components/InteractiveDeviceList.js","Components/MacTagsInput.js","Components/Device/DisplayDeviceIcons.js","Views/Profile/ProfileDevices.js","Components/Profile/SocialLinks.js","Components/Profile/ProfilePermissions.js","Views/Profile/ProfileSettings.js","Components/Profile/ProfileMutualSocialGroups.js","Views/Profile/ProfileView.js","Views/SocialGroupInvite.js","../node_modules/@date-io/moment/build/index.esm.js","Components/Admin/CreateToken.js","Components/Admin/ModifyToken.js","Views/Admin/AdminTokens.js","../../packages/kerberus-components/src/Components/ValidV4.js","../../packages/kerberus-components/node_modules/uuid/dist/esm-browser/version.js","Views/OrganizationShare.js","Views/DashboardMobile.js","App.js","../node_modules/@mui/material/styles/responsiveFontSizes.js","../node_modules/@mui/material/Stepper/stepperClasses.js","../node_modules/@mui/material/Stepper/StepperContext.js","../node_modules/@mui/material/Step/StepContext.js","../node_modules/@mui/material/StepConnector/stepConnectorClasses.js","../node_modules/@mui/material/StepConnector/StepConnector.js","../node_modules/@mui/material/Stepper/Stepper.js","../node_modules/@mui/material/Step/stepClasses.js","../node_modules/@mui/material/Step/Step.js","../node_modules/@mui/material/internal/svg-icons/CheckCircle.js","../node_modules/@mui/material/internal/svg-icons/Warning.js","../node_modules/@mui/material/StepIcon/stepIconClasses.js","../node_modules/@mui/material/StepIcon/StepIcon.js","../node_modules/@mui/material/StepLabel/stepLabelClasses.js","../node_modules/@mui/material/StepLabel/StepLabel.js","Components/AccountCreate/ProfileSettings.js","Components/AccountCreate/AccountSettings.js","Components/AccountCreate/DataSharing.js","Components/AccountCreate/AccountCreateStepper.js","Views/AccountCreate.js","Components/TermsConditions.js","Components/Backend/RootRoute.js","index.js"],"sourcesContent":["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;","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;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","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\nmodule.exports = _assertThisInitialized;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","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 return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","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 = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\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\nmodule.exports = _interopRequireWildcard;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\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;","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;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\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\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\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","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","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} 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 {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 { 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","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","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","import { 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, 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 getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n\n if (match) {\n // The match may be something like 'Object.createEmotionProps'\n var parts = match[1].split('.');\n return parts[parts.length - 1];\n } // Safari / Firefox\n\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return 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 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 Noop = function Noop() {\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 type = 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 var rules = insertStyles(cache, serialized, typeof type === 'string');\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 var ele = /*#__PURE__*/createElement(type, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\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 _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\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 = /(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","/*\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","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 insertStyles = function insertStyles(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\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 };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","\"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: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n}, \"1\")], 'AccessTime');\n\nexports.default = _default;","\"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: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\"\n}), 'AddBox');\n\nexports.default = _default;","\"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: \"M19 7v2.99s-1.99.01-2 0V7h-3s.01-1.99 0-2h3V2h2v3h3v2h-3zm-3 4V8h-3V5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8h-3zM5 19l3-4 2 3 3-4 4 5H5z\"\n}), 'AddPhotoAlternate');\n\nexports.default = _default;","\"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: \"M17 11c.34 0 .67.04 1 .09V6.27L10.5 3 3 6.27v4.91c0 4.54 3.2 8.79 7.5 9.82.55-.13 1.08-.32 1.6-.55-.69-.98-1.1-2.17-1.1-3.45 0-3.31 2.69-6 6-6z\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 13c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1.38c.62 0 1.12.51 1.12 1.12s-.51 1.12-1.12 1.12-1.12-.51-1.12-1.12.5-1.12 1.12-1.12zm0 5.37c-.93 0-1.74-.46-2.24-1.17.05-.72 1.51-1.08 2.24-1.08s2.19.36 2.24 1.08c-.5.71-1.31 1.17-2.24 1.17z\"\n}, \"1\")], 'AdminPanelSettings');\n\nexports.default = _default;","\"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: \"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm4 4H9v-2h2v2zm0-4H9V9h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"\n}), 'Apartment');\n\nexports.default = _default;","\"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: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"\n}), 'ArrowBack');\n\nexports.default = _default;","\"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: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"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: \"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n}), 'ArrowForward');\n\nexports.default = _default;","\"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: \"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z\"\n}), 'ArrowForwardIos');\n\nexports.default = _default;","\"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: \"m10 17 5-5-5-5v10z\"\n}), 'ArrowRight');\n\nexports.default = _default;","\"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: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n}), 'Article');\n\nexports.default = _default;","\"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 fillRule: \"evenodd\",\n d: \"M13 9.5h5v-2h-5v2zm0 7h5v-2h-5v2zm6 4.5H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v14c0 1.1-.9 2-2 2zM6 11h5V6H6v5zm1-4h3v3H7V7zM6 18h5v-5H6v5zm1-4h3v3H7v-3z\"\n}), 'Ballot');\n\nexports.default = _default;","\"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 React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11 20v-3H7v3.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V17h-4.4L11 20z\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n fillOpacity: \".3\",\n d: \"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V17h4v-2.5H9L13 7v5.5h2L12.6 17H17V5.33C17 4.6 16.4 4 15.67 4z\"\n })]\n}), 'BatteryCharging20');\n\nexports.default = _default;","\"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 React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n fillOpacity: \".3\",\n d: \"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v9.17h2L13 7v5.5h2l-1.07 2H17V5.33C17 4.6 16.4 4 15.67 4z\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11 20v-5.5H7v6.17C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V14.5h-3.07L11 20z\"\n })]\n}), 'BatteryCharging30');\n\nexports.default = _default;","\"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 React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n fillOpacity: \".3\",\n d: \"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V11h3.87L13 7v4h4V5.33C17 4.6 16.4 4 15.67 4z\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M13 12.5h2L11 20v-5.5H9l1.87-3.5H7v9.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V11h-4v1.5z\"\n })]\n}), 'BatteryCharging60');\n\nexports.default = _default;","\"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 React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n fillOpacity: \".3\",\n d: \"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V8h5.47L13 7v1h4V5.33C17 4.6 16.4 4 15.67 4z\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M13 12.5h2L11 20v-5.5H9L12.47 8H7v12.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V8h-4v4.5z\"\n })]\n}), 'BatteryCharging90');\n\nexports.default = _default;","\"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: \"M17.71 7.71 12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88z\"\n}), 'Bluetooth');\n\nexports.default = _default;","\"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: \"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM9 14H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm-8 4H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2z\"\n}), 'CalendarMonth');\n\nexports.default = _default;","\"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: \"M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z\"\n}), 'CalendarToday');\n\nexports.default = _default;","\"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: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;","\"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: \"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z\"\n}), 'Chat');\n\nexports.default = _default;","\"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: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckCircle');\n\nexports.default = _default;","\"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: \"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\"\n}), 'ChevronLeft');\n\nexports.default = _default;","\"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: \"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'ChevronRight');\n\nexports.default = _default;","\"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: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z\"\n}), 'Circle');\n\nexports.default = _default;","\"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: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');\n\nexports.default = _default;","\"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: \"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z\"\n}), 'Computer');\n\nexports.default = _default;","\"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 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z\"\n}), 'ContentCopy');\n\nexports.default = _default;","\"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: \"M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z\"\n}), 'Dashboard');\n\nexports.default = _default;","\"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: \"M3 3h8v8H3zm10 0h8v8h-8zM3 13h8v8H3zm15 0h-2v3h-3v2h3v3h2v-3h3v-2h-3z\"\n}), 'DashboardCustomize');\n\nexports.default = _default;","\"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: \"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z\"\n}), 'DateRange');\n\nexports.default = _default;","\"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: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\n\nexports.default = _default;","\"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: \"M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7l-2 3v1h8v-1l-2-3h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 12H3V4h18v10z\"\n}), 'DesktopMac');\n\nexports.default = _default;","\"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: \"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14zM12 6.72c-1.96 0-3.5 1.52-3.5 3.47h1.75c0-.93.82-1.75 1.75-1.75s1.75.82 1.75 1.75c0 1.75-2.63 1.57-2.63 4.45h1.76c0-1.96 2.62-2.19 2.62-4.45 0-1.96-1.54-3.47-3.5-3.47zm-.88 8.8h1.76v1.76h-1.76z\"\n}), 'DeviceUnknown');\n\nexports.default = _default;","\"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: \"M3 6h18V4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V6zm10 6H9v1.78c-.61.55-1 1.33-1 2.22s.39 1.67 1 2.22V20h4v-1.78c.61-.55 1-1.34 1-2.22s-.39-1.67-1-2.22V12zm-2 5.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM22 8h-6c-.5 0-1 .5-1 1v10c0 .5.5 1 1 1h6c.5 0 1-.5 1-1V9c0-.5-.5-1-1-1zm-1 10h-4v-8h4v8z\"\n}), 'DevicesOther');\n\nexports.default = _default;","\"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: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-3.3 0-6 2.7-6 6s2.7 6 6 6 6-2.7 6-6-2.6-6-6-6zm3 7H9v-2h6v2z\"\n}), 'DoNotDisturbOnTotalSilence');\n\nexports.default = _default;","\"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: \"M18.32 4.26C16.84 3.05 15.01 2.25 13 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1c.86 1.11 1.44 2.44 1.62 3.9zm-1.62 5.9 1.43 1.43c1.21-1.48 2.01-3.32 2.21-5.32h-2.02c-.18 1.45-.76 2.78-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zM13 12V7h-2v5H7l5 5 5-5h-4zm-2 7.93v2.02c-5.05-.5-9-4.76-9-9.95s3.95-9.45 9-9.95v2.02C7.05 4.56 4 7.92 4 12s3.05 7.44 7 7.93z\"\n}), 'Downloading');\n\nexports.default = _default;","\"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: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), 'Edit');\n\nexports.default = _default;","\"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: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM8.5 8c.83 0 1.5.67 1.5 1.5S9.33 11 8.5 11 7 10.33 7 9.5 7.67 8 8.5 8zM12 18c-2.28 0-4.22-1.66-5-4h10c-.78 2.34-2.72 4-5 4zm3.5-7c-.83 0-1.5-.67-1.5-1.5S14.67 8 15.5 8s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"\n}), 'EmojiEmotions');\n\nexports.default = _default;","\"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: \"M10 20h4V4h-4v16zm-6 0h4v-8H4v8zM16 9v11h4V9h-4z\"\n}), 'Equalizer');\n\nexports.default = _default;","\"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 _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: \"M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z\"\n}), 'Forum');\n\nexports.default = _default;","\"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: \"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\n}), 'Fullscreen');\n\nexports.default = _default;","\"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: \"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"\n}), 'FullscreenExit');\n\nexports.default = _default;","\"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: \"m5.2494 8.0688 2.83-2.8269 14.1343 14.15-2.83 2.8269zm4.2363-4.2415 2.828-2.8289 5.6577 5.656-2.828 2.8289zM.9989 12.3147l2.8284-2.8285 5.6569 5.6569-2.8285 2.8284zM1 21h12v2H1z\"\n}), 'Gavel');\n\nexports.default = _default;","\"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 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z\"\n}), 'Group');\n\nexports.default = _default;","\"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: \"M22 9V7h-2v2h-2v2h2v2h2v-2h2V9zM8 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 1c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4zm4.51-8.95C13.43 5.11 14 6.49 14 8s-.57 2.89-1.49 3.95C14.47 11.7 16 10.04 16 8s-1.53-3.7-3.49-3.95zm4.02 9.78C17.42 14.66 18 15.7 18 17v3h2v-3c0-1.45-1.59-2.51-3.47-3.17z\"\n}), 'GroupAdd');\n\nexports.default = _default;","\"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: \"M12 12.75c1.63 0 3.07.39 4.24.9 1.08.48 1.76 1.56 1.76 2.73V18H6v-1.61c0-1.18.68-2.26 1.76-2.73 1.17-.52 2.61-.91 4.24-.91zM4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58C.48 14.9 0 15.62 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85-.85-.37-1.79-.58-2.78-.58-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zM12 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z\"\n}), 'Groups');\n\nexports.default = _default;","\"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: \"M12 3c-4.97 0-9 4.03-9 9v7c0 1.1.9 2 2 2h4v-8H5v-1c0-3.87 3.13-7 7-7s7 3.13 7 7v1h-4v8h4c1.1 0 2-.9 2-2v-7c0-4.97-4.03-9-9-9z\"\n}), 'Headphones');\n\nexports.default = _default;","\"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: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"\n}), 'Help');\n\nexports.default = _default;","\"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: \"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z\"\n}), 'History');\n\nexports.default = _default;","\"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: \"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\"\n}), 'Home');\n\nexports.default = _default;","\"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: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n}), 'Info');\n\nexports.default = _default;","\"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: \"M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z\"\n}), 'KeyboardBackspace');\n\nexports.default = _default;","\"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: \"M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z\"\n}), 'Label');\n\nexports.default = _default;","\"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: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z\"\n}), 'Language');\n\nexports.default = _default;","\"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: \"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z\"\n}), 'LibraryAddCheck');\n\nexports.default = _default;","\"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 React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z\"\n}), 'LinkedIn');\n\nexports.default = _default;","\"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: \"m21.41 11.58-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z\"\n}), 'LocalOffer');\n\nexports.default = _default;","\"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: \"M12 6.5c1.38 0 2.5 1.12 2.5 2.5 0 .74-.33 1.39-.83 1.85l3.63 3.63c.98-1.86 1.7-3.8 1.7-5.48 0-3.87-3.13-7-7-7-1.98 0-3.76.83-5.04 2.15l3.19 3.19c.46-.52 1.11-.84 1.85-.84zm4.37 9.6-4.63-4.63-.11-.11L3.27 3 2 4.27l3.18 3.18C5.07 7.95 5 8.47 5 9c0 5.25 7 13 7 13s1.67-1.85 3.38-4.35L18.73 21 20 19.73l-3.63-3.63z\"\n}), 'LocationOff');\n\nexports.default = _default;","\"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: \"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"\n}), 'LocationOn');\n\nexports.default = _default;","\"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: \"m17 7-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z\"\n}), 'Logout');\n\nexports.default = _default;","\"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: \"m17.34 20-3.54-3.54 1.41-1.41 2.12 2.12 4.24-4.24L23 14.34 17.34 20zM12 17c0-3.87 3.13-7 7-7 1.08 0 2.09.25 3 .68V4c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v18l4-4h6c0-.17.01-.33.03-.5-.02-.16-.03-.33-.03-.5z\"\n}), 'MarkChatRead');\n\nexports.default = _default;","\"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: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"\n}), 'Menu');\n\nexports.default = _default;","\"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: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreVert');\n\nexports.default = _default;","\"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: \"M3 11c0 2.45 1.76 4.47 4.08 4.91l-1.49-1.49L7 13l4 4.01L7 21l-1.41-1.41 1.58-1.58v-.06C3.7 17.54 1 14.58 1 11c0-3.87 3.13-7 7-7h3v2H8c-2.76 0-5 2.24-5 5zm19 0V4h-9v7h9zm-2-2h-5V6h5v3zm-7 4h9v7h-9z\"\n}), 'MoveDown');\n\nexports.default = _default;","\"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: \"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10c1.38 0 2.5-1.12 2.5-2.5 0-.61-.23-1.2-.64-1.67-.08-.1-.13-.21-.13-.33 0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm5.5 11c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm-3-4c-.83 0-1.5-.67-1.5-1.5S13.67 6 14.5 6s1.5.67 1.5 1.5S15.33 9 14.5 9zM5 11.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S7.33 13 6.5 13 5 12.33 5 11.5zm6-4c0 .83-.67 1.5-1.5 1.5S8 8.33 8 7.5 8.67 6 9.5 6s1.5.67 1.5 1.5z\"\n}), 'Palette');\n\nexports.default = _default;","\"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 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z\"\n}), 'People');\n\nexports.default = _default;","\"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: \"M13 7h-2v2h2V7zm0 4h-2v6h2v-6zm4-9.99L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\"\n}), 'PermDeviceInformation');\n\nexports.default = _default;","\"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: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');\n\nexports.default = _default;","\"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 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm-2 20h-4v-1h4v1zm3.25-3H6.75V4h10.5v14z\"\n}), 'PhoneAndroid');\n\nexports.default = _default;","\"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: \"M15.5 1h-8C6.12 1 5 2.12 5 3.5v17C5 21.88 6.12 23 7.5 23h8c1.38 0 2.5-1.12 2.5-2.5v-17C18 2.12 16.88 1 15.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z\"\n}), 'PhoneIphone');\n\nexports.default = _default;","\"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: \"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"\n}), 'Place');\n\nexports.default = _default;","\"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: \"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z\"\n}), 'Report');\n\nexports.default = _default;","\"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: \"m20.2 5.9.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7zm-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1 .9 0 1.8.3 2.5 1l.8-.8zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zM8 18H6v-2h2v2zm3.5 0h-2v-2h2v2zm3.5 0h-2v-2h2v2z\"\n}), 'Router');\n\nexports.default = _default;","\"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: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"\n}), 'Search');\n\nexports.default = _default;","\"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: \"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\"\n}), 'Settings');\n\nexports.default = _default;","\"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 React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n fillOpacity: \".3\",\n d: \"M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z\"\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3.53 10.95l8.46 10.54.01.01.01-.01 8.46-10.54C20.04 10.62 16.81 8 12 8c-4.81 0-8.04 2.62-8.47 2.95z\"\n })]\n}), 'SignalWifi3Bar');\n\nexports.default = _default;","\"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: \"M24 8.98C20.93 5.9 16.69 4 12 4S3.07 5.9 0 8.98L12 21v-9h8.99L24 8.98zM19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41 19.59 14z\"\n}), 'SignalWifiBad');\n\nexports.default = _default;","\"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: \"M24 8.98C20.93 5.9 16.69 4 12 4S3.07 5.9 0 8.98L12 21v-9h8.99L24 8.98zM19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41 19.59 14z\"\n}), 'SignalWifiConnectedNoInternet4');\n\nexports.default = _default;","\"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: \"M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62z\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"circle\", {\n cx: \"9\",\n cy: \"13\",\n r: \"1\"\n}, \"1\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"circle\", {\n cx: \"15\",\n cy: \"13\",\n r: \"1\"\n}, \"2\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M18 11.03C17.52 8.18 15.04 6 12.05 6c-3.03 0-6.29 2.51-6.03 6.45 2.47-1.01 4.33-3.21 4.86-5.89 1.31 2.63 4 4.44 7.12 4.47z\"\n}, \"3\")], 'SupportAgent');\n\nexports.default = _default;","\"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: \"M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 1.99-.9 1.99-2L23 6c0-1.1-.9-2-2-2zm-2 14H5V6h14v12z\"\n}), 'Tablet');\n\nexports.default = _default;","\"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: \"M18 0H6C4.34 0 3 1.34 3 3v18c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V3c0-1.66-1.34-3-3-3zm-4 22h-4v-1h4v1zm5.25-3H4.75V3h14.5v16z\"\n}), 'TabletAndroid');\n\nexports.default = _default;","\"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: \"M19.97 6.43 12 2 4.03 6.43 9.1 9.24C9.83 8.48 10.86 8 12 8s2.17.48 2.9 1.24l5.07-2.81zM10 12c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm1 9.44L3 17V8.14l5.13 2.85c-.09.32-.13.66-.13 1.01 0 1.86 1.27 3.43 3 3.87v5.57zm2 0v-5.57c1.73-.44 3-2.01 3-3.87 0-.35-.04-.69-.13-1.01L21 8.14V17l-8 4.44z\"\n}), 'Token');\n\nexports.default = _default;","\"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: \"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z\"\n}), 'Tv');\n\nexports.default = _default;","\"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 React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 0 1-1.93.07 4.28 4.28 0 0 0 4 2.98 8.521 8.521 0 0 1-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z\"\n}), 'Twitter');\n\nexports.default = _default;","\"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: \"M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z\"\n}), 'Update');\n\nexports.default = _default;","\"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: \"M3 14h4v-4H3v4zm0 5h4v-4H3v4zM3 9h4V5H3v4zm5 5h13v-4H8v4zm0 5h13v-4H8v4zM8 5v4h13V5H8z\"\n}), 'ViewList');\n\nexports.default = _default;","\"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: \"M14.67 5v6.5H9.33V5h5.34zm1 6.5H21V5h-5.33v6.5zm-1 7.5v-6.5H9.33V19h5.34zm1-6.5V19H21v-6.5h-5.33zm-7.34 0H3V19h5.33v-6.5zm0-1V5H3v6.5h5.33z\"\n}), 'ViewModule');\n\nexports.default = _default;","\"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: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","\"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: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","\"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: \"M20 12c0-2.54-1.19-4.81-3.04-6.27L16 0H8l-.95 5.73C5.19 7.19 4 9.45 4 12s1.19 4.81 3.05 6.27L8 24h8l.96-5.73C18.81 16.81 20 14.54 20 12zM6 12c0-3.31 2.69-6 6-6s6 2.69 6 6-2.69 6-6 6-6-2.69-6-6z\"\n}), 'Watch');\n\nexports.default = _default;","\"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 React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.75 13.96c.25.13.41.2.46.3.06.11.04.61-.21 1.18-.2.56-1.24 1.1-1.7 1.12-.46.02-.47.36-2.96-.73-2.49-1.09-3.99-3.75-4.11-3.92-.12-.17-.96-1.38-.92-2.61.05-1.22.69-1.8.95-2.04.24-.26.51-.29.68-.26h.47c.15 0 .36-.06.55.45l.69 1.87c.06.13.1.28.01.44l-.27.41-.39.42c-.12.12-.26.25-.12.5.12.26.62 1.09 1.32 1.78.91.88 1.71 1.17 1.95 1.3.24.14.39.12.54-.04l.81-.94c.19-.25.35-.19.58-.11l1.67.88M12 2a10 10 0 0 1 10 10 10 10 0 0 1-10 10c-1.97 0-3.8-.57-5.35-1.55L2 22l1.55-4.65A9.969 9.969 0 0 1 2 12 10 10 0 0 1 12 2m0 2a8 8 0 0 0-8 8c0 1.72.54 3.31 1.46 4.61L4.5 19.5l2.89-.96A7.95 7.95 0 0 0 12 20a8 8 0 0 0 8-8 8 8 0 0 0-8-8z\"\n}), 'WhatsApp');\n\nexports.default = _default;","\"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: \"M18 11c1.49 0 2.87.47 4 1.26V8c0-1.11-.89-2-2-2h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h7.68c-.43-.91-.68-1.92-.68-3 0-3.87 3.13-7 7-7zm-8-7h4v2h-4V4z\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M18 13c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L17.5 18.2V15h1v2.79l1.85 1.85-.7.71z\"\n}, \"1\")], 'WorkHistory');\n\nexports.default = _default;","\"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: \"m23 21.74-1.46-1.46L7.21 5.95 3.25 1.99 1.99 3.25l2.7 2.7h-.64c-1.11 0-1.99.89-1.99 2l-.01 11c0 1.11.89 2 2 2h15.64L21.74 23 23 21.74zM22 7.95c.05-1.11-.84-2-1.95-1.95h-4V3.95c0-1.11-.89-2-2-1.95h-4c-1.11-.05-2 .84-2 1.95v.32l13.95 14V7.95zM14.05 6H10V3.95h4.05V6z\"\n}), 'WorkOff');\n\nexports.default = _default;","\"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\");","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. It supports those theme colors that make sense for this component.\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;","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;","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 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}","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 memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|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 { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, 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 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 Noop = function Noop() {\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 var rules = insertStyles(cache, serialized, typeof finalTag === 'string');\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 var ele = /*#__PURE__*/createElement(finalTag, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\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.5.2\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 _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 { 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.substr(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].substr(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 * 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}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\n\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || []; // Sort in ascending order\n\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n}; // Keep in mind that @media is inclusive by the CSS specification.\n\n\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n 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 },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n\n return up(key);\n }\n\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\n\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n return muiTheme;\n}\n\nexport default createTheme;","import { createUnarySpacing } from '../spacing';\n\n/* tslint:enable:unified-signatures */\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n\n spacing.mui = true;\n return spacing;\n}","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;","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 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 const themeSpacing = getPath(theme, themeKey) || 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}","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 }\n\n return path.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, 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;","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 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 { 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 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}","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;","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 _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}","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 createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","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 _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(props) : 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;","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 { unstable_capitalize as capitalize } from '@mui/utils';\nexport default capitalize;","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;","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","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_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_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 { 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}","import { unstable_ownerDocument as ownerDocument } from '@mui/utils';\nexport default ownerDocument;","import { unstable_ownerWindow as ownerWindow } from '@mui/utils';\nexport default ownerWindow;","import { unstable_useControlled as useControlled } from '@mui/utils';\nexport default useControlled;","import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nexport default useEnhancedEffect;","import { unstable_useEventCallback as useEventCallback } from '@mui/utils';\nexport default useEventCallback;","import { unstable_useForkRef as useForkRef } from '@mui/utils';\nexport default useForkRef;","import { unstable_useId as useId } from '@mui/utils';\nexport default useId;","import { unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nexport default useIsFocusVisible;","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 _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}","/**\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}","// 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 _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}","/**\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}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\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}","/**\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}","/* 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}","import * as React from 'react';\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","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}","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 * 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}","// 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}","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\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","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","var conversions = {\r\n // length\r\n 'px': {\r\n 'px': 1,\r\n 'cm': 96.0/2.54,\r\n 'mm': 96.0/25.4,\r\n 'in': 96,\r\n 'pt': 96.0/72.0,\r\n 'pc': 16\r\n },\r\n 'cm': {\r\n 'px': 2.54/96.0,\r\n 'cm': 1,\r\n 'mm': 0.1,\r\n 'in': 2.54,\r\n 'pt': 2.54/72.0,\r\n 'pc': 2.54/6.0\r\n },\r\n 'mm': {\r\n 'px': 25.4/96.0,\r\n 'cm': 10,\r\n 'mm': 1,\r\n 'in': 25.4,\r\n 'pt': 25.4/72.0,\r\n 'pc': 25.4/6.0\r\n },\r\n 'in': {\r\n 'px': 1.0/96.0,\r\n 'cm': 1.0/2.54,\r\n 'mm': 1.0/25.4,\r\n 'in': 1,\r\n 'pt': 1.0/72.0,\r\n 'pc': 1.0/6.0\r\n },\r\n 'pt': {\r\n 'px': 0.75,\r\n 'cm': 72.0/2.54,\r\n 'mm': 72.0/25.4,\r\n 'in': 72,\r\n 'pt': 1,\r\n 'pc': 12\r\n },\r\n 'pc': {\r\n 'px': 6.0/96.0,\r\n 'cm': 6.0/2.54,\r\n 'mm': 6.0/25.4,\r\n 'in': 6,\r\n 'pt': 6.0/72.0,\r\n 'pc': 1\r\n },\r\n // angle\r\n 'deg': {\r\n 'deg': 1,\r\n 'grad': 0.9,\r\n 'rad': 180/Math.PI,\r\n 'turn': 360\r\n },\r\n 'grad': {\r\n 'deg': 400/360,\r\n 'grad': 1,\r\n 'rad': 200/Math.PI,\r\n 'turn': 400\r\n },\r\n 'rad': {\r\n 'deg': Math.PI/180,\r\n 'grad': Math.PI/200,\r\n 'rad': 1,\r\n 'turn': Math.PI*2\r\n },\r\n 'turn': {\r\n 'deg': 1/360,\r\n 'grad': 1/400,\r\n 'rad': 0.5/Math.PI,\r\n 'turn': 1\r\n },\r\n // time\r\n 's': {\r\n 's': 1,\r\n 'ms': 1/1000\r\n },\r\n 'ms': {\r\n 's': 1000,\r\n 'ms': 1\r\n },\r\n // frequency\r\n 'Hz': {\r\n 'Hz': 1,\r\n 'kHz': 1000\r\n },\r\n 'kHz': {\r\n 'Hz': 1/1000,\r\n 'kHz': 1\r\n },\r\n // resolution\r\n 'dpi': {\r\n 'dpi': 1,\r\n 'dpcm': 1.0/2.54,\r\n 'dppx': 1/96\r\n },\r\n 'dpcm': {\r\n 'dpi': 2.54,\r\n 'dpcm': 1,\r\n 'dppx': 2.54/96.0\r\n },\r\n 'dppx': {\r\n 'dpi': 96,\r\n 'dpcm': 96.0/2.54,\r\n 'dppx': 1\r\n }\r\n};\r\n\r\nmodule.exports = function (value, sourceUnit, targetUnit, precision) {\r\n if (!conversions.hasOwnProperty(targetUnit))\r\n throw new Error(\"Cannot convert to \" + targetUnit);\r\n\r\n if (!conversions[targetUnit].hasOwnProperty(sourceUnit))\r\n throw new Error(\"Cannot convert from \" + sourceUnit + \" to \" + targetUnit);\r\n \r\n var converted = conversions[targetUnit][sourceUnit] * value;\r\n \r\n if (precision !== false) {\r\n precision = Math.pow(10, parseInt(precision) || 5);\r\n return Math.round(converted * precision) / precision;\r\n }\r\n \r\n return converted;\r\n};\r\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","const HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';\n\nconst { keys } = Object;\n\ntype Cache = {\n add: (value: any) => void;\n has: (value: any) => boolean;\n};\n\nexport type EqualityComparator = (a: any, b: any, meta?: any) => boolean;\n\n/**\n * are the values passed strictly equal or both NaN\n *\n * @param a the value to compare against\n * @param b the value to test\n * @returns are the values equal by the SameValueZero principle\n */\nexport function sameValueZeroEqual(a: any, b: any) {\n return a === b || (a !== a && b !== b);\n}\n\n/**\n * is the value a plain object\n *\n * @param value the value to test\n * @returns is the value a plain object\n */\nexport function isPlainObject(value: any) {\n return value.constructor === Object || value.constructor == null;\n}\n\n/**\n * is the value promise-like (meaning it is thenable)\n *\n * @param value the value to test\n * @returns is the value promise-like\n */\nexport function isPromiseLike(value: any) {\n return !!value && typeof value.then === 'function';\n}\n\n/**\n * is the value passed a react element\n *\n * @param value the value to test\n * @returns is the value a react element\n */\nexport function isReactElement(value: any) {\n return !!(value && value.$$typeof);\n}\n\n/**\n * in cases where WeakSet is not supported, creates a new custom\n * object that mimics the necessary API aspects for cache purposes\n *\n * @returns the new cache object\n */\nexport function getNewCacheFallback(): Cache {\n const values: any[] = [];\n\n return {\n add(value: any) {\n values.push(value);\n },\n\n has(value: any) {\n return values.indexOf(value) !== -1;\n },\n };\n}\n\n/**\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const getNewCache = ((canUseWeakMap: boolean) => {\n if (canUseWeakMap) {\n return function _getNewCache(): Cache {\n return new WeakSet();\n };\n }\n\n return getNewCacheFallback;\n})(HAS_WEAKSET_SUPPORT);\n\n/**\n * create a custom isEqual handler specific to circular objects\n *\n * @param [isEqual] the isEqual comparator to use instead of isDeepEqual\n * @returns the method to create the `isEqual` function\n */\nexport function createCircularEqualCreator(isEqual?: EqualityComparator) {\n return function createCircularEqual(comparator: EqualityComparator) {\n const _comparator = isEqual || comparator;\n\n return function circularEqual(\n a: any,\n b: any,\n cache: Cache = getNewCache(),\n ) {\n const isCacheableA = !!a && typeof a === 'object';\n const isCacheableB = !!b && typeof b === 'object';\n\n if (isCacheableA || isCacheableB) {\n const hasA = isCacheableA && cache.has(a);\n const hasB = isCacheableB && cache.has(b);\n\n if (hasA || hasB) {\n return hasA && hasB;\n }\n\n if (isCacheableA) {\n cache.add(a);\n }\n\n if (isCacheableB) {\n cache.add(b);\n }\n }\n\n return _comparator(a, b, cache);\n };\n };\n}\n\n/**\n * are the arrays equal in value\n *\n * @param a the array to test\n * @param b the array to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta object to pass through\n * @returns are the arrays equal\n */\nexport function areArraysEqual(\n a: any[],\n b: any[],\n isEqual: EqualityComparator,\n meta: any,\n) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (!isEqual(a[index], b[index], meta)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * are the maps equal in value\n *\n * @param a the map to test\n * @param b the map to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta map to pass through\n * @returns are the maps equal\n */\nexport function areMapsEqual(\n a: Map,\n b: Map,\n isEqual: EqualityComparator,\n meta: any,\n) {\n let isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n const matchedIndices: Record = {};\n\n a.forEach((aValue, aKey) => {\n if (isValueEqual) {\n let hasMatch = false;\n let matchIndex = 0;\n\n b.forEach((bValue, bKey) => {\n if (!hasMatch && !matchedIndices[matchIndex]) {\n hasMatch =\n isEqual(aKey, bKey, meta) && isEqual(aValue, bValue, meta);\n\n if (hasMatch) {\n matchedIndices[matchIndex] = true;\n }\n }\n\n matchIndex++;\n });\n\n isValueEqual = hasMatch;\n }\n });\n }\n\n return isValueEqual;\n}\n\ntype Dictionary = {\n [key: string]: Type;\n [index: number]: Type;\n};\n\nconst OWNER = '_owner';\n\nconst hasOwnProperty = Function.prototype.bind.call(\n Function.prototype.call,\n Object.prototype.hasOwnProperty,\n);\n\n/**\n * are the objects equal in value\n *\n * @param a the object to test\n * @param b the object to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta object to pass through\n * @returns are the objects equal\n */\nexport function areObjectsEqual(\n a: Dictionary,\n b: Dictionary,\n isEqual: EqualityComparator,\n meta: any,\n) {\n const keysA = keys(a);\n\n let index = keysA.length;\n\n if (keys(b).length !== index) {\n return false;\n }\n\n if (index) {\n let key: string;\n\n while (index-- > 0) {\n key = keysA[index];\n\n if (key === OWNER) {\n const reactElementA = isReactElement(a);\n const reactElementB = isReactElement(b);\n\n if (\n (reactElementA || reactElementB) &&\n reactElementA !== reactElementB\n ) {\n return false;\n }\n }\n\n if (!hasOwnProperty(b, key) || !isEqual(a[key], b[key], meta)) {\n return false;\n }\n }\n }\n\n return true;\n}\n\n/**\n * are the regExps equal in value\n *\n * @param a the regExp to test\n * @param b the regExp to test agains\n * @returns are the regExps equal\n */\nexport function areRegExpsEqual(a: RegExp, b: RegExp) {\n return (\n a.source === b.source &&\n a.global === b.global &&\n a.ignoreCase === b.ignoreCase &&\n a.multiline === b.multiline &&\n a.unicode === b.unicode &&\n a.sticky === b.sticky &&\n a.lastIndex === b.lastIndex\n );\n}\n\n/**\n * are the sets equal in value\n *\n * @param a the set to test\n * @param b the set to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta set to pass through\n * @returns are the sets equal\n */\nexport function areSetsEqual(\n a: Set,\n b: Set,\n isEqual: EqualityComparator,\n meta: any,\n) {\n let isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n const matchedIndices: Record = {};\n\n a.forEach((aValue) => {\n if (isValueEqual) {\n let hasMatch = false;\n let matchIndex = 0;\n\n b.forEach((bValue) => {\n if (!hasMatch && !matchedIndices[matchIndex]) {\n hasMatch = isEqual(aValue, bValue, meta);\n\n if (hasMatch) {\n matchedIndices[matchIndex] = true;\n }\n }\n\n matchIndex++;\n });\n\n isValueEqual = hasMatch;\n }\n });\n }\n\n return isValueEqual;\n}\n","import {\n EqualityComparator,\n areArraysEqual,\n areMapsEqual,\n areObjectsEqual,\n areRegExpsEqual,\n areSetsEqual,\n isPlainObject,\n isPromiseLike,\n sameValueZeroEqual,\n} from './utils';\n\nconst HAS_MAP_SUPPORT = typeof Map === 'function';\nconst HAS_SET_SUPPORT = typeof Set === 'function';\n\ntype EqualityComparatorCreator = (fn: EqualityComparator) => EqualityComparator;\n\nexport function createComparator(createIsEqual?: EqualityComparatorCreator) {\n const isEqual: EqualityComparator =\n /* eslint-disable no-use-before-define */\n typeof createIsEqual === 'function'\n ? createIsEqual(comparator)\n : comparator;\n /* eslint-enable */\n\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n *\n * @param a the value to test against\n * @param b the value to test\n * @param [meta] an optional meta object that is passed through to all equality test calls\n * @returns are a and b equivalent in value\n */\n function comparator(a: any, b: any, meta?: any) {\n if (a === b) {\n return true;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (isPlainObject(a) && isPlainObject(b)) {\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n let aShape = Array.isArray(a);\n let bShape = Array.isArray(b);\n\n if (aShape || bShape) {\n return aShape === bShape && areArraysEqual(a, b, isEqual, meta);\n }\n\n aShape = a instanceof Date;\n bShape = b instanceof Date;\n\n if (aShape || bShape) {\n return (\n aShape === bShape && sameValueZeroEqual(a.getTime(), b.getTime())\n );\n }\n\n aShape = a instanceof RegExp;\n bShape = b instanceof RegExp;\n\n if (aShape || bShape) {\n return aShape === bShape && areRegExpsEqual(a, b);\n }\n\n if (isPromiseLike(a) || isPromiseLike(b)) {\n return a === b;\n }\n\n if (HAS_MAP_SUPPORT) {\n aShape = a instanceof Map;\n bShape = b instanceof Map;\n\n if (aShape || bShape) {\n return aShape === bShape && areMapsEqual(a, b, isEqual, meta);\n }\n }\n\n if (HAS_SET_SUPPORT) {\n aShape = a instanceof Set;\n bShape = b instanceof Set;\n\n if (aShape || bShape) {\n return aShape === bShape && areSetsEqual(a, b, isEqual, meta);\n }\n }\n\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n return a !== a && b !== b;\n }\n\n return comparator;\n}\n","import { createComparator } from './comparator';\nimport { createCircularEqualCreator, sameValueZeroEqual } from './utils';\n\nexport { createComparator as createCustomEqual, sameValueZeroEqual };\n\nexport const deepEqual = createComparator();\nexport const shallowEqual = createComparator(() => sameValueZeroEqual);\n\nexport const circularDeepEqual = createComparator(createCircularEqualCreator());\nexport const circularShallowEqual = createComparator(\n createCircularEqualCreator(sameValueZeroEqual),\n);\n","'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","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","//! moment-timezone.js\n//! version : 0.5.34\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.34\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","//! moment.js\n//! version : 2.29.3\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.3';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","if performance? and performance.now\n module.exports = -> performance.now()\nelse if process? and process.hrtime\n module.exports = -> (getNanoSeconds() - nodeLoadTime) / 1e6\n hrtime = process.hrtime\n getNanoSeconds = ->\n hr = hrtime()\n hr[0] * 1e9 + hr[1]\n moduleLoadTime = getNanoSeconds()\n upTime = process.uptime() * 1e9\n nodeLoadTime = moduleLoadTime - upTime\nelse if Date.now\n module.exports = -> Date.now() - loadTime\n loadTime = Date.now()\nelse\n module.exports = -> new Date().getTime() - loadTime\n loadTime = new Date().getTime()\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 bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ba=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function q(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new q(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new q(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new q(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new q(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new q(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new q(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new q(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new q(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new q(a,5,!1,a.toLowerCase(),null,!1,!1)});var pa=/[\\-:]([a-z])/g;function qa(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(pa,\nqa);z[b]=new q(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(pa,qa);z[b]=new q(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(pa,qa);z[b]=new q(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new q(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ra(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{La=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ka(a):\"\"}\nfunction Na(a){switch(a.tag){case 5:return Ka(a.type);case 16:return Ka(\"Lazy\");case 13:return Ka(\"Suspense\");case 19:return Ka(\"SuspenseList\");case 0:case 2:case 15:return a=Ma(a.type,!1),a;case 11:return a=Ma(a.type.render,!1),a;case 1:return a=Ma(a.type,!0),a;default:return\"\"}}\nfunction Oa(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 va:return\"Fragment\";case ua:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ca:return\"Suspense\";case Da:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Aa:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Ba:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ea:return b=a.displayName||null,null!==b?b:Oa(a.type)||\"Memo\";case Fa:b=a._payload;a=a._init;try{return Oa(a(b))}catch(c){}}return null}\nfunction Pa(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Oa(b);case 8:return b===wa?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Qa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ra(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Sa(a){var b=Ra(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 Ta(a){a._valueTracker||(a._valueTracker=Sa(a))}function Ua(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ra(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Va(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 Wa(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Xa(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Qa(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 Ya(a,b){b=b.checked;null!=b&&ra(a,\"checked\",b,!1)}\nfunction Za(a,b){Ya(a,b);var c=Qa(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\")?$a(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&$a(a,b.type,Qa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction ab(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 $a(a,b,c){if(\"number\"!==b||Va(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var bb=Array.isArray;\nfunction cb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=jb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction lb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar mb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},nb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(mb).forEach(function(a){nb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);mb[b]=mb[a]})});function ob(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||mb.hasOwnProperty(a)&&mb[a]?(\"\"+b).trim():b+\"px\"}\nfunction pb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ob(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var qb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction rb(a,b){if(b){if(qb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction sb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var tb=null;function ub(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var vb=null,wb=null,xb=null;\nfunction yb(a){if(a=zb(a)){if(\"function\"!==typeof vb)throw Error(p(280));var b=a.stateNode;b&&(b=Ab(b),vb(a.stateNode,a.type,b))}}function Bb(a){wb?xb?xb.push(a):xb=[a]:wb=a}function Cb(){if(wb){var a=wb,b=xb;xb=wb=null;yb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(mc(a)/nc|0)|0}var oc=64,pc=4194304;\nfunction qc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function rc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=qc(h):(f&=g,0!==f&&(d=qc(f)))}else g=c&~e,0!==g?d=qc(g):0!==f&&(d=qc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}function wc(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-lc(b);a[b]=c}\nfunction xc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=Xd),$d=String.fromCharCode(32),ae=!1;\nfunction be(a,b){switch(a){case \"keyup\":return-1!==Vd.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function ce(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var de=!1;function ee(a,b){switch(a){case \"compositionend\":return ce(b);case \"keypress\":if(32!==b.which)return null;ae=!0;return $d;case \"textInput\":return a=b.data,a===$d&&ae?null:a;default:return null}}\nfunction fe(a,b){if(de)return\"compositionend\"===a||!Wd&&be(a,b)?(a=id(),hd=gd=fd=null,de=!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=Ee(c)}}function Ge(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ge(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction He(){for(var a=window,b=Va();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=Va(a.document)}return b}function Ie(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Je(a){var b=He(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Ge(c.ownerDocument.documentElement,c)){if(null!==d&&Ie(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Fe(c,f);var g=Fe(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Le=null,Me=null,Ne=null,Oe=!1;\nfunction Pe(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Oe||null==Le||Le!==Va(d)||(d=Le,\"selectionStart\"in d&&Ie(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}),Ne&&De(Ne,d)||(Ne=d,d=je(Me,\"onSelect\"),0Nf||(a.current=Mf[Nf],Mf[Nf]=null,Nf--)}function H(a,b){Nf++;Mf[Nf]=a.current;a.current=b}var Pf={},I=Of(Pf),Qf=Of(!1),Rf=Pf;function Sf(a,b){var c=a.type.contextTypes;if(!c)return Pf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Tf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Uf(){G(Qf);G(I)}function Vf(a,b,c){if(I.current!==Pf)throw Error(p(168));H(I,b);H(Qf,c)}function Wf(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Pa(a)||\"Unknown\",e));return A({},c,d)}\nfunction Xf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Pf;Rf=I.current;H(I,a);H(Qf,Qf.current);return!0}function Yf(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=Wf(a,b,Rf),d.__reactInternalMemoizedMergedChildContext=a,G(Qf),G(I),H(I,a)):G(Qf);H(Qf,c)}var Zf=null,$f=!1,ag=!1;function bg(a){null===Zf?Zf=[a]:Zf.push(a)}function cg(a){$f=!0;bg(a)}\nfunction dg(){if(!ag&&null!==Zf){ag=!0;var a=0,b=E;try{var c=Zf;for(E=1;a>=g;e-=g;Rg=1<<32-lc(b)+e|c<r?(x=m,m=null):x=m.sibling;var t=u(e,m,h[r],k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,r);null===n?l=t:n.sibling=t;n=t;m=x}if(r===h.length)return c(e,m),N&&Tg(e,r),l;if(null===m){for(;rr?(x=n,n=null):x=n.sibling;var v=u(e,n,t.value,k);if(null===v){null===n&&(n=x);break}a&&n&&null===v.alternate&&b(e,n);g=f(v,g,r);null===m?l=v:m.sibling=v;m=v;n=x}if(t.done)return c(e,\nn),N&&Tg(e,r),l;if(null===n){for(;!t.done;r++,t=h.next())t=w(e,t.value,k),null!==t&&(g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);N&&Tg(e,r);return l}for(n=d(e,n);!t.done;r++,t=h.next())t=y(n,e,r,t.value,k),null!==t&&(a&&null!==t.alternate&&n.delete(null===t.key?r:t.key),g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);a&&n.forEach(function(a){return b(e,a)});N&&Tg(e,r);return l}function C(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===va&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case ta:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===va){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Fa&&kh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=ih(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===va?(d=qh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=oh(f.type,f.key,f.props,null,a.mode,h),h.ref=ih(a,d,f),h.return=a,a=h)}return g(a);case ua:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ph(f,a.mode,h);d.return=a;a=d}return g(a);case Fa:return l=f._init,C(a,d,l(f._payload),h)}if(bb(f))return n(a,d,f,h);if(Ia(f))return v(a,d,f,h);jh(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=nh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return C}var rh=lh(!0),sh=lh(!1),th={},uh=Of(th),vh=Of(th),wh=Of(th);function xh(a){if(a===th)throw Error(p(174));return a}function yh(a,b){H(wh,b);H(vh,a);H(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:ib(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=ib(b,a)}G(uh);H(uh,b)}function zh(){G(uh);G(vh);G(wh)}\nfunction Ah(a){xh(wh.current);var b=xh(uh.current);var c=ib(b,a.type);b!==c&&(H(vh,a),H(uh,c))}function Bh(a){vh.current===a&&(G(uh),G(vh))}var P=Of(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;ac?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{E=c,Gh.transition=d}}function ti(){return Uh().memoizedState}function ui(a,b,c){var d=Dg(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};vi(a)?wi(b,c):(xi(a,b,c),c=M(),a=Eg(a,d,c),null!==a&&yi(a,b,d))}\nfunction gi(a,b,c){var d=Dg(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(vi(a))wi(b,e);else{xi(a,b,e);var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(Ce(h,g))return}catch(k){}finally{}c=M();a=Eg(a,d,c);null!==a&&yi(a,b,d)}}function vi(a){var b=a.alternate;return a===Q||null!==b&&b===Q}\nfunction wi(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function xi(a,b,c){null!==J&&0!==(a.mode&1)&&0===(K&2)?(a=b.interleaved,null===a?(c.next=c,null===qg?qg=[b]:qg.push(b)):(c.next=a.next,a.next=c),b.interleaved=c):(a=b.pending,null===a?c.next=c:(c.next=a.next,a.next=c),b.pending=c)}function yi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;yc(a,c)}}\nvar Rh={readContext:pg,useCallback:U,useContext:U,useEffect:U,useImperativeHandle:U,useInsertionEffect:U,useLayoutEffect:U,useMemo:U,useReducer:U,useRef:U,useState:U,useDebugValue:U,useDeferredValue:U,useTransition:U,useMutableSource:U,useSyncExternalStore:U,useId:U,unstable_isNewReconciler:!1},Oh={readContext:pg,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:pg,useEffect:ki,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ii(4194308,\n4,ni.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ii(4194308,4,a,b)},useInsertionEffect:function(a,b){return ii(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=ui.bind(null,Q,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:fi,useDebugValue:pi,useDeferredValue:function(a){var b=fi(a),c=b[0],d=b[1];ki(function(){var b=Gh.transition;Gh.transition={};try{d(a)}finally{Gh.transition=b}},[a]);return c},useTransition:function(){var a=fi(!1),b=a[0];a=si.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=Q,e=Th();if(N){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===J)throw Error(p(349));\n0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;ki(ai.bind(null,d,f,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=J.identifierPrefix;if(N){var c=Sg;var d=Rg;c=(d&~(1<<32-lc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):\n(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[If]=b;a[Jf]=d;Li(a,b,!1,!1);b.stateNode=a;a:{g=sb(c,d);switch(c){case \"dialog\":F(\"cancel\",a);F(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":F(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eTi&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,\nnull!==c&&(b.updateQueue=c,b.flags|=4),Pi(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!N)return V(b),null}else 2*D()-f.renderingStartTime>Ti&&1073741824!==c&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=D(),b.sibling=null,c=P.current,H(P,d?c&1|2:c&1),b;V(b);return null;case 22:case 23:return Ui(),d=null!==\nb.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(Vi&1073741824)&&(V(b),b.subtreeFlags&6&&(b.flags|=8192)):V(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}var Wi=sa.ReactCurrentOwner,og=!1;function Xi(a,b,c,d){b.child=null===a?sh(b,null,c,d):rh(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ng(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&c&&Vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=oh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:De;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=mh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a&&De(a.memoizedProps,d)&&a.ref===b.ref)if(og=!1,0!==(a.lanes&e))0!==(a.flags&131072)&&(og=!0);else return b.lanes=a.lanes,Zi(a,b,e);return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null},H(ej,Vi),Vi|=c;else if(0!==(c&1073741824))b.memoizedState={baseLanes:0,cachePool:null},d=null!==f?f.baseLanes:c,H(ej,Vi),Vi|=d;else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null},b.updateQueue=null,H(ej,Vi),Vi|=a,null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):\nd=c,H(ej,Vi),Vi|=d;Xi(a,b,e,c);return b.child}function fj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Tf(c)?Rf:I.current;f=Sf(b,f);ng(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&d&&Vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction gj(a,b,c,d,e){if(Tf(c)){var f=!0;Xf(b)}else f=!1;ng(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Hg(b,c,d),Jg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=pg(l):(l=Tf(c)?Rf:I.current,l=Sf(b,l));var m=c.getDerivedStateFromProps,w=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;w||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ig(b,g,d,l);rg=!1;var u=b.memoizedState;g.state=u;yg(b,d,g,e);k=b.memoizedState;h!==d||u!==k||Qf.current||rg?(\"function\"===typeof m&&(Cg(b,c,m,d),k=b.memoizedState),(h=rg||Gg(b,c,h,d,u,k,l))?(w||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4194308)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;tg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:fg(b.type,h);g.props=l;w=b.pendingProps;u=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=pg(k):(k=Tf(c)?Rf:I.current,k=Sf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===\ntypeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==w||u!==k)&&Ig(b,g,d,k);rg=!1;u=b.memoizedState;g.state=u;yg(b,d,g,e);var n=b.memoizedState;h!==w||u!==n||Qf.current||rg?(\"function\"===typeof y&&(Cg(b,c,y,d),n=b.memoizedState),(l=rg||Gg(b,c,l,d,u,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&\ng.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=\nk,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),d=!1)}return hj(a,b,c,d,f,e)}\nfunction hj(a,b,c,d,e,f){fj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&Yf(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=rh(b,a.child,null,f),b.child=rh(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&Yf(b,c,!0);return b.child}function ij(a){var b=a.stateNode;b.pendingContext?Vf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Vf(a,b.context,!1);yh(a,b.containerInfo)}\nfunction jj(a,b,c,d,e){gh();hh(e);b.flags|=256;Xi(a,b,c,d);return b.child}var kj={dehydrated:null,treeContext:null,retryLane:0};function lj(a){return{baseLanes:a,cachePool:null}}\nfunction mj(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;H(P,e&1);if(null===a){dh(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;e=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,e={mode:\"hidden\",children:e},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ne):f=nj(e,d,0,null),a=qh(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=lj(c),b.memoizedState=kj,a):oj(b,e)}e=a.memoizedState;if(null!==e){h=e.dehydrated;if(null!==h){if(g){if(b.flags&256)return b.flags&=-257,pj(a,b,c,Error(p(422)));if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=nj({mode:\"visible\",children:d.children},e,0,null);f=qh(f,e,c,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&rh(b,a.child,\nnull,c);b.child.memoizedState=lj(c);b.memoizedState=kj;return f}if(0===(b.mode&1))b=pj(a,b,c,null);else if(\"$!\"===h.data)b=pj(a,b,c,Error(p(419)));else if(d=0!==(c&a.childLanes),og||d){d=J;if(null!==d){switch(c&-c){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=\n268435456;break;default:f=0}d=0!==(f&(d.suspendedLanes|c))?0:f;0!==d&&d!==e.retryLane&&(e.retryLane=d,Eg(a,d,-1))}Si();b=pj(a,b,c,Error(p(421)))}else\"$?\"===h.data?(b.flags|=128,b.child=a.child,b=qj.bind(null,a),h._reactRetry=b,b=null):(c=e.treeContext,Yg=Ff(h.nextSibling),Xg=b,N=!0,Zg=null,null!==c&&(Og[Pg++]=Rg,Og[Pg++]=Sg,Og[Pg++]=Qg,Rg=c.id,Sg=c.overflow,Qg=b),b=oj(b,b.pendingProps.children),b.flags|=4096);return b}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,\nf.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}\nfunction oj(a,b){b=nj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){var e=a.child;a=e.sibling;c=mh(e,{mode:\"visible\",children:c});0===(b.mode&1)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(d=b.deletions,null===d?(b.deletions=[a],b.flags|=16):d.push(a));return b.child=c}\nfunction rj(a,b,c,d,e){var f=b.mode;a=a.child;var g=a.sibling,h={mode:\"hidden\",children:c};0===(f&1)&&b.child!==a?(c=b.child,c.childLanes=0,c.pendingProps=h,b.deletions=null):(c=mh(a,h),c.subtreeFlags=a.subtreeFlags&14680064);null!==g?d=mh(g,d):(d=qh(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function pj(a,b,c,d){null!==d&&hh(d);rh(b,a.child,null,c);a=oj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction tj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);mg(a.return,b,c)}function uj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction vj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&tj(a,c,b);else if(19===a.tag)tj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}H(P,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);uj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}uj(b,!0,c,null,f);break;case \"together\":uj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);zg|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=mh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=mh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction wj(a,b,c){switch(b.tag){case 3:ij(b);gh();break;case 5:Ah(b);break;case 1:Tf(b.type)&&Xf(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;H(gg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return H(P,P.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return mj(a,b,c);H(P,P.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}H(P,P.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return vj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);H(P,P.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}\nfunction xj(a,b){Wg(b);switch(b.tag){case 1:return Tf(b.type)&&Uf(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),G(Qf),G(I),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:G(P);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));gh()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return G(P),null;case 4:return zh(),null;case 10:return lg(b.type._context),null;case 22:case 23:return Ui(),\nnull;case 24:return null;default:return null}}var yj=!1,zj=!1,Aj=\"function\"===typeof WeakSet?WeakSet:Set,X=null;function Bj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){Cj(a,b,d)}else c.current=null}function Dj(a,b,c){try{c()}catch(d){Cj(a,b,d)}}var Ej=!1;\nfunction Fj(a,b){a=He();if(Ie(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(O){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,w=a,u=null;b:for(;;){for(var y;;){w!==c||0!==e&&3!==w.nodeType||(h=g+e);w!==f||0!==d&&3!==w.nodeType||(k=g+d);3===w.nodeType&&(g+=w.nodeValue.length);\nif(null===(y=w.firstChild))break;u=w;w=y}for(;;){if(w===a)break b;u===c&&++l===e&&(h=g);u===f&&++m===d&&(k=g);if(null!==(y=w.nextSibling))break;w=u;u=w.parentNode}w=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;xf={focusedElem:a,selectionRange:c};for(X=b;null!==X;)if(b=X,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,X=a;else for(;null!==X;){b=X;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;case 1:if(null!==\nn){var v=n.memoizedProps,C=n.memoizedState,t=b.stateNode,r=t.getSnapshotBeforeUpdate(b.elementType===b.type?v:fg(b.type,v),C);t.__reactInternalSnapshotBeforeUpdate=r}break;case 3:var x=b.stateNode.containerInfo;if(1===x.nodeType)x.textContent=\"\";else if(9===x.nodeType){var B=x.body;null!=B&&(B.textContent=\"\")}break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(O){Cj(b,b.return,O)}a=b.sibling;if(null!==a){a.return=b.return;X=a;break}X=b.return}n=Ej;Ej=!1;return n}\nfunction Gj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Dj(b,c,f)}e=e.next}while(e!==d)}}function Hj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Ij(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Jj(a,b,c){if(ic&&\"function\"===typeof ic.onCommitFiberUnmount)try{ic.onCommitFiberUnmount(hc,b)}catch(g){}switch(b.tag){case 0:case 11:case 14:case 15:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a=a.next;do{var e=d,f=e.destroy;e=e.tag;void 0!==f&&(0!==(e&2)?Dj(b,c,f):0!==(e&4)&&Dj(b,c,f));d=d.next}while(d!==a)}break;case 1:Bj(b,c);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(g){Cj(b,\nc,g)}break;case 5:Bj(b,c);break;case 4:Kj(a,b,c)}}function Lj(a){var b=a.alternate;null!==b&&(a.alternate=null,Lj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[If],delete b[Jf],delete b[jf],delete b[Kf],delete b[Lf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Mj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Nj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Mj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Oj(a){a:{for(var b=a.return;null!==b;){if(Mj(b))break a;b=b.return}throw Error(p(160));}var c=b;switch(c.tag){case 5:b=c.stateNode;c.flags&32&&(lb(b,\"\"),c.flags&=-33);c=Nj(a);Pj(a,c,b);break;case 3:case 4:b=c.stateNode.containerInfo;c=Nj(a);Qj(a,c,b);break;default:throw Error(p(161));}}\nfunction Qj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=wf));else if(4!==d&&(a=a.child,null!==a))for(Qj(a,b,c),a=a.sibling;null!==a;)Qj(a,b,c),a=a.sibling}\nfunction Pj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Pj(a,b,c),a=a.sibling;null!==a;)Pj(a,b,c),a=a.sibling}\nfunction Kj(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(p(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Jj(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(18===d.tag)g?(h=f,k=d.stateNode,8===h.nodeType?Ef(h.parentNode,k):1===h.nodeType&&Ef(h,k),Yc(h)):Ef(f,d.stateNode);else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Jj(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&\n(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Rj(a,b){switch(b.tag){case 0:case 11:case 14:case 15:Gj(3,b,b.return);Hj(3,b);Gj(5,b,b.return);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Ya(c,d);sb(a,e);b=sb(a,d);for(e=0;ee&&(e=g);d&=~f}d=e;d=D()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bk(d/1960))-d;if(10a?16:a;if(null===lk)var d=!1;else{a=lk;lk=null;mk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(X=a.current;null!==X;){var f=X,g=f.child;if(0!==(X.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kD()-Vj?Ak(a,0):hk|=c);tk(a,b)}function Ok(a,b){0===b&&(0===(a.mode&1)?b=1:(b=pc,pc<<=1,0===(pc&130023424)&&(pc=4194304)));var c=M();a=rk(a,b);null!==a&&(wc(a,b,c),tk(a,c))}function qj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Ok(a,c)}\nfunction Tj(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Ok(a,c)}var Lk;\nLk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Qf.current)og=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return og=!1,wj(a,b,c);og=0!==(a.flags&131072)?!0:!1}else og=!1,N&&0!==(b.flags&1048576)&&Ug(b,Ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;var e=Sf(b,I.current);ng(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?\n(b.tag=1,b.memoizedState=null,b.updateQueue=null,Tf(d)?(f=!0,Xf(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,sg(b),e.updater=Fg,b.stateNode=e,e._reactInternals=b,Jg(b,d,a,c),b=hj(null,b,d,!0,f,c)):(b.tag=0,N&&f&&Vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Pk(d);a=fg(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=gj(null,b,\nd,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,fg(d.type,a),c);break a}throw Error(p(306,d,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),gj(a,b,d,e,c);case 3:a:{ij(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;tg(a,b);yg(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,\ncache:g.cache,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Error(p(423));b=jj(a,b,d,c,e);break a}else if(d!==e){e=Error(p(424));b=jj(a,b,d,c,e);break a}else for(Yg=Ff(b.stateNode.containerInfo.firstChild),Xg=b,N=!0,Zg=null,c=sh(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{gh();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&dh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,\nyf(d,e)?g=null:null!==f&&yf(d,f)&&(b.flags|=32),fj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&dh(b),null;case 13:return mj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=rh(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=\nb.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;H(gg,d._currentValue);d._currentValue=g;if(null!==f)if(Ce(f.value,g)){if(f.children===e.children&&!Qf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ug(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=\nc;k=f.alternate;null!==k&&(k.lanes|=c);mg(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);mg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,\nng(b,c),e=pg(e),d=d(e),b.flags|=1,Xi(a,b,d,c),b.child;case 14:return d=b.type,e=fg(d,b.pendingProps),e=fg(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Tf(d)?(a=!0,Xf(b)):a=!1,ng(b,c),Hg(b,d,e),Jg(b,d,e,c),hj(null,b,d,!0,a,c);case 19:return vj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function vk(a,b){return Yb(a,b)}\nfunction Qk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function ah(a,b,c,d){return new Qk(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Pk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Ba)return 11;if(a===Ea)return 14}return 2}\nfunction mh(a,b){var c=a.alternate;null===c?(c=ah(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction oh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case va:return qh(c.children,e,f,b);case wa:g=8;e|=8;break;case xa:return a=ah(12,c,b,e|2),a.elementType=xa,a.lanes=f,a;case Ca:return a=ah(13,c,b,e),a.elementType=Ca,a.lanes=f,a;case Da:return a=ah(19,c,b,e),a.elementType=Da,a.lanes=f,a;case Ga:return nj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case Aa:g=9;break a;case Ba:g=11;\nbreak a;case Ea:g=14;break a;case Fa:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=ah(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function qh(a,b,c,d){a=ah(7,a,d,b);a.lanes=c;return a}function nj(a,b,c,d){a=ah(22,a,d,b);a.elementType=Ga;a.lanes=c;a.stateNode={};return a}function nh(a,b,c){a=ah(6,a,null,b);a.lanes=c;return a}\nfunction ph(a,b,c){b=ah(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction Rk(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=vc(0);this.expirationTimes=vc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=vc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function Sk(a,b,c,d,e,f,g,h,k){a=new Rk(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=ah(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null};sg(f);return a}function Tk(a,b,c){var d=3a.length&&isPermanentCharacter(e,t.length-1);)t=t.slice(0,t.length-1);return t.length}for(var i=a.length,r=t.length;r>=a.length;r--){var o=t[r];if(!isPermanentCharacter(e,r)&&isAllowedCharacter(e,r,o)){i=r+1;break}}return i}function isFilled(e,t){return getFilledLength(e,t)===e.mask.length}function formatValue(e,t){var n=e.maskChar,a=e.mask,i=e.prefix;if(!n){for((t=insertString(e,\"\",t,0)).lengtho.length&&(o+=l.slice(o.length,s)),t.every(function(e){for(;i=e,isPermanentCharacter(r,a=s)&&i!==l[a];){if(s>=o.length&&(o+=l[s]),t=e,n=s,u&&isPermanentCharacter(r,n)&&t===u)return!0;if(++s>=l.length)return!1}var t,n,a,i;return!isAllowedCharacter(r,s,e)&&e!==u||(s=r.length)return!1;var t,n;return(isAllowedCharacter(a,i,e)||e===o)&&i++,ii.start?h=(c=getInsertStringLength(e,a,u=l.slice(i.start,n.end),f))?i.length:0:l.length=r.length?f=r.length:f=o.length&&f=o?a:o)),r=a,t=h(t),e.slice(r,r+t.length)==t}}).call(this,r(3))},function(e,t){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(r=window)}e.exports=r},function(e,t,r){(function(t){var r=/^\\[object .+?Constructor\\]$/,n=\"object\"==typeof t&&t&&t.Object===Object&&t,a=\"object\"==typeof self&&self&&self.Object===Object&&self,o=n||a||Function(\"return this\")();var i,u=Array.prototype,c=Function.prototype,s=Object.prototype,l=o[\"__core-js_shared__\"],f=(i=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+i:\"\",d=c.toString,p=s.hasOwnProperty,h=s.toString,m=RegExp(\"^\"+d.call(p).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),y=u.splice,b=x(o,\"Map\"),g=x(Object,\"create\");function v(e){var t=-1,r=e?e.length:0;for(this.clear();++t-1},C.prototype.set=function(e,t){var r=this.__data__,n=w(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},_.prototype.clear=function(){this.__data__={hash:new v,map:new(b||C),string:new v}},_.prototype.delete=function(e){return j(this,e).delete(e)},_.prototype.get=function(e){return j(this,e).get(e)},_.prototype.has=function(e){return j(this,e).has(e)},_.prototype.set=function(e,t){return j(this,e).set(e,t),this},N.Cache=_,e.exports=N}).call(this,r(3))},function(e,t,r){(function(t){var r=/^\\s+|\\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,i=parseInt,u=\"object\"==typeof t&&t&&t.Object===Object&&t,c=\"object\"==typeof self&&self&&self.Object===Object&&self,s=u||c||Function(\"return this\")(),l=Object.prototype.toString,f=Math.max,d=Math.min,p=function(){return s.Date.now()};function h(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function m(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object Symbol]\"==l.call(e)}(e))return NaN;if(h(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=h(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(r,\"\");var u=a.test(e);return u||o.test(e)?i(e.slice(2),u?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,r){var n,a,o,i,u,c,s=0,l=!1,y=!1,b=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");function g(t){var r=n,o=a;return n=a=void 0,s=t,i=e.apply(o,r)}function v(e){return s=e,u=setTimeout(_,t),l?g(e):i}function C(e){var r=e-c;return void 0===c||r>=t||r<0||y&&e-s>=o}function _(){var e=p();if(C(e))return w(e);u=setTimeout(_,function(e){var r=t-(e-c);return y?d(r,o-(e-s)):r}(e))}function w(e){return u=void 0,b&&n?g(e):(n=a=void 0,i)}function S(){var e=p(),r=C(e);if(n=arguments,a=this,c=e,r){if(void 0===u)return v(c);if(y)return u=setTimeout(_,t),g(c)}return void 0===u&&(u=setTimeout(_,t)),i}return t=m(t)||0,h(r)&&(l=!!r.leading,o=(y=\"maxWait\"in r)?f(m(r.maxWait)||0,t):o,b=\"trailing\"in r?!!r.trailing:b),S.cancel=function(){void 0!==u&&clearTimeout(u),s=0,n=c=a=u=void 0},S.flush=function(){return void 0===u?i:w(p())},S}}).call(this,r(3))},function(e,t,r){(function(e,r){var n=\"[object Arguments]\",a=\"[object Map]\",o=\"[object Object]\",i=\"[object Set]\",u=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,c=/^\\w*$/,s=/^\\./,l=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,f=/\\\\(\\\\)?/g,d=/^\\[object .+?Constructor\\]$/,p=/^(?:0|[1-9]\\d*)$/,h={};h[\"[object Float32Array]\"]=h[\"[object Float64Array]\"]=h[\"[object Int8Array]\"]=h[\"[object Int16Array]\"]=h[\"[object Int32Array]\"]=h[\"[object Uint8Array]\"]=h[\"[object Uint8ClampedArray]\"]=h[\"[object Uint16Array]\"]=h[\"[object Uint32Array]\"]=!0,h[n]=h[\"[object Array]\"]=h[\"[object ArrayBuffer]\"]=h[\"[object Boolean]\"]=h[\"[object DataView]\"]=h[\"[object Date]\"]=h[\"[object Error]\"]=h[\"[object Function]\"]=h[a]=h[\"[object Number]\"]=h[o]=h[\"[object RegExp]\"]=h[i]=h[\"[object String]\"]=h[\"[object WeakMap]\"]=!1;var m=\"object\"==typeof e&&e&&e.Object===Object&&e,y=\"object\"==typeof self&&self&&self.Object===Object&&self,b=m||y||Function(\"return this\")(),g=t&&!t.nodeType&&t,v=g&&\"object\"==typeof r&&r&&!r.nodeType&&r,C=v&&v.exports===g&&m.process,_=function(){try{return C&&C.binding(\"util\")}catch(e){}}(),w=_&&_.isTypedArray;function S(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a-1},ue.prototype.set=function(e,t){var r=this.__data__,n=de(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},ce.prototype.clear=function(){this.__data__={hash:new ie,map:new(H||ue),string:new ie}},ce.prototype.delete=function(e){return xe(this,e).delete(e)},ce.prototype.get=function(e){return xe(this,e).get(e)},ce.prototype.has=function(e){return xe(this,e).has(e)},ce.prototype.set=function(e,t){return xe(this,e).set(e,t),this},se.prototype.add=se.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},se.prototype.has=function(e){return this.__data__.has(e)},le.prototype.clear=function(){this.__data__=new ue},le.prototype.delete=function(e){return this.__data__.delete(e)},le.prototype.get=function(e){return this.__data__.get(e)},le.prototype.has=function(e){return this.__data__.has(e)},le.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ue){var n=r.__data__;if(!H||n.length<199)return n.push([e,t]),this;r=this.__data__=new ce(n)}return r.set(e,t),this};var pe,he,me=(pe=function(e,t){return e&&ye(e,t,qe)},function(e,t){if(null==e)return e;if(!ze(e))return pe(e,t);for(var r=e.length,n=he?r:-1,a=Object(e);(he?n--:++nu))return!1;var s=o.get(e);if(s&&o.get(t))return s==t;var l=-1,f=!0,d=1&a?new se:void 0;for(o.set(e,t),o.set(t,e);++l-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function $e(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function Ve(e){return!!e&&\"object\"==typeof e}function Ke(e){return\"symbol\"==typeof e||Ve(e)&&\"[object Symbol]\"==z.call(e)}var Ue=w?function(e){return function(t){return e(t)}}(w):function(e){return Ve(e)&&Ge(e.length)&&!!h[z.call(e)]};function qe(e){return ze(e)?fe(e):we(e)}function He(e){return e}r.exports=function(e,t,r){var n=Le(e)?S:x,a=arguments.length<3;return n(e,_e(t),r,a,me)}}).call(this,r(3),r(7)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){String.prototype.padEnd||(String.prototype.padEnd=function(e,t){return e>>=0,t=String(void 0!==t?t:\" \"),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),String(this)+t.slice(0,e))})},function(e,t,r){\"use strict\";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t0?(o.mainCode=!0,c||\"Array\"===t.constructor.name&&t.includes(e[2])?(o.hasAreaCodes=!0,[o].concat(u)):(s=s.concat(u),[o])):[o]})))),s]}function A(e,t,r,n){if(null!==r){var a=Object.keys(r),o=Object.values(r);a.forEach((function(r,a){if(n)return e.push([r,o[a]]);var i=e.findIndex((function(e){return e[0]===r}));if(-1===i){var u=[r];u[t]=o[a],e.push(u)}else e[i][t]=o[a]}))}}function D(e,t){return 0===t.length?e:e.map((function(e){var r=t.findIndex((function(t){return t[0]===e[2]}));if(-1===r)return e;var n=t[r];return n[1]&&(e[4]=n[1]),n[3]&&(e[5]=n[3]),n[2]&&(e[6]=n[2]),e}))}var P=function e(t,r,n,a,i,u,s,l,f,d,p,h,m,y){c(this,e),this.filterRegions=function(e,t){if(\"string\"==typeof e){var r=e;return t.filter((function(e){return e.regions.some((function(e){return e===r}))}))}return t.filter((function(t){return e.map((function(e){return t.regions.some((function(t){return t===e}))})).some((function(e){return e}))}))},this.sortTerritories=function(e,t){var r=[].concat(o(e),o(t));return r.sort((function(e,t){return e.namet.name?1:0})),r},this.getFilteredCountryList=function(e,t,r){return 0===e.length?t:r?e.map((function(e){var r=t.find((function(t){return t.iso2===e}));if(r)return r})).filter((function(e){return e})):t.filter((function(t){return e.some((function(e){return e===t.iso2}))}))},this.localizeCountries=function(e,t,r){for(var n=0;nt.localName?1:0})),e},this.getCustomAreas=function(e,t){for(var r=[],n=0;nt.dialCode.length)return r;if(r.dialCode.length===t.dialCode.length&&r.priority=\"0\"&&e.indexOf(0)<=\"9\"?n.find((function(t){return t.dialCode==+e})):n.find((function(t){return t.iso2==e})))&&t.dialCode&&r.setState({selectedCountry:t,formattedNumber:r.props.disableCountryCode?\"\":r.formatNumber(t.dialCode,t)})},r.scrollTo=function(e,t){if(e){var n=r.dropdownRef;if(n&&document.body){var a=n.offsetHeight,o=n.getBoundingClientRect().top+document.body.scrollTop,i=o+a,u=e,c=u.getBoundingClientRect(),s=u.offsetHeight,l=c.top+document.body.scrollTop,f=l+s,d=l-o+n.scrollTop,p=a/2-s/2;if(r.props.enableSearch?li){t&&(d+=p);var h=a-s;n.scrollTop=d-h}}}},r.scrollToTop=function(){var e=r.dropdownRef;e&&document.body&&(e.scrollTop=0)},r.formatNumber=function(e,t){if(!t)return e;var n,o=t.format,c=r.props,s=c.disableCountryCode,l=c.enableAreaCodeStretch,f=c.enableLongNumbers,d=c.autoFormat;if(s?((n=o.split(\" \")).shift(),n=n.join(\" \")):l&&t.isAreaCode?((n=o.split(\" \"))[1]=n[1].replace(/\\.+/,\"\".padEnd(t.areaCodeLength,\".\")),n=n.join(\" \")):n=o,!e||0===e.length)return s?\"\":r.props.prefix;if(e&&e.length<2||!n||!d)return s?e:r.props.prefix+e;var p,h=w()(n,(function(e,t){if(0===e.remainingText.length)return e;if(\".\"!==t)return{formattedText:e.formattedText+t,remainingText:e.remainingText};var r,n=i(r=e.remainingText)||a(r)||u(),o=n[0],c=n.slice(1);return{formattedText:e.formattedText+o,remainingText:c}}),{formattedText:\"\",remainingText:e.split(\"\")});return(p=f?h.formattedText+h.remainingText.join(\"\"):h.formattedText).includes(\"(\")&&!p.includes(\")\")&&(p+=\")\"),p},r.cursorToEnd=function(){var e=r.numberInputRef;if(document.activeElement===e){e.focus();var t=e.value.length;\")\"===e.value.charAt(t-1)&&(t-=1),e.setSelectionRange(t,t)}},r.getElement=function(e){return r[\"flag_no_\".concat(e)]},r.getCountryData=function(){return r.state.selectedCountry?{name:r.state.selectedCountry.name||\"\",dialCode:r.state.selectedCountry.dialCode||\"\",countryCode:r.state.selectedCountry.iso2||\"\",format:r.state.selectedCountry.format||\"\"}:{}},r.handleFlagDropdownClick=function(e){if(e.preventDefault(),r.state.showDropdown||!r.props.disabled){var t=r.state,n=t.preferredCountries,a=t.onlyCountries,o=t.selectedCountry,i=r.concatPreferredCountries(n,a).findIndex((function(e){return e.dialCode===o.dialCode&&e.iso2===o.iso2}));r.setState({showDropdown:!r.state.showDropdown,highlightCountryIndex:i},(function(){r.state.showDropdown&&r.scrollTo(r.getElement(r.state.highlightCountryIndex))}))}},r.handleInput=function(e){var t=e.target.value,n=r.props,a=n.prefix,o=n.onChange,i=r.props.disableCountryCode?\"\":a,u=r.state.selectedCountry,c=r.state.freezeSelection;if(!r.props.countryCodeEditable){var s=a+(u.hasAreaCodes?r.state.onlyCountries.find((function(e){return e.iso2===u.iso2&&e.mainCode})).dialCode:u.dialCode);if(t.slice(0,s.length)!==s)return}if(t===a)return o&&o(\"\",r.getCountryData(),e,\"\"),r.setState({formattedNumber:\"\"});if(t.replace(/\\D/g,\"\").length>15){if(!1===r.props.enableLongNumbers)return;if(\"number\"==typeof r.props.enableLongNumbers&&t.replace(/\\D/g,\"\").length>r.props.enableLongNumbers)return}if(t!==r.state.formattedNumber){e.preventDefault?e.preventDefault():e.returnValue=!1;var l=r.props.country,f=r.state,d=f.onlyCountries,p=f.selectedCountry,h=f.hiddenAreaCodes;if(o&&e.persist(),t.length>0){var m=t.replace(/\\D/g,\"\");(!r.state.freezeSelection||p&&p.dialCode.length>m.length)&&(u=r.props.disableCountryGuess?p:r.guessSelectedCountry(m.substring(0,6),l,d,h)||p,c=!1),i=r.formatNumber(m,u),u=u.dialCode?u:p}var y=e.target.selectionStart,b=e.target.selectionStart,g=r.state.formattedNumber,v=i.length-g.length;r.setState({formattedNumber:i,freezeSelection:c,selectedCountry:u},(function(){v>0&&(b-=v),\")\"==i.charAt(i.length-1)?r.numberInputRef.setSelectionRange(i.length-1,i.length-1):b>0&&g.length>=i.length?r.numberInputRef.setSelectionRange(b,b):y1?o.replace(n.dialCode,a.dialCode):a.dialCode,u=r.formatNumber(i.replace(/\\D/g,\"\"),a);r.setState({showDropdown:!1,selectedCountry:a,freezeSelection:!0,formattedNumber:u,searchValue:\"\"},(function(){r.cursorToEnd(),r.props.onChange&&r.props.onChange(u.replace(/[^0-9]+/g,\"\"),r.getCountryData(),t,u)}))}},r.handleInputFocus=function(e){r.numberInputRef&&r.numberInputRef.value===r.props.prefix&&r.state.selectedCountry&&!r.props.disableCountryCode&&r.setState({formattedNumber:r.props.prefix+r.state.selectedCountry.dialCode},(function(){r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)})),r.setState({placeholder:\"\"}),r.props.onFocus&&r.props.onFocus(e,r.getCountryData()),r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)},r.handleInputBlur=function(e){e.target.value||r.setState({placeholder:r.props.placeholder}),r.props.onBlur&&r.props.onBlur(e,r.getCountryData())},r.handleInputCopy=function(e){if(r.props.copyNumbersOnly){var t=window.getSelection().toString().replace(/[^0-9]+/g,\"\");e.clipboardData.setData(\"text/plain\",t),e.preventDefault()}},r.getHighlightCountryIndex=function(e){var t=r.state.highlightCountryIndex+e;return t<0||t>=r.state.onlyCountries.length+r.state.preferredCountries.length?t-e:r.props.enableSearch&&t>r.getSearchFilteredCountries().length?0:t},r.searchCountry=function(){var e=r.getProbableCandidate(r.state.queryString)||r.state.onlyCountries[0],t=r.state.onlyCountries.findIndex((function(t){return t==e}))+r.state.preferredCountries.length;r.scrollTo(r.getElement(t),!0),r.setState({queryString:\"\",highlightCountryIndex:t})},r.handleKeydown=function(e){var t=r.props.keys,n=e.target.className;if(n.includes(\"selected-flag\")&&e.which===t.ENTER&&!r.state.showDropdown)return r.handleFlagDropdownClick(e);if(n.includes(\"form-control\")&&(e.which===t.ENTER||e.which===t.ESC))return e.target.blur();if(r.state.showDropdown&&!r.props.disabled&&(!n.includes(\"search-box\")||e.which===t.UP||e.which===t.DOWN||e.which===t.ENTER||e.which===t.ESC&&\"\"===e.target.value)){e.preventDefault?e.preventDefault():e.returnValue=!1;var a=function(e){r.setState({highlightCountryIndex:r.getHighlightCountryIndex(e)},(function(){r.scrollTo(r.getElement(r.state.highlightCountryIndex),!0)}))};switch(e.which){case t.DOWN:a(1);break;case t.UP:a(-1);break;case t.ENTER:r.props.enableSearch?r.handleFlagItemClick(r.getSearchFilteredCountries()[r.state.highlightCountryIndex]||r.getSearchFilteredCountries()[0],e):r.handleFlagItemClick([].concat(o(r.state.preferredCountries),o(r.state.onlyCountries))[r.state.highlightCountryIndex],e);break;case t.ESC:case t.TAB:r.setState({showDropdown:!1},r.cursorToEnd);break;default:(e.which>=t.A&&e.which<=t.Z||e.which===t.SPACE)&&r.setState({queryString:r.state.queryString+String.fromCharCode(e.which)},r.state.debouncedQueryStingSearcher)}}},r.handleInputKeyDown=function(e){var t=r.props,n=t.keys,a=t.onEnterKeyPress,o=t.onKeyDown;e.which===n.ENTER&&a&&a(e),o&&o(e)},r.handleClickOutside=function(e){r.dropdownRef&&!r.dropdownContainerRef.contains(e.target)&&r.state.showDropdown&&r.setState({showDropdown:!1})},r.handleSearchChange=function(e){var t=e.currentTarget.value,n=r.state,a=n.preferredCountries,o=n.selectedCountry,i=0;if(\"\"===t&&o){var u=r.state.onlyCountries;i=r.concatPreferredCountries(a,u).findIndex((function(e){return e==o})),setTimeout((function(){return r.scrollTo(r.getElement(i))}),100)}r.setState({searchValue:t,highlightCountryIndex:i})},r.concatPreferredCountries=function(e,t){return e.length>0?o(new Set(e.concat(t))):t},r.getDropdownCountryName=function(e){return e.localName||e.name},r.getSearchFilteredCountries=function(){var e=r.state,t=e.preferredCountries,n=e.onlyCountries,a=e.searchValue,i=r.props.enableSearch,u=r.concatPreferredCountries(t,n),c=a.trim().toLowerCase().replace(\"+\",\"\");if(i&&c){if(/^\\d+$/.test(c))return u.filter((function(e){var t=e.dialCode;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))}));var s=u.filter((function(e){var t=e.iso2;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))})),l=u.filter((function(e){var t=e.name,r=e.localName;e.iso2;return[\"\".concat(t),\"\".concat(r||\"\")].some((function(e){return e.toLowerCase().includes(c)}))}));return r.scrollToTop(),o(new Set([].concat(s,l)))}return u},r.getCountryDropdownList=function(){var e=r.state,t=e.preferredCountries,a=e.highlightCountryIndex,o=e.showDropdown,i=e.searchValue,u=r.props,c=u.disableDropdown,s=u.prefix,l=r.props,f=l.enableSearch,d=l.searchNotFound,p=l.disableSearchIcon,h=l.searchClass,m=l.searchStyle,b=l.searchPlaceholder,g=l.autocompleteSearch,v=r.getSearchFilteredCountries().map((function(e,t){var n=a===t,o=N()({country:!0,preferred:\"us\"===e.iso2||\"gb\"===e.iso2,active:\"us\"===e.iso2,highlight:n}),i=\"flag \".concat(e.iso2);return y.a.createElement(\"li\",Object.assign({ref:function(e){return r[\"flag_no_\".concat(t)]=e},key:\"flag_no_\".concat(t),\"data-flag-key\":\"flag_no_\".concat(t),className:o,\"data-dial-code\":\"1\",tabIndex:c?\"-1\":\"0\",\"data-country-code\":e.iso2,onClick:function(t){return r.handleFlagItemClick(e,t)},role:\"option\"},n?{\"aria-selected\":!0}:{}),y.a.createElement(\"div\",{className:i}),y.a.createElement(\"span\",{className:\"country-name\"},r.getDropdownCountryName(e)),y.a.createElement(\"span\",{className:\"dial-code\"},e.format?r.formatNumber(e.dialCode,e):s+e.dialCode))})),C=y.a.createElement(\"li\",{key:\"dashes\",className:\"divider\"});t.length>0&&(!f||f&&!i.trim())&&v.splice(t.length,0,C);var _=N()(n({\"country-list\":!0,hide:!o},r.props.dropdownClass,!0));return y.a.createElement(\"ul\",{ref:function(e){return!f&&e&&e.focus(),r.dropdownRef=e},className:_,style:r.props.dropdownStyle,role:\"listbox\",tabIndex:\"0\"},f&&y.a.createElement(\"li\",{className:N()(n({search:!0},h,h))},!p&&y.a.createElement(\"span\",{className:N()(n({\"search-emoji\":!0},\"\".concat(h,\"-emoji\"),h)),role:\"img\",\"aria-label\":\"Magnifying glass\"},\"🔎\"),y.a.createElement(\"input\",{className:N()(n({\"search-box\":!0},\"\".concat(h,\"-box\"),h)),style:m,type:\"search\",placeholder:b,autoFocus:!0,autoComplete:g?\"on\":\"off\",value:i,onChange:r.handleSearchChange})),v.length>0?v:y.a.createElement(\"li\",{className:\"no-entries-message\"},y.a.createElement(\"span\",null,d)))};var s,l=new P(e.enableAreaCodes,e.enableTerritories,e.regions,e.onlyCountries,e.preferredCountries,e.excludeCountries,e.preserveOrder,e.masks,e.priority,e.areaCodes,e.localization,e.prefix,e.defaultMask,e.alwaysDefaultMask),h=l.onlyCountries,m=l.preferredCountries,b=l.hiddenAreaCodes,v=e.value?e.value.replace(/\\D/g,\"\"):\"\";s=e.disableInitialCountryGuess?0:v.length>1?r.guessSelectedCountry(v.substring(0,6),e.country,h,b)||0:e.country&&h.find((function(t){return t.iso2==e.country}))||0;var _,S=v.length<2&&s&&!j()(v,s.dialCode)?s.dialCode:\"\";_=\"\"===v&&0===s?\"\":r.formatNumber((e.disableCountryCode?\"\":S)+v,s.name?s:void 0);var x=h.findIndex((function(e){return e==s}));return r.state={showDropdown:e.showDropdown,formattedNumber:_,onlyCountries:h,preferredCountries:m,hiddenAreaCodes:b,selectedCountry:s,highlightCountryIndex:x,queryString:\"\",freezeSelection:!1,debouncedQueryStingSearcher:g()(r.searchCountry,250),searchValue:\"\"},r}var r,l,m;return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),r=t,(l=[{key:\"componentDidMount\",value:function(){document.addEventListener&&this.props.enableClickOutside&&document.addEventListener(\"mousedown\",this.handleClickOutside),this.props.onMount&&this.props.onMount(this.state.formattedNumber.replace(/[^0-9]+/g,\"\"),this.getCountryData(),this.state.formattedNumber)}},{key:\"componentWillUnmount\",value:function(){document.removeEventListener&&this.props.enableClickOutside&&document.removeEventListener(\"mousedown\",this.handleClickOutside)}},{key:\"componentDidUpdate\",value:function(e,t,r){e.country!==this.props.country?this.updateCountry(this.props.country):e.value!==this.props.value&&this.updateFormattedNumber(this.props.value)}},{key:\"updateFormattedNumber\",value:function(e){if(null===e)return this.setState({selectedCountry:0,formattedNumber:\"\"});var t=this.state,r=t.onlyCountries,n=t.selectedCountry,a=t.hiddenAreaCodes,o=this.props,i=o.country,u=o.prefix;if(\"\"===e)return this.setState({selectedCountry:n,formattedNumber:\"\"});var c,s,l=e.replace(/\\D/g,\"\");if(n&&j()(e,u+n.dialCode))s=this.formatNumber(l,n),this.setState({formattedNumber:s});else{var f=(c=this.props.disableCountryGuess?n:this.guessSelectedCountry(l.substring(0,6),i,r,a)||n)&&j()(l,u+c.dialCode)?c.dialCode:\"\";s=this.formatNumber((this.props.disableCountryCode?\"\":f)+l,c||void 0),this.setState({selectedCountry:c,formattedNumber:s})}}},{key:\"render\",value:function(){var e,t,r,a=this,o=this.state,i=o.onlyCountries,u=o.selectedCountry,c=o.showDropdown,s=o.formattedNumber,l=o.hiddenAreaCodes,f=this.props,d=f.disableDropdown,p=f.renderStringAsFlag,h=f.isValid,m=f.defaultErrorMessage,b=f.specialLabel;if(\"boolean\"==typeof h)t=h;else{var g=h(s.replace(/\\D/g,\"\"),u,i,l);\"boolean\"==typeof g?!1===(t=g)&&(r=m):(t=!1,r=g)}var v=N()((n(e={},this.props.containerClass,!0),n(e,\"react-tel-input\",!0),e)),C=N()({arrow:!0,up:c}),_=N()(n({\"form-control\":!0,\"invalid-number\":!t,open:c},this.props.inputClass,!0)),w=N()({\"selected-flag\":!0,open:c}),S=N()(n({\"flag-dropdown\":!0,\"invalid-number\":!t,open:c},this.props.buttonClass,!0)),j=\"flag \".concat(u&&u.iso2);return y.a.createElement(\"div\",{className:\"\".concat(v,\" \").concat(this.props.className),style:this.props.style||this.props.containerStyle,onKeyDown:this.handleKeydown},b&&y.a.createElement(\"div\",{className:\"special-label\"},b),r&&y.a.createElement(\"div\",{className:\"invalid-number-message\"},r),y.a.createElement(\"input\",Object.assign({className:_,style:this.props.inputStyle,onChange:this.handleInput,onClick:this.handleInputClick,onDoubleClick:this.handleDoubleClick,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onCopy:this.handleInputCopy,value:s,onKeyDown:this.handleInputKeyDown,placeholder:this.props.placeholder,disabled:this.props.disabled,type:\"tel\"},this.props.inputProps,{ref:function(e){a.numberInputRef=e,\"function\"==typeof a.props.inputProps.ref?a.props.inputProps.ref(e):\"object\"==typeof a.props.inputProps.ref&&(a.props.inputProps.ref.current=e)}})),y.a.createElement(\"div\",{className:S,style:this.props.buttonStyle,ref:function(e){return a.dropdownContainerRef=e}},p?y.a.createElement(\"div\",{className:w},p):y.a.createElement(\"div\",{onClick:d?void 0:this.handleFlagDropdownClick,className:w,title:u?\"\".concat(u.localName||u.name,\": + \").concat(u.dialCode):\"\",tabIndex:d?\"-1\":\"0\",role:\"button\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":!!c||void 0},y.a.createElement(\"div\",{className:j},!d&&y.a.createElement(\"div\",{className:C}))),c&&this.getCountryDropdownList()))}}])&&s(r.prototype,l),m&&s(r,m),t}(y.a.Component);F.defaultProps={country:\"\",value:\"\",onlyCountries:[],preferredCountries:[],excludeCountries:[],placeholder:\"1 (702) 123-4567\",searchPlaceholder:\"search\",searchNotFound:\"No entries to show\",flagsImagePath:\"./flags.png\",disabled:!1,containerStyle:{},inputStyle:{},buttonStyle:{},dropdownStyle:{},searchStyle:{},containerClass:\"\",inputClass:\"\",buttonClass:\"\",dropdownClass:\"\",searchClass:\"\",className:\"\",autoFormat:!0,enableAreaCodes:!1,enableTerritories:!1,disableCountryCode:!1,disableDropdown:!1,enableLongNumbers:!1,countryCodeEditable:!0,enableSearch:!1,disableSearchIcon:!1,disableInitialCountryGuess:!1,disableCountryGuess:!1,regions:\"\",inputProps:{},localization:{},masks:null,priority:null,areaCodes:null,preserveOrder:[],defaultMask:\"... ... ... ... ..\",alwaysDefaultMask:!1,prefix:\"+\",copyNumbersOnly:!0,renderStringAsFlag:\"\",autocompleteSearch:!1,jumpCursorToEnd:!0,enableAreaCodeStretch:!1,enableClickOutside:!0,showDropdown:!1,isValid:!0,defaultErrorMessage:\"\",specialLabel:\"Phone\",onEnterKeyPress:null,keys:{UP:38,DOWN:40,RIGHT:39,LEFT:37,ENTER:13,ESC:27,PLUS:43,A:65,Z:90,SPACE:32,TAB:9}};t.default=F}]);","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import debounce from 'lodash.debounce';\nimport throttle from 'lodash.throttle';\n\nimport { Props, ReactResizeDetectorDimensions } from './ResizeDetector';\n\nexport type patchResizeHandlerType = ReturnType | ReturnType | ResizeObserverCallback;\n\nexport const patchResizeHandler = (\n resizeCallback: ResizeObserverCallback,\n refreshMode: Props['refreshMode'],\n refreshRate: Props['refreshRate'],\n refreshOptions: Props['refreshOptions']\n): patchResizeHandlerType => {\n switch (refreshMode) {\n case 'debounce':\n return debounce(resizeCallback, refreshRate, refreshOptions);\n case 'throttle':\n return throttle(resizeCallback, refreshRate, refreshOptions);\n default:\n return resizeCallback;\n }\n};\n\nexport const isFunction = (fn: any): boolean => typeof fn === 'function';\n\nexport const isSSR = (): boolean => typeof window === 'undefined';\n\nexport const isDOMElement = (element: any): boolean => element instanceof Element || element instanceof HTMLDocument;\n\nexport const createNotifier = (\n onResize: Props['onResize'],\n setSize: React.Dispatch>,\n handleWidth: boolean,\n handleHeight: boolean\n) => ({ width, height }: ReactResizeDetectorDimensions): void => {\n setSize(prev => {\n if (prev.width === width && prev.height === height) {\n // skip if dimensions haven't changed\n return prev;\n }\n\n if ((prev.width === width && !handleHeight) || (prev.height === height && !handleWidth)) {\n // process `handleHeight/handleWidth` props\n return prev;\n }\n\n if (onResize && isFunction(onResize)) {\n onResize(width, height);\n }\n\n return { width, height };\n });\n};\n","import * as React from 'react';\nimport { PureComponent, isValidElement, cloneElement, createRef, ReactNode, ReactElement, RefObject } from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport { patchResizeHandler, isFunction, isSSR, isDOMElement, createNotifier } from './utils';\n\nexport interface ReactResizeDetectorDimensions {\n height?: number;\n width?: number;\n}\n\ninterface ChildFunctionProps extends ReactResizeDetectorDimensions {\n targetRef?: RefObject;\n}\n\nexport interface Props {\n /**\n * Function that will be invoked with observable element's width and height.\n * Default: undefined\n */\n onResize?: (width?: number, height?: number) => void;\n /**\n * Trigger update on height change.\n * Default: true\n */\n handleHeight?: boolean;\n /**\n * Trigger onResize on width change.\n * Default: true\n */\n handleWidth?: boolean;\n /**\n * Do not trigger update when a component mounts.\n * Default: false\n */\n skipOnMount?: boolean;\n /**\n * Changes the update strategy. Possible values: \"throttle\" and \"debounce\".\n * See `lodash` docs for more information https://lodash.com/docs/\n * undefined - callback will be fired for every frame.\n * Default: undefined\n */\n refreshMode?: 'throttle' | 'debounce';\n /**\n * Set the timeout/interval for `refreshMode` strategy\n * Default: undefined\n */\n refreshRate?: number;\n /**\n * Pass additional params to `refreshMode` according to lodash docs\n * Default: undefined\n */\n refreshOptions?: { leading?: boolean; trailing?: boolean };\n /**\n * These options will be used as a second parameter of `resizeObserver.observe` method\n * @see https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver/observe\n * Default: undefined\n */\n observerOptions?: ResizeObserverOptions;\n}\n\nexport interface ComponentsProps extends Props {\n /**\n * A selector of an element to observe.\n * You can use this property to attach resize-observer to any DOM element.\n * Please refer to the querySelector docs.\n * Default: undefined\n * @deprecated since version 5.0.0. It will be removed in version 7.0.0.\n * Use targetRef instead\n */\n querySelector?: string;\n /**\n * Valid only for a callback-pattern.\n * Ignored for other render types.\n * Set resize-detector's node type.\n * You can pass any valid React node: string with node's name or element.\n * Can be useful when you need to handle table's or paragraph's resizes.\n * Default: \"div\"\n * @deprecated since version 5.0.0. It will be removed in version 7.0.0.\n * Use targetRef instead\n */\n nodeType?: keyof JSX.IntrinsicElements; // will be passed to React.createElement()\n /**\n * A DOM element to observe.\n * By default it's a parent element in relation to the ReactResizeDetector component.\n * But you can pass any DOM element to observe.\n * This property is omitted when you pass querySelector.\n * Default: undefined\n * @deprecated since version 5.0.0. It will be removed in version 6.0.0.\n * Use targetRef instead\n */\n targetDomEl?: ElementT;\n /**\n * A React reference of the element to observe.\n * Pass a reference to the element you want to attach resize handlers to.\n * It must be an instance of React.useRef or React.createRef functions\n * Default: undefined\n */\n targetRef?: RefObject;\n\n render?: (props: ReactResizeDetectorDimensions) => ReactNode;\n\n children?: ReactNode | ((props: ChildFunctionProps) => ReactNode);\n}\n\nclass ResizeDetector extends PureComponent<\n ComponentsProps,\n ReactResizeDetectorDimensions\n> {\n skipOnMount: boolean | undefined;\n targetRef;\n observableElement;\n resizeHandler;\n resizeObserver;\n constructor(props: ComponentsProps) {\n super(props);\n\n const { skipOnMount, refreshMode, refreshRate = 1000, refreshOptions } = props;\n\n this.state = {\n width: undefined,\n height: undefined\n };\n\n this.skipOnMount = skipOnMount;\n this.targetRef = createRef();\n this.observableElement = null;\n\n if (isSSR()) {\n return;\n }\n\n this.resizeHandler = patchResizeHandler(this.createResizeHandler, refreshMode, refreshRate, refreshOptions);\n this.resizeObserver = new window.ResizeObserver(this.resizeHandler);\n }\n\n componentDidMount(): void {\n this.attachObserver();\n }\n\n componentDidUpdate(): void {\n this.attachObserver();\n }\n\n componentWillUnmount(): void {\n if (isSSR()) {\n return;\n }\n this.resizeObserver.disconnect();\n this.cancelHandler();\n }\n\n cancelHandler = (): void => {\n if (this.resizeHandler && this.resizeHandler.cancel) {\n // cancel debounced handler\n this.resizeHandler.cancel();\n this.resizeHandler = null;\n }\n };\n\n attachObserver = (): void => {\n const { targetRef, observerOptions } = this.props;\n\n if (isSSR()) {\n return;\n }\n\n if (targetRef && targetRef.current) {\n this.targetRef.current = targetRef.current;\n }\n\n const element = this.getElement();\n if (!element) {\n // can't find element to observe\n return;\n }\n\n if (this.observableElement && this.observableElement === element) {\n // element is already observed\n return;\n }\n\n this.observableElement = element;\n this.resizeObserver.observe(element, observerOptions);\n };\n\n getElement = (): Element | Text | null => {\n const { querySelector, targetDomEl } = this.props;\n\n if (isSSR()) return null;\n\n // in case we pass a querySelector\n if (querySelector) return document.querySelector(querySelector);\n // in case we pass a DOM element\n if (targetDomEl && isDOMElement(targetDomEl)) return targetDomEl;\n // in case we pass a React ref using React.createRef()\n if (this.targetRef && isDOMElement(this.targetRef.current)) return this.targetRef.current;\n\n // the worse case when we don't receive any information from the parent and the library doesn't add any wrappers\n // we have to use a deprecated `findDOMNode` method in order to find a DOM element to attach to\n const currentElement = findDOMNode(this);\n\n if (!currentElement) return null;\n\n const renderType = this.getRenderType();\n switch (renderType) {\n case 'renderProp':\n return currentElement;\n case 'childFunction':\n return currentElement;\n case 'child':\n return currentElement;\n case 'childArray':\n return currentElement;\n default:\n return currentElement.parentElement;\n }\n };\n\n createResizeHandler: ResizeObserverCallback = (entries): void => {\n const { handleWidth = true, handleHeight = true, onResize } = this.props;\n\n if (!handleWidth && !handleHeight) return;\n\n const notifyResize = createNotifier(onResize, this.setState.bind(this), handleWidth, handleHeight);\n\n entries.forEach(entry => {\n const { width, height } = (entry && entry.contentRect) || {};\n\n const shouldSetSize = !this.skipOnMount && !isSSR();\n if (shouldSetSize) {\n notifyResize({ width, height });\n }\n\n this.skipOnMount = false;\n });\n };\n\n getRenderType = (): string => {\n const { render, children } = this.props;\n if (isFunction(render)) {\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'renderProp';\n }\n\n if (isFunction(children)) {\n return 'childFunction';\n }\n\n if (isValidElement(children)) {\n return 'child';\n }\n\n if (Array.isArray(children)) {\n // DEPRECATED. Wrap children with a single parent\n return 'childArray';\n }\n\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'parent';\n };\n\n render() {\n const { render, children, nodeType: WrapperTag = 'div' } = this.props;\n const { width, height } = this.state;\n\n const childProps = { width, height, targetRef: this.targetRef };\n const renderType = this.getRenderType();\n\n let typedChildren: any;\n\n switch (renderType) {\n case 'renderProp':\n return render && render(childProps);\n case 'childFunction':\n typedChildren = children as (props: ChildFunctionProps) => ReactNode;\n return typedChildren(childProps);\n case 'child':\n // @TODO bug prone logic\n typedChildren = children as ReactElement;\n if (typedChildren.type && typeof typedChildren.type === 'string') {\n // child is a native DOM elements such as div, span etc\n const { targetRef, ...nativeProps } = childProps;\n return cloneElement(typedChildren, nativeProps);\n }\n // class or functional component otherwise\n return cloneElement(typedChildren, childProps);\n case 'childArray':\n typedChildren = children as [ReactElement];\n return typedChildren.map((el: ReactElement) => !!el && cloneElement(el, childProps));\n default:\n return ;\n }\n }\n}\n\nexport default ResizeDetector;\n","import { useLayoutEffect, useEffect, useState, useRef, MutableRefObject } from 'react';\n\nimport { patchResizeHandler, createNotifier, isSSR } from './utils';\n\nimport { Props, ReactResizeDetectorDimensions } from './ResizeDetector';\n\nconst useEnhancedEffect = isSSR() ? useEffect : useLayoutEffect;\n\ninterface FunctionProps extends Props {\n targetRef?: ReturnType;\n}\n\nfunction useResizeDetector(props: FunctionProps = {}): UseResizeDetectorReturn {\n const {\n skipOnMount = false,\n refreshMode,\n refreshRate = 1000,\n refreshOptions,\n handleWidth = true,\n handleHeight = true,\n targetRef,\n observerOptions,\n onResize\n } = props;\n\n const skipResize: MutableRefObject = useRef(skipOnMount);\n const localRef = useRef(null);\n const ref = (targetRef ?? localRef) as MutableRefObject;\n const resizeHandler = useRef();\n\n const [size, setSize] = useState({\n width: undefined,\n height: undefined\n });\n\n useEnhancedEffect(() => {\n if (isSSR()) {\n return;\n }\n\n const notifyResize = createNotifier(onResize, setSize, handleWidth, handleHeight);\n\n const resizeCallback: ResizeObserverCallback = entries => {\n if (!handleWidth && !handleHeight) return;\n\n entries.forEach(entry => {\n const { width, height } = (entry && entry.contentRect) || {};\n\n const shouldSetSize = !skipResize.current && !isSSR();\n if (shouldSetSize) {\n notifyResize({ width, height });\n }\n\n skipResize.current = false;\n });\n };\n\n resizeHandler.current = patchResizeHandler(resizeCallback, refreshMode, refreshRate, refreshOptions);\n\n const resizeObserver = new window.ResizeObserver(resizeHandler.current as ResizeObserverCallback);\n\n if (ref.current) {\n // Something wrong with typings here...\n resizeObserver.observe(ref.current as any, observerOptions);\n }\n\n return () => {\n resizeObserver.disconnect();\n const patchedResizeHandler = resizeHandler.current as any;\n if (patchedResizeHandler && patchedResizeHandler.cancel) {\n patchedResizeHandler.cancel();\n }\n };\n }, [refreshMode, refreshRate, refreshOptions, handleWidth, handleHeight, onResize, observerOptions, ref.current]);\n\n return { ref, ...size };\n}\n\nexport default useResizeDetector;\n\nexport interface UseResizeDetectorReturn extends ReactResizeDetectorDimensions {\n ref: MutableRefObject;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\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 bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar 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: 0 },\n * entered: { opacity: 1 },\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\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_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.transitionGroup; // 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 var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\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 _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 var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\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(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\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) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\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(node, timeout, handler) {\n this.setNextCallback(handler);\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 this.props.addEndListener(node, this.nextCallback);\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 childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\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'`, `'unmounted'`), 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 * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\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 = _PropTypes.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. **Note:** Timeouts are still used as a fallback if provided.\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 * @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 * @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 * @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 * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\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 * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\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 = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\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 * 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\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_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(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\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 ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.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 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 children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\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.default.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.default.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.default.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.default.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.default.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.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\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 */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.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\n\nfunction 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\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.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}\n\nfunction 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 (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.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] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.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}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","\"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 _react = _interopRequireDefault(require(\"react\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar checkIndexBounds = function checkIndexBounds(props) {\n var index = props.index,\n children = props.children;\n\n var childrenCount = _react.default.Children.count(children);\n\n process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(index >= 0 && index <= childrenCount, \"react-swipeable-view: the new index: \".concat(index, \" is out of bounds: [0-\").concat(childrenCount, \"].\")) : void 0;\n};\n\nvar _default = checkIndexBounds;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = computeIndex;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _constant = _interopRequireDefault(require(\"./constant\"));\n\nfunction computeIndex(params) {\n var children = params.children,\n startIndex = params.startIndex,\n startX = params.startX,\n pageX = params.pageX,\n viewLength = params.viewLength,\n resistance = params.resistance;\n var indexMax = _react.default.Children.count(children) - 1;\n var index = startIndex + (startX - pageX) / viewLength;\n var newStartX;\n\n if (!resistance) {\n // Reset the starting point\n if (index < 0) {\n index = 0;\n newStartX = (index - startIndex) * viewLength + pageX;\n } else if (index > indexMax) {\n index = indexMax;\n newStartX = (index - startIndex) * viewLength + pageX;\n }\n } else if (index < 0) {\n index = Math.exp(index * _constant.default.RESISTANCE_COEF) - 1;\n } else if (index > indexMax) {\n index = indexMax + 1 - Math.exp((indexMax - index) * _constant.default.RESISTANCE_COEF);\n }\n\n return {\n index: index,\n startX: newStartX\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n RESISTANCE_COEF: 0.6,\n // This value is closed to what browsers are using internally to\n // trigger a native scroll.\n UNCERTAINTY_THRESHOLD: 3 // px\n\n};\nexports.default = _default;","\"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 _react = _interopRequireDefault(require(\"react\"));\n\nvar getDisplaySameSlide = function getDisplaySameSlide(props, nextProps) {\n var displaySameSlide = false;\n\n var getChildrenKey = function getChildrenKey(child) {\n return child ? child.key : 'empty';\n };\n\n if (props.children.length && nextProps.children.length) {\n var oldKeys = _react.default.Children.map(props.children, getChildrenKey);\n\n var oldKey = oldKeys[props.index];\n\n if (oldKey !== null && oldKey !== undefined) {\n var newKeys = _react.default.Children.map(nextProps.children, getChildrenKey);\n\n var newKey = newKeys[nextProps.index];\n\n if (oldKey === newKey) {\n displaySameSlide = true;\n }\n }\n }\n\n return displaySameSlide;\n};\n\nvar _default = getDisplaySameSlide;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"checkIndexBounds\", {\n enumerable: true,\n get: function get() {\n return _checkIndexBounds.default;\n }\n});\nObject.defineProperty(exports, \"computeIndex\", {\n enumerable: true,\n get: function get() {\n return _computeIndex.default;\n }\n});\nObject.defineProperty(exports, \"constant\", {\n enumerable: true,\n get: function get() {\n return _constant.default;\n }\n});\nObject.defineProperty(exports, \"getDisplaySameSlide\", {\n enumerable: true,\n get: function get() {\n return _getDisplaySameSlide.default;\n }\n});\nObject.defineProperty(exports, \"mod\", {\n enumerable: true,\n get: function get() {\n return _mod.default;\n }\n});\n\nvar _checkIndexBounds = _interopRequireDefault(require(\"./checkIndexBounds\"));\n\nvar _computeIndex = _interopRequireDefault(require(\"./computeIndex\"));\n\nvar _constant = _interopRequireDefault(require(\"./constant\"));\n\nvar _getDisplaySameSlide = _interopRequireDefault(require(\"./getDisplaySameSlide\"));\n\nvar _mod = _interopRequireDefault(require(\"./mod\"));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Extended version of % with negative integer support.\nfunction mod(n, m) {\n var q = n % m;\n return q < 0 ? q + m : q;\n}\n\nvar _default = mod;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDomTreeShapes = getDomTreeShapes;\nexports.findNativeHandler = findNativeHandler;\nexports.default = exports.SwipeableViewsContext = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _reactSwipeableViewsCore = require(\"react-swipeable-views-core\");\n\nfunction addEventListener(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return {\n remove: function remove() {\n node.removeEventListener(event, handler, options);\n }\n };\n}\n\nvar styles = {\n container: {\n direction: 'ltr',\n display: 'flex',\n willChange: 'transform'\n },\n slide: {\n width: '100%',\n WebkitFlexShrink: 0,\n flexShrink: 0,\n overflow: 'auto'\n }\n};\nvar axisProperties = {\n root: {\n x: {\n overflowX: 'hidden'\n },\n 'x-reverse': {\n overflowX: 'hidden'\n },\n y: {\n overflowY: 'hidden'\n },\n 'y-reverse': {\n overflowY: 'hidden'\n }\n },\n flexDirection: {\n x: 'row',\n 'x-reverse': 'row-reverse',\n y: 'column',\n 'y-reverse': 'column-reverse'\n },\n transform: {\n x: function x(translate) {\n return \"translate(\".concat(-translate, \"%, 0)\");\n },\n 'x-reverse': function xReverse(translate) {\n return \"translate(\".concat(translate, \"%, 0)\");\n },\n y: function y(translate) {\n return \"translate(0, \".concat(-translate, \"%)\");\n },\n 'y-reverse': function yReverse(translate) {\n return \"translate(0, \".concat(translate, \"%)\");\n }\n },\n length: {\n x: 'width',\n 'x-reverse': 'width',\n y: 'height',\n 'y-reverse': 'height'\n },\n rotationMatrix: {\n x: {\n x: [1, 0],\n y: [0, 1]\n },\n 'x-reverse': {\n x: [-1, 0],\n y: [0, 1]\n },\n y: {\n x: [0, 1],\n y: [1, 0]\n },\n 'y-reverse': {\n x: [0, -1],\n y: [1, 0]\n }\n },\n scrollPosition: {\n x: 'scrollLeft',\n 'x-reverse': 'scrollLeft',\n y: 'scrollTop',\n 'y-reverse': 'scrollTop'\n },\n scrollLength: {\n x: 'scrollWidth',\n 'x-reverse': 'scrollWidth',\n y: 'scrollHeight',\n 'y-reverse': 'scrollHeight'\n },\n clientLength: {\n x: 'clientWidth',\n 'x-reverse': 'clientWidth',\n y: 'clientHeight',\n 'y-reverse': 'clientHeight'\n }\n};\n\nfunction createTransition(property, options) {\n var duration = options.duration,\n easeFunction = options.easeFunction,\n delay = options.delay;\n return \"\".concat(property, \" \").concat(duration, \" \").concat(easeFunction, \" \").concat(delay);\n} // We are using a 2x2 rotation matrix.\n\n\nfunction applyRotationMatrix(touch, axis) {\n var rotationMatrix = axisProperties.rotationMatrix[axis];\n return {\n pageX: rotationMatrix.x[0] * touch.pageX + rotationMatrix.x[1] * touch.pageY,\n pageY: rotationMatrix.y[0] * touch.pageX + rotationMatrix.y[1] * touch.pageY\n };\n}\n\nfunction adaptMouse(event) {\n event.touches = [{\n pageX: event.pageX,\n pageY: event.pageY\n }];\n return event;\n}\n\nfunction getDomTreeShapes(element, rootNode) {\n var domTreeShapes = [];\n\n while (element && element !== rootNode && element !== document.body) {\n // We reach a Swipeable View, no need to look higher in the dom tree.\n if (element.hasAttribute('data-swipeable')) {\n break;\n }\n\n var style = window.getComputedStyle(element);\n\n if ( // Ignore the scroll children if the element is absolute positioned.\n style.getPropertyValue('position') === 'absolute' || // Ignore the scroll children if the element has an overflowX hidden\n style.getPropertyValue('overflow-x') === 'hidden') {\n domTreeShapes = [];\n } else if (element.clientWidth > 0 && element.scrollWidth > element.clientWidth || element.clientHeight > 0 && element.scrollHeight > element.clientHeight) {\n // Ignore the nodes that have no width.\n // Keep elements with a scroll\n domTreeShapes.push({\n element: element,\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n clientWidth: element.clientWidth,\n clientHeight: element.clientHeight,\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n });\n }\n\n element = element.parentNode;\n }\n\n return domTreeShapes;\n} // We can only have one node at the time claiming ownership for handling the swipe.\n// Otherwise, the UX would be confusing.\n// That's why we use a singleton here.\n\n\nvar nodeWhoClaimedTheScroll = null;\n\nfunction findNativeHandler(params) {\n var domTreeShapes = params.domTreeShapes,\n pageX = params.pageX,\n startX = params.startX,\n axis = params.axis;\n return domTreeShapes.some(function (shape) {\n // Determine if we are going backward or forward.\n var goingForward = pageX >= startX;\n\n if (axis === 'x' || axis === 'y') {\n goingForward = !goingForward;\n } // scrollTop is not always be an integer.\n // https://github.com/jquery/api.jquery.com/issues/608\n\n\n var scrollPosition = Math.round(shape[axisProperties.scrollPosition[axis]]);\n var areNotAtStart = scrollPosition > 0;\n var areNotAtEnd = scrollPosition + shape[axisProperties.clientLength[axis]] < shape[axisProperties.scrollLength[axis]];\n\n if (goingForward && areNotAtEnd || !goingForward && areNotAtStart) {\n nodeWhoClaimedTheScroll = shape.element;\n return true;\n }\n\n return false;\n });\n}\n\nvar SwipeableViewsContext = React.createContext();\nexports.SwipeableViewsContext = SwipeableViewsContext;\n\nif (process.env.NODE_ENV !== 'production') {\n SwipeableViewsContext.displayName = 'SwipeableViewsContext';\n}\n\nvar SwipeableViews =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inherits2.default)(SwipeableViews, _React$Component);\n\n function SwipeableViews(props) {\n var _this;\n\n (0, _classCallCheck2.default)(this, SwipeableViews);\n _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(SwipeableViews).call(this, props));\n _this.rootNode = null;\n _this.containerNode = null;\n _this.ignoreNextScrollEvents = false;\n _this.viewLength = 0;\n _this.startX = 0;\n _this.lastX = 0;\n _this.vx = 0;\n _this.startY = 0;\n _this.isSwiping = undefined;\n _this.started = false;\n _this.startIndex = 0;\n _this.transitionListener = null;\n _this.touchMoveListener = null;\n _this.activeSlide = null;\n _this.indexCurrent = null;\n _this.firstRenderTimeout = null;\n\n _this.setRootNode = function (node) {\n _this.rootNode = node;\n };\n\n _this.setContainerNode = function (node) {\n _this.containerNode = node;\n };\n\n _this.setActiveSlide = function (node) {\n _this.activeSlide = node;\n\n _this.updateHeight();\n };\n\n _this.handleSwipeStart = function (event) {\n var axis = _this.props.axis;\n var touch = applyRotationMatrix(event.touches[0], axis);\n _this.viewLength = _this.rootNode.getBoundingClientRect()[axisProperties.length[axis]];\n _this.startX = touch.pageX;\n _this.lastX = touch.pageX;\n _this.vx = 0;\n _this.startY = touch.pageY;\n _this.isSwiping = undefined;\n _this.started = true;\n var computedStyle = window.getComputedStyle(_this.containerNode);\n var transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n\n if (transform && transform !== 'none') {\n var transformValues = transform.split('(')[1].split(')')[0].split(',');\n var rootStyle = window.getComputedStyle(_this.rootNode);\n var tranformNormalized = applyRotationMatrix({\n pageX: parseInt(transformValues[4], 10),\n pageY: parseInt(transformValues[5], 10)\n }, axis);\n _this.startIndex = -tranformNormalized.pageX / (_this.viewLength - parseInt(rootStyle.paddingLeft, 10) - parseInt(rootStyle.paddingRight, 10)) || 0;\n }\n };\n\n _this.handleSwipeMove = function (event) {\n // The touch start event can be cancel.\n // Makes sure we set a starting point.\n if (!_this.started) {\n _this.handleTouchStart(event);\n\n return;\n } // We are not supposed to hanlde this touch move.\n\n\n if (nodeWhoClaimedTheScroll !== null && nodeWhoClaimedTheScroll !== _this.rootNode) {\n return;\n }\n\n var _this$props = _this.props,\n axis = _this$props.axis,\n children = _this$props.children,\n ignoreNativeScroll = _this$props.ignoreNativeScroll,\n onSwitching = _this$props.onSwitching,\n resistance = _this$props.resistance;\n var touch = applyRotationMatrix(event.touches[0], axis); // We don't know yet.\n\n if (_this.isSwiping === undefined) {\n var dx = Math.abs(touch.pageX - _this.startX);\n var dy = Math.abs(touch.pageY - _this.startY);\n var isSwiping = dx > dy && dx > _reactSwipeableViewsCore.constant.UNCERTAINTY_THRESHOLD; // We let the parent handle the scroll.\n\n if (!resistance && (axis === 'y' || axis === 'y-reverse') && (_this.indexCurrent === 0 && _this.startX < touch.pageX || _this.indexCurrent === React.Children.count(_this.props.children) - 1 && _this.startX > touch.pageX)) {\n _this.isSwiping = false;\n return;\n } // We are likely to be swiping, let's prevent the scroll event.\n\n\n if (dx > dy) {\n event.preventDefault();\n }\n\n if (isSwiping === true || dy > _reactSwipeableViewsCore.constant.UNCERTAINTY_THRESHOLD) {\n _this.isSwiping = isSwiping;\n _this.startX = touch.pageX; // Shift the starting point.\n\n return; // Let's wait the next touch event to move something.\n }\n }\n\n if (_this.isSwiping !== true) {\n return;\n } // We are swiping, let's prevent the scroll event.\n\n\n event.preventDefault(); // Low Pass filter.\n\n _this.vx = _this.vx * 0.5 + (touch.pageX - _this.lastX) * 0.5;\n _this.lastX = touch.pageX;\n\n var _computeIndex = (0, _reactSwipeableViewsCore.computeIndex)({\n children: children,\n resistance: resistance,\n pageX: touch.pageX,\n startIndex: _this.startIndex,\n startX: _this.startX,\n viewLength: _this.viewLength\n }),\n index = _computeIndex.index,\n startX = _computeIndex.startX; // Add support for native scroll elements.\n\n\n if (nodeWhoClaimedTheScroll === null && !ignoreNativeScroll) {\n var domTreeShapes = getDomTreeShapes(event.target, _this.rootNode);\n var hasFoundNativeHandler = findNativeHandler({\n domTreeShapes: domTreeShapes,\n startX: _this.startX,\n pageX: touch.pageX,\n axis: axis\n }); // We abort the touch move handler.\n\n if (hasFoundNativeHandler) {\n return;\n }\n } // We are moving toward the edges.\n\n\n if (startX) {\n _this.startX = startX;\n } else if (nodeWhoClaimedTheScroll === null) {\n nodeWhoClaimedTheScroll = _this.rootNode;\n }\n\n _this.setIndexCurrent(index);\n\n var callback = function callback() {\n if (onSwitching) {\n onSwitching(index, 'move');\n }\n };\n\n if (_this.state.displaySameSlide || !_this.state.isDragging) {\n _this.setState({\n displaySameSlide: false,\n isDragging: true\n }, callback);\n }\n\n callback();\n };\n\n _this.handleSwipeEnd = function () {\n nodeWhoClaimedTheScroll = null; // The touch start event can be cancel.\n // Makes sure that a starting point is set.\n\n if (!_this.started) {\n return;\n }\n\n _this.started = false;\n\n if (_this.isSwiping !== true) {\n return;\n }\n\n var indexLatest = _this.state.indexLatest;\n var indexCurrent = _this.indexCurrent;\n var delta = indexLatest - indexCurrent;\n var indexNew; // Quick movement\n\n if (Math.abs(_this.vx) > _this.props.threshold) {\n if (_this.vx > 0) {\n indexNew = Math.floor(indexCurrent);\n } else {\n indexNew = Math.ceil(indexCurrent);\n }\n } else if (Math.abs(delta) > _this.props.hysteresis) {\n // Some hysteresis with indexLatest.\n indexNew = delta > 0 ? Math.floor(indexCurrent) : Math.ceil(indexCurrent);\n } else {\n indexNew = indexLatest;\n }\n\n var indexMax = React.Children.count(_this.props.children) - 1;\n\n if (indexNew < 0) {\n indexNew = 0;\n } else if (indexNew > indexMax) {\n indexNew = indexMax;\n }\n\n _this.setIndexCurrent(indexNew);\n\n _this.setState({\n indexLatest: indexNew,\n isDragging: false\n }, function () {\n if (_this.props.onSwitching) {\n _this.props.onSwitching(indexNew, 'end');\n }\n\n if (_this.props.onChangeIndex && indexNew !== indexLatest) {\n _this.props.onChangeIndex(indexNew, indexLatest, {\n reason: 'swipe'\n });\n } // Manually calling handleTransitionEnd in that case as isn't otherwise.\n\n\n if (indexCurrent === indexLatest) {\n _this.handleTransitionEnd();\n }\n });\n };\n\n _this.handleTouchStart = function (event) {\n if (_this.props.onTouchStart) {\n _this.props.onTouchStart(event);\n }\n\n _this.handleSwipeStart(event);\n };\n\n _this.handleTouchEnd = function (event) {\n if (_this.props.onTouchEnd) {\n _this.props.onTouchEnd(event);\n }\n\n _this.handleSwipeEnd(event);\n };\n\n _this.handleMouseDown = function (event) {\n if (_this.props.onMouseDown) {\n _this.props.onMouseDown(event);\n }\n\n event.persist();\n\n _this.handleSwipeStart(adaptMouse(event));\n };\n\n _this.handleMouseUp = function (event) {\n if (_this.props.onMouseUp) {\n _this.props.onMouseUp(event);\n }\n\n _this.handleSwipeEnd(adaptMouse(event));\n };\n\n _this.handleMouseLeave = function (event) {\n if (_this.props.onMouseLeave) {\n _this.props.onMouseLeave(event);\n } // Filter out events\n\n\n if (_this.started) {\n _this.handleSwipeEnd(adaptMouse(event));\n }\n };\n\n _this.handleMouseMove = function (event) {\n if (_this.props.onMouseMove) {\n _this.props.onMouseMove(event);\n } // Filter out events\n\n\n if (_this.started) {\n _this.handleSwipeMove(adaptMouse(event));\n }\n };\n\n _this.handleScroll = function (event) {\n if (_this.props.onScroll) {\n _this.props.onScroll(event);\n } // Ignore events bubbling up.\n\n\n if (event.target !== _this.rootNode) {\n return;\n }\n\n if (_this.ignoreNextScrollEvents) {\n _this.ignoreNextScrollEvents = false;\n return;\n }\n\n var indexLatest = _this.state.indexLatest;\n var indexNew = Math.ceil(event.target.scrollLeft / event.target.clientWidth) + indexLatest;\n _this.ignoreNextScrollEvents = true; // Reset the scroll position.\n\n event.target.scrollLeft = 0;\n\n if (_this.props.onChangeIndex && indexNew !== indexLatest) {\n _this.props.onChangeIndex(indexNew, indexLatest, {\n reason: 'focus'\n });\n }\n };\n\n _this.updateHeight = function () {\n if (_this.activeSlide !== null) {\n var child = _this.activeSlide.children[0];\n\n if (child !== undefined && child.offsetHeight !== undefined && _this.state.heightLatest !== child.offsetHeight) {\n _this.setState({\n heightLatest: child.offsetHeight\n });\n }\n }\n };\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _reactSwipeableViewsCore.checkIndexBounds)(props);\n }\n\n _this.state = {\n indexLatest: props.index,\n // Set to true as soon as the component is swiping.\n // It's the state counter part of this.isSwiping.\n isDragging: false,\n // Help with SSR logic and lazy loading logic.\n renderOnlyActive: !props.disableLazyLoading,\n heightLatest: 0,\n // Let the render method that we are going to display the same slide than previously.\n displaySameSlide: true\n };\n\n _this.setIndexCurrent(props.index);\n\n return _this;\n }\n\n (0, _createClass2.default)(SwipeableViews, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // Subscribe to transition end events.\n this.transitionListener = addEventListener(this.containerNode, 'transitionend', function (event) {\n if (event.target !== _this2.containerNode) {\n return;\n }\n\n _this2.handleTransitionEnd();\n }); // Block the thread to handle that event.\n\n this.touchMoveListener = addEventListener(this.rootNode, 'touchmove', function (event) {\n // Handling touch events is disabled.\n if (_this2.props.disabled) {\n return;\n }\n\n _this2.handleSwipeMove(event);\n }, {\n passive: false\n });\n\n if (!this.props.disableLazyLoading) {\n this.firstRenderTimeout = setTimeout(function () {\n _this2.setState({\n renderOnlyActive: false\n });\n }, 0);\n } // Send all functions in an object if action param is set.\n\n\n if (this.props.action) {\n this.props.action({\n updateHeight: this.updateHeight\n });\n }\n } // eslint-disable-next-line camelcase,react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n var index = nextProps.index;\n\n if (typeof index === 'number' && index !== this.props.index) {\n if (process.env.NODE_ENV !== 'production') {\n (0, _reactSwipeableViewsCore.checkIndexBounds)(nextProps);\n }\n\n this.setIndexCurrent(index);\n this.setState({\n // If true, we are going to change the children. We shoudn't animate it.\n displaySameSlide: (0, _reactSwipeableViewsCore.getDisplaySameSlide)(this.props, nextProps),\n indexLatest: index\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.transitionListener.remove();\n this.touchMoveListener.remove();\n clearTimeout(this.firstRenderTimeout);\n }\n }, {\n key: \"getSwipeableViewsContext\",\n value: function getSwipeableViewsContext() {\n var _this3 = this;\n\n return {\n slideUpdateHeight: function slideUpdateHeight() {\n _this3.updateHeight();\n }\n };\n }\n }, {\n key: \"setIndexCurrent\",\n value: function setIndexCurrent(indexCurrent) {\n if (!this.props.animateTransitions && this.indexCurrent !== indexCurrent) {\n this.handleTransitionEnd();\n }\n\n this.indexCurrent = indexCurrent;\n\n if (this.containerNode) {\n var axis = this.props.axis;\n var transform = axisProperties.transform[axis](indexCurrent * 100);\n this.containerNode.style.WebkitTransform = transform;\n this.containerNode.style.transform = transform;\n }\n }\n }, {\n key: \"handleTransitionEnd\",\n value: function handleTransitionEnd() {\n if (!this.props.onTransitionEnd) {\n return;\n } // Filters out when changing the children\n\n\n if (this.state.displaySameSlide) {\n return;\n } // The rest callback is triggered when swiping. It's just noise.\n // We filter it out.\n\n\n if (!this.state.isDragging) {\n this.props.onTransitionEnd();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props2 = this.props,\n action = _this$props2.action,\n animateHeight = _this$props2.animateHeight,\n animateTransitions = _this$props2.animateTransitions,\n axis = _this$props2.axis,\n children = _this$props2.children,\n containerStyleProp = _this$props2.containerStyle,\n disabled = _this$props2.disabled,\n disableLazyLoading = _this$props2.disableLazyLoading,\n enableMouseEvents = _this$props2.enableMouseEvents,\n hysteresis = _this$props2.hysteresis,\n ignoreNativeScroll = _this$props2.ignoreNativeScroll,\n index = _this$props2.index,\n onChangeIndex = _this$props2.onChangeIndex,\n onSwitching = _this$props2.onSwitching,\n onTransitionEnd = _this$props2.onTransitionEnd,\n resistance = _this$props2.resistance,\n slideStyleProp = _this$props2.slideStyle,\n slideClassName = _this$props2.slideClassName,\n springConfig = _this$props2.springConfig,\n style = _this$props2.style,\n threshold = _this$props2.threshold,\n other = (0, _objectWithoutProperties2.default)(_this$props2, [\"action\", \"animateHeight\", \"animateTransitions\", \"axis\", \"children\", \"containerStyle\", \"disabled\", \"disableLazyLoading\", \"enableMouseEvents\", \"hysteresis\", \"ignoreNativeScroll\", \"index\", \"onChangeIndex\", \"onSwitching\", \"onTransitionEnd\", \"resistance\", \"slideStyle\", \"slideClassName\", \"springConfig\", \"style\", \"threshold\"]);\n var _this$state = this.state,\n displaySameSlide = _this$state.displaySameSlide,\n heightLatest = _this$state.heightLatest,\n indexLatest = _this$state.indexLatest,\n isDragging = _this$state.isDragging,\n renderOnlyActive = _this$state.renderOnlyActive;\n var touchEvents = !disabled ? {\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n } : {};\n var mouseEvents = !disabled && enableMouseEvents ? {\n onMouseDown: this.handleMouseDown,\n onMouseUp: this.handleMouseUp,\n onMouseLeave: this.handleMouseLeave,\n onMouseMove: this.handleMouseMove\n } : {}; // There is no point to animate if we are already providing a height.\n\n process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(!animateHeight || !containerStyleProp || !containerStyleProp.height, \"react-swipeable-view: You are setting animateHeight to true but you are\\nalso providing a custom height.\\nThe custom height has a higher priority than the animateHeight property.\\nSo animateHeight is most likely having no effect at all.\") : void 0;\n var slideStyle = (0, _extends2.default)({}, styles.slide, slideStyleProp);\n var transition;\n var WebkitTransition;\n\n if (isDragging || !animateTransitions || displaySameSlide) {\n transition = 'all 0s ease 0s';\n WebkitTransition = 'all 0s ease 0s';\n } else {\n transition = createTransition('transform', springConfig);\n WebkitTransition = createTransition('-webkit-transform', springConfig);\n\n if (heightLatest !== 0) {\n var additionalTranstion = \", \".concat(createTransition('height', springConfig));\n transition += additionalTranstion;\n WebkitTransition += additionalTranstion;\n }\n }\n\n var containerStyle = {\n height: null,\n WebkitFlexDirection: axisProperties.flexDirection[axis],\n flexDirection: axisProperties.flexDirection[axis],\n WebkitTransition: WebkitTransition,\n transition: transition\n }; // Apply the styles for SSR considerations\n\n if (!renderOnlyActive) {\n var transform = axisProperties.transform[axis](this.indexCurrent * 100);\n containerStyle.WebkitTransform = transform;\n containerStyle.transform = transform;\n }\n\n if (animateHeight) {\n containerStyle.height = heightLatest;\n }\n\n return React.createElement(SwipeableViewsContext.Provider, {\n value: this.getSwipeableViewsContext()\n }, React.createElement(\"div\", (0, _extends2.default)({\n ref: this.setRootNode,\n style: (0, _extends2.default)({}, axisProperties.root[axis], style)\n }, other, touchEvents, mouseEvents, {\n onScroll: this.handleScroll\n }), React.createElement(\"div\", {\n ref: this.setContainerNode,\n style: (0, _extends2.default)({}, containerStyle, styles.container, containerStyleProp),\n className: \"react-swipeable-view-container\"\n }, React.Children.map(children, function (child, indexChild) {\n if (renderOnlyActive && indexChild !== indexLatest) {\n return null;\n }\n\n process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(React.isValidElement(child), \"react-swipeable-view: one of the children provided is invalid: \".concat(child, \".\\n We are expecting a valid React Element\")) : void 0;\n var ref;\n var hidden = true;\n\n if (indexChild === indexLatest) {\n hidden = false;\n\n if (animateHeight) {\n ref = _this4.setActiveSlide;\n slideStyle.overflowY = 'hidden';\n }\n }\n\n return React.createElement(\"div\", {\n ref: ref,\n style: slideStyle,\n className: slideClassName,\n \"aria-hidden\": hidden,\n \"data-swipeable\": \"true\"\n }, child);\n }))));\n }\n }]);\n return SwipeableViews;\n}(React.Component); // Added as an ads for people using the React dev tools in production.\n// So they know, the tool used to build the awesome UI they\n// are looking at/retro engineering.\n\n\nSwipeableViews.displayName = 'ReactSwipableView';\nSwipeableViews.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * This is callback property. It's called by the component on mount.\n * This is useful when you want to trigger an action programmatically.\n * It currently only supports updateHeight() action.\n *\n * @param {object} actions This object contains all posible actions\n * that can be triggered programmatically.\n */\n action: _propTypes.default.func,\n\n /**\n * If `true`, the height of the container will be animated to match the current slide height.\n * Animating another style property has a negative impact regarding performance.\n */\n animateHeight: _propTypes.default.bool,\n\n /**\n * If `false`, changes to the index prop will not cause an animated transition.\n */\n animateTransitions: _propTypes.default.bool,\n\n /**\n * The axis on which the slides will slide.\n */\n axis: _propTypes.default.oneOf(['x', 'x-reverse', 'y', 'y-reverse']),\n\n /**\n * Use this property to provide your slides.\n */\n children: _propTypes.default.node.isRequired,\n\n /**\n * This is the inlined style that will be applied\n * to each slide container.\n */\n containerStyle: _propTypes.default.object,\n\n /**\n * If `true`, it will disable touch events.\n * This is useful when you want to prohibit the user from changing slides.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * This is the config used to disable lazyloding,\n * if `true` will render all the views in first rendering.\n */\n disableLazyLoading: _propTypes.default.bool,\n\n /**\n * If `true`, it will enable mouse events.\n * This will allow the user to perform the relevant swipe actions with a mouse.\n */\n enableMouseEvents: _propTypes.default.bool,\n\n /**\n * Configure hysteresis between slides. This value determines how far\n * should user swipe to switch slide.\n */\n hysteresis: _propTypes.default.number,\n\n /**\n * If `true`, it will ignore native scroll container.\n * It can be used to filter out false positive that blocks the swipe.\n */\n ignoreNativeScroll: _propTypes.default.bool,\n\n /**\n * This is the index of the slide to show.\n * This is useful when you want to change the default slide shown.\n * Or when you have tabs linked to each slide.\n */\n index: _propTypes.default.number,\n\n /**\n * This is callback prop. It's call by the\n * component when the shown slide change after a swipe made by the user.\n * This is useful when you have tabs linked to each slide.\n *\n * @param {integer} index This is the current index of the slide.\n * @param {integer} indexLatest This is the oldest index of the slide.\n * @param {object} meta Meta data containing more information about the event.\n */\n onChangeIndex: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onMouseDown: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onMouseLeave: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onMouseMove: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onMouseUp: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onScroll: _propTypes.default.func,\n\n /**\n * This is callback prop. It's called by the\n * component when the slide switching.\n * This is useful when you want to implement something corresponding\n * to the current slide position.\n *\n * @param {integer} index This is the current index of the slide.\n * @param {string} type Can be either `move` or `end`.\n */\n onSwitching: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onTouchEnd: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onTouchMove: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onTouchStart: _propTypes.default.func,\n\n /**\n * The callback that fires when the animation comes to a rest.\n * This is useful to defer CPU intensive task.\n */\n onTransitionEnd: _propTypes.default.func,\n\n /**\n * If `true`, it will add bounds effect on the edges.\n */\n resistance: _propTypes.default.bool,\n\n /**\n * This is the className that will be applied\n * on the slide component.\n */\n slideClassName: _propTypes.default.string,\n\n /**\n * This is the inlined style that will be applied\n * on the slide component.\n */\n slideStyle: _propTypes.default.object,\n\n /**\n * This is the config used to create CSS transitions.\n * This is useful to change the dynamic of the transition.\n */\n springConfig: _propTypes.default.shape({\n delay: _propTypes.default.string,\n duration: _propTypes.default.string,\n easeFunction: _propTypes.default.string\n }),\n\n /**\n * This is the inlined style that will be applied\n * on the root component.\n */\n style: _propTypes.default.object,\n\n /**\n * This is the threshold used for detecting a quick swipe.\n * If the computed speed is above this value, the index change.\n */\n threshold: _propTypes.default.number\n} : {};\nSwipeableViews.defaultProps = {\n animateHeight: false,\n animateTransitions: true,\n axis: 'x',\n disabled: false,\n disableLazyLoading: false,\n enableMouseEvents: false,\n hysteresis: 0.6,\n ignoreNativeScroll: false,\n index: 0,\n threshold: 5,\n springConfig: {\n duration: '0.35s',\n easeFunction: 'cubic-bezier(0.15, 0.3, 0.25, 1)',\n delay: '0s'\n },\n resistance: false\n};\nvar _default = SwipeableViews;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _SwipeableViews.default;\n }\n});\nObject.defineProperty(exports, \"SwipeableViewsContext\", {\n enumerable: true,\n get: function get() {\n return _SwipeableViews.SwipeableViewsContext;\n }\n});\n\nvar _SwipeableViews = _interopRequireWildcard(require(\"./SwipeableViews\"));","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","export { useWebSocket as default } from './lib/use-websocket';\n\nexport { SendMessage, Options } from './lib/types';\n\nexport { useSocketIO } from './lib/use-socket-io';\n\nexport { ReadyState } from './lib/constants';\n\nexport { useEventSource } from './lib/use-event-source';\n","import { MutableRefObject } from 'react';\nimport { setUpSocketIOPing } from './socket-io';\nimport {\n DEFAULT_RECONNECT_LIMIT,\n DEFAULT_RECONNECT_INTERVAL_MS,\n ReadyState,\n isEventSourceSupported,\n} from './constants';\nimport { Options, SendMessage, WebSocketLike } from './types';\nimport { assertIsWebSocket } from './util';\n\nexport interface Setters {\n setLastMessage: (message: WebSocketEventMap['message']) => void;\n setReadyState: (readyState: ReadyState) => void;\n}\n\nconst bindMessageHandler = (\n webSocketInstance: WebSocketLike,\n optionsRef: MutableRefObject,\n setLastMessage: Setters['setLastMessage'],\n) => {\n webSocketInstance.onmessage = (message: WebSocketEventMap['message']) => {\n optionsRef.current.onMessage && optionsRef.current.onMessage(message);\n if (typeof optionsRef.current.filter === 'function' && optionsRef.current.filter(message) !== true) {\n return;\n }\n setLastMessage(message);\n };\n};\n\nconst bindOpenHandler = (\n webSocketInstance: WebSocketLike,\n optionsRef: MutableRefObject,\n setReadyState: Setters['setReadyState'],\n reconnectCount: MutableRefObject,\n) => {\n webSocketInstance.onopen = (event: WebSocketEventMap['open']) => {\n optionsRef.current.onOpen && optionsRef.current.onOpen(event);\n reconnectCount.current = 0;\n setReadyState(ReadyState.OPEN);\n };\n};\n\nconst bindCloseHandler = (\n webSocketInstance: WebSocketLike,\n optionsRef: MutableRefObject,\n setReadyState: Setters['setReadyState'],\n reconnect: () => void,\n reconnectCount: MutableRefObject,\n) => {\n if (isEventSourceSupported && webSocketInstance instanceof EventSource) {\n return () => {};\n }\n assertIsWebSocket(webSocketInstance);\n let reconnectTimeout: number;\n\n webSocketInstance.onclose = (event: WebSocketEventMap['close']) => {\n optionsRef.current.onClose && optionsRef.current.onClose(event);\n setReadyState(ReadyState.CLOSED);\n if (optionsRef.current.shouldReconnect && optionsRef.current.shouldReconnect(event)) {\n const reconnectAttempts = optionsRef.current.reconnectAttempts ?? DEFAULT_RECONNECT_LIMIT;\n if (reconnectCount.current < reconnectAttempts) {\n reconnectTimeout = window.setTimeout(() => {\n reconnectCount.current++;\n reconnect();\n }, optionsRef.current.reconnectInterval ?? DEFAULT_RECONNECT_INTERVAL_MS);\n } else {\n optionsRef.current.onReconnectStop && optionsRef.current.onReconnectStop(reconnectAttempts);\n console.warn(`Max reconnect attempts of ${reconnectAttempts} exceeded`);\n }\n }\n };\n\n return () => reconnectTimeout && window.clearTimeout(reconnectTimeout);\n};\n\nconst bindErrorHandler = (\n webSocketInstance: WebSocketLike,\n optionsRef: MutableRefObject,\n setReadyState: Setters['setReadyState'],\n reconnect: () => void,\n reconnectCount: MutableRefObject,\n) => {\n let reconnectTimeout: number;\n\n webSocketInstance.onerror = (error: WebSocketEventMap['error']) => {\n optionsRef.current.onError && optionsRef.current.onError(error);\n if (isEventSourceSupported && webSocketInstance instanceof EventSource) {\n optionsRef.current.onClose && optionsRef.current.onClose({\n ...error,\n code: 1006,\n reason: `An error occurred with the EventSource: ${error}`,\n wasClean: false,\n });\n\n setReadyState(ReadyState.CLOSED);\n webSocketInstance.close();\n }\n \n if (optionsRef.current.retryOnError) {\n if (reconnectCount.current < (optionsRef.current.reconnectAttempts ?? DEFAULT_RECONNECT_LIMIT)) {\n reconnectTimeout = window.setTimeout(() => {\n reconnectCount.current++;\n reconnect();\n }, optionsRef.current.reconnectInterval ?? DEFAULT_RECONNECT_INTERVAL_MS);\n } else {\n optionsRef.current.onReconnectStop && optionsRef.current.onReconnectStop(optionsRef.current.reconnectAttempts as number);\n console.warn(`Max reconnect attempts of ${optionsRef.current.reconnectAttempts} exceeded`);\n }\n }\n };\n\n return () => reconnectTimeout && window.clearTimeout(reconnectTimeout);\n};\n\nexport const attachListeners = (\n webSocketInstance: WebSocketLike,\n setters: Setters,\n optionsRef: MutableRefObject,\n reconnect: () => void,\n reconnectCount: MutableRefObject,\n sendMessage: SendMessage,\n ): (() => void) => {\n const { setLastMessage, setReadyState } = setters;\n\n let interval: number;\n let cancelReconnectOnClose: () => void;\n let cancelReconnectOnError: () => void;\n\n if (optionsRef.current.fromSocketIO) {\n interval = setUpSocketIOPing(sendMessage);\n }\n\n bindMessageHandler(\n webSocketInstance,\n optionsRef,\n setLastMessage,\n );\n\n bindOpenHandler(\n webSocketInstance,\n optionsRef,\n setReadyState,\n reconnectCount,\n );\n\n cancelReconnectOnClose = bindCloseHandler(\n webSocketInstance,\n optionsRef,\n setReadyState,\n reconnect,\n reconnectCount,\n );\n\n cancelReconnectOnError = bindErrorHandler(\n webSocketInstance,\n optionsRef,\n setReadyState,\n reconnect,\n reconnectCount,\n );\n\n return () => {\n setReadyState(ReadyState.CLOSING);\n cancelReconnectOnClose();\n cancelReconnectOnError();\n webSocketInstance.close();\n if (interval) clearInterval(interval);\n };\n};\n","import { sharedWebSockets } from './globals';\nimport { DEFAULT_RECONNECT_LIMIT, DEFAULT_RECONNECT_INTERVAL_MS, ReadyState, isEventSourceSupported } from './constants';\nimport { getSubscribers } from './manage-subscribers';\nimport { MutableRefObject } from 'react';\nimport { Options, SendMessage, WebSocketLike } from './types';\nimport { setUpSocketIOPing } from './socket-io';\n\nconst bindMessageHandler = (\n webSocketInstance: WebSocketLike,\n url: string,\n) => {\n webSocketInstance.onmessage = (message: WebSocketEventMap['message']) => {\n getSubscribers(url).forEach(subscriber => {\n if (subscriber.optionsRef.current.onMessage) {\n subscriber.optionsRef.current.onMessage(message);\n }\n\n if (\n typeof subscriber.optionsRef.current.filter === 'function' &&\n subscriber.optionsRef.current.filter(message) !== true\n ) {\n return;\n }\n\n subscriber.setLastMessage(message);\n });\n };\n};\n\nconst bindOpenHandler = (\n webSocketInstance: WebSocketLike,\n url: string,\n) => {\n webSocketInstance.onopen = (event: WebSocketEventMap['open']) => {\n getSubscribers(url).forEach(subscriber => {\n subscriber.reconnectCount.current = 0;\n if (subscriber.optionsRef.current.onOpen) {\n subscriber.optionsRef.current.onOpen(event);\n }\n\n subscriber.setReadyState(ReadyState.OPEN);\n });\n };\n};\n\nconst bindCloseHandler = (\n webSocketInstance: WebSocketLike,\n url: string,\n) => {\n if (webSocketInstance instanceof WebSocket) {\n webSocketInstance.onclose = (event: WebSocketEventMap['close']) => {\n getSubscribers(url).forEach(subscriber => {\n if (subscriber.optionsRef.current.onClose) {\n subscriber.optionsRef.current.onClose(event);\n }\n \n subscriber.setReadyState(ReadyState.CLOSED);\n });\n \n delete sharedWebSockets[url];\n \n getSubscribers(url).forEach(subscriber => {\n if (\n subscriber.optionsRef.current.shouldReconnect &&\n subscriber.optionsRef.current.shouldReconnect(event)\n ) {\n const reconnectAttempts = subscriber.optionsRef.current.reconnectAttempts ?? DEFAULT_RECONNECT_LIMIT;\n if (subscriber.reconnectCount.current < reconnectAttempts) {\n setTimeout(() => {\n subscriber.reconnectCount.current++;\n subscriber.reconnect.current();\n }, subscriber.optionsRef.current.reconnectInterval ?? DEFAULT_RECONNECT_INTERVAL_MS);\n } else {\n subscriber.optionsRef.current.onReconnectStop && subscriber.optionsRef.current.onReconnectStop(subscriber.optionsRef.current.reconnectAttempts as number);\n console.warn(`Max reconnect attempts of ${reconnectAttempts} exceeded`);\n }\n }\n });\n };\n }\n};\n\nconst bindErrorHandler = (\n webSocketInstance: WebSocketLike,\n url: string,\n) => {\n webSocketInstance.onerror = (error: WebSocketEventMap['error']) => {\n getSubscribers(url).forEach(subscriber => {\n if (subscriber.optionsRef.current.onError) {\n subscriber.optionsRef.current.onError(error);\n }\n if (isEventSourceSupported && webSocketInstance instanceof EventSource) {\n subscriber.optionsRef.current.onClose && subscriber.optionsRef.current.onClose({\n ...error,\n code: 1006,\n reason: `An error occurred with the EventSource: ${error}`,\n wasClean: false,\n });\n \n subscriber.setReadyState(ReadyState.CLOSED);\n }\n });\n if (isEventSourceSupported && webSocketInstance instanceof EventSource) {\n webSocketInstance.close();\n }\n };\n};\n\nexport const attachSharedListeners = (\n webSocketInstance: WebSocketLike,\n url: string,\n optionsRef: MutableRefObject,\n sendMessage: SendMessage,\n) => {\n let interval: number;\n\n if (optionsRef.current.fromSocketIO) {\n interval = setUpSocketIOPing(sendMessage);\n }\n\n bindMessageHandler(webSocketInstance, url);\n bindCloseHandler(webSocketInstance, url);\n bindOpenHandler(webSocketInstance, url);\n bindErrorHandler(webSocketInstance, url);\n\n return () => {\n if (interval) clearInterval(interval);\n };\n};\n","import { EventSourceEventHandlers, EventSourceOptions } from \"./types\";\n\nconst MILLISECONDS = 1;\nconst SECONDS = 1000 * MILLISECONDS;\n\nexport const DEFAULT_OPTIONS = {};\nexport const EMPTY_EVENT_HANDLERS: EventSourceEventHandlers = {};\nexport const DEFAULT_EVENT_SOURCE_OPTIONS: EventSourceOptions = {\n withCredentials: false,\n events: EMPTY_EVENT_HANDLERS,\n};\nexport const SOCKET_IO_PING_INTERVAL = 25 * SECONDS;\nexport const SOCKET_IO_PATH = '/socket.io/?EIO=3&transport=websocket';\nexport const SOCKET_IO_PING_CODE = '2';\nexport const DEFAULT_RECONNECT_LIMIT = 20;\nexport const DEFAULT_RECONNECT_INTERVAL_MS = 5000;\nexport const UNPARSABLE_JSON_OBJECT = {};\n\nexport enum ReadyState {\n UNINSTANTIATED = -1,\n CONNECTING = 0,\n OPEN = 1,\n CLOSING = 2,\n CLOSED = 3,\n}\n\nconst eventSourceSupported = () => {\n try {\n return 'EventSource' in globalThis;\n } catch (e) {\n return false;\n }\n}\n\nexport const isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nexport const isEventSourceSupported = !isReactNative && eventSourceSupported();\n","import { MutableRefObject } from 'react';\nimport { sharedWebSockets } from './globals';\nimport { Options, SendMessage, Subscriber, WebSocketLike } from './types';\nimport { isEventSourceSupported, ReadyState, isReactNative } from './constants';\nimport { attachListeners } from './attach-listener';\nimport { attachSharedListeners } from './attach-shared-listeners';\nimport { addSubscriber, removeSubscriber, hasSubscribers } from './manage-subscribers';\n\n//TODO ensure that all onClose callbacks are called\n\nconst cleanSubscribers = (\n url: string,\n subscriber: Subscriber,\n optionsRef: MutableRefObject,\n setReadyState: (readyState: ReadyState) => void,\n clearSocketIoPingInterval: (() => void) | null,\n) => {\n return () => {\n removeSubscriber(url, subscriber);\n if (!hasSubscribers(url)) {\n try {\n const socketLike = sharedWebSockets[url];\n if (socketLike instanceof WebSocket) {\n socketLike.onclose = (event: WebSocketEventMap['close']) => {\n if (optionsRef.current.onClose) {\n optionsRef.current.onClose(event);\n }\n setReadyState(ReadyState.CLOSED);\n };\n }\n socketLike.close();\n } catch (e) {\n\n }\n if (clearSocketIoPingInterval) clearSocketIoPingInterval();\n\n delete sharedWebSockets[url];\n }\n }\n};\n\nexport const createOrJoinSocket = (\n webSocketRef: MutableRefObject,\n url: string,\n setReadyState: (readyState: ReadyState) => void,\n optionsRef: MutableRefObject,\n setLastMessage: (message: WebSocketEventMap['message']) => void,\n startRef: MutableRefObject<() => void>,\n reconnectCount: MutableRefObject,\n sendMessage: SendMessage,\n): (() => void) => {\n if (!isEventSourceSupported && optionsRef.current.eventSourceOptions) {\n if (isReactNative) {\n throw new Error('EventSource is not supported in ReactNative');\n } else {\n throw new Error('EventSource is not supported');\n }\n }\n\n if (optionsRef.current.share) {\n let clearSocketIoPingInterval: ((() => void) | null) = null;\n if (sharedWebSockets[url] === undefined) {\n sharedWebSockets[url] = optionsRef.current.eventSourceOptions ?\n new EventSource(url, optionsRef.current.eventSourceOptions) :\n new WebSocket(url, optionsRef.current.protocols);\n webSocketRef.current = sharedWebSockets[url];\n setReadyState(ReadyState.CONNECTING);\n clearSocketIoPingInterval = attachSharedListeners(\n sharedWebSockets[url],\n url,\n optionsRef,\n sendMessage,\n );\n } else {\n webSocketRef.current = sharedWebSockets[url];\n setReadyState(sharedWebSockets[url].readyState);\n }\n\n const subscriber: Subscriber = {\n setLastMessage,\n setReadyState,\n optionsRef,\n reconnectCount,\n reconnect: startRef,\n };\n \n addSubscriber(url, subscriber);\n\n return cleanSubscribers(\n url,\n subscriber,\n optionsRef,\n setReadyState,\n clearSocketIoPingInterval,\n );\n } else {\n webSocketRef.current = optionsRef.current.eventSourceOptions ?\n new EventSource(url, optionsRef.current.eventSourceOptions) :\n new WebSocket(url, optionsRef.current.protocols);\n setReadyState(ReadyState.CONNECTING);\n if (!webSocketRef.current) {\n throw new Error('WebSocket failed to be created');\n }\n\n return attachListeners(\n webSocketRef.current,\n {\n setLastMessage,\n setReadyState\n },\n optionsRef,\n startRef.current,\n reconnectCount,\n sendMessage,\n );\n }\n};\n","import { MutableRefObject } from 'react';\nimport { parseSocketIOUrl, appendQueryParams } from './socket-io';\nimport { Options } from './types';\n\nexport const getUrl = async (\n url: string | (() => string | Promise),\n optionsRef: MutableRefObject,\n) => {\n let convertedUrl: string;\n\n if (typeof url === 'function') {\n convertedUrl = await url();\n } else {\n convertedUrl = url;\n }\n\n const parsedUrl = optionsRef.current.fromSocketIO ?\n parseSocketIOUrl(convertedUrl) :\n convertedUrl;\n\n const parsedWithQueryParams = optionsRef.current.queryParams ?\n appendQueryParams(\n parsedUrl,\n optionsRef.current.queryParams\n ) :\n parsedUrl;\n\n return parsedWithQueryParams;\n};\n","import { WebSocketLike } from \"./types\";\n\nexport interface SharedWebSockets {\n [url: string]: WebSocketLike;\n}\n\nexport const sharedWebSockets: SharedWebSockets = {};\n","import { Subscriber } from './types';\n\nexport type Subscribers = {\n [url: string]: Set,\n}\n \nconst subscribers: Subscribers = {};\nconst EMPTY_LIST: Subscriber[] = [];\n\nexport const getSubscribers = (url: string): Subscriber[] => {\n if (hasSubscribers(url)) {\n return Array.from(subscribers[url]);\n }\n return EMPTY_LIST;\n};\n\nexport const hasSubscribers = (url: string): boolean => {\n return subscribers[url]?.size > 0;\n};\n\nexport const addSubscriber = (url: string, subscriber: Subscriber): void => {\n subscribers[url] = subscribers[url] || new Set();\n subscribers[url].add(subscriber);\n};\n\nexport const removeSubscriber = (url: string, subscriber: Subscriber): void => {\n subscribers[url].delete(subscriber);\n};\n","import { MutableRefObject } from 'react';\n\ntype IfEquals =\n (() => T extends X ? 1 : 2) extends\n (() => T extends Y ? 1 : 2) ? A : B;\n\ntype WritableKeys = {\n [P in keyof T]-?: IfEquals<{ [Q in P]: T[P] }, { -readonly [Q in P]: T[P] }, P>\n}[keyof T];\n\nexport const websocketWrapper = (\n webSocket: WebSocket,\n start: MutableRefObject<() => void>,\n): WebSocket => {\n\n return new Proxy(webSocket, {\n get: (obj, key: keyof WebSocket) => {\n const val = obj[key];\n if ((key as any) === 'reconnect') return start;\n if (typeof val === 'function') {\n console.error('Calling methods directly on the websocket is not supported at this moment. You must use the methods returned by useWebSocket.');\n \n //Prevent error thrown by invoking a non-function\n return () => {};\n } else {\n return val;\n }\n },\n set: (obj: WebSocket, key:WritableKeys, val: any) => {\n if (/^on/.test(key)) {\n console.warn('The websocket\\'s event handlers should be defined through the options object passed into useWebSocket.')\n return false;\n } else {\n obj[key] = val;\n return true;\n }\n },\n });\n};\n\nexport default websocketWrapper;\n","import { SOCKET_IO_PING_INTERVAL, SOCKET_IO_PATH, SOCKET_IO_PING_CODE } from './constants';\nimport { QueryParams, SendMessage } from './types';\n\nexport const parseSocketIOUrl = (url: string) => {\n if (url) {\n const isSecure = /^https|wss/.test(url);\n const strippedProtocol = url.replace(/^(https?|wss?)(:\\/\\/)?/, '');\n const removedFinalBackSlack = strippedProtocol.replace(/\\/$/, '');\n const protocol = isSecure ? 'wss' : 'ws';\n\n return `${protocol}://${removedFinalBackSlack}${SOCKET_IO_PATH}`;\n } else if (url === '') {\n const isSecure = /^https/.test(window.location.protocol);\n const protocol = isSecure ? 'wss' : 'ws';\n const port = window.location.port ? `:${window.location.port}` : '';\n\n return `${protocol}://${window.location.hostname}${port}${SOCKET_IO_PATH}`;\n }\n\n return url;\n};\n\nexport const appendQueryParams = (url: string, params: QueryParams = {}): string => {\n const hasParamsRegex = /\\?([\\w]+=[\\w]+)/;\n const alreadyHasParams = hasParamsRegex.test(url);\n\n const stringified = `${Object.entries(params).reduce((next, [key, value]) => {\n return next + `${key}=${value}&`;\n }, '').slice(0, -1)}`;\n\n return `${url}${alreadyHasParams ? '&' : '?'}${stringified}`;\n};\n\nexport const setUpSocketIOPing = (sendMessage: SendMessage, interval = SOCKET_IO_PING_INTERVAL): any => {\n const ping = () => sendMessage(SOCKET_IO_PING_CODE);\n\n return setInterval(ping, interval);\n};\n","import { useEffect, useRef } from 'react'\nimport { useWebSocket } from './use-websocket'\nimport { DEFAULT_EVENT_SOURCE_OPTIONS, EMPTY_EVENT_HANDLERS } from './constants'\nimport { EventSourceOptions, Options, EventSourceHook, EventSourceEventHandlers } from './types';\n\nexport const useEventSource = (\n url: string | (() => string | Promise) | null,\n { withCredentials, events, ...options }: EventSourceOptions = DEFAULT_EVENT_SOURCE_OPTIONS,\n connect: boolean = true,\n): EventSourceHook => {\n const optionsWithEventSource: Options = {\n ...options,\n eventSourceOptions: {\n withCredentials,\n }\n };\n const eventsRef = useRef(EMPTY_EVENT_HANDLERS);\n if (events) {\n eventsRef.current = events\n }\n\n const {\n lastMessage,\n readyState,\n getWebSocket,\n } = useWebSocket(\n url,\n optionsWithEventSource,\n connect,\n );\n\n useEffect(() => {\n if (lastMessage?.type) {\n Object.entries(eventsRef.current).forEach(([type, handler]) => {\n if (type === lastMessage.type) {\n handler(lastMessage);\n }\n });\n }\n }, [lastMessage]);\n\n return {\n lastEvent: lastMessage,\n readyState,\n getEventSource: getWebSocket,\n };\n}\n","import { useMemo } from 'react'\nimport { useWebSocket } from './use-websocket'\nimport { DEFAULT_OPTIONS } from './constants'\nimport { Options, WebSocketHook } from './types';\n\nexport interface SocketIOMessageData {\n type: string,\n payload: any,\n}\n\nconst emptyEvent: SocketIOMessageData = {\n type: 'empty',\n payload: null,\n}\n\nconst getSocketData = (event: WebSocketEventMap['message'] | null): SocketIOMessageData => {\n if (!event || !event.data) {\n return emptyEvent\n }\n\n const match = event.data.match(/\\[.*]/)\n\n if (!match) {\n return emptyEvent\n }\n\n const data = JSON.parse(match)\n\n if (!Array.isArray(data) || !data[1]) {\n return emptyEvent\n }\n\n return {\n type: data[0],\n payload: data[1],\n }\n}\n\nexport const useSocketIO = (\n url: string | (() => string | Promise) | null,\n options: Options = DEFAULT_OPTIONS,\n connect: boolean = true,\n): WebSocketHook => {\n const optionsWithSocketIO = useMemo(() => ({\n ...options,\n fromSocketIO: true,\n }), [])\n\n const {\n sendMessage,\n sendJsonMessage,\n lastMessage,\n readyState,\n getWebSocket,\n } = useWebSocket(\n\n url,\n optionsWithSocketIO,\n connect,\n );\n\n const socketIOLastMessage = useMemo(() =>\n getSocketData(lastMessage), [lastMessage]);\n\n return {\n sendMessage,\n sendJsonMessage,\n lastMessage: socketIOLastMessage,\n lastJsonMessage: socketIOLastMessage,\n readyState,\n getWebSocket,\n };\n}\n","import { useEffect, useRef, useState, useCallback, useMemo } from 'react';\nimport { DEFAULT_OPTIONS, isEventSourceSupported, ReadyState, UNPARSABLE_JSON_OBJECT } from './constants';\nimport { createOrJoinSocket } from './create-or-join';\nimport { getUrl } from './get-url';\nimport websocketWrapper from './proxy';\nimport {\n Options,\n ReadyStateState,\n SendMessage,\n SendJsonMessage,\n WebSocketMessage,\n WebSocketHook,\n WebSocketLike,\n} from './types';\nimport { assertIsWebSocket } from './util';\n\nexport const useWebSocket = (\n url: string | (() => string | Promise) | null,\n options: Options = DEFAULT_OPTIONS,\n connect: boolean = true,\n): WebSocketHook => {\n const [lastMessage, setLastMessage] = useState(null);\n const [readyState, setReadyState] = useState({});\n const lastJsonMessage = useMemo(() => {\n if (lastMessage) {\n try {\n return JSON.parse(lastMessage.data);\n } catch (e) {\n return UNPARSABLE_JSON_OBJECT;\n }\n }\n return null;\n },[lastMessage]);\n const convertedUrl = useRef(null);\n const webSocketRef = useRef(null);\n const startRef = useRef<() => void>(() => void 0);\n const reconnectCount = useRef(0);\n const messageQueue = useRef([]);\n const webSocketProxy = useRef(null);\n const optionsCache = useRef(options);\n optionsCache.current = options;\n\n const readyStateFromUrl: ReadyState =\n convertedUrl.current && readyState[convertedUrl.current] !== undefined ?\n readyState[convertedUrl.current] :\n url !== null && connect === true ?\n ReadyState.CONNECTING :\n ReadyState.UNINSTANTIATED;\n\n const stringifiedQueryParams = options.queryParams ? JSON.stringify(options.queryParams) : null;\n\n const sendMessage: SendMessage = useCallback((message, keep = true) => {\n if (isEventSourceSupported && webSocketRef.current instanceof EventSource) {\n console.warn('Unable to send a message from an eventSource');\n return;\n }\n \n if (webSocketRef.current?.readyState === ReadyState.OPEN) {\n assertIsWebSocket(webSocketRef.current);\n webSocketRef.current.send(message);\n } else if (keep) {\n messageQueue.current.push(message);\n }\n }, []);\n\n const sendJsonMessage: SendJsonMessage = useCallback((message, keep = true) => {\n sendMessage(JSON.stringify(message), keep);\n }, [sendMessage]);\n \n const getWebSocket = useCallback(() => {\n if (optionsCache.current.share !== true || (isEventSourceSupported && webSocketRef.current instanceof EventSource)) {\n return webSocketRef.current;\n }\n\n if (webSocketProxy.current === null && webSocketRef.current) {\n assertIsWebSocket(webSocketRef.current);\n webSocketProxy.current = websocketWrapper(webSocketRef.current, startRef);\n }\n\n return webSocketProxy.current;\n }, []);\n\n useEffect(() => {\n if (url !== null && connect === true) {\n let removeListeners: () => void;\n let expectClose = false;\n\n const start = async () => {\n convertedUrl.current = await getUrl(url, optionsCache);\n\n const protectedSetLastMessage = (message: WebSocketEventMap['message']) => {\n if (!expectClose) {\n setLastMessage(message);\n }\n };\n \n const protectedSetReadyState = (state: ReadyState) => {\n if (!expectClose) {\n setReadyState(prev => ({\n ...prev,\n ...(convertedUrl.current && {[convertedUrl.current]: state}),\n }));\n }\n };\n\n removeListeners = createOrJoinSocket(\n webSocketRef,\n convertedUrl.current,\n protectedSetReadyState,\n optionsCache,\n protectedSetLastMessage,\n startRef,\n reconnectCount,\n sendMessage,\n );\n };\n\n startRef.current = () => {\n if (!expectClose) {\n if (webSocketProxy.current) webSocketProxy.current = null;\n removeListeners?.();\n start();\n }\n };\n \n start();\n return () => {\n expectClose = true;\n if (webSocketProxy.current) webSocketProxy.current = null;\n removeListeners?.();\n setLastMessage(null);\n };\n } else if (url === null || connect === false) {\n reconnectCount.current = 0; // reset reconnection attempts\n setReadyState(prev => ({\n ...prev,\n ...(convertedUrl.current && {[convertedUrl.current]: ReadyState.CLOSED}),\n }));\n }\n }, [url, connect, stringifiedQueryParams, sendMessage]);\n\n useEffect(() => {\n if (readyStateFromUrl === ReadyState.OPEN) {\n messageQueue.current.splice(0).forEach(message => {\n sendMessage(message);\n });\n }\n }, [readyStateFromUrl]);\n\n return {\n sendMessage,\n sendJsonMessage,\n lastMessage,\n lastJsonMessage,\n readyState: readyStateFromUrl,\n getWebSocket,\n };\n};\n","import { WebSocketLike } from './types';\n\nexport function assertIsWebSocket (\n webSocketInstance: WebSocketLike,\n): asserts webSocketInstance is WebSocket {\n if (webSocketInstance instanceof WebSocket === false) throw new Error('');\n};\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\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\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _postcssValueParser = require('postcss-value-parser');\n\nvar _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);\n\nvar _parser = require('./parser');\n\nvar _reducer = require('./lib/reducer');\n\nvar _reducer2 = _interopRequireDefault(_reducer);\n\nvar _stringifier = require('./lib/stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eslint-disable-line\nvar MATCH_CALC = /((?:\\-[a-z]+\\-)?calc)/;\n\nexports.default = function (value) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n\n return (0, _postcssValueParser2.default)(value).walk(function (node) {\n // skip anything which isn't a calc() function\n if (node.type !== 'function' || !MATCH_CALC.test(node.value)) return;\n\n // stringify calc expression and produce an AST\n var contents = _postcssValueParser2.default.stringify(node.nodes);\n\n // skip constant() and env()\n if (contents.indexOf('constant') >= 0 || contents.indexOf('env') >= 0) return;\n\n var ast = _parser.parser.parse(contents);\n\n // reduce AST to its simplest form, that is, either to a single value\n // or a simplified calc expression\n var reducedAst = (0, _reducer2.default)(ast, precision);\n\n // stringify AST and write it back\n node.type = 'word';\n node.value = (0, _stringifier2.default)(node.value, reducedAst, precision);\n }, true).toString();\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cssUnitConverter = require('css-unit-converter');\n\nvar _cssUnitConverter2 = _interopRequireDefault(_cssUnitConverter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertNodes(left, right, precision) {\n switch (left.type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n return convertAbsoluteLength(left, right, precision);\n default:\n return { left: left, right: right };\n }\n}\n\nfunction convertAbsoluteLength(left, right, precision) {\n if (right.type === left.type) {\n right = {\n type: left.type,\n value: (0, _cssUnitConverter2.default)(right.value, right.unit, left.unit, precision),\n unit: left.unit\n };\n }\n return { left: left, right: right };\n}\n\nexports.default = convertNodes;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flip = flip;\n\nvar _convert = require(\"./convert\");\n\nvar _convert2 = _interopRequireDefault(_convert);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction reduce(node, precision) {\n if (node.type === \"MathExpression\") return reduceMathExpression(node, precision);\n if (node.type === \"Calc\") return reduce(node.value, precision);\n\n return node;\n}\n\nfunction isEqual(left, right) {\n return left.type === right.type && left.value === right.value;\n}\n\nfunction isValueType(type) {\n switch (type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n case 'EmValue':\n case 'ExValue':\n case 'ChValue':\n case 'RemValue':\n case 'VhValue':\n case 'VwValue':\n case 'VminValue':\n case 'VmaxValue':\n case 'PercentageValue':\n case 'Value':\n return true;\n }\n return false;\n}\n\nfunction convertMathExpression(node, precision) {\n var nodes = (0, _convert2.default)(node.left, node.right, precision);\n var left = reduce(nodes.left, precision);\n var right = reduce(nodes.right, precision);\n\n if (left.type === \"MathExpression\" && right.type === \"MathExpression\") {\n\n if (left.operator === '/' && right.operator === '*' || left.operator === '-' && right.operator === '+' || left.operator === '*' && right.operator === '/' || left.operator === '+' && right.operator === '-') {\n\n if (isEqual(left.right, right.right)) nodes = (0, _convert2.default)(left.left, right.left, precision);else if (isEqual(left.right, right.left)) nodes = (0, _convert2.default)(left.left, right.right, precision);\n\n left = reduce(nodes.left, precision);\n right = reduce(nodes.right, precision);\n }\n }\n\n node.left = left;\n node.right = right;\n return node;\n}\n\nfunction flip(operator) {\n return operator === '+' ? '-' : '+';\n}\n\nfunction flipValue(node) {\n if (isValueType(node.type)) node.value = -node.value;else if (node.type == 'MathExpression') {\n node.left = flipValue(node.left);\n node.right = flipValue(node.right);\n }\n return node;\n}\n\nfunction reduceAddSubExpression(node, precision) {\n var _node = node,\n left = _node.left,\n right = _node.right,\n op = _node.operator;\n\n\n if (left.type === 'CssVariable' || right.type === 'CssVariable') return node;\n\n // something + 0 => something\n // something - 0 => something\n if (right.value === 0) return left;\n\n // 0 + something => something\n if (left.value === 0 && op === \"+\") return right;\n\n // 0 - something => -something\n if (left.value === 0 && op === \"-\") return flipValue(right);\n\n // value + value\n // value - value\n if (left.type === right.type && isValueType(left.type)) {\n node = Object.assign({}, left);\n if (op === \"+\") node.value = left.value + right.value;else node.value = left.value - right.value;\n }\n\n // value (expr)\n if (isValueType(left.type) && (right.operator === '+' || right.operator === '-') && right.type === 'MathExpression') {\n // value + (value + something) => (value + value) + something\n // value + (value - something) => (value + value) - something\n // value - (value + something) => (value - value) - something\n // value - (value - something) => (value - value) + something\n if (left.type === right.left.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left,\n right: right.left\n }, precision);\n node.right = right.right;\n node.operator = op === '-' ? flip(right.operator) : right.operator;\n return reduce(node, precision);\n }\n // value + (something + value) => (value + value) + something\n // value + (something - value) => (value - value) + something\n // value - (something + value) => (value - value) - something\n // value - (something - value) => (value + value) - something\n else if (left.type === right.right.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op === '-' ? flip(right.operator) : right.operator,\n left: left,\n right: right.right\n }, precision);\n node.right = right.left;\n return reduce(node, precision);\n }\n }\n\n // (expr) value\n if (left.type === 'MathExpression' && (left.operator === '+' || left.operator === '-') && isValueType(right.type)) {\n // (value + something) + value => (value + value) + something\n // (value - something) + value => (value + value) - something\n // (value + something) - value => (value - value) + something\n // (value - something) - value => (value - value) - something\n if (right.type === left.left.type) {\n node = Object.assign({}, left);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.left,\n right: right\n }, precision);\n return reduce(node, precision);\n }\n // (something + value) + value => something + (value + value)\n // (something - value1) + value2 => something - (value2 - value1)\n // (something + value) - value => something + (value - value)\n // (something - value) - value => something - (value + value)\n else if (right.type === left.right.type) {\n node = Object.assign({}, left);\n if (left.operator === '-') {\n node.right = reduce({\n type: 'MathExpression',\n operator: op === '-' ? '+' : '-',\n left: right,\n right: left.right\n }, precision);\n node.operator = op === '-' ? '-' : '+';\n } else {\n node.right = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.right,\n right: right\n }, precision);\n }\n if (node.right.value < 0) {\n node.right.value *= -1;\n node.operator = node.operator === '-' ? '+' : '-';\n }\n return reduce(node, precision);\n }\n }\n return node;\n}\n\nfunction reduceDivisionExpression(node, precision) {\n if (!isValueType(node.right.type)) return node;\n\n if (node.right.type !== 'Value') throw new Error(\"Cannot divide by \\\"\" + node.right.unit + \"\\\", number expected\");\n\n if (node.right.value === 0) throw new Error('Cannot divide by zero');\n\n // (expr) / value\n if (node.left.type === 'MathExpression') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value /= node.right.value;\n node.left.right.value /= node.right.value;\n return reduce(node.left, precision);\n }\n return node;\n }\n // something / value\n else if (isValueType(node.left.type)) {\n node.left.value /= node.right.value;\n return node.left;\n }\n return node;\n}\n\nfunction reduceMultiplicationExpression(node) {\n // (expr) * value\n if (node.left.type === 'MathExpression' && node.right.type === 'Value') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value *= node.right.value;\n node.left.right.value *= node.right.value;\n return node.left;\n }\n }\n // something * value\n else if (isValueType(node.left.type) && node.right.type === 'Value') {\n node.left.value *= node.right.value;\n return node.left;\n }\n // value * (expr)\n else if (node.left.type === 'Value' && node.right.type === 'MathExpression') {\n if (isValueType(node.right.left.type) && isValueType(node.right.right.type)) {\n node.right.left.value *= node.left.value;\n node.right.right.value *= node.left.value;\n return node.right;\n }\n }\n // value * something\n else if (node.left.type === 'Value' && isValueType(node.right.type)) {\n node.right.value *= node.left.value;\n return node.right;\n }\n return node;\n}\n\nfunction reduceMathExpression(node, precision) {\n node = convertMathExpression(node, precision);\n\n switch (node.operator) {\n case \"+\":\n case \"-\":\n return reduceAddSubExpression(node, precision);\n case \"/\":\n return reduceDivisionExpression(node, precision);\n case \"*\":\n return reduceMultiplicationExpression(node);\n }\n return node;\n}\n\nexports.default = reduce;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (calc, node, precision) {\n var str = stringify(node, precision);\n\n if (node.type === \"MathExpression\") {\n // if calc expression couldn't be resolved to a single value, re-wrap it as\n // a calc()\n str = calc + \"(\" + str + \")\";\n }\n return str;\n};\n\nvar _reducer = require(\"./reducer\");\n\nvar order = {\n \"*\": 0,\n \"/\": 0,\n \"+\": 1,\n \"-\": 1\n};\n\nfunction round(value, prec) {\n if (prec !== false) {\n var precision = Math.pow(10, prec);\n return Math.round(value * precision) / precision;\n }\n return value;\n}\n\nfunction stringify(node, prec) {\n switch (node.type) {\n case \"MathExpression\":\n {\n var left = node.left,\n right = node.right,\n op = node.operator;\n\n var str = \"\";\n\n if (left.type === 'MathExpression' && order[op] < order[left.operator]) str += \"(\" + stringify(left, prec) + \")\";else str += stringify(left, prec);\n\n str += \" \" + node.operator + \" \";\n\n if (right.type === 'MathExpression' && order[op] < order[right.operator]) {\n str += \"(\" + stringify(right, prec) + \")\";\n } else if (right.type === 'MathExpression' && op === \"-\" && [\"+\", \"-\"].includes(right.operator)) {\n // fix #52 : a-(b+c) = a-b-c\n right.operator = (0, _reducer.flip)(right.operator);\n str += stringify(right, prec);\n } else {\n str += stringify(right, prec);\n }\n\n return str;\n }\n case \"Value\":\n return round(node.value, prec);\n case 'CssVariable':\n if (node.fallback) {\n return \"var(\" + node.value + \", \" + stringify(node.fallback, prec, true) + \")\";\n }\n return \"var(\" + node.value + \")\";\n case 'Calc':\n if (node.prefix) {\n return \"-\" + node.prefix + \"-calc(\" + stringify(node.value, prec) + \")\";\n }\n return \"calc(\" + stringify(node.value, prec) + \")\";\n default:\n return round(node.value, prec) + node.unit;\n }\n}\n\nmodule.exports = exports[\"default\"];","\n/* parser generated by jison 0.6.1-215 */\n\n/*\n * Returns a Parser object of the following structure:\n *\n * Parser: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a derivative/copy of this one,\n * not a direct reference!\n * }\n *\n * Parser.prototype: {\n * yy: {},\n * EOF: 1,\n * TERROR: 2,\n *\n * trace: function(errorMessage, ...),\n *\n * JisonParserError: function(msg, hash),\n *\n * quoteName: function(name),\n * Helper function which can be overridden by user code later on: put suitable\n * quotes around literal IDs in a description string.\n *\n * originalQuoteName: function(name),\n * The basic quoteName handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `quoteName()` to reference this function\n * at the end of the `parse()`.\n *\n * describeSymbol: function(symbol),\n * Return a more-or-less human-readable description of the given symbol, when\n * available, or the symbol itself, serving as its own 'description' for lack\n * of something better to serve up.\n *\n * Return NULL when the symbol is unknown to the parser.\n *\n * symbols_: {associative list: name ==> number},\n * terminals_: {associative list: number ==> name},\n * nonterminals: {associative list: rule-name ==> {associative list: number ==> rule-alt}},\n * terminal_descriptions_: (if there are any) {associative list: number ==> description},\n * productions_: [...],\n *\n * performAction: function parser__performAction(yytext, yyleng, yylineno, yyloc, yystate, yysp, yyvstack, yylstack, yystack, yysstack),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `yyval` internal object, which has members (`$` and `_$`)\n * to store/reference the rule value `$$` and location info `@$`.\n *\n * One important thing to note about `this` a.k.a. `yyval`: every *reduce* action gets\n * to see the same object via the `this` reference, i.e. if you wish to carry custom\n * data from one reduce action through to the next within a single parse run, then you\n * may get nasty and use `yyval` a.k.a. `this` for storing you own semi-permanent data.\n *\n * `this.yy` is a direct reference to the `yy` shared state object.\n *\n * `%parse-param`-specified additional `parse()` arguments have been added to this `yy`\n * object at `parse()` start and are therefore available to the action code via the\n * same named `yy.xxxx` attributes (where `xxxx` represents a identifier name from\n * the %parse-param` list.\n *\n * - `yytext` : reference to the lexer value which belongs to the last lexer token used\n * to match this rule. This is *not* the look-ahead token, but the last token\n * that's actually part of this rule.\n *\n * Formulated another way, `yytext` is the value of the token immediately preceeding\n * the current look-ahead token.\n * Caveats apply for rules which don't require look-ahead, such as epsilon rules.\n *\n * - `yyleng` : ditto as `yytext`, only now for the lexer.yyleng value.\n *\n * - `yylineno`: ditto as `yytext`, only now for the lexer.yylineno value.\n *\n * - `yyloc` : ditto as `yytext`, only now for the lexer.yylloc lexer token location info.\n *\n * WARNING: since jison 0.4.18-186 this entry may be NULL/UNDEFINED instead\n * of an empty object when no suitable location info can be provided.\n *\n * - `yystate` : the current parser state number, used internally for dispatching and\n * executing the action code chunk matching the rule currently being reduced.\n *\n * - `yysp` : the current state stack position (a.k.a. 'stack pointer')\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * Also note that you can access this and other stack index values using the new double-hash\n * syntax, i.e. `##$ === ##0 === yysp`, while `##1` is the stack index for all things\n * related to the first rule term, just like you have `$1`, `@1` and `#1`.\n * This is made available to write very advanced grammar action rules, e.g. when you want\n * to investigate the parse state stack in your action code, which would, for example,\n * be relevant when you wish to implement error diagnostics and reporting schemes similar\n * to the work described here:\n *\n * + Pottier, F., 2016. Reachability and error diagnosis in LR(1) automata.\n * In Journées Francophones des Languages Applicatifs.\n *\n * + Jeffery, C.L., 2003. Generating LR syntax error messages from examples.\n * ACM Transactions on Programming Languages and Systems (TOPLAS), 25(5), pp.631–640.\n *\n * - `yyrulelength`: the current rule's term count, i.e. the number of entries occupied on the stack.\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * - `yyvstack`: reference to the parser value stack. Also accessed via the `$1` etc.\n * constructs.\n *\n * - `yylstack`: reference to the parser token location stack. Also accessed via\n * the `@1` etc. constructs.\n *\n * WARNING: since jison 0.4.18-186 this array MAY contain slots which are\n * UNDEFINED rather than an empty (location) object, when the lexer/parser\n * action code did not provide a suitable location info object when such a\n * slot was filled!\n *\n * - `yystack` : reference to the parser token id stack. Also accessed via the\n * `#1` etc. constructs.\n *\n * Note: this is a bit of a **white lie** as we can statically decode any `#n` reference to\n * its numeric token id value, hence that code wouldn't need the `yystack` but *you* might\n * want access this array for your own purposes, such as error analysis as mentioned above!\n *\n * Note that this stack stores the current stack of *tokens*, that is the sequence of\n * already parsed=reduced *nonterminals* (tokens representing rules) and *terminals*\n * (lexer tokens *shifted* onto the stack until the rule they belong to is found and\n * *reduced*.\n *\n * - `yysstack`: reference to the parser state stack. This one carries the internal parser\n * *states* such as the one in `yystate`, which are used to represent\n * the parser state machine in the *parse table*. *Very* *internal* stuff,\n * what can I say? If you access this one, you're clearly doing wicked things\n *\n * - `...` : the extra arguments you specified in the `%parse-param` statement in your\n * grammar definition file.\n *\n * table: [...],\n * State transition table\n * ----------------------\n *\n * index levels are:\n * - `state` --> hash table\n * - `symbol` --> action (number or array)\n *\n * If the `action` is an array, these are the elements' meaning:\n * - index [0]: 1 = shift, 2 = reduce, 3 = accept\n * - index [1]: GOTO `state`\n *\n * If the `action` is a number, it is the GOTO `state`\n *\n * defaultActions: {...},\n *\n * parseError: function(str, hash, ExceptionClass),\n * yyError: function(str, ...),\n * yyRecovering: function(),\n * yyErrOk: function(),\n * yyClearIn: function(),\n *\n * constructParseErrorInfo: function(error_message, exception_object, expected_token_set, is_recoverable),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this parser kernel in many places; example usage:\n *\n * var infoObj = parser.constructParseErrorInfo('fail!', null,\n * parser.collect_expected_token_set(state), true);\n * var retVal = parser.parseError(infoObj.errStr, infoObj, parser.JisonParserError);\n *\n * originalParseError: function(str, hash, ExceptionClass),\n * The basic `parseError` handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `parseError()` to reference this function\n * at the end of the `parse()`.\n *\n * options: { ... parser %options ... },\n *\n * parse: function(input[, args...]),\n * Parse the given `input` and return the parsed value (or `true` when none was provided by\n * the root action, in which case the parser is acting as a *matcher*).\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of this grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Parser's additional `args...` parameters (via `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the jison run-time;\n * when such a collision is detected an exception is thrown to prevent the generated run-time\n * from silently accepting this confusing and potentially hazardous situation!\n *\n * The lexer MAY add its own set of additional parameters (via the `%parse-param` line in\n * the lexer section of the grammar spec): these will be inserted in the `yy` shared state\n * object and any collision with those will be reported by the lexer via a thrown exception.\n *\n * cleanupAfterParse: function(resultValue, invoke_post_methods, do_not_nuke_errorinfos),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API is invoked at the end of the `parse()` call, unless an exception was thrown\n * and `%options no-try-catch` has been defined for this grammar: in that case this helper MAY\n * be invoked by calling user code to ensure the `post_parse` callbacks are invoked and\n * the internal parser gets properly garbage collected under these particular circumstances.\n *\n * yyMergeLocationInfo: function(first_index, last_index, first_yylloc, last_yylloc, dont_look_back),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API can be invoked to calculate a spanning `yylloc` location info object.\n *\n * Note: %epsilon rules MAY specify no `first_index` and `first_yylloc`, in which case\n * this function will attempt to obtain a suitable location marker by inspecting the location stack\n * backwards.\n *\n * For more info see the documentation comment further below, immediately above this function's\n * implementation.\n *\n * lexer: {\n * yy: {...}, A reference to the so-called \"shared state\" `yy` once\n * received via a call to the `.setInput(input, yy)` lexer API.\n * EOF: 1,\n * ERROR: 2,\n * JisonLexerError: function(msg, hash),\n * parseError: function(str, hash, ExceptionClass),\n * setInput: function(input, [yy]),\n * input: function(),\n * unput: function(str),\n * more: function(),\n * reject: function(),\n * less: function(n),\n * pastInput: function(n),\n * upcomingInput: function(n),\n * showPosition: function(),\n * test_match: function(regex_match_array, rule_index, ...),\n * next: function(...),\n * lex: function(...),\n * begin: function(condition),\n * pushState: function(condition),\n * popState: function(),\n * topState: function(),\n * _currentRules: function(),\n * stateStackSize: function(),\n * cleanupAfterLex: function()\n *\n * options: { ... lexer %options ... },\n *\n * performAction: function(yy, yy_, $avoiding_name_collisions, YY_START, ...),\n * rules: [...],\n * conditions: {associative list: name ==> set},\n * }\n * }\n *\n *\n * token location info (@$, _$, etc.): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer and\n * parser errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * }\n *\n * parser (grammar) errors will also provide these additional members:\n *\n * {\n * expected: (array describing the set of expected tokens;\n * may be UNDEFINED when we cannot easily produce such a set)\n * state: (integer (or array when the table includes grammar collisions);\n * represents the current internal state of the parser kernel.\n * can, for example, be used to pass to the `collect_expected_token_set()`\n * API to obtain the expected token set)\n * action: (integer; represents the current internal action which will be executed)\n * new_state: (integer; represents the next/planned internal state, once the current\n * action has executed)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * state_stack: (array: the current parser LALR/LR internal state stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * value_stack: (array: the current parser LALR/LR internal `$$` value stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * location_stack: (array: the current parser LALR/LR internal location stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * parser: (reference to the current parser instance)\n * }\n *\n * while `this` will reference the current parser instance.\n *\n * When `parseError` is invoked by the lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * lexer: (reference to the current lexer instance which reported the error)\n * }\n *\n * When `parseError` is invoked by the parser due to a **JavaScript exception** being fired\n * from either the parser or lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * exception: (reference to the exception thrown)\n * }\n *\n * Please do note that in the latter situation, the `expected` field will be omitted as\n * this type of failure is assumed not to be due to *parse errors* but rather due to user\n * action code in either parser or lexer failing unexpectedly.\n *\n * ---\n *\n * You can specify parser options by setting / modifying the `.yy` object of your Parser instance.\n * These options are available:\n *\n * ### options which are global for all parser instances\n *\n * Parser.pre_parse: function(yy)\n * optional: you can specify a pre_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`.\n * Parser.post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: you can specify a post_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`. When it does not return any value,\n * the parser will return the original `retval`.\n *\n * ### options which can be set up per parser instance\n *\n * yy: {\n * pre_parse: function(yy)\n * optional: is invoked before the parse cycle starts (and before the first\n * invocation of `lex()`) but immediately after the invocation of\n * `parser.pre_parse()`).\n * post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: is invoked when the parse terminates due to success ('accept')\n * or failure (even when exceptions are thrown).\n * `retval` contains the return value to be produced by `Parser.parse()`;\n * this function can override the return value by returning another.\n * When it does not return any value, the parser will return the original\n * `retval`.\n * This function is invoked immediately before `parser.post_parse()`.\n *\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * quoteName: function(name),\n * optional: overrides the default `quoteName` function.\n * }\n *\n * parser.lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this `%option` has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n \n \n var parser = (function () {\n\n\n// See also:\n// http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n// but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n// with userland code which might access the derived class in a 'classic' way.\nfunction JisonParserError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonParserError'\n });\n\n if (msg == null) msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n\n var stacktrace;\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) { // V8/Chrome engine\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = (new Error(msg)).stack;\n }\n }\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n}\n\nif (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonParserError.prototype, Error.prototype);\n} else {\n JisonParserError.prototype = Object.create(Error.prototype);\n}\nJisonParserError.prototype.constructor = JisonParserError;\nJisonParserError.prototype.name = 'JisonParserError';\n\n\n\n\n // helper: reconstruct the productions[] table\n function bp(s) {\n var rv = [];\n var p = s.pop;\n var r = s.rule;\n for (var i = 0, l = p.length; i < l; i++) {\n rv.push([\n p[i],\n r[i]\n ]);\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the defaultActions[] table\n function bda(s) {\n var rv = {};\n var d = s.idx;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var j = d[i];\n rv[j] = g[i];\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the 'goto' table\n function bt(s) {\n var rv = [];\n var d = s.len;\n var y = s.symbol;\n var t = s.type;\n var a = s.state;\n var m = s.mode;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var n = d[i];\n var q = {};\n for (var j = 0; j < n; j++) {\n var z = y.shift();\n switch (t.shift()) {\n case 2:\n q[z] = [\n m.shift(),\n g.shift()\n ];\n break;\n\n case 0:\n q[z] = a.shift();\n break;\n\n default:\n // type === 1: accept\n q[z] = [\n 3\n ];\n }\n }\n rv.push(q);\n }\n return rv;\n }\n \n\n\n // helper: runlength encoding with increment step: code, length: step (default step = 0)\n // `this` references an array\n function s(c, l, a) {\n a = a || 0;\n for (var i = 0; i < l; i++) {\n this.push(c);\n c += a;\n }\n }\n\n // helper: duplicate sequence from *relative* offset and length.\n // `this` references an array\n function c(i, l) {\n i = this.length - i;\n for (l += i; i < l; i++) {\n this.push(this[i]);\n }\n }\n\n // helper: unpack an array using helpers and data, all passed in an array argument 'a'.\n function u(a) {\n var rv = [];\n for (var i = 0, l = a.length; i < l; i++) {\n var e = a[i];\n // Is this entry a helper function?\n if (typeof e === 'function') {\n i++;\n e.apply(rv, a[i]);\n } else {\n rv.push(e);\n }\n }\n return rv;\n }\n \n\nvar parser = {\n // Code Generator Information Report\n // ---------------------------------\n //\n // Options:\n //\n // default action mode: ............. [\"classic\",\"merge\"]\n // test-compile action mode: ........ \"parser:*,lexer:*\"\n // try..catch: ...................... true\n // default resolve on conflict: ..... true\n // on-demand look-ahead: ............ false\n // error recovery token skip maximum: 3\n // yyerror in parse actions is: ..... NOT recoverable,\n // yyerror in lexer actions and other non-fatal lexer are:\n // .................................. NOT recoverable,\n // debug grammar/output: ............ false\n // has partial LR conflict upgrade: true\n // rudimentary token-stack support: false\n // parser table compression mode: ... 2\n // export debug tables: ............. false\n // export *all* tables: ............. false\n // module type: ..................... commonjs\n // parser engine type: .............. lalr\n // output main() in the module: ..... true\n // has user-specified main(): ....... false\n // has user-specified require()/import modules for main():\n // .................................. false\n // number of expected conflicts: .... 0\n //\n //\n // Parser Analysis flags:\n //\n // no significant actions (parser is a language matcher only):\n // .................................. false\n // uses yyleng: ..................... false\n // uses yylineno: ................... false\n // uses yytext: ..................... false\n // uses yylloc: ..................... false\n // uses ParseError API: ............. false\n // uses YYERROR: .................... false\n // uses YYRECOVERING: ............... false\n // uses YYERROK: .................... false\n // uses YYCLEARIN: .................. false\n // tracks rule values: .............. true\n // assigns rule values: ............. true\n // uses location tracking: .......... false\n // assigns location: ................ false\n // uses yystack: .................... false\n // uses yysstack: ................... false\n // uses yysp: ....................... true\n // uses yyrulelength: ............... false\n // uses yyMergeLocationInfo API: .... false\n // has error recovery: .............. false\n // has error reporting: ............. false\n //\n // --------- END OF REPORT -----------\n\ntrace: function no_op_trace() { },\nJisonParserError: JisonParserError,\nyy: {},\noptions: {\n type: \"lalr\",\n hasPartialLrUpgradeOnConflict: true,\n errorRecoveryTokenDiscardCount: 3\n},\nsymbols_: {\n \"$accept\": 0,\n \"$end\": 1,\n \"ADD\": 3,\n \"ANGLE\": 16,\n \"CHS\": 22,\n \"COMMA\": 14,\n \"CSS_CPROP\": 13,\n \"CSS_VAR\": 12,\n \"DIV\": 6,\n \"EMS\": 20,\n \"EOF\": 1,\n \"EXS\": 21,\n \"FREQ\": 18,\n \"LENGTH\": 15,\n \"LPAREN\": 7,\n \"MUL\": 5,\n \"NESTED_CALC\": 9,\n \"NUMBER\": 11,\n \"PERCENTAGE\": 28,\n \"PREFIX\": 10,\n \"REMS\": 23,\n \"RES\": 19,\n \"RPAREN\": 8,\n \"SUB\": 4,\n \"TIME\": 17,\n \"VHS\": 24,\n \"VMAXS\": 27,\n \"VMINS\": 26,\n \"VWS\": 25,\n \"css_value\": 33,\n \"css_variable\": 32,\n \"error\": 2,\n \"expression\": 29,\n \"math_expression\": 30,\n \"value\": 31\n},\nterminals_: {\n 1: \"EOF\",\n 2: \"error\",\n 3: \"ADD\",\n 4: \"SUB\",\n 5: \"MUL\",\n 6: \"DIV\",\n 7: \"LPAREN\",\n 8: \"RPAREN\",\n 9: \"NESTED_CALC\",\n 10: \"PREFIX\",\n 11: \"NUMBER\",\n 12: \"CSS_VAR\",\n 13: \"CSS_CPROP\",\n 14: \"COMMA\",\n 15: \"LENGTH\",\n 16: \"ANGLE\",\n 17: \"TIME\",\n 18: \"FREQ\",\n 19: \"RES\",\n 20: \"EMS\",\n 21: \"EXS\",\n 22: \"CHS\",\n 23: \"REMS\",\n 24: \"VHS\",\n 25: \"VWS\",\n 26: \"VMINS\",\n 27: \"VMAXS\",\n 28: \"PERCENTAGE\"\n},\nTERROR: 2,\n EOF: 1,\n\n // internals: defined here so the object *structure* doesn't get modified by parse() et al,\n // thus helping JIT compilers like Chrome V8.\n originalQuoteName: null,\n originalParseError: null,\n cleanupAfterParse: null,\n constructParseErrorInfo: null,\n yyMergeLocationInfo: null,\n\n __reentrant_call_depth: 0, // INTERNAL USE ONLY\n __error_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n __error_recovery_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n\n // APIs which will be set up depending on user action code analysis:\n //yyRecovering: 0,\n //yyErrOk: 0,\n //yyClearIn: 0,\n\n // Helper APIs\n // -----------\n\n // Helper function which can be overridden by user code later on: put suitable quotes around\n // literal IDs in a description string.\n quoteName: function parser_quoteName(id_str) {\n return '\"' + id_str + '\"';\n },\n\n // Return the name of the given symbol (terminal or non-terminal) as a string, when available.\n //\n // Return NULL when the symbol is unknown to the parser.\n getSymbolName: function parser_getSymbolName(symbol) {\n if (this.terminals_[symbol]) {\n return this.terminals_[symbol];\n }\n\n // Otherwise... this might refer to a RULE token i.e. a non-terminal: see if we can dig that one up.\n //\n // An example of this may be where a rule's action code contains a call like this:\n //\n // parser.getSymbolName(#$)\n //\n // to obtain a human-readable name of the current grammar rule.\n var s = this.symbols_;\n for (var key in s) {\n if (s[key] === symbol) {\n return key;\n }\n }\n return null;\n },\n\n // Return a more-or-less human-readable description of the given symbol, when available,\n // or the symbol itself, serving as its own 'description' for lack of something better to serve up.\n //\n // Return NULL when the symbol is unknown to the parser.\n describeSymbol: function parser_describeSymbol(symbol) {\n if (symbol !== this.EOF && this.terminal_descriptions_ && this.terminal_descriptions_[symbol]) {\n return this.terminal_descriptions_[symbol];\n }\n else if (symbol === this.EOF) {\n return 'end of input';\n }\n var id = this.getSymbolName(symbol);\n if (id) {\n return this.quoteName(id);\n }\n return null;\n },\n\n // Produce a (more or less) human-readable list of expected tokens at the point of failure.\n //\n // The produced list may contain token or token set descriptions instead of the tokens\n // themselves to help turning this output into something that easier to read by humans\n // unless `do_not_describe` parameter is set, in which case a list of the raw, *numeric*,\n // expected terminals and nonterminals is produced.\n //\n // The returned list (array) will not contain any duplicate entries.\n collect_expected_token_set: function parser_collect_expected_token_set(state, do_not_describe) {\n var TERROR = this.TERROR;\n var tokenset = [];\n var check = {};\n // Has this (error?) state been outfitted with a custom expectations description text for human consumption?\n // If so, use that one instead of the less palatable token set.\n if (!do_not_describe && this.state_descriptions_ && this.state_descriptions_[state]) {\n return [\n this.state_descriptions_[state]\n ];\n }\n for (var p in this.table[state]) {\n p = +p;\n if (p !== TERROR) {\n var d = do_not_describe ? p : this.describeSymbol(p);\n if (d && !check[d]) {\n tokenset.push(d);\n check[d] = true; // Mark this token description as already mentioned to prevent outputting duplicate entries.\n }\n }\n }\n return tokenset;\n },\nproductions_: bp({\n pop: u([\n 29,\n s,\n [30, 10],\n 31,\n 31,\n 32,\n 32,\n s,\n [33, 15]\n]),\n rule: u([\n 2,\n s,\n [3, 5],\n 4,\n 7,\n s,\n [1, 4],\n 2,\n 4,\n 6,\n s,\n [1, 14],\n 2\n])\n}),\nperformAction: function parser__PerformAction(yystate /* action[1] */, yysp, yyvstack) {\n\n /* this == yyval */\n\n // the JS engine itself can go and remove these statements when `yy` turns out to be unused in any action code!\n var yy = this.yy;\n var yyparser = yy.parser;\n var yylexer = yy.lexer;\n\n \n\n switch (yystate) {\ncase 0:\n /*! Production:: $accept : expression $end */\n\n // default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-)\n break;\n\ncase 1:\n /*! Production:: expression : math_expression EOF */\n\n // default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-)\n \n \n return yyvstack[yysp - 1];\n break;\n\ncase 2:\n /*! Production:: math_expression : math_expression ADD math_expression */\ncase 3:\n /*! Production:: math_expression : math_expression SUB math_expression */\ncase 4:\n /*! Production:: math_expression : math_expression MUL math_expression */\ncase 5:\n /*! Production:: math_expression : math_expression DIV math_expression */\n\n this.$ = { type: 'MathExpression', operator: yyvstack[yysp - 1], left: yyvstack[yysp - 2], right: yyvstack[yysp] };\n break;\n\ncase 6:\n /*! Production:: math_expression : LPAREN math_expression RPAREN */\n\n this.$ = yyvstack[yysp - 1];\n break;\n\ncase 7:\n /*! Production:: math_expression : NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1] };\n break;\n\ncase 8:\n /*! Production:: math_expression : SUB PREFIX SUB NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1], prefix: yyvstack[yysp - 5] };\n break;\n\ncase 9:\n /*! Production:: math_expression : css_variable */\ncase 10:\n /*! Production:: math_expression : css_value */\ncase 11:\n /*! Production:: math_expression : value */\n\n this.$ = yyvstack[yysp];\n break;\n\ncase 12:\n /*! Production:: value : NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) };\n break;\n\ncase 13:\n /*! Production:: value : SUB NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) * -1 };\n break;\n\ncase 14:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 1] };\n break;\n\ncase 15:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP COMMA math_expression RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 3], fallback: yyvstack[yysp - 1] };\n break;\n\ncase 16:\n /*! Production:: css_value : LENGTH */\n\n this.$ = { type: 'LengthValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 17:\n /*! Production:: css_value : ANGLE */\n\n this.$ = { type: 'AngleValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 18:\n /*! Production:: css_value : TIME */\n\n this.$ = { type: 'TimeValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 19:\n /*! Production:: css_value : FREQ */\n\n this.$ = { type: 'FrequencyValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 20:\n /*! Production:: css_value : RES */\n\n this.$ = { type: 'ResolutionValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 21:\n /*! Production:: css_value : EMS */\n\n this.$ = { type: 'EmValue', value: parseFloat(yyvstack[yysp]), unit: 'em' };\n break;\n\ncase 22:\n /*! Production:: css_value : EXS */\n\n this.$ = { type: 'ExValue', value: parseFloat(yyvstack[yysp]), unit: 'ex' };\n break;\n\ncase 23:\n /*! Production:: css_value : CHS */\n\n this.$ = { type: 'ChValue', value: parseFloat(yyvstack[yysp]), unit: 'ch' };\n break;\n\ncase 24:\n /*! Production:: css_value : REMS */\n\n this.$ = { type: 'RemValue', value: parseFloat(yyvstack[yysp]), unit: 'rem' };\n break;\n\ncase 25:\n /*! Production:: css_value : VHS */\n\n this.$ = { type: 'VhValue', value: parseFloat(yyvstack[yysp]), unit: 'vh' };\n break;\n\ncase 26:\n /*! Production:: css_value : VWS */\n\n this.$ = { type: 'VwValue', value: parseFloat(yyvstack[yysp]), unit: 'vw' };\n break;\n\ncase 27:\n /*! Production:: css_value : VMINS */\n\n this.$ = { type: 'VminValue', value: parseFloat(yyvstack[yysp]), unit: 'vmin' };\n break;\n\ncase 28:\n /*! Production:: css_value : VMAXS */\n\n this.$ = { type: 'VmaxValue', value: parseFloat(yyvstack[yysp]), unit: 'vmax' };\n break;\n\ncase 29:\n /*! Production:: css_value : PERCENTAGE */\n\n this.$ = { type: 'PercentageValue', value: parseFloat(yyvstack[yysp]), unit: '%' };\n break;\n\ncase 30:\n /*! Production:: css_value : SUB css_value */\n\n var prev = yyvstack[yysp]; prev.value *= -1; this.$ = prev;\n break;\n\n}\n},\ntable: bt({\n len: u([\n 24,\n 1,\n 5,\n 23,\n 1,\n 18,\n s,\n [0, 3],\n 1,\n s,\n [0, 16],\n s,\n [23, 4],\n c,\n [28, 3],\n 0,\n 0,\n 16,\n 1,\n 6,\n 6,\n s,\n [0, 3],\n 5,\n 1,\n 2,\n c,\n [37, 3],\n c,\n [20, 3],\n 5,\n 0,\n 0\n]),\n symbol: u([\n 4,\n 7,\n 9,\n 11,\n 12,\n s,\n [15, 19, 1],\n 1,\n 1,\n s,\n [3, 4, 1],\n c,\n [30, 19],\n c,\n [29, 4],\n 7,\n 4,\n 10,\n 11,\n c,\n [22, 14],\n c,\n [19, 3],\n c,\n [43, 22],\n c,\n [23, 69],\n c,\n [139, 4],\n 8,\n c,\n [51, 24],\n 4,\n c,\n [138, 15],\n 13,\n c,\n [186, 5],\n 8,\n c,\n [6, 6],\n c,\n [5, 5],\n 9,\n 8,\n 14,\n c,\n [159, 47],\n c,\n [60, 10]\n]),\n type: u([\n s,\n [2, 19],\n s,\n [0, 5],\n 1,\n s,\n [2, 24],\n s,\n [0, 4],\n c,\n [22, 19],\n c,\n [43, 42],\n c,\n [23, 70],\n c,\n [28, 25],\n c,\n [45, 25],\n c,\n [113, 54]\n]),\n state: u([\n 1,\n 2,\n 8,\n 6,\n 7,\n 30,\n c,\n [4, 3],\n 33,\n 37,\n c,\n [5, 3],\n 38,\n c,\n [4, 3],\n 39,\n c,\n [4, 3],\n 40,\n c,\n [4, 3],\n 42,\n c,\n [21, 4],\n 50,\n c,\n [5, 3],\n 51,\n c,\n [4, 3]\n]),\n mode: u([\n s,\n [1, 179],\n s,\n [2, 3],\n c,\n [5, 5],\n c,\n [6, 4],\n s,\n [1, 57]\n]),\n goto: u([\n 5,\n 3,\n 4,\n 24,\n s,\n [9, 15, 1],\n s,\n [25, 5, 1],\n c,\n [24, 19],\n 31,\n 35,\n 32,\n 34,\n c,\n [18, 14],\n 36,\n c,\n [38, 19],\n c,\n [19, 57],\n c,\n [118, 4],\n 41,\n c,\n [24, 19],\n 43,\n 35,\n c,\n [16, 14],\n 44,\n s,\n [2, 3],\n 28,\n 29,\n 2,\n s,\n [3, 3],\n 28,\n 29,\n 3,\n c,\n [53, 4],\n s,\n [45, 5, 1],\n c,\n [100, 42],\n 52,\n c,\n [5, 4],\n 53\n])\n}),\ndefaultActions: bda({\n idx: u([\n 6,\n 7,\n 8,\n s,\n [10, 16, 1],\n 33,\n 34,\n 39,\n 40,\n 41,\n 45,\n 47,\n 52,\n 53\n]),\n goto: u([\n 9,\n 10,\n 11,\n s,\n [16, 14, 1],\n 12,\n 1,\n 30,\n 13,\n s,\n [4, 4, 1],\n 14,\n 15,\n 8\n])\n}),\nparseError: function parseError(str, hash, ExceptionClass) {\n if (hash.recoverable) {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n hash.destroy(); // destroy... well, *almost*!\n } else {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n throw new ExceptionClass(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this;\n var stack = new Array(128); // token stack: stores token which leads to state at the same index (column storage)\n var sstack = new Array(128); // state stack: stores states (column storage)\n\n var vstack = new Array(128); // semantic value stack\n\n var table = this.table;\n var sp = 0; // 'stack pointer': index into the stacks\n\n\n \n\n\n var symbol = 0;\n\n\n\n var TERROR = this.TERROR;\n var EOF = this.EOF;\n var ERROR_RECOVERY_TOKEN_DISCARD_COUNT = (this.options.errorRecoveryTokenDiscardCount | 0) || 3;\n var NO_ACTION = [0, 54 /* === table.length :: ensures that anyone using this new state will fail dramatically! */];\n\n var lexer;\n if (this.__lexer__) {\n lexer = this.__lexer__;\n } else {\n lexer = this.__lexer__ = Object.create(this.lexer);\n }\n\n var sharedState_yy = {\n parseError: undefined,\n quoteName: undefined,\n lexer: undefined,\n parser: undefined,\n pre_parse: undefined,\n post_parse: undefined,\n pre_lex: undefined,\n post_lex: undefined // WARNING: must be written this way for the code expanders to work correctly in both ES5 and ES6 modes!\n };\n\n var ASSERT;\n if (typeof assert !== 'function') {\n ASSERT = function JisonAssert(cond, msg) {\n if (!cond) {\n throw new Error('assertion failed: ' + (msg || '***'));\n }\n };\n } else {\n ASSERT = assert;\n }\n\n this.yyGetSharedState = function yyGetSharedState() {\n return sharedState_yy;\n };\n\n\n\n\n\n\n\n\n function shallow_copy_noclobber(dst, src) {\n for (var k in src) {\n if (typeof dst[k] === 'undefined' && Object.prototype.hasOwnProperty.call(src, k)) {\n dst[k] = src[k];\n }\n }\n }\n\n // copy state\n shallow_copy_noclobber(sharedState_yy, this.yy);\n\n sharedState_yy.lexer = lexer;\n sharedState_yy.parser = this;\n\n\n\n\n\n\n // Does the shared state override the default `parseError` that already comes with this instance?\n if (typeof sharedState_yy.parseError === 'function') {\n this.parseError = function parseErrorAlt(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n return sharedState_yy.parseError.call(this, str, hash, ExceptionClass);\n };\n } else {\n this.parseError = this.originalParseError;\n }\n\n // Does the shared state override the default `quoteName` that already comes with this instance?\n if (typeof sharedState_yy.quoteName === 'function') {\n this.quoteName = function quoteNameAlt(id_str) {\n return sharedState_yy.quoteName.call(this, id_str);\n };\n } else {\n this.quoteName = this.originalQuoteName;\n }\n\n // set up the cleanup function; make it an API so that external code can re-use this one in case of\n // calamities or when the `%options no-try-catch` option has been specified for the grammar, in which\n // case this parse() API method doesn't come with a `finally { ... }` block any more!\n //\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `sharedState`, etc. references will be *wrong*!\n this.cleanupAfterParse = function parser_cleanupAfterParse(resultValue, invoke_post_methods, do_not_nuke_errorinfos) {\n var rv;\n\n if (invoke_post_methods) {\n var hash;\n\n if (sharedState_yy.post_parse || this.post_parse) {\n // create an error hash info instance: we re-use this API in a **non-error situation**\n // as this one delivers all parser internals ready for access by userland code.\n hash = this.constructParseErrorInfo(null /* no error! */, null /* no exception! */, null, false);\n }\n\n if (sharedState_yy.post_parse) {\n rv = sharedState_yy.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n if (this.post_parse) {\n rv = this.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n\n // cleanup:\n if (hash && hash.destroy) {\n hash.destroy();\n }\n }\n\n if (this.__reentrant_call_depth > 1) return resultValue; // do not (yet) kill the sharedState when this is a reentrant run.\n\n // clean up the lingering lexer structures as well:\n if (lexer.cleanupAfterLex) {\n lexer.cleanupAfterLex(do_not_nuke_errorinfos);\n }\n\n // prevent lingering circular references from causing memory leaks:\n if (sharedState_yy) {\n sharedState_yy.lexer = undefined;\n sharedState_yy.parser = undefined;\n if (lexer.yy === sharedState_yy) {\n lexer.yy = undefined;\n }\n }\n sharedState_yy = undefined;\n this.parseError = this.originalParseError;\n this.quoteName = this.originalQuoteName;\n\n // nuke the vstack[] array at least as that one will still reference obsoleted user values.\n // To be safe, we nuke the other internal stack columns as well...\n stack.length = 0; // fastest way to nuke an array without overly bothering the GC\n sstack.length = 0;\n\n vstack.length = 0;\n sp = 0;\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n this.__error_infos.length = 0;\n\n\n }\n\n return resultValue;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `lexer`, `sharedState`, etc. references will be *wrong*!\n this.constructParseErrorInfo = function parser_constructParseErrorInfo(msg, ex, expected, recoverable) {\n var pei = {\n errStr: msg,\n exception: ex,\n text: lexer.match,\n value: lexer.yytext,\n token: this.describeSymbol(symbol) || symbol,\n token_id: symbol,\n line: lexer.yylineno,\n\n expected: expected,\n recoverable: recoverable,\n state: state,\n action: action,\n new_state: newState,\n symbol_stack: stack,\n state_stack: sstack,\n value_stack: vstack,\n\n stack_pointer: sp,\n yy: sharedState_yy,\n lexer: lexer,\n parser: this,\n\n // and make sure the error info doesn't stay due to potential\n // ref cycle via userland code manipulations.\n // These would otherwise all be memory leak opportunities!\n //\n // Note that only array and object references are nuked as those\n // constitute the set of elements which can produce a cyclic ref.\n // The rest of the members is kept intact as they are harmless.\n destroy: function destructParseErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // info.value = null;\n // info.value_stack = null;\n // ...\n var rec = !!this.recoverable;\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n this.recoverable = rec;\n }\n };\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n return pei;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n function getNonTerminalFromCode(symbol) {\n var tokenName = self.getSymbolName(symbol);\n if (!tokenName) {\n tokenName = symbol;\n }\n return tokenName;\n }\n\n\n function stdLex() {\n var token = lexer.lex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n function fastLex() {\n var token = lexer.fastLex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n var lex = stdLex;\n\n\n var state, action, r, t;\n var yyval = {\n $: true,\n _$: undefined,\n yy: sharedState_yy\n };\n var p;\n var yyrulelen;\n var this_production;\n var newState;\n var retval = false;\n\n\n try {\n this.__reentrant_call_depth++;\n\n lexer.setInput(input, sharedState_yy);\n\n // NOTE: we *assume* no lexer pre/post handlers are set up *after* \n // this initial `setInput()` call: hence we can now check and decide\n // whether we'll go with the standard, slower, lex() API or the\n // `fast_lex()` one:\n if (typeof lexer.canIUse === 'function') {\n var lexerInfo = lexer.canIUse();\n if (lexerInfo.fastLex && typeof fastLex === 'function') {\n lex = fastLex;\n }\n } \n\n\n\n vstack[sp] = null;\n sstack[sp] = 0;\n stack[sp] = 0;\n ++sp;\n\n\n\n\n\n if (this.pre_parse) {\n this.pre_parse.call(this, sharedState_yy);\n }\n if (sharedState_yy.pre_parse) {\n sharedState_yy.pre_parse.call(this, sharedState_yy);\n }\n\n newState = sstack[sp - 1];\n for (;;) {\n // retrieve state number from top of stack\n state = newState; // sstack[sp - 1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = 2;\n newState = this.defaultActions[state];\n } else {\n // The single `==` condition below covers both these `===` comparisons in a single\n // operation:\n //\n // if (symbol === null || typeof symbol === 'undefined') ...\n if (!symbol) {\n symbol = lex();\n }\n // read action for current state and first input\n t = (table[state] && table[state][symbol]) || NO_ACTION;\n newState = t[1];\n action = t[0];\n\n\n\n\n\n\n\n\n\n\n\n // handle parse error\n if (!action) {\n var errStr;\n var errSymbolDescr = (this.describeSymbol(symbol) || symbol);\n var expected = this.collect_expected_token_set(state);\n\n // Report error\n if (typeof lexer.yylineno === 'number') {\n errStr = 'Parse error on line ' + (lexer.yylineno + 1) + ': ';\n } else {\n errStr = 'Parse error: ';\n }\n if (typeof lexer.showPosition === 'function') {\n errStr += '\\n' + lexer.showPosition(79 - 10, 10) + '\\n';\n }\n if (expected.length) {\n errStr += 'Expecting ' + expected.join(', ') + ', got unexpected ' + errSymbolDescr;\n } else {\n errStr += 'Unexpected ' + errSymbolDescr;\n }\n // we cannot recover from the error!\n p = this.constructParseErrorInfo(errStr, null, expected, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n\n\n }\n\n\n\n\n\n\n\n\n\n\n switch (action) {\n // catch misc. parse failures:\n default:\n // this shouldn't happen, unless resolve defaults are off\n if (action instanceof Array) {\n p = this.constructParseErrorInfo('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol, null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n // Another case of better safe than sorry: in case state transitions come out of another error recovery process\n // or a buggy LUT (LookUp Table):\n p = this.constructParseErrorInfo('Parsing halted. No viable error recovery approach available due to internal system failure.', null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n\n // shift:\n case 1:\n stack[sp] = symbol;\n vstack[sp] = lexer.yytext;\n\n sstack[sp] = newState; // push state\n\n ++sp;\n symbol = 0;\n\n\n\n\n // Pick up the lexer details for the current symbol as that one is not 'look-ahead' any more:\n\n\n\n\n continue;\n\n // reduce:\n case 2:\n\n\n\n this_production = this.productions_[newState - 1]; // `this.productions_[]` is zero-based indexed while states start from 1 upwards...\n yyrulelen = this_production[1];\n\n\n\n\n\n\n\n\n\n\n r = this.performAction.call(yyval, newState, sp - 1, vstack);\n\n if (typeof r !== 'undefined') {\n retval = r;\n break;\n }\n\n // pop off stack\n sp -= yyrulelen;\n\n // don't overwrite the `symbol` variable: use a local var to speed things up:\n var ntsymbol = this_production[0]; // push nonterminal (reduce)\n stack[sp] = ntsymbol;\n vstack[sp] = yyval.$;\n\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[sstack[sp - 1]][ntsymbol];\n sstack[sp] = newState;\n ++sp;\n\n\n\n\n\n\n\n\n\n continue;\n\n // accept:\n case 3:\n if (sp !== -2) {\n retval = true;\n // Return the `$accept` rule's `$$` result, if available.\n //\n // Also note that JISON always adds this top-most `$accept` rule (with implicit,\n // default, action):\n //\n // $accept: $end\n // %{ $$ = $1; @$ = @1; %}\n //\n // which, combined with the parse kernel's `$accept` state behaviour coded below,\n // will produce the `$$` value output of the rule as the parse result,\n // IFF that result is *not* `undefined`. (See also the parser kernel code.)\n //\n // In code:\n //\n // %{\n // @$ = @1; // if location tracking support is included\n // if (typeof $1 !== 'undefined')\n // return $1;\n // else\n // return true; // the default parse result if the rule actions don't produce anything\n // %}\n sp--;\n if (typeof vstack[sp] !== 'undefined') {\n retval = vstack[sp];\n }\n }\n break;\n }\n\n // break out of loop: we accept or fail with error\n break;\n }\n } catch (ex) {\n // report exceptions through the parseError callback too, but keep the exception intact\n // if it is a known parser or lexer error which has been thrown by parseError() already:\n if (ex instanceof this.JisonParserError) {\n throw ex;\n }\n else if (lexer && typeof lexer.JisonLexerError === 'function' && ex instanceof lexer.JisonLexerError) {\n throw ex;\n }\n\n p = this.constructParseErrorInfo('Parsing aborted due to exception.', ex, null, false);\n retval = false;\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n } finally {\n retval = this.cleanupAfterParse(retval, true, true);\n this.__reentrant_call_depth--;\n } // /finally\n\n return retval;\n}\n};\nparser.originalParseError = parser.parseError;\nparser.originalQuoteName = parser.quoteName;\n/* lexer generated by jison-lex 0.6.1-215 */\n\n/*\n * Returns a Lexer object of the following structure:\n *\n * Lexer: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a direct reference!\n *\n * This \"shared context\" object was passed to the lexer by way of \n * the `lexer.setInput(str, yy)` API before you may use it.\n *\n * This \"shared context\" object is passed to the lexer action code in `performAction()`\n * so userland code in the lexer actions may communicate with the outside world \n * and/or other lexer rules' actions in more or less complex ways.\n *\n * }\n *\n * Lexer.prototype: {\n * EOF: 1,\n * ERROR: 2,\n *\n * yy: The overall \"shared context\" object reference.\n *\n * JisonLexerError: function(msg, hash),\n *\n * performAction: function lexer__performAction(yy, yyrulenumber, YY_START),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `lexer` instance. \n * `yy_` is an alias for `this` lexer instance reference used internally.\n *\n * - `yy` : a reference to the `yy` \"shared state\" object which was passed to the lexer\n * by way of the `lexer.setInput(str, yy)` API before.\n *\n * Note:\n * The extra arguments you specified in the `%parse-param` statement in your\n * **parser** grammar definition file are passed to the lexer via this object\n * reference as member variables.\n *\n * - `yyrulenumber` : index of the matched lexer rule (regex), used internally.\n *\n * - `YY_START`: the current lexer \"start condition\" state.\n *\n * parseError: function(str, hash, ExceptionClass),\n *\n * constructLexErrorInfo: function(error_message, is_recoverable),\n * Helper function.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this lexer kernel in many places; example usage:\n *\n * var infoObj = lexer.constructParseErrorInfo('fail!', true);\n * var retVal = lexer.parseError(infoObj.errStr, infoObj, lexer.JisonLexerError);\n *\n * options: { ... lexer %options ... },\n *\n * lex: function(),\n * Produce one token of lexed input, which was passed in earlier via the `lexer.setInput()` API.\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of the **lexer** grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Lexer's additional `args...` parameters (via lexer's `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the **parser** or the jison run-time; \n * when such a collision is detected an exception is thrown to prevent the generated run-time \n * from silently accepting this confusing and potentially hazardous situation! \n *\n * cleanupAfterLex: function(do_not_nuke_errorinfos),\n * Helper function.\n *\n * This helper API is invoked when the **parse process** has completed: it is the responsibility\n * of the **parser** (or the calling userland code) to invoke this method once cleanup is desired. \n *\n * This helper may be invoked by user code to ensure the internal lexer gets properly garbage collected.\n *\n * setInput: function(input, [yy]),\n *\n *\n * input: function(),\n *\n *\n * unput: function(str),\n *\n *\n * more: function(),\n *\n *\n * reject: function(),\n *\n *\n * less: function(n),\n *\n *\n * pastInput: function(n),\n *\n *\n * upcomingInput: function(n),\n *\n *\n * showPosition: function(),\n *\n *\n * test_match: function(regex_match_array, rule_index),\n *\n *\n * next: function(),\n *\n *\n * begin: function(condition),\n *\n *\n * pushState: function(condition),\n *\n *\n * popState: function(),\n *\n *\n * topState: function(),\n *\n *\n * _currentRules: function(),\n *\n *\n * stateStackSize: function(),\n *\n *\n * performAction: function(yy, yy_, yyrulenumber, YY_START),\n *\n *\n * rules: [...],\n *\n *\n * conditions: {associative list: name ==> set},\n * }\n *\n *\n * token location info (`yylloc`): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * }\n *\n * while `this` will reference the current lexer instance.\n *\n * When `parseError` is invoked by the lexer, the default implementation will\n * attempt to invoke `yy.parser.parseError()`; when this callback is not provided\n * it will try to invoke `yy.parseError()` instead. When that callback is also not\n * provided, a `JisonLexerError` exception will be thrown containing the error\n * message and `hash`, as constructed by the `constructLexErrorInfo()` API.\n *\n * Note that the lexer's `JisonLexerError` error class is passed via the\n * `ExceptionClass` argument, which is invoked to construct the exception\n * instance to be thrown, so technically `parseError` will throw the object\n * produced by the `new ExceptionClass(str, hash)` JavaScript expression.\n *\n * ---\n *\n * You can specify lexer options by setting / modifying the `.options` object of your Lexer instance.\n * These options are available:\n *\n * (Options are permanent.)\n * \n * yy: {\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * }\n *\n * lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * WARNING: the next set of options are not meant to be changed. They echo the abilities of\n * the lexer as per when it was compiled!\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this %option has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n\nvar lexer = function() {\n /**\n * See also:\n * http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n * but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n * with userland code which might access the derived class in a 'classic' way.\n *\n * @public\n * @constructor\n * @nocollapse\n */\n function JisonLexerError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonLexerError'\n });\n\n if (msg == null)\n msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n var stacktrace;\n\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) {\n // V8\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = new Error(msg).stack;\n }\n }\n\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n }\n\n if (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonLexerError.prototype, Error.prototype);\n } else {\n JisonLexerError.prototype = Object.create(Error.prototype);\n }\n\n JisonLexerError.prototype.constructor = JisonLexerError;\n JisonLexerError.prototype.name = 'JisonLexerError';\n\n var lexer = {\n \n// Code Generator Information Report\n// ---------------------------------\n//\n// Options:\n//\n// backtracking: .................... false\n// location.ranges: ................. false\n// location line+column tracking: ... true\n//\n//\n// Forwarded Parser Analysis flags:\n//\n// uses yyleng: ..................... false\n// uses yylineno: ................... false\n// uses yytext: ..................... false\n// uses yylloc: ..................... false\n// uses lexer values: ............... true / true\n// location tracking: ............... false\n// location assignment: ............. false\n//\n//\n// Lexer Analysis flags:\n//\n// uses yyleng: ..................... ???\n// uses yylineno: ................... ???\n// uses yytext: ..................... ???\n// uses yylloc: ..................... ???\n// uses ParseError API: ............. ???\n// uses yyerror: .................... ???\n// uses location tracking & editing: ???\n// uses more() API: ................. ???\n// uses unput() API: ................ ???\n// uses reject() API: ............... ???\n// uses less() API: ................. ???\n// uses display APIs pastInput(), upcomingInput(), showPosition():\n// ............................. ???\n// uses describeYYLLOC() API: ....... ???\n//\n// --------- END OF REPORT -----------\n\nEOF: 1,\n ERROR: 2,\n\n // JisonLexerError: JisonLexerError, /// <-- injected by the code generator\n\n // options: {}, /// <-- injected by the code generator\n\n // yy: ..., /// <-- injected by setInput()\n\n __currentRuleSet__: null, /// INTERNAL USE ONLY: internal rule set cache for the current lexer state \n\n __error_infos: [], /// INTERNAL USE ONLY: the set of lexErrorInfo objects created since the last cleanup \n __decompressed: false, /// INTERNAL USE ONLY: mark whether the lexer instance has been 'unfolded' completely and is now ready for use \n done: false, /// INTERNAL USE ONLY \n _backtrack: false, /// INTERNAL USE ONLY \n _input: '', /// INTERNAL USE ONLY \n _more: false, /// INTERNAL USE ONLY \n _signaled_error_token: false, /// INTERNAL USE ONLY \n conditionStack: [], /// INTERNAL USE ONLY; managed via `pushState()`, `popState()`, `topState()` and `stateStackSize()` \n match: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction. `match` is identical to `yytext` except that this one still contains the matched input string after `lexer.performAction()` has been invoked, where userland code MAY have changed/replaced the `yytext` value entirely! \n matched: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks entire input which has been matched so far \n matches: false, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks RE match result for last (successful) match attempt \n yytext: '', /// ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction; this value is transferred to the parser as the 'token value' when the parser consumes the lexer token produced through a call to the `lex()` API. \n offset: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks the 'cursor position' in the input string, i.e. the number of characters matched so far \n yyleng: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: length of matched input for the token under construction (`yytext`) \n yylineno: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: 'line number' at which the token under construction is located \n yylloc: null, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks location info (lines + columns) for the token under construction \n\n /**\n * INTERNAL USE: construct a suitable error info hash object instance for `parseError`.\n * \n * @public\n * @this {RegExpLexer}\n */\n constructLexErrorInfo: function lexer_constructLexErrorInfo(msg, recoverable, show_input_position) {\n msg = '' + msg;\n\n // heuristic to determine if the error message already contains a (partial) source code dump\n // as produced by either `showPosition()` or `prettyPrintRange()`:\n if (show_input_position == undefined) {\n show_input_position = !(msg.indexOf('\\n') > 0 && msg.indexOf('^') > 0);\n }\n\n if (this.yylloc && show_input_position) {\n if (typeof this.prettyPrintRange === 'function') {\n var pretty_src = this.prettyPrintRange(this.yylloc);\n\n if (!/\\n\\s*$/.test(msg)) {\n msg += '\\n';\n }\n\n msg += '\\n Erroneous area:\\n' + this.prettyPrintRange(this.yylloc);\n } else if (typeof this.showPosition === 'function') {\n var pos_str = this.showPosition();\n\n if (pos_str) {\n if (msg.length && msg[msg.length - 1] !== '\\n' && pos_str[0] !== '\\n') {\n msg += '\\n' + pos_str;\n } else {\n msg += pos_str;\n }\n }\n }\n }\n\n /** @constructor */\n var pei = {\n errStr: msg,\n recoverable: !!recoverable,\n text: this.match, // This one MAY be empty; userland code should use the `upcomingInput` API to obtain more text which follows the 'lexer cursor position'... \n token: null,\n line: this.yylineno,\n loc: this.yylloc,\n yy: this.yy,\n lexer: this,\n\n /**\n * and make sure the error info doesn't stay due to potential\n * ref cycle via userland code manipulations.\n * These would otherwise all be memory leak opportunities!\n * \n * Note that only array and object references are nuked as those\n * constitute the set of elements which can produce a cyclic ref.\n * The rest of the members is kept intact as they are harmless.\n * \n * @public\n * @this {LexErrorInfo}\n */\n destroy: function destructLexErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // ...\n var rec = !!this.recoverable;\n\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n\n this.recoverable = rec;\n }\n };\n\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n\n return pei;\n },\n\n /**\n * handler which is invoked when a lexer error occurs.\n * \n * @public\n * @this {RegExpLexer}\n */\n parseError: function lexer_parseError(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonLexerError;\n }\n\n if (this.yy) {\n if (this.yy.parser && typeof this.yy.parser.parseError === 'function') {\n return this.yy.parser.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n } else if (typeof this.yy.parseError === 'function') {\n return this.yy.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n }\n }\n\n throw new ExceptionClass(str, hash);\n },\n\n /**\n * method which implements `yyerror(str, ...args)` functionality for use inside lexer actions.\n * \n * @public\n * @this {RegExpLexer}\n */\n yyerror: function yyError(str /*, ...args */) {\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': ' + str,\n this.options.lexerErrorsAreRecoverable\n );\n\n // Add any extra args to the hash under the name `extra_error_attributes`:\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (args.length) {\n p.extra_error_attributes = args;\n }\n\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n },\n\n /**\n * final cleanup function for when we have completed lexing the input;\n * make it an API so that external code can use this one once userland\n * code has decided it's time to destroy any lingering lexer error\n * hash object instances and the like: this function helps to clean\n * up these constructs, which *may* carry cyclic references which would\n * otherwise prevent the instances from being properly and timely\n * garbage-collected, i.e. this function helps prevent memory leaks!\n * \n * @public\n * @this {RegExpLexer}\n */\n cleanupAfterLex: function lexer_cleanupAfterLex(do_not_nuke_errorinfos) {\n // prevent lingering circular references from causing memory leaks:\n this.setInput('', {});\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n\n this.__error_infos.length = 0;\n }\n\n return this;\n },\n\n /**\n * clear the lexer token context; intended for internal use only\n * \n * @public\n * @this {RegExpLexer}\n */\n clear: function lexer_clear() {\n this.yytext = '';\n this.yyleng = 0;\n this.match = '';\n\n // - DO NOT reset `this.matched`\n this.matches = false;\n\n this._more = false;\n this._backtrack = false;\n var col = (this.yylloc ? this.yylloc.last_column : 0);\n\n this.yylloc = {\n first_line: this.yylineno + 1,\n first_column: col,\n last_line: this.yylineno + 1,\n last_column: col,\n range: [this.offset, this.offset]\n };\n },\n\n /**\n * resets the lexer, sets new input\n * \n * @public\n * @this {RegExpLexer}\n */\n setInput: function lexer_setInput(input, yy) {\n this.yy = yy || this.yy || {};\n\n // also check if we've fully initialized the lexer instance,\n // including expansion work to be done to go from a loaded\n // lexer to a usable lexer:\n if (!this.__decompressed) {\n // step 1: decompress the regex list:\n var rules = this.rules;\n\n for (var i = 0, len = rules.length; i < len; i++) {\n var rule_re = rules[i];\n\n // compression: is the RE an xref to another RE slot in the rules[] table?\n if (typeof rule_re === 'number') {\n rules[i] = rules[rule_re];\n }\n }\n\n // step 2: unfold the conditions[] set to make these ready for use:\n var conditions = this.conditions;\n\n for (var k in conditions) {\n var spec = conditions[k];\n var rule_ids = spec.rules;\n var len = rule_ids.length;\n var rule_regexes = new Array(len + 1); // slot 0 is unused; we use a 1-based index approach here to keep the hottest code in `lexer_next()` fast and simple! \n var rule_new_ids = new Array(len + 1);\n\n for (var i = 0; i < len; i++) {\n var idx = rule_ids[i];\n var rule_re = rules[idx];\n rule_regexes[i + 1] = rule_re;\n rule_new_ids[i + 1] = idx;\n }\n\n spec.rules = rule_new_ids;\n spec.__rule_regexes = rule_regexes;\n spec.__rule_count = len;\n }\n\n this.__decompressed = true;\n }\n\n this._input = input || '';\n this.clear();\n this._signaled_error_token = false;\n this.done = false;\n this.yylineno = 0;\n this.matched = '';\n this.conditionStack = ['INITIAL'];\n this.__currentRuleSet__ = null;\n\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n this.offset = 0;\n return this;\n },\n\n /**\n * edit the remaining input via user-specified callback.\n * This can be used to forward-adjust the input-to-parse, \n * e.g. inserting macro expansions and alike in the\n * input which has yet to be lexed.\n * The behaviour of this API contrasts the `unput()` et al\n * APIs as those act on the *consumed* input, while this\n * one allows one to manipulate the future, without impacting\n * the current `yyloc` cursor location or any history. \n * \n * Use this API to help implement C-preprocessor-like\n * `#include` statements, etc.\n * \n * The provided callback must be synchronous and is\n * expected to return the edited input (string).\n *\n * The `cpsArg` argument value is passed to the callback\n * as-is.\n *\n * `callback` interface: \n * `function callback(input, cpsArg)`\n * \n * - `input` will carry the remaining-input-to-lex string\n * from the lexer.\n * - `cpsArg` is `cpsArg` passed into this API.\n * \n * The `this` reference for the callback will be set to\n * reference this lexer instance so that userland code\n * in the callback can easily and quickly access any lexer\n * API. \n *\n * When the callback returns a non-string-type falsey value,\n * we assume the callback did not edit the input and we\n * will using the input as-is.\n *\n * When the callback returns a non-string-type value, it\n * is converted to a string for lexing via the `\"\" + retval`\n * operation. (See also why: http://2ality.com/2012/03/converting-to-string.html \n * -- that way any returned object's `toValue()` and `toString()`\n * methods will be invoked in a proper/desirable order.)\n * \n * @public\n * @this {RegExpLexer}\n */\n editRemainingInput: function lexer_editRemainingInput(callback, cpsArg) {\n var rv = callback.call(this, this._input, cpsArg);\n\n if (typeof rv !== 'string') {\n if (rv) {\n this._input = '' + rv;\n } \n // else: keep `this._input` as is. \n } else {\n this._input = rv;\n }\n\n return this;\n },\n\n /**\n * consumes and returns one char from the input\n * \n * @public\n * @this {RegExpLexer}\n */\n input: function lexer_input() {\n if (!this._input) {\n //this.done = true; -- don't set `done` as we want the lex()/next() API to be able to produce one custom EOF token match after this anyhow. (lexer can match special <> tokens and perform user action code for a <> match, but only does so *once*)\n return null;\n }\n\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n\n // Count the linenumber up when we hit the LF (or a stand-alone CR).\n // On CRLF, the linenumber is incremented when you fetch the CR or the CRLF combo\n // and we advance immediately past the LF as well, returning both together as if\n // it was all a single 'character' only.\n var slice_len = 1;\n\n var lines = false;\n\n if (ch === '\\n') {\n lines = true;\n } else if (ch === '\\r') {\n lines = true;\n var ch2 = this._input[1];\n\n if (ch2 === '\\n') {\n slice_len++;\n ch += ch2;\n this.yytext += ch2;\n this.yyleng++;\n this.offset++;\n this.match += ch2;\n this.matched += ch2;\n this.yylloc.range[1]++;\n }\n }\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n this.yylloc.last_column = 0;\n } else {\n this.yylloc.last_column++;\n }\n\n this.yylloc.range[1]++;\n this._input = this._input.slice(slice_len);\n return ch;\n },\n\n /**\n * unshifts one char (or an entire string) into the input\n * \n * @public\n * @this {RegExpLexer}\n */\n unput: function lexer_unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.yyleng = this.yytext.length;\n this.offset -= len;\n this.match = this.match.substr(0, this.match.length - len);\n this.matched = this.matched.substr(0, this.matched.length - len);\n\n if (lines.length > 1) {\n this.yylineno -= lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n\n // Get last entirely matched line into the `pre_lines[]` array's\n // last index slot; we don't mind when other previously \n // matched lines end up in the array too. \n var pre = this.match;\n\n var pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n\n if (pre_lines.length === 1) {\n pre = this.matched;\n pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n }\n\n this.yylloc.last_column = pre_lines[pre_lines.length - 1].length;\n } else {\n this.yylloc.last_column -= len;\n }\n\n this.yylloc.range[1] = this.yylloc.range[0] + this.yyleng;\n this.done = false;\n return this;\n },\n\n /**\n * cache matched text and append it on next action\n * \n * @public\n * @this {RegExpLexer}\n */\n more: function lexer_more() {\n this._more = true;\n return this;\n },\n\n /**\n * signal the lexer that this rule fails to match the input, so the\n * next matching rule (regex) should be tested instead.\n * \n * @public\n * @this {RegExpLexer}\n */\n reject: function lexer_reject() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n // when the `parseError()` call returns, we MUST ensure that the error is registered.\n // We accomplish this by signaling an 'error' token to be produced for the current\n // `.lex()` run.\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).',\n false\n );\n\n this._signaled_error_token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n\n return this;\n },\n\n /**\n * retain first n characters of the match\n * \n * @public\n * @this {RegExpLexer}\n */\n less: function lexer_less(n) {\n return this.unput(this.match.slice(n));\n },\n\n /**\n * return (part of the) already matched input, i.e. for error\n * messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of\n * input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n * \n * @public\n * @this {RegExpLexer}\n */\n pastInput: function lexer_pastInput(maxSize, maxLines) {\n var past = this.matched.substring(0, this.matched.length - this.match.length);\n\n if (maxSize < 0)\n maxSize = past.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = past.length; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substr` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n past = past.substr(-maxSize * 2 - 2);\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = past.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(-maxLines);\n past = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis prefix...\n if (past.length > maxSize) {\n past = '...' + past.substr(-maxSize);\n }\n\n return past;\n },\n\n /**\n * return (part of the) upcoming input, i.e. for error messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n *\n * > ### NOTE ###\n * >\n * > *\"upcoming input\"* is defined as the whole of the both\n * > the *currently lexed* input, together with any remaining input\n * > following that. *\"currently lexed\"* input is the input \n * > already recognized by the lexer but not yet returned with\n * > the lexer token. This happens when you are invoking this API\n * > from inside any lexer rule action code block. \n * >\n * \n * @public\n * @this {RegExpLexer}\n */\n upcomingInput: function lexer_upcomingInput(maxSize, maxLines) {\n var next = this.match;\n\n if (maxSize < 0)\n maxSize = next.length + this._input.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = maxSize; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substring` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n if (next.length < maxSize * 2 + 2) {\n next += this._input.substring(0, maxSize * 2 + 2); // substring is faster on Chrome/V8 \n }\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = next.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(0, maxLines);\n next = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis postfix...\n if (next.length > maxSize) {\n next = next.substring(0, maxSize) + '...';\n }\n\n return next;\n },\n\n /**\n * return a string which displays the character position where the\n * lexing error occurred, i.e. for error messages\n * \n * @public\n * @this {RegExpLexer}\n */\n showPosition: function lexer_showPosition(maxPrefix, maxPostfix) {\n var pre = this.pastInput(maxPrefix).replace(/\\s/g, ' ');\n var c = new Array(pre.length + 1).join('-');\n return pre + this.upcomingInput(maxPostfix).replace(/\\s/g, ' ') + '\\n' + c + '^';\n },\n\n /**\n * return an YYLLOC info object derived off the given context (actual, preceding, following, current).\n * Use this method when the given `actual` location is not guaranteed to exist (i.e. when\n * it MAY be NULL) and you MUST have a valid location info object anyway:\n * then we take the given context of the `preceding` and `following` locations, IFF those are available,\n * and reconstruct the `actual` location info from those.\n * If this fails, the heuristic is to take the `current` location, IFF available.\n * If this fails as well, we assume the sought location is at/around the current lexer position\n * and then produce that one as a response. DO NOTE that these heuristic/derived location info\n * values MAY be inaccurate!\n *\n * NOTE: `deriveLocationInfo()` ALWAYS produces a location info object *copy* of `actual`, not just\n * a *reference* hence all input location objects can be assumed to be 'constant' (function has no side-effects).\n * \n * @public\n * @this {RegExpLexer}\n */\n deriveLocationInfo: function lexer_deriveYYLLOC(actual, preceding, following, current) {\n var loc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n if (actual) {\n loc.first_line = actual.first_line | 0;\n loc.last_line = actual.last_line | 0;\n loc.first_column = actual.first_column | 0;\n loc.last_column = actual.last_column | 0;\n\n if (actual.range) {\n loc.range[0] = actual.range[0] | 0;\n loc.range[1] = actual.range[1] | 0;\n }\n }\n\n if (loc.first_line <= 0 || loc.last_line < loc.first_line) {\n // plan B: heuristic using preceding and following:\n if (loc.first_line <= 0 && preceding) {\n loc.first_line = preceding.last_line | 0;\n loc.first_column = preceding.last_column | 0;\n\n if (preceding.range) {\n loc.range[0] = actual.range[1] | 0;\n }\n }\n\n if ((loc.last_line <= 0 || loc.last_line < loc.first_line) && following) {\n loc.last_line = following.first_line | 0;\n loc.last_column = following.first_column | 0;\n\n if (following.range) {\n loc.range[1] = actual.range[0] | 0;\n }\n }\n\n // plan C?: see if the 'current' location is useful/sane too:\n if (loc.first_line <= 0 && current && (loc.last_line <= 0 || current.last_line <= loc.last_line)) {\n loc.first_line = current.first_line | 0;\n loc.first_column = current.first_column | 0;\n\n if (current.range) {\n loc.range[0] = current.range[0] | 0;\n }\n }\n\n if (loc.last_line <= 0 && current && (loc.first_line <= 0 || current.first_line >= loc.first_line)) {\n loc.last_line = current.last_line | 0;\n loc.last_column = current.last_column | 0;\n\n if (current.range) {\n loc.range[1] = current.range[1] | 0;\n }\n }\n }\n\n // sanitize: fix last_line BEFORE we fix first_line as we use the 'raw' value of the latter\n // or plan D heuristics to produce a 'sensible' last_line value:\n if (loc.last_line <= 0) {\n if (loc.first_line <= 0) {\n loc.first_line = this.yylloc.first_line;\n loc.last_line = this.yylloc.last_line;\n loc.first_column = this.yylloc.first_column;\n loc.last_column = this.yylloc.last_column;\n loc.range[0] = this.yylloc.range[0];\n loc.range[1] = this.yylloc.range[1];\n } else {\n loc.last_line = this.yylloc.last_line;\n loc.last_column = this.yylloc.last_column;\n loc.range[1] = this.yylloc.range[1];\n }\n }\n\n if (loc.first_line <= 0) {\n loc.first_line = loc.last_line;\n loc.first_column = 0; // loc.last_column; \n loc.range[1] = loc.range[0];\n }\n\n if (loc.first_column < 0) {\n loc.first_column = 0;\n }\n\n if (loc.last_column < 0) {\n loc.last_column = (loc.first_column > 0 ? loc.first_column : 80);\n }\n\n return loc;\n },\n\n /**\n * return a string which displays the lines & columns of input which are referenced \n * by the given location info range, plus a few lines of context.\n * \n * This function pretty-prints the indicated section of the input, with line numbers \n * and everything!\n * \n * This function is very useful to provide highly readable error reports, while\n * the location range may be specified in various flexible ways:\n * \n * - `loc` is the location info object which references the area which should be\n * displayed and 'marked up': these lines & columns of text are marked up by `^`\n * characters below each character in the entire input range.\n * \n * - `context_loc` is the *optional* location info object which instructs this\n * pretty-printer how much *leading* context should be displayed alongside\n * the area referenced by `loc`. This can help provide context for the displayed\n * error, etc.\n * \n * When this location info is not provided, a default context of 3 lines is\n * used.\n * \n * - `context_loc2` is another *optional* location info object, which serves\n * a similar purpose to `context_loc`: it specifies the amount of *trailing*\n * context lines to display in the pretty-print output.\n * \n * When this location info is not provided, a default context of 1 line only is\n * used.\n * \n * Special Notes:\n * \n * - when the `loc`-indicated range is very large (about 5 lines or more), then\n * only the first and last few lines of this block are printed while a\n * `...continued...` message will be printed between them.\n * \n * This serves the purpose of not printing a huge amount of text when the `loc`\n * range happens to be huge: this way a manageable & readable output results\n * for arbitrary large ranges.\n * \n * - this function can display lines of input which whave not yet been lexed.\n * `prettyPrintRange()` can access the entire input!\n * \n * @public\n * @this {RegExpLexer}\n */\n prettyPrintRange: function lexer_prettyPrintRange(loc, context_loc, context_loc2) {\n loc = this.deriveLocationInfo(loc, context_loc, context_loc2);\n const CONTEXT = 3;\n const CONTEXT_TAIL = 1;\n const MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT = 2;\n var input = this.matched + this._input;\n var lines = input.split('\\n');\n var l0 = Math.max(1, (context_loc ? context_loc.first_line : loc.first_line - CONTEXT));\n var l1 = Math.max(1, (context_loc2 ? context_loc2.last_line : loc.last_line + CONTEXT_TAIL));\n var lineno_display_width = 1 + Math.log10(l1 | 1) | 0;\n var ws_prefix = new Array(lineno_display_width).join(' ');\n var nonempty_line_indexes = [];\n\n var rv = lines.slice(l0 - 1, l1 + 1).map(function injectLineNumber(line, index) {\n var lno = index + l0;\n var lno_pfx = (ws_prefix + lno).substr(-lineno_display_width);\n var rv = lno_pfx + ': ' + line;\n var errpfx = new Array(lineno_display_width + 1).join('^');\n var offset = 2 + 1;\n var len = 0;\n\n if (lno === loc.first_line) {\n offset += loc.first_column;\n\n len = Math.max(\n 2,\n ((lno === loc.last_line ? loc.last_column : line.length)) - loc.first_column + 1\n );\n } else if (lno === loc.last_line) {\n len = Math.max(2, loc.last_column + 1);\n } else if (lno > loc.first_line && lno < loc.last_line) {\n len = Math.max(2, line.length + 1);\n }\n\n if (len) {\n var lead = new Array(offset).join('.');\n var mark = new Array(len).join('^');\n rv += '\\n' + errpfx + lead + mark;\n\n if (line.trim().length > 0) {\n nonempty_line_indexes.push(index);\n }\n }\n\n rv = rv.replace(/\\t/g, ' ');\n return rv;\n });\n\n // now make sure we don't print an overly large amount of error area: limit it \n // to the top and bottom line count:\n if (nonempty_line_indexes.length > 2 * MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT) {\n var clip_start = nonempty_line_indexes[MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT - 1] + 1;\n var clip_end = nonempty_line_indexes[nonempty_line_indexes.length - MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT] - 1;\n var intermediate_line = new Array(lineno_display_width + 1).join(' ') + ' (...continued...)';\n intermediate_line += '\\n' + new Array(lineno_display_width + 1).join('-') + ' (---------------)';\n rv.splice(clip_start, clip_end - clip_start + 1, intermediate_line);\n }\n\n return rv.join('\\n');\n },\n\n /**\n * helper function, used to produce a human readable description as a string, given\n * the input `yylloc` location object.\n * \n * Set `display_range_too` to TRUE to include the string character index position(s)\n * in the description if the `yylloc.range` is available.\n * \n * @public\n * @this {RegExpLexer}\n */\n describeYYLLOC: function lexer_describe_yylloc(yylloc, display_range_too) {\n var l1 = yylloc.first_line;\n var l2 = yylloc.last_line;\n var c1 = yylloc.first_column;\n var c2 = yylloc.last_column;\n var dl = l2 - l1;\n var dc = c2 - c1;\n var rv;\n\n if (dl === 0) {\n rv = 'line ' + l1 + ', ';\n\n if (dc <= 1) {\n rv += 'column ' + c1;\n } else {\n rv += 'columns ' + c1 + ' .. ' + c2;\n }\n } else {\n rv = 'lines ' + l1 + '(column ' + c1 + ') .. ' + l2 + '(column ' + c2 + ')';\n }\n\n if (yylloc.range && display_range_too) {\n var r1 = yylloc.range[0];\n var r2 = yylloc.range[1] - 1;\n\n if (r2 <= r1) {\n rv += ' {String Offset: ' + r1 + '}';\n } else {\n rv += ' {String Offset range: ' + r1 + ' .. ' + r2 + '}';\n }\n }\n\n return rv;\n },\n\n /**\n * test the lexed token: return FALSE when not a match, otherwise return token.\n * \n * `match` is supposed to be an array coming out of a regex match, i.e. `match[0]`\n * contains the actually matched text string.\n * \n * Also move the input cursor forward and update the match collectors:\n * \n * - `yytext`\n * - `yyleng`\n * - `match`\n * - `matches`\n * - `yylloc`\n * - `offset`\n * \n * @public\n * @this {RegExpLexer}\n */\n test_match: function lexer_test_match(match, indexed_rule) {\n var token, lines, backup, match_str, match_str_len;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.yylloc.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column,\n range: this.yylloc.range.slice(0)\n },\n\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n\n //_signaled_error_token: this._signaled_error_token,\n yy: this.yy,\n\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n }\n\n match_str = match[0];\n match_str_len = match_str.length;\n\n // if (match_str.indexOf('\\n') !== -1 || match_str.indexOf('\\r') !== -1) {\n lines = match_str.split(/(?:\\r\\n?|\\n)/g);\n\n if (lines.length > 1) {\n this.yylineno += lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n this.yylloc.last_column = lines[lines.length - 1].length;\n } else {\n this.yylloc.last_column += match_str_len;\n }\n\n // }\n this.yytext += match_str;\n\n this.match += match_str;\n this.matched += match_str;\n this.matches = match;\n this.yyleng = this.yytext.length;\n this.yylloc.range[1] += match_str_len;\n\n // previous lex rules MAY have invoked the `more()` API rather than producing a token:\n // those rules will already have moved this `offset` forward matching their match lengths,\n // hence we must only add our own match length now:\n this.offset += match_str_len;\n\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match_str_len);\n\n // calling this method:\n //\n // function lexer__performAction(yy, yyrulenumber, YY_START) {...}\n token = this.performAction.call(\n this,\n this.yy,\n indexed_rule,\n this.conditionStack[this.conditionStack.length - 1] /* = YY_START */\n );\n\n // otherwise, when the action codes are all simple return token statements:\n //token = this.simpleCaseActionClusters[indexed_rule];\n\n if (this.done && this._input) {\n this.done = false;\n }\n\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n\n this.__currentRuleSet__ = null;\n return false; // rule action called reject() implying the next rule should be tested instead. \n } else if (this._signaled_error_token) {\n // produce one 'error' token as `.parseError()` in `reject()`\n // did not guarantee a failure signal by throwing an exception!\n token = this._signaled_error_token;\n\n this._signaled_error_token = false;\n return token;\n }\n\n return false;\n },\n\n /**\n * return next match in input\n * \n * @public\n * @this {RegExpLexer}\n */\n next: function lexer_next() {\n if (this.done) {\n this.clear();\n return this.EOF;\n }\n\n if (!this._input) {\n this.done = true;\n }\n\n var token, match, tempMatch, index;\n\n if (!this._more) {\n this.clear();\n }\n\n var spec = this.__currentRuleSet__;\n\n if (!spec) {\n // Update the ruleset cache as we apparently encountered a state change or just started lexing.\n // The cache is set up for fast lookup -- we assume a lexer will switch states much less often than it will\n // invoke the `lex()` token-producing API and related APIs, hence caching the set for direct access helps\n // speed up those activities a tiny bit.\n spec = this.__currentRuleSet__ = this._currentRules();\n\n // Check whether a *sane* condition has been pushed before: this makes the lexer robust against\n // user-programmer bugs such as https://github.com/zaach/jison-lex/issues/19\n if (!spec || !spec.rules) {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Internal lexer engine error' + lineno_msg + ': The lex grammar programmer pushed a non-existing condition name \"' + this.topState() + '\"; this is a fatal error and should be reported to the application programmer team!',\n false\n );\n\n // produce one 'error' token until this situation has been resolved, most probably by parse termination!\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n }\n\n var rule_ids = spec.rules;\n var regexes = spec.__rule_regexes;\n var len = spec.__rule_count;\n\n // Note: the arrays are 1-based, while `len` itself is a valid index,\n // hence the non-standard less-or-equal check in the next loop condition!\n for (var i = 1; i <= len; i++) {\n tempMatch = this._input.match(regexes[i]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rule_ids[i]);\n\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = undefined;\n continue; // rule action called reject() implying a rule MISmatch. \n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n\n if (match) {\n token = this.test_match(match, rule_ids[index]);\n\n if (token !== false) {\n return token;\n }\n\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n\n if (!this._input) {\n this.done = true;\n this.clear();\n return this.EOF;\n } else {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': Unrecognized text.',\n this.options.lexerErrorsAreRecoverable\n );\n\n var pendingInput = this._input;\n var activeCondition = this.topState();\n var conditionStackDepth = this.conditionStack.length;\n token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n\n if (token === this.ERROR) {\n // we can try to recover from a lexer error that `parseError()` did not 'recover' for us\n // by moving forward at least one character at a time IFF the (user-specified?) `parseError()`\n // has not consumed/modified any pending input or changed state in the error handler:\n if (!this.matches && // and make sure the input has been modified/consumed ...\n pendingInput === this._input && // ...or the lexer state has been modified significantly enough\n // to merit a non-consuming error handling action right now.\n activeCondition === this.topState() && conditionStackDepth === this.conditionStack.length) {\n this.input();\n }\n }\n\n return token;\n }\n },\n\n /**\n * return next match that has a token\n * \n * @public\n * @this {RegExpLexer}\n */\n lex: function lexer_lex() {\n var r;\n\n // allow the PRE/POST handlers set/modify the return token for maximum flexibility of the generated lexer:\n if (typeof this.pre_lex === 'function') {\n r = this.pre_lex.call(this, 0);\n }\n\n if (typeof this.options.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.pre_lex.call(this, r) || r;\n }\n\n if (this.yy && typeof this.yy.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.pre_lex.call(this, r) || r;\n }\n\n while (!r) {\n r = this.next();\n }\n\n if (this.yy && typeof this.yy.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.post_lex.call(this, r) || r;\n }\n\n if (typeof this.options.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.post_lex.call(this, r) || r;\n }\n\n if (typeof this.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.post_lex.call(this, r) || r;\n }\n\n return r;\n },\n\n /**\n * return next match that has a token. Identical to the `lex()` API but does not invoke any of the \n * `pre_lex()` nor any of the `post_lex()` callbacks.\n * \n * @public\n * @this {RegExpLexer}\n */\n fastLex: function lexer_fastLex() {\n var r;\n\n while (!r) {\n r = this.next();\n }\n\n return r;\n },\n\n /**\n * return info about the lexer state that can help a parser or other lexer API user to use the\n * most efficient means available. This API is provided to aid run-time performance for larger\n * systems which employ this lexer.\n * \n * @public\n * @this {RegExpLexer}\n */\n canIUse: function lexer_canIUse() {\n var rv = {\n fastLex: !(typeof this.pre_lex === 'function' || typeof this.options.pre_lex === 'function' || this.yy && typeof this.yy.pre_lex === 'function' || this.yy && typeof this.yy.post_lex === 'function' || typeof this.options.post_lex === 'function' || typeof this.post_lex === 'function') && typeof this.fastLex === 'function'\n };\n\n return rv;\n },\n\n /**\n * backwards compatible alias for `pushState()`;\n * the latter is symmetrical with `popState()` and we advise to use\n * those APIs in any modern lexer code, rather than `begin()`.\n * \n * @public\n * @this {RegExpLexer}\n */\n begin: function lexer_begin(condition) {\n return this.pushState(condition);\n },\n\n /**\n * activates a new lexer condition state (pushes the new lexer\n * condition state onto the condition stack)\n * \n * @public\n * @this {RegExpLexer}\n */\n pushState: function lexer_pushState(condition) {\n this.conditionStack.push(condition);\n this.__currentRuleSet__ = null;\n return this;\n },\n\n /**\n * pop the previously active lexer condition state off the condition\n * stack\n * \n * @public\n * @this {RegExpLexer}\n */\n popState: function lexer_popState() {\n var n = this.conditionStack.length - 1;\n\n if (n > 0) {\n this.__currentRuleSet__ = null;\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n /**\n * return the currently active lexer condition state; when an index\n * argument is provided it produces the N-th previous condition state,\n * if available\n * \n * @public\n * @this {RegExpLexer}\n */\n topState: function lexer_topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return 'INITIAL';\n }\n },\n\n /**\n * (internal) determine the lexer rule set which is active for the\n * currently active lexer condition state\n * \n * @public\n * @this {RegExpLexer}\n */\n _currentRules: function lexer__currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]];\n } else {\n return this.conditions['INITIAL'];\n }\n },\n\n /**\n * return the number of states currently on the stack\n * \n * @public\n * @this {RegExpLexer}\n */\n stateStackSize: function lexer_stateStackSize() {\n return this.conditionStack.length;\n },\n\n options: {\n trackPosition: true\n },\n\n JisonLexerError: JisonLexerError,\n\n performAction: function lexer__performAction(yy, yyrulenumber, YY_START) {\n var yy_ = this;\n var YYSTATE = YY_START;\n\n switch (yyrulenumber) {\n case 1:\n /*! Conditions:: INITIAL */\n /*! Rule:: \\s+ */\n /* skip whitespace */\n break;\n\n default:\n return this.simpleCaseActionClusters[yyrulenumber];\n }\n },\n\n simpleCaseActionClusters: {\n /*! Conditions:: INITIAL */\n /*! Rule:: (--[0-9a-z-A-Z-]*) */\n 0: 13,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\* */\n 2: 5,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\/ */\n 3: 6,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\+ */\n 4: 3,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: - */\n 5: 4,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)px\\b */\n 6: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)cm\\b */\n 7: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)mm\\b */\n 8: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)in\\b */\n 9: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pt\\b */\n 10: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pc\\b */\n 11: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)deg\\b */\n 12: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)grad\\b */\n 13: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rad\\b */\n 14: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)turn\\b */\n 15: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)s\\b */\n 16: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ms\\b */\n 17: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)Hz\\b */\n 18: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)kHz\\b */\n 19: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpi\\b */\n 20: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpcm\\b */\n 21: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dppx\\b */\n 22: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)em\\b */\n 23: 20,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ex\\b */\n 24: 21,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ch\\b */\n 25: 22,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rem\\b */\n 26: 23,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vw\\b */\n 27: 25,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vh\\b */\n 28: 24,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmin\\b */\n 29: 26,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmax\\b */\n 30: 27,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)% */\n 31: 28,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)\\b */\n 32: 11,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (calc) */\n 33: 9,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (var) */\n 34: 12,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([a-z]+) */\n 35: 10,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\( */\n 36: 7,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\) */\n 37: 8,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: , */\n 38: 14,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: $ */\n 39: 1\n },\n\n rules: [\n /* 0: */ /^(?:(--[\\d\\-A-Za-z]*))/,\n /* 1: */ /^(?:\\s+)/,\n /* 2: */ /^(?:\\*)/,\n /* 3: */ /^(?:\\/)/,\n /* 4: */ /^(?:\\+)/,\n /* 5: */ /^(?:-)/,\n /* 6: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)px\\b)/,\n /* 7: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)cm\\b)/,\n /* 8: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)mm\\b)/,\n /* 9: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)in\\b)/,\n /* 10: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pt\\b)/,\n /* 11: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pc\\b)/,\n /* 12: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)deg\\b)/,\n /* 13: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)grad\\b)/,\n /* 14: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rad\\b)/,\n /* 15: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)turn\\b)/,\n /* 16: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)s\\b)/,\n /* 17: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ms\\b)/,\n /* 18: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)Hz\\b)/,\n /* 19: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)kHz\\b)/,\n /* 20: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpi\\b)/,\n /* 21: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpcm\\b)/,\n /* 22: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dppx\\b)/,\n /* 23: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)em\\b)/,\n /* 24: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ex\\b)/,\n /* 25: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ch\\b)/,\n /* 26: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rem\\b)/,\n /* 27: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vw\\b)/,\n /* 28: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vh\\b)/,\n /* 29: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmin\\b)/,\n /* 30: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmax\\b)/,\n /* 31: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)%)/,\n /* 32: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)\\b)/,\n /* 33: */ /^(?:(calc))/,\n /* 34: */ /^(?:(var))/,\n /* 35: */ /^(?:([a-z]+))/,\n /* 36: */ /^(?:\\()/,\n /* 37: */ /^(?:\\))/,\n /* 38: */ /^(?:,)/,\n /* 39: */ /^(?:$)/\n ],\n\n conditions: {\n 'INITIAL': {\n rules: [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39\n ],\n\n inclusive: true\n }\n }\n };\n\n return lexer;\n}();\nparser.lexer = lexer;\n\n\n\nfunction Parser() {\n this.yy = {};\n}\nParser.prototype = parser;\nparser.Parser = Parser;\n\nreturn new Parser();\n})();\n\n \n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\n exports.parser = parser;\n exports.Parser = parser.Parser;\n exports.parse = function () {\n return parser.parse.apply(parser, arguments);\n };\n \n}\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next, quote, prev, token, escape, escapePos, whitespacePos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash && value.charCodeAt(next + 1) !== star)\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: \"comment\",\n sourceIndex: pos\n };\n\n next = value.indexOf(\"*/\", pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(pos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = \"\";\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var dotted = false;\n var sciPos = -1;\n var containsNumber = false;\n var code;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code >= 48 && code <= 57) {\n containsNumber = true;\n } else if (code === exp || code === EXP) {\n if (sciPos > -1) {\n break;\n }\n sciPos = pos;\n } else if (code === dot) {\n if (dotted) {\n break;\n }\n dotted = true;\n } else if (code === plus || code === minus) {\n if (pos !== 0) {\n break;\n }\n } else {\n break;\n }\n\n pos += 1;\n }\n\n if (sciPos + 1 === pos) pos--;\n\n return containsNumber\n ? {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n }\n : false;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","/**\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\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 _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","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}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"3c2e6482\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"web_timetable:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkweb_timetable\"] = self[\"webpackChunkweb_timetable\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import { isValidElement } from 'react';\n\nimport { Id } from '../types';\n\nexport function isNum(v: any): v is Number {\n return typeof v === 'number' && !isNaN(v);\n}\n\nexport function isBool(v: any): v is Boolean {\n return typeof v === 'boolean';\n}\n\nexport function isStr(v: any): v is String {\n return typeof v === 'string';\n}\n\nexport function isFn(v: any): v is Function {\n return typeof v === 'function';\n}\n\nexport function parseClassName(v: any) {\n return isStr(v) || isFn(v) ? v : null;\n}\n\nexport function isToastIdValid(toastId?: Id) {\n return toastId === 0 || toastId;\n}\n\nexport function getAutoCloseDelay(\n toastAutoClose?: false | number,\n containerAutoClose?: false | number\n) {\n return toastAutoClose === false ||\n (isNum(toastAutoClose) && toastAutoClose > 0)\n ? toastAutoClose\n : containerAutoClose;\n}\n\nexport const canUseDom = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nexport function canBeRendered(content: T): boolean {\n return (\n isValidElement(content) || isStr(content) || isFn(content) || isNum(content)\n );\n}\n","import { ToastPosition, TypeOptions } from '../types';\n\ntype KeyOfPosition =\n | 'TOP_LEFT'\n | 'TOP_RIGHT'\n | 'TOP_CENTER'\n | 'BOTTOM_LEFT'\n | 'BOTTOM_RIGHT'\n | 'BOTTOM_CENTER';\n\ntype KeyOfType = 'INFO' | 'SUCCESS' | 'WARNING' | 'ERROR' | 'DEFAULT';\n\nexport const POSITION: { [key in KeyOfPosition]: ToastPosition } = {\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n TOP_CENTER: 'top-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n BOTTOM_CENTER: 'bottom-center'\n};\n\nexport const TYPE: { [key in KeyOfType]: TypeOptions } = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default'\n};\n\nexport const enum Default {\n COLLAPSE_DURATION = 300,\n DEBOUNCE_DURATION = 50,\n CSS_NAMESPACE = 'Toastify',\n DRAGGABLE_PERCENT = 80\n}\n\nexport const enum Direction {\n X = 'x',\n Y = 'y'\n}\n","import React, { useEffect, useLayoutEffect, useRef } from 'react';\nimport { ToastTransitionProps } from '../types';\n\nimport { collapseToast } from './collapseToast';\nimport { Default } from './constant';\n\nexport interface CSSTransitionProps {\n /**\n * Css class to apply when toast enter\n */\n enter: string;\n\n /**\n * Css class to apply when toast leave\n */\n exit: string;\n\n /**\n * Append current toast position to the classname.\n * If multiple classes are provided, only the last one will get the position\n * For instance `myclass--top-center`...\n * `Default: false`\n */\n appendPosition?: boolean;\n\n /**\n * Collapse toast smoothly when exit animation end\n * `Default: true`\n */\n collapse?: boolean;\n\n /**\n * Collapse transition duration\n * `Default: 300`\n */\n collapseDuration?: number;\n}\n\nconst enum AnimationStep {\n Enter,\n Exit\n}\n\n/**\n * Css animation that just work.\n * You could use animate.css for instance\n *\n *\n * ```\n * cssTransition({\n * enter: \"animate__animated animate__bounceIn\",\n * exit: \"animate__animated animate__bounceOut\"\n * })\n * ```\n *\n */\nexport function cssTransition({\n enter,\n exit,\n appendPosition = false,\n collapse = true,\n collapseDuration = Default.COLLAPSE_DURATION\n}: CSSTransitionProps) {\n return function ToastTransition({\n children,\n position,\n preventExitTransition,\n done,\n nodeRef,\n isIn\n }: ToastTransitionProps) {\n const enterClassName = appendPosition ? `${enter}--${position}` : enter;\n const exitClassName = appendPosition ? `${exit}--${position}` : exit;\n const baseClassName = useRef();\n const animationStep = useRef(AnimationStep.Enter);\n\n useLayoutEffect(() => {\n onEnter();\n }, []);\n\n useEffect(() => {\n if (!isIn) preventExitTransition ? onExited() : onExit();\n }, [isIn]);\n\n function onEnter() {\n const node = nodeRef.current!;\n baseClassName.current = node.className;\n node.className += ` ${enterClassName}`;\n node.addEventListener('animationend', onEntered);\n }\n\n function onEntered(e: AnimationEvent) {\n if (e.target !== nodeRef.current) return;\n\n const node = nodeRef.current!;\n node.removeEventListener('animationend', onEntered);\n if (animationStep.current === AnimationStep.Enter) {\n node.className = baseClassName.current!;\n }\n }\n\n function onExit() {\n animationStep.current = AnimationStep.Exit;\n const node = nodeRef.current!;\n\n node.className += ` ${exitClassName}`;\n node.addEventListener('animationend', onExited);\n }\n\n function onExited() {\n const node = nodeRef.current!;\n\n node.removeEventListener('animationend', onExited);\n collapse ? collapseToast(node, done, collapseDuration) : done();\n }\n\n return <>{children};\n };\n}\n","import { Default } from './constant';\n\n/**\n * Used to collapse toast after exit animation\n */\nexport function collapseToast(\n node: HTMLElement,\n done: () => void,\n duration = Default.COLLAPSE_DURATION\n) {\n const { scrollHeight, style } = node;\n\n requestAnimationFrame(() => {\n style.minHeight = 'initial';\n style.height = scrollHeight + 'px';\n style.transition = `all ${duration}ms`;\n\n requestAnimationFrame(() => {\n style.height = '0';\n style.padding = '0';\n style.margin = '0';\n setTimeout(done, duration as number);\n });\n });\n}\n","import {\n Id,\n ToastContent,\n ClearWaitingQueueParams,\n NotValidatedToastProps\n} from '../types';\nimport { ContainerInstance } from '../hooks';\n\nexport const enum Event {\n Show,\n Clear,\n DidMount,\n WillUnmount,\n Change,\n ClearWaitingQueue\n}\n\ntype OnShowCallback = (\n content: ToastContent,\n options: NotValidatedToastProps\n) => void;\ntype OnClearCallback = (id?: Id) => void;\ntype OnClearWaitingQueue = (params: ClearWaitingQueueParams) => void;\ntype OnDidMountCallback = (containerInstance: ContainerInstance) => void;\ntype OnWillUnmountCallback = OnDidMountCallback;\nexport type OnChangeCallback = (\n toast: number,\n containerId?: number | string\n) => void;\ntype Callback =\n | OnShowCallback\n | OnClearCallback\n | OnClearWaitingQueue\n | OnDidMountCallback\n | OnWillUnmountCallback\n | OnChangeCallback;\ntype TimeoutId = ReturnType;\n\nexport interface EventManager {\n list: Map;\n emitQueue: Map;\n on(event: Event.Show, callback: OnShowCallback): EventManager;\n on(event: Event.Clear, callback: OnClearCallback): EventManager;\n on(\n event: Event.ClearWaitingQueue,\n callback: OnClearWaitingQueue\n ): EventManager;\n on(event: Event.DidMount, callback: OnDidMountCallback): EventManager;\n on(event: Event.WillUnmount, callback: OnWillUnmountCallback): EventManager;\n on(event: Event.Change, callback: OnChangeCallback): EventManager;\n off(event: Event, callback?: Callback): EventManager;\n cancelEmit(event: Event): EventManager;\n emit(\n event: Event.Show,\n content: React.ReactNode,\n options: NotValidatedToastProps\n ): void;\n emit(event: Event.Clear, id?: string | number): void;\n emit(event: Event.ClearWaitingQueue, params: ClearWaitingQueueParams): void;\n emit(event: Event.DidMount, containerInstance: ContainerInstance): void;\n emit(event: Event.WillUnmount, containerInstance: ContainerInstance): void;\n emit(event: Event.Change, toast: number, containerId?: number | string): void;\n}\n\nexport const eventManager: EventManager = {\n list: new Map(),\n emitQueue: new Map(),\n\n on(event: Event, callback: Callback) {\n this.list.has(event) || this.list.set(event, []);\n this.list.get(event)!.push(callback);\n return this;\n },\n\n off(event, callback) {\n if (callback) {\n const cb = this.list.get(event)!.filter(cb => cb !== callback);\n this.list.set(event, cb);\n return this;\n }\n this.list.delete(event);\n return this;\n },\n\n cancelEmit(event) {\n const timers = this.emitQueue.get(event);\n if (timers) {\n timers.forEach(clearTimeout);\n this.emitQueue.delete(event);\n }\n\n return this;\n },\n\n /**\n * Enqueue the event at the end of the call stack\n * Doing so let the user call toast as follow:\n * toast('1')\n * toast('2')\n * toast('3')\n * Without setTimemout the code above will not work\n */\n emit(event: Event, ...args: any[]) {\n this.list.has(event) &&\n this.list.get(event)!.forEach((callback: Callback) => {\n const timer: TimeoutId = setTimeout(() => {\n // @ts-ignore\n callback(...args);\n }, 0);\n\n this.emitQueue.has(event) || this.emitQueue.set(event, []);\n this.emitQueue.get(event)!.push(timer);\n });\n }\n};\n","import { useRef, useEffect } from 'react';\n\n/**\n * `useKeeper` is a helper around `useRef`.\n *\n * You don't need to access the `.current`property to get the value\n * If refresh is set to true. The ref will be updated every render\n */\nexport function useKeeper(arg: T, refresh = false) {\n const ref = useRef(arg);\n\n useEffect(() => {\n if (refresh) ref.current = arg;\n });\n\n return ref.current;\n}\n","import { Id } from '../types';\n\nimport { isToastIdValid } from '../utils';\n\nexport const enum ActionType {\n ADD,\n REMOVE\n}\nexport type State = Array;\nexport type Action =\n | { type: ActionType.ADD; toastId: Id; staleId?: Id }\n | { type: ActionType.REMOVE; toastId?: Id };\n\nexport function reducer(state: State, action: Action) {\n switch (action.type) {\n case ActionType.ADD:\n return [...state, action.toastId].filter(id => id !== action.staleId);\n case ActionType.REMOVE:\n return isToastIdValid(action.toastId)\n ? state.filter(id => id !== action.toastId)\n : [];\n }\n}\n","import {\n useEffect,\n useRef,\n useReducer,\n cloneElement,\n isValidElement\n} from 'react';\nimport {\n parseClassName,\n canBeRendered,\n isBool,\n isFn,\n isNum,\n isStr,\n isToastIdValid,\n getAutoCloseDelay,\n Direction,\n Default\n} from '../utils';\nimport { eventManager, Event } from '../core/eventManager';\n\nimport {\n Id,\n ToastContainerProps,\n ToastProps,\n ToastContent,\n Toast,\n ToastPosition,\n ClearWaitingQueueParams,\n NotValidatedToastProps,\n ToastTransition\n} from '../types';\nimport { useKeeper } from './useKeeper';\nimport { ActionType, reducer } from './toastContainerReducer';\n\ntype CollectionItem = Record;\ntype ToastToRender = Partial>;\n\ninterface QueuedToast {\n toastContent: ToastContent;\n toastProps: ToastProps;\n staleId?: Id;\n}\n\nexport interface ContainerInstance {\n toastKey: number;\n displayedToast: number;\n props: ToastContainerProps;\n containerId?: Id | null;\n isToastActive: (toastId: Id) => boolean;\n getToast: (id: Id) => Toast | null;\n}\n\nexport function useToastContainer(props: ToastContainerProps) {\n const [, forceUpdate] = useReducer(x => x + 1, 0);\n const [toast, dispatch] = useReducer(reducer, []);\n const containerRef = useRef(null);\n let toastCount = useKeeper(0);\n let queue = useKeeper([]);\n const collection = useKeeper({});\n const instance = useKeeper({\n toastKey: 1,\n displayedToast: 0,\n props,\n containerId: null,\n isToastActive: isToastActive,\n getToast: id => collection[id] || null\n });\n\n useEffect(() => {\n instance.containerId = props.containerId;\n eventManager\n .cancelEmit(Event.WillUnmount)\n .on(Event.Show, buildToast)\n .on(Event.Clear, toastId => containerRef.current && removeToast(toastId))\n .on(Event.ClearWaitingQueue, clearWaitingQueue)\n .emit(Event.DidMount, instance);\n\n return () => eventManager.emit(Event.WillUnmount, instance);\n }, []);\n\n useEffect(() => {\n instance.isToastActive = isToastActive;\n instance.displayedToast = toast.length;\n eventManager.emit(Event.Change, toast.length, props.containerId);\n }, [toast]);\n\n useEffect(() => {\n instance.props = props;\n });\n\n function isToastActive(id: Id) {\n return toast.indexOf(id) !== -1;\n }\n\n function clearWaitingQueue({ containerId }: ClearWaitingQueueParams) {\n const { limit } = instance.props;\n if (limit && (!containerId || instance.containerId === containerId)) {\n toastCount -= queue.length;\n queue = [];\n }\n }\n\n function removeToast(toastId?: Id) {\n dispatch({ type: ActionType.REMOVE, toastId });\n }\n\n function dequeueToast() {\n const { toastContent, toastProps, staleId } = queue.shift() as QueuedToast;\n appendToast(toastContent, toastProps, staleId);\n }\n\n /**\n * check if a container is attached to the dom\n * check for multi-container, build only if associated\n * check for duplicate toastId if no update\n */\n function isNotValid({\n containerId,\n toastId,\n updateId\n }: NotValidatedToastProps) {\n return !containerRef.current ||\n (instance.props.enableMultiContainer &&\n containerId !== instance.props.containerId) ||\n (collection[toastId] && updateId == null)\n ? true\n : false;\n }\n\n // this function and all the function called inside needs to rely on ref(`useKeeper`)\n function buildToast(\n content: ToastContent,\n { delay, staleId, ...options }: NotValidatedToastProps\n ) {\n if (!canBeRendered(content) || isNotValid(options)) return;\n\n const { toastId, updateId, data } = options;\n const { props } = instance;\n const closeToast = () => removeToast(toastId);\n const isNotAnUpdate = options.updateId == null;\n\n if (isNotAnUpdate) toastCount++;\n\n const toastProps: ToastProps = {\n toastId,\n updateId,\n isLoading: options.isLoading,\n theme: options.theme || props.theme!,\n icon: options.icon ?? props.icon,\n isIn: false,\n key: options.key || instance.toastKey++,\n type: options.type!,\n closeToast: closeToast,\n closeButton: options.closeButton,\n rtl: props.rtl,\n position: options.position || (props.position as ToastPosition),\n transition: options.transition || (props.transition as ToastTransition),\n className: parseClassName(options.className || props.toastClassName),\n bodyClassName: parseClassName(\n options.bodyClassName || props.bodyClassName\n ),\n style: options.style || props.toastStyle,\n bodyStyle: options.bodyStyle || props.bodyStyle,\n onClick: options.onClick || props.onClick,\n pauseOnHover: isBool(options.pauseOnHover)\n ? options.pauseOnHover\n : props.pauseOnHover,\n pauseOnFocusLoss: isBool(options.pauseOnFocusLoss)\n ? options.pauseOnFocusLoss\n : props.pauseOnFocusLoss,\n draggable: isBool(options.draggable)\n ? options.draggable\n : props.draggable,\n draggablePercent: isNum(options.draggablePercent)\n ? options.draggablePercent\n : (props.draggablePercent as number),\n draggableDirection:\n options.draggableDirection || props.draggableDirection,\n closeOnClick: isBool(options.closeOnClick)\n ? options.closeOnClick\n : props.closeOnClick,\n progressClassName: parseClassName(\n options.progressClassName || props.progressClassName\n ),\n progressStyle: options.progressStyle || props.progressStyle,\n autoClose: options.isLoading\n ? false\n : getAutoCloseDelay(options.autoClose, props.autoClose),\n hideProgressBar: isBool(options.hideProgressBar)\n ? options.hideProgressBar\n : props.hideProgressBar,\n progress: options.progress,\n role: isStr(options.role) ? options.role : props.role,\n deleteToast() {\n removeFromCollection(toastId);\n }\n };\n\n if (isFn(options.onOpen)) toastProps.onOpen = options.onOpen;\n if (isFn(options.onClose)) toastProps.onClose = options.onClose;\n\n // tweak for vertical dragging\n if (\n toastProps.draggableDirection === Direction.Y &&\n toastProps.draggablePercent === Default.DRAGGABLE_PERCENT\n ) {\n (toastProps.draggablePercent as number) *= 1.5;\n }\n\n let closeButton = props.closeButton;\n\n if (options.closeButton === false || canBeRendered(options.closeButton)) {\n closeButton = options.closeButton;\n } else if (options.closeButton === true) {\n closeButton = canBeRendered(props.closeButton) ? props.closeButton : true;\n }\n\n toastProps.closeButton = closeButton;\n\n let toastContent = content;\n\n if (isValidElement(content) && !isStr(content.type)) {\n toastContent = cloneElement(content, {\n closeToast,\n toastProps,\n data\n });\n } else if (isFn(content)) {\n toastContent = content({ closeToast, toastProps, data });\n }\n\n // not handling limit + delay by design. Waiting for user feedback first\n if (\n props.limit &&\n props.limit > 0 &&\n toastCount > props.limit &&\n isNotAnUpdate\n ) {\n queue.push({ toastContent, toastProps, staleId });\n } else if (isNum(delay) && (delay as number) > 0) {\n setTimeout(() => {\n appendToast(toastContent, toastProps, staleId);\n }, delay);\n } else {\n appendToast(toastContent, toastProps, staleId);\n }\n }\n\n function appendToast(\n content: ToastContent,\n toastProps: ToastProps,\n staleId?: Id\n ) {\n const { toastId } = toastProps;\n\n if (staleId) delete collection[staleId];\n\n collection[toastId] = {\n content,\n props: toastProps\n };\n dispatch({\n type: ActionType.ADD,\n toastId,\n staleId\n });\n }\n\n function removeFromCollection(toastId: Id) {\n delete collection[toastId];\n const queueLen = queue.length;\n toastCount = isToastIdValid(toastId)\n ? toastCount - 1\n : toastCount - instance.displayedToast;\n\n if (toastCount < 0) toastCount = 0;\n\n if (queueLen > 0) {\n const freeSlot = isToastIdValid(toastId) ? 1 : instance.props.limit!;\n\n if (queueLen === 1 || freeSlot === 1) {\n instance.displayedToast++;\n dequeueToast();\n } else {\n const toDequeue = freeSlot > queueLen ? queueLen : freeSlot;\n instance.displayedToast = toDequeue;\n\n for (let i = 0; i < toDequeue; i++) dequeueToast();\n }\n } else {\n forceUpdate();\n }\n }\n\n function getToastToRender(\n cb: (position: ToastPosition, toastList: Toast[]) => T\n ) {\n const toastToRender: ToastToRender = {};\n const toastList = props.newestOnTop\n ? Object.keys(collection).reverse()\n : Object.keys(collection);\n\n for (let i = 0; i < toastList.length; i++) {\n const toast = collection[toastList[i]];\n const { position } = toast.props;\n toastToRender[position] || (toastToRender[position] = []);\n\n toastToRender[position]!.push(toast);\n }\n\n return (Object.keys(toastToRender) as Array).map(p =>\n cb(p, toastToRender[p]!)\n );\n }\n\n return {\n getToastToRender,\n collection,\n containerRef,\n isToastActive\n };\n}\n","import {\n useState,\n useRef,\n useEffect,\n isValidElement,\n DOMAttributes\n} from 'react';\n\nimport { isFn } from '../utils';\nimport { ToastProps } from '../types';\nimport { useKeeper } from './useKeeper';\nimport { Direction } from '../utils/constant';\n\ninterface Draggable {\n start: number;\n x: number;\n y: number;\n delta: number;\n removalDistance: number;\n canCloseOnClick: boolean;\n canDrag: boolean;\n boundingRect: DOMRect | null;\n}\n\ntype DragEvent = MouseEvent & TouchEvent;\n\nfunction getX(e: DragEvent) {\n return e.targetTouches && e.targetTouches.length >= 1\n ? e.targetTouches[0].clientX\n : e.clientX;\n}\n\nfunction getY(e: DragEvent) {\n return e.targetTouches && e.targetTouches.length >= 1\n ? e.targetTouches[0].clientY\n : e.clientY;\n}\n\nexport function useToast(props: ToastProps) {\n const [isRunning, setIsRunning] = useState(true);\n const [preventExitTransition, setPreventExitTransition] = useState(false);\n const toastRef = useRef(null);\n const drag = useKeeper({\n start: 0,\n x: 0,\n y: 0,\n delta: 0,\n removalDistance: 0,\n canCloseOnClick: true,\n canDrag: false,\n boundingRect: null\n });\n const syncProps = useKeeper(props, true);\n const { autoClose, pauseOnHover, closeToast, onClick, closeOnClick } = props;\n\n useEffect(() => {\n if (isFn(props.onOpen))\n props.onOpen(isValidElement(props.children) && props.children.props);\n\n return () => {\n if (isFn(syncProps.onClose))\n syncProps.onClose(\n isValidElement(syncProps.children) && syncProps.children.props\n );\n };\n }, []);\n\n useEffect(() => {\n props.draggable && bindDragEvents();\n return () => {\n props.draggable && unbindDragEvents();\n };\n }, [props.draggable]);\n\n useEffect(() => {\n props.pauseOnFocusLoss && bindFocusEvents();\n return () => {\n props.pauseOnFocusLoss && unbindFocusEvents();\n };\n }, [props.pauseOnFocusLoss]);\n\n function onDragStart(\n e: React.MouseEvent | React.TouchEvent\n ) {\n if (props.draggable) {\n const toast = toastRef.current!;\n drag.canCloseOnClick = true;\n drag.canDrag = true;\n drag.boundingRect = toast.getBoundingClientRect();\n toast.style.transition = '';\n drag.x = getX(e.nativeEvent as DragEvent);\n drag.y = getY(e.nativeEvent as DragEvent);\n\n if (props.draggableDirection === Direction.X) {\n drag.start = drag.x;\n drag.removalDistance =\n toast.offsetWidth * (props.draggablePercent / 100);\n } else {\n drag.start = drag.y;\n drag.removalDistance =\n toast.offsetHeight * (props.draggablePercent / 100);\n }\n }\n }\n\n function onDragTransitionEnd() {\n if (drag.boundingRect) {\n const { top, bottom, left, right } = drag.boundingRect;\n\n if (\n props.pauseOnHover &&\n drag.x >= left &&\n drag.x <= right &&\n drag.y >= top &&\n drag.y <= bottom\n ) {\n pauseToast();\n } else {\n playToast();\n }\n }\n }\n\n function playToast() {\n setIsRunning(true);\n }\n\n function pauseToast() {\n setIsRunning(false);\n }\n\n function bindFocusEvents() {\n if (!document.hasFocus()) pauseToast();\n\n window.addEventListener('focus', playToast);\n window.addEventListener('blur', pauseToast);\n }\n\n function unbindFocusEvents() {\n window.removeEventListener('focus', playToast);\n window.removeEventListener('blur', pauseToast);\n }\n\n function bindDragEvents() {\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragEnd);\n\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragEnd);\n }\n\n function unbindDragEvents() {\n document.removeEventListener('mousemove', onDragMove);\n document.removeEventListener('mouseup', onDragEnd);\n\n document.removeEventListener('touchmove', onDragMove);\n document.removeEventListener('touchend', onDragEnd);\n }\n\n function onDragMove(e: MouseEvent | TouchEvent) {\n if (drag.canDrag) {\n e.preventDefault();\n\n const toast = toastRef.current!;\n if (isRunning) pauseToast();\n\n drag.x = getX(e as DragEvent);\n drag.y = getY(e as DragEvent);\n\n if (props.draggableDirection === Direction.X) {\n drag.delta = drag.x - drag.start;\n } else {\n drag.delta = drag.y - drag.start;\n }\n\n // prevent false positif during a toast click\n if (drag.start !== drag.x) drag.canCloseOnClick = false;\n\n toast.style.transform = `translate${props.draggableDirection}(${drag.delta}px)`;\n toast.style.opacity = `${1 -\n Math.abs(drag.delta / drag.removalDistance)}`;\n }\n }\n\n function onDragEnd() {\n const toast = toastRef.current!;\n if (drag.canDrag) {\n drag.canDrag = false;\n\n if (Math.abs(drag.delta) > drag.removalDistance) {\n setPreventExitTransition(true);\n props.closeToast();\n return;\n }\n\n toast.style.transition = 'transform 0.2s, opacity 0.2s';\n toast.style.transform = `translate${props.draggableDirection}(0)`;\n toast.style.opacity = '1';\n }\n }\n\n const eventHandlers: DOMAttributes = {\n onMouseDown: onDragStart,\n onTouchStart: onDragStart,\n onMouseUp: onDragTransitionEnd,\n onTouchEnd: onDragTransitionEnd\n };\n\n if (autoClose && pauseOnHover) {\n eventHandlers.onMouseEnter = pauseToast;\n eventHandlers.onMouseLeave = playToast;\n }\n\n // prevent toast from closing when user drags the toast\n if (closeOnClick) {\n eventHandlers.onClick = (e: React.MouseEvent) => {\n onClick && onClick(e);\n drag.canCloseOnClick && closeToast();\n };\n }\n\n return {\n playToast,\n pauseToast,\n isRunning,\n preventExitTransition,\n toastRef,\n eventHandlers\n };\n}\n","import * as React from 'react';\nimport { Default } from '../utils';\nimport { Theme, TypeOptions } from '../types';\n\nexport interface CloseButtonProps {\n closeToast: (e: React.MouseEvent) => void;\n type: TypeOptions;\n ariaLabel?: string;\n theme: Theme;\n}\n\nexport function CloseButton({\n closeToast,\n theme,\n ariaLabel = 'close'\n}: CloseButtonProps) {\n return (\n {\n e.stopPropagation();\n closeToast(e);\n }}\n aria-label={ariaLabel}\n >\n \n \n \n \n );\n}\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { TYPE, Default, isFn } from './../utils';\nimport { TypeOptions, ToastClassName, Theme } from '../types';\n\nexport interface ProgressBarProps {\n /**\n * The animation delay which determine when to close the toast\n */\n delay: number;\n\n /**\n * Whether or not the animation is running or paused\n */\n isRunning: boolean;\n\n /**\n * Func to close the current toast\n */\n closeToast: () => void;\n\n /**\n * Optional type : info, success ...\n */\n type: TypeOptions;\n\n /**\n * The theme that is currently used\n */\n theme: Theme;\n\n /**\n * Hide or not the progress bar\n */\n hide?: boolean;\n\n /**\n * Optionnal className\n */\n className?: ToastClassName;\n\n /**\n * Optionnal inline style\n */\n style?: React.CSSProperties;\n\n /**\n * Tell wether or not controlled progress bar is used\n */\n controlledProgress?: boolean;\n\n /**\n * Controlled progress value\n */\n progress?: number | string;\n\n /**\n * Support rtl content\n */\n rtl?: boolean;\n\n /**\n * Tell if the component is visible on screen or not\n */\n isIn?: boolean;\n}\n\nexport function ProgressBar({\n delay,\n isRunning,\n closeToast,\n type,\n hide,\n className,\n style: userStyle,\n controlledProgress,\n progress,\n rtl,\n isIn,\n theme\n}: ProgressBarProps) {\n const style: React.CSSProperties = {\n ...userStyle,\n animationDuration: `${delay}ms`,\n animationPlayState: isRunning ? 'running' : 'paused',\n opacity: hide ? 0 : 1\n };\n\n if (controlledProgress) style.transform = `scaleX(${progress})`;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__progress-bar`,\n controlledProgress\n ? `${Default.CSS_NAMESPACE}__progress-bar--controlled`\n : `${Default.CSS_NAMESPACE}__progress-bar--animated`,\n `${Default.CSS_NAMESPACE}__progress-bar-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__progress-bar--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__progress-bar--rtl`]: rtl\n }\n );\n const classNames = isFn(className)\n ? className({\n rtl,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n\n // 🧐 controlledProgress is derived from progress\n // so if controlledProgress is set\n // it means that this is also the case for progress\n const animationEvent = {\n [controlledProgress && progress! >= 1\n ? 'onTransitionEnd'\n : 'onAnimationEnd']:\n controlledProgress && progress! < 1\n ? null\n : () => {\n isIn && closeToast();\n }\n };\n\n // TODO: add aria-valuenow, aria-valuemax, aria-valuemin\n\n return (\n \n );\n}\n\nProgressBar.defaultProps = {\n type: TYPE.DEFAULT,\n hide: false\n};\n","import React from 'react';\n\nimport { Theme, TypeOptions } from '../types';\nimport { Default } from '../utils';\n\n/**\n * Used when providing custom icon\n */\nexport interface IconProps {\n theme: Theme;\n type: TypeOptions;\n}\n\nexport type BuiltInIconProps = React.SVGProps & IconProps;\n\nconst Svg: React.FC = ({ theme, type, ...rest }) => (\n \n);\n\nfunction Warning(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Info(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Success(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Error(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Spinner() {\n return
;\n}\n\nexport const Icons = {\n info: Info,\n warning: Warning,\n success: Success,\n error: Error,\n spinner: Spinner\n};\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { ProgressBar } from './ProgressBar';\nimport { Icons } from './Icons';\nimport { ToastProps } from '../types';\nimport { Default, isFn, isStr } from '../utils';\nimport { useToast } from '../hooks';\n\nexport const Toast: React.FC = props => {\n const {\n isRunning,\n preventExitTransition,\n toastRef,\n eventHandlers\n } = useToast(props);\n const {\n closeButton,\n children,\n autoClose,\n onClick,\n type,\n hideProgressBar,\n closeToast,\n transition: Transition,\n position,\n className,\n style,\n bodyClassName,\n bodyStyle,\n progressClassName,\n progressStyle,\n updateId,\n role,\n progress,\n rtl,\n toastId,\n deleteToast,\n isIn,\n isLoading,\n icon,\n theme\n } = props;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast`,\n `${Default.CSS_NAMESPACE}__toast-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__toast--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__toast--rtl`]: rtl\n }\n );\n const cssClasses = isFn(className)\n ? className({\n rtl,\n position,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n const isProgressControlled = !!progress;\n const maybeIcon = Icons[type as keyof typeof Icons];\n const iconProps = { theme, type };\n let Icon: React.ReactNode = maybeIcon && maybeIcon(iconProps);\n\n if (icon === false) {\n Icon = void 0;\n } else if (isFn(icon)) {\n Icon = icon(iconProps);\n } else if (React.isValidElement(icon)) {\n Icon = React.cloneElement(icon, iconProps);\n } else if (isStr(icon)) {\n Icon = icon;\n } else if (isLoading) {\n Icon = Icons.spinner();\n }\n\n function renderCloseButton(closeButton: any) {\n if (!closeButton) return;\n\n const props = { closeToast, type, theme };\n\n if (isFn(closeButton)) return closeButton(props);\n\n if (React.isValidElement(closeButton))\n return React.cloneElement(closeButton, props);\n }\n\n return (\n \n \n \n {Icon && (\n \n {Icon}\n
\n )}\n
{children}
\n
\n {renderCloseButton(closeButton)}\n {(autoClose || isProgressControlled) && (\n \n )}\n
\n
\n );\n};\n","import { Default, cssTransition } from '../utils';\n\nconst Bounce = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__bounce-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__bounce-exit`,\n appendPosition: true\n});\n\nconst Slide = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__slide-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__slide-exit`,\n appendPosition: true\n});\n\nconst Zoom = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__zoom-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__zoom-exit`\n});\n\nconst Flip = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__flip-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__flip-exit`\n});\n\nexport { Bounce, Slide, Zoom, Flip };\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { Toast } from './Toast';\nimport { CloseButton } from './CloseButton';\nimport { Bounce } from './Transitions';\nimport { POSITION, Direction, Default, parseClassName, isFn } from '../utils';\nimport { useToastContainer } from '../hooks';\nimport { ToastContainerProps, ToastPosition } from '../types';\n\nexport const ToastContainer: React.FC = props => {\n const { getToastToRender, containerRef, isToastActive } = useToastContainer(\n props\n );\n const { className, style, rtl, containerId } = props;\n\n function getClassName(position: ToastPosition) {\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast-container`,\n `${Default.CSS_NAMESPACE}__toast-container--${position}`,\n { [`${Default.CSS_NAMESPACE}__toast-container--rtl`]: rtl }\n );\n return isFn(className)\n ? className({\n position,\n rtl,\n defaultClassName\n })\n : cx(defaultClassName, parseClassName(className));\n }\n\n return (\n \n {getToastToRender((position, toastList) => {\n const containerStyle: React.CSSProperties =\n toastList.length === 0\n ? { ...style, pointerEvents: 'none' }\n : { ...style };\n\n return (\n \n {toastList.map(({ content, props: toastProps }) => {\n return (\n \n {content}\n \n );\n })}\n
\n );\n })}\n \n );\n};\n\nToastContainer.defaultProps = {\n position: POSITION.TOP_RIGHT as ToastPosition,\n transition: Bounce,\n rtl: false,\n autoClose: 5000,\n hideProgressBar: false,\n closeButton: CloseButton,\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n closeOnClick: true,\n newestOnTop: false,\n draggable: true,\n draggablePercent: Default.DRAGGABLE_PERCENT as number,\n draggableDirection: Direction.X,\n role: 'alert',\n theme: 'light'\n};\n","import * as React from 'react';\nimport { render } from 'react-dom';\n\nimport { POSITION, TYPE, canUseDom, isStr, isNum, isFn } from '../utils';\nimport { eventManager, OnChangeCallback, Event } from './eventManager';\nimport {\n ToastContent,\n ToastOptions,\n ToastProps,\n Id,\n ToastContainerProps,\n UpdateOptions,\n ClearWaitingQueueParams,\n NotValidatedToastProps,\n TypeOptions\n} from '../types';\nimport { ContainerInstance } from '../hooks';\nimport { ToastContainer } from '../components';\n\ninterface EnqueuedToast {\n content: ToastContent;\n options: NotValidatedToastProps;\n}\n\nlet containers = new Map();\nlet latestInstance: ContainerInstance | Id;\nlet containerDomNode: HTMLElement;\nlet containerConfig: ToastContainerProps;\nlet queue: EnqueuedToast[] = [];\nlet lazy = false;\n\n/**\n * Check whether any container is currently mounted in the DOM\n */\nfunction isAnyContainerMounted() {\n return containers.size > 0;\n}\n\n/**\n * Get the toast by id, given it's in the DOM, otherwise returns null\n */\nfunction getToast(toastId: Id, { containerId }: ToastOptions) {\n const container = containers.get(containerId || latestInstance);\n if (!container) return null;\n\n return container.getToast(toastId);\n}\n\n/**\n * Generate a random toastId\n */\nfunction generateToastId() {\n return Math.random()\n .toString(36)\n .substr(2, 9);\n}\n\n/**\n * Generate a toastId or use the one provided\n */\nfunction getToastId(options?: ToastOptions) {\n if (options && (isStr(options.toastId) || isNum(options.toastId))) {\n return options.toastId;\n }\n\n return generateToastId();\n}\n\n/**\n * If the container is not mounted, the toast is enqueued and\n * the container lazy mounted\n */\nfunction dispatchToast(\n content: ToastContent,\n options: NotValidatedToastProps\n): Id {\n if (isAnyContainerMounted()) {\n eventManager.emit(Event.Show, content, options);\n } else {\n queue.push({ content, options });\n if (lazy && canUseDom) {\n lazy = false;\n containerDomNode = document.createElement('div');\n document.body.appendChild(containerDomNode);\n render(, containerDomNode);\n }\n }\n\n return options.toastId;\n}\n\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\nfunction mergeOptions(type: string, options?: ToastOptions) {\n return {\n ...options,\n type: (options && options.type) || type,\n toastId: getToastId(options)\n } as NotValidatedToastProps;\n}\n\nconst createToastByType = (type: string) => (\n content: ToastContent,\n options?: ToastOptions\n) => dispatchToast(content, mergeOptions(type, options));\n\nconst toast = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(content, mergeOptions(TYPE.DEFAULT, options));\n\ntoast.loading = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(\n content,\n mergeOptions(TYPE.DEFAULT, {\n isLoading: true,\n autoClose: false,\n closeOnClick: false,\n closeButton: false,\n draggable: false,\n ...options\n })\n );\n\ninterface ToastPromiseParams {\n pending?: string | UpdateOptions;\n success?: string | UpdateOptions;\n error?: string | UpdateOptions;\n}\n\nfunction handlePromise(\n promise: Promise | (() => Promise),\n { pending, error, success }: ToastPromiseParams,\n options?: ToastOptions\n) {\n let id: Id;\n\n if (pending) {\n id = isStr(pending)\n ? toast.loading(pending, options)\n : toast.loading(pending.render, {\n ...options,\n ...(pending as ToastOptions)\n });\n }\n\n const resetParams = {\n isLoading: null,\n autoClose: null,\n closeOnClick: null,\n closeButton: null,\n draggable: null\n };\n\n const resolver = (\n type: TypeOptions,\n input: string | UpdateOptions,\n result: T\n ) => {\n const baseParams = {\n type,\n ...resetParams,\n ...options,\n data: result\n };\n const params = isStr(input) ? { render: input } : input;\n\n // if the id is set we know that it's an update\n if (id) {\n toast.update(id, {\n ...baseParams,\n ...params\n });\n } else {\n // using toast.promise without loading\n toast(params.render, {\n ...baseParams,\n ...params\n } as ToastOptions);\n }\n\n return result;\n };\n\n const p = isFn(promise) ? promise() : promise;\n\n //call the resolvers only when needed\n p.then(result => success && resolver('success', success, result)).catch(\n err => error && resolver('error', error, err)\n );\n\n return p;\n}\n\ntoast.promise = handlePromise;\ntoast.success = createToastByType(TYPE.SUCCESS);\ntoast.info = createToastByType(TYPE.INFO);\ntoast.error = createToastByType(TYPE.ERROR);\ntoast.warning = createToastByType(TYPE.WARNING);\ntoast.warn = toast.warning;\ntoast.dark = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(\n content,\n mergeOptions(TYPE.DEFAULT, {\n theme: 'dark',\n ...options\n })\n );\n\n/**\n * Remove toast programmaticaly\n */\ntoast.dismiss = (id?: Id) => eventManager.emit(Event.Clear, id);\n\n/**\n * Clear waiting queue when limit is used\n */\ntoast.clearWaitingQueue = (params: ClearWaitingQueueParams = {}) =>\n eventManager.emit(Event.ClearWaitingQueue, params);\n\n/**\n * return true if one container is displaying the toast\n */\ntoast.isActive = (id: Id) => {\n let isToastActive = false;\n\n containers.forEach(container => {\n if (container.isToastActive && container.isToastActive(id)) {\n isToastActive = true;\n }\n });\n\n return isToastActive;\n};\n\ntoast.update = (toastId: Id, options: UpdateOptions = {}) => {\n // if you call toast and toast.update directly nothing will be displayed\n // this is why I defered the update\n setTimeout(() => {\n const toast = getToast(toastId, options as ToastOptions);\n if (toast) {\n const { props: oldOptions, content: oldContent } = toast;\n\n const nextOptions = {\n ...oldOptions,\n ...options,\n toastId: options.toastId || toastId,\n updateId: generateToastId()\n } as ToastProps & UpdateOptions;\n\n if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;\n\n const content = nextOptions.render || oldContent;\n delete nextOptions.render;\n\n dispatchToast(content, nextOptions);\n }\n }, 0);\n};\n\n/**\n * Used for controlled progress bar.\n */\ntoast.done = (id: Id) => {\n toast.update(id, {\n progress: 1\n });\n};\n\n/**\n * Track changes. The callback get the number of toast displayed\n *\n */\ntoast.onChange = (callback: OnChangeCallback) => {\n if (isFn(callback)) {\n eventManager.on(Event.Change, callback);\n }\n return () => {\n isFn(callback) && eventManager.off(Event.Change, callback);\n };\n};\n\n/**\n * Configure the ToastContainer when lazy mounted\n */\ntoast.configure = (config: ToastContainerProps = {}) => {\n lazy = true;\n containerConfig = config;\n};\n\ntoast.POSITION = POSITION;\ntoast.TYPE = TYPE;\n\n/**\n * Wait until the ToastContainer is mounted to dispatch the toast\n * and attach isActive method\n */\neventManager\n .on(Event.DidMount, (containerInstance: ContainerInstance) => {\n latestInstance = containerInstance.containerId || containerInstance;\n containers.set(latestInstance, containerInstance);\n\n queue.forEach(item => {\n eventManager.emit(Event.Show, item.content, item.options);\n });\n\n queue = [];\n })\n .on(Event.WillUnmount, (containerInstance: ContainerInstance) => {\n containers.delete(containerInstance.containerId || containerInstance);\n\n if (containers.size === 0) {\n eventManager\n .off(Event.Show)\n .off(Event.Clear)\n .off(Event.ClearWaitingQueue);\n }\n\n if (canUseDom && containerDomNode) {\n document.body.removeChild(containerDomNode);\n }\n });\n\nexport { toast };\n","import { toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport SignalWifiConnectedNoInternet4Icon from '@mui/icons-material/SignalWifiConnectedNoInternet4';\nimport DownloadingIcon from '@mui/icons-material/Downloading';\nimport UpdateIcon from '@mui/icons-material/Update';\n\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n // Check for updates at start.\n registration.update();\n // Check for updates every 5 min.\n setInterval(() => {\n registration.update();\n console.debug(\"Checked for update...\");\n\n /* toast.info(`8 min interval Toast for testing`, {\n toastId: \"TestToast\", // Prevent duplicate toasts\n onClick: () => window.close(), // Closes windows on click\n }); */\n }, (1000 * 20) * 5);\n\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n toast.info(`Update available! Click this or refresh any open tab.`, {\n toastId: \"appUpdateAvailable\", // Prevent duplicate toasts\n onClick: () => registration.waiting.postMessage({ type: 'SKIP_WAITING' }), // Closes windows on click\n autoClose: false, // Prevents toast from auto closing\n icon: () => \n });\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n toast.info(`Content is cached for offline use.`, {\n toastId: \"OfflineCacheReady\", // Prevent duplicate toasts\n onClick: () => window.close(), // Closes windows on click\n icon: () => \n });\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n toast.error(`Error during service worker registration`, {\n toastId: \"SW registration error\", // Prevent duplicate toasts\n onClick: () => window.close(), // Closes windows on click\n });\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n toast.warn(`No internet connection found. App is running in offline mode.`, {\n toastId: \"OfflineToastNotification\", // Prevent duplicate toasts\n onClick: () => window.close(), // Closes windows on click\n autoClose: false, // Prevents toast from auto closing\n icon: () => \n });\n\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import * as React from \"react\";\nimport type {\n History,\n InitialEntry,\n Location,\n MemoryHistory,\n Path,\n To\n} from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath\n} from \"history\";\n\nexport type { Location, Path, To, NavigationType };\n\nfunction invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nfunction warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// CONTEXT\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nconst NavigationContext = React.createContext(null!);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nconst LocationContext = React.createContext(null!);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nconst RouteContext = React.createContext({\n outlet: null,\n matches: []\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n///////////////////////////////////////////////////////////////////////////////\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// HOOKS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\ntype ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map(match => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map(match => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map(match =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase])\n })\n ),\n parentMatches\n );\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, element => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, _ =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map(meta => meta.childrenIndex),\n b.routesMeta.map(meta => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter(s => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: joinPaths([matchedPathname, match.pathnameBase]),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n\nfunction _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n }\n value={{\n outlet,\n matches: parentMatches.concat(matches.slice(0, index + 1))\n }}\n />\n );\n }, null as React.ReactElement | null);\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n \"(?:\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nfunction getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nfunction stripBasename(pathname: string, basename: string): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nconst joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nconst normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n NavigationContext as UNSAFE_NavigationContext,\n LocationContext as UNSAFE_LocationContext,\n RouteContext as UNSAFE_RouteContext\n};\n","import * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory, createPath } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext\n};\n\nexport type {\n Location,\n Path,\n To,\n NavigationType,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n RoutesProps\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\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\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\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\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}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils';\nimport { propToStyleFunction } from '../getThemeValue';\n\nconst splitProps = props => {\n const result = {\n systemProps: {},\n otherProps: {}\n };\n Object.keys(props).forEach(prop => {\n if (propToStyleFunction[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\n\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n\n if (!isPlainObject(result)) {\n return systemProps;\n }\n\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst GridContext = /*#__PURE__*/React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n GridContext.displayName = 'GridContext';\n}\n\nexport default GridContext;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getGridUtilityClass(slot) {\n return generateUtilityClass('MuiGrid', slot);\n}\nconst SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst DIRECTIONS = ['column-reverse', 'column', 'row-reverse', 'row'];\nconst WRAPS = ['nowrap', 'wrap-reverse', 'wrap'];\nconst GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\nconst gridClasses = generateUtilityClasses('MuiGrid', ['root', 'container', 'item', 'zeroMinWidth', // spacings\n...SPACINGS.map(spacing => `spacing-xs-${spacing}`), // direction values\n...DIRECTIONS.map(direction => `direction-xs-${direction}`), // wrap values\n...WRAPS.map(wrap => `wrap-xs-${wrap}`), // grid sizes for all breakpoints\n...GRID_SIZES.map(size => `grid-xs-${size}`), ...GRID_SIZES.map(size => `grid-sm-${size}`), ...GRID_SIZES.map(size => `grid-md-${size}`), ...GRID_SIZES.map(size => `grid-lg-${size}`), ...GRID_SIZES.map(size => `grid-xl-${size}`)]);\nexport default gridClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"columns\", \"columnSpacing\", \"component\", \"container\", \"direction\", \"item\", \"lg\", \"md\", \"rowSpacing\", \"sm\", \"spacing\", \"wrap\", \"xl\", \"xs\", \"zeroMinWidth\"];\n// A grid component using the following libs as inspiration.\n//\n// For the implementation:\n// - https://getbootstrap.com/docs/4.3/layout/grid/\n// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css\n// - https://github.com/roylee0704/react-flexbox-grid\n// - https://material.angularjs.org/latest/layout/introduction\n//\n// Follow this flexbox Guide to better understand the underlying model:\n// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_extendSxProp as extendSxProp, handleBreakpoints, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport requirePropFactory from '../utils/requirePropFactory';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport GridContext from './GridContext';\nimport gridClasses, { getGridUtilityClass } from './gridClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction getOffset(val) {\n const parse = parseFloat(val);\n return `${parse}${String(val).replace(String(parse), '') || 'px'}`;\n}\n\nexport function generateGrid({\n theme,\n ownerState\n}) {\n let size;\n return theme.breakpoints.keys.reduce((globalStyles, breakpoint) => {\n // Use side effect over immutability for better performance.\n let styles = {};\n\n if (ownerState[breakpoint]) {\n size = ownerState[breakpoint];\n }\n\n if (!size) {\n return globalStyles;\n }\n\n if (size === true) {\n // For the auto layouting\n styles = {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: '100%'\n };\n } else if (size === 'auto') {\n styles = {\n flexBasis: 'auto',\n flexGrow: 0,\n flexShrink: 0,\n maxWidth: 'none',\n width: 'auto'\n };\n } else {\n const columnsBreakpointValues = resolveBreakpointValues({\n values: ownerState.columns,\n breakpoints: theme.breakpoints.values\n });\n const columnValue = typeof columnsBreakpointValues === 'object' ? columnsBreakpointValues[breakpoint] : columnsBreakpointValues;\n\n if (columnValue === undefined || columnValue === null) {\n return globalStyles;\n } // Keep 7 significant numbers.\n\n\n const width = `${Math.round(size / columnValue * 10e7) / 10e5}%`;\n let more = {};\n\n if (ownerState.container && ownerState.item && ownerState.columnSpacing !== 0) {\n const themeSpacing = theme.spacing(ownerState.columnSpacing);\n\n if (themeSpacing !== '0px') {\n const fullWidth = `calc(${width} + ${getOffset(themeSpacing)})`;\n more = {\n flexBasis: fullWidth,\n maxWidth: fullWidth\n };\n }\n } // Close to the bootstrap implementation:\n // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41\n\n\n styles = _extends({\n flexBasis: width,\n flexGrow: 0,\n maxWidth: width\n }, more);\n } // No need for a media query for the first size.\n\n\n if (theme.breakpoints.values[breakpoint] === 0) {\n Object.assign(globalStyles, styles);\n } else {\n globalStyles[theme.breakpoints.up(breakpoint)] = styles;\n }\n\n return globalStyles;\n }, {});\n}\nexport function generateDirection({\n theme,\n ownerState\n}) {\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n });\n return handleBreakpoints({\n theme\n }, directionValues, propValue => {\n const output = {\n flexDirection: propValue\n };\n\n if (propValue.indexOf('column') === 0) {\n output[`& > .${gridClasses.item}`] = {\n maxWidth: 'none'\n };\n }\n\n return output;\n });\n}\nexport function generateRowGap({\n theme,\n ownerState\n}) {\n const {\n container,\n rowSpacing\n } = ownerState;\n let styles = {};\n\n if (container && rowSpacing !== 0) {\n const rowSpacingValues = resolveBreakpointValues({\n values: rowSpacing,\n breakpoints: theme.breakpoints.values\n });\n styles = handleBreakpoints({\n theme\n }, rowSpacingValues, propValue => {\n const themeSpacing = theme.spacing(propValue);\n\n if (themeSpacing !== '0px') {\n return {\n marginTop: `-${getOffset(themeSpacing)}`,\n [`& > .${gridClasses.item}`]: {\n paddingTop: getOffset(themeSpacing)\n }\n };\n }\n\n return {};\n });\n }\n\n return styles;\n}\nexport function generateColumnGap({\n theme,\n ownerState\n}) {\n const {\n container,\n columnSpacing\n } = ownerState;\n let styles = {};\n\n if (container && columnSpacing !== 0) {\n const columnSpacingValues = resolveBreakpointValues({\n values: columnSpacing,\n breakpoints: theme.breakpoints.values\n });\n styles = handleBreakpoints({\n theme\n }, columnSpacingValues, propValue => {\n const themeSpacing = theme.spacing(propValue);\n\n if (themeSpacing !== '0px') {\n return {\n width: `calc(100% + ${getOffset(themeSpacing)})`,\n marginLeft: `-${getOffset(themeSpacing)}`,\n [`& > .${gridClasses.item}`]: {\n paddingLeft: getOffset(themeSpacing)\n }\n };\n }\n\n return {};\n });\n }\n\n return styles;\n}\nexport function resolveSpacingClasses(spacing, container, styles = {}) {\n // in case of grid item or undefined/null or `spacing` <= 0\n if (!container || !spacing || spacing <= 0) {\n return [];\n } // in case of string/number `spacing`\n\n\n if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {\n return [styles[`spacing-xs-${String(spacing)}`] || `spacing-xs-${String(spacing)}`];\n } // in case of object `spacing`\n\n\n const {\n xs,\n sm,\n md,\n lg,\n xl\n } = spacing;\n return [Number(xs) > 0 && (styles[`spacing-xs-${String(xs)}`] || `spacing-xs-${String(xs)}`), Number(sm) > 0 && (styles[`spacing-sm-${String(sm)}`] || `spacing-sm-${String(sm)}`), Number(md) > 0 && (styles[`spacing-md-${String(md)}`] || `spacing-md-${String(md)}`), Number(lg) > 0 && (styles[`spacing-lg-${String(lg)}`] || `spacing-lg-${String(lg)}`), Number(xl) > 0 && (styles[`spacing-xl-${String(xl)}`] || `spacing-xl-${String(xl)}`)];\n} // Default CSS values\n// flex: '0 1 auto',\n// flexDirection: 'row',\n// alignItems: 'flex-start',\n// flexWrap: 'nowrap',\n// justifyContent: 'flex-start',\n\nconst GridRoot = styled('div', {\n name: 'MuiGrid',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n container,\n direction,\n item,\n lg,\n md,\n sm,\n spacing,\n wrap,\n xl,\n xs,\n zeroMinWidth\n } = props.ownerState;\n return [styles.root, container && styles.container, item && styles.item, zeroMinWidth && styles.zeroMinWidth, ...resolveSpacingClasses(spacing, container, styles), direction !== 'row' && styles[`direction-xs-${String(direction)}`], wrap !== 'wrap' && styles[`wrap-xs-${String(wrap)}`], xs !== false && styles[`grid-xs-${String(xs)}`], sm !== false && styles[`grid-sm-${String(sm)}`], md !== false && styles[`grid-md-${String(md)}`], lg !== false && styles[`grid-lg-${String(lg)}`], xl !== false && styles[`grid-xl-${String(xl)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n boxSizing: 'border-box'\n}, ownerState.container && {\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%'\n}, ownerState.item && {\n margin: 0 // For instance, it's useful when used with a `figure` element.\n\n}, ownerState.zeroMinWidth && {\n minWidth: 0\n}, ownerState.wrap !== 'wrap' && {\n flexWrap: ownerState.wrap\n}), generateDirection, generateRowGap, generateColumnGap, generateGrid);\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n container,\n direction,\n item,\n lg,\n md,\n sm,\n spacing,\n wrap,\n xl,\n xs,\n zeroMinWidth\n } = ownerState;\n const slots = {\n root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...resolveSpacingClasses(spacing, container), direction !== 'row' && `direction-xs-${String(direction)}`, wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, xs !== false && `grid-xs-${String(xs)}`, sm !== false && `grid-sm-${String(sm)}`, md !== false && `grid-md-${String(md)}`, lg !== false && `grid-lg-${String(lg)}`, xl !== false && `grid-xl-${String(xl)}`]\n };\n return composeClasses(slots, getGridUtilityClass, classes);\n};\n\nconst Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiGrid'\n });\n const props = extendSxProp(themeProps);\n\n const {\n className,\n columns: columnsProp,\n columnSpacing: columnSpacingProp,\n component = 'div',\n container = false,\n direction = 'row',\n item = false,\n lg = false,\n md = false,\n rowSpacing: rowSpacingProp,\n sm = false,\n spacing = 0,\n wrap = 'wrap',\n xl = false,\n xs = false,\n zeroMinWidth = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const rowSpacing = rowSpacingProp || spacing;\n const columnSpacing = columnSpacingProp || spacing;\n const columnsContext = React.useContext(GridContext); // columns set with default breakpoint unit of 12\n\n const columns = container ? columnsProp || 12 : columnsContext;\n\n const ownerState = _extends({}, props, {\n columns,\n container,\n direction,\n item,\n lg,\n md,\n sm,\n rowSpacing,\n columnSpacing,\n wrap,\n xl,\n xs,\n zeroMinWidth\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(GridContext.Provider, {\n value: columns,\n children: /*#__PURE__*/_jsx(GridRoot, _extends({\n ownerState: ownerState,\n className: clsx(classes.root, className),\n as: component,\n ref: ref\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grid.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 number of columns.\n * @default 12\n */\n columns: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number, PropTypes.object]),\n\n /**\n * Defines the horizontal space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n columnSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, 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 * If `true`, the component will have the flex *container* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n container: PropTypes.bool,\n\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'row'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n\n /**\n * If `true`, the component will have the flex *item* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n item: PropTypes.bool,\n\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `lg` breakpoint and wider screens if not overridden.\n * @default false\n */\n lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `md` breakpoint and wider screens if not overridden.\n * @default false\n */\n md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n\n /**\n * Defines the vertical space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n rowSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `sm` breakpoint and wider screens if not overridden.\n * @default false\n */\n sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n\n /**\n * Defines the space between the type `item` components.\n * It can only be used on a type `container` component.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, 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 * Defines the `flex-wrap` style property.\n * It's applied for all screen sizes.\n * @default 'wrap'\n */\n wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']),\n\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `xl` breakpoint and wider screens if not overridden.\n * @default false\n */\n xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for all the screen sizes with the lowest priority.\n * @default false\n */\n xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n\n /**\n * If `true`, it sets `min-width: 0` on the item.\n * Refer to the limitations section of the documentation to better understand the use case.\n * @default false\n */\n zeroMinWidth: PropTypes.bool\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n const requireProp = requirePropFactory('Grid', Grid); // eslint-disable-next-line no-useless-concat\n\n Grid['propTypes' + ''] = _extends({}, Grid.propTypes, {\n direction: requireProp('container'),\n lg: requireProp('item'),\n md: requireProp('item'),\n sm: requireProp('item'),\n spacing: requireProp('container'),\n wrap: requireProp('container'),\n xs: requireProp('item'),\n zeroMinWidth: requireProp('item')\n });\n}\n\nexport default Grid;","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 getTypographyUtilityClass(slot) {\n return generateUtilityClass('MuiTypography', slot);\n}\nconst typographyClasses = generateUtilityClasses('MuiTypography', ['root', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'inherit', 'button', 'caption', 'overline', 'alignLeft', 'alignRight', 'alignCenter', 'alignJustify', 'noWrap', 'gutterBottom', 'paragraph']);\nexport default typographyClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"align\", \"className\", \"component\", \"gutterBottom\", \"noWrap\", \"paragraph\", \"variant\", \"variantMapping\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_extendSxProp as extendSxProp } from '@mui/system';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport { getTypographyUtilityClass } from './typographyClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n align,\n gutterBottom,\n noWrap,\n paragraph,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, ownerState.align !== 'inherit' && `align${capitalize(align)}`, gutterBottom && 'gutterBottom', noWrap && 'noWrap', paragraph && 'paragraph']\n };\n return composeClasses(slots, getTypographyUtilityClass, classes);\n};\n\nexport const TypographyRoot = styled('span', {\n name: 'MuiTypography',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.variant && styles[ownerState.variant], ownerState.align !== 'inherit' && styles[`align${capitalize(ownerState.align)}`], ownerState.noWrap && styles.noWrap, ownerState.gutterBottom && styles.gutterBottom, ownerState.paragraph && styles.paragraph];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 0\n}, ownerState.variant && theme.typography[ownerState.variant], ownerState.align !== 'inherit' && {\n textAlign: ownerState.align\n}, ownerState.noWrap && {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n}, ownerState.gutterBottom && {\n marginBottom: '0.35em'\n}, ownerState.paragraph && {\n marginBottom: 16\n}));\nconst defaultVariantMapping = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n inherit: 'p'\n}; // TODO v6: deprecate these color values in v5.x and remove the transformation in v6\n\nconst colorTransformations = {\n primary: 'primary.main',\n textPrimary: 'text.primary',\n secondary: 'secondary.main',\n textSecondary: 'text.secondary',\n error: 'error.main'\n};\n\nconst transformDeprecatedColors = color => {\n return colorTransformations[color] || color;\n};\n\nconst Typography = /*#__PURE__*/React.forwardRef(function Typography(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiTypography'\n });\n const color = transformDeprecatedColors(themeProps.color);\n const props = extendSxProp(_extends({}, themeProps, {\n color\n }));\n\n const {\n align = 'inherit',\n className,\n component,\n gutterBottom = false,\n noWrap = false,\n paragraph = false,\n variant = 'body1',\n variantMapping = defaultVariantMapping\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n align,\n color,\n className,\n component,\n gutterBottom,\n noWrap,\n paragraph,\n variant,\n variantMapping\n });\n\n const Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TypographyRoot, _extends({\n as: Component,\n ref: ref,\n ownerState: ownerState,\n className: clsx(classes.root, className)\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Typography.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 * Set the text-align on the component.\n * @default 'inherit'\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\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 * If `true`, the text will have a bottom margin.\n * @default false\n */\n gutterBottom: PropTypes.bool,\n\n /**\n * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n *\n * Note that text overflow can only happen with block or inline-block level elements\n * (the element needs to have a width in order to overflow).\n * @default false\n */\n noWrap: PropTypes.bool,\n\n /**\n * If `true`, the element will be a paragraph element.\n * @default false\n */\n paragraph: 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 * Applies the theme typography styles.\n * @default 'body1'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string]),\n\n /**\n * The component maps the variant prop to a range of different HTML element types.\n * For instance, subtitle1 to `
`.\n * If you wish to change that mapping, you can provide your own.\n * Alternatively, you can use the `component` prop.\n * @default {\n * h1: 'h1',\n * h2: 'h2',\n * h3: 'h3',\n * h4: 'h4',\n * h5: 'h5',\n * h6: 'h6',\n * subtitle1: 'h6',\n * subtitle2: 'h6',\n * body1: 'p',\n * body2: 'p',\n * inherit: 'p',\n * }\n */\n variantMapping: PropTypes\n /* @typescript-to-proptypes-ignore */\n .object\n} : void 0;\nexport default Typography;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDividerUtilityClass(slot) {\n return generateUtilityClass('MuiDivider', slot);\n}\nconst dividerClasses = generateUtilityClasses('MuiDivider', ['root', 'absolute', 'fullWidth', 'inset', 'middle', 'flexItem', 'light', 'vertical', 'withChildren', 'withChildrenVertical', 'textAlignRight', 'textAlignLeft', 'wrapper', 'wrapperVertical']);\nexport default dividerClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"absolute\", \"children\", \"className\", \"component\", \"flexItem\", \"light\", \"orientation\", \"role\", \"textAlign\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDividerUtilityClass } from './dividerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n absolute,\n children,\n classes,\n flexItem,\n light,\n orientation,\n textAlign,\n variant\n } = ownerState;\n const slots = {\n root: ['root', absolute && 'absolute', variant, light && 'light', orientation === 'vertical' && 'vertical', flexItem && 'flexItem', children && 'withChildren', children && orientation === 'vertical' && 'withChildrenVertical', textAlign === 'right' && orientation !== 'vertical' && 'textAlignRight', textAlign === 'left' && orientation !== 'vertical' && 'textAlignLeft'],\n wrapper: ['wrapper', orientation === 'vertical' && 'wrapperVertical']\n };\n return composeClasses(slots, getDividerUtilityClass, classes);\n};\n\nconst DividerRoot = styled('div', {\n name: 'MuiDivider',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.absolute && styles.absolute, styles[ownerState.variant], ownerState.light && styles.light, ownerState.orientation === 'vertical' && styles.vertical, ownerState.flexItem && styles.flexItem, ownerState.children && styles.withChildren, ownerState.children && ownerState.orientation === 'vertical' && styles.withChildrenVertical, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && styles.textAlignRight, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && styles.textAlignLeft];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 0,\n // Reset browser default style.\n flexShrink: 0,\n borderWidth: 0,\n borderStyle: 'solid',\n borderColor: theme.palette.divider,\n borderBottomWidth: 'thin'\n}, ownerState.absolute && {\n position: 'absolute',\n bottom: 0,\n left: 0,\n width: '100%'\n}, ownerState.light && {\n borderColor: alpha(theme.palette.divider, 0.08)\n}, ownerState.variant === 'inset' && {\n marginLeft: 72\n}, ownerState.variant === 'middle' && ownerState.orientation === 'horizontal' && {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n}, ownerState.variant === 'middle' && ownerState.orientation === 'vertical' && {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n}, ownerState.orientation === 'vertical' && {\n height: '100%',\n borderBottomWidth: 0,\n borderRightWidth: 'thin'\n}, ownerState.flexItem && {\n alignSelf: 'stretch',\n height: 'auto'\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.children && {\n display: 'flex',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n border: 0,\n '&::before, &::after': {\n position: 'relative',\n width: '100%',\n borderTop: `thin solid ${theme.palette.divider}`,\n top: '50%',\n content: '\"\"',\n transform: 'translateY(50%)'\n }\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.children && ownerState.orientation === 'vertical' && {\n flexDirection: 'column',\n '&::before, &::after': {\n height: '100%',\n top: '0%',\n left: '50%',\n borderTop: 0,\n borderLeft: `thin solid ${theme.palette.divider}`,\n transform: 'translateX(0%)'\n }\n}), ({\n ownerState\n}) => _extends({}, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && {\n '&::before': {\n width: '90%'\n },\n '&::after': {\n width: '10%'\n }\n}, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && {\n '&::before': {\n width: '10%'\n },\n '&::after': {\n width: '90%'\n }\n}));\nconst DividerWrapper = styled('span', {\n name: 'MuiDivider',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.wrapper, ownerState.orientation === 'vertical' && styles.wrapperVertical];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'inline-block',\n paddingLeft: `calc(${theme.spacing(1)} * 1.2)`,\n paddingRight: `calc(${theme.spacing(1)} * 1.2)`\n}, ownerState.orientation === 'vertical' && {\n paddingTop: `calc(${theme.spacing(1)} * 1.2)`,\n paddingBottom: `calc(${theme.spacing(1)} * 1.2)`\n}));\nconst Divider = /*#__PURE__*/React.forwardRef(function Divider(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDivider'\n });\n\n const {\n absolute = false,\n children,\n className,\n component = children ? 'div' : 'hr',\n flexItem = false,\n light = false,\n orientation = 'horizontal',\n role = component !== 'hr' ? 'separator' : undefined,\n textAlign = 'center',\n variant = 'fullWidth'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n absolute,\n component,\n flexItem,\n light,\n orientation,\n role,\n textAlign,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DividerRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n role: role,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: children ? /*#__PURE__*/_jsx(DividerWrapper, {\n className: classes.wrapper,\n ownerState: ownerState,\n children: children\n }) : null\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Divider.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 * Absolutely position the element.\n * @default false\n */\n absolute: PropTypes.bool,\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 * If `true`, a vertical divider will have the correct height when used in flex container.\n * (By default, a vertical divider will have a calculated height of `0px` if it is the child of a flex container.)\n * @default false\n */\n flexItem: PropTypes.bool,\n\n /**\n * If `true`, the divider will have a lighter color.\n * @default false\n */\n light: PropTypes.bool,\n\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * @ignore\n */\n role: PropTypes\n /* @typescript-to-proptypes-ignore */\n .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 * The text alignment.\n * @default 'center'\n */\n textAlign: PropTypes.oneOf(['center', 'left', 'right']),\n\n /**\n * The variant to use.\n * @default 'fullWidth'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['fullWidth', 'inset', 'middle']), PropTypes.string])\n} : void 0;\nexport default Divider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"maxRows\", \"minRows\", \"style\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_debounce as debounce, unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_ownerWindow as ownerWindow } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nfunction getStyleValue(computedStyle, property) {\n return parseInt(computedStyle[property], 10) || 0;\n}\n\nconst styles = {\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nconst TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, ref) {\n const {\n onChange,\n maxRows,\n minRows = 1,\n style,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef(null);\n const handleRef = useForkRef(ref, inputRef);\n const shadowRef = React.useRef(null);\n const renders = React.useRef(0);\n const [state, setState] = React.useState({});\n const syncHeight = React.useCallback(() => {\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n const computedStyle = containerWindow.getComputedStyle(input); // If input's width is shrunk and it's not visible, don't sync height.\n\n if (computedStyle.width === '0px') {\n return;\n }\n\n const inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n\n const boxSizing = computedStyle['box-sizing'];\n const padding = getStyleValue(computedStyle, 'padding-bottom') + getStyleValue(computedStyle, 'padding-top');\n const border = getStyleValue(computedStyle, 'border-bottom-width') + getStyleValue(computedStyle, 'border-top-width'); // The height of the inner content\n\n const innerHeight = inputShallow.scrollHeight; // Measure height of a textarea with a single row\n\n inputShallow.value = 'x';\n const singleRowHeight = inputShallow.scrollHeight; // The height of the outer content\n\n let outerHeight = innerHeight;\n\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n\n outerHeight = Math.max(outerHeight, singleRowHeight); // Take the box sizing into account for applying this value as a style.\n\n const outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n const overflow = Math.abs(outerHeight - innerHeight) <= 1;\n setState(prevState => {\n // Need a large enough difference to update the height.\n // This prevents infinite rendering loop.\n if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {\n renders.current += 1;\n return {\n overflow,\n outerHeightStyle\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (renders.current === 20) {\n console.error(['MUI: Too many re-renders. The layout is unstable.', 'TextareaAutosize limits the number of renders to prevent an infinite loop.'].join('\\n'));\n }\n }\n\n return prevState;\n });\n }, [maxRows, minRows, props.placeholder]);\n React.useEffect(() => {\n const handleResize = debounce(() => {\n renders.current = 0;\n syncHeight();\n });\n const containerWindow = ownerWindow(inputRef.current);\n containerWindow.addEventListener('resize', handleResize);\n let resizeObserver;\n\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize);\n resizeObserver.observe(inputRef.current);\n }\n\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [syncHeight]);\n useEnhancedEffect(() => {\n syncHeight();\n });\n React.useEffect(() => {\n renders.current = 0;\n }, [value]);\n\n const handleChange = event => {\n renders.current = 0;\n\n if (!isControlled) {\n syncHeight();\n }\n\n if (onChange) {\n onChange(event);\n }\n };\n\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: _extends({\n height: state.outerHeightStyle,\n // Need a large enough difference to allow scrolling.\n // This prevents infinite rendering loop.\n overflow: state.overflow ? 'hidden' : null\n }, style)\n }, other)), /*#__PURE__*/_jsx(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style, {\n padding: 0\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.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 * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Maximum number of rows to display.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Minimum number of rows to display.\n * @default 1\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport default TextareaAutosize;","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\n\nexport default isHostComponent;","export default function formControlState({\n props,\n states,\n muiFormControl\n}) {\n return states.reduce((acc, state) => {\n acc[state] = props[state];\n\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n\n return acc;\n }, {});\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst FormControlContext = /*#__PURE__*/React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\n\nexport default FormControlContext;","import * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","import { createElement, useContext, useRef, useLayoutEffect, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-699e6908.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-699e6908.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, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.7.1\",\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: \"mitchellhamilton \",\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/cache\": \"^11.7.1\",\n\t\t\"@emotion/serialize\": \"^1.0.2\",\n\t\t\"@emotion/sheet\": \"^1.1.0\",\n\t\t\"@emotion/utils\": \"^1.0.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.7.1\",\n\t\t\"@emotion/css-prettifier\": \"1.0.1\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.6.0\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^0.3.0\",\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},\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 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 useLayoutEffect(function () {\n var key = cache.key + \"-global\";\n var sheet = new StyleSheet({\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 useLayoutEffect(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 Noop = function Noop() {\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\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\n {\n insertStyles(cache, serialized, false);\n }\n\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 var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, 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","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\n\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as SystemGlobalStyles } from '@mui/system';\nimport defaultTheme from '../styles/defaultTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction GlobalStyles(props) {\n return /*#__PURE__*/_jsx(SystemGlobalStyles, _extends({}, props, {\n defaultTheme: defaultTheme\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.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 styles you want to apply globally.\n */\n styles: PropTypes.oneOfType([PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.shape({\n __emotion_styles: PropTypes.any.isRequired\n }), PropTypes.string, PropTypes.bool])\n} : void 0;\nexport default GlobalStyles;","// Supports determination of isControlled().\n// Controlled input accepts its current value as a prop.\n//\n// @see https://facebook.github.io/react/docs/forms.html#controlled-components\n// @param value\n// @returns {boolean} true if string (including '') or number (including zero)\nexport function hasValue(value) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n} // Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\n\nexport function isFilled(obj, SSR = false) {\n return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');\n} // Determine if an Input is adorned on start.\n// It's corresponding to the left with LTR.\n//\n// @param obj\n// @returns {boolean} False when no adornments.\n// True when adorned at the start.\n\nexport function isAdornedStart(obj) {\n return obj.startAdornment;\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputBaseUtilityClass(slot) {\n return generateUtilityClass('MuiInputBase', slot);\n}\nconst inputBaseClasses = generateUtilityClasses('MuiInputBase', ['root', 'formControl', 'focused', 'disabled', 'adornedStart', 'adornedEnd', 'error', 'sizeSmall', 'multiline', 'colorSecondary', 'fullWidth', 'hiddenLabel', 'input', 'inputSizeSmall', 'inputMultiline', 'inputTypeSearch', 'inputAdornedStart', 'inputAdornedEnd', 'inputHiddenLabel']);\nexport default inputBaseClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"aria-describedby\", \"autoComplete\", \"autoFocus\", \"className\", \"color\", \"components\", \"componentsProps\", \"defaultValue\", \"disabled\", \"disableInjectingGlobalStyles\", \"endAdornment\", \"error\", \"fullWidth\", \"id\", \"inputComponent\", \"inputProps\", \"inputRef\", \"margin\", \"maxRows\", \"minRows\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"placeholder\", \"readOnly\", \"renderSuffix\", \"rows\", \"size\", \"startAdornment\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType, elementTypeAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, isHostComponent, TextareaAutosize } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport GlobalStyles from '../GlobalStyles';\nimport { isFilled } from './utils';\nimport inputBaseClasses, { getInputBaseUtilityClass } from './inputBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const rootOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.formControl && styles.formControl, ownerState.startAdornment && styles.adornedStart, ownerState.endAdornment && styles.adornedEnd, ownerState.error && styles.error, ownerState.size === 'small' && styles.sizeSmall, ownerState.multiline && styles.multiline, ownerState.color && styles[`color${capitalize(ownerState.color)}`], ownerState.fullWidth && styles.fullWidth, ownerState.hiddenLabel && styles.hiddenLabel];\n};\nexport const inputOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.input, ownerState.size === 'small' && styles.inputSizeSmall, ownerState.multiline && styles.inputMultiline, ownerState.type === 'search' && styles.inputTypeSearch, ownerState.startAdornment && styles.inputAdornedStart, ownerState.endAdornment && styles.inputAdornedEnd, ownerState.hiddenLabel && styles.inputHiddenLabel];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disabled,\n error,\n endAdornment,\n focused,\n formControl,\n fullWidth,\n hiddenLabel,\n multiline,\n size,\n startAdornment,\n type\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', focused && 'focused', formControl && 'formControl', size === 'small' && 'sizeSmall', multiline && 'multiline', startAdornment && 'adornedStart', endAdornment && 'adornedEnd', hiddenLabel && 'hiddenLabel'],\n input: ['input', disabled && 'disabled', type === 'search' && 'inputTypeSearch', multiline && 'inputMultiline', size === 'small' && 'inputSizeSmall', hiddenLabel && 'inputHiddenLabel', startAdornment && 'inputAdornedStart', endAdornment && 'inputAdornedEnd']\n };\n return composeClasses(slots, getInputBaseUtilityClass, classes);\n};\n\nexport const InputBaseRoot = styled('div', {\n name: 'MuiInputBase',\n slot: 'Root',\n overridesResolver: rootOverridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.body1, {\n color: theme.palette.text.primary,\n lineHeight: '1.4375em',\n // 23px\n boxSizing: 'border-box',\n // Prevent padding issue with fullWidth.\n position: 'relative',\n cursor: 'text',\n display: 'inline-flex',\n alignItems: 'center',\n [`&.${inputBaseClasses.disabled}`]: {\n color: theme.palette.text.disabled,\n cursor: 'default'\n }\n}, ownerState.multiline && _extends({\n padding: '4px 0 5px'\n}, ownerState.size === 'small' && {\n paddingTop: 1\n}), ownerState.fullWidth && {\n width: '100%'\n}));\nexport const InputBaseComponent = styled('input', {\n name: 'MuiInputBase',\n slot: 'Input',\n overridesResolver: inputOverridesResolver\n})(({\n theme,\n ownerState\n}) => {\n const light = theme.palette.mode === 'light';\n const placeholder = {\n color: 'currentColor',\n opacity: light ? 0.42 : 0.5,\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.shorter\n })\n };\n const placeholderHidden = {\n opacity: '0 !important'\n };\n const placeholderVisible = {\n opacity: light ? 0.42 : 0.5\n };\n return _extends({\n font: 'inherit',\n letterSpacing: 'inherit',\n color: 'currentColor',\n padding: '4px 0 5px',\n border: 0,\n boxSizing: 'content-box',\n background: 'none',\n height: '1.4375em',\n // Reset 23pxthe native input line-height\n margin: 0,\n // Reset for Safari\n WebkitTapHighlightColor: 'transparent',\n display: 'block',\n // Make the flex item shrink with Firefox\n minWidth: 0,\n width: '100%',\n // Fix IE11 width issue\n animationName: 'mui-auto-fill-cancel',\n animationDuration: '10ms',\n '&::-webkit-input-placeholder': placeholder,\n '&::-moz-placeholder': placeholder,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholder,\n // IE11\n '&::-ms-input-placeholder': placeholder,\n // Edge\n '&:focus': {\n outline: 0\n },\n // Reset Firefox invalid required input style\n '&:invalid': {\n boxShadow: 'none'\n },\n '&::-webkit-search-decoration': {\n // Remove the padding when type=search.\n WebkitAppearance: 'none'\n },\n // Show and hide the placeholder logic\n [`label[data-shrink=false] + .${inputBaseClasses.formControl} &`]: {\n '&::-webkit-input-placeholder': placeholderHidden,\n '&::-moz-placeholder': placeholderHidden,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholderHidden,\n // IE11\n '&::-ms-input-placeholder': placeholderHidden,\n // Edge\n '&:focus::-webkit-input-placeholder': placeholderVisible,\n '&:focus::-moz-placeholder': placeholderVisible,\n // Firefox 19+\n '&:focus:-ms-input-placeholder': placeholderVisible,\n // IE11\n '&:focus::-ms-input-placeholder': placeholderVisible // Edge\n\n },\n [`&.${inputBaseClasses.disabled}`]: {\n opacity: 1,\n // Reset iOS opacity\n WebkitTextFillColor: theme.palette.text.disabled // Fix opacity Safari bug\n\n },\n '&:-webkit-autofill': {\n animationDuration: '5000s',\n animationName: 'mui-auto-fill'\n }\n }, ownerState.size === 'small' && {\n paddingTop: 1\n }, ownerState.multiline && {\n height: 'auto',\n resize: 'none',\n padding: 0,\n paddingTop: 0\n }, ownerState.type === 'search' && {\n // Improve type search style.\n MozAppearance: 'textfield'\n });\n});\n\nconst inputGlobalStyles = /*#__PURE__*/_jsx(GlobalStyles, {\n styles: {\n '@keyframes mui-auto-fill': {\n from: {\n display: 'block'\n }\n },\n '@keyframes mui-auto-fill-cancel': {\n from: {\n display: 'block'\n }\n }\n }\n});\n/**\n * `InputBase` contains as few styles as possible.\n * It aims to be a simple building block for creating an input.\n * It contains a load of style reset and some state logic.\n */\n\n\nconst InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputBase'\n });\n\n const {\n 'aria-describedby': ariaDescribedby,\n autoComplete,\n autoFocus,\n className,\n components = {},\n componentsProps = {},\n defaultValue,\n disabled,\n disableInjectingGlobalStyles,\n endAdornment,\n fullWidth = false,\n id,\n inputComponent = 'input',\n inputProps: inputPropsProp = {},\n inputRef: inputRefProp,\n maxRows,\n minRows,\n multiline = false,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyUp,\n placeholder,\n readOnly,\n renderSuffix,\n rows,\n startAdornment,\n type = 'text',\n value: valueProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef();\n const handleInputRefWarning = React.useCallback(instance => {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['MUI: You have provided a `inputComponent` to the input component', 'that does not correctly handle the `ref` prop.', 'Make sure the `ref` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n const handleInputPropsRefProp = useForkRef(inputPropsProp.ref, handleInputRefWarning);\n const handleInputRefProp = useForkRef(inputRefProp, handleInputPropsRefProp);\n const handleInputRef = useForkRef(inputRef, handleInputRefProp);\n const [focused, setFocused] = React.useState(false);\n const muiFormControl = useFormControl();\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (muiFormControl) {\n return muiFormControl.registerEffect();\n }\n\n return undefined;\n }, [muiFormControl]);\n }\n\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'disabled', 'error', 'hiddenLabel', 'size', 'required', 'filled']\n });\n fcs.focused = muiFormControl ? muiFormControl.focused : focused; // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n\n React.useEffect(() => {\n if (!muiFormControl && disabled && focused) {\n setFocused(false);\n\n if (onBlur) {\n onBlur();\n }\n }\n }, [muiFormControl, disabled, focused, onBlur]);\n const onFilled = muiFormControl && muiFormControl.onFilled;\n const onEmpty = muiFormControl && muiFormControl.onEmpty;\n const checkDirty = React.useCallback(obj => {\n if (isFilled(obj)) {\n if (onFilled) {\n onFilled();\n }\n } else if (onEmpty) {\n onEmpty();\n }\n }, [onFilled, onEmpty]);\n useEnhancedEffect(() => {\n if (isControlled) {\n checkDirty({\n value\n });\n }\n }, [value, checkDirty, isControlled]);\n\n const handleFocus = event => {\n // Fix a bug with IE11 where the focus/blur events are triggered\n // while the component is disabled.\n if (fcs.disabled) {\n event.stopPropagation();\n return;\n }\n\n if (onFocus) {\n onFocus(event);\n }\n\n if (inputPropsProp.onFocus) {\n inputPropsProp.onFocus(event);\n }\n\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n } else {\n setFocused(true);\n }\n };\n\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n\n if (inputPropsProp.onBlur) {\n inputPropsProp.onBlur(event);\n }\n\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n } else {\n setFocused(false);\n }\n };\n\n const handleChange = (event, ...args) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n\n if (element == null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Expected valid input target. Did you use a custom \\`inputComponent\\` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.` : _formatMuiErrorMessage(1));\n }\n\n checkDirty({\n value: element.value\n });\n }\n\n if (inputPropsProp.onChange) {\n inputPropsProp.onChange(event, ...args);\n } // Perform in the willUpdate\n\n\n if (onChange) {\n onChange(event, ...args);\n }\n }; // Check the input state on mount, in case it was filled by the user\n // or auto filled by the browser before the hydration (for SSR).\n\n\n React.useEffect(() => {\n checkDirty(inputRef.current); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClick = event => {\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n let InputComponent = inputComponent;\n let inputProps = inputPropsProp;\n\n if (multiline && InputComponent === 'input') {\n if (rows) {\n if (process.env.NODE_ENV !== 'production') {\n if (minRows || maxRows) {\n console.warn('MUI: You can not use the `minRows` or `maxRows` props when the input `rows` prop is set.');\n }\n }\n\n inputProps = _extends({\n type: undefined,\n minRows: rows,\n maxRows: rows\n }, inputProps);\n } else {\n inputProps = _extends({\n type: undefined,\n maxRows,\n minRows\n }, inputProps);\n }\n\n InputComponent = TextareaAutosize;\n }\n\n const handleAutoFill = event => {\n // Provide a fake value as Chrome might not let you access it for security reasons.\n checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {\n value: 'x'\n });\n };\n\n React.useEffect(() => {\n if (muiFormControl) {\n muiFormControl.setAdornedStart(Boolean(startAdornment));\n }\n }, [muiFormControl, startAdornment]);\n\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n disabled: fcs.disabled,\n endAdornment,\n error: fcs.error,\n focused: fcs.focused,\n formControl: muiFormControl,\n fullWidth,\n hiddenLabel: fcs.hiddenLabel,\n multiline,\n size: fcs.size,\n startAdornment,\n type\n });\n\n const classes = useUtilityClasses(ownerState);\n const Root = components.Root || InputBaseRoot;\n const rootProps = componentsProps.root || {};\n const Input = components.Input || InputBaseComponent;\n inputProps = _extends({}, inputProps, componentsProps.input);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [!disableInjectingGlobalStyles && inputGlobalStyles, /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, !isHostComponent(Root) && {\n ownerState: _extends({}, ownerState, rootProps.ownerState)\n }, {\n ref: ref,\n onClick: handleClick\n }, other, {\n className: clsx(classes.root, rootProps.className, className),\n children: [startAdornment, /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(Input, _extends({\n ownerState: ownerState,\n \"aria-invalid\": fcs.error,\n \"aria-describedby\": ariaDescribedby,\n autoComplete: autoComplete,\n autoFocus: autoFocus,\n defaultValue: defaultValue,\n disabled: fcs.disabled,\n id: id,\n onAnimationStart: handleAutoFill,\n name: name,\n placeholder: placeholder,\n readOnly: readOnly,\n required: fcs.required,\n rows: rows,\n value: value,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n type: type\n }, inputProps, !isHostComponent(Input) && {\n as: InputComponent,\n ownerState: _extends({}, ownerState, inputProps.ownerState)\n }, {\n ref: handleInputRef,\n className: clsx(classes.input, inputProps.className),\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus\n }))\n }), endAdornment, renderSuffix ? renderSuffix(_extends({}, fcs, {\n startAdornment\n })) : null]\n }))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputBase.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 * @ignore\n */\n 'aria-describedby': PropTypes.string,\n\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\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. It supports those theme colors that make sense for this component.\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The components used for each slot inside the InputBase.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, GlobalStyles for the auto-fill keyframes will not be injected/removed on mount/unmount. Make sure to inject them at the top of your application.\n * This option is intended to help with boosting the initial rendering performance if you are loading a big amount of Input components at once.\n * @default false\n */\n disableInjectingGlobalStyles: PropTypes.bool,\n\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: elementTypeAcceptingRef,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * If `true`, a [TextareaAutosize](/components/textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n\n /**\n * Callback fired when the `input` is blurred.\n *\n * Notice that the first argument (event) might be undefined.\n */\n onBlur: PropTypes.func,\n\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n\n /**\n * @ignore\n */\n renderSuffix: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The size of the component.\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\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 * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nexport default InputBase;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { generateUtilityClasses, generateUtilityClass } from '@mui/base';\nimport { inputBaseClasses } from '../InputBase';\nexport function getInputUtilityClass(slot) {\n return generateUtilityClass('MuiInput', slot);\n}\n\nconst inputClasses = _extends({}, inputBaseClasses, generateUtilityClasses('MuiInput', ['root', 'underline', 'input']));\n\nexport default inputClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disableUnderline\", \"components\", \"componentsProps\", \"fullWidth\", \"inputComponent\", \"multiline\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { refType, deepmerge } from '@mui/utils';\nimport InputBase from '../InputBase';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport inputClasses, { getInputUtilityClass } from './inputClasses';\nimport { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseComponent as InputBaseInput } from '../InputBase/InputBase';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableUnderline\n } = ownerState;\n const slots = {\n root: ['root', !disableUnderline && 'underline'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getInputUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst InputRoot = styled(InputBaseRoot, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiInput',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [...inputBaseRootOverridesResolver(props, styles), !ownerState.disableUnderline && styles.underline];\n }\n})(({\n theme,\n ownerState\n}) => {\n const light = theme.palette.mode === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n return _extends({\n position: 'relative'\n }, ownerState.formControl && {\n 'label + &': {\n marginTop: 16\n }\n }, !ownerState.disableUnderline && {\n '&:after': {\n borderBottom: `2px solid ${theme.palette[ownerState.color].main}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n\n },\n [`&.${inputClasses.focused}:after`]: {\n transform: 'scaleX(1)'\n },\n [`&.${inputClasses.error}:after`]: {\n borderBottomColor: theme.palette.error.main,\n transform: 'scaleX(1)' // error is always underlined in red\n\n },\n '&:before': {\n borderBottom: `1px solid ${bottomLineColor}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n\n },\n [`&:hover:not(.${inputClasses.disabled}):before`]: {\n borderBottom: `2px solid ${theme.palette.text.primary}`,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n borderBottom: `1px solid ${bottomLineColor}`\n }\n },\n [`&.${inputClasses.disabled}:before`]: {\n borderBottomStyle: 'dotted'\n }\n });\n});\nconst InputInput = styled(InputBaseInput, {\n name: 'MuiInput',\n slot: 'Input',\n overridesResolver: inputBaseInputOverridesResolver\n})({});\nconst Input = /*#__PURE__*/React.forwardRef(function Input(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInput'\n });\n\n const {\n disableUnderline,\n components = {},\n componentsProps: componentsPropsProp,\n fullWidth = false,\n inputComponent = 'input',\n multiline = false,\n type = 'text'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const classes = useUtilityClasses(props);\n const ownerState = {\n disableUnderline\n };\n const inputComponentsProps = {\n root: {\n ownerState\n }\n };\n const componentsProps = componentsPropsProp ? deepmerge(componentsPropsProp, inputComponentsProps) : inputComponentsProps;\n return /*#__PURE__*/_jsx(InputBase, _extends({\n components: _extends({\n Root: InputRoot,\n Input: InputInput\n }, components),\n componentsProps: componentsProps,\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Input.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 * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n\n /**\n * The components used for each slot inside the InputBase.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the `input` will not have an underline.\n */\n disableUnderline: PropTypes.bool,\n\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: PropTypes.elementType,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * If `true`, a [TextareaAutosize](/components/textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\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 * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nInput.muiName = 'Input';\nexport default Input;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { generateUtilityClasses, generateUtilityClass } from '@mui/base';\nimport { inputBaseClasses } from '../InputBase';\nexport function getFilledInputUtilityClass(slot) {\n return generateUtilityClass('MuiFilledInput', slot);\n}\n\nconst filledInputClasses = _extends({}, inputBaseClasses, generateUtilityClasses('MuiFilledInput', ['root', 'underline', 'input']));\n\nexport default filledInputClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disableUnderline\", \"components\", \"componentsProps\", \"fullWidth\", \"hiddenLabel\", \"inputComponent\", \"multiline\", \"type\"];\nimport * as React from 'react';\nimport { refType, deepmerge } from '@mui/utils';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport InputBase from '../InputBase';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport filledInputClasses, { getFilledInputUtilityClass } from './filledInputClasses';\nimport { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseComponent as InputBaseInput } from '../InputBase/InputBase';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableUnderline\n } = ownerState;\n const slots = {\n root: ['root', !disableUnderline && 'underline'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getFilledInputUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst FilledInputRoot = styled(InputBaseRoot, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiFilledInput',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [...inputBaseRootOverridesResolver(props, styles), !ownerState.disableUnderline && styles.underline];\n }\n})(({\n theme,\n ownerState\n}) => {\n const light = theme.palette.mode === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n const backgroundColor = light ? 'rgba(0, 0, 0, 0.06)' : 'rgba(255, 255, 255, 0.09)';\n return _extends({\n position: 'relative',\n backgroundColor,\n borderTopLeftRadius: theme.shape.borderRadius,\n borderTopRightRadius: theme.shape.borderRadius,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n '&:hover': {\n backgroundColor: light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.13)',\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor\n }\n },\n [`&.${filledInputClasses.focused}`]: {\n backgroundColor\n },\n [`&.${filledInputClasses.disabled}`]: {\n backgroundColor: light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)'\n }\n }, !ownerState.disableUnderline && {\n '&:after': {\n borderBottom: `2px solid ${theme.palette[ownerState.color].main}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n\n },\n [`&.${filledInputClasses.focused}:after`]: {\n transform: 'scaleX(1)'\n },\n [`&.${filledInputClasses.error}:after`]: {\n borderBottomColor: theme.palette.error.main,\n transform: 'scaleX(1)' // error is always underlined in red\n\n },\n '&:before': {\n borderBottom: `1px solid ${bottomLineColor}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n\n },\n [`&:hover:not(.${filledInputClasses.disabled}):before`]: {\n borderBottom: `1px solid ${theme.palette.text.primary}`\n },\n [`&.${filledInputClasses.disabled}:before`]: {\n borderBottomStyle: 'dotted'\n }\n }, ownerState.startAdornment && {\n paddingLeft: 12\n }, ownerState.endAdornment && {\n paddingRight: 12\n }, ownerState.multiline && _extends({\n padding: '25px 12px 8px'\n }, ownerState.size === 'small' && {\n paddingTop: 21,\n paddingBottom: 4\n }, ownerState.hiddenLabel && {\n paddingTop: 16,\n paddingBottom: 17\n }));\n});\nconst FilledInputInput = styled(InputBaseInput, {\n name: 'MuiFilledInput',\n slot: 'Input',\n overridesResolver: inputBaseInputOverridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n paddingTop: 25,\n paddingRight: 12,\n paddingBottom: 8,\n paddingLeft: 12,\n '&:-webkit-autofill': {\n WebkitBoxShadow: theme.palette.mode === 'light' ? null : '0 0 0 100px #266798 inset',\n WebkitTextFillColor: theme.palette.mode === 'light' ? null : '#fff',\n caretColor: theme.palette.mode === 'light' ? null : '#fff',\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit'\n }\n}, ownerState.size === 'small' && {\n paddingTop: 21,\n paddingBottom: 4\n}, ownerState.hiddenLabel && {\n paddingTop: 16,\n paddingBottom: 17\n}, ownerState.multiline && {\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0\n}, ownerState.startAdornment && {\n paddingLeft: 0\n}, ownerState.endAdornment && {\n paddingRight: 0\n}, ownerState.hiddenLabel && ownerState.size === 'small' && {\n paddingTop: 8,\n paddingBottom: 9\n}));\nconst FilledInput = /*#__PURE__*/React.forwardRef(function FilledInput(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFilledInput'\n });\n\n const {\n components = {},\n componentsProps: componentsPropsProp,\n fullWidth = false,\n // declare here to prevent spreading to DOM\n inputComponent = 'input',\n multiline = false,\n type = 'text'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n fullWidth,\n inputComponent,\n multiline,\n type\n });\n\n const classes = useUtilityClasses(props);\n const filledInputComponentsProps = {\n root: {\n ownerState\n },\n input: {\n ownerState\n }\n };\n const componentsProps = componentsPropsProp ? deepmerge(componentsPropsProp, filledInputComponentsProps) : filledInputComponentsProps;\n return /*#__PURE__*/_jsx(InputBase, _extends({\n components: _extends({\n Root: FilledInputRoot,\n Input: FilledInputInput\n }, components),\n componentsProps: componentsProps,\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FilledInput.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 * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n\n /**\n * The components used for each slot inside the InputBase.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the input will not have an underline.\n */\n disableUnderline: PropTypes.bool,\n\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: PropTypes.elementType,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * If `true`, a [TextareaAutosize](/components/textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\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 * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nFilledInput.muiName = 'Input';\nexport default FilledInput;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"classes\", \"className\", \"label\", \"notched\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '../styles/styled';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NotchedOutlineRoot = styled('fieldset')({\n textAlign: 'left',\n position: 'absolute',\n bottom: 0,\n right: 0,\n top: -5,\n left: 0,\n margin: 0,\n padding: '0 8px',\n pointerEvents: 'none',\n borderRadius: 'inherit',\n borderStyle: 'solid',\n borderWidth: 1,\n overflow: 'hidden',\n minWidth: '0%'\n});\nconst NotchedOutlineLegend = styled('legend')(({\n ownerState,\n theme\n}) => _extends({\n float: 'unset',\n // Fix conflict with bootstrap\n overflow: 'hidden'\n}, !ownerState.withLabel && {\n padding: 0,\n lineHeight: '11px',\n // sync with `height` in `legend` styles\n transition: theme.transitions.create('width', {\n duration: 150,\n easing: theme.transitions.easing.easeOut\n })\n}, ownerState.withLabel && _extends({\n display: 'block',\n // Fix conflict with normalize.css and sanitize.css\n width: 'auto',\n // Fix conflict with bootstrap\n padding: 0,\n height: 11,\n // sync with `lineHeight` in `legend` styles\n fontSize: '0.75em',\n visibility: 'hidden',\n maxWidth: 0.01,\n transition: theme.transitions.create('max-width', {\n duration: 50,\n easing: theme.transitions.easing.easeOut\n }),\n whiteSpace: 'nowrap',\n '& > span': {\n paddingLeft: 5,\n paddingRight: 5,\n display: 'inline-block',\n opacity: 0,\n visibility: 'visible'\n }\n}, ownerState.notched && {\n maxWidth: '100%',\n transition: theme.transitions.create('max-width', {\n duration: 100,\n easing: theme.transitions.easing.easeOut,\n delay: 50\n })\n})));\n/**\n * @ignore - internal component.\n */\n\nexport default function NotchedOutline(props) {\n const {\n className,\n label,\n notched\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const withLabel = label != null && label !== '';\n\n const ownerState = _extends({}, props, {\n notched,\n withLabel\n });\n\n return /*#__PURE__*/_jsx(NotchedOutlineRoot, _extends({\n \"aria-hidden\": true,\n className: className,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(NotchedOutlineLegend, {\n ownerState: ownerState,\n children: withLabel ? /*#__PURE__*/_jsx(\"span\", {\n children: label\n }) : // notranslate needed while Google Translate will not fix zero-width space issue\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n }))\n })\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? NotchedOutline.propTypes = {\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 * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The label.\n */\n label: PropTypes.node,\n\n /**\n * If `true`, the outline is notched to accommodate the label.\n */\n notched: PropTypes.bool.isRequired,\n\n /**\n * @ignore\n */\n style: PropTypes.object\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { generateUtilityClasses, generateUtilityClass } from '@mui/base';\nimport { inputBaseClasses } from '../InputBase';\nexport function getOutlinedInputUtilityClass(slot) {\n return generateUtilityClass('MuiOutlinedInput', slot);\n}\n\nconst outlinedInputClasses = _extends({}, inputBaseClasses, generateUtilityClasses('MuiOutlinedInput', ['root', 'notchedOutline', 'input']));\n\nexport default outlinedInputClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"components\", \"fullWidth\", \"inputComponent\", \"label\", \"multiline\", \"notched\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport NotchedOutline from './NotchedOutline';\nimport useFormControl from '../FormControl/useFormControl';\nimport formControlState from '../FormControl/formControlState';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport outlinedInputClasses, { getOutlinedInputUtilityClass } from './outlinedInputClasses';\nimport InputBase, { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseComponent as InputBaseInput } from '../InputBase/InputBase';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n notchedOutline: ['notchedOutline'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getOutlinedInputUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst OutlinedInputRoot = styled(InputBaseRoot, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiOutlinedInput',\n slot: 'Root',\n overridesResolver: inputBaseRootOverridesResolver\n})(({\n theme,\n ownerState\n}) => {\n const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';\n return _extends({\n position: 'relative',\n borderRadius: theme.shape.borderRadius,\n [`&:hover .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: theme.palette.text.primary\n },\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n [`&:hover .${outlinedInputClasses.notchedOutline}`]: {\n borderColor\n }\n },\n [`&.${outlinedInputClasses.focused} .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: theme.palette[ownerState.color].main,\n borderWidth: 2\n },\n [`&.${outlinedInputClasses.error} .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: theme.palette.error.main\n },\n [`&.${outlinedInputClasses.disabled} .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: theme.palette.action.disabled\n }\n }, ownerState.startAdornment && {\n paddingLeft: 14\n }, ownerState.endAdornment && {\n paddingRight: 14\n }, ownerState.multiline && _extends({\n padding: '16.5px 14px'\n }, ownerState.size === 'small' && {\n padding: '8.5px 14px'\n }));\n});\nconst NotchedOutlineRoot = styled(NotchedOutline, {\n name: 'MuiOutlinedInput',\n slot: 'NotchedOutline',\n overridesResolver: (props, styles) => styles.notchedOutline\n})(({\n theme\n}) => ({\n borderColor: theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'\n}));\nconst OutlinedInputInput = styled(InputBaseInput, {\n name: 'MuiOutlinedInput',\n slot: 'Input',\n overridesResolver: inputBaseInputOverridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n padding: '16.5px 14px',\n '&:-webkit-autofill': {\n WebkitBoxShadow: theme.palette.mode === 'light' ? null : '0 0 0 100px #266798 inset',\n WebkitTextFillColor: theme.palette.mode === 'light' ? null : '#fff',\n caretColor: theme.palette.mode === 'light' ? null : '#fff',\n borderRadius: 'inherit'\n }\n}, ownerState.size === 'small' && {\n padding: '8.5px 14px'\n}, ownerState.multiline && {\n padding: 0\n}, ownerState.startAdornment && {\n paddingLeft: 0\n}, ownerState.endAdornment && {\n paddingRight: 0\n}));\nconst OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inProps, ref) {\n var _React$Fragment;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiOutlinedInput'\n });\n\n const {\n components = {},\n fullWidth = false,\n inputComponent = 'input',\n label,\n multiline = false,\n notched,\n type = 'text'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const classes = useUtilityClasses(props);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['required']\n });\n return /*#__PURE__*/_jsx(InputBase, _extends({\n components: _extends({\n Root: OutlinedInputRoot,\n Input: OutlinedInputInput\n }, components),\n renderSuffix: state => /*#__PURE__*/_jsx(NotchedOutlineRoot, {\n className: classes.notchedOutline,\n label: label != null && label !== '' && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/_jsxs(React.Fragment, {\n children: [label, \"\\xA0\", '*']\n })) : label,\n notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)\n }),\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type\n }, other, {\n classes: _extends({}, classes, {\n notchedOutline: null\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? OutlinedInput.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 * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n\n /**\n * The components used for each slot inside the InputBase.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: PropTypes.elementType,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * The label of the `input`. It is only used for layout. The actual labelling\n * is handled by `InputLabel`.\n */\n label: PropTypes.node,\n\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * If `true`, a [TextareaAutosize](/components/textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n\n /**\n * If `true`, the outline is notched to accommodate the label.\n */\n notched: PropTypes.bool,\n\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\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 * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nOutlinedInput.muiName = 'Input';\nexport default OutlinedInput;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getFormLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormLabel', slot);\n}\nconst formLabelClasses = generateUtilityClasses('MuiFormLabel', ['root', 'colorSecondary', 'focused', 'disabled', 'error', 'filled', 'required', 'asterisk']);\nexport default formLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"required\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport formLabelClasses, { getFormLabelUtilityClasses } from './formLabelClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n focused,\n disabled,\n error,\n filled,\n required\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', filled && 'filled', focused && 'focused', required && 'required'],\n asterisk: ['asterisk', error && 'error']\n };\n return composeClasses(slots, getFormLabelUtilityClasses, classes);\n};\n\nexport const FormLabelRoot = styled('label', {\n name: 'MuiFormLabel',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return _extends({}, styles.root, ownerState.color === 'secondary' && styles.colorSecondary, ownerState.filled && styles.filled);\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, theme.typography.body1, {\n lineHeight: '1.4375em',\n padding: 0,\n position: 'relative',\n [`&.${formLabelClasses.focused}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${formLabelClasses.disabled}`]: {\n color: theme.palette.text.disabled\n },\n [`&.${formLabelClasses.error}`]: {\n color: theme.palette.error.main\n }\n}));\nconst AsteriskComponent = styled('span', {\n name: 'MuiFormLabel',\n slot: 'Asterisk',\n overridesResolver: (props, styles) => styles.asterisk\n})(({\n theme\n}) => ({\n [`&.${formLabelClasses.error}`]: {\n color: theme.palette.error.main\n }\n}));\nconst FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormLabel'\n });\n\n const {\n children,\n className,\n component = 'label'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']\n });\n\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n component,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(FormLabelRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: [children, fcs.required && /*#__PURE__*/_jsxs(AsteriskComponent, {\n ownerState: ownerState,\n \"aria-hidden\": true,\n className: classes.asterisk,\n children: [\"\\u2009\", '*']\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormLabel.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 color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', '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 * If `true`, the label should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the label should use filled classes key.\n */\n filled: PropTypes.bool,\n\n /**\n * If `true`, the input of this label is focused (used by `FormGroup` components).\n */\n focused: PropTypes.bool,\n\n /**\n * If `true`, the label will indicate that the `input` is required.\n */\n required: 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} : void 0;\nexport default FormLabel;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiInputLabel', slot);\n}\nconst inputLabelClasses = generateUtilityClasses('MuiInputLabel', ['root', 'focused', 'disabled', 'error', 'required', 'asterisk', 'formControl', 'sizeSmall', 'shrink', 'animated', 'standard', 'filled', 'outlined']);\nexport default inputLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disableAnimation\", \"margin\", \"shrink\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport FormLabel, { formLabelClasses } from '../FormLabel';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { getInputLabelUtilityClasses } from './inputLabelClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n formControl,\n size,\n shrink,\n disableAnimation,\n variant,\n required\n } = ownerState;\n const slots = {\n root: ['root', formControl && 'formControl', !disableAnimation && 'animated', shrink && 'shrink', size === 'small' && 'sizeSmall', variant],\n asterisk: [required && 'asterisk']\n };\n const composedClasses = composeClasses(slots, getInputLabelUtilityClasses, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst InputLabelRoot = styled(FormLabel, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiInputLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formLabelClasses.asterisk}`]: styles.asterisk\n }, styles.root, ownerState.formControl && styles.formControl, ownerState.size === 'small' && styles.sizeSmall, ownerState.shrink && styles.shrink, !ownerState.disableAnimation && styles.animated, styles[ownerState.variant]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'block',\n transformOrigin: 'top left',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%'\n}, ownerState.formControl && {\n position: 'absolute',\n left: 0,\n top: 0,\n // slight alteration to spec spacing to match visual spec result\n transform: 'translate(0, 20px) scale(1)'\n}, ownerState.size === 'small' && {\n // Compensation for the `Input.inputSizeSmall` style.\n transform: 'translate(0, 17px) scale(1)'\n}, ownerState.shrink && {\n transform: 'translate(0, -1.5px) scale(0.75)',\n transformOrigin: 'top left',\n maxWidth: '133%'\n}, !ownerState.disableAnimation && {\n transition: theme.transitions.create(['color', 'transform', 'max-width'], {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n })\n}, ownerState.variant === 'filled' && _extends({\n // Chrome's autofill feature gives the input field a yellow background.\n // Since the input field is behind the label in the HTML tree,\n // the input field is drawn last and hides the label with an opaque background color.\n // zIndex: 1 will raise the label above opaque background-colors of input.\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(12px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 13px) scale(1)'\n}, ownerState.shrink && _extends({\n userSelect: 'none',\n pointerEvents: 'auto',\n transform: 'translate(12px, 7px) scale(0.75)',\n maxWidth: 'calc(133% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 4px) scale(0.75)'\n})), ownerState.variant === 'outlined' && _extends({\n // see comment above on filled.zIndex\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(14px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(14px, 9px) scale(1)'\n}, ownerState.shrink && {\n userSelect: 'none',\n pointerEvents: 'auto',\n maxWidth: 'calc(133% - 24px)',\n transform: 'translate(14px, -9px) scale(0.75)'\n})));\nconst InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(inProps, ref) {\n const props = useThemeProps({\n name: 'MuiInputLabel',\n props: inProps\n });\n\n const {\n disableAnimation = false,\n shrink: shrinkProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl();\n let shrink = shrinkProp;\n\n if (typeof shrink === 'undefined' && muiFormControl) {\n shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\n }\n\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['size', 'variant', 'required']\n });\n\n const ownerState = _extends({}, props, {\n disableAnimation,\n formControl: muiFormControl,\n shrink,\n size: fcs.size,\n variant: fcs.variant,\n required: fcs.required\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(InputLabelRoot, _extends({\n \"data-shrink\": shrink,\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? InputLabel.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 * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n\n /**\n * If `true`, the transition animation is disabled.\n * @default false\n */\n disableAnimation: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the `input` of this label is focused.\n */\n focused: PropTypes.bool,\n\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n\n /**\n * if `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n\n /**\n * If `true`, the label is shrunk.\n */\n shrink: 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 */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputLabel;","import { generateUtilityClasses, generateUtilityClass } from '@mui/base';\nexport function getFormControlUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControl', slot);\n}\nconst formControlClasses = generateUtilityClasses('MuiFormControl', ['root', 'marginNone', 'marginNormal', 'marginDense', 'fullWidth', 'disabled']);\nexport default formControlClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"focused\", \"fullWidth\", \"hiddenLabel\", \"margin\", \"required\", \"size\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { isFilled, isAdornedStart } from '../InputBase/utils';\nimport capitalize from '../utils/capitalize';\nimport isMuiElement from '../utils/isMuiElement';\nimport FormControlContext from './FormControlContext';\nimport { getFormControlUtilityClasses } from './formControlClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n margin,\n fullWidth\n } = ownerState;\n const slots = {\n root: ['root', margin !== 'none' && `margin${capitalize(margin)}`, fullWidth && 'fullWidth']\n };\n return composeClasses(slots, getFormControlUtilityClasses, classes);\n};\n\nconst FormControlRoot = styled('div', {\n name: 'MuiFormControl',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return _extends({}, styles.root, styles[`margin${capitalize(ownerState.margin)}`], ownerState.fullWidth && styles.fullWidth);\n }\n})(({\n ownerState\n}) => _extends({\n display: 'inline-flex',\n flexDirection: 'column',\n position: 'relative',\n // Reset fieldset default style.\n minWidth: 0,\n padding: 0,\n margin: 0,\n border: 0,\n verticalAlign: 'top'\n}, ownerState.margin === 'normal' && {\n marginTop: 16,\n marginBottom: 8\n}, ownerState.margin === 'dense' && {\n marginTop: 8,\n marginBottom: 4\n}, ownerState.fullWidth && {\n width: '100%'\n}));\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n * - FormLabel\n * - FormHelperText\n * - Input\n * - InputLabel\n *\n * You can find one composition example below and more going to [the demos](/components/text-fields/#components).\n *\n * ```jsx\n * \n * Email address\n * \n * We'll never share your email.\n * \n * ```\n *\n * ⚠️ Only one `InputBase` can be used within a FormControl because it create visual inconsistencies.\n * For instance, only one input can be focused at the same time, the state shouldn't be shared.\n */\n\nconst FormControl = /*#__PURE__*/React.forwardRef(function FormControl(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormControl'\n });\n\n const {\n children,\n className,\n color = 'primary',\n component = 'div',\n disabled = false,\n error = false,\n focused: visuallyFocused,\n fullWidth = false,\n hiddenLabel = false,\n margin = 'none',\n required = false,\n size = 'medium',\n variant = 'outlined'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n component,\n disabled,\n error,\n fullWidth,\n hiddenLabel,\n margin,\n required,\n size,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n const [adornedStart, setAdornedStart] = React.useState(() => {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n let initialAdornedStart = false;\n\n if (children) {\n React.Children.forEach(children, child => {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n\n const input = isMuiElement(child, ['Select']) ? child.props.input : child;\n\n if (input && isAdornedStart(input.props)) {\n initialAdornedStart = true;\n }\n });\n }\n\n return initialAdornedStart;\n });\n const [filled, setFilled] = React.useState(() => {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n let initialFilled = false;\n\n if (children) {\n React.Children.forEach(children, child => {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n\n if (isFilled(child.props, true)) {\n initialFilled = true;\n }\n });\n }\n\n return initialFilled;\n });\n const [focusedState, setFocused] = React.useState(false);\n\n if (disabled && focusedState) {\n setFocused(false);\n }\n\n const focused = visuallyFocused !== undefined && !disabled ? visuallyFocused : focusedState;\n let registerEffect;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const registeredInput = React.useRef(false);\n\n registerEffect = () => {\n if (registeredInput.current) {\n console.error(['MUI: There are multiple `InputBase` components inside a FormControl.', 'This creates visual inconsistencies, only use one `InputBase`.'].join('\\n'));\n }\n\n registeredInput.current = true;\n return () => {\n registeredInput.current = false;\n };\n };\n }\n\n const onFilled = React.useCallback(() => {\n setFilled(true);\n }, []);\n const onEmpty = React.useCallback(() => {\n setFilled(false);\n }, []);\n const childContext = {\n adornedStart,\n setAdornedStart,\n color,\n disabled,\n error,\n filled,\n focused,\n fullWidth,\n hiddenLabel,\n size,\n onBlur: () => {\n setFocused(false);\n },\n onEmpty,\n onFilled,\n onFocus: () => {\n setFocused(true);\n },\n registerEffect,\n required,\n variant\n };\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(FormControlRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControl.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 color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['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 * If `true`, the label, input and helper text should be displayed in a disabled state.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the label is displayed in an error state.\n * @default false\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the component is displayed in focused state.\n */\n focused: PropTypes.bool,\n\n /**\n * If `true`, the component will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n\n /**\n * If `true`, the label will indicate that the `input` is required.\n * @default false\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), 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 * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default FormControl;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getFormHelperTextUtilityClasses(slot) {\n return generateUtilityClass('MuiFormHelperText', slot);\n}\nconst formHelperTextClasses = generateUtilityClasses('MuiFormHelperText', ['root', 'error', 'disabled', 'sizeSmall', 'sizeMedium', 'contained', 'focused', 'filled', 'required']);\nexport default formHelperTextClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"margin\", \"required\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport capitalize from '../utils/capitalize';\nimport formHelperTextClasses, { getFormHelperTextUtilityClasses } from './formHelperTextClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n contained,\n size,\n disabled,\n error,\n filled,\n focused,\n required\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', error && 'error', size && `size${capitalize(size)}`, contained && 'contained', focused && 'focused', filled && 'filled', required && 'required']\n };\n return composeClasses(slots, getFormHelperTextUtilityClasses, classes);\n};\n\nconst FormHelperTextRoot = styled('p', {\n name: 'MuiFormHelperText',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.size && styles[`size${capitalize(ownerState.size)}`], ownerState.contained && styles.contained, ownerState.filled && styles.filled];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, theme.typography.caption, {\n textAlign: 'left',\n marginTop: 3,\n marginRight: 0,\n marginBottom: 0,\n marginLeft: 0,\n [`&.${formHelperTextClasses.disabled}`]: {\n color: theme.palette.text.disabled\n },\n [`&.${formHelperTextClasses.error}`]: {\n color: theme.palette.error.main\n }\n}, ownerState.size === 'small' && {\n marginTop: 4\n}, ownerState.contained && {\n marginLeft: 14,\n marginRight: 14\n}));\nconst FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormHelperText'\n });\n\n const {\n children,\n className,\n component = 'p'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['variant', 'size', 'disabled', 'error', 'filled', 'focused', 'required']\n });\n\n const ownerState = _extends({}, props, {\n component,\n contained: fcs.variant === 'filled' || fcs.variant === 'outlined',\n variant: fcs.variant,\n size: fcs.size,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormHelperTextRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children === ' ' ? // notranslate needed while Google Translate will not fix zero-width space issue\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormHelperText.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 * If `' '` is provided, the component reserves one line height for displaying a future message.\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 * If `true`, the helper text should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, helper text should be displayed in an error state.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the helper text should use filled classes key.\n */\n filled: PropTypes.bool,\n\n /**\n * If `true`, the helper text should use focused classes key.\n */\n focused: PropTypes.bool,\n\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n\n /**\n * If `true`, the helper text should use required classes key.\n */\n required: 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 */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default FormHelperText;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst ListContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\n\nexport default ListContext;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListUtilityClass(slot) {\n return generateUtilityClass('MuiList', slot);\n}\nconst listClasses = generateUtilityClasses('MuiList', ['root', 'padding', 'dense', 'subheader']);\nexport default listClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ListContext from './ListContext';\nimport { getListUtilityClass } from './listClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePadding,\n dense,\n subheader\n } = ownerState;\n const slots = {\n root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']\n };\n return composeClasses(slots, getListUtilityClass, classes);\n};\n\nconst ListRoot = styled('ul', {\n name: 'MuiList',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];\n }\n})(({\n ownerState\n}) => _extends({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative'\n}, !ownerState.disablePadding && {\n paddingTop: 8,\n paddingBottom: 8\n}, ownerState.subheader && {\n paddingTop: 0\n}));\nconst List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiList'\n });\n\n const {\n children,\n className,\n component = 'ul',\n dense = false,\n disablePadding = false,\n subheader\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useMemo(() => ({\n dense\n }), [dense]);\n\n const ownerState = _extends({}, props, {\n component,\n dense,\n disablePadding\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsxs(ListRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [subheader, children]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? List.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 * If `true`, compact vertical padding designed for keyboard and mouse input is used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n * @default false\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, vertical padding is removed from the list.\n * @default false\n */\n disablePadding: PropTypes.bool,\n\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node,\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} : void 0;\nexport default List;","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18\nexport default function getScrollbarSize(doc) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = doc.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n}","import { unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\nexport default getScrollbarSize;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n\n return disableListWrap ? null : list.firstChild;\n}\n\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n\n return disableListWrap ? null : list.lastChild;\n}\n\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n\n let text = nextFocus.innerText;\n\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n\n text = text.trim().toLowerCase();\n\n if (text.length === 0) {\n return false;\n }\n\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n\n return text.indexOf(textCriteria.keys.join('')) === 0;\n}\n\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return false;\n }\n\n wrappedOnce = true;\n } // Same logic as useAutocomplete.js\n\n\n const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return true;\n }\n }\n\n return false;\n}\n/**\n * A permanently displayed menu following https://www.w3.org/TR/wai-aria-practices/#menubutton.\n * It's exposed to help customization of the [`Menu`](/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\n\n\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n autoFocus = false,\n autoFocusItem = false,\n children,\n className,\n disabledItemsFocusable = false,\n disableListWrap = false,\n onKeyDown,\n variant = 'selectedMenu'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const listRef = React.useRef(null);\n const textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(() => {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, () => ({\n adjustStyleForScrollbar: (containerElement, theme) => {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n const noExplicitWidth = !listRef.current.style.width;\n\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;\n listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n }\n\n return listRef.current;\n }\n }), []);\n\n const handleKeyDown = event => {\n const list = listRef.current;\n const key = event.key;\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n\n const currentFocus = ownerDocument(list).activeElement;\n\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n const criteria = textCriteriaRef.current;\n const lowerKey = key.toLowerCase();\n const currTime = performance.now();\n\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n const handleRef = useForkRef(listRef, ref);\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n\n let activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n\n React.Children.forEach(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n const items = React.Children.map(children, (child, index) => {\n if (index === activeItemIndex) {\n const newChildProps = {};\n\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n\n return child;\n });\n return /*#__PURE__*/_jsx(List, _extends({\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1\n }, other, {\n children: items\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.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 * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n * @default false\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n * @default false\n */\n autoFocusItem: PropTypes.bool,\n\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n\n /**\n * If `true`, the menu items will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","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}","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}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport 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;","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}","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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef } from '@mui/utils';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction getScale(value) {\n return `scale(${value}, ${value ** 2})`;\n}\n\nconst styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n/**\n * The Grow transition is used by the [Tooltip](/components/tooltips/) and\n * [Popover](/components/popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nconst Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = 'auto',\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const timer = React.useRef();\n const autoTimeout = React.useRef();\n const theme = useTheme();\n const nodeRef = React.useRef(null);\n const foreignRef = useForkRef(children.ref, ref);\n const handleRef = useForkRef(nodeRef, foreignRef);\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 handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n let duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay,\n easing: transitionTimingFunction\n })].join(',');\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n let duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay || duration * 0.333,\n easing: transitionTimingFunction\n })].join(',');\n node.style.opacity = '0';\n node.style.transform = getScale(0.75);\n\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.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 React.useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: appear,\n in: inProp,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.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 * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\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 * @ignore\n */\n style: 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 'auto'\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;\nGrow.muiSupportAuto = true;\nexport default Grow;","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef } from '@mui/utils';\n\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\n\n\nconst Portal = /*#__PURE__*/React.forwardRef(function Portal(props, ref) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = React.useState(null);\n const handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, ref);\n useEnhancedEffect(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(() => {\n if (mountNode && !disablePortal) {\n setRef(ref, mountNode);\n return () => {\n setRef(ref, null);\n };\n }\n\n return undefined;\n }, [ref, mountNode, disablePortal]);\n\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n return /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef\n });\n }\n\n return children;\n }\n\n return mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode;\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.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 children to render into the `container`.\n */\n children: PropTypes.node,\n\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.func]),\n\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\n\nexport default Portal;","import { unstable_ownerWindow as ownerWindow, unstable_ownerDocument as ownerDocument, unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\n\n// Is a vertical scrollbar displayed?\nfunction isOverflowing(container) {\n const doc = ownerDocument(container);\n\n if (doc.body === container) {\n return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;\n }\n\n return container.scrollHeight > container.clientHeight;\n}\n\nexport function ariaHidden(element, show) {\n if (show) {\n element.setAttribute('aria-hidden', 'true');\n } else {\n element.removeAttribute('aria-hidden');\n }\n}\n\nfunction getPaddingRight(element) {\n return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;\n}\n\nfunction ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude = [], show) {\n const blacklist = [mountElement, currentElement, ...elementsToExclude];\n const blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];\n [].forEach.call(container.children, element => {\n if (blacklist.indexOf(element) === -1 && blacklistTagNames.indexOf(element.tagName) === -1) {\n ariaHidden(element, show);\n }\n });\n}\n\nfunction findIndexOf(items, callback) {\n let idx = -1;\n items.some((item, index) => {\n if (callback(item)) {\n idx = index;\n return true;\n }\n\n return false;\n });\n return idx;\n}\n\nfunction handleContainer(containerInfo, props) {\n const restoreStyle = [];\n const container = containerInfo.container;\n\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n const scrollbarSize = getScrollbarSize(ownerDocument(container));\n restoreStyle.push({\n value: container.style.paddingRight,\n property: 'padding-right',\n el: container\n }); // Use computed style, here to get the real padding to add our scrollbar width.\n\n container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`; // .mui-fixed is a global helper.\n\n const fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedElements, element => {\n restoreStyle.push({\n value: element.style.paddingRight,\n property: 'padding-right',\n el: element\n });\n element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`;\n });\n } // Improve Gatsby support\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n\n\n const parent = container.parentElement;\n const containerWindow = ownerWindow(container);\n const scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n property: 'overflow',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowX,\n property: 'overflow-x',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowY,\n property: 'overflow-y',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n\n const restore = () => {\n restoreStyle.forEach(({\n value,\n el,\n property\n }) => {\n if (value) {\n el.style.setProperty(property, value);\n } else {\n el.style.removeProperty(property);\n }\n });\n };\n\n return restore;\n}\n\nfunction getHiddenSiblings(container) {\n const hiddenSiblings = [];\n [].forEach.call(container.children, element => {\n if (element.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(element);\n }\n });\n return hiddenSiblings;\n}\n\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\nexport default class ModalManager {\n constructor() {\n this.containers = void 0;\n this.modals = void 0;\n this.modals = [];\n this.containers = [];\n }\n\n add(modal, container) {\n let modalIndex = this.modals.indexOf(modal);\n\n if (modalIndex !== -1) {\n return modalIndex;\n }\n\n modalIndex = this.modals.length;\n this.modals.push(modal); // If the modal we are adding is already in the DOM.\n\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n\n const hiddenSiblings = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);\n const containerIndex = findIndexOf(this.containers, item => item.container === container);\n\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n\n this.containers.push({\n modals: [modal],\n container,\n restore: null,\n hiddenSiblings\n });\n return modalIndex;\n }\n\n mount(modal, props) {\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n\n remove(modal) {\n const modalIndex = this.modals.indexOf(modal);\n\n if (modalIndex === -1) {\n return modalIndex;\n }\n\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.\n\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, true);\n }\n\n ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n const nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n\n return modalIndex;\n }\n\n isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n\n}","/* eslint-disable @typescript-eslint/naming-convention, consistent-return, jsx-a11y/no-noninteractive-tabindex */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument } from '@mui/utils'; // Inspired by https://github.com/focus-trap/tabbable\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\n\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n } // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome,
,
` 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 React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible]);\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 \n }\n setForgotPassword(false)}\n sx={{ color: \"#4EC1ED\", position: \"relative\", top: isSmall ? 20 : 40, right: 20 }}\n >\n \n \n\n \n :\n \n \n Login\n \n \n \n Enter credentials\n \n setUsername(e.target.value)}\n />\n setPassword(e.target.value)}\n />\n \n \n setForgotPassword(true)} sx={{ textDecoration: \"underline\", color: \"#4EC1ED\", fontSize: 15, float: \"right\", '&:hover': { cursor: \"pointer\" } }} >\n Forgot password?\n \n \n \n \n login\n \n \n }\n \n \n \n \n setOpenEmailError(false)}\n autoHideDuration={50000}\n />\n setOpenEmailSuccess(false)}\n autoHideDuration={50000}\n />\n \n \n\n \n );\n}\n","import { Box, Button, Grid, TextField, Typography, Paper, Container, Divider } from '@mui/material';\nimport { useLayoutEffect, useState, useEffect } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport Toast from '../Components/Toast';\nimport Copyright from '../Components/Copyright';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport MissingLinkLogo from '../Assets/Images/missingLinkLogo.svg';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useTheme } from '@mui/material/styles';\nimport jwt_decode from 'jwt-decode';\n\n\nexport default function PasswordReset(props) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { token } = useParams();\n const [newPassword, setNewPassword] = useState('');\n const [repeatPassword, setRepeatPassword] = useState('');\n const [validToken, setValidToken] = useState(null);\n const navigate = useNavigate();\n const [error, setError] = useState();\n const [success, setSuccess] = useState();\n\n useLayoutEffect(() => {\n if (token) {\n try {\n var tokenTest = jwt_decode(token).exp * 1000;\n if (new Date(tokenTest) > new Date()) {\n setValidToken(true);\n }\n else setValidToken(false);\n }\n catch (e) {\n setValidToken(false);\n }\n }\n }, [token]);\n\n const handleSubmit = async (e) => {\n e.stopPropagation();\n e.preventDefault();\n try {\n var response = await fetch(process.env.REACT_APP_AUTH_HOST + '/api/users/new_password', {\n method: 'POST',\n body: JSON.stringify({\n password: newPassword,\n token: token\n }),\n headers: new Headers({\n 'Content-Type': 'application/json'\n }),\n });\n if (response.ok) {\n localStorage.removeItem('access');\n localStorage.removeItem('refresh');\n localStorage.removeItem('userId');\n setSuccess(true);\n }\n else {\n const text = await response.json();\n setError(text);\n }\n }\n catch (e) {\n console.error(e);\n }\n };\n\n useEffect(() => {\n if (success) {\n setTimeout(() => navigate('/login'), 7000);\n }\n }, [navigate, success]);\n\n return (\n \n {validToken !== null &&\n \n \n \n \n \"MissingLinlogo\"\n\n {validToken\n ?\n \n \n Create new password\n \n \n \n Enter new password\n \n setNewPassword(e.target.value)} />\n setRepeatPassword(e.target.value)}\n />\n \n\n setError(false)}\n autoHideDuration={5000}\n />\n\n setSuccess(false)}\n autoHideDuration={7000}\n />\n\n \n :\n \n \n Link is invalid or expired.\n \n \n \n Resend password recovery email\n \n \n \n }\n \n\n \n\n \n\n \n }\n \n );\n}","function getCached(params) {\n try {\n let b64 = window.btoa(JSON.stringify(params));\n let stored = localStorage.getItem(b64);\n return JSON.parse(stored);\n }\n catch (err) {\n console.error(err);\n return null;\n }\n\n}\n\nfunction populateCache(params, data) {\n try {\n let b64 = window.btoa(JSON.stringify(params));\n localStorage.setItem(b64, JSON.stringify(data));\n }\n catch (err) {\n console.error(err);\n }\n}\n\nexport { getCached, populateCache };","import { createContext } from 'react';\n\nconst MainContext = createContext({ device: null, setDevice: () => { } });\n\nexport default MainContext;","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport MainContext from './MainContext';\nimport jwt_decode from 'jwt-decode';\n\n\nexport function autoRefresh(refresh) {\n return new Promise((resolve, reject) => {\n fetch(process.env.REACT_APP_AUTH_HOST + '/api/token/refresh/', {\n credentials: 'include',\n method: 'POST',\n body: JSON.stringify({\n refresh: refresh\n }),\n headers: new Headers({ 'Content-Type': 'application/json' })\n })\n .then(res => {\n if (res.ok) {\n res.json()\n .then(json => {\n localStorage.setItem('access', json.access);\n localStorage.setItem('userId', json.id);\n resolve(json.access);\n })\n .catch(err => {\n reject(err);\n });\n }\n else {\n localStorage.removeItem('refresh');\n localStorage.removeItem('userId');\n localStorage.removeItem('access');\n window.location.reload();\n }\n })\n .catch(err => {\n reject(err);\n });\n });\n}\n\n\nexport function handleAuthentication(access, refresh) {\n var promise = new Promise((resolve, reject) => {\n var token = null;\n if (access) {\n var testVal = (jwt_decode(access).exp * 1000 - Date.now());\n if (testVal > 10000) {\n token = access;\n }\n }\n\n if (token) {\n resolve(token);\n }\n else if (refresh) {\n fetch(process.env.REACT_APP_AUTH_HOST + '/api/token/refresh/', {\n credentials: 'include',\n method: 'POST',\n body: JSON.stringify({\n refresh: refresh\n }),\n headers: new Headers({ 'Content-Type': 'application/json' })\n })\n .then(res => {\n if (res.ok) {\n res.json()\n .then(json => {\n localStorage.setItem('access', json.access);\n localStorage.setItem('userId', json.id);\n resolve(json.access);\n })\n .catch(err => {\n reject(err);\n });\n }\n else if (res.status === 401 || res.status === 403) {\n localStorage.removeItem('access');\n localStorage.removeItem('refresh');\n localStorage.removeItem('userId');\n window.location.reload();\n }\n else {\n reject(res.status);\n }\n })\n .catch(err => {\n reject(err);\n });\n }\n else {\n reject('Error in authentication');\n }\n });\n return promise;\n}\n\nexport function useFetchCloud() {\n const { accessToken, setAccessToken, tokenType, user } = useContext(MainContext);\n const accessRef = useRef(accessToken);\n const [rawRes, setRawRes] = useState(null);\n const [cloudData, setCloudData] = useState(null);\n useEffect(() => {\n accessRef.current = accessToken;\n }, [accessToken]);\n\n useEffect(() => {\n if (rawRes && !rawRes.bodyUsed) {\n rawRes.text()\n .then((ev) => {\n let json = ev ? JSON.parse(ev) : {};\n setCloudData(json);\n });\n }\n }, [rawRes]);\n\n const fetchCloud = useCallback((endpoint, method, body, fileUpload = false, imageUpload = false) => {\n if (!endpoint || !method) throw new Error('Missing params');\n\n var contentType = 'application/json';\n var fetchBody = undefined;\n\n if (body) {\n if (fileUpload) {\n fetchBody = new FormData();\n for (let key in body) {\n fetchBody.append(key, body[key]);\n }\n }\n else {\n fetchBody = JSON.stringify(body);\n }\n }\n\n if (tokenType === 'bearer') {\n return new Promise((resolve, reject) => {\n handleAuthentication(accessRef.current.access, accessRef.current.refresh)\n .then((access) => {\n fetch(`${imageUpload ? process.env.REACT_APP_IMAGE_UPLOAD_HOST : process.env.REACT_APP_AUTH_HOST}/api/${endpoint}`, {\n method: method.toUpperCase(),\n headers: fileUpload ?\n new Headers({ 'Authorization': 'Bearer ' + access, }) :\n new Headers({ 'Authorization': 'Bearer ' + access, 'Content-Type': contentType }),\n body: fetchBody\n })\n .then(res => {\n res.text()\n .then((data) => {\n if (res.ok) resolve(data ? JSON.parse(data) : {});\n else reject(data ? JSON.parse(data) : {});\n });\n })\n .catch(err => reject(err));\n })\n .catch((err) => {\n reject(err);\n });\n });\n }\n else if (tokenType === 'token') {\n return new Promise((resolve, reject) => {\n fetch(`${process.env.REACT_APP_AUTH_HOST}/api/${endpoint}`, {\n method: method.toUpperCase(),\n headers: new Headers({ 'Authorization': 'Token ' + accessRef.current.access, 'Content-Type': contentType }),\n body: fetchBody\n })\n .then(res => {\n if (res.ok) {\n res.text()\n .then((data) => {\n resolve(data ? JSON.parse(data) : {});\n });\n }\n else reject(res.statusText);\n })\n .catch(err => reject(err));\n });\n }\n else {\n throw new Error('Invalid tokentype');\n }\n }, [setAccessToken]);\n\n const fetchCloudWithCache = useCallback(async (endpoint) => {\n if (!endpoint) throw new Error('Missing endpoint');\n\n var tokenString = tokenType === 'bearer' ? 'Bearer ' : tokenType === 'token' ? 'Token ' : '';\n\n var url = endpoint === 'users/profilelist' || endpoint === 'users/profilelistsocial' || endpoint === 'users/socialgrouplist'\n ? `${process.env.REACT_APP_AUTH_HOST}/api/${endpoint}/?id=${user.id}`\n : `${process.env.REACT_APP_AUTH_HOST}/api/${endpoint}`;\n\n var requestVar = new Request(url, {\n method: 'GET',\n headers: new Headers({\n 'Authorization': tokenString + accessRef.current.access,\n 'Content-Type': 'application/json'\n })\n });\n try {\n var cache = await caches.open('pwa-cache');\n var cacheRes = await cache.match(requestVar);\n if (cacheRes) setRawRes(cacheRes);\n }\n catch {\n console.log('Cache unavailable');\n }\n\n\n if (tokenType === 'bearer') {\n try {\n var auth = await handleAuthentication(accessRef.current.access, accessRef.current.refresh);\n accessRef.current.access = auth;\n var bearerFetchRes = await fetch(requestVar);\n if (bearerFetchRes.ok) {\n setRawRes(bearerFetchRes);\n try {\n cache.add(requestVar);\n }\n catch {\n console.log('Cache unavailable');\n }\n }\n else {\n console.error(bearerFetchRes.statusText);\n }\n }\n catch (err) {\n console.error(err);\n }\n }\n\n else if (tokenType === 'token') {\n try {\n var tokenFetchRes = await fetch(requestVar);\n if (tokenFetchRes.ok) {\n setRawRes(tokenFetchRes);\n try {\n cache.add(requestVar);\n }\n catch {\n console.log('Cache unavailable');\n }\n }\n else {\n console.error(bearerFetchRes.statusText);\n }\n }\n catch (err) {\n console.error(err);\n }\n }\n else {\n throw new Error('Invalid tokentype');\n }\n }, [user]);\n\n return { fetchCloud, cloudData, fetchCloudWithCache };\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","const hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested'; // To support composition of theme.\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['MUI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, localTheme);\n}\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\n\n\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n const outerTheme = useTheme();\n\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n\n const theme = React.useMemo(() => {\n const output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/_jsx(ThemeContext.Provider, {\n value: theme,\n children: children\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\n\nexport default ThemeProvider;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as MuiThemeProvider } from '@mui/private-theming';\nimport { exactProp } from '@mui/utils';\nimport { ThemeContext as StyledEngineThemeContext } from '@mui/styled-engine';\nimport useTheme from '../useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction InnerThemeProvider(props) {\n const theme = useTheme();\n return /*#__PURE__*/_jsx(StyledEngineThemeContext.Provider, {\n value: typeof theme === 'object' ? theme : {},\n children: props.children\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? InnerThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node\n} : void 0;\n/**\n * This component makes the `theme` available down the React tree.\n * It should preferably be used at **the root of your component tree**.\n */\n\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n return /*#__PURE__*/_jsx(MuiThemeProvider, {\n theme: localTheme,\n children: /*#__PURE__*/_jsx(InnerThemeProvider, {\n children: children\n })\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\n\nexport default ThemeProvider;","import { useEffect, useLayoutEffect, createContext, useContext, useState, createElement, useRef, useCallback, useDebugValue } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\n\nvar noop = function () { };\n// Using noop() as the undefined value as undefined can possibly be replaced\n// by something else. Prettier ignore and extra parentheses are necessary here\n// to ensure that tsc doesn't remove the __NOINLINE__ comment.\n// prettier-ignore\nvar UNDEFINED = ( /*#__NOINLINE__*/noop());\nvar OBJECT = Object;\nvar isUndefined = function (v) { return v === UNDEFINED; };\nvar isFunction = function (v) { return typeof v == 'function'; };\nvar mergeObjects = function (a, b) { return OBJECT.assign({}, a, b); };\nvar STR_UNDEFINED = 'undefined';\n// NOTE: Use function to guarantee it's re-evaluated between jsdom and node runtime for tests.\nvar hasWindow = function () { return typeof window != STR_UNDEFINED; };\nvar hasDocument = function () { return typeof document != STR_UNDEFINED; };\nvar hasRequestAnimationFrame = function () {\n return hasWindow() && typeof window['requestAnimationFrame'] != STR_UNDEFINED;\n};\n\n// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nvar table = new WeakMap();\n// counter of the key\nvar counter = 0;\n// A stable hash implementation that supports:\n// - Fast and ensures unique hash properties\n// - Handles unserializable values\n// - Handles object key ordering\n// - Generates short results\n//\n// This is not a serialization function, and the result is not guaranteed to be\n// parsible.\nvar stableHash = function (arg) {\n var type = typeof arg;\n var constructor = arg && arg.constructor;\n var isDate = constructor == Date;\n var result;\n var index;\n if (OBJECT(arg) === arg && !isDate && constructor != RegExp) {\n // Object/function, not null/date/regexp. Use WeakMap to store the id first.\n // If it's already hashed, directly return the result.\n result = table.get(arg);\n if (result)\n return result;\n // Store the hash first for circular reference detection before entering the\n // recursive `stableHash` calls.\n // For other objects like set and map, we use this id directly as the hash.\n result = ++counter + '~';\n table.set(arg, result);\n if (constructor == Array) {\n // Array.\n result = '@';\n for (index = 0; index < arg.length; index++) {\n result += stableHash(arg[index]) + ',';\n }\n table.set(arg, result);\n }\n if (constructor == OBJECT) {\n // Object, sort keys.\n result = '#';\n var keys = OBJECT.keys(arg).sort();\n while (!isUndefined((index = keys.pop()))) {\n if (!isUndefined(arg[index])) {\n result += index + ':' + stableHash(arg[index]) + ',';\n }\n }\n table.set(arg, result);\n }\n }\n else {\n result = isDate\n ? arg.toJSON()\n : type == 'symbol'\n ? arg.toString()\n : type == 'string'\n ? JSON.stringify(arg)\n : '' + arg;\n }\n return result;\n};\n\n/**\n * Due to bug https://bugs.chromium.org/p/chromium/issues/detail?id=678075,\n * it's not reliable to detect if the browser is currently online or offline\n * based on `navigator.onLine`.\n * As a work around, we always assume it's online on first load, and change\n * the status upon `online` or `offline` events.\n */\nvar online = true;\nvar isOnline = function () { return online; };\nvar hasWin = hasWindow();\nvar hasDoc = hasDocument();\n// For node and React Native, `add/removeEventListener` doesn't exist on window.\nvar onWindowEvent = hasWin && window.addEventListener\n ? window.addEventListener.bind(window)\n : noop;\nvar onDocumentEvent = hasDoc ? document.addEventListener.bind(document) : noop;\nvar offWindowEvent = hasWin && window.removeEventListener\n ? window.removeEventListener.bind(window)\n : noop;\nvar offDocumentEvent = hasDoc\n ? document.removeEventListener.bind(document)\n : noop;\nvar isVisible = function () {\n var visibilityState = hasDoc && document.visibilityState;\n return isUndefined(visibilityState) || visibilityState !== 'hidden';\n};\nvar initFocus = function (callback) {\n // focus revalidate\n onDocumentEvent('visibilitychange', callback);\n onWindowEvent('focus', callback);\n return function () {\n offDocumentEvent('visibilitychange', callback);\n offWindowEvent('focus', callback);\n };\n};\nvar initReconnect = function (callback) {\n // revalidate on reconnected\n var onOnline = function () {\n online = true;\n callback();\n };\n // nothing to revalidate, just update the status\n var onOffline = function () {\n online = false;\n };\n onWindowEvent('online', onOnline);\n onWindowEvent('offline', onOffline);\n return function () {\n offWindowEvent('online', onOnline);\n offWindowEvent('offline', onOffline);\n };\n};\nvar preset = {\n isOnline: isOnline,\n isVisible: isVisible\n};\nvar defaultConfigOptions = {\n initFocus: initFocus,\n initReconnect: initReconnect\n};\n\nvar IS_SERVER = !hasWindow() || 'Deno' in window;\n// Polyfill requestAnimationFrame\nvar rAF = function (f) {\n return hasRequestAnimationFrame() ? window['requestAnimationFrame'](f) : setTimeout(f, 1);\n};\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nvar useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n// This assignment is to extend the Navigator type to use effectiveType.\nvar navigatorConnection = typeof navigator !== 'undefined' &&\n navigator.connection;\n// Adjust the config based on slow connection status (<= 70Kbps).\nvar slowConnection = !IS_SERVER &&\n navigatorConnection &&\n (['slow-2g', '2g'].includes(navigatorConnection.effectiveType) ||\n navigatorConnection.saveData);\n\nvar serialize = function (key) {\n if (isFunction(key)) {\n try {\n key = key();\n }\n catch (err) {\n // dependencies not ready\n key = '';\n }\n }\n var args = [].concat(key);\n // If key is not falsy, or not an empty array, hash it.\n key =\n typeof key == 'string'\n ? key\n : (Array.isArray(key) ? key.length : key)\n ? stableHash(key)\n : '';\n var infoKey = key ? '$swr$' + key : '';\n return [key, args, infoKey];\n};\n\n// Global state used to deduplicate requests and store listeners\nvar SWRGlobalState = new WeakMap();\n\nvar FOCUS_EVENT = 0;\nvar RECONNECT_EVENT = 1;\nvar MUTATE_EVENT = 2;\n\nvar broadcastState = function (cache, key, data, error, isValidating, revalidate, broadcast) {\n if (broadcast === void 0) { broadcast = true; }\n var _a = SWRGlobalState.get(cache), EVENT_REVALIDATORS = _a[0], STATE_UPDATERS = _a[1], FETCH = _a[3];\n var revalidators = EVENT_REVALIDATORS[key];\n var updaters = STATE_UPDATERS[key];\n // Cache was populated, update states of all hooks.\n if (broadcast && updaters) {\n for (var i = 0; i < updaters.length; ++i) {\n updaters[i](data, error, isValidating);\n }\n }\n // If we also need to revalidate, only do it for the first hook.\n if (revalidate) {\n // Invalidate the key by deleting the concurrent request markers so new\n // requests will not be deduped.\n delete FETCH[key];\n if (revalidators && revalidators[0]) {\n return revalidators[0](MUTATE_EVENT).then(function () {\n return cache.get(key);\n });\n }\n }\n return cache.get(key);\n};\n\n// Global timestamp.\nvar __timestamp = 0;\nvar getTimestamp = function () { return ++__timestamp; };\n\nvar internalMutate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(void 0, void 0, void 0, function () {\n var cache, _key, _data, _opts, options, populateCache, revalidate, rollbackOnError, optimisticData, _a, key, keyInfo, _b, MUTATION, data, error, beforeMutationTs, hasOptimisticData, rollbackData, res;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n cache = args[0], _key = args[1], _data = args[2], _opts = args[3];\n options = typeof _opts === 'boolean' ? { revalidate: _opts } : _opts || {};\n populateCache = isUndefined(options.populateCache)\n ? true\n : options.populateCache;\n revalidate = options.revalidate !== false;\n rollbackOnError = options.rollbackOnError !== false;\n optimisticData = options.optimisticData;\n _a = serialize(_key), key = _a[0], keyInfo = _a[2];\n if (!key)\n return [2 /*return*/];\n _b = SWRGlobalState.get(cache), MUTATION = _b[2];\n // If there is no new data provided, revalidate the key with current state.\n if (args.length < 3) {\n // Revalidate and broadcast state.\n return [2 /*return*/, broadcastState(cache, key, cache.get(key), UNDEFINED, UNDEFINED, revalidate, true)];\n }\n data = _data;\n beforeMutationTs = getTimestamp();\n MUTATION[key] = [beforeMutationTs, 0];\n hasOptimisticData = !isUndefined(optimisticData);\n rollbackData = cache.get(key);\n // Do optimistic data update.\n if (hasOptimisticData) {\n cache.set(key, optimisticData);\n broadcastState(cache, key, optimisticData);\n }\n if (isFunction(data)) {\n // `data` is a function, call it passing current cache value.\n try {\n data = data(cache.get(key));\n }\n catch (err) {\n // If it throws an error synchronously, we shouldn't update the cache.\n error = err;\n }\n }\n if (!(data && isFunction(data.then))) return [3 /*break*/, 2];\n return [4 /*yield*/, data.catch(function (err) {\n error = err;\n })\n // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n ];\n case 1:\n // This means that the mutation is async, we need to check timestamps to\n // avoid race conditions.\n data = _c.sent();\n // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n if (beforeMutationTs !== MUTATION[key][0]) {\n if (error)\n throw error;\n return [2 /*return*/, data];\n }\n else if (error && hasOptimisticData && rollbackOnError) {\n // Rollback. Always populate the cache in this case but without\n // transforming the data.\n populateCache = true;\n data = rollbackData;\n cache.set(key, rollbackData);\n }\n _c.label = 2;\n case 2:\n // If we should write back the cache after request.\n if (populateCache) {\n if (!error) {\n // Transform the result into data.\n if (isFunction(populateCache)) {\n data = populateCache(data, rollbackData);\n }\n // Only update cached data if there's no error. Data can be `undefined` here.\n cache.set(key, data);\n }\n // Always update or reset the error.\n cache.set(keyInfo, mergeObjects(cache.get(keyInfo), { error: error }));\n }\n // Reset the timestamp to mark the mutation has ended.\n MUTATION[key][1] = getTimestamp();\n return [4 /*yield*/, broadcastState(cache, key, data, error, UNDEFINED, revalidate, !!populateCache)\n // Throw error or return data\n ];\n case 3:\n res = _c.sent();\n // Throw error or return data\n if (error)\n throw error;\n return [2 /*return*/, populateCache ? res : data];\n }\n });\n });\n};\n\nvar revalidateAllKeys = function (revalidators, type) {\n for (var key in revalidators) {\n if (revalidators[key][0])\n revalidators[key][0](type);\n }\n};\nvar initCache = function (provider, options) {\n // The global state for a specific provider will be used to deduplicate\n // requests and store listeners. As well as a mutate function that bound to\n // the cache.\n // Provider's global state might be already initialized. Let's try to get the\n // global state associated with the provider first.\n if (!SWRGlobalState.has(provider)) {\n var opts = mergeObjects(defaultConfigOptions, options);\n // If there's no global state bound to the provider, create a new one with the\n // new mutate function.\n var EVENT_REVALIDATORS = {};\n var mutate = internalMutate.bind(UNDEFINED, provider);\n var unmount = noop;\n // Update the state if it's new, or the provider has been extended.\n SWRGlobalState.set(provider, [EVENT_REVALIDATORS, {}, {}, {}, mutate]);\n // This is a new provider, we need to initialize it and setup DOM events\n // listeners for `focus` and `reconnect` actions.\n if (!IS_SERVER) {\n // When listening to the native events for auto revalidations,\n // we intentionally put a delay (setTimeout) here to make sure they are\n // fired after immediate JavaScript executions, which can possibly be\n // React's state updates.\n // This avoids some unnecessary revalidations such as\n // https://github.com/vercel/swr/issues/1680.\n var releaseFocus_1 = opts.initFocus(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, FOCUS_EVENT)));\n var releaseReconnect_1 = opts.initReconnect(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, RECONNECT_EVENT)));\n unmount = function () {\n releaseFocus_1 && releaseFocus_1();\n releaseReconnect_1 && releaseReconnect_1();\n // When un-mounting, we need to remove the cache provider from the state\n // storage too because it's a side-effect. Otherwise when re-mounting we\n // will not re-register those event listeners.\n SWRGlobalState.delete(provider);\n };\n }\n // We might want to inject an extra layer on top of `provider` in the future,\n // such as key serialization, auto GC, etc.\n // For now, it's just a `Map` interface without any modifications.\n return [provider, mutate, unmount];\n }\n return [provider, SWRGlobalState.get(provider)[4]];\n};\n\n// error retry\nvar onErrorRetry = function (_, __, config, revalidate, opts) {\n var maxRetryCount = config.errorRetryCount;\n var currentRetryCount = opts.retryCount;\n // Exponential backoff\n var timeout = ~~((Math.random() + 0.5) *\n (1 << (currentRetryCount < 8 ? currentRetryCount : 8))) * config.errorRetryInterval;\n if (!isUndefined(maxRetryCount) && currentRetryCount > maxRetryCount) {\n return;\n }\n setTimeout(revalidate, timeout, opts);\n};\n// Default cache provider\nvar _a = initCache(new Map()), cache = _a[0], mutate = _a[1];\n// Default config\nvar defaultConfig = mergeObjects({\n // events\n onLoadingSlow: noop,\n onSuccess: noop,\n onError: noop,\n onErrorRetry: onErrorRetry,\n onDiscarded: noop,\n // switches\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n revalidateIfStale: true,\n shouldRetryOnError: true,\n // timeouts\n errorRetryInterval: slowConnection ? 10000 : 5000,\n focusThrottleInterval: 5 * 1000,\n dedupingInterval: 2 * 1000,\n loadingTimeout: slowConnection ? 5000 : 3000,\n // providers\n compare: function (currentData, newData) {\n return stableHash(currentData) == stableHash(newData);\n },\n isPaused: function () { return false; },\n cache: cache,\n mutate: mutate,\n fallback: {}\n}, \n// use web preset by default\npreset);\n\nvar mergeConfigs = function (a, b) {\n // Need to create a new object to avoid mutating the original here.\n var v = mergeObjects(a, b);\n // If two configs are provided, merge their `use` and `fallback` options.\n if (b) {\n var u1 = a.use, f1 = a.fallback;\n var u2 = b.use, f2 = b.fallback;\n if (u1 && u2) {\n v.use = u1.concat(u2);\n }\n if (f1 && f2) {\n v.fallback = mergeObjects(f1, f2);\n }\n }\n return v;\n};\n\nvar SWRConfigContext = createContext({});\nvar SWRConfig$1 = function (props) {\n var value = props.value;\n // Extend parent context values and middleware.\n var extendedConfig = mergeConfigs(useContext(SWRConfigContext), value);\n // Should not use the inherited provider.\n var provider = value && value.provider;\n // Use a lazy initialized state to create the cache on first access.\n var cacheContext = useState(function () {\n return provider\n ? initCache(provider(extendedConfig.cache || cache), value)\n : UNDEFINED;\n })[0];\n // Override the cache if a new provider is given.\n if (cacheContext) {\n extendedConfig.cache = cacheContext[0];\n extendedConfig.mutate = cacheContext[1];\n }\n // Unsubscribe events.\n useIsomorphicLayoutEffect(function () { return (cacheContext ? cacheContext[2] : UNDEFINED); }, []);\n return createElement(SWRConfigContext.Provider, mergeObjects(props, {\n value: extendedConfig\n }));\n};\n\n/**\n * An implementation of state with dependency-tracking.\n */\nvar useStateWithDeps = function (state, unmountedRef) {\n var rerender = useState({})[1];\n var stateRef = useRef(state);\n // If a state property (data, error or isValidating) is accessed by the render\n // function, we mark the property as a dependency so if it is updated again\n // in the future, we trigger a rerender.\n // This is also known as dependency-tracking.\n var stateDependenciesRef = useRef({\n data: false,\n error: false,\n isValidating: false\n });\n /**\n * @param payload To change stateRef, pass the values explicitly to setState:\n * @example\n * ```js\n * setState({\n * isValidating: false\n * data: newData // set data to newData\n * error: undefined // set error to undefined\n * })\n *\n * setState({\n * isValidating: false\n * data: undefined // set data to undefined\n * error: err // set error to err\n * })\n * ```\n */\n var setState = useCallback(function (payload) {\n var shouldRerender = false;\n var currentState = stateRef.current;\n for (var _ in payload) {\n var k = _;\n // If the property has changed, update the state and mark rerender as\n // needed.\n if (currentState[k] !== payload[k]) {\n currentState[k] = payload[k];\n // If the property is accessed by the component, a rerender should be\n // triggered.\n if (stateDependenciesRef.current[k]) {\n shouldRerender = true;\n }\n }\n }\n if (shouldRerender && !unmountedRef.current) {\n rerender({});\n }\n }, \n // config.suspense isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Always update the state reference.\n useIsomorphicLayoutEffect(function () {\n stateRef.current = state;\n });\n return [stateRef, stateDependenciesRef.current, setState];\n};\n\nvar normalize = function (args) {\n return isFunction(args[1])\n ? [args[0], args[1], args[2] || {}]\n : [args[0], null, (args[1] === null ? args[2] : args[1]) || {}];\n};\n\nvar useSWRConfig = function () {\n return mergeObjects(defaultConfig, useContext(SWRConfigContext));\n};\n\n// It's tricky to pass generic types as parameters, so we just directly override\n// the types here.\nvar withArgs = function (hook) {\n return function useSWRArgs() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // Get the default and inherited configuration.\n var fallbackConfig = useSWRConfig();\n // Normalize arguments.\n var _a = normalize(args), key = _a[0], fn = _a[1], _config = _a[2];\n // Merge configurations.\n var config = mergeConfigs(fallbackConfig, _config);\n // Apply middleware\n var next = hook;\n var use = config.use;\n if (use) {\n for (var i = use.length; i-- > 0;) {\n next = use[i](next);\n }\n }\n return next(key, fn || config.fetcher, config);\n };\n};\n\n// Add a callback function to a list of keyed callback functions and return\n// the unsubscribe function.\nvar subscribeCallback = function (key, callbacks, callback) {\n var keyedRevalidators = callbacks[key] || (callbacks[key] = []);\n keyedRevalidators.push(callback);\n return function () {\n var index = keyedRevalidators.indexOf(callback);\n if (index >= 0) {\n // O(1): faster than splice\n keyedRevalidators[index] = keyedRevalidators[keyedRevalidators.length - 1];\n keyedRevalidators.pop();\n }\n };\n};\n\nvar WITH_DEDUPE = { dedupe: true };\nvar useSWRHandler = function (_key, fetcher, config) {\n var cache = config.cache, compare = config.compare, fallbackData = config.fallbackData, suspense = config.suspense, revalidateOnMount = config.revalidateOnMount, refreshInterval = config.refreshInterval, refreshWhenHidden = config.refreshWhenHidden, refreshWhenOffline = config.refreshWhenOffline;\n var _a = SWRGlobalState.get(cache), EVENT_REVALIDATORS = _a[0], STATE_UPDATERS = _a[1], MUTATION = _a[2], FETCH = _a[3];\n // `key` is the identifier of the SWR `data` state, `keyInfo` holds extra\n // states such as `error` and `isValidating` inside,\n // all of them are derived from `_key`.\n // `fnArgs` is an array of arguments parsed from the key, which will be passed\n // to the fetcher.\n var _b = serialize(_key), key = _b[0], fnArgs = _b[1], keyInfo = _b[2];\n // If it's the initial render of this hook.\n var initialMountedRef = useRef(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n var unmountedRef = useRef(false);\n // Refs to keep the key and config.\n var keyRef = useRef(key);\n var fetcherRef = useRef(fetcher);\n var configRef = useRef(config);\n var getConfig = function () { return configRef.current; };\n var isActive = function () { return getConfig().isVisible() && getConfig().isOnline(); };\n var patchFetchInfo = function (info) {\n return cache.set(keyInfo, mergeObjects(cache.get(keyInfo), info));\n };\n // Get the current state that SWR should return.\n var cached = cache.get(key);\n var fallback = isUndefined(fallbackData)\n ? config.fallback[key]\n : fallbackData;\n var data = isUndefined(cached) ? fallback : cached;\n var info = cache.get(keyInfo) || {};\n var error = info.error;\n var isInitialMount = !initialMountedRef.current;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n var shouldRevalidate = function () {\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !isUndefined(revalidateOnMount))\n return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused())\n return false;\n return suspense\n ? // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately on mount again.\n !isUndefined(data)\n : // If there is no stale data, we need to revalidate on mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n isUndefined(data) || config.revalidateIfStale;\n };\n // Resolve the current validating state.\n var resolveValidating = function () {\n if (!key || !fetcher)\n return false;\n if (info.isValidating)\n return true;\n // If it's not mounted yet and it should revalidate on mount, revalidate.\n return isInitialMount && shouldRevalidate();\n };\n var isValidating = resolveValidating();\n var _c = useStateWithDeps({\n data: data,\n error: error,\n isValidating: isValidating\n }, unmountedRef), stateRef = _c[0], stateDependencies = _c[1], setState = _c[2];\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n var revalidate = useCallback(function (revalidateOpts) { return __awaiter(void 0, void 0, void 0, function () {\n var currentFetcher, newData, startAt, loading, opts, shouldStartNewRequest, isCurrentKeyMounted, cleanupState, newState, finishRequestAndUpdateState, mutationInfo, err_1;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n currentFetcher = fetcherRef.current;\n if (!key ||\n !currentFetcher ||\n unmountedRef.current ||\n getConfig().isPaused()) {\n return [2 /*return*/, false];\n }\n loading = true;\n opts = revalidateOpts || {};\n shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n isCurrentKeyMounted = function () {\n return !unmountedRef.current &&\n key === keyRef.current &&\n initialMountedRef.current;\n };\n cleanupState = function () {\n // Check if it's still the same request before deleting.\n var requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n newState = { isValidating: false };\n finishRequestAndUpdateState = function () {\n patchFetchInfo({ isValidating: false });\n // We can only set state if it's safe (still mounted with the same key).\n if (isCurrentKeyMounted()) {\n setState(newState);\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n patchFetchInfo({\n isValidating: true\n });\n setState({ isValidating: true });\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n if (shouldStartNewRequest) {\n // Tell all other hooks to change the `isValidating` state.\n broadcastState(cache, key, stateRef.current.data, stateRef.current.error, true);\n // If no cache being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && !cache.get(key)) {\n setTimeout(function () {\n if (loading && isCurrentKeyMounted()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n FETCH[key] = [currentFetcher.apply(void 0, fnArgs), getTimestamp()];\n }\n _a = FETCH[key], newData = _a[0], startAt = _a[1];\n return [4 /*yield*/, newData];\n case 2:\n newData = _b.sent();\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (isCurrentKeyMounted()) {\n getConfig().onDiscarded(key);\n }\n }\n return [2 /*return*/, false];\n }\n // Clear error.\n patchFetchInfo({\n error: UNDEFINED\n });\n newState.error = UNDEFINED;\n mutationInfo = MUTATION[key];\n if (!isUndefined(mutationInfo) &&\n // case 1\n (startAt <= mutationInfo[0] ||\n // case 2\n startAt <= mutationInfo[1] ||\n // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (isCurrentKeyMounted()) {\n getConfig().onDiscarded(key);\n }\n }\n return [2 /*return*/, false];\n }\n // Deep compare with latest state to avoid extra re-renders.\n // For local state, compare and assign.\n if (!compare(stateRef.current.data, newData)) {\n newState.data = newData;\n }\n else {\n // data and newData are deeply equal\n // it should be safe to broadcast the stale data\n newState.data = stateRef.current.data;\n // At the end of this function, `brocastState` invokes the `onStateUpdate` function,\n // which takes care of avoiding the re-render\n }\n // For global state, it's possible that the key has changed.\n // https://github.com/vercel/swr/pull/1058\n if (!compare(cache.get(key), newData)) {\n cache.set(key, newData);\n }\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (isCurrentKeyMounted()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n return [3 /*break*/, 4];\n case 3:\n err_1 = _b.sent();\n cleanupState();\n // Not paused, we continue handling the error. Otherwise discard it.\n if (!getConfig().isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n patchFetchInfo({ error: err_1 });\n newState.error = err_1;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && isCurrentKeyMounted()) {\n getConfig().onError(err_1, key, config);\n if ((typeof config.shouldRetryOnError === 'boolean' &&\n config.shouldRetryOnError) ||\n (isFunction(config.shouldRetryOnError) &&\n config.shouldRetryOnError(err_1))) {\n // When retrying, dedupe is always enabled\n if (isActive()) {\n // If it's active, stop. It will auto revalidate when refocusing\n // or reconnecting.\n getConfig().onErrorRetry(err_1, key, config, revalidate, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n return [3 /*break*/, 4];\n case 4:\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n // Here is the source of the request, need to tell all other hooks to\n // update their states.\n if (isCurrentKeyMounted() && shouldStartNewRequest) {\n broadcastState(cache, key, newState.data, newState.error, false);\n }\n return [2 /*return*/, true];\n }\n });\n }); }, \n // `setState` is immutable, and `eventsCallback`, `fnArgs`, `keyInfo`,\n // and `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [key]);\n // Similar to the global mutate, but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n var boundMutate = useCallback(\n // By using `bind` we don't need to modify the size of the rest arguments.\n // Due to https://github.com/microsoft/TypeScript/issues/37181, we have to\n // cast it to any for now.\n internalMutate.bind(UNDEFINED, cache, function () { return keyRef.current; }), \n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Always update fetcher and config refs.\n useIsomorphicLayoutEffect(function () {\n fetcherRef.current = fetcher;\n configRef.current = config;\n });\n // After mounted or key changed.\n useIsomorphicLayoutEffect(function () {\n if (!key)\n return;\n var keyChanged = key !== keyRef.current;\n var softRevalidate = revalidate.bind(UNDEFINED, WITH_DEDUPE);\n // Expose state updater to global event listeners. So we can update hook's\n // internal state from the outside.\n var onStateUpdate = function (updatedData, updatedError, updatedIsValidating) {\n setState(mergeObjects({\n error: updatedError,\n isValidating: updatedIsValidating\n }, \n // Since `setState` only shallowly compares states, we do a deep\n // comparison here.\n compare(stateRef.current.data, updatedData)\n ? UNDEFINED\n : {\n data: updatedData\n }));\n };\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n var nextFocusRevalidatedAt = 0;\n var onRevalidate = function (type) {\n if (type == FOCUS_EVENT) {\n var now = Date.now();\n if (getConfig().revalidateOnFocus &&\n now > nextFocusRevalidatedAt &&\n isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n }\n else if (type == RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n }\n else if (type == MUTATE_EVENT) {\n return revalidate();\n }\n return;\n };\n var unsubUpdate = subscribeCallback(key, STATE_UPDATERS, onStateUpdate);\n var unsubEvents = subscribeCallback(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // When `key` updates, reset the state to the initial value\n // and trigger a rerender if necessary.\n if (keyChanged) {\n setState({\n data: data,\n error: error,\n isValidating: isValidating\n });\n }\n // Trigger a revalidation.\n if (shouldRevalidate()) {\n if (isUndefined(data) || IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n }\n else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n rAF(softRevalidate);\n }\n }\n return function () {\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubUpdate();\n unsubEvents();\n };\n }, [key, revalidate]);\n // Polling\n useIsomorphicLayoutEffect(function () {\n var timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n var interval = isFunction(refreshInterval)\n ? refreshInterval(data)\n : refreshInterval;\n // We only start next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online and not errored.\n if (!stateRef.current.error &&\n (refreshWhenHidden || getConfig().isVisible()) &&\n (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n }\n else {\n // Schedule next interval to check again.\n next();\n }\n }\n next();\n return function () {\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [refreshInterval, refreshWhenHidden, refreshWhenOffline, revalidate]);\n // Display debug info in React DevTools.\n useDebugValue(data);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && isUndefined(data) && key) {\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n throw isUndefined(error) ? revalidate(WITH_DEDUPE) : error;\n }\n return {\n mutate: boundMutate,\n get data() {\n stateDependencies.data = true;\n return data;\n },\n get error() {\n stateDependencies.error = true;\n return error;\n },\n get isValidating() {\n stateDependencies.isValidating = true;\n return isValidating;\n }\n };\n};\nvar SWRConfig = OBJECT.defineProperty(SWRConfig$1, 'default', {\n value: defaultConfig\n});\nvar unstable_serialize = function (key) { return serialize(key)[0]; };\nvar useSWR = withArgs(useSWRHandler);\n\n// useSWR\n\nexport { SWRConfig, useSWR as default, mutate, unstable_serialize, useSWRConfig };\n","import { handleAuthentication } from 'kerberus-components';\n\nexport default async function SWRFetcher(route, access, refresh) {\n const auth = await handleAuthentication(access, refresh);\n\n if (Array.isArray(route)) {\n const res = await fetch(`${process.env.REACT_APP_AUTH_HOST}/api/${route[0]}`, {\n headers: new Headers({ 'Authorization': 'Bearer ' + auth, 'Content-Type': 'application/json' })\n });\n return res.json();\n }\n else {\n const res = await fetch(`${process.env.REACT_APP_AUTH_HOST}/api/${route}`, {\n headers: new Headers({ 'Authorization': 'Bearer ' + auth, 'Content-Type': 'application/json' })\n });\n return res.json();\n }\n}\n","import { useState, useRef, useEffect, Fragment } from 'react';\nimport { autoRefresh, MainContext, getCached } from 'kerberus-components';\nimport { ThemeProvider, createTheme } from '@mui/material/styles';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport Toast from '../Toast';\nimport useSWR, { SWRConfig } from 'swr';\nimport SWRFetcher from './SWRFetcher';\n\nconst theme = createTheme();\n\nexport default function LoginProvider({ children }) {\n let location = useLocation();\n const [accessToken, setAccessToken] = useState({\n access: localStorage.getItem('access'),\n refresh: localStorage.getItem('refresh'),\n userId: localStorage.getItem('userId')\n });\n const refreshInterval = useRef(null);\n const [open, setOpen] = useState({\n type: '',\n title: '',\n message: '',\n open: false,\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n });\n const [bulkData, setBulkData] = useState({\n user: {\n online_minutes: [],\n prev_online_minutes: []\n },\n company: [],\n social_groups: []\n });\n const accessRef = useRef(accessToken);\n const navigate = useNavigate();\n const { data: user } = useSWR(['users/timetableprofile/', localStorage.getItem('userId')], (route) => SWRFetcher(route, accessRef.current.access, accessRef.current.refresh));\n const pushSubscribed = useRef(false);\n const bulkCacheLoaded = useRef(false);\n\n useEffect(() => {\n if (user) {\n if (!bulkCacheLoaded.current) {\n const cachedVal = getCached({\n device: 'socketLocation',\n target: 'clientBulk',\n user: user.id,\n params: {\n filters: {\n tz: user.tz ?? Intl.DateTimeFormat().resolvedOptions().timeZone\n }\n }\n });\n if (cachedVal) {\n setBulkData(cachedVal);\n }\n bulkCacheLoaded.current = true;\n }\n if (user.push_enabled && !pushSubscribed.current) {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.getRegistration()\n .then(registration => {\n if (registration) {\n Notification.requestPermission()\n .then(perm => {\n if (perm === 'granted') {\n navigator.serviceWorker.controller.postMessage({\n type: 'subscribe',\n access: accessRef.current.access\n });\n }\n pushSubscribed.current = true;\n });\n }\n });\n }\n }\n }\n\n }, [user, navigate]);\n\n const MainContextVal = { accessToken, setAccessToken, user, tokenType: 'bearer', setOpen, bulkData, setBulkData };\n\n useEffect(() => {\n if (accessToken?.refresh) {\n if (refreshInterval.current) return;\n const interval = 1000 * 60 * 5;\n refreshInterval.current = setInterval(() => {\n autoRefresh(accessToken.refresh)\n .then(token => {\n accessRef.current.access = token;\n setAccessToken(prev => ({ ...prev, access: token }));\n })\n .catch((err) => {\n if (err === 401 || err === 403) {\n accessRef.current.refresh = null;\n setAccessToken(prev => ({ ...prev, refresh: null }));\n }\n });\n\n }, interval);\n }\n // Redirect to login screen if refresh is removed for some reason\n else {\n localStorage.removeItem('access');\n localStorage.removeItem('refresh');\n localStorage.removeItem('userId');\n navigate('/login', { state: { from: location.pathname } });\n }\n\n return () => {\n clearInterval(refreshInterval.current);\n refreshInterval.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [accessToken?.refresh, navigate]);\n\n return (\n \n setOpen({\n type: '',\n title: '',\n message: '',\n open: false,\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n })}\n autoHideDuration={open.autoHideDuration}\n />\n \n \n {accessToken?.access && user &&\n SWRFetcher(route, accessRef.current.access, accessRef.current.refresh) }} >\n {children}\n \n }\n \n \n \n );\n}\n","import { createContext } from 'react';\n\nconst SocketContext = createContext({});\n\nexport default SocketContext;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,v=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",h=+e;return(o.utc(v).valueOf()-(h-=h%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString(\"en-US\",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a).$set(\"millisecond\",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,\"minute\")}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(t,s){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(s):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){\"use strict\";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=31536e6,h=2592e6,a=/^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,d={years:u,months:h,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof p},f=function(t,s,n){return new p(t,n,s.$l)},m=function(t){return s.p(t)+\"s\"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},g=function(t,s){return t?l(t)?{negative:!0,format:\"\"+y(t)+s}:{negative:!1,format:\"\"+t+s}:{negative:!1,format:\"\"}},p=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*d[m(s)],this);if(\"number\"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if(\"object\"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if(\"string\"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*d[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/h),t%=h,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=g(this.$d.years,\"Y\"),s=g(this.$d.months,\"M\"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=g(n,\"D\"),e=g(this.$d.hours,\"H\"),r=g(this.$d.minutes,\"M\"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3);var u=g(o,\"S\"),h=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?\"T\":\"\",d=(h?\"-\":\"\")+\"P\"+t.format+s.format+i.format+a+e.format+r.format+u.format;return\"P\"===d||\"-P\"===d?\"P0D\":d},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||\"YYYY-MM-DDTHH:mm:ss\",i={Y:this.$d.years,YY:s.s(this.$d.years,2,\"0\"),YYYY:s.s(this.$d.years,4,\"0\"),M:this.$d.months,MM:s.s(this.$d.months,2,\"0\"),D:this.$d.days,DD:s.s(this.$d.days,2,\"0\"),H:this.$d.hours,HH:s.s(this.$d.hours,2,\"0\"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,\"0\"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,\"0\"),SSS:s.s(this.$d.milliseconds,3,\"0\")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/d[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return\"milliseconds\"===n?s%=1e3:s=\"weeks\"===n?$(s/d[n]):this.$d[n],0===s?0:s},y.add=function(t,s,n){var i;return i=s?t*d[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,\"ms\").locale(this.$l).fromNow(!s)},y.milliseconds=function(){return this.get(\"milliseconds\")},y.asMilliseconds=function(){return this.as(\"milliseconds\")},y.seconds=function(){return this.get(\"seconds\")},y.asSeconds=function(){return this.as(\"seconds\")},y.minutes=function(){return this.get(\"minutes\")},y.asMinutes=function(){return this.as(\"minutes\")},y.hours=function(){return this.get(\"hours\")},y.asHours=function(){return this.as(\"hours\")},y.days=function(){return this.get(\"days\")},y.asDays=function(){return this.as(\"days\")},y.weeks=function(){return this.get(\"weeks\")},y.asWeeks=function(){return this.as(\"weeks\")},y.months=function(){return this.get(\"months\")},y.asMonths=function(){return this.as(\"months\")},y.years=function(){return this.get(\"years\")},y.asYears=function(){return this.as(\"years\")},l}();return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)&&(t=t.asMilliseconds()),r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)&&(t=t.asMilliseconds()),o.bind(this)(t,s)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_customParseFormat=e()}(this,(function(){\"use strict\";var t={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},e=/(\\[[^[]*\\])|([-:/.()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^\\s\\d-_:/()]+/,o={},s=function(t){return(t=+t)+(t>68?1900:2e3)};var a=function(t){return function(e){this[t]=+e}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if(\"Z\"===t)return 0;var e=t.match(/([+-]|\\d\\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:\"+\"===e[0]?-n:n}(t)}],u=function(t){var e=o[t];return e&&(e.indexOf?e:e.s.concat(e.f))},h=function(t,e){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(t.indexOf(r(i,0,e))>-1){n=i>12;break}}else n=t===(e?\"pm\":\"PM\");return n},d={A:[i,function(t){this.afternoon=h(t,!1)}],a:[i,function(t){this.afternoon=h(t,!0)}],S:[/\\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\\d{3}/,function(t){this.milliseconds=+t}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(t){var e=o.ordinal,n=t.match(/\\d+/);if(this.day=n[0],e)for(var r=1;r<=31;r+=1)e(r).replace(/\\[|\\]/g,\"\")===t&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(t){var e=u(\"months\"),n=(u(\"monthsShort\")||e.map((function(t){return t.substr(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(t){var e=u(\"months\").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(t){this.year=s(t)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,r){var o=r&&r.toUpperCase();return n||i[r]||t[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),a=s.length,f=0;f-1)return new Date((\"X\"===e?1e3:1)*t);var r=c(e)(t),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,u=r.seconds,h=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=u||0,g=h||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(t){return new Date(\"\")}}(e,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),h&&e!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,t)}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport duration from 'dayjs/plugin/duration';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(isoWeek);\ndayjs.extend(isBetween);\ndayjs.extend(duration);\ndayjs.extend(customParseFormat);\ndayjs.extend(relativeTime);\n\nexport {\n dayjs, timezone, isoWeek, isBetween, duration, customParseFormat, relativeTime\n};","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import SocketContext from './SocketContext';\nimport { dayjs } from '../dayjs-utils';\nimport { useState, useEffect, useContext, useCallback, useRef } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getCached, populateCache } from './SocketCache';\n\nexport const useWsDataProvider = (wsInstance = null) => {\n const socketContext = useContext(SocketContext);\n const { sendJsonMessage, lastJsonMessage } = wsInstance ?? socketContext;\n const [requestData, setRequestData] = useState(null);\n const [loaded, setLoaded] = useState(false);\n const clientRef = useRef(null);\n const cacheParams = useRef(null);\n const subscribedRef = useRef(false);\n const deviceRef = useRef(null);\n\n useEffect(() => {\n let mounted = true;\n if (lastJsonMessage?.payload?.client === clientRef.current && mounted) {\n setRequestData(lastJsonMessage.payload.data);\n populateCache(cacheParams.current, lastJsonMessage.payload.data);\n setLoaded(true);\n }\n return () => mounted = false;\n }, [lastJsonMessage]);\n\n const getData = useCallback((device, target, { ignoreCache = false, subscribe = false, filters = {}, multi = false } = {}) => {\n let clientUuid = uuidv4();\n clientRef.current = clientUuid;\n deviceRef.current = device;\n if (!target || !device) {\n throw new Error('Invalid function call');\n }\n cacheParams.current = {\n device: device,\n target,\n user: localStorage.getItem('userId'),\n params: target === 'devtracking' ? { filters: { ...filters, today: dayjs(filters.today).format('GGGG-[W]WW') }, multi } : { filters, multi }\n };\n sendJsonMessage({\n dest: device,\n payload: {\n rpc: {\n command: 'get',\n target: target,\n params: { filters, client: clientUuid, multi },\n subscribe: subscribe ? target : undefined\n }\n },\n });\n if (subscribe && !subscribedRef.current) {\n subscribedRef.current = true;\n }\n if (!ignoreCache) {\n let cachedVal = getCached(cacheParams.current);\n if (cachedVal) {\n setRequestData(cachedVal);\n }\n }\n }, [sendJsonMessage]);\n\n const doUnsubscribe = useCallback(() => {\n if (!subscribedRef.current || !clientRef.current || !deviceRef.current) {\n return;\n }\n sendJsonMessage({\n dest: deviceRef.current,\n payload: {\n rpc: {\n unsubscribe: clientRef.current,\n }\n }\n });\n }, [sendJsonMessage]);\n\n const setData = useCallback((device, target, { filters = {} } = {}) => {\n let clientUuid = uuidv4();\n clientRef.current = clientUuid;\n if (!target || !device) {\n throw new Error('Invalid function call');\n }\n sendJsonMessage({\n dest: device,\n payload: {\n rpc: {\n command: 'set',\n target: target,\n params: { filters, client: clientUuid }\n }\n },\n });\n }, [sendJsonMessage]);\n\n return { getData, data: requestData, loaded, doUnsubscribe, setData };\n};\n","import * as React from 'react';\nimport { SocketContext, MainContext, useWsDataProvider } from 'kerberus-components';\nimport useWebSocket from 'react-use-websocket';\nimport { useContext, useState, useLayoutEffect, useEffect } from 'react';\n\nexport default function SocketProvider({ children }) {\n const { accessToken, setBulkData, user } = useContext(MainContext);\n const [connect, setConnect] = useState(false);\n const ws = useWebSocket(`${process.env.REACT_APP_WS_HOST}?Bearer`, {\n protocols: accessToken.access,\n shouldReconnect: (closeEvent) => {\n return true;\n },\n reconnectInterval: 5000,\n retryOnError: true,\n reconnectAttempts: 20,\n onOpen: () => {\n getData('socketLocation', 'clientBulk', {\n filters: {\n tz: user.tz ?? Intl.DateTimeFormat().resolvedOptions().timeZone\n },\n subscribe: true\n });\n }\n }, connect);\n const { data, getData } = useWsDataProvider(ws);\n\n useLayoutEffect(() => {\n if (accessToken.access) {\n setConnect(true);\n }\n else {\n setConnect(false);\n }\n }, [accessToken.access]);\n\n const refreshSocket = () => {\n setConnect(false);\n setConnect(true);\n };\n\n useEffect(() => {\n if (data) {\n setBulkData(data);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data]);\n\n return (\n \n {children}\n \n );\n}","export function isUnitless(value) {\n return String(parseFloat(value)).length === String(value).length;\n} // Ported from Compass\n// https://github.com/Compass/compass/blob/master/core/stylesheets/compass/typography/_units.scss\n// Emulate the sass function \"unit\"\n\nexport function getUnit(input) {\n return String(input).match(/[\\d.\\-+]*\\s*(.*)/)[1] || '';\n} // Emulate the sass function \"unitless\"\n\nexport function toUnitless(length) {\n return parseFloat(length);\n} // Convert any CSS or value to any another.\n// From https://github.com/KyleAMathews/convert-css-length\n\nexport function convertLength(baseFontSize) {\n return (length, toUnit) => {\n const fromUnit = getUnit(length); // Optimize for cases where `from` and `to` units are accidentally the same.\n\n if (fromUnit === toUnit) {\n return length;\n } // Convert input length to pixels.\n\n\n let pxLength = toUnitless(length);\n\n if (fromUnit !== 'px') {\n if (fromUnit === 'em') {\n pxLength = toUnitless(length) * toUnitless(baseFontSize);\n } else if (fromUnit === 'rem') {\n pxLength = toUnitless(length) * toUnitless(baseFontSize);\n }\n } // Convert length in pixels to the output unit\n\n\n let outputLength = pxLength;\n\n if (toUnit !== 'px') {\n if (toUnit === 'em') {\n outputLength = pxLength / toUnitless(baseFontSize);\n } else if (toUnit === 'rem') {\n outputLength = pxLength / toUnitless(baseFontSize);\n } else {\n return length;\n }\n }\n\n return parseFloat(outputLength.toFixed(5)) + toUnit;\n };\n}\nexport function alignProperty({\n size,\n grid\n}) {\n const sizeBelow = size - size % grid;\n const sizeAbove = sizeBelow + grid;\n return size - sizeBelow < sizeAbove - size ? sizeBelow : sizeAbove;\n} // fontGrid finds a minimal grid (in rem) for the fontSize values so that the\n// lineHeight falls under a x pixels grid, 4px in the case of Material Design,\n// without changing the relative line height\n\nexport function fontGrid({\n lineHeight,\n pixels,\n htmlFontSize\n}) {\n return pixels / (lineHeight * htmlFontSize);\n}\n/**\n * generate a responsive version of a given CSS property\n * @example\n * responsiveProperty({\n * cssProperty: 'fontSize',\n * min: 15,\n * max: 20,\n * unit: 'px',\n * breakpoints: [300, 600],\n * })\n *\n * // this returns\n *\n * {\n * fontSize: '15px',\n * '@media (min-width:300px)': {\n * fontSize: '17.5px',\n * },\n * '@media (min-width:600px)': {\n * fontSize: '20px',\n * },\n * }\n * @param {Object} params\n * @param {string} params.cssProperty - The CSS property to be made responsive\n * @param {number} params.min - The smallest value of the CSS property\n * @param {number} params.max - The largest value of the CSS property\n * @param {string} [params.unit] - The unit to be used for the CSS property\n * @param {Array.number} [params.breakpoints] - An array of breakpoints\n * @param {number} [params.alignStep] - Round scaled value to fall under this grid\n * @returns {Object} responsive styles for {params.cssProperty}\n */\n\nexport function responsiveProperty({\n cssProperty,\n min,\n max,\n unit = 'rem',\n breakpoints = [600, 900, 1200],\n transform = null\n}) {\n const output = {\n [cssProperty]: `${min}${unit}`\n };\n const factor = (max - min) / breakpoints[breakpoints.length - 1];\n breakpoints.forEach(breakpoint => {\n let value = min + factor * breakpoint;\n\n if (transform !== null) {\n value = transform(value);\n }\n\n output[`@media (min-width:${breakpoint}px)`] = {\n [cssProperty]: `${Math.round(value * 10000) / 10000}${unit}`\n };\n });\n return output;\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAppBarUtilityClass(slot) {\n return generateUtilityClass('MuiAppBar', slot);\n}\nconst appBarClasses = generateUtilityClasses('MuiAppBar', ['root', 'positionFixed', 'positionAbsolute', 'positionSticky', 'positionStatic', 'positionRelative', 'colorDefault', 'colorPrimary', 'colorSecondary', 'colorInherit', 'colorTransparent']);\nexport default appBarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"enableColorOnDark\", \"position\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport Paper from '../Paper';\nimport { getAppBarUtilityClass } from './appBarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n color,\n position,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, `position${capitalize(position)}`]\n };\n return composeClasses(slots, getAppBarUtilityClass, classes);\n};\n\nconst AppBarRoot = styled(Paper, {\n name: 'MuiAppBar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n const backgroundColorDefault = theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900];\n return _extends({\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n boxSizing: 'border-box',\n // Prevent padding issue with the Modal and fixed positioned AppBar.\n flexShrink: 0\n }, ownerState.position === 'fixed' && {\n position: 'fixed',\n zIndex: theme.zIndex.appBar,\n top: 0,\n left: 'auto',\n right: 0,\n '@media print': {\n // Prevent the app bar to be visible on each printed page.\n position: 'absolute'\n }\n }, ownerState.position === 'absolute' && {\n position: 'absolute',\n zIndex: theme.zIndex.appBar,\n top: 0,\n left: 'auto',\n right: 0\n }, ownerState.position === 'sticky' && {\n // ⚠️ sticky is not supported by IE11.\n position: 'sticky',\n zIndex: theme.zIndex.appBar,\n top: 0,\n left: 'auto',\n right: 0\n }, ownerState.position === 'static' && {\n position: 'static'\n }, ownerState.position === 'relative' && {\n position: 'relative'\n }, ownerState.color === 'default' && {\n backgroundColor: backgroundColorDefault,\n color: theme.palette.getContrastText(backgroundColorDefault)\n }, ownerState.color && ownerState.color !== 'default' && ownerState.color !== 'inherit' && ownerState.color !== 'transparent' && {\n backgroundColor: theme.palette[ownerState.color].main,\n color: theme.palette[ownerState.color].contrastText\n }, ownerState.color === 'inherit' && {\n color: 'inherit'\n }, theme.palette.mode === 'dark' && !ownerState.enableColorOnDark && {\n backgroundColor: null,\n color: null\n }, ownerState.color === 'transparent' && _extends({\n backgroundColor: 'transparent',\n color: 'inherit'\n }, theme.palette.mode === 'dark' && {\n backgroundImage: 'none'\n }));\n});\nconst AppBar = /*#__PURE__*/React.forwardRef(function AppBar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAppBar'\n });\n\n const {\n className,\n color = 'primary',\n enableColorOnDark = false,\n position = 'fixed'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n position,\n enableColorOnDark\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AppBarRoot, _extends({\n square: true,\n component: \"header\",\n ownerState: ownerState,\n elevation: 4,\n className: clsx(classes.root, className, position === 'fixed' && 'mui-fixed'),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AppBar.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 color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary', 'transparent']), PropTypes.string]),\n\n /**\n * If true, the `color` prop is applied in dark mode.\n * @default false\n */\n enableColorOnDark: PropTypes.bool,\n\n /**\n * The positioning type. The behavior of the different options is described\n * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).\n * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.\n * @default 'fixed'\n */\n position: PropTypes.oneOf(['absolute', 'fixed', 'relative', 'static', 'sticky']),\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} : void 0;\nexport default AppBar;","import * as React from 'react';\n\nconst usePreviousProps = value => {\n const ref = React.useRef({});\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport default usePreviousProps;","import generateUtilityClasses from '../generateUtilityClasses';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getBadgeUtilityClass(slot) {\n return generateUtilityClass('MuiBadge', slot);\n}\nconst badgeUnstyledClasses = generateUtilityClasses('MuiBadge', ['root', 'badge', 'dot', 'standard', 'anchorOriginTopLeft', 'anchorOriginTopRight', 'anchorOriginBottomLeft', 'anchorOriginBottomRight', 'invisible']);\nexport default badgeUnstyledClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport isHostComponent from './isHostComponent';\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node, `ownerState` are not applied.\n * @param existingProps Props of the element.\n * @param ownerState\n */\n\nexport default function appendOwnerState(elementType, existingProps = {}, ownerState) {\n if (isHostComponent(elementType)) {\n return existingProps;\n }\n\n return _extends({}, existingProps, {\n ownerState: _extends({}, existingProps.ownerState, ownerState)\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchorOrigin\", \"classes\", \"badgeContent\", \"component\", \"children\", \"className\", \"components\", \"componentsProps\", \"invisible\", \"max\", \"showZero\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_capitalize as capitalize } from '@mui/utils';\nimport composeClasses from '../composeClasses';\nimport appendOwnerState from '../utils/appendOwnerState';\nimport useBadge from './useBadge';\nimport { getBadgeUtilityClass } from './badgeUnstyledClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n variant,\n anchorOrigin,\n invisible,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n badge: ['badge', variant, `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`, invisible && 'invisible']\n };\n return composeClasses(slots, getBadgeUtilityClass, classes);\n};\n\nconst BadgeUnstyled = /*#__PURE__*/React.forwardRef(function BadgeUnstyled(props, ref) {\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n classes: classesProp,\n component,\n children,\n className,\n components = {},\n componentsProps = {},\n max: maxProp = 99,\n showZero = false,\n variant: variantProp = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n anchorOrigin,\n badgeContent,\n max,\n variant,\n displayValue,\n invisible\n } = useBadge(_extends({}, props, {\n anchorOrigin: anchorOriginProp,\n max: maxProp,\n variant: variantProp\n }));\n\n const ownerState = _extends({}, props, {\n anchorOrigin,\n badgeContent,\n classes: classesProp,\n invisible,\n max,\n variant,\n showZero\n });\n\n const classes = useUtilityClasses(ownerState);\n const Root = component || components.Root || 'span';\n const rootProps = appendOwnerState(Root, _extends({}, other, componentsProps.root), ownerState);\n const Badge = components.Badge || 'span';\n const badgeProps = appendOwnerState(Badge, componentsProps.badge, ownerState);\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n ref: ref\n }, other, {\n className: clsx(classes.root, rootProps.className, className),\n children: [children, /*#__PURE__*/_jsx(Badge, _extends({}, badgeProps, {\n className: clsx(classes.badge, badgeProps.className),\n children: displayValue\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? BadgeUnstyled.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 anchor of the badge.\n * @default {\n * vertical: 'top',\n * horizontal: 'right',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n\n /**\n * The badge will be added relative to this node.\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 * The components used for each slot inside the Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Badge: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n badge: PropTypes.object,\n root: PropTypes.object\n }),\n\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: PropTypes.bool,\n\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes.string\n} : void 0;\nexport default BadgeUnstyled;","import { usePreviousProps } from '@mui/utils';\nexport default function useBadge(props) {\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n badgeContent: badgeContentProp,\n invisible: invisibleProp = false,\n max: maxProp = 99,\n showZero = false,\n variant: variantProp = 'standard'\n } = props;\n const prevProps = usePreviousProps({\n anchorOrigin: anchorOriginProp,\n badgeContent: badgeContentProp,\n max: maxProp,\n variant: variantProp\n });\n let invisible = invisibleProp;\n\n if (invisibleProp === false && (badgeContentProp === 0 && !showZero || badgeContentProp == null && variantProp !== 'dot')) {\n invisible = true;\n }\n\n const {\n anchorOrigin = anchorOriginProp,\n badgeContent,\n max = maxProp,\n variant = variantProp\n } = invisible ? prevProps : props;\n let displayValue = '';\n\n if (variant !== 'dot') {\n displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;\n }\n\n return {\n anchorOrigin,\n badgeContent,\n invisible,\n max,\n variant,\n displayValue\n };\n}","import { isHostComponent } from '@mui/base';\n\nconst shouldSpreadAdditionalProps = Slot => {\n return !Slot || !isHostComponent(Slot);\n};\n\nexport default shouldSpreadAdditionalProps;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"anchorOrigin\", \"component\", \"components\", \"componentsProps\", \"overlap\", \"color\", \"invisible\", \"badgeContent\", \"showZero\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { usePreviousProps } from '@mui/utils';\nimport { generateUtilityClasses } from '@mui/base';\nimport BadgeUnstyled, { badgeUnstyledClasses, getBadgeUtilityClass } from '@mui/base/BadgeUnstyled';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport shouldSpreadAdditionalProps from '../utils/shouldSpreadAdditionalProps';\nimport capitalize from '../utils/capitalize';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const badgeClasses = _extends({}, badgeUnstyledClasses, generateUtilityClasses('MuiBadge', ['colorError', 'colorInfo', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorWarning', 'overlapRectangular', 'overlapCircular', // TODO: v6 remove the overlap value from these class keys\n'anchorOriginTopLeftCircular', 'anchorOriginTopLeftRectangular', 'anchorOriginTopRightCircular', 'anchorOriginTopRightRectangular', 'anchorOriginBottomLeftCircular', 'anchorOriginBottomLeftRectangular', 'anchorOriginBottomRightCircular', 'anchorOriginBottomRightRectangular']));\nconst RADIUS_STANDARD = 10;\nconst RADIUS_DOT = 4;\n\nconst extendUtilityClasses = ownerState => {\n const {\n color,\n anchorOrigin,\n overlap,\n classes = {}\n } = ownerState;\n return _extends({}, classes, {\n badge: clsx(classes.badge, getBadgeUtilityClass(`anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}${capitalize(overlap)}`), getBadgeUtilityClass(`overlap${capitalize(overlap)}`), color !== 'default' && [getBadgeUtilityClass(`color${capitalize(color)}`), classes[`color${capitalize(color)}`]])\n });\n};\n\nconst BadgeRoot = styled('span', {\n name: 'MuiBadge',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n position: 'relative',\n display: 'inline-flex',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n flexShrink: 0\n});\nconst BadgeBadge = styled('span', {\n name: 'MuiBadge',\n slot: 'Badge',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.badge, styles[ownerState.variant], styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}${capitalize(ownerState.overlap)}`], ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], ownerState.invisible && styles.invisible];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n boxSizing: 'border-box',\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(12),\n minWidth: RADIUS_STANDARD * 2,\n lineHeight: 1,\n padding: '0 6px',\n height: RADIUS_STANDARD * 2,\n borderRadius: RADIUS_STANDARD,\n zIndex: 1,\n // Render the badge on top of potential ripples.\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.enteringScreen\n })\n}, ownerState.color !== 'default' && {\n backgroundColor: theme.palette[ownerState.color].main,\n color: theme.palette[ownerState.color].contrastText\n}, ownerState.variant === 'dot' && {\n borderRadius: RADIUS_DOT,\n height: RADIUS_DOT * 2,\n minWidth: RADIUS_DOT * 2,\n padding: 0\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular' && {\n top: 0,\n right: 0,\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'rectangular' && {\n bottom: 0,\n right: 0,\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular' && {\n top: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'rectangular' && {\n bottom: 0,\n left: 0,\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular' && {\n top: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'right' && ownerState.overlap === 'circular' && {\n bottom: '14%',\n right: '14%',\n transform: 'scale(1) translate(50%, 50%)',\n transformOrigin: '100% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(50%, 50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'top' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular' && {\n top: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, -50%)',\n transformOrigin: '0% 0%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, -50%)'\n }\n}, ownerState.anchorOrigin.vertical === 'bottom' && ownerState.anchorOrigin.horizontal === 'left' && ownerState.overlap === 'circular' && {\n bottom: '14%',\n left: '14%',\n transform: 'scale(1) translate(-50%, 50%)',\n transformOrigin: '0% 100%',\n [`&.${badgeClasses.invisible}`]: {\n transform: 'scale(0) translate(-50%, 50%)'\n }\n}, ownerState.invisible && {\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeInOut,\n duration: theme.transitions.duration.leavingScreen\n })\n}));\nconst Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {\n var _componentsProps$root, _componentsProps$badg;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiBadge'\n });\n\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n component = 'span',\n components = {},\n componentsProps = {},\n overlap: overlapProp = 'rectangular',\n color: colorProp = 'default',\n invisible: invisibleProp = false,\n badgeContent: badgeContentProp,\n showZero = false,\n variant: variantProp = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const prevProps = usePreviousProps({\n anchorOrigin: anchorOriginProp,\n color: colorProp,\n overlap: overlapProp\n });\n let invisible = invisibleProp;\n\n if (invisibleProp === false && (badgeContentProp === 0 && !showZero || badgeContentProp == null && variantProp !== 'dot')) {\n invisible = true;\n }\n\n const {\n color = colorProp,\n overlap = overlapProp,\n anchorOrigin = anchorOriginProp\n } = invisible ? prevProps : props;\n\n const ownerState = _extends({}, props, {\n anchorOrigin,\n invisible,\n color,\n overlap\n });\n\n const classes = extendUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(BadgeUnstyled, _extends({\n anchorOrigin: anchorOrigin,\n invisible: invisibleProp,\n badgeContent: badgeContentProp,\n showZero: showZero,\n variant: variantProp\n }, other, {\n components: _extends({\n Root: BadgeRoot,\n Badge: BadgeBadge\n }, components),\n componentsProps: {\n root: _extends({}, componentsProps.root, shouldSpreadAdditionalProps(components.Root) && {\n as: component,\n ownerState: _extends({}, (_componentsProps$root = componentsProps.root) == null ? void 0 : _componentsProps$root.ownerState, {\n color,\n overlap\n })\n }),\n badge: _extends({}, componentsProps.badge, shouldSpreadAdditionalProps(components.Badge) && {\n ownerState: _extends({}, (_componentsProps$badg = componentsProps.badge) == null ? void 0 : _componentsProps$badg.ownerState, {\n color,\n overlap\n })\n })\n },\n classes: classes,\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Badge.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 anchor of the badge.\n * @default {\n * vertical: 'top',\n * horizontal: 'right',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n\n /**\n * The badge will be added relative to this node.\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 * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'default'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', '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 components used for each slot inside the Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Badge: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n badge: PropTypes.object,\n root: PropTypes.object\n }),\n\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n\n /**\n * Wrapped shape the badge should overlap.\n * @default 'rectangular'\n */\n overlap: PropTypes.oneOf(['circular', 'rectangular']),\n\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: 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 'standard'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['dot', 'standard']), PropTypes.string])\n} : void 0;\nexport default Badge;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiToolbar', slot);\n}\nconst toolbarClasses = generateUtilityClasses('MuiToolbar', ['root', 'gutters', 'regular', 'dense']);\nexport default toolbarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"disableGutters\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getToolbarUtilityClass } from './toolbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableGutters,\n variant\n } = ownerState;\n const slots = {\n root: ['root', !disableGutters && 'gutters', variant]\n };\n return composeClasses(slots, getToolbarUtilityClass, classes);\n};\n\nconst ToolbarRoot = styled('div', {\n name: 'MuiToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableGutters && styles.gutters, styles[ownerState.variant]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n}, !ownerState.disableGutters && {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n}, ownerState.variant === 'dense' && {\n minHeight: 48\n}), ({\n theme,\n ownerState\n}) => ownerState.variant === 'regular' && theme.mixins.toolbar);\nconst Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiToolbar'\n });\n\n const {\n className,\n component = 'div',\n disableGutters = false,\n variant = 'regular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component,\n disableGutters,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ToolbarRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Toolbar.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 Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\n * The Toolbar is a flex container, allowing flex item properites to be used to lay out the children.\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 * If `true`, disables gutter padding.\n * @default false\n */\n disableGutters: 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 'regular'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['dense', 'regular']), PropTypes.string])\n} : void 0;\nexport default Toolbar;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListItemIconUtilityClass(slot) {\n return generateUtilityClass('MuiListItemIcon', slot);\n}\nconst listItemIconClasses = generateUtilityClasses('MuiListItemIcon', ['root', 'alignItemsFlexStart']);\nexport default listItemIconClasses;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListItemTextUtilityClass(slot) {\n return generateUtilityClass('MuiListItemText', slot);\n}\nconst listItemTextClasses = generateUtilityClasses('MuiListItemText', ['root', 'multiline', 'dense', 'inset', 'primary', 'secondary']);\nexport default listItemTextClasses;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getMenuItemUtilityClass(slot) {\n return generateUtilityClass('MuiMenuItem', slot);\n}\nconst menuItemClasses = generateUtilityClasses('MuiMenuItem', ['root', 'focusVisible', 'dense', 'disabled', 'divider', 'gutters', 'selected']);\nexport default menuItemClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"component\", \"dense\", \"divider\", \"disableGutters\", \"focusVisibleClassName\", \"role\", \"tabIndex\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ListContext from '../List/ListContext';\nimport ButtonBase from '../ButtonBase';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport useForkRef from '../utils/useForkRef';\nimport { dividerClasses } from '../Divider';\nimport { listItemIconClasses } from '../ListItemIcon';\nimport { listItemTextClasses } from '../ListItemText';\nimport menuItemClasses, { getMenuItemUtilityClass } from './menuItemClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n dense,\n divider,\n disableGutters,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', disabled && 'disabled', !disableGutters && 'gutters', divider && 'divider', selected && 'selected']\n };\n const composedClasses = composeClasses(slots, getMenuItemUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst MenuItemRoot = styled(ButtonBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiMenuItem',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.body1, {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n minHeight: 48,\n paddingTop: 6,\n paddingBottom: 6,\n boxSizing: 'border-box',\n whiteSpace: 'nowrap'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.divider && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n backgroundClip: 'padding-box'\n}, {\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${menuItemClasses.selected}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${menuItemClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n },\n [`&.${menuItemClasses.selected}:hover`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n },\n [`&.${menuItemClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${menuItemClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n },\n [`& + .${dividerClasses.root}`]: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n [`& + .${dividerClasses.inset}`]: {\n marginLeft: 52\n },\n [`& .${listItemTextClasses.root}`]: {\n marginTop: 0,\n marginBottom: 0\n },\n [`& .${listItemTextClasses.inset}`]: {\n paddingLeft: 36\n },\n [`& .${listItemIconClasses.root}`]: {\n minWidth: 36\n }\n}, !ownerState.dense && {\n [theme.breakpoints.up('sm')]: {\n minHeight: 'auto'\n }\n}, ownerState.dense && _extends({\n minHeight: 32,\n // https://material.io/components/menus#specs > Dense\n paddingTop: 4,\n paddingBottom: 4\n}, theme.typography.body2, {\n [`& .${listItemIconClasses.root} svg`]: {\n fontSize: '1.25rem'\n }\n})));\nconst MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMenuItem'\n });\n\n const {\n autoFocus = false,\n component = 'li',\n dense = false,\n divider = false,\n disableGutters = false,\n focusVisibleClassName,\n role = 'menuitem',\n tabIndex: tabIndexProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useContext(ListContext);\n const childContext = {\n dense: dense || context.dense || false,\n disableGutters\n };\n const menuItemRef = React.useRef(null);\n useEnhancedEffect(() => {\n if (autoFocus) {\n if (menuItemRef.current) {\n menuItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: Unable to set focus to a MenuItem whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n\n const ownerState = _extends({}, props, {\n dense: childContext.dense,\n divider,\n disableGutters\n });\n\n const classes = useUtilityClasses(props);\n const handleRef = useForkRef(menuItemRef, ref);\n let tabIndex;\n\n if (!props.disabled) {\n tabIndex = tabIndexProp !== undefined ? tabIndexProp : -1;\n }\n\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(MenuItemRoot, _extends({\n ref: handleRef,\n role: role,\n tabIndex: tabIndex,\n component: component,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName)\n }, other, {\n ownerState: ownerState,\n classes: classes\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuItem.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 * If `true`, the list item is focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n * @default false\n */\n autoFocus: PropTypes.bool,\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 * 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 * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent Menu component.\n * @default false\n */\n dense: PropTypes.bool,\n\n /**\n * @ignore\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, a 1px light border is added to the bottom of the menu item.\n * @default false\n */\n divider: PropTypes.bool,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * @ignore\n */\n role: PropTypes\n /* @typescript-to-proptypes-ignore */\n .string,\n\n /**\n * @ignore\n */\n selected: 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 * @default 0\n */\n tabIndex: PropTypes.number\n} : void 0;\nexport default MenuItem;","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](/components/steppers/#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';\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 { 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.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.palette.action.disabledBackground\n }\n };\n}, ({\n theme,\n ownerState\n}) => _extends({}, !ownerState.square && {\n borderRadius: 0,\n '&:first-of-type': {\n borderTopLeftRadius: theme.shape.borderRadius,\n borderTopRightRadius: theme.shape.borderRadius\n },\n '&:last-of-type': {\n borderBottomLeftRadius: theme.shape.borderRadius,\n borderBottomRightRadius: 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](/components/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 { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionSummaryUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionSummary', slot);\n}\nconst accordionSummaryClasses = generateUtilityClasses('MuiAccordionSummary', ['root', 'expanded', 'focusVisible', 'disabled', 'gutters', 'contentGutters', 'content', 'expandIconWrapper']);\nexport default accordionSummaryClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"expandIcon\", \"focusVisibleClassName\", \"onClick\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ButtonBase from '../ButtonBase';\nimport AccordionContext from '../Accordion/AccordionContext';\nimport accordionSummaryClasses, { getAccordionSummaryUtilityClass } from './accordionSummaryClasses';\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 expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n focusVisible: ['focusVisible'],\n content: ['content', expanded && 'expanded', !disableGutters && 'contentGutters'],\n expandIconWrapper: ['expandIconWrapper', expanded && 'expanded']\n };\n return composeClasses(slots, getAccordionSummaryUtilityClass, classes);\n};\n\nconst AccordionSummaryRoot = styled(ButtonBase, {\n name: 'MuiAccordionSummary',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return _extends({\n display: 'flex',\n minHeight: 48,\n padding: theme.spacing(0, 2),\n transition: theme.transitions.create(['min-height', 'background-color'], transition),\n [`&.${accordionSummaryClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${accordionSummaryClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n },\n [`&:hover:not(.${accordionSummaryClasses.disabled})`]: {\n cursor: 'pointer'\n }\n }, !ownerState.disableGutters && {\n [`&.${accordionSummaryClasses.expanded}`]: {\n minHeight: 64\n }\n });\n});\nconst AccordionSummaryContent = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexGrow: 1,\n margin: '12px 0'\n}, !ownerState.disableGutters && {\n transition: theme.transitions.create(['margin'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n margin: '20px 0'\n }\n}));\nconst AccordionSummaryExpandIconWrapper = styled('div', {\n name: 'MuiAccordionSummary',\n slot: 'ExpandIconWrapper',\n overridesResolver: (props, styles) => styles.expandIconWrapper\n})(({\n theme\n}) => ({\n display: 'flex',\n color: theme.palette.action.active,\n transform: 'rotate(0deg)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${accordionSummaryClasses.expanded}`]: {\n transform: 'rotate(180deg)'\n }\n}));\nconst AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordionSummary'\n });\n\n const {\n children,\n className,\n expandIcon,\n focusVisibleClassName,\n onClick\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n disabled = false,\n disableGutters,\n expanded,\n toggle\n } = React.useContext(AccordionContext);\n\n const handleChange = event => {\n if (toggle) {\n toggle(event);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const ownerState = _extends({}, props, {\n expanded,\n disabled,\n disableGutters\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionSummaryRoot, _extends({\n focusRipple: false,\n disableRipple: true,\n disabled: disabled,\n component: \"div\",\n \"aria-expanded\": expanded,\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n onClick: handleChange,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(AccordionSummaryContent, {\n className: classes.content,\n ownerState: ownerState,\n children: children\n }), expandIcon && /*#__PURE__*/_jsx(AccordionSummaryExpandIconWrapper, {\n className: classes.expandIconWrapper,\n ownerState: ownerState,\n children: expandIcon\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionSummary.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 icon to display as the expand indicator.\n */\n expandIcon: PropTypes.node,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\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} : void 0;\nexport default AccordionSummary;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionDetailsUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionDetails', slot);\n}\nconst accordionDetailsClasses = generateUtilityClasses('MuiAccordionDetails', ['root']);\nexport default accordionDetailsClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getAccordionDetailsUtilityClass } from './accordionDetailsClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getAccordionDetailsUtilityClass, classes);\n};\n\nconst AccordionDetailsRoot = styled('div', {\n name: 'MuiAccordionDetails',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(1, 2, 2)\n}));\nconst AccordionDetails = /*#__PURE__*/React.forwardRef(function AccordionDetails(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordionDetails'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AccordionDetailsRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionDetails.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 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} : void 0;\nexport default AccordionDetails;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchorEl\", \"children\", \"direction\", \"disablePortal\", \"modifiers\", \"open\", \"ownerState\", \"placement\", \"popperOptions\", \"popperRef\", \"TransitionProps\"],\n _excluded2 = [\"anchorEl\", \"children\", \"container\", \"direction\", \"disablePortal\", \"keepMounted\", \"modifiers\", \"open\", \"placement\", \"popperOptions\", \"popperRef\", \"style\", \"transition\"];\nimport { chainPropTypes, HTMLElementType, refType, unstable_ownerDocument as ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { createPopper } from '@popperjs/core';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport Portal from '../Portal';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction flipPlacement(placement, direction) {\n if (direction === 'ltr') {\n return placement;\n }\n\n switch (placement) {\n case 'bottom-end':\n return 'bottom-start';\n\n case 'bottom-start':\n return 'bottom-end';\n\n case 'top-end':\n return 'top-start';\n\n case 'top-start':\n return 'top-end';\n\n default:\n return placement;\n }\n}\n\nfunction resolveAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\n\nconst defaultPopperOptions = {};\n/* eslint-disable react/prop-types */\n\nconst PopperTooltip = /*#__PURE__*/React.forwardRef(function PopperTooltip(props, ref) {\n const {\n anchorEl,\n children,\n direction,\n disablePortal,\n modifiers,\n open,\n placement: initialPlacement,\n popperOptions,\n popperRef: popperRefProp,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const tooltipRef = React.useRef(null);\n const ownRef = useForkRef(tooltipRef, ref);\n const popperRef = React.useRef(null);\n const handlePopperRef = useForkRef(popperRef, popperRefProp);\n const handlePopperRefRef = React.useRef(handlePopperRef);\n useEnhancedEffect(() => {\n handlePopperRefRef.current = handlePopperRef;\n }, [handlePopperRef]);\n React.useImperativeHandle(popperRefProp, () => popperRef.current, []);\n const rtlPlacement = flipPlacement(initialPlacement, direction);\n /**\n * placement initialized from prop but can change during lifetime if modifiers.flip.\n * modifiers.flip is essentially a flip for controlled/uncontrolled behavior\n */\n\n const [placement, setPlacement] = React.useState(rtlPlacement);\n React.useEffect(() => {\n if (popperRef.current) {\n popperRef.current.forceUpdate();\n }\n });\n useEnhancedEffect(() => {\n if (!anchorEl || !open) {\n return undefined;\n }\n\n const handlePopperUpdate = data => {\n setPlacement(data.placement);\n };\n\n const resolvedAnchorEl = resolveAnchorEl(anchorEl);\n\n if (process.env.NODE_ENV !== 'production') {\n if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n const box = resolvedAnchorEl.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n }\n\n let popperModifiers = [{\n name: 'preventOverflow',\n options: {\n altBoundary: disablePortal\n }\n }, {\n name: 'flip',\n options: {\n altBoundary: disablePortal\n }\n }, {\n name: 'onUpdate',\n enabled: true,\n phase: 'afterWrite',\n fn: ({\n state\n }) => {\n handlePopperUpdate(state);\n }\n }];\n\n if (modifiers != null) {\n popperModifiers = popperModifiers.concat(modifiers);\n }\n\n if (popperOptions && popperOptions.modifiers != null) {\n popperModifiers = popperModifiers.concat(popperOptions.modifiers);\n }\n\n const popper = createPopper(resolveAnchorEl(anchorEl), tooltipRef.current, _extends({\n placement: rtlPlacement\n }, popperOptions, {\n modifiers: popperModifiers\n }));\n handlePopperRefRef.current(popper);\n return () => {\n popper.destroy();\n handlePopperRefRef.current(null);\n };\n }, [anchorEl, disablePortal, modifiers, open, popperOptions, rtlPlacement]);\n const childProps = {\n placement\n };\n\n if (TransitionProps !== null) {\n childProps.TransitionProps = TransitionProps;\n }\n\n return /*#__PURE__*/_jsx(\"div\", _extends({\n ref: ownRef,\n role: \"tooltip\"\n }, other, {\n children: typeof children === 'function' ? children(childProps) : children\n }));\n});\n/* eslint-enable react/prop-types */\n\n/**\n * Poppers rely on the 3rd party library [Popper.js](https://popper.js.org/docs/v2/) for positioning.\n */\n\nconst PopperUnstyled = /*#__PURE__*/React.forwardRef(function PopperUnstyled(props, ref) {\n const {\n anchorEl,\n children,\n container: containerProp,\n direction = 'ltr',\n disablePortal = false,\n keepMounted = false,\n modifiers,\n open,\n placement = 'bottom',\n popperOptions = defaultPopperOptions,\n popperRef,\n style,\n transition = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n\n const [exited, setExited] = React.useState(true);\n\n const handleEnter = () => {\n setExited(false);\n };\n\n const handleExited = () => {\n setExited(true);\n };\n\n if (!keepMounted && !open && (!transition || exited)) {\n return null;\n } // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n\n\n const container = containerProp || (anchorEl ? ownerDocument(resolveAnchorEl(anchorEl)).body : undefined);\n return /*#__PURE__*/_jsx(Portal, {\n disablePortal: disablePortal,\n container: container,\n children: /*#__PURE__*/_jsx(PopperTooltip, _extends({\n anchorEl: anchorEl,\n direction: direction,\n disablePortal: disablePortal,\n modifiers: modifiers,\n ref: ref,\n open: transition ? !exited : open,\n placement: placement,\n popperOptions: popperOptions,\n popperRef: popperRef\n }, other, {\n style: _extends({\n // Prevents scroll issue, waiting for Popper.js to add this style once initiated.\n position: 'fixed',\n // Fix Popper.js display issue\n top: 0,\n left: 0,\n display: !open && keepMounted && (!transition || exited) ? 'none' : null\n }, style),\n TransitionProps: transition ? {\n in: open,\n onEnter: handleEnter,\n onExited: handleExited\n } : null,\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? PopperUnstyled.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 * An HTML element, [virtualElement](https://popper.js.org/docs/v2/virtual-elements/),\n * or a function that returns either.\n * It's used to set the position of the popper.\n * The return value will passed as the reference object of the Popper instance.\n */\n anchorEl: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]), props => {\n if (props.open) {\n const resolvedAnchorEl = resolveAnchorEl(props.anchorEl);\n\n if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n const box = resolvedAnchorEl.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedAnchorEl || typeof resolvedAnchorEl.getBoundingClientRect !== 'function' || resolvedAnchorEl.contextElement != null && resolvedAnchorEl.contextElement.nodeType !== 1) {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', 'It should be an HTML element instance or a virtualElement ', '(https://popper.js.org/docs/v2/virtual-elements/).'].join('\\n'));\n }\n }\n\n return null;\n }),\n\n /**\n * Popper render function or node.\n */\n children: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.func]),\n\n /**\n * Direction of the text.\n * @default 'ltr'\n */\n direction: PropTypes.oneOf(['ltr', 'rtl']),\n\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Popper.\n * @default false\n */\n keepMounted: PropTypes.bool,\n\n /**\n * Popper.js is based on a \"plugin-like\" architecture,\n * most of its features are fully encapsulated \"modifiers\".\n *\n * A modifier is a function that is called each time Popper.js needs to\n * compute the position of the popper.\n * For this reason, modifiers should be very performant to avoid bottlenecks.\n * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v2/modifiers/).\n */\n modifiers: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.object,\n effect: PropTypes.func,\n enabled: PropTypes.bool,\n fn: PropTypes.func,\n name: PropTypes.any,\n options: PropTypes.object,\n phase: PropTypes.oneOf(['afterMain', 'afterRead', 'afterWrite', 'beforeMain', 'beforeRead', 'beforeWrite', 'main', 'read', 'write']),\n requires: PropTypes.arrayOf(PropTypes.string),\n requiresIfExists: PropTypes.arrayOf(PropTypes.string)\n })),\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * Popper placement.\n * @default 'bottom'\n */\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n /**\n * Options provided to the [`Popper.js`](https://popper.js.org/docs/v2/constructors/#options) instance.\n * @default {}\n */\n popperOptions: PropTypes.shape({\n modifiers: PropTypes.array,\n onFirstUpdate: PropTypes.func,\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n strategy: PropTypes.oneOf(['absolute', 'fixed'])\n }),\n\n /**\n * A ref that points to the used popper instance.\n */\n popperRef: refType,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * Help supporting a react-transition-group/Transition component.\n * @default false\n */\n transition: PropTypes.bool\n} : void 0;\nexport default PopperUnstyled;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PopperUnstyled from '@mui/base/PopperUnstyled';\nimport { useThemeWithoutDefault as useTheme } from '@mui/system';\nimport { HTMLElementType, refType } from '@mui/utils';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { styled, useThemeProps } from '../styles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PopperRoot = styled(PopperUnstyled, {\n name: 'MuiPopper',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\n/**\n *\n * Demos:\n *\n * - [Autocomplete](https://mui.com/components/autocomplete/)\n * - [Menus](https://mui.com/components/menus/)\n * - [Popper](https://mui.com/components/popper/)\n *\n * API:\n *\n * - [Popper API](https://mui.com/api/popper/)\n */\n\nconst Popper = /*#__PURE__*/React.forwardRef(function Popper(inProps, ref) {\n const theme = useTheme();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPopper'\n });\n return /*#__PURE__*/_jsx(PopperRoot, _extends({\n direction: theme == null ? void 0 : theme.direction\n }, props, {\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Popper.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * An HTML element, [virtualElement](https://popper.js.org/docs/v2/virtual-elements/),\n * or a function that returns either.\n * It's used to set the position of the popper.\n * The return value will passed as the reference object of the Popper instance.\n */\n anchorEl: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]),\n\n /**\n * Popper render function or node.\n */\n children: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.func]),\n\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Popper.\n * @default false\n */\n keepMounted: PropTypes.bool,\n\n /**\n * Popper.js is based on a \"plugin-like\" architecture,\n * most of its features are fully encapsulated \"modifiers\".\n *\n * A modifier is a function that is called each time Popper.js needs to\n * compute the position of the popper.\n * For this reason, modifiers should be very performant to avoid bottlenecks.\n * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v2/modifiers/).\n */\n modifiers: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.object,\n effect: PropTypes.func,\n enabled: PropTypes.bool,\n fn: PropTypes.func,\n name: PropTypes.any,\n options: PropTypes.object,\n phase: PropTypes.oneOf(['afterMain', 'afterRead', 'afterWrite', 'beforeMain', 'beforeRead', 'beforeWrite', 'main', 'read', 'write']),\n requires: PropTypes.arrayOf(PropTypes.string),\n requiresIfExists: PropTypes.arrayOf(PropTypes.string)\n })),\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * Popper placement.\n * @default 'bottom'\n */\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n /**\n * Options provided to the [`Popper.js`](https://popper.js.org/docs/v2/constructors/#options) instance.\n * @default {}\n */\n popperOptions: PropTypes.shape({\n modifiers: PropTypes.array,\n onFirstUpdate: PropTypes.func,\n placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n strategy: PropTypes.oneOf(['absolute', 'fixed'])\n }),\n\n /**\n * A ref that points to the used popper instance.\n */\n popperRef: refType,\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 * Help supporting a react-transition-group/Transition component.\n * @default false\n */\n transition: PropTypes.bool\n} : void 0;\nexport default Popper;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTooltipUtilityClass(slot) {\n return generateUtilityClass('MuiTooltip', slot);\n}\nconst tooltipClasses = generateUtilityClasses('MuiTooltip', ['popper', 'popperInteractive', 'popperArrow', 'popperClose', 'tooltip', 'tooltipArrow', 'touch', 'tooltipPlacementLeft', 'tooltipPlacementRight', 'tooltipPlacementTop', 'tooltipPlacementBottom', 'arrow']);\nexport default tooltipClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"arrow\", \"children\", \"classes\", \"components\", \"componentsProps\", \"describeChild\", \"disableFocusListener\", \"disableHoverListener\", \"disableInteractive\", \"disableTouchListener\", \"enterDelay\", \"enterNextDelay\", \"enterTouchDelay\", \"followCursor\", \"id\", \"leaveDelay\", \"leaveTouchDelay\", \"onClose\", \"onOpen\", \"open\", \"placement\", \"PopperComponent\", \"PopperProps\", \"title\", \"TransitionComponent\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, appendOwnerState } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport Grow from '../Grow';\nimport Popper from '../Popper';\nimport useEventCallback from '../utils/useEventCallback';\nimport useForkRef from '../utils/useForkRef';\nimport useId from '../utils/useId';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useControlled from '../utils/useControlled';\nimport tooltipClasses, { getTooltipUtilityClass } from './tooltipClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableInteractive,\n arrow,\n touch,\n placement\n } = ownerState;\n const slots = {\n popper: ['popper', !disableInteractive && 'popperInteractive', arrow && 'popperArrow'],\n tooltip: ['tooltip', arrow && 'tooltipArrow', touch && 'touch', `tooltipPlacement${capitalize(placement.split('-')[0])}`],\n arrow: ['arrow']\n };\n return composeClasses(slots, getTooltipUtilityClass, classes);\n};\n\nconst TooltipPopper = styled(Popper, {\n name: 'MuiTooltip',\n slot: 'Popper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.popper, !ownerState.disableInteractive && styles.popperInteractive, ownerState.arrow && styles.popperArrow, !ownerState.open && styles.popperClose];\n }\n})(({\n theme,\n ownerState,\n open\n}) => _extends({\n zIndex: theme.zIndex.tooltip,\n pointerEvents: 'none'\n}, !ownerState.disableInteractive && {\n pointerEvents: 'auto'\n}, !open && {\n pointerEvents: 'none'\n}, ownerState.arrow && {\n [`&[data-popper-placement*=\"bottom\"] .${tooltipClasses.arrow}`]: {\n top: 0,\n marginTop: '-0.71em',\n '&::before': {\n transformOrigin: '0 100%'\n }\n },\n [`&[data-popper-placement*=\"top\"] .${tooltipClasses.arrow}`]: {\n bottom: 0,\n marginBottom: '-0.71em',\n '&::before': {\n transformOrigin: '100% 0'\n }\n },\n [`&[data-popper-placement*=\"right\"] .${tooltipClasses.arrow}`]: _extends({}, !ownerState.isRtl ? {\n left: 0,\n marginLeft: '-0.71em'\n } : {\n right: 0,\n marginRight: '-0.71em'\n }, {\n height: '1em',\n width: '0.71em',\n '&::before': {\n transformOrigin: '100% 100%'\n }\n }),\n [`&[data-popper-placement*=\"left\"] .${tooltipClasses.arrow}`]: _extends({}, !ownerState.isRtl ? {\n right: 0,\n marginRight: '-0.71em'\n } : {\n left: 0,\n marginLeft: '-0.71em'\n }, {\n height: '1em',\n width: '0.71em',\n '&::before': {\n transformOrigin: '0 0'\n }\n })\n}));\nconst TooltipTooltip = styled('div', {\n name: 'MuiTooltip',\n slot: 'Tooltip',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.tooltip, ownerState.touch && styles.touch, ownerState.arrow && styles.tooltipArrow, styles[`tooltipPlacement${capitalize(ownerState.placement.split('-')[0])}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n backgroundColor: alpha(theme.palette.grey[700], 0.92),\n borderRadius: theme.shape.borderRadius,\n color: theme.palette.common.white,\n fontFamily: theme.typography.fontFamily,\n padding: '4px 8px',\n fontSize: theme.typography.pxToRem(11),\n maxWidth: 300,\n margin: 2,\n wordWrap: 'break-word',\n fontWeight: theme.typography.fontWeightMedium\n}, ownerState.arrow && {\n position: 'relative',\n margin: 0\n}, ownerState.touch && {\n padding: '8px 16px',\n fontSize: theme.typography.pxToRem(14),\n lineHeight: `${round(16 / 14)}em`,\n fontWeight: theme.typography.fontWeightRegular\n}, {\n [`.${tooltipClasses.popper}[data-popper-placement*=\"left\"] &`]: _extends({\n transformOrigin: 'right center'\n }, !ownerState.isRtl ? _extends({\n marginRight: '14px'\n }, ownerState.touch && {\n marginRight: '24px'\n }) : _extends({\n marginLeft: '14px'\n }, ownerState.touch && {\n marginLeft: '24px'\n })),\n [`.${tooltipClasses.popper}[data-popper-placement*=\"right\"] &`]: _extends({\n transformOrigin: 'left center'\n }, !ownerState.isRtl ? _extends({\n marginLeft: '14px'\n }, ownerState.touch && {\n marginLeft: '24px'\n }) : _extends({\n marginRight: '14px'\n }, ownerState.touch && {\n marginRight: '24px'\n })),\n [`.${tooltipClasses.popper}[data-popper-placement*=\"top\"] &`]: _extends({\n transformOrigin: 'center bottom',\n marginBottom: '14px'\n }, ownerState.touch && {\n marginBottom: '24px'\n }),\n [`.${tooltipClasses.popper}[data-popper-placement*=\"bottom\"] &`]: _extends({\n transformOrigin: 'center top',\n marginTop: '14px'\n }, ownerState.touch && {\n marginTop: '24px'\n })\n}));\nconst TooltipArrow = styled('span', {\n name: 'MuiTooltip',\n slot: 'Arrow',\n overridesResolver: (props, styles) => styles.arrow\n})(({\n theme\n}) => ({\n overflow: 'hidden',\n position: 'absolute',\n width: '1em',\n height: '0.71em'\n /* = width / sqrt(2) = (length of the hypotenuse) */\n ,\n boxSizing: 'border-box',\n color: alpha(theme.palette.grey[700], 0.9),\n '&::before': {\n content: '\"\"',\n margin: 'auto',\n display: 'block',\n width: '100%',\n height: '100%',\n backgroundColor: 'currentColor',\n transform: 'rotate(45deg)'\n }\n}));\nlet hystersisOpen = false;\nlet hystersisTimer = null;\nexport function testReset() {\n hystersisOpen = false;\n clearTimeout(hystersisTimer);\n}\n\nfunction composeEventHandler(handler, eventHandler) {\n return event => {\n if (eventHandler) {\n eventHandler(event);\n }\n\n handler(event);\n };\n} // TODO v6: Remove PopperComponent, PopperProps, TransitionComponent and TransitionProps.\n\n\nconst Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {\n var _components$Popper, _ref, _components$Transitio, _components$Tooltip, _components$Arrow, _componentsProps$popp;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTooltip'\n });\n\n const {\n arrow = false,\n children,\n components = {},\n componentsProps = {},\n describeChild = false,\n disableFocusListener = false,\n disableHoverListener = false,\n disableInteractive: disableInteractiveProp = false,\n disableTouchListener = false,\n enterDelay = 100,\n enterNextDelay = 0,\n enterTouchDelay = 700,\n followCursor = false,\n id: idProp,\n leaveDelay = 0,\n leaveTouchDelay = 1500,\n onClose,\n onOpen,\n open: openProp,\n placement = 'bottom',\n PopperComponent: PopperComponentProp,\n PopperProps = {},\n title,\n TransitionComponent: TransitionComponentProp = Grow,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const [childNode, setChildNode] = React.useState();\n const [arrowRef, setArrowRef] = React.useState(null);\n const ignoreNonTouchEvents = React.useRef(false);\n const disableInteractive = disableInteractiveProp || followCursor;\n const closeTimer = React.useRef();\n const enterTimer = React.useRef();\n const leaveTimer = React.useRef();\n const touchTimer = React.useRef();\n const [openState, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: 'Tooltip',\n state: 'open'\n });\n let open = openState;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const {\n current: isControlled\n } = React.useRef(openProp !== undefined); // eslint-disable-next-line react-hooks/rules-of-hooks\n\n React.useEffect(() => {\n if (childNode && childNode.disabled && !isControlled && title !== '' && childNode.tagName.toLowerCase() === 'button') {\n console.error(['MUI: You are providing a disabled `button` child to the Tooltip component.', 'A disabled element does not fire events.', \"Tooltip needs to listen to the child element's events to display the title.\", '', 'Add a simple wrapper element, such as a `span`.'].join('\\n'));\n }\n }, [title, childNode, isControlled]);\n }\n\n const id = useId(idProp);\n const prevUserSelect = React.useRef();\n const stopTouchInteraction = React.useCallback(() => {\n if (prevUserSelect.current !== undefined) {\n document.body.style.WebkitUserSelect = prevUserSelect.current;\n prevUserSelect.current = undefined;\n }\n\n clearTimeout(touchTimer.current);\n }, []);\n React.useEffect(() => {\n return () => {\n clearTimeout(closeTimer.current);\n clearTimeout(enterTimer.current);\n clearTimeout(leaveTimer.current);\n stopTouchInteraction();\n };\n }, [stopTouchInteraction]);\n\n const handleOpen = event => {\n clearTimeout(hystersisTimer);\n hystersisOpen = true; // The mouseover event will trigger for every nested element in the tooltip.\n // We can skip rerendering when the tooltip is already open.\n // We are using the mouseover event instead of the mouseenter event to fix a hide/show issue.\n\n setOpenState(true);\n\n if (onOpen && !open) {\n onOpen(event);\n }\n };\n\n const handleClose = useEventCallback(\n /**\n * @param {React.SyntheticEvent | Event} event\n */\n event => {\n clearTimeout(hystersisTimer);\n hystersisTimer = setTimeout(() => {\n hystersisOpen = false;\n }, 800 + leaveDelay);\n setOpenState(false);\n\n if (onClose && open) {\n onClose(event);\n }\n\n clearTimeout(closeTimer.current);\n closeTimer.current = setTimeout(() => {\n ignoreNonTouchEvents.current = false;\n }, theme.transitions.duration.shortest);\n });\n\n const handleEnter = event => {\n if (ignoreNonTouchEvents.current && event.type !== 'touchstart') {\n return;\n } // Remove the title ahead of time.\n // We don't want to wait for the next render commit.\n // We would risk displaying two tooltips at the same time (native + this one).\n\n\n if (childNode) {\n childNode.removeAttribute('title');\n }\n\n clearTimeout(enterTimer.current);\n clearTimeout(leaveTimer.current);\n\n if (enterDelay || hystersisOpen && enterNextDelay) {\n enterTimer.current = setTimeout(() => {\n handleOpen(event);\n }, hystersisOpen ? enterNextDelay : enterDelay);\n } else {\n handleOpen(event);\n }\n };\n\n const handleLeave = event => {\n clearTimeout(enterTimer.current);\n clearTimeout(leaveTimer.current);\n leaveTimer.current = setTimeout(() => {\n handleClose(event);\n }, leaveDelay);\n };\n\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible(); // We don't necessarily care about the focusVisible state (which is safe to access via ref anyway).\n // We just need to re-render the Tooltip if the focus-visible state changes.\n\n const [, setChildIsFocusVisible] = React.useState(false);\n\n const handleBlur = event => {\n handleBlurVisible(event);\n\n if (isFocusVisibleRef.current === false) {\n setChildIsFocusVisible(false);\n handleLeave(event);\n }\n };\n\n const handleFocus = event => {\n // Workaround for https://github.com/facebook/react/issues/7769\n // The autoFocus of React might trigger the event before the componentDidMount.\n // We need to account for this eventuality.\n if (!childNode) {\n setChildNode(event.currentTarget);\n }\n\n handleFocusVisible(event);\n\n if (isFocusVisibleRef.current === true) {\n setChildIsFocusVisible(true);\n handleEnter(event);\n }\n };\n\n const detectTouchStart = event => {\n ignoreNonTouchEvents.current = true;\n const childrenProps = children.props;\n\n if (childrenProps.onTouchStart) {\n childrenProps.onTouchStart(event);\n }\n };\n\n const handleMouseOver = handleEnter;\n const handleMouseLeave = handleLeave;\n\n const handleTouchStart = event => {\n detectTouchStart(event);\n clearTimeout(leaveTimer.current);\n clearTimeout(closeTimer.current);\n stopTouchInteraction();\n prevUserSelect.current = document.body.style.WebkitUserSelect; // Prevent iOS text selection on long-tap.\n\n document.body.style.WebkitUserSelect = 'none';\n touchTimer.current = setTimeout(() => {\n document.body.style.WebkitUserSelect = prevUserSelect.current;\n handleEnter(event);\n }, enterTouchDelay);\n };\n\n const handleTouchEnd = event => {\n if (children.props.onTouchEnd) {\n children.props.onTouchEnd(event);\n }\n\n stopTouchInteraction();\n clearTimeout(leaveTimer.current);\n leaveTimer.current = setTimeout(() => {\n handleClose(event);\n }, leaveTouchDelay);\n };\n\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n /**\n * @param {KeyboardEvent} nativeEvent\n */\n\n\n function handleKeyDown(nativeEvent) {\n // IE11, Edge (prior to using Bink?) use 'Esc'\n if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n handleClose(nativeEvent);\n }\n }\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [handleClose, open]);\n const handleUseRef = useForkRef(setChildNode, ref);\n const handleFocusRef = useForkRef(focusVisibleRef, handleUseRef);\n const handleRef = useForkRef(children.ref, handleFocusRef); // There is no point in displaying an empty tooltip.\n\n if (title === '') {\n open = false;\n }\n\n const positionRef = React.useRef({\n x: 0,\n y: 0\n });\n const popperRef = React.useRef();\n\n const handleMouseMove = event => {\n const childrenProps = children.props;\n\n if (childrenProps.onMouseMove) {\n childrenProps.onMouseMove(event);\n }\n\n positionRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n\n if (popperRef.current) {\n popperRef.current.update();\n }\n };\n\n const nameOrDescProps = {};\n const titleIsString = typeof title === 'string';\n\n if (describeChild) {\n nameOrDescProps.title = !open && titleIsString && !disableHoverListener ? title : null;\n nameOrDescProps['aria-describedby'] = open ? id : null;\n } else {\n nameOrDescProps['aria-label'] = titleIsString ? title : null;\n nameOrDescProps['aria-labelledby'] = open && !titleIsString ? id : null;\n }\n\n const childrenProps = _extends({}, nameOrDescProps, other, children.props, {\n className: clsx(other.className, children.props.className),\n onTouchStart: detectTouchStart,\n ref: handleRef\n }, followCursor ? {\n onMouseMove: handleMouseMove\n } : {});\n\n if (process.env.NODE_ENV !== 'production') {\n childrenProps['data-mui-internal-clone-element'] = true; // eslint-disable-next-line react-hooks/rules-of-hooks\n\n React.useEffect(() => {\n if (childNode && !childNode.getAttribute('data-mui-internal-clone-element')) {\n console.error(['MUI: The `children` component of the Tooltip is not forwarding its props correctly.', 'Please make sure that props are spread on the same element that the ref is applied to.'].join('\\n'));\n }\n }, [childNode]);\n }\n\n const interactiveWrapperListeners = {};\n\n if (!disableTouchListener) {\n childrenProps.onTouchStart = handleTouchStart;\n childrenProps.onTouchEnd = handleTouchEnd;\n }\n\n if (!disableHoverListener) {\n childrenProps.onMouseOver = composeEventHandler(handleMouseOver, childrenProps.onMouseOver);\n childrenProps.onMouseLeave = composeEventHandler(handleMouseLeave, childrenProps.onMouseLeave);\n\n if (!disableInteractive) {\n interactiveWrapperListeners.onMouseOver = handleMouseOver;\n interactiveWrapperListeners.onMouseLeave = handleMouseLeave;\n }\n }\n\n if (!disableFocusListener) {\n childrenProps.onFocus = composeEventHandler(handleFocus, childrenProps.onFocus);\n childrenProps.onBlur = composeEventHandler(handleBlur, childrenProps.onBlur);\n\n if (!disableInteractive) {\n interactiveWrapperListeners.onFocus = handleFocus;\n interactiveWrapperListeners.onBlur = handleBlur;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (children.props.title) {\n console.error(['MUI: You have provided a `title` prop to the child of .', `Remove this title prop \\`${children.props.title}\\` or the Tooltip component.`].join('\\n'));\n }\n }\n\n const popperOptions = React.useMemo(() => {\n var _PopperProps$popperOp;\n\n let tooltipModifiers = [{\n name: 'arrow',\n enabled: Boolean(arrowRef),\n options: {\n element: arrowRef,\n padding: 4\n }\n }];\n\n if ((_PopperProps$popperOp = PopperProps.popperOptions) != null && _PopperProps$popperOp.modifiers) {\n tooltipModifiers = tooltipModifiers.concat(PopperProps.popperOptions.modifiers);\n }\n\n return _extends({}, PopperProps.popperOptions, {\n modifiers: tooltipModifiers\n });\n }, [arrowRef, PopperProps]);\n\n const ownerState = _extends({}, props, {\n isRtl,\n arrow,\n disableInteractive,\n placement,\n PopperComponentProp,\n touch: ignoreNonTouchEvents.current\n });\n\n const classes = useUtilityClasses(ownerState);\n const PopperComponent = (_components$Popper = components.Popper) != null ? _components$Popper : TooltipPopper;\n const TransitionComponent = (_ref = (_components$Transitio = components.Transition) != null ? _components$Transitio : TransitionComponentProp) != null ? _ref : Grow;\n const TooltipComponent = (_components$Tooltip = components.Tooltip) != null ? _components$Tooltip : TooltipTooltip;\n const ArrowComponent = (_components$Arrow = components.Arrow) != null ? _components$Arrow : TooltipArrow;\n const popperProps = appendOwnerState(PopperComponent, _extends({}, PopperProps, componentsProps.popper), ownerState);\n const transitionProps = appendOwnerState(TransitionComponent, _extends({}, TransitionProps, componentsProps.transition), ownerState);\n const tooltipProps = appendOwnerState(TooltipComponent, _extends({}, componentsProps.tooltip), ownerState);\n const tooltipArrowProps = appendOwnerState(ArrowComponent, _extends({}, componentsProps.arrow), ownerState);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/React.cloneElement(children, childrenProps), /*#__PURE__*/_jsx(PopperComponent, _extends({\n as: PopperComponentProp != null ? PopperComponentProp : Popper,\n placement: placement,\n anchorEl: followCursor ? {\n getBoundingClientRect: () => ({\n top: positionRef.current.y,\n left: positionRef.current.x,\n right: positionRef.current.x,\n bottom: positionRef.current.y,\n width: 0,\n height: 0\n })\n } : childNode,\n popperRef: popperRef,\n open: childNode ? open : false,\n id: id,\n transition: true\n }, interactiveWrapperListeners, popperProps, {\n className: clsx(classes.popper, PopperProps == null ? void 0 : PopperProps.className, (_componentsProps$popp = componentsProps.popper) == null ? void 0 : _componentsProps$popp.className),\n popperOptions: popperOptions,\n children: ({\n TransitionProps: TransitionPropsInner\n }) => {\n var _componentsProps$tool, _componentsProps$arro;\n\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n timeout: theme.transitions.duration.shorter\n }, TransitionPropsInner, transitionProps, {\n children: /*#__PURE__*/_jsxs(TooltipComponent, _extends({}, tooltipProps, {\n className: clsx(classes.tooltip, (_componentsProps$tool = componentsProps.tooltip) == null ? void 0 : _componentsProps$tool.className),\n children: [title, arrow ? /*#__PURE__*/_jsx(ArrowComponent, _extends({}, tooltipArrowProps, {\n className: clsx(classes.arrow, (_componentsProps$arro = componentsProps.arrow) == null ? void 0 : _componentsProps$arro.className),\n ref: setArrowRef\n })) : null]\n }))\n }));\n }\n }))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Tooltip.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 * If `true`, adds an arrow to the tooltip.\n * @default false\n */\n arrow: PropTypes.bool,\n\n /**\n * Tooltip reference element.\n */\n children: elementAcceptingRef.isRequired,\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 components used for each slot inside the Tooltip.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Arrow: PropTypes.elementType,\n Popper: PropTypes.elementType,\n Tooltip: PropTypes.elementType,\n Transition: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Tooltip.\n * Note that `componentsProps.popper` prop values win over `PopperProps`\n * and `componentsProps.transition` prop values win over `TransitionProps` if both are applied.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n arrow: PropTypes.object,\n popper: PropTypes.object,\n tooltip: PropTypes.object,\n transition: PropTypes.object\n }),\n\n /**\n * Set to `true` if the `title` acts as an accessible description.\n * By default the `title` acts as an accessible label for the child.\n * @default false\n */\n describeChild: PropTypes.bool,\n\n /**\n * Do not respond to focus-visible events.\n * @default false\n */\n disableFocusListener: PropTypes.bool,\n\n /**\n * Do not respond to hover events.\n * @default false\n */\n disableHoverListener: PropTypes.bool,\n\n /**\n * Makes a tooltip not interactive, i.e. it will close when the user\n * hovers over the tooltip before the `leaveDelay` is expired.\n * @default false\n */\n disableInteractive: PropTypes.bool,\n\n /**\n * Do not respond to long press touch events.\n * @default false\n */\n disableTouchListener: PropTypes.bool,\n\n /**\n * The number of milliseconds to wait before showing the tooltip.\n * This prop won't impact the enter touch delay (`enterTouchDelay`).\n * @default 100\n */\n enterDelay: PropTypes.number,\n\n /**\n * The number of milliseconds to wait before showing the tooltip when one was already recently opened.\n * @default 0\n */\n enterNextDelay: PropTypes.number,\n\n /**\n * The number of milliseconds a user must touch the element before showing the tooltip.\n * @default 700\n */\n enterTouchDelay: PropTypes.number,\n\n /**\n * If `true`, the tooltip follow the cursor over the wrapped element.\n * @default false\n */\n followCursor: PropTypes.bool,\n\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide this prop. It falls back to a randomly generated id.\n */\n id: PropTypes.string,\n\n /**\n * The number of milliseconds to wait before hiding the tooltip.\n * This prop won't impact the leave touch delay (`leaveTouchDelay`).\n * @default 0\n */\n leaveDelay: PropTypes.number,\n\n /**\n * The number of milliseconds after the user stops touching an element before hiding the tooltip.\n * @default 1500\n */\n leaveTouchDelay: PropTypes.number,\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired when the component requests to be open.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onOpen: PropTypes.func,\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n\n /**\n * Tooltip placement.\n * @default 'bottom'\n */\n placement: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n /**\n * The component used for the popper.\n * @default Popper\n */\n PopperComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`Popper`](/api/popper/) element.\n * @default {}\n */\n PopperProps: 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 * Tooltip title. Zero-length titles string are never displayed.\n */\n title: PropTypes\n /* @typescript-to-proptypes-ignore */\n .node.isRequired,\n\n /**\n * The component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Grow\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 Tooltip;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiAvatar', slot);\n}\nconst avatarClasses = generateUtilityClasses('MuiAvatar', ['root', 'colorDefault', 'circular', 'rounded', 'square', 'img', 'fallback']);\nexport default avatarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"alt\", \"children\", \"className\", \"component\", \"imgProps\", \"sizes\", \"src\", \"srcSet\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Person from '../internal/svg-icons/Person';\nimport { getAvatarUtilityClass } from './avatarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n colorDefault\n } = ownerState;\n const slots = {\n root: ['root', variant, colorDefault && 'colorDefault'],\n img: ['img'],\n fallback: ['fallback']\n };\n return composeClasses(slots, getAvatarUtilityClass, classes);\n};\n\nconst AvatarRoot = styled('div', {\n name: 'MuiAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], ownerState.colorDefault && styles.colorDefault];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: 40,\n height: 40,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(20),\n lineHeight: 1,\n borderRadius: '50%',\n overflow: 'hidden',\n userSelect: 'none'\n}, ownerState.variant === 'rounded' && {\n borderRadius: theme.shape.borderRadius\n}, ownerState.variant === 'square' && {\n borderRadius: 0\n}, ownerState.colorDefault && {\n color: theme.palette.background.default,\n backgroundColor: theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n}));\nconst AvatarImg = styled('img', {\n name: 'MuiAvatar',\n slot: 'Img',\n overridesResolver: (props, styles) => styles.img\n})({\n width: '100%',\n height: '100%',\n textAlign: 'center',\n // Handle non-square image. The property isn't supported by IE11.\n objectFit: 'cover',\n // Hide alt text.\n color: 'transparent',\n // Hide the image broken icon, only works on Chrome.\n textIndent: 10000\n});\nconst AvatarFallback = styled(Person, {\n name: 'MuiAvatar',\n slot: 'Fallback',\n overridesResolver: (props, styles) => styles.fallback\n})({\n width: '75%',\n height: '75%'\n});\n\nfunction useLoaded({\n crossOrigin,\n referrerPolicy,\n src,\n srcSet\n}) {\n const [loaded, setLoaded] = React.useState(false);\n React.useEffect(() => {\n if (!src && !srcSet) {\n return undefined;\n }\n\n setLoaded(false);\n let active = true;\n const image = new Image();\n\n image.onload = () => {\n if (!active) {\n return;\n }\n\n setLoaded('loaded');\n };\n\n image.onerror = () => {\n if (!active) {\n return;\n }\n\n setLoaded('error');\n };\n\n image.crossOrigin = crossOrigin;\n image.referrerPolicy = referrerPolicy;\n image.src = src;\n\n if (srcSet) {\n image.srcset = srcSet;\n }\n\n return () => {\n active = false;\n };\n }, [crossOrigin, referrerPolicy, src, srcSet]);\n return loaded;\n}\n\nconst Avatar = /*#__PURE__*/React.forwardRef(function Avatar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAvatar'\n });\n\n const {\n alt,\n children: childrenProp,\n className,\n component = 'div',\n imgProps,\n sizes,\n src,\n srcSet,\n variant = 'circular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n let children = null; // Use a hook instead of onError on the img element to support server-side rendering.\n\n const loaded = useLoaded(_extends({}, imgProps, {\n src,\n srcSet\n }));\n const hasImg = src || srcSet;\n const hasImgNotFailing = hasImg && loaded !== 'error';\n\n const ownerState = _extends({}, props, {\n colorDefault: !hasImgNotFailing,\n component,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n\n if (hasImgNotFailing) {\n children = /*#__PURE__*/_jsx(AvatarImg, _extends({\n alt: alt,\n src: src,\n srcSet: srcSet,\n sizes: sizes,\n ownerState: ownerState,\n className: classes.img\n }, imgProps));\n } else if (childrenProp != null) {\n children = childrenProp;\n } else if (hasImg && alt) {\n children = alt[0];\n } else {\n children = /*#__PURE__*/_jsx(AvatarFallback, {\n className: classes.fallback\n });\n }\n\n return /*#__PURE__*/_jsx(AvatarRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Avatar.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 * Used in combination with `src` or `srcSet` to\n * provide an alt attribute for the rendered `img` element.\n */\n alt: PropTypes.string,\n\n /**\n * Used to render icon or text elements inside the Avatar if `src` is not set.\n * This can be an element, or just a string.\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 * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attributes) applied to the `img` element if the component is used to display an image.\n * It can be used to listen for the loading error event.\n */\n imgProps: PropTypes.object,\n\n /**\n * The `sizes` attribute for the `img` element.\n */\n sizes: PropTypes.string,\n\n /**\n * The `src` attribute for the `img` element.\n */\n src: PropTypes.string,\n\n /**\n * The `srcSet` attribute for the `img` element.\n * Use this attribute for responsive image display.\n */\n srcSet: 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 * The shape of the avatar.\n * @default 'circular'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['circular', 'rounded', 'square']), PropTypes.string])\n} : void 0;\nexport default Avatar;","import { Avatar, Tooltip } from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport { useImageProvider } from \"./Backend/ImageProvider\";\n\nexport default function SmallAvatarWrapper(props) {\n const { userId, skipCookie, tooltipContent, hasTooltip, imageSize, imageType = 'profilepic', ...rest } = props;\n const [imgSrc, setImgSrc] = useState();\n const { getImage, imageData } = useImageProvider();\n\n useEffect(() => {\n if (userId && skipCookie) {\n getImage(userId, imageType, imageSize);\n }\n }, [getImage, userId]);\n\n useEffect(() => {\n if (skipCookie) {\n setImgSrc(imageData);\n }\n }, [imageData]);\n\n return (\n hasTooltip\n ?\n \n \n \n :\n \n );\n}\n","import { useContext, useCallback, useState, useRef } from 'react';\nimport MainContext from './MainContext';\nimport { handleAuthentication } from './CloudFetcher';\n\nexport const useImageProvider = () => {\n const { accessToken, tokenType } = useContext(MainContext);\n const [imageData, setImageData] = useState(null);\n const accessRef = useRef(accessToken);\n\n const getImage = useCallback(async (id, imageType, imageSize) => {\n const authstr = tokenType === 'bearer' ? 'Bearer ' : 'Token ';\n\n const requestVar = new Request(`${process.env.REACT_APP_IMAGE_SERVE_HOST}/${imageType}/${id}${imageSize ?? ''}.webp`, {\n method: 'GET',\n headers: new Headers({ 'Authorization': authstr + accessRef.current.access, })\n });\n\n try {\n var cache = await caches.open('pwa-cache');\n const cacheRes = await cache.match(requestVar);\n\n const cacheBlob = cacheRes ? await cacheRes.blob() : null;\n if (cacheBlob && cacheBlob.size > 0) setImageData(URL.createObjectURL(cacheBlob));\n }\n catch {\n console.log('Cache unavailable');\n }\n\n try {\n if (tokenType === 'bearer') {\n const auth = await handleAuthentication(accessRef.current.access, accessRef.current.refresh);\n accessRef.current.access = auth;\n }\n const bearerFetchRes = await fetch(requestVar);\n if (bearerFetchRes.ok) {\n const fetchBlob = await bearerFetchRes.blob();\n if (fetchBlob && fetchBlob.size > 0) setImageData(URL.createObjectURL(fetchBlob));\n else setImageData(null);\n try {\n cache.add(requestVar);\n }\n catch {\n console.log('Cache unavailable');\n }\n }\n else {\n console.error(bearerFetchRes.statusText);\n }\n }\n catch (err) {\n console.error(err);\n }\n }, []);\n\n return { getImage, imageData };\n};","import * as React from 'react';\nimport Popover from '@mui/material/Popover';\nimport Typography from '@mui/material/Typography';\nimport HelpIcon from '@mui/icons-material/Help';\nimport { useTheme } from '@mui/material';\n\nexport default function HelperIcon(props) {\n const theme = useTheme();\n const [anchorEl, setAnchorEl] = React.useState(null);\n\n const handlePopoverOpen = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handlePopoverClose = () => {\n setAnchorEl(null);\n };\n\n const open = Boolean(anchorEl);\n\n return (\n
\n \n \n {props.content}\n \n
\n );\n}","import generateUtilityClasses from '../generateUtilityClasses';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getSliderUtilityClass(slot) {\n return generateUtilityClass('MuiSlider', slot);\n}\nconst sliderUnstyledClasses = generateUtilityClasses('MuiSlider', ['root', 'active', 'focusVisible', 'disabled', 'dragging', 'marked', 'vertical', 'trackInverted', 'trackFalse', 'rail', 'track', 'mark', 'markActive', 'markLabel', 'markLabelActive', 'thumb', 'valueLabel', 'valueLabelOpen', 'valueLabelCircle', 'valueLabelLabel']);\nexport default sliderUnstyledClasses;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport sliderUnstyledClasses from './sliderUnstyledClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useValueLabelClasses = props => {\n const {\n open\n } = props;\n const utilityClasses = {\n offset: clsx(open && sliderUnstyledClasses.valueLabelOpen),\n circle: sliderUnstyledClasses.valueLabelCircle,\n label: sliderUnstyledClasses.valueLabelLabel\n };\n return utilityClasses;\n};\n/**\n * @ignore - internal component.\n */\n\n\nfunction SliderValueLabelUnstyled(props) {\n const {\n children,\n className,\n value,\n theme\n } = props;\n const classes = useValueLabelClasses(props);\n return /*#__PURE__*/React.cloneElement(children, {\n className: clsx(children.props.className)\n }, /*#__PURE__*/_jsxs(React.Fragment, {\n children: [children.props.children, /*#__PURE__*/_jsx(\"span\", {\n className: clsx(classes.offset, className),\n theme: theme,\n \"aria-hidden\": true,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: classes.circle,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: classes.label,\n children: value\n })\n })\n })]\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? SliderValueLabelUnstyled.propTypes = {\n children: PropTypes.element.isRequired,\n className: PropTypes.string,\n theme: PropTypes.any,\n value: PropTypes.node\n} : void 0;\nexport default SliderValueLabelUnstyled;","const visuallyHidden = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n};\nexport default visuallyHidden;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useIsFocusVisible as useIsFocusVisible, unstable_useEnhancedEffect as useEnhancedEffect, unstable_ownerDocument as ownerDocument, unstable_useEventCallback as useEventCallback, unstable_useForkRef as useForkRef, unstable_useControlled as useControlled, visuallyHidden } from '@mui/utils';\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\n\nfunction asc(a, b) {\n return a - b;\n}\n\nfunction clamp(value, min, max) {\n if (value == null) {\n return min;\n }\n\n return Math.min(Math.max(min, value), max);\n}\n\nfunction findClosest(values, currentValue) {\n var _values$reduce;\n\n const {\n index: closestIndex\n } = (_values$reduce = values.reduce((acc, value, index) => {\n const distance = Math.abs(currentValue - value);\n\n if (acc === null || distance < acc.distance || distance === acc.distance) {\n return {\n distance,\n index\n };\n }\n\n return acc;\n }, null)) != null ? _values$reduce : {};\n return closestIndex;\n}\n\nfunction trackFinger(event, touchId) {\n // The event is TouchEvent\n if (touchId.current !== undefined && event.changedTouches) {\n const touchEvent = event;\n\n for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n const touch = touchEvent.changedTouches[i];\n\n if (touch.identifier === touchId.current) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n\n return false;\n } // The event is MouseEvent\n\n\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\n\nexport function valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}\n\nfunction percentToValue(percent, min, max) {\n return (max - min) * percent + min;\n}\n\nfunction getDecimalPrecision(num) {\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\n\nfunction roundValueToStep(value, step, min) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\n\nfunction setValueIndex({\n values,\n newValue,\n index\n}) {\n const output = values.slice();\n output[index] = newValue;\n return output.sort(asc);\n}\n\nfunction focusThumb({\n sliderRef,\n activeIndex,\n setActive\n}) {\n var _sliderRef$current, _doc$activeElement;\n\n const doc = ownerDocument(sliderRef.current);\n\n if (!((_sliderRef$current = sliderRef.current) != null && _sliderRef$current.contains(doc.activeElement)) || Number(doc == null ? void 0 : (_doc$activeElement = doc.activeElement) == null ? void 0 : _doc$activeElement.getAttribute('data-index')) !== activeIndex) {\n var _sliderRef$current2;\n\n (_sliderRef$current2 = sliderRef.current) == null ? void 0 : _sliderRef$current2.querySelector(`[type=\"range\"][data-index=\"${activeIndex}\"]`).focus();\n }\n\n if (setActive) {\n setActive(activeIndex);\n }\n}\n\nconst axisProps = {\n horizontal: {\n offset: percent => ({\n left: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n 'horizontal-reverse': {\n offset: percent => ({\n right: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n vertical: {\n offset: percent => ({\n bottom: `${percent}%`\n }),\n leap: percent => ({\n height: `${percent}%`\n })\n }\n};\nexport const Identity = x => x; // TODO: remove support for Safari < 13.\n// https://caniuse.com/#search=touch-action\n//\n// Safari, on iOS, supports touch action since v13.\n// Over 80% of the iOS phones are compatible\n// in August 2020.\n// Utilizing the CSS.supports method to check if touch-action is supported.\n// Since CSS.supports is supported on all but Edge@12 and IE and touch-action\n// is supported on both Edge@12 and IE if CSS.supports is not available that means that\n// touch-action will be supported\n\nlet cachedSupportsTouchActionNone;\n\nfunction doesSupportTouchActionNone() {\n if (cachedSupportsTouchActionNone === undefined) {\n if (typeof CSS !== 'undefined' && typeof CSS.supports === 'function') {\n cachedSupportsTouchActionNone = CSS.supports('touch-action', 'none');\n } else {\n cachedSupportsTouchActionNone = true;\n }\n }\n\n return cachedSupportsTouchActionNone;\n}\n\nexport default function useSlider(props) {\n const {\n ref,\n 'aria-labelledby': ariaLabelledby,\n defaultValue,\n disableSwap = false,\n disabled = false,\n marks: marksProp = false,\n max = 100,\n min = 0,\n name,\n onChange,\n onChangeCommitted,\n orientation = 'horizontal',\n scale = Identity,\n step = 1,\n tabIndex,\n value: valueProp,\n isRtl = false\n } = props;\n const touchId = React.useRef(); // We can't use the :active browser pseudo-classes.\n // - The active state isn't triggered when clicking on the rail.\n // - The active state isn't transferred when inversing a range slider.\n\n const [active, setActive] = React.useState(-1);\n const [open, setOpen] = React.useState(-1);\n const [dragging, setDragging] = React.useState(false);\n const moveCount = React.useRef(0);\n const [valueDerived, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue != null ? defaultValue : min,\n name: 'Slider'\n });\n\n const handleChange = onChange && ((event, value, thumbIndex) => {\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n // Clone the event to not override `target` of the original event.\n const nativeEvent = event.nativeEvent || event; // @ts-ignore The nativeEvent is function, not object\n\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: {\n value,\n name\n }\n });\n onChange(clonedEvent, value, thumbIndex);\n });\n\n const range = Array.isArray(valueDerived);\n let values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n values = values.map(value => clamp(value, min, max));\n const marks = marksProp === true && step !== null ? [...Array(Math.floor((max - min) / step) + 1)].map((_, index) => ({\n value: min + step * index\n })) : marksProp || [];\n const marksValues = marks.map(mark => mark.value);\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(-1);\n const sliderRef = React.useRef();\n const handleFocusRef = useForkRef(focusVisibleRef, sliderRef);\n const handleRef = useForkRef(ref, handleFocusRef);\n\n const createHandleHiddenInputFocus = otherHandlers => event => {\n var _otherHandlers$onFocu;\n\n const index = Number(event.currentTarget.getAttribute('data-index'));\n handleFocusVisible(event);\n\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(index);\n }\n\n setOpen(index);\n otherHandlers == null ? void 0 : (_otherHandlers$onFocu = otherHandlers.onFocus) == null ? void 0 : _otherHandlers$onFocu.call(otherHandlers, event);\n };\n\n const createHandleHiddenInputBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n\n handleBlurVisible(event);\n\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(-1);\n }\n\n setOpen(-1);\n otherHandlers == null ? void 0 : (_otherHandlers$onBlur = otherHandlers.onBlur) == null ? void 0 : _otherHandlers$onBlur.call(otherHandlers, event);\n };\n\n useEnhancedEffect(() => {\n if (disabled && sliderRef.current.contains(document.activeElement)) {\n var _document$activeEleme;\n\n // This is necessary because Firefox and Safari will keep focus\n // on a disabled element:\n // https://codesandbox.io/s/mui-pr-22247-forked-h151h?file=/src/App.js\n // @ts-ignore\n (_document$activeEleme = document.activeElement) == null ? void 0 : _document$activeEleme.blur();\n }\n }, [disabled]);\n\n if (disabled && active !== -1) {\n setActive(-1);\n }\n\n if (disabled && focusVisible !== -1) {\n setFocusVisible(-1);\n }\n\n const createHandleHiddenInputChange = otherHandlers => event => {\n var _otherHandlers$onChan;\n\n (_otherHandlers$onChan = otherHandlers.onChange) == null ? void 0 : _otherHandlers$onChan.call(otherHandlers, event);\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n const marksIndex = marksValues.indexOf(value); // @ts-ignore\n\n let newValue = event.target.valueAsNumber;\n\n if (marks && step == null) {\n newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];\n }\n\n newValue = clamp(newValue, min, max);\n\n if (marks && step == null) {\n const currentMarkIndex = marksValues.indexOf(values[index]);\n newValue = newValue < values[index] ? marksValues[currentMarkIndex - 1] : marksValues[currentMarkIndex + 1];\n }\n\n if (range) {\n // Bound the new value to the thumb's neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);\n }\n\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index\n });\n let activeIndex = index; // Potentially swap the index if needed.\n\n if (!disableSwap) {\n activeIndex = newValue.indexOf(previousValue);\n }\n\n focusThumb({\n sliderRef,\n activeIndex\n });\n }\n\n setValueState(newValue);\n setFocusVisible(index);\n\n if (handleChange) {\n handleChange(event, newValue, index);\n }\n\n if (onChangeCommitted) {\n onChangeCommitted(event, newValue);\n }\n };\n\n const previousIndex = React.useRef();\n let axis = orientation;\n\n if (isRtl && orientation === 'horizontal') {\n axis += '-reverse';\n }\n\n const getFingerNewValue = ({\n finger,\n move = false,\n values: values2\n }) => {\n const {\n current: slider\n } = sliderRef;\n const {\n width,\n height,\n bottom,\n left\n } = slider.getBoundingClientRect();\n let percent;\n\n if (axis.indexOf('vertical') === 0) {\n percent = (bottom - finger.y) / height;\n } else {\n percent = (finger.x - left) / width;\n }\n\n if (axis.indexOf('-reverse') !== -1) {\n percent = 1 - percent;\n }\n\n let newValue;\n newValue = percentToValue(percent, min, max);\n\n if (step) {\n newValue = roundValueToStep(newValue, step, min);\n } else {\n const closestIndex = findClosest(marksValues, newValue);\n newValue = marksValues[closestIndex];\n }\n\n newValue = clamp(newValue, min, max);\n let activeIndex = 0;\n\n if (range) {\n if (!move) {\n activeIndex = findClosest(values2, newValue);\n } else {\n activeIndex = previousIndex.current;\n } // Bound the new value to the thumb's neighbours.\n\n\n if (disableSwap) {\n newValue = clamp(newValue, values2[activeIndex - 1] || -Infinity, values2[activeIndex + 1] || Infinity);\n }\n\n const previousValue = newValue;\n newValue = setValueIndex({\n values: values2,\n newValue,\n index: activeIndex\n }); // Potentially swap the index if needed.\n\n if (!(disableSwap && move)) {\n activeIndex = newValue.indexOf(previousValue);\n previousIndex.current = activeIndex;\n }\n }\n\n return {\n newValue,\n activeIndex\n };\n };\n\n const handleTouchMove = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n\n if (!finger) {\n return;\n }\n\n moveCount.current += 1; // Cancel move in case some other element consumed a mouseup event and it was not fired.\n // @ts-ignore buttons doesn't not exists on touch event\n\n if (nativeEvent.type === 'mousemove' && nativeEvent.buttons === 0) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleTouchEnd(nativeEvent);\n return;\n }\n\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n move: true,\n values\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n\n if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n setDragging(true);\n }\n\n if (handleChange) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n });\n const handleTouchEnd = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n setDragging(false);\n\n if (!finger) {\n return;\n }\n\n const {\n newValue\n } = getFingerNewValue({\n finger,\n values\n });\n setActive(-1);\n\n if (nativeEvent.type === 'touchend') {\n setOpen(-1);\n }\n\n if (onChangeCommitted) {\n onChangeCommitted(nativeEvent, newValue);\n }\n\n touchId.current = undefined; // eslint-disable-next-line @typescript-eslint/no-use-before-define\n\n stopListening();\n });\n const handleTouchStart = useEventCallback(nativeEvent => {\n if (disabled) {\n return;\n } // If touch-action: none; is not supported we need to prevent the scroll manually.\n\n\n if (!doesSupportTouchActionNone()) {\n nativeEvent.preventDefault();\n }\n\n const touch = nativeEvent.changedTouches[0];\n\n if (touch != null) {\n // A number that uniquely identifies the current finger in the touch session.\n touchId.current = touch.identifier;\n }\n\n const finger = trackFinger(nativeEvent, touchId);\n\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n values\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n\n if (handleChange) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n }\n\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('touchmove', handleTouchMove);\n doc.addEventListener('touchend', handleTouchEnd);\n });\n const stopListening = React.useCallback(() => {\n const doc = ownerDocument(sliderRef.current);\n doc.removeEventListener('mousemove', handleTouchMove);\n doc.removeEventListener('mouseup', handleTouchEnd);\n doc.removeEventListener('touchmove', handleTouchMove);\n doc.removeEventListener('touchend', handleTouchEnd);\n }, [handleTouchEnd, handleTouchMove]);\n React.useEffect(() => {\n const {\n current: slider\n } = sliderRef;\n slider.addEventListener('touchstart', handleTouchStart, {\n passive: doesSupportTouchActionNone()\n });\n return () => {\n // @ts-ignore\n slider.removeEventListener('touchstart', handleTouchStart, {\n passive: doesSupportTouchActionNone()\n });\n stopListening();\n };\n }, [stopListening, handleTouchStart]);\n React.useEffect(() => {\n if (disabled) {\n stopListening();\n }\n }, [disabled, stopListening]);\n\n const createHandleMouseDown = otherHandlers => event => {\n var _otherHandlers$onMous;\n\n (_otherHandlers$onMous = otherHandlers.onMouseDown) == null ? void 0 : _otherHandlers$onMous.call(otherHandlers, event);\n\n if (disabled) {\n return;\n }\n\n if (event.defaultPrevented) {\n return;\n } // Only handle left clicks\n\n\n if (event.button !== 0) {\n return;\n } // Avoid text selection\n\n\n event.preventDefault();\n const finger = trackFinger(event, touchId);\n\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n values\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n\n if (handleChange) {\n handleChange(event, newValue, activeIndex);\n }\n }\n\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('mousemove', handleTouchMove);\n doc.addEventListener('mouseup', handleTouchEnd);\n };\n\n const trackOffset = valueToPercent(range ? values[0] : min, min, max);\n const trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n\n const getRootProps = otherHandlers => {\n const ownEventHandlers = {\n onMouseDown: createHandleMouseDown(otherHandlers || {})\n };\n\n const mergedEventHandlers = _extends({}, otherHandlers, ownEventHandlers);\n\n return _extends({\n ref: handleRef\n }, mergedEventHandlers);\n };\n\n const createHandleMouseOver = otherHandlers => event => {\n var _otherHandlers$onMous2;\n\n (_otherHandlers$onMous2 = otherHandlers.onMouseOver) == null ? void 0 : _otherHandlers$onMous2.call(otherHandlers, event);\n const index = Number(event.currentTarget.getAttribute('data-index'));\n setOpen(index);\n };\n\n const createHandleMouseLeave = otherHandlers => event => {\n var _otherHandlers$onMous3;\n\n (_otherHandlers$onMous3 = otherHandlers.onMouseLeave) == null ? void 0 : _otherHandlers$onMous3.call(otherHandlers, event);\n setOpen(-1);\n };\n\n const getThumbProps = otherHandlers => {\n const ownEventHandlers = {\n onMouseOver: createHandleMouseOver(otherHandlers || {}),\n onMouseLeave: createHandleMouseLeave(otherHandlers || {})\n };\n\n const mergedEventHandlers = _extends({}, otherHandlers, ownEventHandlers);\n\n return _extends({}, mergedEventHandlers);\n };\n\n const getHiddenInputProps = otherHandlers => {\n const ownEventHandlers = {\n onChange: createHandleHiddenInputChange(otherHandlers || {}),\n onFocus: createHandleHiddenInputFocus(otherHandlers || {}),\n onBlur: createHandleHiddenInputBlur(otherHandlers || {})\n };\n\n const mergedEventHandlers = _extends({}, otherHandlers, ownEventHandlers);\n\n return _extends({\n tabIndex,\n 'aria-labelledby': ariaLabelledby,\n 'aria-orientation': orientation,\n 'aria-valuemax': scale(max),\n 'aria-valuemin': scale(min),\n name,\n type: 'range',\n min: props.min,\n max: props.max,\n step: props.step,\n disabled\n }, mergedEventHandlers, {\n style: _extends({}, visuallyHidden, {\n direction: isRtl ? 'rtl' : 'ltr',\n // So that VoiceOver's focus indicator matches the thumb's dimensions\n width: '100%',\n height: '100%'\n })\n });\n };\n\n return {\n axis,\n axisProps,\n getRootProps,\n getHiddenInputProps,\n getThumbProps,\n dragging,\n marks,\n values,\n active,\n focusVisible,\n open,\n range,\n trackOffset,\n trackLeap\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"aria-label\", \"aria-valuetext\", \"className\", \"component\", \"classes\", \"disableSwap\", \"disabled\", \"getAriaLabel\", \"getAriaValueText\", \"marks\", \"max\", \"min\", \"name\", \"onChange\", \"onChangeCommitted\", \"onMouseDown\", \"orientation\", \"scale\", \"step\", \"tabIndex\", \"track\", \"value\", \"valueLabelDisplay\", \"valueLabelFormat\", \"isRtl\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport appendOwnerState from '../utils/appendOwnerState';\nimport isHostComponent from '../utils/isHostComponent';\nimport composeClasses from '../composeClasses';\nimport { getSliderUtilityClass } from './sliderUnstyledClasses';\nimport SliderValueLabelUnstyled from './SliderValueLabelUnstyled';\nimport useSlider, { valueToPercent } from './useSlider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst Identity = x => x;\n\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n dragging,\n marked,\n orientation,\n track,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', dragging && 'dragging', marked && 'marked', orientation === 'vertical' && 'vertical', track === 'inverted' && 'trackInverted', track === false && 'trackFalse'],\n rail: ['rail'],\n track: ['track'],\n mark: ['mark'],\n markActive: ['markActive'],\n markLabel: ['markLabel'],\n markLabelActive: ['markLabelActive'],\n valueLabel: ['valueLabel'],\n thumb: ['thumb', disabled && 'disabled'],\n active: ['active'],\n disabled: ['disabled'],\n focusVisible: ['focusVisible']\n };\n return composeClasses(slots, getSliderUtilityClass, classes);\n};\n\nconst Forward = ({\n children\n}) => children;\n\nconst SliderUnstyled = /*#__PURE__*/React.forwardRef(function SliderUnstyled(props, ref) {\n var _ref, _components$Rail, _components$Track, _components$Thumb, _components$ValueLabe, _components$Mark, _components$MarkLabel;\n\n const {\n 'aria-label': ariaLabel,\n 'aria-valuetext': ariaValuetext,\n className,\n component,\n classes: classesProp,\n disableSwap = false,\n disabled = false,\n getAriaLabel,\n getAriaValueText,\n marks: marksProp = false,\n max = 100,\n min = 0,\n onMouseDown,\n orientation = 'horizontal',\n scale = Identity,\n step = 1,\n track = 'normal',\n valueLabelDisplay = 'off',\n valueLabelFormat = Identity,\n isRtl = false,\n components = {},\n componentsProps = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded); // all props with defaults\n // consider extracting to hook an reusing the lint rule for the varints\n\n\n const ownerState = _extends({}, props, {\n mark: marksProp,\n classes: classesProp,\n disabled,\n isRtl,\n max,\n min,\n orientation,\n scale,\n step,\n track,\n valueLabelDisplay,\n valueLabelFormat\n });\n\n const {\n axisProps,\n getRootProps,\n getHiddenInputProps,\n getThumbProps,\n open,\n active,\n axis,\n range,\n focusVisible,\n dragging,\n marks,\n values,\n trackOffset,\n trackLeap\n } = useSlider(_extends({}, ownerState, {\n ref\n }));\n ownerState.marked = marks.length > 0 && marks.some(mark => mark.label);\n ownerState.dragging = dragging;\n const Root = (_ref = component != null ? component : components.Root) != null ? _ref : 'span';\n const rootProps = appendOwnerState(Root, _extends({}, other, componentsProps.root), ownerState);\n const Rail = (_components$Rail = components.Rail) != null ? _components$Rail : 'span';\n const railProps = appendOwnerState(Rail, componentsProps.rail, ownerState);\n const Track = (_components$Track = components.Track) != null ? _components$Track : 'span';\n const trackProps = appendOwnerState(Track, componentsProps.track, ownerState);\n\n const trackStyle = _extends({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap));\n\n const Thumb = (_components$Thumb = components.Thumb) != null ? _components$Thumb : 'span';\n const thumbProps = appendOwnerState(Thumb, componentsProps.thumb, ownerState);\n const ValueLabel = (_components$ValueLabe = components.ValueLabel) != null ? _components$ValueLabe : SliderValueLabelUnstyled;\n const valueLabelProps = appendOwnerState(ValueLabel, componentsProps.valueLabel, ownerState);\n const Mark = (_components$Mark = components.Mark) != null ? _components$Mark : 'span';\n const markProps = appendOwnerState(Mark, componentsProps.mark, ownerState);\n const MarkLabel = (_components$MarkLabel = components.MarkLabel) != null ? _components$MarkLabel : 'span';\n const markLabelProps = appendOwnerState(MarkLabel, componentsProps.markLabel, ownerState);\n const Input = components.Input || 'input';\n const inputProps = appendOwnerState(Input, componentsProps.input, ownerState);\n const hiddenInputProps = getHiddenInputProps();\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, getRootProps({\n onMouseDown\n }), {\n className: clsx(classes.root, rootProps.className, className),\n children: [/*#__PURE__*/_jsx(Rail, _extends({}, railProps, {\n className: clsx(classes.rail, railProps.className)\n })), /*#__PURE__*/_jsx(Track, _extends({}, trackProps, {\n className: clsx(classes.track, trackProps.className),\n style: _extends({}, trackStyle, trackProps.style)\n })), marks.map((mark, index) => {\n const percent = valueToPercent(mark.value, min, max);\n const style = axisProps[axis].offset(percent);\n let markActive;\n\n if (track === false) {\n markActive = values.indexOf(mark.value) !== -1;\n } else {\n markActive = track === 'normal' && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === 'inverted' && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);\n }\n\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(Mark, _extends({\n \"data-index\": index\n }, markProps, !isHostComponent(Mark) && {\n markActive\n }, {\n style: _extends({}, style, markProps.style),\n className: clsx(classes.mark, markProps.className, markActive && classes.markActive)\n })), mark.label != null ? /*#__PURE__*/_jsx(MarkLabel, _extends({\n \"aria-hidden\": true,\n \"data-index\": index\n }, markLabelProps, !isHostComponent(MarkLabel) && {\n markLabelActive: markActive\n }, {\n style: _extends({}, style, markLabelProps.style),\n className: clsx(classes.markLabel, markLabelProps.className, markActive && classes.markLabelActive),\n children: mark.label\n })) : null]\n }, mark.value);\n }), values.map((value, index) => {\n const percent = valueToPercent(value, min, max);\n const style = axisProps[axis].offset(percent);\n const ValueLabelComponent = valueLabelDisplay === 'off' ? Forward : ValueLabel;\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/_jsx(ValueLabelComponent, _extends({}, !isHostComponent(ValueLabelComponent) && {\n valueLabelFormat,\n valueLabelDisplay,\n value: typeof valueLabelFormat === 'function' ? valueLabelFormat(scale(value), index) : valueLabelFormat,\n index,\n open: open === index || active === index || valueLabelDisplay === 'on',\n disabled\n }, valueLabelProps, {\n className: clsx(classes.valueLabel, valueLabelProps.className),\n children: /*#__PURE__*/_jsx(Thumb, _extends({\n \"data-index\": index\n }, thumbProps, getThumbProps(), {\n className: clsx(classes.thumb, thumbProps.className, active === index && classes.active, focusVisible === index && classes.focusVisible)\n }, !isHostComponent(Thumb) && {\n ownerState: _extends({}, ownerState, thumbProps.ownerState)\n }, {\n style: _extends({}, style, {\n pointerEvents: disableSwap && active !== index ? 'none' : undefined\n }, thumbProps.style),\n children: /*#__PURE__*/_jsx(Input, _extends({}, hiddenInputProps, {\n \"data-index\": index,\n \"aria-label\": getAriaLabel ? getAriaLabel(index) : ariaLabel,\n \"aria-valuenow\": scale(value),\n \"aria-valuetext\": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,\n value: values[index]\n }, !isHostComponent(Input) && {\n ownerState: _extends({}, ownerState, inputProps.ownerState)\n }, inputProps, {\n style: _extends({}, hiddenInputProps.style, inputProps.style)\n }))\n }))\n }))\n }, index);\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SliderUnstyled.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 label of the slider.\n */\n 'aria-label': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n\n if (range && props['aria-label'] != null) {\n return new Error('MUI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.');\n }\n\n return null;\n }),\n\n /**\n * The id of the element containing a label for the slider.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * A string value that provides a user-friendly name for the current value of the slider.\n */\n 'aria-valuetext': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n\n if (range && props['aria-valuetext'] != null) {\n return new Error('MUI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.');\n }\n\n return null;\n }),\n\n /**\n * @ignore\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 * The components used for each slot inside the Slider.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Mark: PropTypes.elementType,\n MarkLabel: PropTypes.elementType,\n Rail: PropTypes.elementType,\n Root: PropTypes.elementType,\n Thumb: PropTypes.elementType,\n Track: PropTypes.elementType,\n ValueLabel: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Slider.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n mark: PropTypes.object,\n markLabel: PropTypes.object,\n rail: PropTypes.object,\n root: PropTypes.object,\n thumb: PropTypes.object,\n track: PropTypes.object,\n valueLabel: PropTypes.shape({\n className: PropTypes.string,\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n style: PropTypes.object,\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on'])\n })\n }),\n\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the active thumb doesn't swap when moving pointer over a thumb while dragging another thumb.\n * @default false\n */\n disableSwap: PropTypes.bool,\n\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.\n * This is important for screen reader users.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaLabel: PropTypes.func,\n\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.\n * This is important for screen reader users.\n * @param {number} value The thumb label's value to format.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaValueText: PropTypes.func,\n\n /**\n * Indicates whether the theme context has rtl direction. It is set automatically.\n * @default false\n */\n isRtl: PropTypes.bool,\n\n /**\n * Marks indicate predetermined values to which the user can move the slider.\n * If `true` the marks are spaced according the value of the `step` prop.\n * If an array, it should contain objects with `value` and an optional `label` keys.\n * @default false\n */\n marks: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.node,\n value: PropTypes.number.isRequired\n })), PropTypes.bool]),\n\n /**\n * The maximum allowed value of the slider.\n * Should not be equal to min.\n * @default 100\n */\n max: PropTypes.number,\n\n /**\n * The minimum allowed value of the slider.\n * Should not be equal to max.\n * @default 0\n */\n min: PropTypes.number,\n\n /**\n * Name attribute of the hidden `input` element.\n */\n name: PropTypes.string,\n\n /**\n * Callback function that is fired when the slider's value changed.\n *\n * @param {Event} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (any).\n * **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n * @param {number} activeThumb Index of the currently moved thumb.\n */\n onChange: PropTypes.func,\n\n /**\n * Callback function that is fired when the `mouseup` is triggered.\n *\n * @param {React.SyntheticEvent | Event} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n */\n onChangeCommitted: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * A transformation function, to change the scale of the slider.\n * @default (x) => x\n */\n scale: PropTypes.func,\n\n /**\n * The granularity with which the slider can step through values. (A \"discrete\" slider.)\n * The `min` prop serves as the origin for the valid values.\n * We recommend (max - min) to be evenly divisible by the step.\n *\n * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.\n * @default 1\n */\n step: PropTypes.number,\n\n /**\n * Tab index attribute of the hidden `input` element.\n */\n tabIndex: PropTypes.number,\n\n /**\n * The track presentation:\n *\n * - `normal` the track will render a bar representing the slider value.\n * - `inverted` the track will render a bar representing the remaining slider value.\n * - `false` the track will render without a bar.\n * @default 'normal'\n */\n track: PropTypes.oneOf(['inverted', 'normal', false]),\n\n /**\n * The value of the slider.\n * For ranged sliders, provide an array with two values.\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n\n /**\n * Controls when the value label is displayed:\n *\n * - `auto` the value label will display when the thumb is hovered or focused.\n * - `on` will display persistently.\n * - `off` will never display.\n * @default 'off'\n */\n valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on']),\n\n /**\n * The format function the value label's value.\n *\n * When a function is provided, it should have the following signature:\n *\n * - {number} value The value label's value to format\n * - {number} index The value label's index to format\n * @default (x) => x\n */\n valueLabelFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string])\n} : void 0;\nexport default SliderUnstyled;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"components\", \"componentsProps\", \"color\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { generateUtilityClasses } from '@mui/base';\nimport SliderUnstyled, { SliderValueLabelUnstyled, sliderUnstyledClasses, getSliderUtilityClass } from '@mui/base/SliderUnstyled';\nimport { alpha, lighten, darken } from '@mui/system';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { slotShouldForwardProp } from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport shouldSpreadAdditionalProps from '../utils/shouldSpreadAdditionalProps';\nimport capitalize from '../utils/capitalize';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const sliderClasses = _extends({}, sliderUnstyledClasses, generateUtilityClasses('MuiSlider', ['colorPrimary', 'colorSecondary', 'thumbColorPrimary', 'thumbColorSecondary', 'sizeSmall', 'thumbSizeSmall']));\nconst SliderRoot = styled('span', {\n name: 'MuiSlider',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const marks = ownerState.marksProp === true && ownerState.step !== null ? [...Array(Math.floor((ownerState.max - ownerState.min) / ownerState.step) + 1)].map((_, index) => ({\n value: ownerState.min + ownerState.step * index\n })) : ownerState.marksProp || [];\n const marked = marks.length > 0 && marks.some(mark => mark.label);\n return [styles.root, styles[`color${capitalize(ownerState.color)}`], ownerState.size !== 'medium' && styles[`size${capitalize(ownerState.size)}`], marked && styles.marked, ownerState.orientation === 'vertical' && styles.vertical, ownerState.track === 'inverted' && styles.trackInverted, ownerState.track === false && styles.trackFalse];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n borderRadius: 12,\n boxSizing: 'content-box',\n display: 'inline-block',\n position: 'relative',\n cursor: 'pointer',\n touchAction: 'none',\n color: theme.palette[ownerState.color].main,\n WebkitTapHighlightColor: 'transparent'\n}, ownerState.orientation === 'horizontal' && _extends({\n height: 4,\n width: '100%',\n padding: '13px 0',\n // The primary input mechanism of the device includes a pointing device of limited accuracy.\n '@media (pointer: coarse)': {\n // Reach 42px touch target, about ~8mm on screen.\n padding: '20px 0'\n }\n}, ownerState.size === 'small' && {\n height: 2\n}, ownerState.marked && {\n marginBottom: 20\n}), ownerState.orientation === 'vertical' && _extends({\n height: '100%',\n width: 4,\n padding: '0 13px',\n // The primary input mechanism of the device includes a pointing device of limited accuracy.\n '@media (pointer: coarse)': {\n // Reach 42px touch target, about ~8mm on screen.\n padding: '0 20px'\n }\n}, ownerState.size === 'small' && {\n width: 2\n}, ownerState.marked && {\n marginRight: 44\n}), {\n '@media print': {\n colorAdjust: 'exact'\n },\n [`&.${sliderClasses.disabled}`]: {\n pointerEvents: 'none',\n cursor: 'default',\n color: theme.palette.grey[400]\n },\n [`&.${sliderClasses.dragging}`]: {\n [`& .${sliderClasses.thumb}, & .${sliderClasses.track}`]: {\n transition: 'none'\n }\n }\n}));\nprocess.env.NODE_ENV !== \"production\" ? SliderRoot.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 * @ignore\n */\n children: PropTypes.node\n} : void 0;\nexport { SliderRoot };\nconst SliderRail = styled('span', {\n name: 'MuiSlider',\n slot: 'Rail',\n overridesResolver: (props, styles) => styles.rail\n})(({\n ownerState\n}) => _extends({\n display: 'block',\n position: 'absolute',\n borderRadius: 'inherit',\n backgroundColor: 'currentColor',\n opacity: 0.38\n}, ownerState.orientation === 'horizontal' && {\n width: '100%',\n height: 'inherit',\n top: '50%',\n transform: 'translateY(-50%)'\n}, ownerState.orientation === 'vertical' && {\n height: '100%',\n width: 'inherit',\n left: '50%',\n transform: 'translateX(-50%)'\n}, ownerState.track === 'inverted' && {\n opacity: 1\n}));\nprocess.env.NODE_ENV !== \"production\" ? SliderRail.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 * @ignore\n */\n children: PropTypes.node\n} : void 0;\nexport { SliderRail };\nconst SliderTrack = styled('span', {\n name: 'MuiSlider',\n slot: 'Track',\n overridesResolver: (props, styles) => styles.track\n})(({\n theme,\n ownerState\n}) => {\n const color = // Same logic as the LinearProgress track color\n theme.palette.mode === 'light' ? lighten(theme.palette[ownerState.color].main, 0.62) : darken(theme.palette[ownerState.color].main, 0.5);\n return _extends({\n display: 'block',\n position: 'absolute',\n borderRadius: 'inherit',\n border: '1px solid currentColor',\n backgroundColor: 'currentColor',\n transition: theme.transitions.create(['left', 'width', 'bottom', 'height'], {\n duration: theme.transitions.duration.shortest\n })\n }, ownerState.size === 'small' && {\n border: 'none'\n }, ownerState.orientation === 'horizontal' && {\n height: 'inherit',\n top: '50%',\n transform: 'translateY(-50%)'\n }, ownerState.orientation === 'vertical' && {\n width: 'inherit',\n left: '50%',\n transform: 'translateX(-50%)'\n }, ownerState.track === false && {\n display: 'none'\n }, ownerState.track === 'inverted' && {\n backgroundColor: color,\n borderColor: color\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? SliderTrack.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 * @ignore\n */\n children: PropTypes.node\n} : void 0;\nexport { SliderTrack };\nconst SliderThumb = styled('span', {\n name: 'MuiSlider',\n slot: 'Thumb',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.thumb, styles[`thumbColor${capitalize(ownerState.color)}`], ownerState.size !== 'medium' && styles[`thumbSize${capitalize(ownerState.size)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'absolute',\n width: 20,\n height: 20,\n boxSizing: 'border-box',\n borderRadius: '50%',\n outline: 0,\n backgroundColor: 'currentColor',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: theme.transitions.create(['box-shadow', 'left', 'bottom'], {\n duration: theme.transitions.duration.shortest\n })\n}, ownerState.size === 'small' && {\n width: 12,\n height: 12\n}, ownerState.orientation === 'horizontal' && {\n top: '50%',\n transform: 'translate(-50%, -50%)'\n}, ownerState.orientation === 'vertical' && {\n left: '50%',\n transform: 'translate(-50%, 50%)'\n}, {\n '&:before': _extends({\n position: 'absolute',\n content: '\"\"',\n borderRadius: 'inherit',\n width: '100%',\n height: '100%',\n boxShadow: theme.shadows[2]\n }, ownerState.size === 'small' && {\n boxShadow: 'none'\n }),\n '&::after': {\n position: 'absolute',\n content: '\"\"',\n borderRadius: '50%',\n // 42px is the hit target\n width: 42,\n height: 42,\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)'\n },\n [`&:hover, &.${sliderClasses.focusVisible}`]: {\n boxShadow: `0px 0px 0px 8px ${alpha(theme.palette[ownerState.color].main, 0.16)}`,\n '@media (hover: none)': {\n boxShadow: 'none'\n }\n },\n [`&.${sliderClasses.active}`]: {\n boxShadow: `0px 0px 0px 14px ${alpha(theme.palette[ownerState.color].main, 0.16)}`\n },\n [`&.${sliderClasses.disabled}`]: {\n '&:hover': {\n boxShadow: 'none'\n }\n }\n}));\nprocess.env.NODE_ENV !== \"production\" ? SliderThumb.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 * @ignore\n */\n children: PropTypes.node\n} : void 0;\nexport { SliderThumb };\nconst SliderValueLabel = styled(SliderValueLabelUnstyled, {\n name: 'MuiSlider',\n slot: 'ValueLabel',\n overridesResolver: (props, styles) => styles.valueLabel\n})(({\n theme,\n ownerState\n}) => _extends({\n [`&.${sliderClasses.valueLabelOpen}`]: {\n transform: 'translateY(-100%) scale(1)'\n },\n zIndex: 1,\n whiteSpace: 'nowrap'\n}, theme.typography.body2, {\n fontWeight: 500,\n transition: theme.transitions.create(['transform'], {\n duration: theme.transitions.duration.shortest\n }),\n top: -10,\n transformOrigin: 'bottom center',\n transform: 'translateY(-100%) scale(0)',\n position: 'absolute',\n backgroundColor: theme.palette.grey[600],\n borderRadius: 2,\n color: theme.palette.common.white,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '0.25rem 0.75rem'\n}, ownerState.size === 'small' && {\n fontSize: theme.typography.pxToRem(12),\n padding: '0.25rem 0.5rem'\n}, {\n '&:before': {\n position: 'absolute',\n content: '\"\"',\n width: 8,\n height: 8,\n bottom: 0,\n left: '50%',\n transform: 'translate(-50%, 50%) rotate(45deg)',\n backgroundColor: 'inherit'\n }\n}));\nprocess.env.NODE_ENV !== \"production\" ? SliderValueLabel.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 * @ignore\n */\n children: PropTypes.node\n} : void 0;\nexport { SliderValueLabel };\nconst SliderMark = styled('span', {\n name: 'MuiSlider',\n slot: 'Mark',\n shouldForwardProp: prop => slotShouldForwardProp(prop) && prop !== 'markActive',\n overridesResolver: (props, styles) => styles.mark\n})(({\n theme,\n ownerState,\n markActive\n}) => _extends({\n position: 'absolute',\n width: 2,\n height: 2,\n borderRadius: 1,\n backgroundColor: 'currentColor'\n}, ownerState.orientation === 'horizontal' && {\n top: '50%',\n transform: 'translate(-1px, -50%)'\n}, ownerState.orientation === 'vertical' && {\n left: '50%',\n transform: 'translate(-50%, 1px)'\n}, markActive && {\n backgroundColor: theme.palette.background.paper,\n opacity: 0.8\n}));\nprocess.env.NODE_ENV !== \"production\" ? SliderMark.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 * @ignore\n */\n children: PropTypes.node\n} : void 0;\nexport { SliderMark };\nconst SliderMarkLabel = styled('span', {\n name: 'MuiSlider',\n slot: 'MarkLabel',\n shouldForwardProp: prop => slotShouldForwardProp(prop) && prop !== 'markLabelActive',\n overridesResolver: (props, styles) => styles.markLabel\n})(({\n theme,\n ownerState,\n markLabelActive\n}) => _extends({}, theme.typography.body2, {\n color: theme.palette.text.secondary,\n position: 'absolute',\n whiteSpace: 'nowrap'\n}, ownerState.orientation === 'horizontal' && {\n top: 30,\n transform: 'translateX(-50%)',\n '@media (pointer: coarse)': {\n top: 40\n }\n}, ownerState.orientation === 'vertical' && {\n left: 36,\n transform: 'translateY(50%)',\n '@media (pointer: coarse)': {\n left: 44\n }\n}, markLabelActive && {\n color: theme.palette.text.primary\n}));\nprocess.env.NODE_ENV !== \"production\" ? SliderMarkLabel.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 * @ignore\n */\n children: PropTypes.node\n} : void 0;\nexport { SliderMarkLabel };\n\nconst extendUtilityClasses = ownerState => {\n const {\n color,\n size,\n classes = {}\n } = ownerState;\n return _extends({}, classes, {\n root: clsx(classes.root, getSliderUtilityClass(`color${capitalize(color)}`), classes[`color${capitalize(color)}`], size && [getSliderUtilityClass(`size${capitalize(size)}`), classes[`size${capitalize(size)}`]]),\n thumb: clsx(classes.thumb, getSliderUtilityClass(`thumbColor${capitalize(color)}`), classes[`thumbColor${capitalize(color)}`], size && [getSliderUtilityClass(`thumbSize${capitalize(size)}`), classes[`thumbSize${capitalize(size)}`]])\n });\n};\n\nconst Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {\n var _componentsProps$root, _componentsProps$thum, _componentsProps$trac, _componentsProps$valu;\n\n const props = useThemeProps({\n props: inputProps,\n name: 'MuiSlider'\n });\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n\n const {\n // eslint-disable-next-line react/prop-types\n component = 'span',\n components = {},\n componentsProps = {},\n color = 'primary',\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n size\n });\n\n const classes = extendUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(SliderUnstyled, _extends({}, other, {\n isRtl: isRtl,\n components: _extends({\n Root: SliderRoot,\n Rail: SliderRail,\n Track: SliderTrack,\n Thumb: SliderThumb,\n ValueLabel: SliderValueLabel,\n Mark: SliderMark,\n MarkLabel: SliderMarkLabel\n }, components),\n componentsProps: _extends({}, componentsProps, {\n root: _extends({}, componentsProps.root, shouldSpreadAdditionalProps(components.Root) && {\n as: component,\n ownerState: _extends({}, (_componentsProps$root = componentsProps.root) == null ? void 0 : _componentsProps$root.ownerState, {\n color,\n size\n })\n }),\n thumb: _extends({}, componentsProps.thumb, shouldSpreadAdditionalProps(components.Thumb) && {\n ownerState: _extends({}, (_componentsProps$thum = componentsProps.thumb) == null ? void 0 : _componentsProps$thum.ownerState, {\n color,\n size\n })\n }),\n track: _extends({}, componentsProps.track, shouldSpreadAdditionalProps(components.Track) && {\n ownerState: _extends({}, (_componentsProps$trac = componentsProps.track) == null ? void 0 : _componentsProps$trac.ownerState, {\n color,\n size\n })\n }),\n valueLabel: _extends({}, componentsProps.valueLabel, shouldSpreadAdditionalProps(components.ValueLabel) && {\n ownerState: _extends({}, (_componentsProps$valu = componentsProps.valueLabel) == null ? void 0 : _componentsProps$valu.ownerState, {\n color,\n size\n })\n })\n }),\n classes: classes,\n ref: ref\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slider.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 label of the slider.\n */\n 'aria-label': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n\n if (range && props['aria-label'] != null) {\n return new Error('MUI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.');\n }\n\n return null;\n }),\n\n /**\n * The id of the element containing a label for the slider.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * A string value that provides a user-friendly name for the current value of the slider.\n */\n 'aria-valuetext': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n\n if (range && props['aria-valuetext'] != null) {\n return new Error('MUI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.');\n }\n\n return null;\n }),\n\n /**\n * @ignore\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 * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n\n /**\n * The components used for each slot inside the Slider.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Mark: PropTypes.elementType,\n MarkLabel: PropTypes.elementType,\n Rail: PropTypes.elementType,\n Root: PropTypes.elementType,\n Thumb: PropTypes.elementType,\n Track: PropTypes.elementType,\n ValueLabel: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Slider.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n mark: PropTypes.object,\n markLabel: PropTypes.object,\n rail: PropTypes.object,\n root: PropTypes.object,\n thumb: PropTypes.object,\n track: PropTypes.object,\n valueLabel: PropTypes.shape({\n className: PropTypes.string,\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n style: PropTypes.object,\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on'])\n })\n }),\n\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the active thumb doesn't swap when moving pointer over a thumb while dragging another thumb.\n * @default false\n */\n disableSwap: PropTypes.bool,\n\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.\n * This is important for screen reader users.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaLabel: PropTypes.func,\n\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.\n * This is important for screen reader users.\n * @param {number} value The thumb label's value to format.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaValueText: PropTypes.func,\n\n /**\n * Indicates whether the theme context has rtl direction. It is set automatically.\n * @default false\n */\n isRtl: PropTypes.bool,\n\n /**\n * Marks indicate predetermined values to which the user can move the slider.\n * If `true` the marks are spaced according the value of the `step` prop.\n * If an array, it should contain objects with `value` and an optional `label` keys.\n * @default false\n */\n marks: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.node,\n value: PropTypes.number.isRequired\n })), PropTypes.bool]),\n\n /**\n * The maximum allowed value of the slider.\n * Should not be equal to min.\n * @default 100\n */\n max: PropTypes.number,\n\n /**\n * The minimum allowed value of the slider.\n * Should not be equal to max.\n * @default 0\n */\n min: PropTypes.number,\n\n /**\n * Name attribute of the hidden `input` element.\n */\n name: PropTypes.string,\n\n /**\n * Callback function that is fired when the slider's value changed.\n *\n * @param {Event} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (any).\n * **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n * @param {number} activeThumb Index of the currently moved thumb.\n */\n onChange: PropTypes.func,\n\n /**\n * Callback function that is fired when the `mouseup` is triggered.\n *\n * @param {React.SyntheticEvent | Event} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n */\n onChangeCommitted: PropTypes.func,\n\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * A transformation function, to change the scale of the slider.\n * @default (x) => x\n */\n scale: PropTypes.func,\n\n /**\n * The size of the slider.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['small', 'medium']), PropTypes.string]),\n\n /**\n * The granularity with which the slider can step through values. (A \"discrete\" slider.)\n * The `min` prop serves as the origin for the valid values.\n * We recommend (max - min) to be evenly divisible by the step.\n *\n * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.\n * @default 1\n */\n step: PropTypes.number,\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 * Tab index attribute of the hidden `input` element.\n */\n tabIndex: PropTypes.number,\n\n /**\n * The track presentation:\n *\n * - `normal` the track will render a bar representing the slider value.\n * - `inverted` the track will render a bar representing the remaining slider value.\n * - `false` the track will render without a bar.\n * @default 'normal'\n */\n track: PropTypes.oneOf(['inverted', 'normal', false]),\n\n /**\n * The value of the slider.\n * For ranged sliders, provide an array with two values.\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n\n /**\n * Controls when the value label is displayed:\n *\n * - `auto` the value label will display when the thumb is hovered or focused.\n * - `on` will display persistently.\n * - `off` will never display.\n * @default 'off'\n */\n valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on']),\n\n /**\n * The format function the value label's value.\n *\n * When a function is provided, it should have the following signature:\n *\n * - {number} value The value label's value to format\n * - {number} index The value label's index to format\n * @default (x) => x\n */\n valueLabelFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string])\n} : void 0;\nexport default Slider;","import { Slider, Box } from '@mui/material';\n\nexport default function HiddenTimeSlider({ handleStatus }) {\n return (\n \n e > 60 ? Math.floor(e / 60) + \"h \" + e % 60 + \"min\" : e + \"min\"}\n min={0}\n max={480}\n step={15}\n onChangeCommitted={(e, value) => handleStatus(value)}\n />\n \n );\n}\n\n\n","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMlLogoNoTextColored(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"90.965mm\",\n height: \"73.465mm\",\n viewBox: \"0 0 90.965 73.465\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath3056\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m421.87 228.95h257.86v208.25h-257.86z\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-12.726 -16.184)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"matrix(.35278 0 0 -.35278 -136.1 170.42)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clipPath3056)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(534.22 370.19)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0 4.717 4.717-7.904 7.904c-5.28 5.279-8.187 12.298-8.187 19.764s2.907 14.486 8.187 19.765c5.279 5.28 12.299 8.187 19.765 8.187s14.486-2.907 19.764-8.187c5.281-5.279 8.188-12.299 8.189-19.765 0-7.466-2.908-14.486-8.187-19.765l-39.978-39.978 4.716-4.716 15.497 15.496 9e-3 -0.011 3.247 3.246 9.753 9.754-0.01 0.011 11.482 11.482c13.521 13.52 13.521 35.442 0 48.963s-35.443 13.521-48.963 0c-13.522-13.521-13.521-35.443-1e-3 -48.963z\",\n fill: \"#ee2254\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(607.35 323.06)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0-9.331 9.33-3e-3 -3e-3 -6.868 6.869-14.041 14.041 3e-3 3e-3 -9.699 9.698-4.716-4.716 25.08-25.08 14.858-14.859c4.327-4.326 10.08-6.709 16.199-6.709 6.12 0 11.872 2.383 16.199 6.709 4.327 4.328 6.71 10.08 6.71 16.2 0 6.119-2.383 11.871-6.71 16.198s-10.08 6.71-16.199 6.71-11.871-2.383-16.199-6.71l-7.887-7.886 4.717-4.717 7.887 7.887c6.342 6.342 16.623 6.341 22.965 0 6.341-6.342 6.341-16.623-1e-3 -22.965-6.341-6.341-16.623-6.341-22.964 0\",\n fill: \"#79ca33\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(643.31 359.03)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-13.52 13.521-35.442 13.521-48.963 1e-3l-7.887-7.887 4.717-4.717 7.886 7.887c5.28 5.279 12.298 8.186 19.765 8.186 7.466 0 14.486-2.907 19.765-8.187 5.28-5.28 8.187-12.299 8.187-19.765s-2.907-14.485-8.187-19.764c-5.279-5.28-12.298-8.187-19.762-8.187h-3e-3c-7.467 0-14.486 2.907-19.765 8.187l-14.037 14.037-2.162 2.161-23.739 23.739-4.717-4.716 8.338-8.337 7e-3 7e-3 17.563-17.564 3.347-3.346-7e-3 -7e-3 10.691-10.691c13.521-13.521 35.442-13.521 48.963 0s13.521 35.442 0 48.963\",\n fill: \"#79ca33\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(574.56 322.67)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0-39.956-39.956c-6.576-6.576-8.525-16.375-4.965-24.965 3.557-8.591 11.865-14.142 21.164-14.142 9.301 0 17.608 5.551 21.166 14.143 3.559 8.59 1.609 18.389-4.967 24.965l-7.847 7.848-4.717-4.717 7.848-7.848c4.644-4.644 6.034-11.629 3.52-17.697-2.513-6.068-8.435-10.025-15.003-10.025-6.567 0-12.49 3.958-15.003 10.025-2.513 6.068-1.123 13.053 3.521 17.697l11.483 11.483 0.036-0.036 4.716 4.717 8.283 8.282-0.036 0.036 15.474 15.473z\",\n fill: \"#5fcaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(567.43 298.84)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0-4.717-4.716 7.511-7.51c10.443-10.444 11.152-28.195 1.13-39.043-5.982-6.478-14.451-9.726-23.318-8.881-5.202 0.496-10.191 2.474-14.316 5.682-13.524 10.522-14.42 30.172-2.689 41.904l39.955 39.955-4.717 4.716-11.975-11.975 0.045-0.045-13.748-13.75-7.161-7.16-0.046 0.045-6.717-6.717c-13.248-13.248-13.983-34.75-1.197-48.442 13.714-14.688 36.941-14.687 50.654 2e-3 12.784 13.693 12.047 35.194-1.199 48.44z\",\n fill: \"#5fcaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(509.89 330.35)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0 8.824-8.824 0.02 0.02 15.512-15.512 4.717 4.717-23.795 23.795h1e-3l-16.2 16.199c-4.327 4.327-10.08 6.71-16.2 6.71-6.119 0-11.872-2.383-16.199-6.711-8.932-8.932-8.932-23.465 0-32.397 4.327-4.328 10.081-6.711 16.2-6.711s11.872 2.383 16.199 6.71l7.864 7.864-4.717 4.716-7.864-7.864c-6.342-6.341-16.624-6.341-22.965 1e-3 -6.342 6.342-6.342 16.623 0 22.965 6.341 6.342 16.623 6.342 22.965 0l11.484-11.482-0.022-0.02z\",\n fill: \"#fab633\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(541.61 370.38)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0-7.743-7.743-0.02 0.02-11.546-11.547 4.716-4.716 19.29 19.289 20.688 20.689c8.933 8.931 8.933 23.465 0 32.398-4.327 4.328-10.08 6.711-16.199 6.711s-11.871-2.383-16.199-6.711c-8.932-8.932-8.932-23.465 0-32.398l7.904-7.903 4.716 4.716-7.903 7.904c-6.342 6.342-6.342 16.623 0 22.965s16.623 6.342 22.965 0 6.342-16.624 0-22.966l-7.522-7.522 0.02-0.019-12.244-12.244z\",\n fill: \"#ee2254\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(502.54 314.78)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-5.279-5.279-12.298-8.186-19.764-8.186-7.467 0-14.487 2.907-19.766 8.187-10.899 10.899-10.899 28.631 0 39.53 5.279 5.279 12.299 8.187 19.766 8.187 7.466 0 14.485-2.907 19.764-8.187l16.2-16.199 23.794-23.794 4.717 4.716-11.542 11.542-0.03-0.03-12.684 12.685-8.225 8.225 0.03 0.03-7.543 7.542c-13.52 13.52-35.443 13.52-48.964-1e-3 -13.52-13.52-13.52-35.442 0-48.963 13.521-13.521 35.444-13.521 48.964-1e-3l7.864 7.865-4.717 4.716z\",\n fill: \"#fab633\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(433.72 334.54)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c0-3.273-2.653-5.926-5.926-5.926s-5.925 2.653-5.925 5.926 2.652 5.926 5.925 5.926 5.926-2.653 5.926-5.926\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(679.73 334.54)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c0-3.273-2.653-5.926-5.926-5.926s-5.925 2.653-5.925 5.926 2.652 5.926 5.925 5.926 5.926-2.653 5.926-5.926\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(448.29 212.65)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c0 0.232 0.154 0.386 0.386 0.386h3.438c0.347 0 0.54-0.116 0.656-0.386l7.223-16.184h0.154l7.108 16.184c0.116 0.27 0.309 0.386 0.656 0.386h3.399c0.232 0 0.386-0.154 0.386-0.386v-25.493c0-0.232-0.154-0.386-0.386-0.386h-3.36c-0.232 0-0.386 0.154-0.386 0.386v16.068h-0.155l-5.562-12.36c-0.154-0.347-0.386-0.502-0.733-0.502h-2.241c-0.348 0-0.579 0.155-0.734 0.502l-5.562 12.36h-0.154v-16.068c0-0.232-0.155-0.386-0.387-0.386h-3.36c-0.232 0-0.386 0.154-0.386 0.386z\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(477.22 186.77)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.232 0-0.386 0.155-0.386 0.386v17.845c0 0.232 0.154 0.386 0.386 0.386h3.554c0.232 0 0.386-0.154 0.386-0.386v-17.845c0-0.231-0.154-0.386-0.386-0.386zm0 22.132c-0.232 0-0.386 0.154-0.386 0.386v3.361c0 0.232 0.154 0.386 0.386 0.386h3.554c0.232 0 0.386-0.154 0.386-0.386v-3.361c0-0.232-0.154-0.386-0.386-0.386z\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(485.1 189.28)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.155 0.154-0.155 0.386 0 0.541l2.201 2.317c0.155 0.155 0.386 0.155 0.541 0 1.352-1.236 3.515-2.124 5.446-2.124 2.28 0 3.438 0.927 3.438 2.201 0 1.121-0.657 1.816-3.09 2.048l-2.009 0.193c-3.785 0.386-5.716 2.317-5.716 5.484 0 3.593 2.587 5.872 7.222 5.872 2.898 0 5.331-0.966 6.992-2.279 0.193-0.154 0.193-0.387 0.077-0.541l-1.892-2.279c-0.156-0.193-0.348-0.193-0.542-0.077-1.158 0.811-3.012 1.545-4.866 1.545s-2.82-0.811-2.82-1.931c0-1.082 0.657-1.739 3.051-1.971l2.009-0.193c3.901-0.386 5.755-2.394 5.755-5.446 0-3.708-2.703-6.295-7.801-6.295-3.825 0-6.451 1.505-7.996 2.935\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(503.76 189.28)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.155 0.154-0.155 0.386 0 0.541l2.202 2.317c0.154 0.155 0.386 0.155 0.54 0 1.353-1.236 3.515-2.124 5.447-2.124 2.279 0 3.437 0.927 3.437 2.201 0 1.121-0.657 1.816-3.09 2.048l-2.008 0.193c-3.786 0.386-5.717 2.317-5.717 5.484 0 3.593 2.588 5.872 7.223 5.872 2.897 0 5.33-0.966 6.992-2.279 0.192-0.154 0.192-0.387 0.077-0.541l-1.893-2.279c-0.155-0.193-0.348-0.193-0.541-0.077-1.159 0.811-3.013 1.545-4.867 1.545s-2.819-0.811-2.819-1.931c0-1.082 0.656-1.739 3.051-1.971l2.008-0.193c3.901-0.386 5.755-2.394 5.755-5.446 0-3.708-2.703-6.295-7.801-6.295-3.825 0-6.451 1.505-7.996 2.935\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(523.92 186.77)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.232 0-0.386 0.155-0.386 0.386v17.845c0 0.232 0.154 0.386 0.386 0.386h3.554c0.232 0 0.386-0.154 0.386-0.386v-17.845c0-0.231-0.154-0.386-0.386-0.386zm0 22.132c-0.232 0-0.386 0.154-0.386 0.386v3.361c0 0.232 0.154 0.386 0.386 0.386h3.554c0.232 0 0.386-0.154 0.386-0.386v-3.361c0-0.232-0.154-0.386-0.386-0.386z\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(544.7 186.77)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.232 0-0.386 0.155-0.386 0.386v10.738c0 2.395-1.197 4.056-3.515 4.056-2.24 0-3.553-1.661-3.553-4.056v-10.738c0-0.231-0.155-0.386-0.386-0.386h-3.554c-0.232 0-0.386 0.155-0.386 0.386v17.845c0 0.232 0.154 0.386 0.386 0.386h3.554c0.231 0 0.386-0.154 0.386-0.386v-1.352h0.039c0.81 1.159 2.433 2.163 4.905 2.163 3.978 0 6.45-2.935 6.45-6.914v-11.742c0-0.231-0.154-0.386-0.386-0.386z\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(563.05 193.49)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c0.308 0.849 0.425 1.777 0.425 3.051 0 1.236-0.117 2.163-0.425 3.052-0.502 1.506-1.545 2.356-3.322 2.356-1.738 0-2.781-0.85-3.284-2.356-0.308-0.889-0.424-1.816-0.424-3.052 0-1.274 0.116-2.202 0.424-3.051 0.503-1.545 1.546-2.395 3.284-2.395 1.777 0 2.82 0.85 3.322 2.395m-10.699-11.317c-0.155 0.193-0.155 0.347 0.038 0.54l2.279 2.279c0.193 0.193 0.386 0.193 0.579 0 1.159-1.12 2.511-1.737 4.056-1.737 2.858 0 4.172 1.544 4.172 4.441v1.737h-0.039c-0.85-1.312-2.433-2.162-4.828-2.162-3.128 0-5.369 1.583-6.335 4.519-0.463 1.429-0.618 2.704-0.618 4.751 0 2.048 0.155 3.284 0.618 4.712 0.966 2.974 3.207 4.558 6.335 4.558 2.395 0 3.978-0.85 4.828-2.202h0.039v1.391c0 0.232 0.154 0.386 0.386 0.386h3.553c0.232 0 0.386-0.154 0.386-0.386v-17.072c0-5.33-2.973-8.537-8.69-8.537-2.588 0-5.33 1.082-6.759 2.782\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(571.78 195.5)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0v3.051c0 0.232 0.155 0.387 0.386 0.387h10.622c0.232 0 0.387-0.155 0.387-0.387v-3.051c0-0.232-0.155-0.387-0.387-0.387h-10.622c-0.231 0-0.386 0.155-0.386 0.387\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(587.22 212.65)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c0 0.232 0.155 0.386 0.386 0.386h3.785c0.232 0 0.387-0.154 0.387-0.386v-21.553c0-0.154 0.078-0.232 0.232-0.232h12.051c0.231 0 0.386-0.155 0.386-0.386v-3.322c0-0.232-0.155-0.386-0.386-0.386h-16.455c-0.231 0-0.386 0.154-0.386 0.386z\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(608.01 186.77)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.232 0-0.386 0.155-0.386 0.386v17.845c0 0.232 0.154 0.386 0.386 0.386h3.554c0.232 0 0.386-0.154 0.386-0.386v-17.845c0-0.231-0.154-0.386-0.386-0.386zm0 22.132c-0.232 0-0.386 0.154-0.386 0.386v3.361c0 0.232 0.154 0.386 0.386 0.386h3.554c0.232 0 0.386-0.154 0.386-0.386v-3.361c0-0.232-0.154-0.386-0.386-0.386z\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(628.79 186.77)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.232 0-0.386 0.155-0.386 0.386v10.738c0 2.395-1.198 4.056-3.515 4.056-2.24 0-3.554-1.661-3.554-4.056v-10.738c0-0.231-0.154-0.386-0.386-0.386h-3.553c-0.233 0-0.386 0.155-0.386 0.386v17.845c0 0.232 0.153 0.386 0.386 0.386h3.553c0.232 0 0.386-0.154 0.386-0.386v-1.352h0.039c0.81 1.159 2.433 2.163 4.905 2.163 3.978 0 6.451-2.935 6.451-6.914v-11.742c0-0.231-0.155-0.386-0.386-0.386z\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(648.99 186.77)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.271 0-0.464 0.116-0.618 0.386l-4.713 7.802-2.51-2.896v-4.906c0-0.231-0.154-0.386-0.386-0.386h-3.553c-0.233 0-0.387 0.155-0.387 0.386v25.493c0 0.232 0.154 0.386 0.387 0.386h3.553c0.232 0 0.386-0.154 0.386-0.386v-15.141l6.373 7.493c0.232 0.27 0.425 0.386 0.734 0.386h3.94c0.232 0 0.309-0.232 0.154-0.386l-5.909-6.798 6.798-11.047c0.116-0.154 0.038-0.386-0.193-0.386z\",\n fill: \"#264d73\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(458.17 161.74)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.106 0-0.178 0.071-0.213 0.177l-2.306 8.246h-0.035l-2.323-8.246c-0.036-0.106-0.107-0.177-0.213-0.177h-1.33c-0.107 0-0.178 0.071-0.213 0.177l-2.962 11.705c-0.018 0.107 0.018 0.178 0.142 0.178h1.667c0.124 0 0.196-0.071 0.213-0.178l1.916-8.122h0.035l2.252 8.122c0.036 0.107 0.106 0.178 0.213 0.178h1.241c0.124 0 0.178-0.071 0.213-0.178l2.305-8.122h0.036l1.862 8.122c0.018 0.125 0.107 0.178 0.213 0.178h1.65c0.124 0 0.159-0.071 0.141-0.178l-2.944-11.705c-0.018-0.106-0.106-0.177-0.212-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(464.16 161.74)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.106 0-0.178 0.071-0.178 0.177v8.194c0 0.106 0.072 0.177 0.178 0.177h1.632c0.106 0 0.177-0.071 0.177-0.177v-8.194c0-0.106-0.071-0.177-0.177-0.177zm0 10.162c-0.106 0-0.178 0.072-0.178 0.177v1.543c0 0.107 0.072 0.178 0.178 0.178h1.632c0.106 0 0.177-0.071 0.177-0.178v-1.543c0-0.105-0.071-0.177-0.177-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(468.47 161.74)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.107 0-0.178 0.071-0.178 0.177v8.194c0 0.106 0.071 0.177 0.178 0.177h1.631c0.107 0 0.178-0.071 0.178-0.177v-0.727h0.018c0.408 0.655 1.135 1.1 2.217 1.1 0.673 0 1.348-0.267 1.79-0.711 0.089-0.088 0.108-0.158 0.036-0.248l-0.939-1.188c-0.071-0.088-0.16-0.106-0.249-0.035-0.39 0.248-0.798 0.408-1.259 0.408-1.118 0-1.614-0.798-1.614-2.164v-4.629c0-0.106-0.071-0.177-0.178-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(480.35 167.7)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.231 0.692-0.869 1.099-1.668 1.099-0.816 0-1.454-0.407-1.684-1.099-0.071-0.212-0.107-0.425-0.107-0.727 0-0.07 0.036-0.106 0.107-0.106h3.352c0.071 0 0.106 0.036 0.106 0.106 0 0.302-0.035 0.515-0.106 0.727m-5.161-3.777c-0.178 0.55-0.302 1.206-0.302 2.093s0.107 1.56 0.284 2.11c0.479 1.49 1.792 2.359 3.494 2.359 1.756 0 3.033-0.905 3.511-2.359 0.195-0.603 0.284-1.188 0.284-2.571 0-0.107-0.071-0.178-0.195-0.178h-5.267c-0.071 0-0.107-0.035-0.107-0.107 0-0.248 0.054-0.46 0.125-0.655 0.283-0.834 0.957-1.295 1.915-1.295s1.578 0.354 2.004 0.815c0.089 0.089 0.177 0.107 0.266 0.036l1.046-0.922c0.089-0.071 0.089-0.16 0.018-0.248-0.727-0.852-1.933-1.454-3.512-1.454-1.808 0-3.086 0.886-3.564 2.376\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(486.63 161.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-1.667 0-2.341 0.798-2.341 2.447v9.541c0 0.107 0.071 0.179 0.177 0.179h1.632c0.106 0 0.177-0.072 0.177-0.179v-9.434c0-0.585 0.231-0.781 0.746-0.781h0.389c0.107 0 0.178-0.071 0.178-0.177v-1.419c0-0.106-0.071-0.177-0.178-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(494.22 167.7)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.231 0.692-0.869 1.099-1.668 1.099-0.816 0-1.454-0.407-1.684-1.099-0.071-0.212-0.106-0.425-0.106-0.727 0-0.07 0.035-0.106 0.106-0.106h3.352c0.071 0 0.106 0.036 0.106 0.106 0 0.302-0.035 0.515-0.106 0.727m-5.161-3.777c-0.178 0.55-0.302 1.206-0.302 2.093s0.107 1.56 0.284 2.11c0.479 1.49 1.791 2.359 3.494 2.359 1.756 0 3.033-0.905 3.511-2.359 0.195-0.603 0.284-1.188 0.284-2.571 0-0.107-0.071-0.178-0.195-0.178h-5.267c-0.071 0-0.106-0.035-0.106-0.107 0-0.248 0.053-0.46 0.124-0.655 0.283-0.834 0.957-1.295 1.914-1.295 0.959 0 1.579 0.354 2.005 0.815 0.089 0.089 0.177 0.107 0.266 0.036l1.046-0.922c0.089-0.071 0.089-0.16 0.018-0.248-0.727-0.852-1.933-1.454-3.512-1.454-1.808 0-3.086 0.886-3.564 2.376\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(497.68 162.89)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.071 0.071-0.071 0.177 0 0.248l1.011 1.064c0.071 0.071 0.177 0.071 0.248 0 0.62-0.567 1.614-0.975 2.501-0.975 1.046 0 1.577 0.425 1.577 1.011 0 0.514-0.3 0.833-1.418 0.94l-0.922 0.088c-1.738 0.178-2.625 1.064-2.625 2.518 0 1.65 1.188 2.696 3.317 2.696 1.33 0 2.447-0.444 3.21-1.046 0.089-0.071 0.089-0.177 0.035-0.248l-0.869-1.046c-0.071-0.09-0.159-0.09-0.248-0.036-0.533 0.372-1.383 0.709-2.235 0.709-0.851 0-1.294-0.372-1.294-0.887 0-0.496 0.301-0.797 1.401-0.904l0.922-0.088c1.791-0.178 2.642-1.1 2.642-2.502 0-1.701-1.241-2.89-3.582-2.89-1.756 0-2.962 0.691-3.671 1.348\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(506.24 162.89)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.071 0.071-0.071 0.177 0 0.248l1.011 1.064c0.071 0.071 0.177 0.071 0.249 0 0.62-0.567 1.613-0.975 2.5-0.975 1.046 0 1.577 0.425 1.577 1.011 0 0.514-0.3 0.833-1.418 0.94l-0.922 0.088c-1.737 0.178-2.625 1.064-2.625 2.518 0 1.65 1.188 2.696 3.317 2.696 1.33 0 2.447-0.444 3.21-1.046 0.089-0.071 0.089-0.177 0.035-0.248l-0.869-1.046c-0.071-0.09-0.159-0.09-0.248-0.036-0.533 0.372-1.383 0.709-2.234 0.709-0.852 0-1.295-0.372-1.295-0.887 0-0.496 0.301-0.797 1.401-0.904l0.922-0.088c1.791-0.178 2.642-1.1 2.642-2.502 0-1.701-1.241-2.89-3.582-2.89-1.756 0-2.962 0.691-3.671 1.348\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(518.63 163.14)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.071 0.071-0.107 0.177-0.036 0.265l1.1 1.278c0.071 0.088 0.177 0.088 0.248 0.018 0.78-0.621 1.933-1.278 3.281-1.278 1.437 0 2.27 0.728 2.27 1.739 0 0.869-0.532 1.436-2.199 1.666l-0.638 0.09c-2.324 0.319-3.636 1.436-3.636 3.441 0 2.181 1.596 3.635 4.079 3.635 1.507 0 2.944-0.479 3.902-1.206 0.088-0.071 0.106-0.142 0.035-0.248l-0.851-1.313c-0.071-0.089-0.16-0.107-0.249-0.054-0.975 0.639-1.879 0.941-2.89 0.941-1.224 0-1.898-0.674-1.898-1.614 0-0.834 0.585-1.401 2.217-1.632l0.638-0.088c2.323-0.32 3.601-1.419 3.601-3.495 0-2.145-1.544-3.741-4.54-3.741-1.774 0-3.495 0.709-4.434 1.596\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(534.38 167.7)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.231 0.692-0.869 1.099-1.667 1.099-0.816 0-1.454-0.407-1.684-1.099-0.072-0.212-0.107-0.425-0.107-0.727 0-0.07 0.035-0.106 0.107-0.106h3.351c0.071 0 0.107 0.036 0.107 0.106 0 0.302-0.036 0.515-0.107 0.727m-5.16-3.777c-0.178 0.55-0.302 1.206-0.302 2.093s0.106 1.56 0.283 2.11c0.479 1.49 1.792 2.359 3.494 2.359 1.756 0 3.033-0.905 3.512-2.359 0.195-0.603 0.283-1.188 0.283-2.571 0-0.107-0.071-0.178-0.195-0.178h-5.266c-0.072 0-0.107-0.035-0.107-0.107 0-0.248 0.053-0.46 0.124-0.655 0.283-0.834 0.957-1.295 1.915-1.295s1.578 0.354 2.004 0.815c0.089 0.089 0.177 0.107 0.266 0.036l1.047-0.922c0.088-0.071 0.088-0.16 0.017-0.248-0.726-0.852-1.932-1.454-3.512-1.454-1.808 0-3.085 0.886-3.563 2.376\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(538.16 163.9)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.178 0.532-0.266 1.206-0.266 2.111 0 0.904 0.088 1.578 0.266 2.11 0.496 1.525 1.809 2.359 3.529 2.359 1.277 0 2.288-0.514 2.962-1.33 0.053-0.071 0.071-0.178-0.018-0.249l-1.117-0.975c-0.089-0.071-0.177-0.053-0.249 0.035-0.426 0.479-0.868 0.745-1.578 0.745-0.763 0-1.348-0.372-1.596-1.117-0.142-0.425-0.178-0.922-0.178-1.578 0-0.657 0.036-1.17 0.178-1.597 0.248-0.726 0.833-1.099 1.596-1.099 0.71 0 1.152 0.266 1.578 0.744 0.072 0.089 0.16 0.089 0.249 0.019l1.117-0.976c0.089-0.071 0.071-0.16 0.018-0.248-0.674-0.799-1.685-1.312-2.962-1.312-1.72 0-3.033 0.833-3.529 2.358\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(551.76 161.74)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.107 0-0.178 0.071-0.178 0.177v0.621h-0.017c-0.461-0.586-1.135-0.993-2.218-0.993-1.826 0-2.943 1.348-2.943 3.175v5.391c0 0.106 0.071 0.177 0.177 0.177h1.632c0.106 0 0.177-0.071 0.177-0.177v-4.93c0-1.1 0.515-1.863 1.596-1.863 1.011 0 1.596 0.763 1.596 1.845v4.948c0 0.106 0.071 0.177 0.178 0.177h1.631c0.107 0 0.177-0.071 0.177-0.177v-8.194c0-0.106-0.07-0.177-0.177-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(556.07 161.74)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.107 0-0.178 0.071-0.178 0.177v8.194c0 0.106 0.071 0.177 0.178 0.177h1.631c0.107 0 0.178-0.071 0.178-0.177v-0.727h0.018c0.407 0.655 1.134 1.1 2.217 1.1 0.673 0 1.347-0.267 1.79-0.711 0.089-0.088 0.108-0.158 0.036-0.248l-0.94-1.188c-0.07-0.088-0.159-0.106-0.249-0.035-0.389 0.248-0.797 0.408-1.258 0.408-1.118 0-1.614-0.798-1.614-2.164v-4.629c0-0.106-0.071-0.177-0.178-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(563.3 161.74)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.107 0-0.178 0.071-0.178 0.177v8.194c0 0.106 0.071 0.177 0.178 0.177h1.631c0.107 0 0.178-0.071 0.178-0.177v-8.194c0-0.106-0.071-0.177-0.178-0.177zm0 10.162c-0.107 0-0.178 0.072-0.178 0.177v1.543c0 0.107 0.071 0.178 0.178 0.178h1.631c0.107 0 0.178-0.071 0.178-0.178v-1.543c0-0.105-0.071-0.177-0.178-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(569.93 161.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-1.72 0-2.377 0.834-2.377 2.5v4.505c0 0.071-0.036 0.107-0.106 0.107h-0.568c-0.106 0-0.177 0.07-0.177 0.177v1.188c0 0.106 0.071 0.178 0.177 0.178h0.568c0.07 0 0.106 0.035 0.106 0.106v2.341c0 0.106 0.071 0.178 0.178 0.178h1.631c0.107 0 0.178-0.072 0.178-0.178v-2.341c0-0.071 0.035-0.106 0.106-0.106h1.135c0.107 0 0.177-0.072 0.177-0.178v-1.188c0-0.107-0.07-0.177-0.177-0.177h-1.135c-0.071 0-0.106-0.036-0.106-0.107v-4.434c0-0.602 0.248-0.798 0.798-0.798h0.443c0.107 0 0.177-0.071 0.177-0.177v-1.419c0-0.106-0.07-0.177-0.177-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(573.16 158.55)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.107 0-0.177 0.071-0.177 0.178v1.419c0 0.106 0.07 0.177 0.177 0.177h0.32c0.673 0 1.011 0.301 1.277 1.01l0.248 0.727-3.122 8.052c-0.035 0.107 0.036 0.178 0.142 0.178h1.756c0.106 0 0.177-0.071 0.213-0.178l1.933-5.587h0.035l1.845 5.587c0.036 0.107 0.107 0.178 0.213 0.178h1.684c0.107 0 0.178-0.071 0.142-0.178l-3.263-8.903c-0.745-2.021-1.454-2.66-2.872-2.66z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(584.51 163.14)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.071 0.071-0.107 0.177-0.036 0.265l1.1 1.278c0.071 0.088 0.177 0.088 0.248 0.018 0.78-0.621 1.933-1.278 3.281-1.278 1.437 0 2.27 0.728 2.27 1.739 0 0.869-0.532 1.436-2.199 1.666l-0.638 0.09c-2.324 0.319-3.636 1.436-3.636 3.441 0 2.181 1.596 3.635 4.079 3.635 1.507 0 2.944-0.479 3.902-1.206 0.088-0.071 0.106-0.142 0.035-0.248l-0.851-1.313c-0.071-0.089-0.16-0.107-0.249-0.054-0.975 0.639-1.879 0.941-2.89 0.941-1.224 0-1.898-0.674-1.898-1.614 0-0.834 0.585-1.401 2.217-1.632l0.638-0.088c2.323-0.32 3.601-1.419 3.601-3.495 0-2.145-1.544-3.741-4.54-3.741-1.774 0-3.495 0.709-4.434 1.596\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(600.2 164.44)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c0.142 0.444 0.177 0.851 0.177 1.579 0 0.726-0.035 1.117-0.177 1.578-0.249 0.709-0.798 1.117-1.597 1.117-0.798 0-1.365-0.408-1.613-1.117-0.142-0.461-0.178-0.852-0.178-1.578 0-0.728 0.036-1.135 0.178-1.579 0.248-0.709 0.815-1.117 1.613-1.117 0.799 0 1.348 0.408 1.597 1.117m-5.126-0.532c-0.195 0.603-0.283 1.171-0.283 2.111 0 0.939 0.088 1.507 0.283 2.11 0.479 1.49 1.792 2.359 3.529 2.359 1.721 0 3.033-0.869 3.512-2.359 0.195-0.603 0.283-1.171 0.283-2.11 0-0.94-0.088-1.508-0.283-2.111-0.479-1.49-1.791-2.358-3.512-2.358-1.737 0-3.05 0.868-3.529 2.358\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(606.57 161.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-1.667 0-2.341 0.798-2.341 2.447v9.541c0 0.107 0.071 0.179 0.177 0.179h1.632c0.106 0 0.177-0.072 0.177-0.179v-9.434c0-0.585 0.231-0.781 0.746-0.781h0.39c0.106 0 0.177-0.071 0.177-0.177v-1.419c0-0.106-0.071-0.177-0.177-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(614.4 161.74)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.106 0-0.178 0.071-0.178 0.177v0.621h-0.017c-0.461-0.586-1.135-0.993-2.217-0.993-1.827 0-2.944 1.348-2.944 3.175v5.391c0 0.106 0.071 0.177 0.177 0.177h1.632c0.106 0 0.177-0.071 0.177-0.177v-4.93c0-1.1 0.515-1.863 1.596-1.863 1.011 0 1.596 0.763 1.596 1.845v4.948c0 0.106 0.072 0.177 0.178 0.177h1.631c0.107 0 0.177-0.071 0.177-0.177v-8.194c0-0.106-0.07-0.177-0.177-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(621.03 161.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-1.72 0-2.377 0.834-2.377 2.5v4.505c0 0.071-0.035 0.107-0.106 0.107h-0.567c-0.106 0-0.178 0.07-0.178 0.177v1.188c0 0.106 0.072 0.178 0.178 0.178h0.567c0.071 0 0.106 0.035 0.106 0.106v2.341c0 0.106 0.072 0.178 0.178 0.178h1.632c0.106 0 0.177-0.072 0.177-0.178v-2.341c0-0.071 0.035-0.106 0.106-0.106h1.135c0.107 0 0.178-0.072 0.178-0.178v-1.188c0-0.107-0.071-0.177-0.178-0.177h-1.135c-0.071 0-0.106-0.036-0.106-0.107v-4.434c0-0.602 0.248-0.798 0.798-0.798h0.443c0.107 0 0.178-0.071 0.178-0.177v-1.419c0-0.106-0.071-0.177-0.178-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(624.14 161.74)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.107 0-0.178 0.071-0.178 0.177v8.194c0 0.106 0.071 0.177 0.178 0.177h1.631c0.107 0 0.178-0.071 0.178-0.177v-8.194c0-0.106-0.071-0.177-0.178-0.177zm0 10.162c-0.107 0-0.178 0.072-0.178 0.177v1.543c0 0.107 0.071 0.178 0.178 0.178h1.631c0.107 0 0.178-0.071 0.178-0.178v-1.543c0-0.105-0.071-0.177-0.178-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(633.22 164.44)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c0.141 0.444 0.177 0.851 0.177 1.579 0 0.726-0.036 1.117-0.177 1.578-0.249 0.709-0.798 1.117-1.597 1.117-0.798 0-1.365-0.408-1.613-1.117-0.142-0.461-0.178-0.852-0.178-1.578 0-0.728 0.036-1.135 0.178-1.579 0.248-0.709 0.815-1.117 1.613-1.117 0.799 0 1.348 0.408 1.597 1.117m-5.126-0.532c-0.195 0.603-0.283 1.171-0.283 2.111 0 0.939 0.088 1.507 0.283 2.11 0.479 1.49 1.792 2.359 3.529 2.359 1.721 0 3.033-0.869 3.512-2.359 0.195-0.603 0.283-1.171 0.283-2.11 0-0.94-0.088-1.508-0.283-2.111-0.479-1.49-1.791-2.358-3.512-2.358-1.737 0-3.05 0.868-3.529 2.358\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(642.69 161.74)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.106 0-0.177 0.071-0.177 0.177v4.931c0 1.099-0.55 1.862-1.614 1.862-1.029 0-1.632-0.763-1.632-1.862v-4.931c0-0.106-0.07-0.177-0.177-0.177h-1.632c-0.106 0-0.177 0.071-0.177 0.177v8.194c0 0.106 0.071 0.177 0.177 0.177h1.632c0.107 0 0.177-0.071 0.177-0.177v-0.62h0.018c0.372 0.531 1.117 0.993 2.253 0.993 1.826 0 2.961-1.348 2.961-3.175v-5.392c0-0.106-0.071-0.177-0.178-0.177z\",\n fill: \"#5ecaf0\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(646.21 162.89)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m0 0c-0.071 0.071-0.071 0.177 0 0.248l1.011 1.064c0.071 0.071 0.177 0.071 0.248 0 0.62-0.567 1.614-0.975 2.501-0.975 1.046 0 1.577 0.425 1.577 1.011 0 0.514-0.3 0.833-1.418 0.94l-0.922 0.088c-1.738 0.178-2.625 1.064-2.625 2.518 0 1.65 1.188 2.696 3.317 2.696 1.33 0 2.447-0.444 3.21-1.046 0.089-0.071 0.089-0.177 0.035-0.248l-0.869-1.046c-0.071-0.09-0.159-0.09-0.248-0.036-0.533 0.372-1.383 0.709-2.235 0.709-0.851 0-1.294-0.372-1.294-0.887 0-0.496 0.301-0.797 1.401-0.904l0.922-0.088c1.791-0.178 2.642-1.1 2.642-2.502 0-1.701-1.241-2.89-3.582-2.89-1.756 0-2.962 0.691-3.671 1.348\",\n fill: \"#5ecaf0\"\n })))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMlLogoNoTextColored);\nexport default __webpack_public_path__ + \"static/media/mlLogo_noText_colored.2114df52d080f49156f16dad225f5265.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from 'react';\nimport Typography from '@mui/material/Typography';\nimport InfoIcon from '@mui/icons-material/Info';\nimport Modal from '@mui/material/Modal';\nimport MissingLinkLogo from '../Assets/Images/mlLogo_noText_colored.svg';\nimport CircleIcon from '@mui/icons-material/Circle';\nimport { IconButton, Box } from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport { Link } from \"react-router-dom\";\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\n\nconst modalStyle = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: 500,\n maxHeight: \"80%\",\n bgcolor: 'background.paper',\n p: 4,\n};\n\nexport default function InfoModal(props) {\n const theme = useTheme();\n const [openModal, setOpenModal] = useState(false);\n const handleOpenModal = () => setOpenModal(true);\n const handleCloseModal = () => setOpenModal(false);\n return (\n <>\n \n \n \n \n \n \n \n \n \n \"MissingLinlogo\"\n
Missing-Link WiFi-WiSE
\n
\n \n \n \n
Wifi-Wise system in general
\n
\n \n This application is part of the WiSe System of Missing-Link Oy. The system scans wireless networks in exactly the same way as any wireless base station. The system does not store or process encrypted data, and therefore does not know anything about the payload data being transmitted in the area. The system is therefore fully legal and complies with both Finnish and EU legislation.\n

\n The system continuously collects more data from its environment, which can be used for general statistical purposes. It can be used many wonderful things like an example: To improve the coverage of wireless networks, calculate their utilisation rates, interferences and find out the number of visitors and mass movements in the area without creating a so-called “personal data record.”\n
\n
\n\n \n {/* APP VERSION NÄKYVISSÄ INFO NAPISSA*/}\n \n {process.env.REACT_APP_CI_COMMIT_REF_NAME ? process.env.REACT_APP_CI_COMMIT_REF_NAME : \"dev\"}\n \n\n \n Terms & Conditions\n \n \n \n \n \n \n );\n}\n","import { useState, useEffect } from \"react\";\nimport { useMediaQuery, Typography } from \"@mui/material\";\nimport { useTheme } from \"@emotion/react\";\nimport SignalWifiBadIcon from '@mui/icons-material/SignalWifiBad';\n\nexport default function ShowOfflineStatus() {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const [showText, setShowText] = useState(true);\n const [online, setOnline] = useState(window.navigator.onLine);\n useEffect(() => {\n const statusOnline = window.addEventListener(\"online\", () => setOnline(true));\n const statusOffline = window.addEventListener(\"offline\", () => setOnline(false));\n return () => {\n statusOnline?.remove();\n statusOffline?.remove();\n };\n }, []);\n useEffect(() => {\n const interval = setInterval(() => {\n setShowText((showText) => !showText);\n }, 750);\n return () => clearInterval(interval);\n }, []);\n\n return online ?\n ''\n :\n
\n \n {isSmall ? '' : 'Connection Lost'}\n \n\n
;\n}","import DoNotDisturbOnTotalSilenceIcon from '@mui/icons-material/DoNotDisturbOnTotalSilence';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport GavelIcon from '@mui/icons-material/Gavel';\nimport LogoutIcon from '@mui/icons-material/Logout';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\nimport MenuIcon from '@mui/icons-material/Menu';\nimport { Accordion, AccordionDetails, AccordionSummary, AppBar as MuiAppBarComponent, Badge, Button, Divider, IconButton, Menu, MenuItem, Toolbar, Typography, useMediaQuery, useTheme } from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport { SmallAvatarWrapper, useFetchCloud } from 'kerberus-components';\nimport moment from 'moment';\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useSWRConfig } from 'swr';\nimport HelperIcon from '.././HelperIcon';\nimport HiddenTimeSlider from '.././HiddenTimeSlider';\nimport InfoModal from '.././InfoModal';\nimport ShowOfflineStatus from '.././ShowOfflineStatus';\nimport GroupIcon from '@mui/icons-material/Group';\nimport ArticleIcon from '@mui/icons-material/Article';\nimport WorkHistoryIcon from '@mui/icons-material/WorkHistory';\n\nconst content = (<>
It may take a few minutes to update the status
);\nconst contentHidden = (<>
It may take a few minutes to update the status.

You will be shown as active for the next 10 minutes.
);\n\nconst drawerWidth = 240;\n\nconst MuiAppBar = styled(MuiAppBarComponent, {\n shouldForwardProp: (prop) => prop !== 'open' && prop !== 'isSmall',\n})(({ theme, open, isSmall }) => ({\n zIndex: !isSmall ? theme.zIndex.drawer - 1 : theme.zIndex.drawer + 1,\n transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n ...(open && {\n marginLeft: drawerWidth,\n width: !isSmall ? \"100%\" : `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n }),\n}));\n\nconst StyledBadge = styled(Badge, { shouldForwardProp: (prop) => prop !== 'userOnlineData' })(({ theme, lastseenminutes, userOnlineData }) => ({\n '& .MuiBadge-badge': {\n backgroundColor: userOnlineData?.status === 'busy'\n ? theme.palette.mlRed.main\n : userOnlineData?.status === 'hidden'\n ? '#adadb8'\n : lastseenminutes <= 10 && lastseenminutes >= 5\n ? theme.palette.mlYellow.main\n : lastseenminutes > 0 && lastseenminutes < 5\n ? theme.palette.mlGreen.main\n : '#adadb8',\n width: 12,\n height: 12,\n borderRadius: \"50%\"\n },\n}));\n\nexport default React.memo(function AppBar({\n open,\n title,\n bulkData,\n user,\n lastseenminutes,\n toggleDrawer,\n gridOneHidden,\n setGridOneHidden,\n gridTwoHidden,\n setGridTwoHidden,\n gridThreeHidden,\n setGridThreeHidden,\n}) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const navigate = useNavigate();\n const { fetchCloud } = useFetchCloud();\n const { first_name, last_name, username } = user;\n const [anchorEl, setAnchorEl] = useState(null);\n const { mutate } = useSWRConfig();\n const [hiddenTime, setHiddenTime] = useState();\n const [busyTime, setBusyTime] = useState();\n const [nowHidden, setNowHidden] = useState(false);\n const [hideDuration, setHideDuration] = useState(0);\n const [status, setStatus] = useState();\n const [busyExpanded, setBusyExpanded] = useState();\n const [hiddenExpanded, setHiddenExpanded] = useState();\n\n /* const buttonColor = createTheme({\n palette: {\n primary: {\n main: '#ffffff',\n },\n },\n }); */\n\n const handleHiddenTime = (e) => {\n setHiddenTime(e);\n };\n const handleBusyTime = (e) => {\n setBusyTime(e);\n };\n\n const handleMenu = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleStatusHidden = async () => {\n if (nowHidden || !hiddenTime) {\n return;\n }\n try {\n await fetchCloud('users/hiddentime/', 'post', {\n start: new Date(),\n duration: hiddenTime * 60\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n console.error(err);\n }\n };\n\n const handleStatusBusy = async () => {\n if (nowHidden || !busyTime) {\n return;\n }\n try {\n await fetchCloud('users/hiddentime/', 'post', {\n start: new Date(),\n duration: busyTime * 60,\n hidden: false\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n console.error(err);\n }\n };\n\n const handleStatusCancel = async () => {\n if (!nowHidden) {\n return;\n }\n try {\n await fetchCloud('users/cancelhide', 'post');\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setHideDuration(0);\n setBusyTime(0);\n setHiddenTime(0);\n setNowHidden(false);\n }\n catch (err) {\n console.error(err);\n }\n };\n\n const handleLogout = async () => {\n localStorage.removeItem('refresh');\n localStorage.removeItem('access');\n localStorage.removeItem('userId');\n try {\n await caches.delete(\"pwa-cache\");\n }\n catch {\n console.log(\"cache not available\");\n }\n finally {\n navigate('/login');\n }\n };\n\n useEffect(() => {\n let currDate = new Date();\n let hideInterval = null;\n for (let item of user.user_hidden) {\n if (new Date(item.start) < currDate && moment(item.start).add(moment.duration(item.duration)).toDate() > currDate) {\n setHideDuration(moment.duration(moment(item.start).add(moment.duration(item.duration)).diff(moment(currDate))).asMinutes());\n setNowHidden(true);\n setStatus(item.hidden);\n hideInterval = setInterval(() => {\n setHideDuration(moment.duration(moment(item.start).add(item.duration, 'm').diff(moment(new Date()))).asMinutes());\n }, 60000);\n break;\n }\n }\n return () => {\n clearInterval(hideInterval);\n hideInterval = null;\n };\n }, [user]);\n\n /* const [toggles, setToggles] = useState(() => [JSON.parse(localStorage.getItem('toggles'))?.find(() => \"toggle1\"), JSON.parse(localStorage.getItem('toggles'))?.find(() =>\"toggle2\"), JSON.parse(localStorage.getItem('toggles'))?.find(() =>\"toggle3\")]);\n\n const handleToggles = (event, newToggles) => {\n setToggles(newToggles);\n localStorage.setItem('toggles', JSON.stringify(newToggles));\n } */\n\n /* useEffect(() => {\n localStorage.setItem('toggles', JSON.stringify(toggles));\n },[toggles]); */\n\n /* useEffect(() => {\n const toggles = JSON.parse(localStorage.getItem('toggles'));\n if(toggles) {\n setToggles(toggles);\n }\n }, []); */\n\n /* console.log(JSON.parse(localStorage.getItem('toggles'))) */\n return (\n \n \n {/* DrawerMenu*/}\n \n \n \n {/* Appbar title */}\n \n {isSmall ? title !== \"Home\" && title : title}\n \n {/* \n setGridOneHidden(false) : () => setGridOneHidden(true)}>\n \n \n setGridTwoHidden(false) : () => setGridTwoHidden(true)}>\n \n \n setGridThreeHidden(false) : () => setGridThreeHidden(true)}>\n \n \n */}\n setGridOneHidden(false) : () => setGridOneHidden(true)}>\n \n \n setGridTwoHidden(false) : () => setGridTwoHidden(true)}>\n \n \n setGridThreeHidden(false) : () => setGridThreeHidden(true)}>\n \n \n {/* Show offline on appBar if offline */}\n \n {/* InfoButton in Appbar */}\n\n \n {/* ProfileMenu */}\n \n \n \n \n \n {/* ProfileMenu content */}\n \n \n {/* */}\n \n \n \n \n {first_name && last_name ? `${first_name} ${last_name}` : username}\n \n {/* Hide Profile online status from profile menu */}\n {/* \n {status ? 'Online' : 'Offline'}\n */}\n \n {/* ProfileMenu online switch, not used */}\n {/* Online */}\n\n \n \n Terms & Conditions\n \n \n \n\n {/* Go Busy */}\n setBusyExpanded(expanded)} elevation={0} sx={{ width: 240, '&:hover': { backgroundColor: \"#f5f5f5\" }, marginTop: -1 }}>\n }\n sx={{}}\n >\n \n Go Busy\n {busyExpanded && }\n \n \n \n {nowHidden ?\n <>\n \n
\n You are {status ? \"hidden\" : \"busy\"} for\n
\n
\n {Math.floor(hideDuration / 60) + 'h ' + Math.floor(hideDuration % 60) + 'minutes'}\n
\n
\n
\n \n
\n \n :\n <>\n \n {busyTime > 0 &&\n <>\n \n {busyTime > 60 ?\n 'Go busy for ' + Math.floor(busyTime / 60) + 'h ' + busyTime % 60 + 'min'\n :\n 'Go busy for ' + busyTime + 'min'\n }\n \n \n \n }\n \n }\n \n
\n\n {/* Go Hidden */}\n setHiddenExpanded(expanded)} elevation={0} sx={{ width: 240, '&:hover': { backgroundColor: \"#f5f5f5\" } }}>\n }\n sx={{}}\n >\n \n Go Hidden\n {hiddenExpanded && }\n \n \n \n {nowHidden ?\n <>\n \n
\n You are {status ? \"hidden\" : \"busy\"} for\n
\n
\n {Math.floor(hideDuration / 60) + 'h ' + Math.floor(hideDuration % 60) + 'minutes'}\n
\n
\n
\n \n
\n \n :\n <>\n \n {hiddenTime > 0 &&\n <>\n \n {hiddenTime > 60 ?\n 'Go hidden for ' + Math.floor(hiddenTime / 60) + 'h ' + hiddenTime % 60 + 'min'\n :\n 'Go hidden for ' + hiddenTime + 'min'\n }\n \n \n \n\n }\n \n }\n
\n
\n\n \n \n Logout\n \n \n \n
\n );\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"container\", \"direction\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { elementAcceptingRef, HTMLElementType, chainPropTypes } from '@mui/utils';\nimport debounce from '../utils/debounce';\nimport useForkRef from '../utils/useForkRef';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport { ownerWindow } from '../utils'; // Translate the node so it can't be seen on the screen.\n// Later, we're going to translate the node back to its original location with `none`.\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction getTranslateValue(direction, node, resolvedContainer) {\n const rect = node.getBoundingClientRect();\n const containerRect = resolvedContainer && resolvedContainer.getBoundingClientRect();\n const containerWindow = ownerWindow(node);\n let transform;\n\n if (node.fakeTransform) {\n transform = node.fakeTransform;\n } else {\n const computedStyle = containerWindow.getComputedStyle(node);\n transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n }\n\n let offsetX = 0;\n let offsetY = 0;\n\n if (transform && transform !== 'none' && typeof transform === 'string') {\n const transformValues = transform.split('(')[1].split(')')[0].split(',');\n offsetX = parseInt(transformValues[4], 10);\n offsetY = parseInt(transformValues[5], 10);\n }\n\n if (direction === 'left') {\n if (containerRect) {\n return `translateX(${containerRect.right + offsetX - rect.left}px)`;\n }\n\n return `translateX(${containerWindow.innerWidth + offsetX - rect.left}px)`;\n }\n\n if (direction === 'right') {\n if (containerRect) {\n return `translateX(-${rect.right - containerRect.left - offsetX}px)`;\n }\n\n return `translateX(-${rect.left + rect.width - offsetX}px)`;\n }\n\n if (direction === 'up') {\n if (containerRect) {\n return `translateY(${containerRect.bottom + offsetY - rect.top}px)`;\n }\n\n return `translateY(${containerWindow.innerHeight + offsetY - rect.top}px)`;\n } // direction === 'down'\n\n\n if (containerRect) {\n return `translateY(-${rect.top - containerRect.top + rect.height - offsetY}px)`;\n }\n\n return `translateY(-${rect.top + rect.height - offsetY}px)`;\n}\n\nfunction resolveContainer(containerPropProp) {\n return typeof containerPropProp === 'function' ? containerPropProp() : containerPropProp;\n}\n\nexport function setTranslateValue(direction, node, containerProp) {\n const resolvedContainer = resolveContainer(containerProp);\n const transform = getTranslateValue(direction, node, resolvedContainer);\n\n if (transform) {\n node.style.webkitTransform = transform;\n node.style.transform = transform;\n }\n}\n/**\n * The Slide transition is used by the [Drawer](/components/drawers/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nconst Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {\n const theme = useTheme();\n const defaultEasing = {\n enter: theme.transitions.easing.easeOut,\n exit: theme.transitions.easing.sharp\n };\n const defaultTimeout = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n\n const {\n addEndListener,\n appear = true,\n children,\n container: containerProp,\n direction = 'down',\n easing: easingProp = defaultEasing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const childrenRef = React.useRef(null);\n const handleRefIntermediary = useForkRef(children.ref, childrenRef);\n const handleRef = useForkRef(handleRefIntermediary, ref);\n\n const normalizedTransitionCallback = callback => isAppearing => {\n if (callback) {\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (isAppearing === undefined) {\n callback(childrenRef.current);\n } else {\n callback(childrenRef.current, isAppearing);\n }\n }\n };\n\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n setTranslateValue(direction, node, containerProp);\n reflow(node);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', _extends({}, transitionProps));\n node.style.transition = theme.transitions.create('transform', _extends({}, transitionProps));\n node.style.webkitTransform = 'none';\n node.style.transform = 'none';\n\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', transitionProps);\n node.style.transition = theme.transitions.create('transform', transitionProps);\n setTranslateValue(direction, node, containerProp);\n\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(node => {\n // No need for transitions when the component is hidden\n node.style.webkitTransition = '';\n node.style.transition = '';\n\n if (onExited) {\n onExited(node);\n }\n });\n\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(childrenRef.current, next);\n }\n };\n\n const updatePosition = React.useCallback(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n }, [direction, containerProp]);\n React.useEffect(() => {\n // Skip configuration where the position is screen size invariant.\n if (inProp || direction === 'down' || direction === 'right') {\n return undefined;\n }\n\n const handleResize = debounce(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n });\n const containerWindow = ownerWindow(childrenRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [direction, inProp, containerProp]);\n React.useEffect(() => {\n if (!inProp) {\n // We need to update the position of the drawer when the direction change and\n // when it's hidden.\n updatePosition();\n }\n }, [inProp, updatePosition]);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n nodeRef: childrenRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n appear: appear,\n in: inProp,\n timeout: timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n ref: handleRef,\n style: _extends({\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, style, children.props.style)\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slide.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 * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n\n /**\n * An HTML element, or a function that returns one.\n * It's used to set the container the Slide is transitioning from.\n */\n container: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), props => {\n if (props.open) {\n const resolvedContainer = resolveContainer(props.container);\n\n if (resolvedContainer && resolvedContainer.nodeType === 1) {\n const box = resolvedContainer.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedContainer || typeof resolvedContainer.getBoundingClientRect !== 'function' || resolvedContainer.contextElement != null && resolvedContainer.contextElement.nodeType !== 1) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'It should be an HTML element instance.'].join('\\n'));\n }\n }\n\n return null;\n }),\n\n /**\n * Direction the child node will enter from.\n * @default 'down'\n */\n direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n * @default {\n * enter: theme.transitions.easing.easeOut,\n * exit: theme.transitions.easing.sharp,\n * }\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 * @ignore\n */\n style: 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 * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Slide;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDrawerUtilityClass(slot) {\n return generateUtilityClass('MuiDrawer', slot);\n}\nconst drawerClasses = generateUtilityClasses('MuiDrawer', ['root', 'docked', 'paper', 'paperAnchorLeft', 'paperAnchorRight', 'paperAnchorTop', 'paperAnchorBottom', 'paperAnchorDockedLeft', 'paperAnchorDockedRight', 'paperAnchorDockedTop', 'paperAnchorDockedBottom', 'modal']);\nexport default drawerClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"BackdropProps\"],\n _excluded2 = [\"anchor\", \"BackdropProps\", \"children\", \"className\", \"elevation\", \"hideBackdrop\", \"ModalProps\", \"onClose\", \"open\", \"PaperProps\", \"SlideProps\", \"TransitionComponent\", \"transitionDuration\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Modal from '../Modal';\nimport Slide from '../Slide';\nimport Paper from '../Paper';\nimport capitalize from '../utils/capitalize';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { getDrawerUtilityClass } from './drawerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, (ownerState.variant === 'permanent' || ownerState.variant === 'persistent') && styles.docked, styles.modal];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n anchor,\n variant\n } = ownerState;\n const slots = {\n root: ['root'],\n docked: [(variant === 'permanent' || variant === 'persistent') && 'docked'],\n modal: ['modal'],\n paper: ['paper', `paperAnchor${capitalize(anchor)}`, variant !== 'temporary' && `paperAnchorDocked${capitalize(anchor)}`]\n };\n return composeClasses(slots, getDrawerUtilityClass, classes);\n};\n\nconst DrawerRoot = styled(Modal, {\n name: 'MuiDrawer',\n slot: 'Root',\n overridesResolver\n})(({\n theme\n}) => ({\n zIndex: theme.zIndex.drawer\n}));\nconst DrawerDockedRoot = styled('div', {\n shouldForwardProp: rootShouldForwardProp,\n name: 'MuiDrawer',\n slot: 'Docked',\n skipVariantsResolver: false,\n overridesResolver\n})({\n flex: '0 0 auto'\n});\nconst DrawerPaper = styled(Paper, {\n name: 'MuiDrawer',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`paperAnchor${capitalize(ownerState.anchor)}`], ownerState.variant !== 'temporary' && styles[`paperAnchorDocked${capitalize(ownerState.anchor)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n flex: '1 0 auto',\n zIndex: theme.zIndex.drawer,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n // temporary style\n position: 'fixed',\n top: 0,\n // We disable the focus ring for mouse, touch and keyboard users.\n // At some point, it would be better to keep it for keyboard users.\n // :focus-ring CSS pseudo-class will help.\n outline: 0\n}, ownerState.anchor === 'left' && {\n left: 0\n}, ownerState.anchor === 'top' && {\n top: 0,\n left: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n}, ownerState.anchor === 'right' && {\n right: 0\n}, ownerState.anchor === 'bottom' && {\n top: 'auto',\n left: 0,\n bottom: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n}, ownerState.anchor === 'left' && ownerState.variant !== 'temporary' && {\n borderRight: `1px solid ${theme.palette.divider}`\n}, ownerState.anchor === 'top' && ownerState.variant !== 'temporary' && {\n borderBottom: `1px solid ${theme.palette.divider}`\n}, ownerState.anchor === 'right' && ownerState.variant !== 'temporary' && {\n borderLeft: `1px solid ${theme.palette.divider}`\n}, ownerState.anchor === 'bottom' && ownerState.variant !== 'temporary' && {\n borderTop: `1px solid ${theme.palette.divider}`\n}));\nconst oppositeDirection = {\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up'\n};\nexport function isHorizontal(anchor) {\n return ['left', 'right'].indexOf(anchor) !== -1;\n}\nexport function getAnchor(theme, anchor) {\n return theme.direction === 'rtl' && isHorizontal(anchor) ? oppositeDirection[anchor] : anchor;\n}\n/**\n * The props of the [Modal](/api/modal/) component are available\n * when `variant=\"temporary\"` is set.\n */\n\nconst Drawer = /*#__PURE__*/React.forwardRef(function Drawer(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDrawer'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n\n const {\n anchor: anchorProp = 'left',\n BackdropProps,\n children,\n className,\n elevation = 16,\n hideBackdrop = false,\n ModalProps: {\n BackdropProps: BackdropPropsProp\n } = {},\n onClose,\n open = false,\n PaperProps = {},\n SlideProps,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Slide,\n transitionDuration = defaultTransitionDuration,\n variant = 'temporary'\n } = props,\n ModalProps = _objectWithoutPropertiesLoose(props.ModalProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2); // Let's assume that the Drawer will always be rendered on user space.\n // We use this state is order to skip the appear transition during the\n // initial mount of the component.\n\n\n const mounted = React.useRef(false);\n React.useEffect(() => {\n mounted.current = true;\n }, []);\n const anchorInvariant = getAnchor(theme, anchorProp);\n const anchor = anchorProp;\n\n const ownerState = _extends({}, props, {\n anchor,\n elevation,\n open,\n variant\n }, other);\n\n const classes = useUtilityClasses(ownerState);\n\n const drawer = /*#__PURE__*/_jsx(DrawerPaper, _extends({\n elevation: variant === 'temporary' ? elevation : 0,\n square: true\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: children\n }));\n\n if (variant === 'permanent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, _extends({\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: drawer\n }));\n }\n\n const slidingDrawer = /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: open,\n direction: oppositeDirection[anchorInvariant],\n timeout: transitionDuration,\n appear: mounted.current\n }, SlideProps, {\n children: drawer\n }));\n\n if (variant === 'persistent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, _extends({\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: slidingDrawer\n }));\n } // variant === temporary\n\n\n return /*#__PURE__*/_jsx(DrawerRoot, _extends({\n BackdropProps: _extends({}, BackdropProps, BackdropPropsProp, {\n transitionDuration\n }),\n className: clsx(classes.root, classes.modal, className),\n open: open,\n ownerState: ownerState,\n onClose: onClose,\n hideBackdrop: hideBackdrop,\n ref: ref\n }, other, ModalProps, {\n children: slidingDrawer\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Drawer.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 * Side from which the drawer will appear.\n * @default 'left'\n */\n anchor: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),\n\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\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 elevation of the drawer.\n * @default 16\n */\n elevation: integerPropType,\n\n /**\n * If `true`, the backdrop is not rendered.\n * @default false\n */\n hideBackdrop: PropTypes.bool,\n\n /**\n * Props applied to the [`Modal`](/api/modal/) element.\n * @default {}\n */\n ModalProps: PropTypes.object,\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n */\n onClose: PropTypes.func,\n\n /**\n * If `true`, the component is shown.\n * @default false\n */\n open: PropTypes.bool,\n\n /**\n * Props applied to the [`Paper`](/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n\n /**\n * Props applied to the [`Slide`](/api/slide/) element.\n */\n SlideProps: 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 * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * The variant to use.\n * @default 'temporary'\n */\n variant: PropTypes.oneOf(['permanent', 'persistent', 'temporary'])\n} : void 0;\nexport default Drawer;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListItemUtilityClass(slot) {\n return generateUtilityClass('MuiListItem', slot);\n}\nconst listItemClasses = generateUtilityClasses('MuiListItem', ['root', 'container', 'focusVisible', 'dense', 'alignItemsFlexStart', 'disabled', 'divider', 'gutters', 'padding', 'button', 'secondaryAction', 'selected']);\nexport default listItemClasses;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListItemButtonUtilityClass(slot) {\n return generateUtilityClass('MuiListItemButton', slot);\n}\nconst listItemButtonClasses = generateUtilityClasses('MuiListItemButton', ['root', 'focusVisible', 'dense', 'alignItemsFlexStart', 'disabled', 'divider', 'gutters', 'selected']);\nexport default listItemButtonClasses;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListItemSecondaryActionClassesUtilityClass(slot) {\n return generateUtilityClass('MuiListItemSecondaryAction', slot);\n}\nconst listItemSecondaryActionClasses = generateUtilityClasses('MuiListItemSecondaryAction', ['root', 'disableGutters']);\nexport default listItemSecondaryActionClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ListContext from '../List/ListContext';\nimport { getListItemSecondaryActionClassesUtilityClass } from './listItemSecondaryActionClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n disableGutters,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getListItemSecondaryActionClassesUtilityClass, classes);\n};\n\nconst ListItemSecondaryActionRoot = styled('div', {\n name: 'MuiListItemSecondaryAction',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.disableGutters && styles.disableGutters];\n }\n})(({\n ownerState\n}) => _extends({\n position: 'absolute',\n right: 16,\n top: '50%',\n transform: 'translateY(-50%)'\n}, ownerState.disableGutters && {\n right: 0\n}));\n/**\n * Must be used as the last child of ListItem to function properly.\n */\n\nconst ListItemSecondaryAction = /*#__PURE__*/React.forwardRef(function ListItemSecondaryAction(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemSecondaryAction'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useContext(ListContext);\n\n const ownerState = _extends({}, props, {\n disableGutters: context.disableGutters\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemSecondaryActionRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemSecondaryAction.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, normally an `IconButton` or selection control.\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 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} : void 0;\nListItemSecondaryAction.muiName = 'ListItemSecondaryAction';\nexport default ListItemSecondaryAction;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"],\n _excluded2 = [\"alignItems\", \"autoFocus\", \"button\", \"children\", \"className\", \"component\", \"components\", \"componentsProps\", \"ContainerComponent\", \"ContainerProps\", \"dense\", \"disabled\", \"disableGutters\", \"disablePadding\", \"divider\", \"focusVisibleClassName\", \"secondaryAction\", \"selected\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses, isHostComponent } from '@mui/base';\nimport { chainPropTypes, elementTypeAcceptingRef } from '@mui/utils';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ButtonBase from '../ButtonBase';\nimport isMuiElement from '../utils/isMuiElement';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport useForkRef from '../utils/useForkRef';\nimport ListContext from '../List/ListContext';\nimport listItemClasses, { getListItemUtilityClass } from './listItemClasses';\nimport { listItemButtonClasses } from '../ListItemButton';\nimport ListItemSecondaryAction from '../ListItemSecondaryAction';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters, !ownerState.disablePadding && styles.padding, ownerState.button && styles.button, ownerState.hasSecondaryAction && styles.secondaryAction];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n button,\n classes,\n dense,\n disabled,\n disableGutters,\n disablePadding,\n divider,\n hasSecondaryAction,\n selected\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', !disableGutters && 'gutters', !disablePadding && 'padding', divider && 'divider', disabled && 'disabled', button && 'button', alignItems === 'flex-start' && 'alignItemsFlexStart', hasSecondaryAction && 'secondaryAction', selected && 'selected'],\n container: ['container']\n };\n return composeClasses(slots, getListItemUtilityClass, classes);\n};\n\nexport const ListItemRoot = styled('div', {\n name: 'MuiListItem',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n width: '100%',\n boxSizing: 'border-box',\n textAlign: 'left'\n}, !ownerState.disablePadding && _extends({\n paddingTop: 8,\n paddingBottom: 8\n}, ownerState.dense && {\n paddingTop: 4,\n paddingBottom: 4\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, !!ownerState.secondaryAction && {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n}), !!ownerState.secondaryAction && {\n [`& > .${listItemButtonClasses.root}`]: {\n paddingRight: 48\n }\n}, {\n [`&.${listItemClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${listItemClasses.selected}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${listItemClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n },\n [`&.${listItemClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n }\n}, ownerState.alignItems === 'flex-start' && {\n alignItems: 'flex-start'\n}, ownerState.divider && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n backgroundClip: 'padding-box'\n}, ownerState.button && {\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${listItemClasses.selected}:hover`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n }\n}, ownerState.hasSecondaryAction && {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n}));\nconst ListItemContainer = styled('li', {\n name: 'MuiListItem',\n slot: 'Container',\n overridesResolver: (props, styles) => styles.container\n})({\n position: 'relative'\n});\n/**\n * Uses an additional container component if `ListItemSecondaryAction` is the last child.\n */\n\nconst ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItem'\n });\n\n const {\n alignItems = 'center',\n autoFocus = false,\n button = false,\n children: childrenProp,\n className,\n component: componentProp,\n components = {},\n componentsProps = {},\n ContainerComponent = 'li',\n ContainerProps: {\n className: ContainerClassName\n } = {},\n dense = false,\n disabled = false,\n disableGutters = false,\n disablePadding = false,\n divider = false,\n focusVisibleClassName,\n secondaryAction,\n selected = false\n } = props,\n ContainerProps = _objectWithoutPropertiesLoose(props.ContainerProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n\n const context = React.useContext(ListContext);\n const childContext = {\n dense: dense || context.dense || false,\n alignItems,\n disableGutters\n };\n const listItemRef = React.useRef(null);\n useEnhancedEffect(() => {\n if (autoFocus) {\n if (listItemRef.current) {\n listItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: Unable to set focus to a ListItem whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n const children = React.Children.toArray(childrenProp); // v4 implementation, deprecated in v5, will be removed in v6\n\n const hasSecondaryAction = children.length && isMuiElement(children[children.length - 1], ['ListItemSecondaryAction']);\n\n const ownerState = _extends({}, props, {\n alignItems,\n autoFocus,\n button,\n dense: childContext.dense,\n disabled,\n disableGutters,\n disablePadding,\n divider,\n hasSecondaryAction,\n selected\n });\n\n const classes = useUtilityClasses(ownerState);\n const handleRef = useForkRef(listItemRef, ref);\n const Root = components.Root || ListItemRoot;\n const rootProps = componentsProps.root || {};\n\n const componentProps = _extends({\n className: clsx(classes.root, rootProps.className, className),\n disabled\n }, other);\n\n let Component = componentProp || 'li';\n\n if (button) {\n componentProps.component = componentProp || 'div';\n componentProps.focusVisibleClassName = clsx(listItemClasses.focusVisible, focusVisibleClassName);\n Component = ButtonBase;\n } // v4 implementation, deprecated in v5, will be removed in v6\n\n\n if (hasSecondaryAction) {\n // Use div by default.\n Component = !componentProps.component && !componentProp ? 'div' : Component; // Avoid nesting of li > li.\n\n if (ContainerComponent === 'li') {\n if (Component === 'li') {\n Component = 'div';\n } else if (componentProps.component === 'li') {\n componentProps.component = 'div';\n }\n }\n\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsxs(ListItemContainer, _extends({\n as: ContainerComponent,\n className: clsx(classes.container, ContainerClassName),\n ref: handleRef,\n ownerState: ownerState\n }, ContainerProps, {\n children: [/*#__PURE__*/_jsx(Root, _extends({}, rootProps, !isHostComponent(Root) && {\n as: Component,\n ownerState: _extends({}, ownerState, rootProps.ownerState)\n }, componentProps, {\n children: children\n })), children.pop()]\n }))\n });\n }\n\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n as: Component,\n ref: handleRef,\n ownerState: ownerState\n }, !isHostComponent(Root) && {\n ownerState: _extends({}, ownerState, rootProps.ownerState)\n }, componentProps, {\n children: [children, secondaryAction && /*#__PURE__*/_jsx(ListItemSecondaryAction, {\n children: secondaryAction\n })]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItem.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 * Defines the `align-items` style property.\n * @default 'center'\n */\n alignItems: PropTypes.oneOf(['center', 'flex-start']),\n\n /**\n * If `true`, the list item is focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n * @default false\n * @deprecated checkout [ListItemButton](/api/list-item-button/) instead\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, the list item is a button (using `ButtonBase`). Props intended\n * for `ButtonBase` can then be applied to `ListItem`.\n * @default false\n * @deprecated checkout [ListItemButton](/api/list-item-button/) instead\n */\n button: PropTypes.bool,\n\n /**\n * The content of the component if a `ListItemSecondaryAction` is used it must\n * be the last child.\n */\n children: chainPropTypes(PropTypes.node, props => {\n const children = React.Children.toArray(props.children); // React.Children.toArray(props.children).findLastIndex(isListItemSecondaryAction)\n\n let secondaryActionIndex = -1;\n\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i];\n\n if (isMuiElement(child, ['ListItemSecondaryAction'])) {\n secondaryActionIndex = i;\n break;\n }\n } // is ListItemSecondaryAction the last child of ListItem\n\n\n if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {\n return new Error('MUI: You used an element after ListItemSecondaryAction. ' + 'For ListItem to detect that it has a secondary action ' + 'you must pass it as the last child to ListItem.');\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 * 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 components used for each slot inside the InputBase.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n root: PropTypes.object\n }),\n\n /**\n * The container component used when a `ListItemSecondaryAction` is the last child.\n * @default 'li'\n * @deprecated\n */\n ContainerComponent: elementTypeAcceptingRef,\n\n /**\n * Props applied to the container component if used.\n * @default {}\n * @deprecated\n */\n ContainerProps: PropTypes.object,\n\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent List component.\n * @default false\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n * @deprecated checkout [ListItemButton](/api/list-item-button/) instead\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, all padding is removed.\n * @default false\n */\n disablePadding: PropTypes.bool,\n\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n * @default false\n */\n divider: PropTypes.bool,\n\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * The element to display at the end of ListItem.\n */\n secondaryAction: PropTypes.node,\n\n /**\n * Use to apply selected styling.\n * @default false\n * @deprecated checkout [ListItemButton](/api/list-item-button/) instead\n */\n selected: 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} : void 0;\nexport default ListItem;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getListItemIconUtilityClass } from './listItemIconClasses';\nimport ListContext from '../List/ListContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes\n } = ownerState;\n const slots = {\n root: ['root', alignItems === 'flex-start' && 'alignItemsFlexStart']\n };\n return composeClasses(slots, getListItemIconUtilityClass, classes);\n};\n\nconst ListItemIconRoot = styled('div', {\n name: 'MuiListItemIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n minWidth: 56,\n color: theme.palette.action.active,\n flexShrink: 0,\n display: 'inline-flex'\n}, ownerState.alignItems === 'flex-start' && {\n marginTop: 8\n}));\n/**\n * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`.\n */\n\nconst ListItemIcon = /*#__PURE__*/React.forwardRef(function ListItemIcon(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemIcon'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useContext(ListContext);\n\n const ownerState = _extends({}, props, {\n alignItems: context.alignItems\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemIconRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemIcon.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, normally `Icon`, `SvgIcon`,\n * or a `@mui/icons-material` SVG icon 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 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} : void 0;\nexport default ListItemIcon;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"disableTypography\", \"inset\", \"primary\", \"primaryTypographyProps\", \"secondary\", \"secondaryTypographyProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Typography from '../Typography';\nimport ListContext from '../List/ListContext';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport listItemTextClasses, { getListItemTextUtilityClass } from './listItemTextClasses';\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 inset,\n primary,\n secondary,\n dense\n } = ownerState;\n const slots = {\n root: ['root', inset && 'inset', dense && 'dense', primary && secondary && 'multiline'],\n primary: ['primary'],\n secondary: ['secondary']\n };\n return composeClasses(slots, getListItemTextUtilityClass, classes);\n};\n\nconst ListItemTextRoot = styled('div', {\n name: 'MuiListItemText',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${listItemTextClasses.primary}`]: styles.primary\n }, {\n [`& .${listItemTextClasses.secondary}`]: styles.secondary\n }, styles.root, ownerState.inset && styles.inset, ownerState.primary && ownerState.secondary && styles.multiline, ownerState.dense && styles.dense];\n }\n})(({\n ownerState\n}) => _extends({\n flex: '1 1 auto',\n minWidth: 0,\n marginTop: 4,\n marginBottom: 4\n}, ownerState.primary && ownerState.secondary && {\n marginTop: 6,\n marginBottom: 6\n}, ownerState.inset && {\n paddingLeft: 56\n}));\nconst ListItemText = /*#__PURE__*/React.forwardRef(function ListItemText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemText'\n });\n\n const {\n children,\n className,\n disableTypography = false,\n inset = false,\n primary: primaryProp,\n primaryTypographyProps,\n secondary: secondaryProp,\n secondaryTypographyProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n dense\n } = React.useContext(ListContext);\n let primary = primaryProp != null ? primaryProp : children;\n let secondary = secondaryProp;\n\n const ownerState = _extends({}, props, {\n disableTypography,\n inset,\n primary: !!primary,\n secondary: !!secondary,\n dense\n });\n\n const classes = useUtilityClasses(ownerState);\n\n if (primary != null && primary.type !== Typography && !disableTypography) {\n primary = /*#__PURE__*/_jsx(Typography, _extends({\n variant: dense ? 'body2' : 'body1',\n className: classes.primary,\n component: \"span\",\n display: \"block\"\n }, primaryTypographyProps, {\n children: primary\n }));\n }\n\n if (secondary != null && secondary.type !== Typography && !disableTypography) {\n secondary = /*#__PURE__*/_jsx(Typography, _extends({\n variant: \"body2\",\n className: classes.secondary,\n color: \"text.secondary\",\n display: \"block\"\n }, secondaryTypographyProps, {\n children: secondary\n }));\n }\n\n return /*#__PURE__*/_jsxs(ListItemTextRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [primary, secondary]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemText.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 * Alias for the `primary` prop.\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 * If `true`, the children won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `children` (or `primary`) text, and optional `secondary` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * If `true`, the children are indented.\n * This should be used if there is no left avatar or left icon.\n * @default false\n */\n inset: PropTypes.bool,\n\n /**\n * The main content element.\n */\n primary: PropTypes.node,\n\n /**\n * These props will be forwarded to the primary typography component\n * (as long as disableTypography is not `true`).\n */\n primaryTypographyProps: PropTypes.object,\n\n /**\n * The secondary content element.\n */\n secondary: PropTypes.node,\n\n /**\n * These props will be forwarded to the secondary typography component\n * (as long as disableTypography is not `true`).\n */\n secondaryTypographyProps: 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} : void 0;\nexport default ListItemText;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"alignItems\", \"autoFocus\", \"component\", \"children\", \"dense\", \"disableGutters\", \"divider\", \"focusVisibleClassName\", \"selected\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ButtonBase from '../ButtonBase';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport useForkRef from '../utils/useForkRef';\nimport ListContext from '../List/ListContext';\nimport listItemButtonClasses, { getListItemButtonUtilityClass } from './listItemButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes,\n dense,\n disabled,\n disableGutters,\n divider,\n selected\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', !disableGutters && 'gutters', divider && 'divider', disabled && 'disabled', alignItems === 'flex-start' && 'alignItemsFlexStart', selected && 'selected']\n };\n const composedClasses = composeClasses(slots, getListItemButtonUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst ListItemButtonRoot = styled(ButtonBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiListItemButton',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n boxSizing: 'border-box',\n textAlign: 'left',\n paddingTop: 8,\n paddingBottom: 8,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${listItemButtonClasses.selected}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n },\n [`&.${listItemButtonClasses.selected}:hover`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n },\n [`&.${listItemButtonClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${listItemButtonClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n }\n}, ownerState.divider && {\n borderBottom: `1px solid ${theme.palette.divider}`,\n backgroundClip: 'padding-box'\n}, ownerState.alignItems === 'flex-start' && {\n alignItems: 'flex-start'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.dense && {\n paddingTop: 4,\n paddingBottom: 4\n}));\nconst ListItemButton = /*#__PURE__*/React.forwardRef(function ListItemButton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemButton'\n });\n\n const {\n alignItems = 'center',\n autoFocus = false,\n component = 'div',\n children,\n dense = false,\n disableGutters = false,\n divider = false,\n focusVisibleClassName,\n selected = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useContext(ListContext);\n const childContext = {\n dense: dense || context.dense || false,\n alignItems,\n disableGutters\n };\n const listItemRef = React.useRef(null);\n useEnhancedEffect(() => {\n if (autoFocus) {\n if (listItemRef.current) {\n listItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: Unable to set focus to a ListItemButton whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n\n const ownerState = _extends({}, props, {\n alignItems,\n dense: childContext.dense,\n disableGutters,\n divider,\n selected\n });\n\n const classes = useUtilityClasses(ownerState);\n const handleRef = useForkRef(listItemRef, ref);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(ListItemButtonRoot, _extends({\n ref: handleRef,\n component: component,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n ownerState: ownerState\n }, other, {\n classes: classes,\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemButton.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 * Defines the `align-items` style property.\n * @default 'center'\n */\n alignItems: PropTypes.oneOf(['center', 'flex-start']),\n\n /**\n * If `true`, the list item is focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n * @default false\n */\n autoFocus: PropTypes.bool,\n\n /**\n * The content of the component if a `ListItemSecondaryAction` is used it must\n * be the last child.\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 * 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 * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent List component.\n * @default false\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n * @default false\n */\n divider: PropTypes.bool,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * Use to apply selected styling.\n * @default false\n */\n selected: 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} : void 0;\nexport default ListItemButton;","import * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport SmallAvatarWrapper from './SmallAvatarWrapper';\nimport { Badge, Tooltip } from '@mui/material';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\n\n/* const CustomTooltip = styled(({ className, ...props }) => (\n \n))(({ theme }) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n backgroundColor: theme.palette.common.white,\n color: '#44b700',\n fontWeight: \"bold\",\n boxShadow: theme.shadows[1],\n fontSize: 11,\n },\n})); */\n\nconst StyledBadge = styled(Badge)(({ badgewidth, badgeheight, badgeboxshadow, badgeanimation, lastseenminutes, theme, busy }) => ({\n '& .MuiBadge-badge': {\n backgroundColor: busy ? \"#E72D50\" : lastseenminutes ? lastseenminutes <= 10 && lastseenminutes >= 5 ? \"#FCC041\" : lastseenminutes > 0 && lastseenminutes < 5 ? \"#8DBF30\" : '#adadb8' : '#adadb8',\n color: \"#8DBF30\",\n width: badgewidth,\n height: badgeheight,\n borderRadius: \"50%\",\n boxShadow: badgeboxshadow,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n '&::after':\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n animation: 'ripple 1.2s infinite ease-in-out',\n border: '1px solid currentColor',\n content: '\"\"',\n display: !badgeanimation ? \"none\" : undefined\n }\n },\n '& .MuiBadge-root': {\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n backgroundColor: \"red\"\n },\n '@keyframes ripple': {\n '0%': {\n transform: 'scale(.8)',\n opacity: 1,\n },\n '100%': {\n transform: 'scale(2.5)',\n opacity: 0,\n },\n },\n}));\n\nexport default function StyledBadgeAvatar({\n isSmall,\n tooltipContent,\n tooltipPlacement,\n badgeOverlap,\n badgeAnchorOrigin,\n badgeVariant,\n badgeSx,\n avatarSx,\n alt,\n imgSrc,\n avatarVariant,\n akey,\n badgeheight,\n badgewidth,\n badgeanimation,\n badgeboxshadow,\n lastseenminutes,\n busy,\n skipCookie,\n imageSize,\n noTooltip,\n hasHiddenBadge\n}) {\n return (\n noTooltip\n ?\n isSmall ?\n \n :\n hasHiddenBadge\n ?\n \n }\n >\n \n \n :\n \n \n \n :\n \n {isSmall ?\n \n :\n \n \n \n }\n \n );\n}\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListItemAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiListItemAvatar', slot);\n}\nconst listItemAvatarClasses = generateUtilityClasses('MuiListItemAvatar', ['root', 'alignItemsFlexStart']);\nexport default listItemAvatarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport ListContext from '../List/ListContext';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getListItemAvatarUtilityClass } from './listItemAvatarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes\n } = ownerState;\n const slots = {\n root: ['root', alignItems === 'flex-start' && 'alignItemsFlexStart']\n };\n return composeClasses(slots, getListItemAvatarUtilityClass, classes);\n};\n\nconst ListItemAvatarRoot = styled('div', {\n name: 'MuiListItemAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart];\n }\n})(({\n ownerState\n}) => _extends({\n minWidth: 56,\n flexShrink: 0\n}, ownerState.alignItems === 'flex-start' && {\n marginTop: 8\n}));\n/**\n * A simple wrapper to apply `List` styles to an `Avatar`.\n */\n\nconst ListItemAvatar = /*#__PURE__*/React.forwardRef(function ListItemAvatar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemAvatar'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useContext(ListContext);\n\n const ownerState = _extends({}, props, {\n alignItems: context.alignItems\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemAvatarRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemAvatar.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, normally an `Avatar`.\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 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} : void 0;\nexport default ListItemAvatar;","import * as React from 'react';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemText from '@mui/material/ListItemText';\nimport HomeIcon from '@mui/icons-material/Home';\nimport List from '@mui/material/List';\nimport { Link } from \"react-router-dom\";\nimport PersonIcon from '@mui/icons-material/Person';\nimport CalendarTodayIcon from '@mui/icons-material/CalendarToday';\nimport DevicesOtherIcon from '@mui/icons-material/DevicesOther';\nimport SettingsIcon from '@mui/icons-material/Settings';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ExpandMore from '@mui/icons-material/ExpandMore';\nimport Collapse from '@mui/material/Collapse';\nimport DateRangeIcon from '@mui/icons-material/DateRange';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useTheme } from '@mui/material/styles';\nimport DashboardCustomizeIcon from '@mui/icons-material/DashboardCustomize';\nimport GroupsIcon from '@mui/icons-material/Groups';\nimport { Box } from '@mui/material';\nimport { Divider, Tooltip, Typography, Badge } from '@mui/material';\nimport { useState, useEffect, useContext } from 'react';\nimport { MainContext, SmallAvatarWrapper, StyledBadgeAvatar } from 'kerberus-components';\nimport { ListItemAvatar } from '@mui/material';\nimport moment from 'moment';\nimport useSWR from 'swr';\nimport PeopleIcon from '@mui/icons-material/People';\nimport GroupAddIcon from '@mui/icons-material/GroupAdd';\nimport TokenIcon from '@mui/icons-material/Token';\n\nconst itemGroup = {\n color: 'rgba(255, 255, 255, 0.7)',\n '&:hover, &:focus': {\n bgcolor: 'rgba(255, 255, 255, 0.08)',\n },\n pl: 8\n};\n\nconst item = {\n color: 'rgba(255, 255, 255, 0.7)',\n '&:hover, &:focus': {\n bgcolor: 'rgba(255, 255, 255, 0.08)',\n },\n pl: 4\n};\n\nconst subtitle = {\n marginLeft: -2\n};\n\nconst itemCategory = {\n boxShadow: '0 -1px 0 rgb(255,255,255,0.1) inset',\n px: 3,\n py: 1.5\n};\n\nconst subHeader = {\n backgroundColor: \"#081627\",\n color: \"#FFFFFF\",\n fontSize: 18,\n '&:hover': {\n bgcolor: 'rgba(255, 255, 255, 0.08)',\n },\n};\n\nfunction getActiveState(utc_start, utc_end) {\n let [hoursEnd, minsEnd] = utc_end && utc_end.split(':');\n let [hours, mins] = utc_start.split(':');\n let yesterday = moment.utc().startOf('day').subtract(1, 'day');\n let today = moment.utc().startOf('day');\n let tomorrow = moment.utc().startOf('day').add(1, 'day');\n\n\n if (hours > hoursEnd || (hours === hoursEnd && mins > minsEnd)) {\n let isBetween1 = moment().isBetween(yesterday.utc().set('hour', hours).set('minute', mins).local(), today.utc().set('hour', hoursEnd).set('minute', minsEnd).local());\n let isBetween2 = moment().isBetween(today.utc().set('hour', hours).set('minute', mins).local(), tomorrow.utc().set('hour', hoursEnd).set('minute', minsEnd).local());\n return (isBetween1 || isBetween2);\n }\n else {\n return (moment().isBetween(moment.utc().startOf('day').add(utc_start).local(), moment.utc().startOf('day').add(utc_end).local()));\n }\n}\n\nexport default function ListItems({ userId, drawerOpen, toggleDrawer, userdata, lastseenminutes, onlineData }) {\n const { first_name, last_name, username, title, id, user_company } = userdata;\n const theme = useTheme();\n /* const isSmall = useMediaQuery(theme.breakpoints.down('sm')); */\n const isLarge = useMediaQuery(theme.breakpoints.down('lg'));\n const [socialGroups, setSocialGroups] = useState([]);\n const [hidden, setHidden] = useState(false)\n const { bulkData } = useContext(MainContext);\n const busy = bulkData && bulkData.user?.status;\n const [onlineMembers, setOnlineMembers] = useState(0);\n const [profiles, setProfiles] = useState([]);\n const { data: groupListData } = useSWR('users/socialgrouplist/');\n const { data: profileListData } = useSWR('users/profilelistsocial/');\n const { data: grouprequestsData = [] } = useSWR('users/grouprequests/');\n\n useEffect(() => {\n if (groupListData) {\n setSocialGroups(groupListData.map(item => ({ ...item, open: false })));\n }\n }, [groupListData]);\n\n useEffect(() => {\n if (profileListData) {\n setProfiles(profileListData);\n }\n }, [profileListData]);\n\n const listCollapseLS = localStorage.getItem(\"preferences\");\n const listCollapseProfile = JSON.parse(listCollapseLS)?.listCollapse1;\n const listCollapseGroups = JSON.parse(listCollapseLS)?.listCollapse2;\n const listCollapseAdmin = JSON.parse(listCollapseLS)?.listCollapse3;\n const listCollapseMyGroups = JSON.parse(listCollapseLS)?.listCollapse4;\n\n const [openProfile, setOpenProfile] = useState(listCollapseProfile ?? true);\n const [openGroups, setOpenGroups] = useState(listCollapseGroups ?? true);\n const [openMyGroups, setOpenMyGroups] = useState(listCollapseMyGroups ?? true);\n const [openAdmin, setOpenAdmin] = useState(listCollapseAdmin ?? true);\n\n useEffect(() => {\n let tempNum = 0;\n if (bulkData) {\n for (const userObj of bulkData.company) {\n const now = moment();\n const lastSeen = userObj.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n if (lastSeen && lastseenminutes <= 10) {\n tempNum++;\n }\n }\n }\n setOnlineMembers(tempNum);\n }, [bulkData]);\n\n useEffect(() => {\n let currDate = new Date();\n if (userdata.user_hidden.length > 0 && !hidden) {\n for (let item of userdata.user_hidden) {\n if (new Date(item.start) < currDate && moment(item.start).add(moment.duration(item.duration)).toDate() > currDate) {\n setHidden(item.hidden);\n break;\n }\n }\n }\n else {\n setHidden(false)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userdata]);\n\n return (\n <>\n\n \n \n Hidden\n \n \n = 5 ? theme.palette.mlYellow.main : lastseenminutes > -5 && lastseenminutes < 5 ? theme.palette.mlGreen.main : '#adadb8' : '#adadb8'\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={id}\n lastseenminutes={lastseenminutes}\n busy={busy}\n imageSize=\"_128\"\n />\n \n {first_name && last_name ? `${first_name} ${last_name}` : username}\n {title &&\n \n {title}\n \n }\n \n \n
\n \n \n \n \n \n \n \n \n
\n
\n\n \n \n
\n { setOpenProfile(!openProfile); localStorage.setItem(\"preferences\", JSON.stringify({ listCollapse1: !openProfile, listCollapse2: openGroups, listCollapse3: openAdmin, listCollapse4: openMyGroups })); }}>\n Profile\n {openProfile ? : }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
\n
\n \n
\n { setOpenGroups(!openGroups); localStorage.setItem(\"preferences\", JSON.stringify({ listCollapse1: openProfile, listCollapse2: !openGroups, listCollapse3: openAdmin, listCollapse4: openMyGroups })); }}>\n Groups\n {openGroups ? : }\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n {userdata.user_company &&\n \n \n \n \n \n \n \n\n \n }\n\n {socialGroups.length > 3\n ?\n <>\n { setOpenMyGroups(!openMyGroups); localStorage.setItem(\"preferences\", JSON.stringify({ listCollapse1: openProfile, listCollapse2: openGroups, listCollapse3: openAdmin, listCollapse4: !openMyGroups })); }}\n >\n \n \n \n My Groups\n {openMyGroups ? : }\n \n \n {socialGroups.length > 0 &&\n socialGroups.map(group => {\n let tempNum = 0;\n const groupObj = bulkData?.social_groups.find(i => i.group_id === group.id);\n\n if (groupObj) {\n for (const userObj of groupObj.users) {\n const now = moment();\n const lastSeen = userObj.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n if (group.users.some(i => i.id === userObj.user_id) && lastSeen && lastseenminutes <= 10 && lastseenminutes > 0) {\n tempNum++;\n }\n }\n }\n\n const isActive = (group.utc_start && group.utc_end) ? getActiveState(group.utc_start, group.utc_end) || group.utc_start === group.utc_end : true;\n const isActiveWeekday = group.enable_days.includes(moment().isoWeekday()) || group.enable_days === undefined;\n\n return (\n \n \n \n item.social_group === group.id && item).length} color=\"error\"\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}>\n \n \n \n \n \n\n \n );\n }\n\n\n )\n }\n \n \n :\n socialGroups.length > 0 &&\n socialGroups.map((group, index) => {\n let tempNum = 0;\n const groupObj = bulkData?.social_groups.find(i => i.group_id === group.id);\n\n if (groupObj) {\n for (const userObj of groupObj.users) {\n const now = moment();\n const lastSeen = userObj.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n if (group.users.some(i => i.id === userObj.user_id) && lastSeen && lastseenminutes <= 10 && lastseenminutes > 0) {\n tempNum++;\n }\n }\n }\n\n const isActive = (group.utc_start && group.utc_end) ? getActiveState(group.utc_start, group.utc_end) || group.utc_start === group.utc_end : true;\n const isActiveWeekday = group.enable_days.includes(moment().isoWeekday()) || group.enable_days === undefined;\n\n return (\n \n \n \n item.social_group === group.id && item).length} color=\"error\"\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}>\n \n \n \n \n \n\n \n );\n }\n\n\n )\n\n }\n\n \n\n
\n
\n {/* Admin section hidden */}\n {\n userdata && (userdata.perm_level === \"superuser\" || userdata.perm_level === \"admin\") &&\n \n
\n { setOpenAdmin(!openAdmin); localStorage.setItem(\"preferences\", JSON.stringify({ listCollapse1: openProfile, listCollapse2: openGroups, listCollapse3: !openAdmin, listCollapse4: openMyGroups })); }}>\n Admin\n {openAdmin ? : }\n \n \n {userdata.perm_level === \"superuser\" &&\n \n \n \n \n \n \n }\n \n \n \n \n \n\n \n {!isLarge &&\n \n \n \n \n \n\n \n }\n \n \n \n \n \n\n \n {userdata.next && \n \n \n \n \n }\n \n
\n
\n }\n {/* {(userdata.next && socialGroups.length > 0) &&\n \n
\n {drawerOpen && !isSmall &&\n setOpen4(!open4)} >\n Socials\n {open4 ? : }\n }\n \n {socialGroups.map((item, index) => {\n return (\n
\n {\n setSocialGroups(prev => {\n let temp = [...prev];\n let idx = temp.findIndex(i => i.id === item.id);\n temp[idx].open = !temp[idx].open;\n return temp;\n });\n }} key={id}>\n \n \n 0\n ?\n index === 1\n ?\n \"https://wallpaperping.com/wp-content/uploads/2018/06/cool-wallpapers.jpg\"\n :\n \"https://pricespy-75b8.kxcdn.com/product/standard/280/497968.jpg\"\n :\n \"https://www.missing-link.fi/wp-content/themes/missing-link/assets/img/phone-app.jpg\"} />\n \n \n {drawerOpen &&\n \n }\n {!item.open ? : }\n \n\n \n {item.users.map((item, index2) => {\n if (item.id !== id) {\n return (\n \n \n \n \n \n \n {drawerOpen &&\n \n }\n\n \n );\n }\n else return null;\n }\n )\n }\n \n
\n );\n }\n )}\n
\n\n
\n
\n } */}\n
\n {/* {\n userdata.next && !isSmall &&\n \n Missing-Link Manuals\n \n }; */}\n \n );\n}","import * as React from 'react';\nimport { Drawer as MuiDrawerComponent, Toolbar, Typography, Divider, useTheme } from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport ListItems from './ListItems';\n\nconst drawerWidth = 240;\n\nconst MuiDrawer = styled(MuiDrawerComponent, { shouldForwardProp: (prop) => prop !== 'open' })(\n ({ theme, open }) => ({\n '& .MuiDrawer-paper': {\n position: 'relative',\n whiteSpace: 'normal',\n width: drawerWidth,\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n boxSizing: 'border-box',\n ...(!open && {\n overflowX: 'hidden',\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n width: theme.spacing(0),\n [theme.breakpoints.up('sm')]: {\n width: theme.spacing(9),\n },\n }),\n },\n }),\n);\n\nexport default React.memo(function Drawer({ user, lastseenminutes, open }) {\n const theme = useTheme();\n\n return (\n \n \n Missing-Link\n {/* This allows user to minimize drawer in desktop mode */}\n {/*\n \n */}\n \n \n \n \n );\n});","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\n/**\n * NoSsr purposely removes components from the subject of Server Side Rendering (SSR).\n *\n * This component can be useful in a variety of situations:\n * - Escape hatch for broken dependencies not supporting SSR.\n * - Improve the time-to-first paint on the client by only rendering above the fold.\n * - Reduce the rendering time on the server.\n * - Under too heavy server load, you can turn on service degradation.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction NoSsr(props) {\n const {\n children,\n defer = false,\n fallback = null\n } = props;\n const [mountedState, setMountedState] = React.useState(false);\n useEnhancedEffect(() => {\n if (!defer) {\n setMountedState(true);\n }\n }, [defer]);\n React.useEffect(() => {\n if (defer) {\n setMountedState(true);\n }\n }, [defer]); // We need the Fragment here to force react-docgen to recognise NoSsr as a component.\n\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: mountedState ? children : fallback\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? NoSsr.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 * You can wrap a node.\n */\n children: PropTypes.node,\n\n /**\n * If `true`, the component will not only prevent server-side rendering.\n * It will also defer the rendering of the children into a different screen frame.\n * @default false\n */\n defer: PropTypes.bool,\n\n /**\n * The fallback content to display.\n * @default null\n */\n fallback: PropTypes.node\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n NoSsr['propTypes' + ''] = exactProp(NoSsr.propTypes);\n}\n\nexport default NoSsr;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"anchor\", \"classes\", \"className\", \"width\", \"style\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport styled from '../styles/styled';\nimport capitalize from '../utils/capitalize';\nimport { isHorizontal } from '../Drawer/Drawer';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SwipeAreaRoot = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n position: 'fixed',\n top: 0,\n left: 0,\n bottom: 0,\n zIndex: theme.zIndex.drawer - 1\n}, ownerState.anchor === 'left' && {\n right: 'auto'\n}, ownerState.anchor === 'right' && {\n left: 'auto',\n right: 0\n}, ownerState.anchor === 'top' && {\n bottom: 'auto',\n right: 0\n}, ownerState.anchor === 'bottom' && {\n top: 'auto',\n bottom: 0,\n right: 0\n}));\n/**\n * @ignore - internal component.\n */\n\nconst SwipeArea = /*#__PURE__*/React.forwardRef(function SwipeArea(props, ref) {\n const {\n anchor,\n classes = {},\n className,\n width,\n style\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n return /*#__PURE__*/_jsx(SwipeAreaRoot, _extends({\n className: clsx('PrivateSwipeArea-root', classes.root, classes[`anchor${capitalize(anchor)}`], className),\n ref: ref,\n style: _extends({\n [isHorizontal(anchor) ? 'width' : 'height']: width\n }, style),\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? SwipeArea.propTypes = {\n /**\n * Side on which to attach the discovery area.\n */\n anchor: PropTypes.oneOf(['left', 'top', 'right', 'bottom']).isRequired,\n\n /**\n * @ignore\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The width of the left most (or right most) area in `px` where the\n * drawer can be swiped open from.\n */\n width: PropTypes.number.isRequired\n} : void 0;\nexport default SwipeArea;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"BackdropProps\"],\n _excluded2 = [\"anchor\", \"disableBackdropTransition\", \"disableDiscovery\", \"disableSwipeToOpen\", \"hideBackdrop\", \"hysteresis\", \"minFlingVelocity\", \"ModalProps\", \"onClose\", \"onOpen\", \"open\", \"PaperProps\", \"SwipeAreaProps\", \"swipeAreaWidth\", \"transitionDuration\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementTypeAcceptingRef } from '@mui/utils';\nimport { useThemeProps } from '@mui/system';\nimport { NoSsr } from '@mui/base';\nimport Drawer, { getAnchor, isHorizontal } from '../Drawer/Drawer';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow';\nimport useEventCallback from '../utils/useEventCallback';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport useTheme from '../styles/useTheme';\nimport { getTransitionProps } from '../transitions/utils';\nimport SwipeArea from './SwipeArea'; // This value is closed to what browsers are using internally to\n// trigger a native scroll.\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst UNCERTAINTY_THRESHOLD = 3; // px\n// This is the part of the drawer displayed on touch start.\n\nconst DRAG_STARTED_SIGNAL = 20; // px\n// We can only have one instance at the time claiming ownership for handling the swipe.\n// Otherwise, the UX would be confusing.\n// That's why we use a singleton here.\n\nlet claimedSwipeInstance = null; // Exported for test purposes.\n\nexport function reset() {\n claimedSwipeInstance = null;\n}\n\nfunction calculateCurrentX(anchor, touches, doc) {\n return anchor === 'right' ? doc.body.offsetWidth - touches[0].pageX : touches[0].pageX;\n}\n\nfunction calculateCurrentY(anchor, touches, containerWindow) {\n return anchor === 'bottom' ? containerWindow.innerHeight - touches[0].clientY : touches[0].clientY;\n}\n\nfunction getMaxTranslate(horizontalSwipe, paperInstance) {\n return horizontalSwipe ? paperInstance.clientWidth : paperInstance.clientHeight;\n}\n\nfunction getTranslate(currentTranslate, startLocation, open, maxTranslate) {\n return Math.min(Math.max(open ? startLocation - currentTranslate : maxTranslate + startLocation - currentTranslate, 0), maxTranslate);\n}\n/**\n * @param {Element | null} element\n * @param {Element} rootNode\n */\n\n\nfunction getDomTreeShapes(element, rootNode) {\n // Adapted from https://github.com/oliviertassinari/react-swipeable-views/blob/7666de1dba253b896911adf2790ce51467670856/packages/react-swipeable-views/src/SwipeableViews.js#L129\n const domTreeShapes = [];\n\n while (element && element !== rootNode.parentElement) {\n const style = ownerWindow(rootNode).getComputedStyle(element);\n\n if ( // Ignore the scroll children if the element is absolute positioned.\n style.getPropertyValue('position') === 'absolute' || // Ignore the scroll children if the element has an overflowX hidden\n style.getPropertyValue('overflow-x') === 'hidden') {// noop\n } else if (element.clientWidth > 0 && element.scrollWidth > element.clientWidth || element.clientHeight > 0 && element.scrollHeight > element.clientHeight) {\n // Ignore the nodes that have no width.\n // Keep elements with a scroll\n domTreeShapes.push(element);\n }\n\n element = element.parentElement;\n }\n\n return domTreeShapes;\n}\n/**\n * @param {object} param0\n * @param {ReturnType} param0.domTreeShapes\n */\n\n\nfunction computeHasNativeHandler({\n domTreeShapes,\n start,\n current,\n anchor\n}) {\n // Adapted from https://github.com/oliviertassinari/react-swipeable-views/blob/7666de1dba253b896911adf2790ce51467670856/packages/react-swipeable-views/src/SwipeableViews.js#L175\n const axisProperties = {\n scrollPosition: {\n x: 'scrollLeft',\n y: 'scrollTop'\n },\n scrollLength: {\n x: 'scrollWidth',\n y: 'scrollHeight'\n },\n clientLength: {\n x: 'clientWidth',\n y: 'clientHeight'\n }\n };\n return domTreeShapes.some(shape => {\n // Determine if we are going backward or forward.\n let goingForward = current >= start;\n\n if (anchor === 'top' || anchor === 'left') {\n goingForward = !goingForward;\n }\n\n const axis = anchor === 'left' || anchor === 'right' ? 'x' : 'y';\n const scrollPosition = Math.round(shape[axisProperties.scrollPosition[axis]]);\n const areNotAtStart = scrollPosition > 0;\n const areNotAtEnd = scrollPosition + shape[axisProperties.clientLength[axis]] < shape[axisProperties.scrollLength[axis]];\n\n if (goingForward && areNotAtEnd || !goingForward && areNotAtStart) {\n return true;\n }\n\n return false;\n });\n}\n\nconst iOS = typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent);\nconst SwipeableDrawer = /*#__PURE__*/React.forwardRef(function SwipeableDrawer(inProps, ref) {\n const props = useThemeProps({\n name: 'MuiSwipeableDrawer',\n props: inProps\n });\n const theme = useTheme();\n const transitionDurationDefault = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n\n const {\n anchor = 'left',\n disableBackdropTransition = false,\n disableDiscovery = false,\n disableSwipeToOpen = iOS,\n hideBackdrop,\n hysteresis = 0.52,\n minFlingVelocity = 450,\n ModalProps: {\n BackdropProps\n } = {},\n onClose,\n onOpen,\n open,\n PaperProps = {},\n SwipeAreaProps,\n swipeAreaWidth = 20,\n transitionDuration = transitionDurationDefault,\n variant = 'temporary'\n } = props,\n ModalPropsProp = _objectWithoutPropertiesLoose(props.ModalProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n\n const [maybeSwiping, setMaybeSwiping] = React.useState(false);\n const swipeInstance = React.useRef({\n isSwiping: null\n });\n const swipeAreaRef = React.useRef();\n const backdropRef = React.useRef();\n const paperRef = React.useRef();\n const touchDetected = React.useRef(false); // Ref for transition duration based on / to match swipe speed\n\n const calculatedDurationRef = React.useRef(); // Use a ref so the open value used is always up to date inside useCallback.\n\n useEnhancedEffect(() => {\n calculatedDurationRef.current = null;\n }, [open]);\n const setPosition = React.useCallback((translate, options = {}) => {\n const {\n mode = null,\n changeTransition = true\n } = options;\n const anchorRtl = getAnchor(theme, anchor);\n const rtlTranslateMultiplier = ['right', 'bottom'].indexOf(anchorRtl) !== -1 ? 1 : -1;\n const horizontalSwipe = isHorizontal(anchor);\n const transform = horizontalSwipe ? `translate(${rtlTranslateMultiplier * translate}px, 0)` : `translate(0, ${rtlTranslateMultiplier * translate}px)`;\n const drawerStyle = paperRef.current.style;\n drawerStyle.webkitTransform = transform;\n drawerStyle.transform = transform;\n let transition = '';\n\n if (mode) {\n transition = theme.transitions.create('all', getTransitionProps({\n easing: undefined,\n style: undefined,\n timeout: transitionDuration\n }, {\n mode\n }));\n }\n\n if (changeTransition) {\n drawerStyle.webkitTransition = transition;\n drawerStyle.transition = transition;\n }\n\n if (!disableBackdropTransition && !hideBackdrop) {\n const backdropStyle = backdropRef.current.style;\n backdropStyle.opacity = 1 - translate / getMaxTranslate(horizontalSwipe, paperRef.current);\n\n if (changeTransition) {\n backdropStyle.webkitTransition = transition;\n backdropStyle.transition = transition;\n }\n }\n }, [anchor, disableBackdropTransition, hideBackdrop, theme, transitionDuration]);\n const handleBodyTouchEnd = useEventCallback(nativeEvent => {\n if (!touchDetected.current) {\n return;\n }\n\n claimedSwipeInstance = null;\n touchDetected.current = false;\n setMaybeSwiping(false); // The swipe wasn't started.\n\n if (!swipeInstance.current.isSwiping) {\n swipeInstance.current.isSwiping = null;\n return;\n }\n\n swipeInstance.current.isSwiping = null;\n const anchorRtl = getAnchor(theme, anchor);\n const horizontal = isHorizontal(anchor);\n let current;\n\n if (horizontal) {\n current = calculateCurrentX(anchorRtl, nativeEvent.changedTouches, ownerDocument(nativeEvent.currentTarget));\n } else {\n current = calculateCurrentY(anchorRtl, nativeEvent.changedTouches, ownerWindow(nativeEvent.currentTarget));\n }\n\n const startLocation = horizontal ? swipeInstance.current.startX : swipeInstance.current.startY;\n const maxTranslate = getMaxTranslate(horizontal, paperRef.current);\n const currentTranslate = getTranslate(current, startLocation, open, maxTranslate);\n const translateRatio = currentTranslate / maxTranslate;\n\n if (Math.abs(swipeInstance.current.velocity) > minFlingVelocity) {\n // Calculate transition duration to match swipe speed\n calculatedDurationRef.current = Math.abs((maxTranslate - currentTranslate) / swipeInstance.current.velocity) * 1000;\n }\n\n if (open) {\n if (swipeInstance.current.velocity > minFlingVelocity || translateRatio > hysteresis) {\n onClose();\n } else {\n // Reset the position, the swipe was aborted.\n setPosition(0, {\n mode: 'exit'\n });\n }\n\n return;\n }\n\n if (swipeInstance.current.velocity < -minFlingVelocity || 1 - translateRatio > hysteresis) {\n onOpen();\n } else {\n // Reset the position, the swipe was aborted.\n setPosition(getMaxTranslate(horizontal, paperRef.current), {\n mode: 'enter'\n });\n }\n });\n const handleBodyTouchMove = useEventCallback(nativeEvent => {\n // the ref may be null when a parent component updates while swiping\n if (!paperRef.current || !touchDetected.current) {\n return;\n } // We are not supposed to handle this touch move because the swipe was started in a scrollable container in the drawer\n\n\n if (claimedSwipeInstance !== null && claimedSwipeInstance !== swipeInstance.current) {\n return;\n }\n\n const anchorRtl = getAnchor(theme, anchor);\n const horizontalSwipe = isHorizontal(anchor);\n const currentX = calculateCurrentX(anchorRtl, nativeEvent.touches, ownerDocument(nativeEvent.currentTarget));\n const currentY = calculateCurrentY(anchorRtl, nativeEvent.touches, ownerWindow(nativeEvent.currentTarget));\n\n if (open && paperRef.current.contains(nativeEvent.target) && claimedSwipeInstance === null) {\n const domTreeShapes = getDomTreeShapes(nativeEvent.target, paperRef.current);\n const hasNativeHandler = computeHasNativeHandler({\n domTreeShapes,\n start: horizontalSwipe ? swipeInstance.current.startX : swipeInstance.current.startY,\n current: horizontalSwipe ? currentX : currentY,\n anchor\n });\n\n if (hasNativeHandler) {\n claimedSwipeInstance = true;\n return;\n }\n\n claimedSwipeInstance = swipeInstance.current;\n } // We don't know yet.\n\n\n if (swipeInstance.current.isSwiping == null) {\n const dx = Math.abs(currentX - swipeInstance.current.startX);\n const dy = Math.abs(currentY - swipeInstance.current.startY);\n const definitelySwiping = horizontalSwipe ? dx > dy && dx > UNCERTAINTY_THRESHOLD : dy > dx && dy > UNCERTAINTY_THRESHOLD;\n\n if (definitelySwiping && nativeEvent.cancelable) {\n nativeEvent.preventDefault();\n }\n\n if (definitelySwiping === true || (horizontalSwipe ? dy > UNCERTAINTY_THRESHOLD : dx > UNCERTAINTY_THRESHOLD)) {\n swipeInstance.current.isSwiping = definitelySwiping;\n\n if (!definitelySwiping) {\n handleBodyTouchEnd(nativeEvent);\n return;\n } // Shift the starting point.\n\n\n swipeInstance.current.startX = currentX;\n swipeInstance.current.startY = currentY; // Compensate for the part of the drawer displayed on touch start.\n\n if (!disableDiscovery && !open) {\n if (horizontalSwipe) {\n swipeInstance.current.startX -= DRAG_STARTED_SIGNAL;\n } else {\n swipeInstance.current.startY -= DRAG_STARTED_SIGNAL;\n }\n }\n }\n }\n\n if (!swipeInstance.current.isSwiping) {\n return;\n }\n\n const maxTranslate = getMaxTranslate(horizontalSwipe, paperRef.current);\n let startLocation = horizontalSwipe ? swipeInstance.current.startX : swipeInstance.current.startY;\n\n if (open && !swipeInstance.current.paperHit) {\n startLocation = Math.min(startLocation, maxTranslate);\n }\n\n const translate = getTranslate(horizontalSwipe ? currentX : currentY, startLocation, open, maxTranslate);\n\n if (open) {\n if (!swipeInstance.current.paperHit) {\n const paperHit = horizontalSwipe ? currentX < maxTranslate : currentY < maxTranslate;\n\n if (paperHit) {\n swipeInstance.current.paperHit = true;\n swipeInstance.current.startX = currentX;\n swipeInstance.current.startY = currentY;\n } else {\n return;\n }\n } else if (translate === 0) {\n swipeInstance.current.startX = currentX;\n swipeInstance.current.startY = currentY;\n }\n }\n\n if (swipeInstance.current.lastTranslate === null) {\n swipeInstance.current.lastTranslate = translate;\n swipeInstance.current.lastTime = performance.now() + 1;\n }\n\n const velocity = (translate - swipeInstance.current.lastTranslate) / (performance.now() - swipeInstance.current.lastTime) * 1e3; // Low Pass filter.\n\n swipeInstance.current.velocity = swipeInstance.current.velocity * 0.4 + velocity * 0.6;\n swipeInstance.current.lastTranslate = translate;\n swipeInstance.current.lastTime = performance.now(); // We are swiping, let's prevent the scroll event on iOS.\n\n if (nativeEvent.cancelable) {\n nativeEvent.preventDefault();\n }\n\n setPosition(translate);\n });\n const handleBodyTouchStart = useEventCallback(nativeEvent => {\n // We are not supposed to handle this touch move.\n // Example of use case: ignore the event if there is a Slider.\n if (nativeEvent.defaultPrevented) {\n return;\n } // We can only have one node at the time claiming ownership for handling the swipe.\n\n\n if (nativeEvent.defaultMuiPrevented) {\n return;\n } // At least one element clogs the drawer interaction zone.\n\n\n if (open && (hideBackdrop || !backdropRef.current.contains(nativeEvent.target)) && !paperRef.current.contains(nativeEvent.target)) {\n return;\n }\n\n const anchorRtl = getAnchor(theme, anchor);\n const horizontalSwipe = isHorizontal(anchor);\n const currentX = calculateCurrentX(anchorRtl, nativeEvent.touches, ownerDocument(nativeEvent.currentTarget));\n const currentY = calculateCurrentY(anchorRtl, nativeEvent.touches, ownerWindow(nativeEvent.currentTarget));\n\n if (!open) {\n if (disableSwipeToOpen || nativeEvent.target !== swipeAreaRef.current) {\n return;\n }\n\n if (horizontalSwipe) {\n if (currentX > swipeAreaWidth) {\n return;\n }\n } else if (currentY > swipeAreaWidth) {\n return;\n }\n }\n\n nativeEvent.defaultMuiPrevented = true;\n claimedSwipeInstance = null;\n swipeInstance.current.startX = currentX;\n swipeInstance.current.startY = currentY;\n setMaybeSwiping(true);\n\n if (!open && paperRef.current) {\n // The ref may be null when a parent component updates while swiping.\n setPosition(getMaxTranslate(horizontalSwipe, paperRef.current) + (disableDiscovery ? 15 : -DRAG_STARTED_SIGNAL), {\n changeTransition: false\n });\n }\n\n swipeInstance.current.velocity = 0;\n swipeInstance.current.lastTime = null;\n swipeInstance.current.lastTranslate = null;\n swipeInstance.current.paperHit = false;\n touchDetected.current = true;\n });\n React.useEffect(() => {\n if (variant === 'temporary') {\n const doc = ownerDocument(paperRef.current);\n doc.addEventListener('touchstart', handleBodyTouchStart); // A blocking listener prevents Firefox's navbar to auto-hide on scroll.\n // It only needs to prevent scrolling on the drawer's content when open.\n // When closed, the overlay prevents scrolling.\n\n doc.addEventListener('touchmove', handleBodyTouchMove, {\n passive: !open\n });\n doc.addEventListener('touchend', handleBodyTouchEnd);\n return () => {\n doc.removeEventListener('touchstart', handleBodyTouchStart);\n doc.removeEventListener('touchmove', handleBodyTouchMove, {\n passive: !open\n });\n doc.removeEventListener('touchend', handleBodyTouchEnd);\n };\n }\n\n return undefined;\n }, [variant, open, handleBodyTouchStart, handleBodyTouchMove, handleBodyTouchEnd]);\n React.useEffect(() => () => {\n // We need to release the lock.\n if (claimedSwipeInstance === swipeInstance.current) {\n claimedSwipeInstance = null;\n }\n }, []);\n React.useEffect(() => {\n if (!open) {\n setMaybeSwiping(false);\n }\n }, [open]);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(Drawer, _extends({\n open: variant === 'temporary' && maybeSwiping ? true : open,\n variant: variant,\n ModalProps: _extends({\n BackdropProps: _extends({}, BackdropProps, {\n ref: backdropRef\n })\n }, ModalPropsProp),\n hideBackdrop: hideBackdrop,\n PaperProps: _extends({}, PaperProps, {\n style: _extends({\n pointerEvents: variant === 'temporary' && !open ? 'none' : ''\n }, PaperProps.style),\n ref: paperRef\n }),\n anchor: anchor,\n transitionDuration: calculatedDurationRef.current || transitionDuration,\n onClose: onClose,\n ref: ref\n }, other)), !disableSwipeToOpen && variant === 'temporary' && /*#__PURE__*/_jsx(NoSsr, {\n children: /*#__PURE__*/_jsx(SwipeArea, _extends({\n anchor: anchor,\n ref: swipeAreaRef,\n width: swipeAreaWidth\n }, SwipeAreaProps))\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? SwipeableDrawer.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 * @ignore\n */\n anchor: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Disable the backdrop transition.\n * This can improve the FPS on low-end devices.\n * @default false\n */\n disableBackdropTransition: PropTypes.bool,\n\n /**\n * If `true`, touching the screen near the edge of the drawer will not slide in the drawer a bit\n * to promote accidental discovery of the swipe gesture.\n * @default false\n */\n disableDiscovery: PropTypes.bool,\n\n /**\n * If `true`, swipe to open is disabled. This is useful in browsers where swiping triggers\n * navigation actions. Swipe to open is disabled on iOS browsers by default.\n * @default typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent)\n */\n disableSwipeToOpen: PropTypes.bool,\n\n /**\n * @ignore\n */\n hideBackdrop: PropTypes.bool,\n\n /**\n * Affects how far the drawer must be opened/closed to change its state.\n * Specified as percent (0-1) of the width of the drawer\n * @default 0.52\n */\n hysteresis: PropTypes.number,\n\n /**\n * Defines, from which (average) velocity on, the swipe is\n * defined as complete although hysteresis isn't reached.\n * Good threshold is between 250 - 1000 px/s\n * @default 450\n */\n minFlingVelocity: PropTypes.number,\n\n /**\n * @ignore\n */\n ModalProps: PropTypes\n /* @typescript-to-proptypes-ignore */\n .shape({\n BackdropProps: PropTypes.shape({\n component: elementTypeAcceptingRef\n })\n }),\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n */\n onClose: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the component requests to be opened.\n *\n * @param {object} event The event source of the callback.\n */\n onOpen: PropTypes.func.isRequired,\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * @ignore\n */\n PaperProps: PropTypes\n /* @typescript-to-proptypes-ignore */\n .shape({\n component: elementTypeAcceptingRef,\n style: PropTypes.object\n }),\n\n /**\n * The element is used to intercept the touch events on the edge.\n */\n SwipeAreaProps: PropTypes.object,\n\n /**\n * The width of the left most (or right most) area in `px` that\n * the drawer can be swiped open from.\n * @default 20\n */\n swipeAreaWidth: PropTypes.number,\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 * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * @ignore\n */\n variant: PropTypes.oneOf(['permanent', 'persistent', 'temporary'])\n} : void 0;\nexport default SwipeableDrawer;","import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport { Divider, IconButton, SwipeableDrawer, Toolbar, Typography, useTheme } from '@mui/material';\nimport * as React from 'react';\nimport ListItems from './ListItems';\n\n\nexport default React.memo(function DrawerMobile({ user, open, toggleDrawer, lastseenminutes }) {\n const theme = useTheme();\n\n return (\n \n \n Missing-Link\n \n \n \n \n \n \n \n );\n});","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","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}","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","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 _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}","var MILI = 'milliseconds'\n , SECONDS = 'seconds'\n , MINUTES = 'minutes'\n , HOURS = 'hours'\n , DAY = 'day'\n , WEEK = 'week'\n , MONTH = 'month'\n , YEAR = 'year'\n , DECADE = 'decade'\n , CENTURY = 'century';\n\nvar multiplierMilli = {\n 'milliseconds': 1,\n 'seconds': 1000,\n 'minutes': 60 * 1000,\n 'hours': 60 * 60 * 1000,\n 'day': 24 * 60 * 60 * 1000,\n 'week': 7 * 24 * 60 * 60 * 1000 \n}\n\nvar multiplierMonth = {\n 'month': 1,\n 'year': 12,\n 'decade': 10 * 12,\n 'century': 100 * 12\n}\n\nfunction daysOf(year) {\n return [31, daysInFeb(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n}\n\nfunction daysInFeb(year) {\n return (\n year % 4 === 0 \n && year % 100 !== 0\n ) || year % 400 === 0\n ? 29\n : 28\n}\n\nexport function add(d, num, unit) {\n d = new Date(d)\n\n switch (unit){\n case MILI:\n case SECONDS:\n case MINUTES:\n case HOURS:\n case DAY:\n case WEEK:\n return addMillis(d, num * multiplierMilli[unit])\n case MONTH:\n case YEAR:\n case DECADE:\n case CENTURY:\n return addMonths(d, num * multiplierMonth[unit])\n }\n\n throw new TypeError('Invalid units: \"' + unit + '\"')\n}\n\nfunction addMillis(d, num) {\n var nextDate = new Date(+(d) + num)\n\n return solveDST(d, nextDate)\n}\n\nfunction addMonths(d, num) {\n var year = d.getFullYear()\n , month = d.getMonth()\n , day = d.getDate()\n , totalMonths = year * 12 + month + num\n , nextYear = Math.trunc(totalMonths / 12)\n , nextMonth = totalMonths % 12\n , nextDay = Math.min(day, daysOf(nextYear)[nextMonth])\n\n var nextDate = new Date(d)\n nextDate.setFullYear(nextYear)\n\n // To avoid a bug when sets the Feb month\n // with a date > 28 or date > 29 (leap year)\n nextDate.setDate(1)\n\n nextDate.setMonth(nextMonth)\n nextDate.setDate(nextDay)\n\n return nextDate\n}\n\nfunction solveDST(currentDate, nextDate) {\n var currentOffset = currentDate.getTimezoneOffset()\n , nextOffset = nextDate.getTimezoneOffset()\n\n // if is DST, add the difference in minutes\n // else the difference is zero\n var diffMinutes = (nextOffset - currentOffset)\n\n return new Date(+(nextDate) + diffMinutes * multiplierMilli['minutes'])\n}\n\nexport function subtract(d, num, unit) {\n return add(d, -num, unit)\n}\n\nexport function startOf(d, unit, firstOfWeek) {\n d = new Date(d)\n\n switch (unit) {\n case CENTURY:\n case DECADE:\n case YEAR:\n d = month(d, 0);\n case MONTH:\n d = date(d, 1);\n case WEEK:\n case DAY:\n d = hours(d, 0);\n case HOURS:\n d = minutes(d, 0);\n case MINUTES:\n d = seconds(d, 0);\n case SECONDS:\n d = milliseconds(d, 0);\n }\n\n if (unit === DECADE)\n d = subtract(d, year(d) % 10, 'year')\n\n if (unit === CENTURY)\n d = subtract(d, year(d) % 100, 'year')\n\n if (unit === WEEK)\n d = weekday(d, 0, firstOfWeek);\n\n return d\n}\n\nexport function endOf(d, unit, firstOfWeek){\n d = new Date(d)\n d = startOf(d, unit, firstOfWeek)\n switch (unit) {\n case CENTURY:\n case DECADE:\n case YEAR:\n case MONTH:\n case WEEK:\n d = add(d, 1, unit)\n d = subtract(d, 1, DAY)\n d.setHours(23, 59, 59, 999)\n break;\n case DAY:\n d.setHours(23, 59, 59, 999)\n break;\n case HOURS:\n case MINUTES:\n case SECONDS:\n d = add(d, 1, unit)\n d = subtract(d, 1, MILI)\n }\n return d\n}\n\nexport var eq = createComparer(function(a, b){ return a === b })\nexport var neq = createComparer(function(a, b){ return a !== b })\nexport var gt = createComparer(function(a, b){ return a > b })\nexport var gte = createComparer(function(a, b){ return a >= b })\nexport var lt = createComparer(function(a, b){ return a < b })\nexport var lte = createComparer(function(a, b){ return a <= b })\n\nexport function min(){\n return new Date(Math.min.apply(Math, arguments))\n}\n\nexport function max(){\n return new Date(Math.max.apply(Math, arguments))\n}\n\nexport function inRange(day, min, max, unit){\n unit = unit || 'day'\n\n return (!min || gte(day, min, unit))\n && (!max || lte(day, max, unit))\n}\n\nexport var milliseconds = createAccessor('Milliseconds')\nexport var seconds = createAccessor('Seconds')\nexport var minutes = createAccessor('Minutes')\nexport var hours = createAccessor('Hours')\nexport var day = createAccessor('Day')\nexport var date = createAccessor('Date')\nexport var month = createAccessor('Month')\nexport var year = createAccessor('FullYear')\n\nexport function decade(d, val) {\n return val === undefined\n ? year(startOf(d, DECADE))\n : add(d, val + 10, YEAR);\n}\n\nexport function century(d, val) {\n return val === undefined\n ? year(startOf(d, CENTURY))\n : add(d, val + 100, YEAR);\n}\n\nexport function weekday(d, val, firstDay) {\n var w = (day(d) + 7 - (firstDay || 0) ) % 7;\n\n return val === undefined\n ? w\n : add(d, val - w, DAY);\n}\n\nexport function diff(date1, date2, unit, asFloat) {\n var dividend, divisor, result;\n\n switch (unit) {\n case MILI:\n case SECONDS:\n case MINUTES:\n case HOURS:\n case DAY:\n case WEEK:\n dividend = date2.getTime() - date1.getTime(); break;\n case MONTH:\n case YEAR:\n case DECADE:\n case CENTURY:\n dividend = (year(date2) - year(date1)) * 12 + month(date2) - month(date1); break;\n default:\n throw new TypeError('Invalid units: \"' + unit + '\"');\n }\n\n switch (unit) {\n case MILI:\n divisor = 1; break;\n case SECONDS:\n divisor = 1000; break;\n case MINUTES:\n divisor = 1000 * 60; break;\n case HOURS:\n divisor = 1000 * 60 * 60; break;\n case DAY:\n divisor = 1000 * 60 * 60 * 24; break;\n case WEEK:\n divisor = 1000 * 60 * 60 * 24 * 7; break;\n case MONTH:\n divisor = 1; break;\n case YEAR:\n divisor = 12; break;\n case DECADE:\n divisor = 120; break;\n case CENTURY:\n divisor = 1200; break;\n default:\n throw new TypeError('Invalid units: \"' + unit + '\"');\n }\n\n result = dividend / divisor;\n\n return asFloat ? result : Math.round(result);\n}\n\nfunction createAccessor(method){\n var hourLength = (function(method) { \n switch(method) {\n case 'Milliseconds':\n return 3600000;\n case 'Seconds':\n return 3600;\n case 'Minutes':\n return 60;\n case 'Hours':\n return 1;\n default:\n return null;\n }\n })(method);\n \n return function(d, val){\n if (val === undefined)\n return d['get' + method]()\n\n var dateOut = new Date(d)\n dateOut['set' + method](val)\n \n if(hourLength && dateOut['get'+method]() != val && (method === 'Hours' || val >=hourLength && (dateOut.getHours()-d.getHours() length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\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}","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n if (context.contains) return context.contains(node);\n if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","import isDocument from './isDocument';\nexport default function isWindow(node) {\n if ('window' in node && node.window === node) return node;\n if (isDocument(node)) return node.defaultView || false;\n return false;\n}","export default function isDocument(element) {\n return 'nodeType' in element && element.nodeType === document.DOCUMENT_NODE;\n}","import isWindow from './isWindow';\nexport default function getscrollAccessor(offset) {\n var prop = offset === 'pageXOffset' ? 'scrollLeft' : 'scrollTop';\n\n function scrollAccessor(node, val) {\n var win = isWindow(node);\n\n if (val === undefined) {\n return win ? win[offset] : node[prop];\n }\n\n if (win) {\n win.scrollTo(win[offset], val);\n } else {\n node[prop] = val;\n }\n }\n\n return scrollAccessor;\n}","import getScrollAccessor from './getScrollAccessor';\n/**\n * Gets or sets the scroll left position of a given element.\n * \n * @param node the element\n * @param val the position to set\n */\n\nexport default getScrollAccessor('pageXOffset');","import getScrollAccessor from './getScrollAccessor';\n/**\n * Gets or sets the scroll top position of a given element.\n * \n * @param node the element\n * @param val the position to set\n */\n\nexport default getScrollAccessor('pageYOffset');","import contains from './contains';\nimport ownerDocument from './ownerDocument';\nimport scrollLeft from './scrollLeft';\nimport scrollTop from './scrollTop';\n/**\n * Returns the offset of a given element, including top and left positions, width and height.\n * \n * @param node the element\n */\n\nexport default function offset(node) {\n var doc = ownerDocument(node);\n var box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n var docElem = doc && doc.documentElement; // Make sure it's not a disconnected DOM node\n\n if (!docElem || !contains(docElem, node)) return box;\n if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();\n box = {\n top: box.top + scrollTop(docElem) - (docElem.clientTop || 0),\n left: box.left + scrollLeft(docElem) - (docElem.clientLeft || 0),\n width: box.width,\n height: box.height\n };\n return box;\n}","import css from './css';\nimport ownerDocument from './ownerDocument';\n\nvar isHTMLElement = function isHTMLElement(e) {\n return !!e && 'offsetParent' in e;\n};\n\nexport default function offsetParent(node) {\n var doc = ownerDocument(node);\n var parent = node && node.offsetParent;\n\n while (isHTMLElement(parent) && parent.nodeName !== 'HTML' && css(parent, 'position') === 'static') {\n parent = parent.offsetParent;\n }\n\n return parent || doc.documentElement;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport css from './css';\nimport getOffset from './offset';\nimport getOffsetParent from './offsetParent';\nimport scrollLeft from './scrollLeft';\nimport scrollTop from './scrollTop';\n\nvar nodeName = function nodeName(node) {\n return node.nodeName && node.nodeName.toLowerCase();\n};\n/**\n * Returns the relative position of a given element.\n * \n * @param node the element\n * @param offsetParent the offset parent\n */\n\n\nexport default function position(node, offsetParent) {\n var parentOffset = {\n top: 0,\n left: 0\n };\n var offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n // because it is its only offset parent\n\n if (css(node, 'position') === 'fixed') {\n offset = node.getBoundingClientRect();\n } else {\n var parent = offsetParent || getOffsetParent(node);\n offset = getOffset(node);\n if (nodeName(parent) !== 'html') parentOffset = getOffset(parent);\n var borderTop = String(css(parent, 'borderTopWidth') || 0);\n parentOffset.top += parseInt(borderTop, 10) - scrollTop(parent) || 0;\n var borderLeft = String(css(parent, 'borderLeftWidth') || 0);\n parentOffset.left += parseInt(borderLeft, 10) - scrollLeft(parent) || 0;\n }\n\n var marginTop = String(css(node, 'marginTop') || 0);\n var marginLeft = String(css(node, 'marginLeft') || 0); // Subtract parent offsets and node margins\n\n return _extends({}, offset, {\n top: offset.top - parentOffset.top - (parseInt(marginTop, 10) || 0),\n left: offset.left - parentOffset.left - (parseInt(marginLeft, 10) || 0)\n });\n}","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","import canUseDOM from './canUseDOM';\n\n/* https://github.com/component/raf */\nvar prev = new Date().getTime();\n\nfunction fallback(fn) {\n var curr = new Date().getTime();\n var ms = Math.max(0, 16 - (curr - prev));\n var handle = setTimeout(fn, ms);\n prev = curr;\n return handle;\n}\n\nvar vendors = ['', 'webkit', 'moz', 'o', 'ms'];\nvar cancelMethod = 'clearTimeout';\nvar rafImpl = fallback; // eslint-disable-next-line import/no-mutable-exports\n\nvar getKey = function getKey(vendor, k) {\n return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + \"AnimationFrame\";\n};\n\nif (canUseDOM) {\n vendors.some(function (vendor) {\n var rafMethod = getKey(vendor, 'request');\n\n if (rafMethod in window) {\n cancelMethod = getKey(vendor, 'cancel'); // @ts-ignore\n\n rafImpl = function rafImpl(cb) {\n return window[rafMethod](cb);\n };\n }\n\n return !!rafImpl;\n });\n}\n\nexport var cancel = function cancel(id) {\n // @ts-ignore\n if (typeof window[cancelMethod] === 'function') window[cancelMethod](id);\n};\nexport var request = rafImpl;","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import { useState } from 'react';\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return
\n * ```\n *\n * @category refs\n */\n\nexport default function useCallbackRef() {\n return useState(null);\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return \n )}\n {year}\n {viewState === \"month\" && (\n \n )}\n \n );\n };\n \n const day = () => {\n let view = viewState;\n const date = moment(props.date);\n let day;\n if (view === \"day\") {\n day = date.format(\"ddd\") + \" \" + date.format(\"Do\");\n }\n return {day};\n }; */\n\n return (\n <>\n
\n \n \n
\n {month()}\n\n
\n \n \n \n \n \n \n \n
\n\n\n \n );\n };\n\n return <>{getCustomToolbar()};\n}\n\nexport default CalendarToolbar;","\"use strict\";function _interopDefault(e){return e&&\"object\"==typeof e&&\"default\"in e?e[\"default\"]:e}var React=_interopDefault(require(\"react\")),reactDom=require(\"react-dom\");function _defaults2(e,t){for(var n=Object.getOwnPropertyNames(t),a=0;aa.length&&isPermanentCharacter(e,t.length-1);)t=t.slice(0,t.length-1);return t.length}for(var i=a.length,r=t.length;r>=a.length;r--){var o=t[r];if(!isPermanentCharacter(e,r)&&isAllowedCharacter(e,r,o)){i=r+1;break}}return i}function isFilled(e,t){return getFilledLength(e,t)===e.mask.length}function formatValue(e,t){var n=e.maskChar,a=e.mask,i=e.prefix;if(!n){for((t=insertString(e,\"\",t,0)).lengtho.length&&(o+=l.slice(o.length,s)),t.every(function(e){for(;i=e,isPermanentCharacter(r,a=s)&&i!==l[a];){if(s>=o.length&&(o+=l[s]),t=e,n=s,u&&isPermanentCharacter(r,n)&&t===u)return!0;if(++s>=l.length)return!1}var t,n,a,i;return!isAllowedCharacter(r,s,e)&&e!==u||(s=r.length)return!1;var t,n;return(isAllowedCharacter(a,i,e)||e===o)&&i++,ii.start?h=(c=getInsertStringLength(e,a,u=l.slice(i.start,n.end),f))?i.length:0:l.length=r.length?f=r.length:f=o.length&&f {\n setValue(e.target.value);\n clearTimeout(timeoutref.current);\n timeoutref.current = setTimeout(() => {\n props.onChange(e.target.value);\n }, 200);\n };\n return (\n \n {() =>\n setValue(\"\")}\n >\n )\n }}\n />}\n \n );\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCardUtilityClass(slot) {\n return generateUtilityClass('MuiCard', slot);\n}\nconst cardClasses = generateUtilityClasses('MuiCard', ['root']);\nexport default cardClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"raised\"];\nimport * as React from 'react';\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 Paper from '../Paper';\nimport { getCardUtilityClass } from './cardClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardUtilityClass, classes);\n};\n\nconst CardRoot = styled(Paper, {\n name: 'MuiCard',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(() => {\n return {\n overflow: 'hidden'\n };\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCard'\n });\n\n const {\n className,\n raised = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n raised\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardRoot, _extends({\n className: clsx(classes.root, className),\n elevation: raised ? 8 : undefined,\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.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 * If `true`, the card will use raised styling.\n * @default false\n */\n raised: chainPropTypes(PropTypes.bool, props => {\n if (props.raised && props.variant === 'outlined') {\n return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n }\n\n return null;\n }),\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} : void 0;\nexport default Card;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\n/* eslint-disable no-constant-condition */\nimport * as React from 'react';\nimport { unstable_setRef as setRef, unstable_useEventCallback as useEventCallback, unstable_useControlled as useControlled, unstable_useId as useId } from '@mui/utils'; // https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\n// Give up on IE11 support for this feature\n\nfunction stripDiacritics(string) {\n return typeof string.normalize !== 'undefined' ? string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : string;\n}\n\nexport function createFilterOptions(config = {}) {\n const {\n ignoreAccents = true,\n ignoreCase = true,\n limit,\n matchFrom = 'any',\n stringify,\n trim = false\n } = config;\n return (options, {\n inputValue,\n getOptionLabel\n }) => {\n let input = trim ? inputValue.trim() : inputValue;\n\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = stripDiacritics(input);\n }\n\n const filteredOptions = options.filter(option => {\n let candidate = (stringify || getOptionLabel)(option);\n\n if (ignoreCase) {\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.indexOf(input) === 0 : candidate.indexOf(input) > -1;\n });\n return typeof limit === 'number' ? filteredOptions.slice(0, limit) : filteredOptions;\n };\n} // To replace with .findIndex() once we stop IE11 support.\n\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nconst defaultFilterOptions = createFilterOptions(); // Number of options to jump in list box when pageup and pagedown keys are used.\n\nconst pageSize = 5;\nexport default function useAutocomplete(props) {\n const {\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n disabled: disabledProp,\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n componentName = 'useAutocomplete',\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n filterSelectedOptions = false,\n freeSolo = false,\n getOptionDisabled,\n getOptionLabel: getOptionLabelProp = option => {\n var _option$label;\n\n return (_option$label = option.label) != null ? _option$label : option;\n },\n isOptionEqualToValue = (option, value) => option === value,\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n multiple = false,\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open: openProp,\n openOnFocus = false,\n options,\n readOnly = false,\n selectOnFocus = !props.freeSolo,\n value: valueProp\n } = props;\n const id = useId(idProp);\n let getOptionLabel = getOptionLabelProp;\n\n getOptionLabel = option => {\n const optionLabel = getOptionLabelProp(option);\n\n if (typeof optionLabel !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n const erroneousReturn = optionLabel === undefined ? 'undefined' : `${typeof optionLabel} (${optionLabel})`;\n console.error(`MUI: The \\`getOptionLabel\\` method of ${componentName} returned ${erroneousReturn} instead of a string for ${JSON.stringify(option)}.`);\n }\n\n return String(optionLabel);\n }\n\n return optionLabel;\n };\n\n const ignoreFocus = React.useRef(false);\n const firstFocus = React.useRef(true);\n const inputRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [focusedTag, setFocusedTag] = React.useState(-1);\n const defaultHighlighted = autoHighlight ? 0 : -1;\n const highlightedIndexRef = React.useRef(defaultHighlighted);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: componentName\n });\n const [inputValue, setInputValueState] = useControlled({\n controlled: inputValueProp,\n default: '',\n name: componentName,\n state: 'inputValue'\n });\n const [focused, setFocused] = React.useState(false);\n const resetInputValue = React.useCallback((event, newValue) => {\n // retain current `inputValue` if new option isn't selected and `clearOnBlur` is false\n // When `multiple` is enabled, `newValue` is an array of all selected items including the newly selected item\n const isOptionSelected = multiple ? value.length < newValue.length : newValue !== null;\n\n if (!isOptionSelected && !clearOnBlur) {\n return;\n }\n\n let newInputValue;\n\n if (multiple) {\n newInputValue = '';\n } else if (newValue == null) {\n newInputValue = '';\n } else {\n const optionLabel = getOptionLabel(newValue);\n newInputValue = typeof optionLabel === 'string' ? optionLabel : '';\n }\n\n if (inputValue === newInputValue) {\n return;\n }\n\n setInputValueState(newInputValue);\n\n if (onInputChange) {\n onInputChange(event, newInputValue, 'reset');\n }\n }, [getOptionLabel, inputValue, multiple, onInputChange, setInputValueState, clearOnBlur, value]);\n const prevValue = React.useRef();\n React.useEffect(() => {\n const valueChange = value !== prevValue.current;\n prevValue.current = value;\n\n if (focused && !valueChange) {\n return;\n } // Only reset the input's value when freeSolo if the component's value changes.\n\n\n if (freeSolo && !valueChange) {\n return;\n }\n\n resetInputValue(null, value);\n }, [value, resetInputValue, focused, prevValue, freeSolo]);\n const [open, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: componentName,\n state: 'open'\n });\n const [inputPristine, setInputPristine] = React.useState(true);\n const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);\n const popupOpen = open && !readOnly;\n const filteredOptions = popupOpen ? filterOptions(options.filter(option => {\n if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {\n return false;\n }\n\n return true;\n }), // we use the empty string to manipulate `filterOptions` to not filter any options\n // i.e. the filter predicate always returns true\n {\n inputValue: inputValueIsSelectedValue && inputPristine ? '' : inputValue,\n getOptionLabel\n }) : [];\n const listboxAvailable = open && filteredOptions.length > 0 && !readOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value !== null && !freeSolo && options.length > 0) {\n const missingValue = (multiple ? value : [value]).filter(value2 => !options.some(option => isOptionEqualToValue(option, value2)));\n\n if (missingValue.length > 0) {\n console.warn([`MUI: The value provided to ${componentName} is invalid.`, `None of the options match with \\`${missingValue.length > 1 ? JSON.stringify(missingValue) : JSON.stringify(missingValue[0])}\\`.`, 'You can use the `isOptionEqualToValue` prop to customize the equality test.'].join('\\n'));\n }\n }\n }\n\n const focusTag = useEventCallback(tagToFocus => {\n if (tagToFocus === -1) {\n inputRef.current.focus();\n } else {\n anchorEl.querySelector(`[data-tag-index=\"${tagToFocus}\"]`).focus();\n }\n }); // Ensure the focusedTag is never inconsistent\n\n React.useEffect(() => {\n if (multiple && focusedTag > value.length - 1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n }, [value, multiple, focusedTag, focusTag]);\n\n function validOptionIndex(index, direction) {\n if (!listboxRef.current || index === -1) {\n return -1;\n }\n\n let nextFocus = index;\n\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === filteredOptions.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n\n const option = listboxRef.current.querySelector(`[data-option-index=\"${nextFocus}\"]`); // Same logic as MenuList.js\n\n const nextFocusDisabled = disabledItemsFocusable ? false : !option || option.disabled || option.getAttribute('aria-disabled') === 'true';\n\n if (option && !option.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n\n const setHighlightedIndex = useEventCallback(({\n event,\n index,\n reason = 'auto'\n }) => {\n highlightedIndexRef.current = index; // does the index exist?\n\n if (index === -1) {\n inputRef.current.removeAttribute('aria-activedescendant');\n } else {\n inputRef.current.setAttribute('aria-activedescendant', `${id}-option-${index}`);\n }\n\n if (onHighlightChange) {\n onHighlightChange(event, index === -1 ? null : filteredOptions[index], reason);\n }\n\n if (!listboxRef.current) {\n return;\n }\n\n const prev = listboxRef.current.querySelector('[role=\"option\"].Mui-focused');\n\n if (prev) {\n prev.classList.remove('Mui-focused');\n prev.classList.remove('Mui-focusVisible');\n }\n\n const listboxNode = listboxRef.current.parentElement.querySelector('[role=\"listbox\"]'); // \"No results\"\n\n if (!listboxNode) {\n return;\n }\n\n if (index === -1) {\n listboxNode.scrollTop = 0;\n return;\n }\n\n const option = listboxRef.current.querySelector(`[data-option-index=\"${index}\"]`);\n\n if (!option) {\n return;\n }\n\n option.classList.add('Mui-focused');\n\n if (reason === 'keyboard') {\n option.classList.add('Mui-focusVisible');\n } // Scroll active descendant into view.\n // Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js\n //\n // Consider this API instead once it has a better browser support:\n // .scrollIntoView({ scrollMode: 'if-needed', block: 'nearest' });\n\n\n if (listboxNode.scrollHeight > listboxNode.clientHeight && reason !== 'mouse') {\n const element = option;\n const scrollBottom = listboxNode.clientHeight + listboxNode.scrollTop;\n const elementBottom = element.offsetTop + element.offsetHeight;\n\n if (elementBottom > scrollBottom) {\n listboxNode.scrollTop = elementBottom - listboxNode.clientHeight;\n } else if (element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0) < listboxNode.scrollTop) {\n listboxNode.scrollTop = element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0);\n }\n }\n });\n const changeHighlightedIndex = useEventCallback(({\n event,\n diff,\n direction = 'next',\n reason = 'auto'\n }) => {\n if (!popupOpen) {\n return;\n }\n\n const getNextIndex = () => {\n const maxIndex = filteredOptions.length - 1;\n\n if (diff === 'reset') {\n return defaultHighlighted;\n }\n\n if (diff === 'start') {\n return 0;\n }\n\n if (diff === 'end') {\n return maxIndex;\n }\n\n const newIndex = highlightedIndexRef.current + diff;\n\n if (newIndex < 0) {\n if (newIndex === -1 && includeInputInList) {\n return -1;\n }\n\n if (disableListWrap && highlightedIndexRef.current !== -1 || Math.abs(diff) > 1) {\n return 0;\n }\n\n return maxIndex;\n }\n\n if (newIndex > maxIndex) {\n if (newIndex === maxIndex + 1 && includeInputInList) {\n return -1;\n }\n\n if (disableListWrap || Math.abs(diff) > 1) {\n return maxIndex;\n }\n\n return 0;\n }\n\n return newIndex;\n };\n\n const nextIndex = validOptionIndex(getNextIndex(), direction);\n setHighlightedIndex({\n index: nextIndex,\n reason,\n event\n }); // Sync the content of the input with the highlighted option.\n\n if (autoComplete && diff !== 'reset') {\n if (nextIndex === -1) {\n inputRef.current.value = inputValue;\n } else {\n const option = getOptionLabel(filteredOptions[nextIndex]);\n inputRef.current.value = option; // The portion of the selected suggestion that has not been typed by the user,\n // a completion string, appears inline after the input cursor in the textbox.\n\n const index = option.toLowerCase().indexOf(inputValue.toLowerCase());\n\n if (index === 0 && inputValue.length > 0) {\n inputRef.current.setSelectionRange(inputValue.length, option.length);\n }\n }\n }\n });\n const syncHighlightedIndex = React.useCallback(() => {\n if (!popupOpen) {\n return;\n }\n\n const valueItem = multiple ? value[0] : value; // The popup is empty, reset\n\n if (filteredOptions.length === 0 || valueItem == null) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n return;\n }\n\n if (!listboxRef.current) {\n return;\n } // Synchronize the value with the highlighted index\n\n\n if (valueItem != null) {\n const currentOption = filteredOptions[highlightedIndexRef.current]; // Keep the current highlighted index if possible\n\n if (multiple && currentOption && findIndex(value, val => isOptionEqualToValue(currentOption, val)) !== -1) {\n return;\n }\n\n const itemIndex = findIndex(filteredOptions, optionItem => isOptionEqualToValue(optionItem, valueItem));\n\n if (itemIndex === -1) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n } else {\n setHighlightedIndex({\n index: itemIndex\n });\n }\n\n return;\n } // Prevent the highlighted index to leak outside the boundaries.\n\n\n if (highlightedIndexRef.current >= filteredOptions.length - 1) {\n setHighlightedIndex({\n index: filteredOptions.length - 1\n });\n return;\n } // Restore the focus to the previous index.\n\n\n setHighlightedIndex({\n index: highlightedIndexRef.current\n }); // Ignore filteredOptions (and options, isOptionEqualToValue, getOptionLabel) not to break the scroll position\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [// Only sync the highlighted index when the option switch between empty and not\n filteredOptions.length, // Don't sync the highlighted index with the value when multiple\n // eslint-disable-next-line react-hooks/exhaustive-deps\n multiple ? false : value, filterSelectedOptions, changeHighlightedIndex, setHighlightedIndex, popupOpen, inputValue, multiple]);\n const handleListboxRef = useEventCallback(node => {\n setRef(listboxRef, node);\n\n if (!node) {\n return;\n }\n\n syncHighlightedIndex();\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputRef.current || inputRef.current.nodeName !== 'INPUT') {\n if (inputRef.current && inputRef.current.nodeName === 'TEXTAREA') {\n console.warn([`A textarea element was provided to ${componentName} where input was expected.`, `This is not a supported scenario but it may work under certain conditions.`, `A textarea keyboard navigation may conflict with Autocomplete controls (e.g. enter and arrow keys).`, `Make sure to test keyboard navigation and add custom event handlers if necessary.`].join('\\n'));\n } else {\n console.error([`MUI: Unable to find the input element. It was resolved to ${inputRef.current} while an HTMLInputElement was expected.`, `Instead, ${componentName} expects an input element.`, '', componentName === 'useAutocomplete' ? 'Make sure you have binded getInputProps correctly and that the normal ref/effect resolutions order is guaranteed.' : 'Make sure you have customized the input component correctly.'].join('\\n'));\n }\n }\n }, [componentName]);\n }\n\n React.useEffect(() => {\n syncHighlightedIndex();\n }, [syncHighlightedIndex]);\n\n const handleOpen = event => {\n if (open) {\n return;\n }\n\n setOpenState(true);\n setInputPristine(true);\n\n if (onOpen) {\n onOpen(event);\n }\n };\n\n const handleClose = (event, reason) => {\n if (!open) {\n return;\n }\n\n setOpenState(false);\n\n if (onClose) {\n onClose(event, reason);\n }\n };\n\n const handleValue = (event, newValue, reason, details) => {\n if (Array.isArray(value)) {\n if (value.length === newValue.length && value.every((val, i) => val === newValue[i])) {\n return;\n }\n } else if (value === newValue) {\n return;\n }\n\n if (onChange) {\n onChange(event, newValue, reason, details);\n }\n\n setValueState(newValue);\n };\n\n const isTouch = React.useRef(false);\n\n const selectNewValue = (event, option, reasonProp = 'selectOption', origin = 'options') => {\n let reason = reasonProp;\n let newValue = option;\n\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n\n if (process.env.NODE_ENV !== 'production') {\n const matches = newValue.filter(val => isOptionEqualToValue(option, val));\n\n if (matches.length > 1) {\n console.error([`MUI: The \\`isOptionEqualToValue\\` method of ${componentName} do not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${matches.length} matches.`].join('\\n'));\n }\n }\n\n const itemIndex = findIndex(newValue, valueItem => isOptionEqualToValue(option, valueItem));\n\n if (itemIndex === -1) {\n newValue.push(option);\n } else if (origin !== 'freeSolo') {\n newValue.splice(itemIndex, 1);\n reason = 'removeOption';\n }\n }\n\n resetInputValue(event, newValue);\n handleValue(event, newValue, reason, {\n option\n });\n\n if (!disableCloseOnSelect && !event.ctrlKey && !event.metaKey) {\n handleClose(event, reason);\n }\n\n if (blurOnSelect === true || blurOnSelect === 'touch' && isTouch.current || blurOnSelect === 'mouse' && !isTouch.current) {\n inputRef.current.blur();\n }\n };\n\n function validTagIndex(index, direction) {\n if (index === -1) {\n return -1;\n }\n\n let nextFocus = index;\n\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === value.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n\n const option = anchorEl.querySelector(`[data-tag-index=\"${nextFocus}\"]`); // Same logic as MenuList.js\n\n if (!option || !option.hasAttribute('tabindex') || option.disabled || option.getAttribute('aria-disabled') === 'true') {\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n\n const handleFocusTag = (event, direction) => {\n if (!multiple) {\n return;\n }\n\n handleClose(event, 'toggleInput');\n let nextTag = focusedTag;\n\n if (focusedTag === -1) {\n if (inputValue === '' && direction === 'previous') {\n nextTag = value.length - 1;\n }\n } else {\n nextTag += direction === 'next' ? 1 : -1;\n\n if (nextTag < 0) {\n nextTag = 0;\n }\n\n if (nextTag === value.length) {\n nextTag = -1;\n }\n }\n\n nextTag = validTagIndex(nextTag, direction);\n setFocusedTag(nextTag);\n focusTag(nextTag);\n };\n\n const handleClear = event => {\n ignoreFocus.current = true;\n setInputValueState('');\n\n if (onInputChange) {\n onInputChange(event, '', 'clear');\n }\n\n handleValue(event, multiple ? [] : null, 'clear');\n };\n\n const handleKeyDown = other => event => {\n if (other.onKeyDown) {\n other.onKeyDown(event);\n }\n\n if (event.defaultMuiPrevented) {\n return;\n }\n\n if (focusedTag !== -1 && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) === -1) {\n setFocusedTag(-1);\n focusTag(-1);\n } // Wait until IME is settled.\n\n\n if (event.which !== 229) {\n switch (event.key) {\n case 'Home':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'start',\n direction: 'next',\n reason: 'keyboard',\n event\n });\n }\n\n break;\n\n case 'End':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'end',\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n }\n\n break;\n\n case 'PageUp':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: -pageSize,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'PageDown':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: pageSize,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'ArrowDown':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: 1,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'ArrowUp':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: -1,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'ArrowLeft':\n handleFocusTag(event, 'previous');\n break;\n\n case 'ArrowRight':\n handleFocusTag(event, 'next');\n break;\n\n case 'Enter':\n if (highlightedIndexRef.current !== -1 && popupOpen) {\n const option = filteredOptions[highlightedIndexRef.current];\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false; // Avoid early form validation, let the end-users continue filling the form.\n\n event.preventDefault();\n\n if (disabled) {\n return;\n }\n\n selectNewValue(event, option, 'selectOption'); // Move the selection to the end.\n\n if (autoComplete) {\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\n }\n } else if (freeSolo && inputValue !== '' && inputValueIsSelectedValue === false) {\n if (multiple) {\n // Allow people to add new values before they submit the form.\n event.preventDefault();\n }\n\n selectNewValue(event, inputValue, 'createOption', 'freeSolo');\n }\n\n break;\n\n case 'Escape':\n if (popupOpen) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault(); // Avoid the Modal to handle the event.\n\n event.stopPropagation();\n handleClose(event, 'escape');\n } else if (clearOnEscape && (inputValue !== '' || multiple && value.length > 0)) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault(); // Avoid the Modal to handle the event.\n\n event.stopPropagation();\n handleClear(event);\n }\n\n break;\n\n case 'Backspace':\n if (multiple && !readOnly && inputValue === '' && value.length > 0) {\n const index = focusedTag === -1 ? value.length - 1 : focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n\n break;\n\n default:\n }\n }\n };\n\n const handleFocus = event => {\n setFocused(true);\n\n if (openOnFocus && !ignoreFocus.current) {\n handleOpen(event);\n }\n };\n\n const handleBlur = event => {\n // Ignore the event when using the scrollbar with IE11\n if (listboxRef.current !== null && listboxRef.current.parentElement.contains(document.activeElement)) {\n inputRef.current.focus();\n return;\n }\n\n setFocused(false);\n firstFocus.current = true;\n ignoreFocus.current = false;\n\n if (autoSelect && highlightedIndexRef.current !== -1 && popupOpen) {\n selectNewValue(event, filteredOptions[highlightedIndexRef.current], 'blur');\n } else if (autoSelect && freeSolo && inputValue !== '') {\n selectNewValue(event, inputValue, 'blur', 'freeSolo');\n } else if (clearOnBlur) {\n resetInputValue(event, value);\n }\n\n handleClose(event, 'blur');\n };\n\n const handleInputChange = event => {\n const newValue = event.target.value;\n\n if (inputValue !== newValue) {\n setInputValueState(newValue);\n setInputPristine(false);\n\n if (onInputChange) {\n onInputChange(event, newValue, 'input');\n }\n }\n\n if (newValue === '') {\n if (!disableClearable && !multiple) {\n handleValue(event, null, 'clear');\n }\n } else {\n handleOpen(event);\n }\n };\n\n const handleOptionMouseOver = event => {\n setHighlightedIndex({\n event,\n index: Number(event.currentTarget.getAttribute('data-option-index')),\n reason: 'mouse'\n });\n };\n\n const handleOptionTouchStart = () => {\n isTouch.current = true;\n };\n\n const handleOptionClick = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n selectNewValue(event, filteredOptions[index], 'selectOption');\n isTouch.current = false;\n };\n\n const handleTagDelete = index => event => {\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n };\n\n const handlePopupIndicator = event => {\n if (open) {\n handleClose(event, 'toggleInput');\n } else {\n handleOpen(event);\n }\n }; // Prevent input blur when interacting with the combobox\n\n\n const handleMouseDown = event => {\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n }; // Focus the input when interacting with the combobox\n\n\n const handleClick = () => {\n inputRef.current.focus();\n\n if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {\n inputRef.current.select();\n }\n\n firstFocus.current = false;\n };\n\n const handleInputMouseDown = event => {\n if (inputValue === '' || !open) {\n handlePopupIndicator(event);\n }\n };\n\n let dirty = freeSolo && inputValue.length > 0;\n dirty = dirty || (multiple ? value.length > 0 : value !== null);\n let groupedOptions = filteredOptions;\n\n if (groupBy) {\n // used to keep track of key and indexes in the result array\n const indexBy = new Map();\n let warn = false;\n groupedOptions = filteredOptions.reduce((acc, option, index) => {\n const group = groupBy(option);\n\n if (acc.length > 0 && acc[acc.length - 1].group === group) {\n acc[acc.length - 1].options.push(option);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (indexBy.get(group) && !warn) {\n console.warn(`MUI: The options provided combined with the \\`groupBy\\` method of ${componentName} returns duplicated headers.`, 'You can solve the issue by sorting the options with the output of `groupBy`.');\n warn = true;\n }\n\n indexBy.set(group, true);\n }\n\n acc.push({\n key: index,\n index,\n group,\n options: [option]\n });\n }\n\n return acc;\n }, []);\n }\n\n if (disabledProp && focused) {\n handleBlur();\n }\n\n return {\n getRootProps: (other = {}) => _extends({\n 'aria-owns': listboxAvailable ? `${id}-listbox` : null\n }, other, {\n onKeyDown: handleKeyDown(other),\n onMouseDown: handleMouseDown,\n onClick: handleClick\n }),\n getInputLabelProps: () => ({\n id: `${id}-label`,\n htmlFor: id\n }),\n getInputProps: () => ({\n id,\n value: inputValue,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleInputChange,\n onMouseDown: handleInputMouseDown,\n // if open then this is handled imperativeley so don't let react override\n // only have an opinion about this when closed\n 'aria-activedescendant': popupOpen ? '' : null,\n 'aria-autocomplete': autoComplete ? 'both' : 'list',\n 'aria-controls': listboxAvailable ? `${id}-listbox` : undefined,\n 'aria-expanded': listboxAvailable,\n // Disable browser's suggestion that might overlap with the popup.\n // Handle autocomplete but not autofill.\n autoComplete: 'off',\n ref: inputRef,\n autoCapitalize: 'none',\n spellCheck: 'false',\n role: 'combobox'\n }),\n getClearProps: () => ({\n tabIndex: -1,\n onClick: handleClear\n }),\n getPopupIndicatorProps: () => ({\n tabIndex: -1,\n onClick: handlePopupIndicator\n }),\n getTagProps: ({\n index\n }) => _extends({\n key: index,\n 'data-tag-index': index,\n tabIndex: -1\n }, !readOnly && {\n onDelete: handleTagDelete(index)\n }),\n getListboxProps: () => ({\n role: 'listbox',\n id: `${id}-listbox`,\n 'aria-labelledby': `${id}-label`,\n ref: handleListboxRef,\n onMouseDown: event => {\n // Prevent blur\n event.preventDefault();\n }\n }),\n getOptionProps: ({\n index,\n option\n }) => {\n const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n return {\n key: getOptionLabel(option),\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n onMouseOver: handleOptionMouseOver,\n onClick: handleOptionClick,\n onTouchStart: handleOptionTouchStart,\n 'data-option-index': index,\n 'aria-disabled': disabled,\n 'aria-selected': selected\n };\n },\n id,\n inputValue,\n value,\n dirty,\n popupOpen,\n focused: focused || focusedTag !== -1,\n anchorEl,\n setAnchorEl,\n focusedTag,\n groupedOptions\n };\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListSubheaderUtilityClass(slot) {\n return generateUtilityClass('MuiListSubheader', slot);\n}\nconst listSubheaderClasses = generateUtilityClasses('MuiListSubheader', ['root', 'colorPrimary', 'colorInherit', 'gutters', 'inset', 'sticky']);\nexport default listSubheaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"disableGutters\", \"disableSticky\", \"inset\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport { getListSubheaderUtilityClass } from './listSubheaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disableGutters,\n inset,\n disableSticky\n } = ownerState;\n const slots = {\n root: ['root', color !== 'default' && `color${capitalize(color)}`, !disableGutters && 'gutters', inset && 'inset', !disableSticky && 'sticky']\n };\n return composeClasses(slots, getListSubheaderUtilityClass, classes);\n};\n\nconst ListSubheaderRoot = styled('li', {\n name: 'MuiListSubheader',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], !ownerState.disableGutters && styles.gutters, ownerState.inset && styles.inset, !ownerState.disableSticky && styles.sticky];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n boxSizing: 'border-box',\n lineHeight: '48px',\n listStyle: 'none',\n color: theme.palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(14)\n}, ownerState.color === 'primary' && {\n color: theme.palette.primary.main\n}, ownerState.color === 'inherit' && {\n color: 'inherit'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.inset && {\n paddingLeft: 72\n}, !ownerState.disableSticky && {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n backgroundColor: theme.palette.background.paper\n}));\nconst ListSubheader = /*#__PURE__*/React.forwardRef(function ListSubheader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListSubheader'\n });\n\n const {\n className,\n color = 'default',\n component = 'li',\n disableGutters = false,\n disableSticky = false,\n inset = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n component,\n disableGutters,\n disableSticky,\n inset\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListSubheaderRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListSubheader.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 color of the component. It supports those theme colors that make sense for this component.\n * @default 'default'\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary']),\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 * If `true`, the List Subheader will not have gutters.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader will not stick to the top during scroll.\n * @default false\n */\n disableSticky: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader is indented.\n * @default false\n */\n inset: 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} : void 0;\nexport default ListSubheader;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getChipUtilityClass(slot) {\n return generateUtilityClass('MuiChip', slot);\n}\nconst chipClasses = generateUtilityClasses('MuiChip', ['root', 'sizeSmall', 'sizeMedium', 'colorPrimary', 'colorSecondary', 'disabled', 'clickable', 'clickableColorPrimary', 'clickableColorSecondary', 'deletable', 'deletableColorPrimary', 'deletableColorSecondary', 'outlined', 'filled', 'outlinedPrimary', 'outlinedSecondary', 'avatar', 'avatarSmall', 'avatarMedium', 'avatarColorPrimary', 'avatarColorSecondary', 'icon', 'iconSmall', 'iconMedium', 'iconColorPrimary', 'iconColorSecondary', 'label', 'labelSmall', 'labelMedium', 'deleteIcon', 'deleteIconSmall', 'deleteIconMedium', 'deleteIconColorPrimary', 'deleteIconColorSecondary', 'deleteIconOutlinedColorPrimary', 'deleteIconOutlinedColorSecondary', 'focusVisible']);\nexport default chipClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"avatar\", \"className\", \"clickable\", \"color\", \"component\", \"deleteIcon\", \"disabled\", \"icon\", \"label\", \"onClick\", \"onDelete\", \"onKeyDown\", \"onKeyUp\", \"size\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport CancelIcon from '../internal/svg-icons/Cancel';\nimport useForkRef from '../utils/useForkRef';\nimport unsupportedProp from '../utils/unsupportedProp';\nimport capitalize from '../utils/capitalize';\nimport ButtonBase from '../ButtonBase';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport chipClasses, { getChipUtilityClass } from './chipClasses';\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 disabled,\n size,\n color,\n onDelete,\n clickable,\n variant\n } = ownerState;\n const slots = {\n root: ['root', variant, disabled && 'disabled', `size${capitalize(size)}`, `color${capitalize(color)}`, clickable && 'clickable', clickable && `clickableColor${capitalize(color)}`, onDelete && 'deletable', onDelete && `deletableColor${capitalize(color)}`, `${variant}${capitalize(color)}`],\n label: ['label', `label${capitalize(size)}`],\n avatar: ['avatar', `avatar${capitalize(size)}`, `avatarColor${capitalize(color)}`],\n icon: ['icon', `icon${capitalize(size)}`, `iconColor${capitalize(color)}`],\n deleteIcon: ['deleteIcon', `deleteIcon${capitalize(size)}`, `deleteIconColor${capitalize(color)}`, `deleteIconOutlinedColor${capitalize(color)}`]\n };\n return composeClasses(slots, getChipUtilityClass, classes);\n};\n\nconst ChipRoot = styled('div', {\n name: 'MuiChip',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n color,\n clickable,\n onDelete,\n size,\n variant\n } = ownerState;\n return [{\n [`& .${chipClasses.avatar}`]: styles.avatar\n }, {\n [`& .${chipClasses.avatar}`]: styles[`avatar${capitalize(size)}`]\n }, {\n [`& .${chipClasses.avatar}`]: styles[`avatarColor${capitalize(color)}`]\n }, {\n [`& .${chipClasses.icon}`]: styles.icon\n }, {\n [`& .${chipClasses.icon}`]: styles[`icon${capitalize(size)}`]\n }, {\n [`& .${chipClasses.icon}`]: styles[`iconColor${capitalize(color)}`]\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles.deleteIcon\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles[`deleteIcon${capitalize(size)}`]\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles[`deleteIconColor${capitalize(color)}`]\n }, {\n [`& .${chipClasses.deleteIcon}`]: styles[`deleteIconOutlinedColor${capitalize(color)}`]\n }, styles.root, styles[`size${capitalize(size)}`], styles[`color${capitalize(color)}`], clickable && styles.clickable, clickable && color !== 'default' && styles[`clickableColor${capitalize(color)})`], onDelete && styles.deletable, onDelete && color !== 'default' && styles[`deletableColor${capitalize(color)}`], styles[variant], variant === 'outlined' && styles[`outlined${capitalize(color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n const deleteIconColor = alpha(theme.palette.text.primary, 0.26);\n return _extends({\n maxWidth: '100%',\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(13),\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 32,\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.action.selected,\n borderRadius: 32 / 2,\n whiteSpace: 'nowrap',\n transition: theme.transitions.create(['background-color', 'box-shadow']),\n // label will inherit this from root, then `clickable` class overrides this for both\n cursor: 'default',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n textDecoration: 'none',\n border: 0,\n // Remove `button` border\n padding: 0,\n // Remove `button` padding\n verticalAlign: 'middle',\n boxSizing: 'border-box',\n [`&.${chipClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity,\n pointerEvents: 'none'\n },\n [`& .${chipClasses.avatar}`]: {\n marginLeft: 5,\n marginRight: -6,\n width: 24,\n height: 24,\n color: theme.palette.mode === 'light' ? theme.palette.grey[700] : theme.palette.grey[300],\n fontSize: theme.typography.pxToRem(12)\n },\n [`& .${chipClasses.avatarColorPrimary}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.dark\n },\n [`& .${chipClasses.avatarColorSecondary}`]: {\n color: theme.palette.secondary.contrastText,\n backgroundColor: theme.palette.secondary.dark\n },\n [`& .${chipClasses.avatarSmall}`]: {\n marginLeft: 4,\n marginRight: -4,\n width: 18,\n height: 18,\n fontSize: theme.typography.pxToRem(10)\n },\n [`& .${chipClasses.icon}`]: _extends({\n color: theme.palette.mode === 'light' ? theme.palette.grey[700] : theme.palette.grey[300],\n marginLeft: 5,\n marginRight: -6\n }, ownerState.size === 'small' && {\n fontSize: 18,\n marginLeft: 4,\n marginRight: -4\n }, ownerState.color !== 'default' && {\n color: 'inherit'\n }),\n [`& .${chipClasses.deleteIcon}`]: _extends({\n WebkitTapHighlightColor: 'transparent',\n color: deleteIconColor,\n fontSize: 22,\n cursor: 'pointer',\n margin: '0 5px 0 -6px',\n '&:hover': {\n color: alpha(deleteIconColor, 0.4)\n }\n }, ownerState.size === 'small' && {\n fontSize: 16,\n marginRight: 4,\n marginLeft: -4\n }, ownerState.color !== 'default' && {\n color: alpha(theme.palette[ownerState.color].contrastText, 0.7),\n '&:hover, &:active': {\n color: theme.palette[ownerState.color].contrastText\n }\n })\n }, ownerState.size === 'small' && {\n height: 24\n }, ownerState.color !== 'default' && {\n backgroundColor: theme.palette[ownerState.color].main,\n color: theme.palette[ownerState.color].contrastText\n }, ownerState.onDelete && {\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n }, ownerState.onDelete && ownerState.color !== 'default' && {\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: theme.palette[ownerState.color].dark\n }\n });\n}, ({\n theme,\n ownerState\n}) => _extends({}, ownerState.clickable && {\n userSelect: 'none',\n WebkitTapHighlightColor: 'transparent',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity)\n },\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n },\n '&:active': {\n boxShadow: theme.shadows[1]\n }\n}, ownerState.clickable && ownerState.color !== 'default' && {\n [`&:hover, &.${chipClasses.focusVisible}`]: {\n backgroundColor: theme.palette[ownerState.color].dark\n }\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.variant === 'outlined' && {\n backgroundColor: 'transparent',\n border: `1px solid ${theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[700]}`,\n [`&.${chipClasses.clickable}:hover`]: {\n backgroundColor: theme.palette.action.hover\n },\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`& .${chipClasses.avatar}`]: {\n marginLeft: 4\n },\n [`& .${chipClasses.avatarSmall}`]: {\n marginLeft: 2\n },\n [`& .${chipClasses.icon}`]: {\n marginLeft: 4\n },\n [`& .${chipClasses.iconSmall}`]: {\n marginLeft: 2\n },\n [`& .${chipClasses.deleteIcon}`]: {\n marginRight: 5\n },\n [`& .${chipClasses.deleteIconSmall}`]: {\n marginRight: 3\n }\n}, ownerState.variant === 'outlined' && ownerState.color !== 'default' && {\n color: theme.palette[ownerState.color].main,\n border: `1px solid ${alpha(theme.palette[ownerState.color].main, 0.7)}`,\n [`&.${chipClasses.clickable}:hover`]: {\n backgroundColor: alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity)\n },\n [`&.${chipClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette[ownerState.color].main, theme.palette.action.focusOpacity)\n },\n [`& .${chipClasses.deleteIcon}`]: {\n color: alpha(theme.palette[ownerState.color].main, 0.7),\n '&:hover, &:active': {\n color: theme.palette[ownerState.color].main\n }\n }\n}));\nconst ChipLabel = styled('span', {\n name: 'MuiChip',\n slot: 'Label',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n size\n } = ownerState;\n return [styles.label, styles[`label${capitalize(size)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n paddingLeft: 12,\n paddingRight: 12,\n whiteSpace: 'nowrap'\n}, ownerState.size === 'small' && {\n paddingLeft: 8,\n paddingRight: 8\n}));\n\nfunction isDeleteKeyboardEvent(keyboardEvent) {\n return keyboardEvent.key === 'Backspace' || keyboardEvent.key === 'Delete';\n}\n/**\n * Chips represent complex entities in small blocks, such as a contact.\n */\n\n\nconst Chip = /*#__PURE__*/React.forwardRef(function Chip(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiChip'\n });\n\n const {\n avatar: avatarProp,\n className,\n clickable: clickableProp,\n color = 'default',\n component: ComponentProp,\n deleteIcon: deleteIconProp,\n disabled = false,\n icon: iconProp,\n label,\n onClick,\n onDelete,\n onKeyDown,\n onKeyUp,\n size = 'medium',\n variant = 'filled'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const chipRef = React.useRef(null);\n const handleRef = useForkRef(chipRef, ref);\n\n const handleDeleteIconClick = event => {\n // Stop the event from bubbling up to the `Chip`\n event.stopPropagation();\n\n if (onDelete) {\n onDelete(event);\n }\n };\n\n const handleKeyDown = event => {\n // Ignore events from children of `Chip`.\n if (event.currentTarget === event.target && isDeleteKeyboardEvent(event)) {\n // Will be handled in keyUp, otherwise some browsers\n // might init navigation\n event.preventDefault();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n const handleKeyUp = event => {\n // Ignore events from children of `Chip`.\n if (event.currentTarget === event.target) {\n if (onDelete && isDeleteKeyboardEvent(event)) {\n onDelete(event);\n } else if (event.key === 'Escape' && chipRef.current) {\n chipRef.current.blur();\n }\n }\n\n if (onKeyUp) {\n onKeyUp(event);\n }\n };\n\n const clickable = clickableProp !== false && onClick ? true : clickableProp;\n const small = size === 'small';\n const component = clickable || onDelete ? ButtonBase : ComponentProp || 'div';\n\n const ownerState = _extends({}, props, {\n component,\n disabled,\n size,\n color,\n onDelete: !!onDelete,\n clickable,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n const moreProps = component === ButtonBase ? _extends({\n component: ComponentProp || 'div',\n focusVisibleClassName: classes.focusVisible\n }, onDelete && {\n disableRipple: true\n }) : {};\n let deleteIcon = null;\n\n if (onDelete) {\n const customClasses = clsx(color !== 'default' && (variant === 'outlined' ? classes[`deleteIconOutlinedColor${capitalize(color)}`] : classes[`deleteIconColor${capitalize(color)}`]), small && classes.deleteIconSmall);\n deleteIcon = deleteIconProp && /*#__PURE__*/React.isValidElement(deleteIconProp) ? /*#__PURE__*/React.cloneElement(deleteIconProp, {\n className: clsx(deleteIconProp.props.className, classes.deleteIcon, customClasses),\n onClick: handleDeleteIconClick\n }) : /*#__PURE__*/_jsx(CancelIcon, {\n className: clsx(classes.deleteIcon, customClasses),\n onClick: handleDeleteIconClick\n });\n }\n\n let avatar = null;\n\n if (avatarProp && /*#__PURE__*/React.isValidElement(avatarProp)) {\n avatar = /*#__PURE__*/React.cloneElement(avatarProp, {\n className: clsx(classes.avatar, avatarProp.props.className)\n });\n }\n\n let icon = null;\n\n if (iconProp && /*#__PURE__*/React.isValidElement(iconProp)) {\n icon = /*#__PURE__*/React.cloneElement(iconProp, {\n className: clsx(classes.icon, iconProp.props.className)\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (avatar && icon) {\n console.error('MUI: The Chip component can not handle the avatar ' + 'and the icon prop at the same time. Pick one.');\n }\n }\n\n return /*#__PURE__*/_jsxs(ChipRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n disabled: clickable && disabled ? true : undefined,\n onClick: onClick,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n ref: handleRef,\n ownerState: ownerState\n }, moreProps, other, {\n children: [avatar || icon, /*#__PURE__*/_jsx(ChipLabel, {\n className: clsx(classes.label),\n ownerState: ownerState,\n children: label\n }), deleteIcon]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Chip.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 Avatar element to display.\n */\n avatar: PropTypes.element,\n\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\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`, the chip will appear clickable, and will raise when pressed,\n * even if the onClick prop is not defined.\n * If `false`, the chip will not appear clickable, even if onClick prop is defined.\n * This can be used, for example,\n * along with the component prop to indicate an anchor Chip is clickable.\n * Note: this controls the UI and does not affect the onClick event.\n */\n clickable: PropTypes.bool,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'default'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', '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 * Override the default delete icon element. Shown only if `onDelete` is set.\n */\n deleteIcon: PropTypes.element,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Icon element.\n */\n icon: PropTypes.element,\n\n /**\n * The content of the component.\n */\n label: PropTypes.node,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * Callback fired when the delete icon is clicked.\n * If set, the delete icon will be shown.\n */\n onDelete: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), 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 * The variant to use.\n * @default 'filled'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['filled', 'outlined']), PropTypes.string])\n} : void 0;\nexport default Chip;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAutocompleteUtilityClass(slot) {\n return generateUtilityClass('MuiAutocomplete', slot);\n}\nconst autocompleteClasses = generateUtilityClasses('MuiAutocomplete', ['root', 'fullWidth', 'focused', 'focusVisible', 'tag', 'tagSizeSmall', 'tagSizeMedium', 'hasPopupIcon', 'hasClearIcon', 'inputRoot', 'input', 'inputFocused', 'endAdornment', 'clearIndicator', 'popupIndicator', 'popupIndicatorOpen', 'popper', 'popperDisablePortal', 'paper', 'listbox', 'loading', 'noOptions', 'option', 'groupLabel', 'groupUl']);\nexport default autocompleteClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _ClearIcon, _ArrowDropDownIcon;\n\nconst _excluded = [\"autoComplete\", \"autoHighlight\", \"autoSelect\", \"blurOnSelect\", \"ChipProps\", \"className\", \"clearIcon\", \"clearOnBlur\", \"clearOnEscape\", \"clearText\", \"closeText\", \"componentsProps\", \"defaultValue\", \"disableClearable\", \"disableCloseOnSelect\", \"disabled\", \"disabledItemsFocusable\", \"disableListWrap\", \"disablePortal\", \"filterOptions\", \"filterSelectedOptions\", \"forcePopupIcon\", \"freeSolo\", \"fullWidth\", \"getLimitTagsText\", \"getOptionDisabled\", \"getOptionLabel\", \"isOptionEqualToValue\", \"groupBy\", \"handleHomeEndKeys\", \"id\", \"includeInputInList\", \"inputValue\", \"limitTags\", \"ListboxComponent\", \"ListboxProps\", \"loading\", \"loadingText\", \"multiple\", \"noOptionsText\", \"onChange\", \"onClose\", \"onHighlightChange\", \"onInputChange\", \"onOpen\", \"open\", \"openOnFocus\", \"openText\", \"options\", \"PaperComponent\", \"PopperComponent\", \"popupIcon\", \"readOnly\", \"renderGroup\", \"renderInput\", \"renderOption\", \"renderTags\", \"selectOnFocus\", \"size\", \"value\"];\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, useAutocomplete, createFilterOptions } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport Popper from '../Popper';\nimport ListSubheader from '../ListSubheader';\nimport Paper from '../Paper';\nimport IconButton from '../IconButton';\nimport Chip from '../Chip';\nimport inputClasses from '../Input/inputClasses';\nimport inputBaseClasses from '../InputBase/inputBaseClasses';\nimport outlinedInputClasses from '../OutlinedInput/outlinedInputClasses';\nimport filledInputClasses from '../FilledInput/filledInputClasses';\nimport ClearIcon from '../internal/svg-icons/Close';\nimport ArrowDropDownIcon from '../internal/svg-icons/ArrowDropDown';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport autocompleteClasses, { getAutocompleteUtilityClass } from './autocompleteClasses';\nimport capitalize from '../utils/capitalize';\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 disablePortal,\n focused,\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n popupOpen,\n size\n } = ownerState;\n const slots = {\n root: ['root', focused && 'focused', fullWidth && 'fullWidth', hasClearIcon && 'hasClearIcon', hasPopupIcon && 'hasPopupIcon'],\n inputRoot: ['inputRoot'],\n input: ['input', inputFocused && 'inputFocused'],\n tag: ['tag', `tagSize${capitalize(size)}`],\n endAdornment: ['endAdornment'],\n clearIndicator: ['clearIndicator'],\n popupIndicator: ['popupIndicator', popupOpen && 'popupIndicatorOpen'],\n popper: ['popper', disablePortal && 'popperDisablePortal'],\n paper: ['paper'],\n listbox: ['listbox'],\n loading: ['loading'],\n noOptions: ['noOptions'],\n option: ['option'],\n groupLabel: ['groupLabel'],\n groupUl: ['groupUl']\n };\n return composeClasses(slots, getAutocompleteUtilityClass, classes);\n};\n\nconst AutocompleteRoot = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n size\n } = ownerState;\n return [{\n [`& .${autocompleteClasses.tag}`]: styles.tag\n }, {\n [`& .${autocompleteClasses.tag}`]: styles[`tagSize${capitalize(size)}`]\n }, {\n [`& .${autocompleteClasses.inputRoot}`]: styles.inputRoot\n }, {\n [`& .${autocompleteClasses.input}`]: styles.input\n }, {\n [`& .${autocompleteClasses.input}`]: inputFocused && styles.inputFocused\n }, styles.root, fullWidth && styles.fullWidth, hasPopupIcon && styles.hasPopupIcon, hasClearIcon && styles.hasClearIcon];\n }\n})(({\n ownerState\n}) => _extends({\n [`&.${autocompleteClasses.focused} .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n },\n\n /* Avoid double tap issue on iOS */\n '@media (pointer: fine)': {\n [`&:hover .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n }\n }\n}, ownerState.fullWidth && {\n width: '100%'\n}, {\n [`& .${autocompleteClasses.tag}`]: _extends({\n margin: 3,\n maxWidth: 'calc(100% - 6px)'\n }, ownerState.size === 'small' && {\n margin: 2,\n maxWidth: 'calc(100% - 4px)'\n }),\n [`& .${autocompleteClasses.inputRoot}`]: {\n flexWrap: 'wrap',\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4\n },\n [`& .${autocompleteClasses.input}`]: {\n width: 0,\n minWidth: 30\n }\n },\n [`& .${inputClasses.root}`]: {\n paddingBottom: 1,\n '& .MuiInput-input': {\n padding: '4px 4px 4px 0px'\n }\n },\n [`& .${inputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n [`& .${inputClasses.input}`]: {\n padding: '2px 4px 3px 0'\n }\n },\n [`& .${outlinedInputClasses.root}`]: {\n padding: 9,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${autocompleteClasses.input}`]: {\n padding: '7.5px 4px 7.5px 6px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${outlinedInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n padding: 6,\n [`& .${autocompleteClasses.input}`]: {\n padding: '2.5px 4px 2.5px 6px'\n }\n },\n [`& .${filledInputClasses.root}`]: {\n paddingTop: 19,\n paddingLeft: 8,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${filledInputClasses.input}`]: {\n padding: '7px 4px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n paddingBottom: 1,\n [`& .${filledInputClasses.input}`]: {\n padding: '2.5px 4px'\n }\n },\n [`& .${inputBaseClasses.hiddenLabel}`]: {\n paddingTop: 8\n },\n [`& .${autocompleteClasses.input}`]: _extends({\n flexGrow: 1,\n textOverflow: 'ellipsis',\n opacity: 0\n }, ownerState.inputFocused && {\n opacity: 1\n })\n}));\nconst AutocompleteEndAdornment = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'EndAdornment',\n overridesResolver: (props, styles) => styles.endAdornment\n})({\n // We use a position absolute to support wrapping tags.\n position: 'absolute',\n right: 0,\n top: 'calc(50% - 14px)' // Center vertically\n\n});\nconst AutocompleteClearIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'ClearIndicator',\n overridesResolver: (props, styles) => styles.clearIndicator\n})({\n marginRight: -2,\n padding: 4,\n visibility: 'hidden'\n});\nconst AutocompletePopupIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'PopupIndicator',\n overridesResolver: ({\n ownerState\n }, styles) => _extends({}, styles.popupIndicator, ownerState.popupOpen && styles.popupIndicatorOpen)\n})(({\n ownerState\n}) => _extends({\n padding: 2,\n marginRight: -2\n}, ownerState.popupOpen && {\n transform: 'rotate(180deg)'\n}));\nconst AutocompletePopper = styled(Popper, {\n name: 'MuiAutocomplete',\n slot: 'Popper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${autocompleteClasses.option}`]: styles.option\n }, styles.popper, ownerState.disablePortal && styles.popperDisablePortal];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n zIndex: theme.zIndex.modal\n}, ownerState.disablePortal && {\n position: 'absolute'\n}));\nconst AutocompletePaper = styled(Paper, {\n name: 'MuiAutocomplete',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})(({\n theme\n}) => _extends({}, theme.typography.body1, {\n overflow: 'auto'\n}));\nconst AutocompleteLoading = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Loading',\n overridesResolver: (props, styles) => styles.loading\n})(({\n theme\n}) => ({\n color: theme.palette.text.secondary,\n padding: '14px 16px'\n}));\nconst AutocompleteNoOptions = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'NoOptions',\n overridesResolver: (props, styles) => styles.noOptions\n})(({\n theme\n}) => ({\n color: theme.palette.text.secondary,\n padding: '14px 16px'\n}));\nconst AutocompleteListbox = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Listbox',\n overridesResolver: (props, styles) => styles.listbox\n})(({\n theme\n}) => ({\n listStyle: 'none',\n margin: 0,\n padding: '8px 0',\n maxHeight: '40vh',\n overflow: 'auto',\n [`& .${autocompleteClasses.option}`]: {\n minHeight: 48,\n display: 'flex',\n overflow: 'hidden',\n justifyContent: 'flex-start',\n alignItems: 'center',\n cursor: 'pointer',\n paddingTop: 6,\n boxSizing: 'border-box',\n outline: '0',\n WebkitTapHighlightColor: 'transparent',\n paddingBottom: 6,\n paddingLeft: 16,\n paddingRight: 16,\n [theme.breakpoints.up('sm')]: {\n minHeight: 'auto'\n },\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&[aria-disabled=\"true\"]': {\n opacity: theme.palette.action.disabledOpacity,\n pointerEvents: 'none'\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: theme.palette.action.focus\n },\n '&[aria-selected=\"true\"]': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.palette.action.selected\n }\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n }\n }\n}));\nconst AutocompleteGroupLabel = styled(ListSubheader, {\n name: 'MuiAutocomplete',\n slot: 'GroupLabel',\n overridesResolver: (props, styles) => styles.groupLabel\n})(({\n theme\n}) => ({\n backgroundColor: theme.palette.background.paper,\n top: -8\n}));\nconst AutocompleteGroupUl = styled('ul', {\n name: 'MuiAutocomplete',\n slot: 'GroupUl',\n overridesResolver: (props, styles) => styles.groupUl\n})({\n padding: 0,\n [`& .${autocompleteClasses.option}`]: {\n paddingLeft: 24\n }\n});\nexport { createFilterOptions };\nconst Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps, ref) {\n var _componentsProps$clea, _componentsProps$pape;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAutocomplete'\n });\n /* eslint-disable @typescript-eslint/no-unused-vars */\n\n const {\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n ChipProps,\n className,\n clearIcon = _ClearIcon || (_ClearIcon = /*#__PURE__*/_jsx(ClearIcon, {\n fontSize: \"small\"\n })),\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n clearText = 'Clear',\n closeText = 'Close',\n componentsProps = {},\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled = false,\n disabledItemsFocusable = false,\n disableListWrap = false,\n disablePortal = false,\n filterSelectedOptions = false,\n forcePopupIcon = 'auto',\n freeSolo = false,\n fullWidth = false,\n getLimitTagsText = more => `+${more}`,\n getOptionLabel = option => {\n var _option$label;\n\n return (_option$label = option.label) != null ? _option$label : option;\n },\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n includeInputInList = false,\n limitTags = -1,\n ListboxComponent = 'ul',\n ListboxProps,\n loading = false,\n loadingText = 'Loading…',\n multiple = false,\n noOptionsText = 'No options',\n openOnFocus = false,\n openText = 'Open',\n PaperComponent = Paper,\n PopperComponent = Popper,\n popupIcon = _ArrowDropDownIcon || (_ArrowDropDownIcon = /*#__PURE__*/_jsx(ArrowDropDownIcon, {})),\n readOnly = false,\n renderGroup: renderGroupProp,\n renderInput,\n renderOption: renderOptionProp,\n renderTags,\n selectOnFocus = !props.freeSolo,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n\n\n const {\n getRootProps,\n getInputProps,\n getInputLabelProps,\n getPopupIndicatorProps,\n getClearProps,\n getTagProps,\n getListboxProps,\n getOptionProps,\n value,\n dirty,\n id,\n popupOpen,\n focused,\n focusedTag,\n anchorEl,\n setAnchorEl,\n inputValue,\n groupedOptions\n } = useAutocomplete(_extends({}, props, {\n componentName: 'Autocomplete'\n }));\n const hasClearIcon = !disableClearable && !disabled && dirty && !readOnly;\n const hasPopupIcon = (!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false;\n\n const ownerState = _extends({}, props, {\n disablePortal,\n focused,\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused: focusedTag === -1,\n popupOpen,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n let startAdornment;\n\n if (multiple && value.length > 0) {\n const getCustomizedTagProps = params => _extends({\n className: clsx(classes.tag),\n disabled\n }, getTagProps(params));\n\n if (renderTags) {\n startAdornment = renderTags(value, getCustomizedTagProps);\n } else {\n startAdornment = value.map((option, index) => /*#__PURE__*/_jsx(Chip, _extends({\n label: getOptionLabel(option),\n size: size\n }, getCustomizedTagProps({\n index\n }), ChipProps)));\n }\n }\n\n if (limitTags > -1 && Array.isArray(startAdornment)) {\n const more = startAdornment.length - limitTags;\n\n if (!focused && more > 0) {\n startAdornment = startAdornment.splice(0, limitTags);\n startAdornment.push( /*#__PURE__*/_jsx(\"span\", {\n className: classes.tag,\n children: getLimitTagsText(more)\n }, startAdornment.length));\n }\n }\n\n const defaultRenderGroup = params => /*#__PURE__*/_jsxs(\"li\", {\n children: [/*#__PURE__*/_jsx(AutocompleteGroupLabel, {\n className: classes.groupLabel,\n ownerState: ownerState,\n component: \"div\",\n children: params.group\n }), /*#__PURE__*/_jsx(AutocompleteGroupUl, {\n className: classes.groupUl,\n ownerState: ownerState,\n children: params.children\n })]\n }, params.key);\n\n const renderGroup = renderGroupProp || defaultRenderGroup;\n\n const defaultRenderOption = (props2, option) => /*#__PURE__*/_jsx(\"li\", _extends({}, props2, {\n children: getOptionLabel(option)\n }));\n\n const renderOption = renderOptionProp || defaultRenderOption;\n\n const renderListOption = (option, index) => {\n const optionProps = getOptionProps({\n option,\n index\n });\n return renderOption(_extends({}, optionProps, {\n className: classes.option\n }), option, {\n selected: optionProps['aria-selected'],\n inputValue\n });\n };\n\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(AutocompleteRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, getRootProps(other), {\n children: renderInput({\n id,\n disabled,\n fullWidth: true,\n size: size === 'small' ? 'small' : undefined,\n InputLabelProps: getInputLabelProps(),\n InputProps: {\n ref: setAnchorEl,\n className: classes.inputRoot,\n startAdornment,\n endAdornment: /*#__PURE__*/_jsxs(AutocompleteEndAdornment, {\n className: classes.endAdornment,\n ownerState: ownerState,\n children: [hasClearIcon ? /*#__PURE__*/_jsx(AutocompleteClearIndicator, _extends({}, getClearProps(), {\n \"aria-label\": clearText,\n title: clearText,\n ownerState: ownerState\n }, componentsProps.clearIndicator, {\n className: clsx(classes.clearIndicator, (_componentsProps$clea = componentsProps.clearIndicator) == null ? void 0 : _componentsProps$clea.className),\n children: clearIcon\n })) : null, hasPopupIcon ? /*#__PURE__*/_jsx(AutocompletePopupIndicator, _extends({}, getPopupIndicatorProps(), {\n disabled: disabled,\n \"aria-label\": popupOpen ? closeText : openText,\n title: popupOpen ? closeText : openText,\n className: clsx(classes.popupIndicator),\n ownerState: ownerState,\n children: popupIcon\n })) : null]\n })\n },\n inputProps: _extends({\n className: clsx(classes.input),\n disabled,\n readOnly\n }, getInputProps())\n })\n })), popupOpen && anchorEl ? /*#__PURE__*/_jsx(AutocompletePopper, {\n as: PopperComponent,\n className: clsx(classes.popper),\n disablePortal: disablePortal,\n style: {\n width: anchorEl ? anchorEl.clientWidth : null\n },\n ownerState: ownerState,\n role: \"presentation\",\n anchorEl: anchorEl,\n open: true,\n children: /*#__PURE__*/_jsxs(AutocompletePaper, _extends({\n ownerState: ownerState,\n as: PaperComponent\n }, componentsProps.paper, {\n className: clsx(classes.paper, (_componentsProps$pape = componentsProps.paper) == null ? void 0 : _componentsProps$pape.className),\n children: [loading && groupedOptions.length === 0 ? /*#__PURE__*/_jsx(AutocompleteLoading, {\n className: classes.loading,\n ownerState: ownerState,\n children: loadingText\n }) : null, groupedOptions.length === 0 && !freeSolo && !loading ? /*#__PURE__*/_jsx(AutocompleteNoOptions, {\n className: classes.noOptions,\n ownerState: ownerState,\n role: \"presentation\",\n onMouseDown: event => {\n // Prevent input blur when interacting with the \"no options\" content\n event.preventDefault();\n },\n children: noOptionsText\n }) : null, groupedOptions.length > 0 ? /*#__PURE__*/_jsx(AutocompleteListbox, _extends({\n as: ListboxComponent,\n className: classes.listbox,\n ownerState: ownerState\n }, getListboxProps(), ListboxProps, {\n children: groupedOptions.map((option, index) => {\n if (groupBy) {\n return renderGroup({\n key: option.key,\n group: option.group,\n children: option.options.map((option2, index2) => renderListOption(option2, option.index + index2))\n });\n }\n\n return renderListOption(option, index);\n })\n })) : null]\n }))\n }) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Autocomplete.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 * If `true`, the portion of the selected suggestion that has not been typed by the user,\n * known as the completion string, appears inline after the input cursor in the textbox.\n * The inline completion string is visually highlighted and has a selected state.\n * @default false\n */\n autoComplete: PropTypes.bool,\n\n /**\n * If `true`, the first option is automatically highlighted.\n * @default false\n */\n autoHighlight: PropTypes.bool,\n\n /**\n * If `true`, the selected option becomes the value of the input\n * when the Autocomplete loses focus unless the user chooses\n * a different option or changes the character string in the input.\n * @default false\n */\n autoSelect: PropTypes.bool,\n\n /**\n * Control if the input should be blurred when an option is selected:\n *\n * - `false` the input is not blurred.\n * - `true` the input is always blurred.\n * - `touch` the input is blurred after a touch event.\n * - `mouse` the input is blurred after a mouse event.\n * @default false\n */\n blurOnSelect: PropTypes.oneOfType([PropTypes.oneOf(['mouse', 'touch']), PropTypes.bool]),\n\n /**\n * Props applied to the [`Chip`](/api/chip/) element.\n */\n ChipProps: PropTypes.object,\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 icon to display in place of the default clear icon.\n * @default \n */\n clearIcon: PropTypes.node,\n\n /**\n * If `true`, the input's text is cleared on blur if no value is selected.\n *\n * Set to `true` if you want to help the user enter a new value.\n * Set to `false` if you want to help the user resume their search.\n * @default !props.freeSolo\n */\n clearOnBlur: PropTypes.bool,\n\n /**\n * If `true`, clear all values when the user presses escape and the popup is closed.\n * @default false\n */\n clearOnEscape: PropTypes.bool,\n\n /**\n * Override the default text for the *clear* icon button.\n *\n * For localization purposes, you can use the provided [translations](/guides/localization/).\n * @default 'Clear'\n */\n clearText: PropTypes.string,\n\n /**\n * Override the default text for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/guides/localization/).\n * @default 'Close'\n */\n closeText: PropTypes.string,\n\n /**\n * The props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n clearIndicator: PropTypes.object,\n paper: PropTypes.object\n }),\n\n /**\n * The default value. Use when the component is not controlled.\n * @default props.multiple ? [] : null\n */\n defaultValue: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.defaultValue !== undefined && !Array.isArray(props.defaultValue)) {\n return new Error(['MUI: The Autocomplete expects the `defaultValue` prop to be an array when `multiple={true}` or undefined.', `However, ${props.defaultValue} was provided.`].join('\\n'));\n }\n\n return null;\n }),\n\n /**\n * If `true`, the input can't be cleared.\n * @default false\n */\n disableClearable: PropTypes.bool,\n\n /**\n * If `true`, the popup won't close when a value is selected.\n * @default false\n */\n disableCloseOnSelect: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n\n /**\n * If `true`, the list box in the popup will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n\n /**\n * If `true`, the `Popper` content will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n\n /**\n * A filter function that determines the options that are eligible.\n *\n * @param {T[]} options The options to render.\n * @param {object} state The state of the component.\n * @returns {T[]}\n */\n filterOptions: PropTypes.func,\n\n /**\n * If `true`, hide the selected options from the list box.\n * @default false\n */\n filterSelectedOptions: PropTypes.bool,\n\n /**\n * Force the visibility display of the popup icon.\n * @default 'auto'\n */\n forcePopupIcon: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.bool]),\n\n /**\n * If `true`, the Autocomplete is free solo, meaning that the user input is not bound to provided options.\n * @default false\n */\n freeSolo: PropTypes.bool,\n\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The label to display when the tags are truncated (`limitTags`).\n *\n * @param {number} more The number of truncated tags.\n * @returns {ReactNode}\n * @default (more) => `+${more}`\n */\n getLimitTagsText: PropTypes.func,\n\n /**\n * Used to determine the disabled state for a given option.\n *\n * @param {T} option The option to test.\n * @returns {boolean}\n */\n getOptionDisabled: PropTypes.func,\n\n /**\n * Used to determine the string value for a given option.\n * It's used to fill the input (and the list box options if `renderOption` is not provided).\n *\n * @param {T} option\n * @returns {string}\n * @default (option) => option.label ?? option\n */\n getOptionLabel: PropTypes.func,\n\n /**\n * If provided, the options will be grouped under the returned string.\n * The groupBy value is also used as the text for group headings when `renderGroup` is not provided.\n *\n * @param {T} options The options to group.\n * @returns {string}\n */\n groupBy: PropTypes.func,\n\n /**\n * If `true`, the component handles the \"Home\" and \"End\" keys when the popup is open.\n * It should move focus to the first option and last option, respectively.\n * @default !props.freeSolo\n */\n handleHomeEndKeys: PropTypes.bool,\n\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide an id it will fall back to a randomly generated one.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the highlight can move to the input.\n * @default false\n */\n includeInputInList: PropTypes.bool,\n\n /**\n * The input value.\n */\n inputValue: PropTypes.string,\n\n /**\n * Used to determine if the option represents the given value.\n * Uses strict equality by default.\n * ⚠️ Both arguments need to be handled, an option can only match with one value.\n *\n * @param {T} option The option to test.\n * @param {T} value The value to test against.\n * @returns {boolean}\n */\n isOptionEqualToValue: PropTypes.func,\n\n /**\n * The maximum number of tags that will be visible when not focused.\n * Set `-1` to disable the limit.\n * @default -1\n */\n limitTags: integerPropType,\n\n /**\n * The component used to render the listbox.\n * @default 'ul'\n */\n ListboxComponent: PropTypes.elementType,\n\n /**\n * Props applied to the Listbox element.\n */\n ListboxProps: PropTypes.object,\n\n /**\n * If `true`, the component is in a loading state.\n * This shows the `loadingText` in place of suggestions (only if there are no suggestions to show, e.g. `options` are empty).\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Text to display when in a loading state.\n *\n * For localization purposes, you can use the provided [translations](/guides/localization/).\n * @default 'Loading…'\n */\n loadingText: PropTypes.node,\n\n /**\n * If `true`, `value` must be an array and the menu will support multiple selections.\n * @default false\n */\n multiple: PropTypes.bool,\n\n /**\n * Text to display when there are no options.\n *\n * For localization purposes, you can use the provided [translations](/guides/localization/).\n * @default 'No options'\n */\n noOptionsText: PropTypes.node,\n\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {T|T[]} value The new value of the component.\n * @param {string} reason One of \"createOption\", \"selectOption\", \"removeOption\", \"blur\" or \"clear\".\n * @param {string} [details]\n */\n onChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} reason Can be: `\"toggleInput\"`, `\"escape\"`, `\"selectOption\"`, `\"removeOption\"`, `\"blur\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired when the highlight option changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {T} option The highlighted option.\n * @param {string} reason Can be: `\"keyboard\"`, `\"auto\"`, `\"mouse\"`.\n */\n onHighlightChange: PropTypes.func,\n\n /**\n * Callback fired when the input value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} value The new value of the text input.\n * @param {string} reason Can be: `\"input\"` (user input), `\"reset\"` (programmatic change), `\"clear\"`.\n */\n onInputChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onOpen: PropTypes.func,\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n\n /**\n * If `true`, the popup will open on input focus.\n * @default false\n */\n openOnFocus: PropTypes.bool,\n\n /**\n * Override the default text for the *open popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/guides/localization/).\n * @default 'Open'\n */\n openText: PropTypes.string,\n\n /**\n * Array of options.\n */\n options: PropTypes.array.isRequired,\n\n /**\n * The component used to render the body of the popup.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n\n /**\n * The component used to position the popup.\n * @default Popper\n */\n PopperComponent: PropTypes.elementType,\n\n /**\n * The icon to display in place of the default popup icon.\n * @default \n */\n popupIcon: PropTypes.node,\n\n /**\n * If `true`, the component becomes readonly. It is also supported for multiple tags where the tag cannot be deleted.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Render the group.\n *\n * @param {AutocompleteRenderGroupParams} params The group to render.\n * @returns {ReactNode}\n */\n renderGroup: PropTypes.func,\n\n /**\n * Render the input.\n *\n * @param {object} params\n * @returns {ReactNode}\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Render the option, use `getOptionLabel` by default.\n *\n * @param {object} props The props to apply on the li element.\n * @param {T} option The option to render.\n * @param {object} state The state of the component.\n * @returns {ReactNode}\n */\n renderOption: PropTypes.func,\n\n /**\n * Render the selected value.\n *\n * @param {T[]} value The `value` provided to the component.\n * @param {function} getTagProps A tag props getter.\n * @returns {ReactNode}\n */\n renderTags: PropTypes.func,\n\n /**\n * If `true`, the input's text is selected on focus.\n * It helps the user clear the selected value.\n * @default !props.freeSolo\n */\n selectOnFocus: PropTypes.bool,\n\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['small', 'medium']), 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 * The value of the autocomplete.\n *\n * The value must have reference equality with the option in order to be selected.\n * You can customize the equality behavior with the `isOptionEqualToValue` prop.\n */\n value: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.value !== undefined && !Array.isArray(props.value)) {\n return new Error(['MUI: The Autocomplete expects the `value` prop to be an array when `multiple={true}` or undefined.', `However, ${props.value} was provided.`].join('\\n'));\n }\n\n return null;\n })\n} : void 0;\nexport default Autocomplete;","import * as React from 'react';\nimport { Paper, useTheme, useMediaQuery } from '@mui/material';\n\n\n\nexport default function LayoutPaper(props) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n\n const paperStyle = {\n bgcolor: 'background.paper',\n marginTop: 10,\n marginBottom: 2.5,\n borderRadius: 4,\n p: 4,\n paddingTop: 4,\n height: \"-webkit-fill-available\",\n overflow: 'scroll',\n '&::-webkit-scrollbar': {\n width: '0.4em',\n },\n '&::-webkit-scrollbar-track': {\n boxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)',\n webkitBoxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)',\n marginTop: 1.5,\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: \"#1C4E71\",\n },\n '&::-webkit-scrollbar-corner': {\n display: \"none\"\n },\n overflowY: props.hideoverflowy === \"true\" && \"hidden\",\n scrollbarColor: `${theme.palette.primary.main} #fff`,\n scrollbarWidth: \"thin\",\n width: \"100%\",\n overflowX: \"hidden\",\n marginX: 2\n };\n\n const paperStyleMobile = {\n bgcolor: 'background.paper',\n marginTop: 8,\n p: 1,\n paddingTop: 4,\n height: \"-webkit-fill-available\",\n overflowY: props.hideoverflowy === \"true\" && \"hidden\",\n width: \"100%\",\n overflowX: \"hidden\",\n position: \"relative\"\n };\n\n return (\n \n {props.children}\n \n );\n\n}","import { Typography } from '@mui/material';\nimport { MainContext } from 'kerberus-components';\nimport { useContext } from 'react';\nexport default function OnlineHours({ deviceHours, isMedium, site }) {\n const { bulkData } = useContext(MainContext);\n \n const filteredData = bulkData.user.online_minutes.filter(item => item.site_name === site)\n const totalTimeMinutes = filteredData.reduce((prev, next) => prev + next.online_minutes, 0);\n const minutesDevice = deviceHours % 60;\n const hoursDevice = Math.floor(deviceHours / 60);\n const minutes = totalTimeMinutes % 60;\n const hours = Math.floor(totalTimeMinutes / 60);\n return (\n deviceHours || deviceHours === 0\n ?\n deviceHours > 0\n ?\n \n {`${hoursDevice}h ${minutesDevice}min`}\n \n :\n \n 0h 0min\n \n :\n totalTimeMinutes > 0\n ?\n \n {`${hours}h ${minutes}min`}\n \n :\n \n 0h 0min\n \n );\n}","import { Typography } from '@mui/material';\nimport { MainContext } from 'kerberus-components';\nimport { useContext } from 'react';\nimport moment from 'moment';\n\nexport default function WeeklyHours({deviceHours, isMedium, site}) {\n const { bulkData } = useContext(MainContext);\n\n const filteredData = bulkData.user.online_minutes.filter(item => item.site_name === site)\n const totalTimeMinutes = filteredData.reduce((prev, next) => prev + next.online_minutes, 0);\n const minutesDevice = (deviceHours % 60)\n const hoursDevice = (Math.floor(168 - deviceHours / 60))\n const minsSinceStart = moment().diff(moment().startOf('week'), 'minutes') - totalTimeMinutes;\n const minutes = minsSinceStart % 60;\n const hours = Math.floor(minsSinceStart / 60);\n\n return (\n deviceHours || deviceHours === 0\n ?\n deviceHours > 0\n ?\n \n {`${hoursDevice}h ${minutesDevice}min`}\n \n :\n \n 0h 0min\n \n :\n totalTimeMinutes > 0\n ?\n \n {`${hours}h ${minutes}min`}\n \n :\n \n {`${Math.trunc(moment().diff(moment().startOf('week'), 'minutes') / 60)}h ${Math.trunc(moment().diff(moment().startOf('week'), 'minutes') % 60)}min`}\n \n );\n}\n","import { useState, useEffect, useMemo, useCallback } from 'react';\nimport { Calendar, momentLocalizer } from \"react-big-calendar\";\nimport moment from \"moment\";\nimport 'moment/locale/en-gb';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport \"react-big-calendar/lib/css/react-big-calendar.css\";\nimport CalendarToolbar from '../../Components/CalendarToolbar';\nimport { useWsDataProvider, MaskedTextFieldWrapper } from 'kerberus-components';\nimport Modal from '@mui/material/Modal';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport Grid from '@mui/material/Grid';\nimport { Button, Card } from '@mui/material';\nimport { Autocomplete, TextField, useTheme } from '@mui/material';\nimport LayoutPaper from '../../Components/LayoutPaper';\nimport useSWR from 'swr';\nimport OnlineHours from '../Profile/OnlineHours';\nimport OfflineHours from '../Profile/OfflineHours';\n\nconst style = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: 400,\n bgcolor: 'background.paper',\n borderWidth: 3,\n borderStyle: 'solid',\n borderColor: '#1C4E71',\n boxShadow: 24,\n p: 4,\n paddingBottom: 6\n};\n\nconst localizer = momentLocalizer(moment);\nconst dayFormat = (date, culture, localizer) => localizer.format(date, 'D', culture);\n\nfunction EventComponentday() {\n return
Active
;\n\n}\n\nfunction EventComponentweek() {\n return Active;\n\n}\n\nexport default function AdminCalendar({ devgroup, device }) {\n const theme = useTheme();\n const isMedium = useMediaQuery(theme.breakpoints.down('md'));\n const [profiles, setProfiles] = useState([]);\n const [inputValue, setInputValue] = useState('');\n const [events, setEvents] = useState([]);\n const [calDate, setCalDate] = useState(new Date());\n const { getData, data: providerData } = useWsDataProvider();\n const { getData: userGetData, data: userProviderData } = useWsDataProvider();\n const [data, setData] = useState();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const [calView, setCalView] = useState('day');\n const [macAddressInput, setMacAddressInput] = useState(\"\");\n const [macAddress, setMacAddress] = useState(\"\");\n const [userChoice, setUserChoice] = useState('');\n const [open, setOpen] = useState(false);\n const handleOpen = (e) => {\n setCurrentEvent(e);\n setOpen(true);\n };\n const handleClose = () => setOpen(false);\n const [currentEvent, setCurrentEvent] = useState();\n const handleTime = useMemo(() => {\n let curr = moment(calDate).toDate();\n let minus = moment(calDate).subtract(2, 'hours').toDate();\n return curr.getDate() === minus.getDate() ? minus : curr;\n\n }, [calDate]);\n const { data: profilelistSocialData } = useSWR('users/profilelistsocial/');\n\n const deviceHours = providerData?.map(item => item.online_data).flat().length * 30\n\n useEffect(() => {\n if (profilelistSocialData) {\n setProfiles(profilelistSocialData);\n }\n }, [profilelistSocialData]);\n\n useEffect(() => {\n if (macAddress && calDate) {\n getData('socketLocation', 'devtrackingAddresses', {\n filters: {\n mac_array: macAddress, start_time: moment(calDate).startOf('week'), end_time: moment(calDate).endOf('week')\n }\n });\n }\n }, [calDate, getData, macAddress]);\n\n useEffect(() => {\n if (userChoice) {\n userGetData('socketLocation', 'devtrackingSuper', {\n filters: {\n user_id: userChoice, start_time: moment(calDate).startOf('week'), end_time: moment(calDate).endOf('week')\n }\n });\n }\n }, [userChoice, userGetData, calDate]);\n\n useEffect(() => {\n if (providerData) {\n setData(providerData);\n }\n }, [providerData]);\n\n useEffect(() => {\n if (userProviderData) {\n setData(userProviderData);\n }\n }, [userProviderData]);\n\n const parseEvents = useCallback((data) => {\n const events = [];\n\n for (const site of data) {\n for (const item of site.online_data) {\n const date = new Date(item.time);\n\n if (events.length > 0 && events[events.length - 1].title !== \"Hidden\" && events[events.length - 1].title === site.site_name && ((events[events.length - 1].deviceSet.size === 1 && item.act.length === 1) || (events[events.length - 1].deviceSet.size > 1 && item.act.length > 1)) && events[events.length - 1].end.getTime() === date.getTime() && events[events.length - 1].start.getDay() === date.getDay()) {\n events[events.length - 1].end = new Date(events[events.length - 1].end.getTime() + 30 * 60000);\n events[events.length - 1].deviceSet = new Set([...events[events.length - 1].deviceSet, ...item.act]);\n events[events.length - 1].title = events[events.length - 1].deviceSet.size;\n }\n else {\n events.push({\n title: site.site_name,\n start: date,\n end: new Date(date.getTime() + 30 * 60000),\n deviceSet: new Set(item.act)\n });\n }\n }\n }\n\n setEvents(events);\n }, []);\n\n useEffect(() => {\n if (data) {\n parseEvents(data);\n }\n }, [data, parseEvents]);\n\n\n const navigateFunction = (date) => {\n setCalDate(date);\n };\n\n useEffect(() => {\n isSmall ? setCalView('day') : setCalView('week');\n }, [isSmall]);\n\n return (\n \n \n \n\n setMacAddressInput(e)}\n />\n \n \n \n \n \n Weekly online hours:\n \n \n \n \n \n \n \n Weekly offline hours:\n \n \n \n \n \n \n \n option.username}\n onChange={(e, newVal) => {\n if (newVal?.id) {\n setUserChoice(newVal.id);\n }\n else {\n setUserChoice('');\n parseEvents([]);\n }\n }}\n inputValue={inputValue}\n onInputChange={(e, newVal) => setInputValue(newVal)}\n sx={\n isSmall ?\n {\n width: \"100%\",\n '& .MuiFormHelperText-root': {\n width: 250,\n },\n mt: 2,\n }\n :\n {\n ml: 1,\n width: 300,\n '& .MuiFormHelperText-root': {\n width: 250,\n },\n }\n }\n renderInput={(params) => }\n />\n \n \n \n \n \n Weekly online hours:\n \n \n \n \n \n \n \n Weekly offline hours:\n \n \n \n \n \n {!isSmall &&\n \n {events.length === 0 && (macAddress.length > 0 || userChoice) &&\n \n No data this week!\n \n }\n \n }\n {isSmall &&\n \n {events.length === 0 && (macAddress.length > 0 || userChoice) &&\n \n No data this week!\n \n }\n \n }\n \n \n \n {currentEvent && currentEvent.title === \"Hidden\" ? \"Hidden\" : \"Devices:\"}\n \n {currentEvent && [...currentEvent.deviceSet].map((item, idx) => {\n return (\n \n MAC: {item}\n \n );\n })\n\n }\n \n {currentEvent && moment.duration(moment(currentEvent.end).diff(moment(currentEvent.start))).asMinutes()} min\n \n \n During: {currentEvent && moment(currentEvent.start).format('H:mm')} - {currentEvent && moment(currentEvent.end).format('H:mm')}\n \n \n \n setCalView(e)}\n view={calView}\n views={['day', 'week']}\n startAccessor=\"start\"\n endAccessor={({ end }) => new Date(end.getTime() - 1)}\n events={events}\n tooltipAccessor={(e) => e.title === \"Hidden\" ? \"Hidden\" : `Devices: ${e.title}`}\n localizer={localizer}\n resizable\n scrollToTime={handleTime}\n onSelectEvent={handleOpen}\n timeslots={1}\n style={{\n height: \"72vh\", width: \"100%\", marginTop: isSmall && 20\n }}\n formats={{\n dayFormat,\n eventTimeRangeFormat: (e) => { return \"\"; }\n }}\n components={{\n toolbar: isSmall ? CalendarToolbar : undefined,\n day: { event: EventComponentday },\n week: { event: EventComponentweek }\n }}\n dayLayoutAlgorithm=\"no-overlap\"\n onNavigate={navigateFunction}\n eventPropGetter={\n (event, start, end, isSelected) => {\n let newStyle = {\n backgroundColor: event.deviceSet.size > 1 ? theme.palette.green.main : theme.palette.mlGreen.main,\n /* color: isSmall ? event.title === 'Hidden' ? '#808080' : theme.palette.mlGreen.main : event.title === 'Hidden' ? '#808080' : '#FFFFFF', */\n borderRadius: event.title !== 'Hidden' && 10,\n border: \"none\",\n textAlign: \"center\",\n marginLeft: 5,\n paddingLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n return {\n className: \"\",\n style: newStyle\n };\n }\n }\n />\n \n );\n}\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { Typography, Box } from '@mui/material';\nimport { dayjs } from './dayjs-utils';\n\nexport default function Clock({ textColor, fontSize, variant, mr, tz, showTz }) {\n const [time, setTime] = useState(dayjs().tz(tz ?? Intl.DateTimeFormat().resolvedOptions().timeZone).format('HH:mm:ss'));\n\n const updateTime = useCallback(() => {\n setTime(dayjs().tz(tz ?? Intl.DateTimeFormat().resolvedOptions().timeZone).format('HH:mm:ss'));\n }, [tz]);\n\n useEffect(() => {\n const inter = setInterval(updateTime, 1000);\n return () => clearInterval(inter);\n }, [updateTime]);\n\n return (\n \n \n {time}\n \n \n {tz}\n \n \n );\n}","import * as React from 'react';\nimport { Box, Typography, Badge, styled } from \"@mui/material\";\n\nconst StyledBadge = styled(Badge)(({ status, badgewidth, badgeheight, badgeboxshadow, badgeanimation, lastseenminutes, theme, badgecolor }) => ({\n '& .MuiBadge-badge': {\n backgroundColor: badgecolor,\n color: badgecolor,\n width: badgewidth,\n height: badgeheight,\n borderRadius: \"50%\",\n boxShadow: badgeboxshadow,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n '&::after':\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n animation: 'ripple 1.2s infinite ease-in-out',\n border: '1px solid currentColor',\n content: '\"\"',\n display: !badgeanimation ? \"none\" : undefined\n }\n },\n '& .MuiBadge-root': {\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n backgroundColor: \"red\"\n },\n '@keyframes ripple': {\n '0%': {\n transform: 'scale(.8)',\n opacity: 1,\n },\n '100%': {\n transform: 'scale(2.5)',\n opacity: 0,\n },\n },\n}));\n\nexport default function StatusBadges({ textColor, scale }) {\n const badgeWidth = `calc(1.5vw * ${scale ?? 1})`\n const badgeHeight = `calc(1.5vw * ${scale ?? 1})`\n const fontSize = `calc(1vw * ${scale ?? 1})`\n const marginX = `calc(1.3vw * ${scale ?? 1})`\n\n return (\n \n \n \n Present\n \n \n \n Seen lately\n \n \n \n Away\n \n \n \n Occupied\n \n \n );\n}\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getLinearProgressUtilityClass(slot) {\n return generateUtilityClass('MuiLinearProgress', slot);\n}\nconst linearProgressClasses = generateUtilityClasses('MuiLinearProgress', ['root', 'colorPrimary', 'colorSecondary', 'determinate', 'indeterminate', 'buffer', 'query', 'dashed', 'dashedColorPrimary', 'dashedColorSecondary', 'bar', 'barColorPrimary', 'barColorSecondary', 'bar1Indeterminate', 'bar1Determinate', 'bar1Buffer', 'bar2Indeterminate', 'bar2Buffer']);\nexport default linearProgressClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"value\", \"valueBuffer\", \"variant\"];\n\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4,\n _t5,\n _t6;\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { keyframes, css, darken, lighten } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport useTheme from '../styles/useTheme';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getLinearProgressUtilityClass } from './linearProgressClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TRANSITION_DURATION = 4; // seconds\n\nconst indeterminate1Keyframe = keyframes(_t || (_t = _`\n 0% {\n left: -35%;\n right: 100%;\n }\n\n 60% {\n left: 100%;\n right: -90%;\n }\n\n 100% {\n left: 100%;\n right: -90%;\n }\n`));\nconst indeterminate2Keyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n left: -200%;\n right: 100%;\n }\n\n 60% {\n left: 107%;\n right: -8%;\n }\n\n 100% {\n left: 107%;\n right: -8%;\n }\n`));\nconst bufferKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n opacity: 1;\n background-position: 0 -23px;\n }\n\n 60% {\n opacity: 0;\n background-position: 0 -23px;\n }\n\n 100% {\n opacity: 1;\n background-position: -200px -23px;\n }\n`));\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, variant],\n dashed: ['dashed', `dashedColor${capitalize(color)}`],\n bar1: ['bar', `barColor${capitalize(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar1Indeterminate', variant === 'determinate' && 'bar1Determinate', variant === 'buffer' && 'bar1Buffer'],\n bar2: ['bar', variant !== 'buffer' && `barColor${capitalize(color)}`, variant === 'buffer' && `color${capitalize(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar2Indeterminate', variant === 'buffer' && 'bar2Buffer']\n };\n return composeClasses(slots, getLinearProgressUtilityClass, classes);\n};\n\nconst getColorShade = (theme, color) => {\n if (color === 'inherit') {\n return 'currentColor';\n }\n\n return theme.palette.mode === 'light' ? lighten(theme.palette[color].main, 0.62) : darken(theme.palette[color].main, 0.5);\n};\n\nconst LinearProgressRoot = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`color${capitalize(ownerState.color)}`], styles[ownerState.variant]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n position: 'relative',\n overflow: 'hidden',\n display: 'block',\n height: 4,\n zIndex: 0,\n // Fix Safari's bug during composition of different paint.\n '@media print': {\n colorAdjust: 'exact'\n },\n backgroundColor: getColorShade(theme, ownerState.color)\n}, ownerState.color === 'inherit' && ownerState.variant !== 'buffer' && {\n backgroundColor: 'none',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'currentColor',\n opacity: 0.3\n }\n}, ownerState.variant === 'buffer' && {\n backgroundColor: 'transparent'\n}, ownerState.variant === 'query' && {\n transform: 'rotate(180deg)'\n}));\nconst LinearProgressDashed = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Dashed',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.dashed, styles[`dashedColor${capitalize(ownerState.color)}`]];\n }\n})(({\n ownerState,\n theme\n}) => {\n const backgroundColor = getColorShade(theme, ownerState.color);\n return _extends({\n position: 'absolute',\n marginTop: 0,\n height: '100%',\n width: '100%'\n }, ownerState.color === 'inherit' && {\n opacity: 0.3\n }, {\n backgroundImage: `radial-gradient(${backgroundColor} 0%, ${backgroundColor} 16%, transparent 42%)`,\n backgroundSize: '10px 10px',\n backgroundPosition: '0 -23px'\n });\n}, css(_t4 || (_t4 = _`\n animation: ${0} 3s infinite linear;\n `), bufferKeyframe));\nconst LinearProgressBar1 = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Bar1',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.bar, styles[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar1Indeterminate, ownerState.variant === 'determinate' && styles.bar1Determinate, ownerState.variant === 'buffer' && styles.bar1Buffer];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n width: '100%',\n position: 'absolute',\n left: 0,\n bottom: 0,\n top: 0,\n transition: 'transform 0.2s linear',\n transformOrigin: 'left',\n backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : theme.palette[ownerState.color].main\n}, ownerState.variant === 'determinate' && {\n transition: `transform .${TRANSITION_DURATION}s linear`\n}, ownerState.variant === 'buffer' && {\n zIndex: 1,\n transition: `transform .${TRANSITION_DURATION}s linear`\n}), ({\n ownerState\n}) => (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && css(_t5 || (_t5 = _`\n width: auto;\n animation: ${0} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n `), indeterminate1Keyframe));\nconst LinearProgressBar2 = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Bar2',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.bar, styles[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar2Indeterminate, ownerState.variant === 'buffer' && styles.bar2Buffer];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n width: '100%',\n position: 'absolute',\n left: 0,\n bottom: 0,\n top: 0,\n transition: 'transform 0.2s linear',\n transformOrigin: 'left'\n}, ownerState.variant !== 'buffer' && {\n backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : theme.palette[ownerState.color].main\n}, ownerState.color === 'inherit' && {\n opacity: 0.3\n}, ownerState.variant === 'buffer' && {\n backgroundColor: getColorShade(theme, ownerState.color),\n transition: `transform .${TRANSITION_DURATION}s linear`\n}), ({\n ownerState\n}) => (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && css(_t6 || (_t6 = _`\n width: auto;\n animation: ${0} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;\n `), indeterminate2Keyframe));\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\nconst LinearProgress = /*#__PURE__*/React.forwardRef(function LinearProgress(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLinearProgress'\n });\n\n const {\n className,\n color = 'primary',\n value,\n valueBuffer,\n variant = 'indeterminate'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n const theme = useTheme();\n const rootProps = {};\n const inlineStyles = {\n bar1: {},\n bar2: {}\n };\n\n if (variant === 'determinate' || variant === 'buffer') {\n if (value !== undefined) {\n rootProps['aria-valuenow'] = Math.round(value);\n rootProps['aria-valuemin'] = 0;\n rootProps['aria-valuemax'] = 100;\n let transform = value - 100;\n\n if (theme.direction === 'rtl') {\n transform = -transform;\n }\n\n inlineStyles.bar1.transform = `translateX(${transform}%)`;\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: You need to provide a value prop ' + 'when using the determinate or buffer variant of LinearProgress .');\n }\n }\n\n if (variant === 'buffer') {\n if (valueBuffer !== undefined) {\n let transform = (valueBuffer || 0) - 100;\n\n if (theme.direction === 'rtl') {\n transform = -transform;\n }\n\n inlineStyles.bar2.transform = `translateX(${transform}%)`;\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: You need to provide a valueBuffer prop ' + 'when using the buffer variant of LinearProgress.');\n }\n }\n\n return /*#__PURE__*/_jsxs(LinearProgressRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"progressbar\"\n }, rootProps, {\n ref: ref\n }, other, {\n children: [variant === 'buffer' ? /*#__PURE__*/_jsx(LinearProgressDashed, {\n className: classes.dashed,\n ownerState: ownerState\n }) : null, /*#__PURE__*/_jsx(LinearProgressBar1, {\n className: classes.bar1,\n ownerState: ownerState,\n style: inlineStyles.bar1\n }), variant === 'determinate' ? null : /*#__PURE__*/_jsx(LinearProgressBar2, {\n className: classes.bar2,\n ownerState: ownerState,\n style: inlineStyles.bar2\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? LinearProgress.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 * 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. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary']), 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 * The value of the progress indicator for the determinate and buffer variants.\n * Value between 0 and 100.\n */\n value: PropTypes.number,\n\n /**\n * The value for the buffer variant.\n * Value between 0 and 100.\n */\n valueBuffer: PropTypes.number,\n\n /**\n * The variant to use.\n * Use indeterminate or query when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['buffer', 'determinate', 'indeterminate', 'query'])\n} : void 0;\nexport default LinearProgress;","import * as React from 'react';\nimport { useEffect, useState, useRef } from \"react\";\nimport Box from '@mui/material/Box';\nimport LinearProgress from '@mui/material/LinearProgress';\n\nexport default function LinearLoading({ data }) {\n const [progress, setProgress] = useState(0);\n const timerRef = useRef(null);\n\n useEffect(() => {\n if (timerRef.current) {\n setProgress(0);\n clearInterval(timerRef.current);\n }\n\n timerRef.current = setInterval(() => {\n setProgress(old => old + 100 / 60 / 10);\n }, 100);\n\n return () => {\n if (timerRef.current) clearInterval(timerRef.current);\n };\n\n }, [data]);\n\n return (\n \n \n \n );\n}","import * as React from 'react';\nimport { Typography, Box } from \"@mui/material\";\nimport StyledBadgeAvatar from \"../StyledBadgeAvatar\";\nimport { dayjs } from '../dayjs-utils';\n\n\n\nexport default function GridLarge(props) {\n const { lastseenminutes, avatarWidth, avatarHeight, busy, item, small, userObj } = props;\n\n return (\n <>\n \n\n\n \n \n {(item.first_name && item.last_name) ? item.first_name : item.username}\n \n \n\n\n \n = 5 ? 'Away' : lastseenminutes > -5 && lastseenminutes < 5 ? 'Online' : 'Offline' : 'Offline'}\n tooltipPlacement=\"bottom-end\"\n badgeOverlap=\"circular\"\n badgeAnchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n badgeVariant=\"dot\"\n badgeheight=\"25%\"\n badgewidth=\"25%\"\n badgeanimation={!busy ? lastseenminutes ? lastseenminutes > -5 && lastseenminutes < 5 : false : false}\n badgeboxshadow={`0 0 0 2px #fff`}\n badgeSx={{\n width: avatarWidth,\n height: avatarHeight,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n }}\n avatarSx={{\n width: avatarWidth,\n height: avatarHeight,\n borderWidth: 0,\n borderStyle: \"solid\",\n borderColor: busy ? \"#E72D50\" : lastseenminutes ? lastseenminutes <= 10 && lastseenminutes >= 5 ? \"#FCC041\" : lastseenminutes > -5 && lastseenminutes < 5 ? \"#8DBF30\" : '#adadb8' : '#adadb8',\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={item.id}\n lastseenminutes={lastseenminutes}\n busy={busy}\n skipCookie\n imageSize=\"_256\"\n />\n \n\n\n \n\n {(props.hasUserTitle && item?.title?.length > 0) &&\n \n {item.title}\n \n }\n \n\n\n \n {props.hasLocation ?\n \n {\n userObj?.timestamp\n ?\n lastseenminutes <= 10 && lastseenminutes >= 5\n ?\n dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds'))\n :\n lastseenminutes >= 10\n ?\n dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds'))\n :\n userObj.layer_name ?? dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds'))\n :\n 'Long time ago'\n }\n \n :\n \n {userObj?.timestamp ? dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds')) : 'Long time ago'}\n \n\n }\n \n \n \n );\n}","import * as React from 'react';\nimport { Typography, Box } from \"@mui/material\";\nimport StyledBadgeAvatar from \"../StyledBadgeAvatar\";\nimport { dayjs } from '../dayjs-utils';\n\n\n\nexport default function GridSmall(props) {\n const { lastseenminutes, avatarWidth, avatarHeight, busy, item, small, userObj } = props;\n\n return (\n <>\n \n\n \n = 5 ? 'Away' : lastseenminutes > -5 && lastseenminutes < 5 ? 'Online' : 'Offline' : 'Offline'}\n tooltipPlacement=\"bottom-end\"\n badgeOverlap=\"circular\"\n badgeAnchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n badgeVariant=\"dot\"\n badgeheight=\"25%\"\n badgewidth=\"25%\"\n badgeanimation={!busy ? lastseenminutes ? lastseenminutes > -5 && lastseenminutes < 5 : false : false}\n badgeboxshadow={`0 0 0 2px #fff`}\n badgeSx={{\n width: avatarWidth,\n height: avatarHeight,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n }}\n avatarSx={{\n width: \"105%\",\n height: \"105%\",\n borderWidth: 6,\n borderStyle: \"solid\",\n borderColor: busy ? \"#E72D50\" : lastseenminutes ? lastseenminutes <= 10 && lastseenminutes >= 5 ? \"#FCC041\" : lastseenminutes > -5 && lastseenminutes < 5 ? \"#8DBF30\" : '#adadb8' : '#adadb8',\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={item.id}\n lastseenminutes={lastseenminutes}\n busy={busy}\n skipCookie\n imageSize=\"_256\"\n />\n {(props.hasUserTitle && item?.title?.length > 0) &&\n \n {item.title}\n \n }\n \n \n \n {(item.first_name && item.last_name) ? item.first_name + \" \" + item.last_name : item.username}\n \n \n \n Last Seen:\n \n {props.hasLocation ?\n \n {\n userObj?.timestamp\n ?\n lastseenminutes <= 10 && lastseenminutes >= 5\n ?\n dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds'))\n :\n lastseenminutes >= 10\n ?\n dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds'))\n :\n userObj.layer_name ?? dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds'))\n :\n 'Long time ago'\n }\n \n :\n \n {userObj?.timestamp ? dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds')) : 'Long time ago'}\n \n\n }\n \n \n\n \n \n );\n}","import { useState, useRef, useMemo, useEffect } from 'react';\n\nfunction canUseDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\nfunction areObjectsEqualShallow(objectA, objectB) {\n return Object.keys(objectA).length === Object.keys(objectB).length && Object.keys(objectA).every(function (objectKey) {\n if (!Object.prototype.hasOwnProperty.call(objectB, objectKey)) {\n return false;\n }\n\n return objectA[objectKey] === objectB[objectKey];\n });\n}\nfunction sortAndMapPluginToOptions(plugins) {\n return plugins.concat().sort(function (a, b) {\n return a.name > b.name ? 1 : -1;\n }).map(function (plugin) {\n return plugin.options;\n });\n}\nfunction arePluginsEqual(pluginsA, pluginsB) {\n if (pluginsA.length !== pluginsB.length) return false;\n var optionsA = sortAndMapPluginToOptions(pluginsA);\n var optionsB = sortAndMapPluginToOptions(pluginsB);\n return optionsA.every(function (optionA, index) {\n var optionB = optionsB[index];\n return areObjectsEqualShallow(optionA, optionB);\n });\n}\n\nfunction Alignment(align, viewSize) {\n var predefined = {\n start: start,\n center: center,\n end: end\n };\n\n function start() {\n return 0;\n }\n\n function center(n) {\n return end(n) / 2;\n }\n\n function end(n) {\n return viewSize - n;\n }\n\n function percent() {\n return viewSize * Number(align);\n }\n\n function measure(n) {\n if (typeof align === 'number') return percent();\n return predefined[align](n);\n }\n\n var self = {\n measure: measure\n };\n return self;\n}\n\nfunction Animation(callback) {\n var animationFrame = 0;\n\n function ifAnimating(active, cb) {\n return function () {\n if (active === !!animationFrame) cb();\n };\n }\n\n function start() {\n animationFrame = window.requestAnimationFrame(callback);\n }\n\n function stop() {\n window.cancelAnimationFrame(animationFrame);\n animationFrame = 0;\n }\n\n var self = {\n proceed: ifAnimating(true, start),\n start: ifAnimating(false, start),\n stop: ifAnimating(true, stop)\n };\n return self;\n}\n\nfunction Axis(axis, direction) {\n var scroll = axis === 'y' ? 'y' : 'x';\n var cross = axis === 'y' ? 'x' : 'y';\n var startEdge = getStartEdge();\n var endEdge = getEndEdge();\n\n function measureSize(rect) {\n var width = rect.width,\n height = rect.height;\n return scroll === 'x' ? width : height;\n }\n\n function getStartEdge() {\n if (scroll === 'y') return 'top';\n return direction === 'rtl' ? 'right' : 'left';\n }\n\n function getEndEdge() {\n if (scroll === 'y') return 'bottom';\n return direction === 'rtl' ? 'left' : 'right';\n }\n\n var self = {\n scroll: scroll,\n cross: cross,\n startEdge: startEdge,\n endEdge: endEdge,\n measureSize: measureSize\n };\n return self;\n}\n\nfunction map(value, iStart, iStop, oStart, oStop) {\n return oStart + (oStop - oStart) * ((value - iStart) / (iStop - iStart));\n}\n\nfunction mathAbs(n) {\n return Math.abs(n);\n}\n\nfunction mathSign(n) {\n return !n ? 0 : n / mathAbs(n);\n}\n\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\n\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n var diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\n\nfunction roundToDecimals(decimalPoints) {\n var pow = Math.pow(10, decimalPoints);\n return function (n) {\n return Math.round(n * pow) / pow;\n };\n}\n\nfunction debounce(callback, time) {\n var timeout = 0;\n return function () {\n window.clearTimeout(timeout);\n timeout = window.setTimeout(callback, time) || 0;\n };\n}\n\nfunction arrayGroup(array, size) {\n var groups = [];\n\n for (var i = 0; i < array.length; i += size) {\n groups.push(array.slice(i, i + size));\n }\n\n return groups;\n}\n\nfunction arrayKeys(array) {\n return Object.keys(array).map(Number);\n}\n\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\n\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\n\nfunction Limit(min, max) {\n var length = mathAbs(min - max);\n\n function reachedMin(n) {\n return n < min;\n }\n\n function reachedMax(n) {\n return n > max;\n }\n\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n\n var self = {\n length: length,\n max: max,\n min: min,\n constrain: constrain,\n reachedAny: reachedAny,\n reachedMax: reachedMax,\n reachedMin: reachedMin,\n removeOffset: removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n var _a = Limit(0, max),\n min = _a.min,\n constrain = _a.constrain;\n\n var loopEnd = max + 1;\n var counter = withinLimit(start);\n\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n\n function get() {\n return counter;\n }\n\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n\n function add(n) {\n return set(get() + n);\n }\n\n function clone() {\n return Counter(max, get(), loop);\n }\n\n var self = {\n add: add,\n clone: clone,\n get: get,\n set: set,\n min: min,\n max: max\n };\n return self;\n}\n\nfunction Direction(direction) {\n var sign = direction === 'rtl' ? -1 : 1;\n\n function apply(n) {\n return n * sign;\n }\n\n var self = {\n apply: apply\n };\n return self;\n}\n\nfunction EventStore() {\n var listeners = [];\n\n function add(node, type, handler, options) {\n if (options === void 0) {\n options = false;\n }\n\n node.addEventListener(type, handler, options);\n listeners.push(function () {\n return node.removeEventListener(type, handler, options);\n });\n return self;\n }\n\n function removeAll() {\n listeners = listeners.filter(function (remove) {\n return remove();\n });\n return self;\n }\n\n var self = {\n add: add,\n removeAll: removeAll\n };\n return self;\n}\n\nfunction Vector1D(value) {\n var vector = value;\n\n function get() {\n return vector;\n }\n\n function set(n) {\n vector = readNumber(n);\n return self;\n }\n\n function add(n) {\n vector += readNumber(n);\n return self;\n }\n\n function subtract(n) {\n vector -= readNumber(n);\n return self;\n }\n\n function multiply(n) {\n vector *= n;\n return self;\n }\n\n function divide(n) {\n vector /= n;\n return self;\n }\n\n function normalize() {\n if (vector !== 0) divide(vector);\n return self;\n }\n\n function readNumber(n) {\n return typeof n === 'number' ? n : n.get();\n }\n\n var self = {\n add: add,\n divide: divide,\n get: get,\n multiply: multiply,\n normalize: normalize,\n set: set,\n subtract: subtract\n };\n return self;\n}\n\nfunction DragHandler(axis, direction, rootNode, target, dragFree, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, events, loop, skipSnaps) {\n var crossAxis = axis.cross;\n var focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n var dragStartPoint = Vector1D(0);\n var activationEvents = EventStore();\n var interactionEvents = EventStore();\n var snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n var freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n var baseSpeed = dragFree ? 5 : 16;\n var baseMass = 1;\n var dragThreshold = 20;\n var startScroll = 0;\n var startCross = 0;\n var pointerIsDown = false;\n var preventScroll = false;\n var preventClick = false;\n var isMouse = false;\n\n function addActivationEvents() {\n var node = rootNode;\n activationEvents.add(node, 'touchmove', function () {\n return undefined;\n }).add(node, 'touchend', function () {\n return undefined;\n }).add(node, 'touchstart', down).add(node, 'mousedown', down).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click);\n }\n\n function addInteractionEvents() {\n var node = !isMouse ? rootNode : document;\n interactionEvents.add(node, 'touchmove', move).add(node, 'touchend', up).add(node, 'mousemove', move).add(node, 'mouseup', up);\n }\n\n function removeAllEvents() {\n activationEvents.removeAll();\n interactionEvents.removeAll();\n }\n\n function isFocusNode(node) {\n var name = node.nodeName || '';\n return focusNodes.indexOf(name) > -1;\n }\n\n function forceBoost() {\n var boost = dragFree ? freeForceBoost : snapForceBoost;\n var type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n\n function allowedForce(force, targetChanged) {\n var next = index.clone().add(mathSign(force) * -1);\n var isEdge = next.get() === index.min || next.get() === index.max;\n var baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < dragThreshold) return baseForce;\n if (!loop && isEdge) return baseForce * 0.4;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n\n function down(evt) {\n isMouse = evt.type === 'mousedown';\n if (isMouse && evt.button !== 0) return;\n var isMoving = deltaAbs(target.get(), location.get()) >= 2;\n var clearPreventClick = isMouse || !isMoving;\n var isNotFocusNode = !isFocusNode(evt.target);\n var preventDefault = isMoving || isMouse && isNotFocusNode;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n dragStartPoint.set(target);\n target.set(location);\n scrollBody.useBaseMass().useSpeed(80);\n addInteractionEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n events.emit('pointerDown');\n if (clearPreventClick) preventClick = false;\n if (preventDefault) evt.preventDefault();\n }\n\n function move(evt) {\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n var lastScroll = dragTracker.readPoint(evt);\n var lastCross = dragTracker.readPoint(evt, crossAxis);\n var diffScroll = deltaAbs(lastScroll, startScroll);\n var diffCross = deltaAbs(lastCross, startCross);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll && !preventClick) return up(evt);\n }\n\n var diff = dragTracker.pointerMove(evt);\n if (!preventClick && diff) preventClick = true;\n animation.start();\n target.add(direction.apply(diff));\n evt.preventDefault();\n }\n\n function up(evt) {\n var currentLocation = scrollTarget.byDistance(0, false);\n var targetChanged = currentLocation.index !== index.get();\n var rawForce = dragTracker.pointerUp(evt) * forceBoost();\n var force = allowedForce(direction.apply(rawForce), targetChanged);\n var forceFactor = factorAbs(rawForce, force);\n var isMoving = deltaAbs(target.get(), dragStartPoint.get()) >= 0.5;\n var isVigorous = targetChanged && forceFactor > 0.75;\n var isBelowThreshold = mathAbs(rawForce) < dragThreshold;\n var speed = isVigorous ? 10 : baseSpeed;\n var mass = isVigorous ? baseMass + 2.5 * forceFactor : baseMass;\n if (isMoving && !isMouse) preventClick = true;\n preventScroll = false;\n pointerIsDown = false;\n interactionEvents.removeAll();\n scrollBody.useSpeed(isBelowThreshold ? 9 : speed).useMass(mass);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n events.emit('pointerUp');\n }\n\n function click(evt) {\n if (preventClick) evt.preventDefault();\n }\n\n function clickAllowed() {\n return !preventClick;\n }\n\n function pointerDown() {\n return pointerIsDown;\n }\n\n var self = {\n addActivationEvents: addActivationEvents,\n clickAllowed: clickAllowed,\n pointerDown: pointerDown,\n removeAllEvents: removeAllEvents\n };\n return self;\n}\n\nfunction DragTracker(axis, pxToPercent) {\n var logInterval = 170;\n var startEvent;\n var lastEvent;\n\n function isTouchEvent(evt) {\n return typeof TouchEvent !== 'undefined' && evt instanceof TouchEvent;\n }\n\n function readTime(evt) {\n return evt.timeStamp;\n }\n\n function readPoint(evt, evtAxis) {\n var property = evtAxis || axis.scroll;\n var coord = \"client\" + (property === 'x' ? 'X' : 'Y');\n return (isTouchEvent(evt) ? evt.touches[0] : evt)[coord];\n }\n\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return pxToPercent.measure(readPoint(evt));\n }\n\n function pointerMove(evt) {\n var diff = readPoint(evt) - readPoint(lastEvent);\n var expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return pxToPercent.measure(diff);\n }\n\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n var diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n var diffTime = readTime(evt) - readTime(startEvent);\n var expired = readTime(evt) - readTime(lastEvent) > logInterval;\n var force = diffDrag / diffTime;\n var isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? pxToPercent.measure(force) : 0;\n }\n\n var self = {\n isTouchEvent: isTouchEvent,\n pointerDown: pointerDown,\n pointerMove: pointerMove,\n pointerUp: pointerUp,\n readPoint: readPoint\n };\n return self;\n}\n\nfunction PxToPercent(viewInPx) {\n var totalPercent = 100;\n\n function measure(n) {\n if (viewInPx === 0) return 0;\n return n / viewInPx * totalPercent;\n }\n\n var self = {\n measure: measure,\n totalPercent: totalPercent\n };\n return self;\n}\n\nfunction ScrollBody(location, baseSpeed, baseMass) {\n var roundToTwoDecimals = roundToDecimals(2);\n var velocity = Vector1D(0);\n var acceleration = Vector1D(0);\n var attraction = Vector1D(0);\n var attractionDirection = 0;\n var speed = baseSpeed;\n var mass = baseMass;\n\n function update() {\n velocity.add(acceleration);\n location.add(velocity);\n acceleration.multiply(0);\n }\n\n function applyForce(force) {\n force.divide(mass);\n acceleration.add(force);\n }\n\n function seek(target) {\n attraction.set(target).subtract(location);\n var magnitude = map(attraction.get(), 0, 100, 0, speed);\n attractionDirection = mathSign(attraction.get());\n attraction.normalize().multiply(magnitude).subtract(velocity);\n applyForce(attraction);\n return self;\n }\n\n function settle(target) {\n var diff = target.get() - location.get();\n var hasSettled = !roundToTwoDecimals(diff);\n if (hasSettled) location.set(target);\n return hasSettled;\n }\n\n function direction() {\n return attractionDirection;\n }\n\n function useBaseSpeed() {\n return useSpeed(baseSpeed);\n }\n\n function useBaseMass() {\n return useMass(baseMass);\n }\n\n function useSpeed(n) {\n speed = n;\n return self;\n }\n\n function useMass(n) {\n mass = n;\n return self;\n }\n\n var self = {\n direction: direction,\n seek: seek,\n settle: settle,\n update: update,\n useBaseMass: useBaseMass,\n useBaseSpeed: useBaseSpeed,\n useMass: useMass,\n useSpeed: useSpeed\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody) {\n var pullBackThreshold = 10;\n var edgeOffsetTolerance = 50;\n var maxFriction = 0.85;\n var disabled = false;\n\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n var edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n var diffToEdge = mathAbs(limit[edge] - location.get());\n var diffToTarget = target.get() - location.get();\n var friction = Math.min(diffToEdge / edgeOffsetTolerance, maxFriction);\n target.subtract(diffToTarget * friction);\n\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useSpeed(10).useMass(3);\n }\n }\n\n function toggleActive(active) {\n disabled = !active;\n }\n\n var self = {\n constrain: constrain,\n toggleActive: toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snaps, snapsAligned, containScroll) {\n var scrollBounds = Limit(-contentSize + viewSize, snaps[0]);\n var snapsBounded = snapsAligned.map(scrollBounds.constrain);\n var snapsContained = measureContained();\n\n function findDuplicates() {\n var startSnap = snapsBounded[0];\n var endSnap = arrayLast(snapsBounded);\n var min = snapsBounded.lastIndexOf(startSnap);\n var max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n\n function measureContained() {\n if (contentSize <= viewSize) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n\n var _a = findDuplicates(),\n min = _a.min,\n max = _a.max;\n\n return snapsBounded.slice(min, max);\n }\n\n var self = {\n snapsContained: snapsContained\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n var limit = measureLimit();\n\n function measureLimit() {\n var startSnap = scrollSnaps[0];\n var endSnap = arrayLast(scrollSnaps);\n var min = loop ? startSnap - contentSize : endSnap;\n var max = startSnap;\n return Limit(min, max);\n }\n\n var self = {\n limit: limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, pxToPercent, limit, location, vectors) {\n var min = limit.min + pxToPercent.measure(0.1);\n var max = limit.max + pxToPercent.measure(0.1);\n\n var _a = Limit(min, max),\n reachedMin = _a.reachedMin,\n reachedMax = _a.reachedMax;\n\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n var loopDistance = contentSize * (direction * -1);\n vectors.forEach(function (v) {\n return v.add(loopDistance);\n });\n }\n\n var self = {\n loop: loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n var max = limit.max,\n scrollLength = limit.length;\n\n function get(n) {\n var currentLocation = n - max;\n return currentLocation / -scrollLength;\n }\n\n var self = {\n get: get\n };\n return self;\n}\n\nfunction ScrollSnap(axis, alignment, pxToPercent, containerRect, slideRects, slidesToScroll) {\n var startEdge = axis.startEdge,\n endEdge = axis.endEdge;\n var snaps = measureUnaligned();\n var snapsAligned = measureAligned();\n\n function measureSizes() {\n return arrayGroup(slideRects, slidesToScroll).map(function (rects) {\n return arrayLast(rects)[endEdge] - rects[0][startEdge];\n }).map(pxToPercent.measure).map(mathAbs);\n }\n\n function measureUnaligned() {\n return slideRects.map(function (rect) {\n return containerRect[startEdge] - rect[startEdge];\n }).map(pxToPercent.measure).map(function (snap) {\n return -mathAbs(snap);\n });\n }\n\n function measureAligned() {\n var groupedSnaps = arrayGroup(snaps, slidesToScroll).map(function (g) {\n return g[0];\n });\n var alignments = measureSizes().map(alignment.measure);\n return groupedSnaps.map(function (snap, index) {\n return snap + alignments[index];\n });\n }\n\n var self = {\n snaps: snaps,\n snapsAligned: snapsAligned\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n var reachedAny = limit.reachedAny,\n removeOffset = limit.removeOffset,\n constrain = limit.constrain;\n\n function minDistance(d1, d2) {\n return mathAbs(d1) < mathAbs(d2) ? d1 : d2;\n }\n\n function findTargetSnap(target) {\n var distance = loop ? removeOffset(target) : constrain(target);\n var ascDiffsToSnaps = scrollSnaps.map(function (scrollSnap) {\n return scrollSnap - distance;\n }).map(function (diffToSnap) {\n return shortcut(diffToSnap, 0);\n }).map(function (diff, i) {\n return {\n diff: diff,\n index: i\n };\n }).sort(function (d1, d2) {\n return mathAbs(d1.diff) - mathAbs(d2.diff);\n });\n var index = ascDiffsToSnaps[0].index;\n return {\n index: index,\n distance: distance\n };\n }\n\n function shortcut(target, direction) {\n var t1 = target;\n var t2 = target + contentSize;\n var t3 = target - contentSize;\n if (!loop) return t1;\n if (!direction) return minDistance(minDistance(t1, t2), t3);\n var shortest = minDistance(t1, direction === 1 ? t2 : t3);\n return mathAbs(shortest) * direction;\n }\n\n function byIndex(index, direction) {\n var diffToSnap = scrollSnaps[index] - targetVector.get();\n var distance = shortcut(diffToSnap, direction);\n return {\n index: index,\n distance: distance\n };\n }\n\n function byDistance(distance, snap) {\n var target = targetVector.get() + distance;\n\n var _a = findTargetSnap(target),\n index = _a.index,\n targetSnapDistance = _a.distance;\n\n var reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index: index,\n distance: distance\n };\n var diffToSnap = scrollSnaps[index] - targetSnapDistance;\n var snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index: index,\n distance: snapDistance\n };\n }\n\n var self = {\n byDistance: byDistance,\n byIndex: byIndex,\n shortcut: shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollTarget, targetVector, events) {\n function scrollTo(target) {\n var distanceDiff = target.distance;\n var indexDiff = target.index !== indexCurrent.get();\n\n if (distanceDiff) {\n animation.start();\n targetVector.add(distanceDiff);\n }\n\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n events.emit('select');\n }\n }\n\n function distance(n, snap) {\n var target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n\n function index(n, direction) {\n var targetIndex = indexCurrent.clone().set(n);\n var target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n\n var self = {\n distance: distance,\n index: index\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizesWithGaps, scrollSnaps, slidesInView, scrollLocation, slides) {\n var ascItems = arrayKeys(slideSizesWithGaps);\n var descItems = arrayKeys(slideSizesWithGaps).reverse();\n var loopPoints = startPoints().concat(endPoints());\n\n function removeSlideSizes(indexes, from) {\n return indexes.reduce(function (a, i) {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n\n function slidesInGap(indexes, gap) {\n return indexes.reduce(function (a, i) {\n var remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n\n function findLoopPoints(indexes, edge) {\n var isStartEdge = edge === 'start';\n var offset = isStartEdge ? -contentSize : contentSize;\n var slideBounds = slidesInView.findSlideBounds([offset]);\n return indexes.map(function (index) {\n var initial = isStartEdge ? 0 : -contentSize;\n var altered = isStartEdge ? contentSize : 0;\n var bounds = slideBounds.filter(function (b) {\n return b.index === index;\n })[0];\n var point = bounds[isStartEdge ? 'end' : 'start'];\n\n var getTarget = function () {\n return scrollLocation.get() > point ? initial : altered;\n };\n\n return {\n point: point,\n getTarget: getTarget,\n index: index,\n location: -1\n };\n });\n }\n\n function startPoints() {\n var gap = scrollSnaps[0] - 1;\n var indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, 'end');\n }\n\n function endPoints() {\n var gap = viewSize - scrollSnaps[0] - 1;\n var indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, 'start');\n }\n\n function canLoop() {\n return loopPoints.every(function (_a) {\n var index = _a.index;\n var otherIndexes = ascItems.filter(function (i) {\n return i !== index;\n });\n return removeSlideSizes(otherIndexes, viewSize) <= 0;\n });\n }\n\n function loop() {\n loopPoints.forEach(function (loopPoint) {\n var getTarget = loopPoint.getTarget,\n location = loopPoint.location,\n index = loopPoint.index;\n var target = getTarget();\n\n if (target !== location) {\n slides[index].style[axis.startEdge] = target + \"%\";\n loopPoint.location = target;\n }\n });\n }\n\n function clear() {\n loopPoints.forEach(function (_a) {\n var index = _a.index;\n slides[index].style[axis.startEdge] = '';\n });\n }\n\n var self = {\n canLoop: canLoop,\n clear: clear,\n loop: loop,\n loopPoints: loopPoints\n };\n return self;\n}\n\nfunction SlidesInView(viewSize, contentSize, slideSizes, snaps, limit, loop, inViewThreshold) {\n var removeOffset = limit.removeOffset,\n constrain = limit.constrain;\n var cachedThreshold = Math.min(Math.max(inViewThreshold, 0.01), 0.99);\n var cachedOffsets = loop ? [0, contentSize, -contentSize] : [0];\n var cachedBounds = findSlideBounds(cachedOffsets, cachedThreshold);\n\n function findSlideBounds(offsets, threshold) {\n var slideOffsets = offsets || cachedOffsets;\n var slideThreshold = threshold || 0;\n var thresholds = slideSizes.map(function (s) {\n return s * slideThreshold;\n });\n return slideOffsets.reduce(function (list, offset) {\n var bounds = snaps.map(function (snap, index) {\n return {\n start: snap - slideSizes[index] + thresholds[index] + offset,\n end: snap + viewSize - thresholds[index] + offset,\n index: index\n };\n });\n return list.concat(bounds);\n }, []);\n }\n\n function check(location, bounds) {\n var limitedLocation = loop ? removeOffset(location) : constrain(location);\n var slideBounds = bounds || cachedBounds;\n return slideBounds.reduce(function (list, slideBound) {\n var index = slideBound.index,\n start = slideBound.start,\n end = slideBound.end;\n var inList = list.indexOf(index) !== -1;\n var inView = start < limitedLocation && end > limitedLocation;\n return !inList && inView ? list.concat([index]) : list;\n }, []);\n }\n\n var self = {\n check: check,\n findSlideBounds: findSlideBounds\n };\n return self;\n}\n\nfunction SlideSizes(axis, pxToPercent, slides, slideRects, loop) {\n var measureSize = axis.measureSize,\n startEdge = axis.startEdge,\n endEdge = axis.endEdge;\n var sizesInPx = slideRects.map(measureSize);\n var slideSizes = sizesInPx.map(pxToPercent.measure);\n var slideSizesWithGaps = measureWithGaps();\n\n function measureWithGaps() {\n return slideRects.map(function (rect, index, rects) {\n var isLast = index === arrayLastIndex(rects);\n var style = window.getComputedStyle(arrayLast(slides));\n var endGap = parseFloat(style.getPropertyValue(\"margin-\" + endEdge));\n if (isLast) return sizesInPx[index] + (loop ? endGap : 0);\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(pxToPercent.measure).map(mathAbs);\n }\n\n var self = {\n slideSizes: slideSizes,\n slideSizesWithGaps: slideSizesWithGaps\n };\n return self;\n}\n\nfunction Translate(axis, direction, container) {\n var translate = axis.scroll === 'x' ? x : y;\n var containerStyle = container.style;\n var disabled = false;\n\n function x(n) {\n return \"translate3d(\" + n + \"%,0px,0px)\";\n }\n\n function y(n) {\n return \"translate3d(0px,\" + n + \"%,0px)\";\n }\n\n function to(target) {\n if (disabled) return;\n containerStyle.transform = translate(direction.apply(target.get()));\n }\n\n function toggleActive(active) {\n disabled = !active;\n }\n\n function clear() {\n containerStyle.transform = '';\n }\n\n var self = {\n clear: clear,\n to: to,\n toggleActive: toggleActive\n };\n return self;\n}\n\nfunction Engine(root, container, slides, options, events) {\n // Options\n var align = options.align,\n scrollAxis = options.axis,\n contentDirection = options.direction,\n startIndex = options.startIndex,\n inViewThreshold = options.inViewThreshold,\n loop = options.loop,\n speed = options.speed,\n dragFree = options.dragFree,\n slidesToScroll = options.slidesToScroll,\n skipSnaps = options.skipSnaps,\n containScroll = options.containScroll; // Measurements\n\n var containerRect = container.getBoundingClientRect();\n var slideRects = slides.map(function (slide) {\n return slide.getBoundingClientRect();\n });\n var direction = Direction(contentDirection);\n var axis = Axis(scrollAxis, contentDirection);\n var pxToPercent = PxToPercent(axis.measureSize(containerRect));\n var viewSize = pxToPercent.totalPercent;\n var alignment = Alignment(align, viewSize);\n\n var _a = SlideSizes(axis, pxToPercent, slides, slideRects, loop),\n slideSizes = _a.slideSizes,\n slideSizesWithGaps = _a.slideSizesWithGaps;\n\n var _b = ScrollSnap(axis, alignment, pxToPercent, containerRect, slideRects, slidesToScroll),\n snaps = _b.snaps,\n snapsAligned = _b.snapsAligned;\n\n var contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n var snapsContained = ScrollContain(viewSize, contentSize, snaps, snapsAligned, containScroll).snapsContained;\n var contain = !loop && containScroll !== '';\n var scrollSnaps = contain ? snapsContained : snapsAligned;\n var limit = ScrollLimit(contentSize, scrollSnaps, loop).limit; // Indexes\n\n var index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n var indexPrevious = index.clone();\n var slideIndexes = arrayKeys(slides); // Draw\n\n var update = function () {\n if (!loop) engine.scrollBounds.constrain(engine.dragHandler.pointerDown());\n engine.scrollBody.seek(target).update();\n var settled = engine.scrollBody.settle(target);\n\n if (settled && !engine.dragHandler.pointerDown()) {\n engine.animation.stop();\n events.emit('settle');\n }\n\n if (!settled) {\n events.emit('scroll');\n }\n\n if (loop) {\n engine.scrollLooper.loop(engine.scrollBody.direction());\n engine.slideLooper.loop();\n }\n\n engine.translate.to(location);\n engine.animation.proceed();\n }; // Shared\n\n\n var animation = Animation(update);\n var startLocation = scrollSnaps[index.get()];\n var location = Vector1D(startLocation);\n var target = Vector1D(startLocation);\n var scrollBody = ScrollBody(location, speed, 1);\n var scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n var scrollTo = ScrollTo(animation, index, indexPrevious, scrollTarget, target, events);\n var slidesInView = SlidesInView(viewSize, contentSize, slideSizes, snaps, limit, loop, inViewThreshold); // DragHandler\n\n var dragHandler = DragHandler(axis, direction, root, target, dragFree, DragTracker(axis, pxToPercent), location, animation, scrollTo, scrollBody, scrollTarget, index, events, loop, skipSnaps); // Slider\n\n var engine = {\n containerRect: containerRect,\n slideRects: slideRects,\n animation: animation,\n axis: axis,\n direction: direction,\n dragHandler: dragHandler,\n eventStore: EventStore(),\n pxToPercent: pxToPercent,\n index: index,\n indexPrevious: indexPrevious,\n limit: limit,\n location: location,\n options: options,\n scrollBody: scrollBody,\n scrollBounds: ScrollBounds(limit, location, target, scrollBody),\n scrollLooper: ScrollLooper(contentSize, pxToPercent, limit, location, [location, target]),\n scrollProgress: ScrollProgress(limit),\n scrollSnaps: scrollSnaps,\n scrollTarget: scrollTarget,\n scrollTo: scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizesWithGaps, scrollSnaps, slidesInView, location, slides),\n slidesInView: slidesInView,\n slideIndexes: slideIndexes,\n target: target,\n translate: Translate(axis, direction, container)\n };\n return engine;\n}\n\nfunction EventEmitter() {\n var listeners = {};\n\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n\n function emit(evt) {\n getListeners(evt).forEach(function (e) {\n return e(evt);\n });\n return self;\n }\n\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(function (e) {\n return e !== cb;\n });\n return self;\n }\n\n var self = {\n emit: emit,\n off: off,\n on: on\n };\n return self;\n}\n\nvar defaultOptions = {\n align: 'center',\n axis: 'x',\n containScroll: '',\n direction: 'ltr',\n dragFree: false,\n draggable: true,\n inViewThreshold: 0,\n loop: false,\n skipSnaps: false,\n slidesToScroll: 1,\n speed: 10,\n startIndex: 0\n};\n\nfunction OptionsPseudo(node) {\n var pseudoString = getComputedStyle(node, ':before').content;\n\n function get() {\n try {\n return JSON.parse(pseudoString.slice(1, -1).replace(/\\\\/g, ''));\n } catch (error) {} // eslint-disable-line no-empty\n\n\n return {};\n }\n\n var self = {\n get: get\n };\n return self;\n}\n\nfunction EmblaCarousel(nodes, userOptions, userPlugins) {\n var events = EventEmitter();\n var debouncedResize = debounce(resize, 500);\n var reInit = reActivate;\n var on = events.on,\n off = events.off;\n var engine;\n var activated = false;\n var optionsBase = Object.assign({}, defaultOptions, EmblaCarousel.globalOptions);\n var options = Object.assign({}, optionsBase);\n var optionsPseudo;\n var plugins;\n var rootSize = 0;\n var root;\n var container;\n var slides;\n\n function setupElements() {\n var providedContainer = 'container' in nodes && nodes.container;\n var providedSlides = 'slides' in nodes && nodes.slides;\n root = 'root' in nodes ? nodes.root : nodes;\n container = providedContainer || root.children[0];\n slides = providedSlides || [].slice.call(container.children);\n optionsPseudo = OptionsPseudo(root);\n }\n\n function activate(withOptions, withPlugins) {\n setupElements();\n optionsBase = Object.assign({}, optionsBase, withOptions);\n options = Object.assign({}, optionsBase, optionsPseudo.get());\n plugins = Object.assign([], withPlugins);\n engine = Engine(root, container, slides, options, events);\n engine.eventStore.add(window, 'resize', debouncedResize);\n engine.translate.to(engine.location);\n rootSize = engine.axis.measureSize(root.getBoundingClientRect());\n plugins.forEach(function (plugin) {\n return plugin.init(self);\n });\n\n if (options.loop) {\n if (!engine.slideLooper.canLoop()) {\n deActivate();\n return activate({\n loop: false\n }, withPlugins);\n }\n\n engine.slideLooper.loop();\n }\n\n if (options.draggable && container.offsetParent && slides.length) {\n engine.dragHandler.addActivationEvents();\n }\n\n if (!activated) {\n setTimeout(function () {\n return events.emit('init');\n }, 0);\n activated = true;\n }\n }\n\n function reActivate(withOptions, withPlugins) {\n if (!activated) return;\n var startIndex = selectedScrollSnap();\n var newOptions = Object.assign({\n startIndex: startIndex\n }, withOptions);\n deActivate();\n activate(newOptions, withPlugins || plugins);\n events.emit('reInit');\n }\n\n function deActivate() {\n engine.dragHandler.removeAllEvents();\n engine.animation.stop();\n engine.eventStore.removeAll();\n engine.translate.clear();\n engine.slideLooper.clear();\n plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n }\n\n function destroy() {\n if (!activated) return;\n deActivate();\n activated = false;\n events.emit('destroy');\n }\n\n function resize() {\n if (!activated) return;\n var size = engine.axis.measureSize(root.getBoundingClientRect());\n if (rootSize !== size) reActivate();\n events.emit('resize');\n }\n\n function slidesInView(target) {\n var location = engine[target ? 'target' : 'location'].get();\n var type = options.loop ? 'removeOffset' : 'constrain';\n return engine.slidesInView.check(engine.limit[type](location));\n }\n\n function slidesNotInView(target) {\n var inView = slidesInView(target);\n return engine.slideIndexes.filter(function (index) {\n return inView.indexOf(index) === -1;\n });\n }\n\n function scrollTo(index, jump, direction) {\n engine.scrollBody.useBaseMass().useSpeed(jump ? 100 : options.speed);\n if (activated) engine.scrollTo.index(index, direction || 0);\n }\n\n function scrollNext(jump) {\n var next = engine.index.clone().add(1);\n scrollTo(next.get(), jump === true, -1);\n }\n\n function scrollPrev(jump) {\n var prev = engine.index.clone().add(-1);\n scrollTo(prev.get(), jump === true, 1);\n }\n\n function canScrollNext() {\n var next = engine.index.clone().add(1);\n return next.get() !== selectedScrollSnap();\n }\n\n function canScrollPrev() {\n var prev = engine.index.clone().add(-1);\n return prev.get() !== selectedScrollSnap();\n }\n\n function scrollSnapList() {\n return engine.scrollSnaps.map(engine.scrollProgress.get);\n }\n\n function scrollProgress() {\n return engine.scrollProgress.get(engine.location.get());\n }\n\n function selectedScrollSnap() {\n return engine.index.get();\n }\n\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n\n function clickAllowed() {\n return engine.dragHandler.clickAllowed();\n }\n\n function internalEngine() {\n return engine;\n }\n\n function rootNode() {\n return root;\n }\n\n function containerNode() {\n return container;\n }\n\n function slideNodes() {\n return slides;\n }\n\n var self = {\n canScrollNext: canScrollNext,\n canScrollPrev: canScrollPrev,\n clickAllowed: clickAllowed,\n containerNode: containerNode,\n internalEngine: internalEngine,\n destroy: destroy,\n off: off,\n on: on,\n previousScrollSnap: previousScrollSnap,\n reInit: reInit,\n rootNode: rootNode,\n scrollNext: scrollNext,\n scrollPrev: scrollPrev,\n scrollProgress: scrollProgress,\n scrollSnapList: scrollSnapList,\n scrollTo: scrollTo,\n selectedScrollSnap: selectedScrollSnap,\n slideNodes: slideNodes,\n slidesInView: slidesInView,\n slidesNotInView: slidesNotInView\n };\n activate(userOptions, userPlugins);\n return self;\n}\n\nEmblaCarousel.globalOptions = undefined;\n\nfunction useEmblaCarousel(options, plugins) {\n if (options === void 0) {\n options = {};\n }\n\n if (plugins === void 0) {\n plugins = [];\n }\n\n var _a = useState(),\n embla = _a[0],\n setEmbla = _a[1];\n\n var _b = useState(),\n viewport = _b[0],\n setViewport = _b[1];\n\n var storedOptions = useRef(options);\n var storedPlugins = useRef(plugins);\n var activeOptions = useMemo(function () {\n if (!areObjectsEqualShallow(storedOptions.current, options)) {\n storedOptions.current = options;\n }\n\n return storedOptions.current;\n }, [storedOptions, options]);\n var activePlugins = useMemo(function () {\n if (!arePluginsEqual(storedPlugins.current, plugins)) {\n storedPlugins.current = plugins;\n }\n\n return storedPlugins.current;\n }, [storedPlugins, plugins]);\n useEffect(function () {\n if (canUseDOM() && viewport) {\n EmblaCarousel.globalOptions = useEmblaCarousel.globalOptions;\n var newEmbla_1 = EmblaCarousel(viewport, activeOptions, activePlugins);\n setEmbla(newEmbla_1);\n return function () {\n return newEmbla_1.destroy();\n };\n } else {\n setEmbla(undefined);\n }\n }, [viewport, activeOptions, activePlugins, setEmbla]);\n return [setViewport, embla];\n}\n\nuseEmblaCarousel.globalOptions = undefined;\n\nexport default useEmblaCarousel;\n//# sourceMappingURL=embla-carousel-react.esm.js.map\n","var defaultOptions = {\n delay: 4000,\n playOnInit: true,\n stopOnInteraction: true,\n stopOnMouseEnter: false,\n stopOnLastSnap: false\n};\n\nfunction Autoplay(userOptions, userNode) {\n var options = Object.assign({}, defaultOptions, Autoplay.globalOptions, userOptions);\n var playOnInit = options.playOnInit,\n stopOnInteraction = options.stopOnInteraction,\n stopOnMouseEnter = options.stopOnMouseEnter,\n stopOnLastSnap = options.stopOnLastSnap,\n delay = options.delay;\n var interaction = stopOnInteraction ? destroy : stop;\n var carousel;\n var timer = 0;\n\n function init(embla) {\n carousel = embla;\n var eventStore = carousel.internalEngine().eventStore;\n var emblaRoot = carousel.rootNode();\n var root = userNode && userNode(emblaRoot) || emblaRoot;\n carousel.on('pointerDown', interaction);\n if (!stopOnInteraction) carousel.on('pointerUp', reset);\n\n if (stopOnMouseEnter) {\n eventStore.add(root, 'mouseenter', interaction);\n if (!stopOnInteraction) eventStore.add(root, 'mouseleave', reset);\n }\n\n eventStore.add(document, 'visibilitychange', function () {\n if (document.visibilityState === 'hidden') return stop();\n reset();\n });\n eventStore.add(window, 'pagehide', function (event) {\n if (event.persisted) stop();\n });\n if (playOnInit) play();\n }\n\n function destroy() {\n carousel.off('pointerDown', interaction);\n if (!stopOnInteraction) carousel.off('pointerUp', reset);\n stop();\n timer = 0;\n }\n\n function play() {\n stop();\n timer = window.setTimeout(next, delay);\n }\n\n function stop() {\n if (!timer) return;\n window.clearTimeout(timer);\n }\n\n function reset() {\n if (!timer) return;\n stop();\n play();\n }\n\n function next() {\n var index = carousel.internalEngine().index;\n var kill = stopOnLastSnap && index.get() === index.max;\n if (kill) return destroy();\n\n if (carousel.canScrollNext()) {\n carousel.scrollNext();\n } else {\n carousel.scrollTo(0);\n }\n\n play();\n }\n\n var self = {\n name: 'Autoplay',\n options: options,\n init: init,\n destroy: destroy,\n play: play,\n stop: stop,\n reset: reset\n };\n return self;\n}\n\nAutoplay.globalOptions = undefined;\n\nexport default Autoplay;\n//# sourceMappingURL=embla-carousel-autoplay.esm.js.map\n","import { useMemo, useEffect } from \"react\";\nimport { Grid, createTheme, Box } from \"@mui/material\";\nimport { dayjs } from '../dayjs-utils';\nimport Card from '@mui/material/Card';\nimport GridLarge from './GridLarge';\nimport GridSmall from './GridSmall';\nimport useEmblaCarousel from 'embla-carousel-react';\nimport Autoplay from 'embla-carousel-autoplay';\n\nconst style = createTheme({\n gridItem: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#808080\" + 50,\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: \"100%\",\n flexDirection: \"column\",\n },\n gridItemGreen: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#8DBF30\",\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: \"100%\",\n flexDirection: \"column\"\n },\n gridItemYellow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#FCC041\",\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: \"100%\",\n flexDirection: \"column\"\n },\n gridItemRed: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#E72D50\",\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: \"100%\",\n flexDirection: \"column\"\n },\n avatar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n flexDirection: \"column\"\n },\n profilepic: {\n height: \"8vw\",\n width: \"8vw\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#000\",\n },\n title: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n fontSize: \"1.25vw\"\n }\n});\n\nfunction createArrays(array, numberOfGroups) {\n const perGroup = array && numberOfGroups && Math.ceil(array.length / numberOfGroups);\n return array && numberOfGroups && new Array(numberOfGroups)\n .fill('')\n .map((_, i) => array.slice(i * perGroup, (i + 1) * perGroup));\n}\n\nconst options = { delay: 30000 }; // Options\nconst autoplayRoot = (emblaRoot) => emblaRoot.parentElement; // Root node\nconst autoplay = Autoplay(options, autoplayRoot);\n\nexport default function SocialsDashboard(props) {\n const [emblaRef, emblaApi] = useEmblaCarousel({ loop: true }, [autoplay]);\n const slicedArray = useMemo(() => createArrays(props?.users, props.numberOfSlides), [props?.users, props.numberOfSlides]);\n\n /* useEffect(() => {\n setInterval(() => {\n setTimer(emblaApi?.scrollProgress() * 100);\n }, 1000);\n }, [emblaApi]); */\n\n useEffect(() => {\n if (emblaApi) {\n emblaApi.reInit()\n }\n }, [emblaApi]);\n\n return (\n\n\n
\n
\n {props.users && slicedArray && slicedArray?.map((item, index) => {\n\n let gridSize = \"\";\n let padding = \"\";\n let paddingX = \"\";\n let spacing = \"\";\n let component = \"\";\n\n switch (true) {\n case item.length > 0 && item.length <= 2:\n gridSize = 12 / 2;\n padding = props.small ? 12 : \"18vh\";\n spacing = 10;\n break;\n case item.length > 2 && item.length <= 4:\n gridSize = 12 / 2;\n padding = 4;\n paddingX = 26;\n spacing = 8;\n break;\n case item.length > 4 && item.length <= 6:\n gridSize = 12 / 3;\n padding = 6;\n paddingX = 14;\n spacing = 5;\n break;\n case item.length > 6 && item.length <= 8:\n gridSize = 12 / 4;\n padding = 8;\n paddingX = 8;\n spacing = 5;\n break;\n case item.length > 8 && item.length <= 10:\n gridSize = 12 / 5;\n padding = 4;\n paddingX = 10;\n spacing = 5;\n component = \"GridLarge\";\n break;\n case item.length > 10 && item.length <= 12:\n gridSize = 12 / 6;\n padding = 3;\n paddingX = 6;\n spacing = 5;\n component = \"GridLarge\";\n break;\n case item.length > 12 && item.length <= 14:\n gridSize = 12 / 7;\n padding = 4;\n paddingX = 6;\n spacing = 5;\n component = \"GridLarge\";\n break;\n case item.length > 14 && item.length <= 16:\n gridSize = 12 / 8;\n padding = 4;\n paddingX = 6;\n spacing = 5;\n component = \"GridLarge\";\n break;\n case item.length > 16 && item.length <= 18:\n gridSize = 12 / 9;\n padding = 3;\n spacing = 4;\n component = \"GridLarge\";\n break;\n case item.length > 18 && item.length <= 20:\n gridSize = 12 / 10;\n padding = 2;\n spacing = 3;\n component = \"GridLarge\";\n break;\n default:\n gridSize = 12 / 10;\n padding = 3;\n spacing = 4;\n component = \"GridLarge\";\n }\n return (\n
\n \n {item.map(item => {\n const userObj = props?.onlineData?.find(i => i.user_id === item.id);\n const busy = userObj?.status === 'busy';\n const now = dayjs().add(30, 'seconds');\n const lastSeen = userObj?.timestamp ? dayjs(userObj.timestamp) : null;\n const duration = lastSeen ? dayjs.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n const avatarHeight = props.avatarSize;\n const avatarWidth = props.avatarSize;\n return (\n \n = 5 ? style.gridItemYellow : lastseenminutes > -5 && lastseenminutes < 5 ? style.gridItemGreen : style.gridItem : style.gridItem}>\n \n {\n component === \"GridLarge\"\n ?\n \n :\n \n }\n \n \n \n );\n }\n )}\n \n
\n );\n }\n )}\n
\n
\n );\n}\n","import * as React from 'react';\nimport { useState, useContext, useRef, useEffect, useMemo } from \"react\";\nimport { Grid, Typography, createTheme, Box, styled, Badge } from \"@mui/material\";\nimport MainContext from \"../Backend/MainContext\";\nimport Clock from \"../Clock\";\nimport StatusBadges from \"../StatusBadges\";\nimport LinearLoading from \"../LinearLoading\";\nimport SocialsDashboard from './SocialsDashboard';\nimport { dayjs } from '../dayjs-utils';\nimport BatteryCharging20Icon from '@mui/icons-material/BatteryCharging20';\nimport BatteryCharging30Icon from '@mui/icons-material/BatteryCharging30';\nimport BatteryCharging60Icon from '@mui/icons-material/BatteryCharging60';\nimport BatteryCharging90Icon from '@mui/icons-material/BatteryCharging90';\n\n/* Defines if the current time is between SocialGroups' active time */\nfunction getActiveState(utc_start, utc_end) {\n let [hoursEnd, minsEnd] = utc_end && utc_end.split(':');\n let [hours, mins] = utc_start.split(':');\n let yesterday = dayjs.utc().startOf('day').subtract(1, 'day');\n let today = dayjs.utc().startOf('day');\n let tomorrow = dayjs.utc().startOf('day').add(1, 'day');\n\n if (hours > hoursEnd) {\n let isBetween1 = dayjs().isBetween(yesterday.set('hour', hours).set('minute', mins).local(), today.set('hour', hoursEnd).set('minute', minsEnd).local());\n let isBetween2 = dayjs().isBetween(today.set('hour', hours).set('minute', mins).local(), tomorrow.set('hour', hoursEnd).set('minute', minsEnd).local());\n\n return (isBetween1 || isBetween2);\n }\n else {\n return (dayjs().isBetween(today.set('hour', hours).set('minute', mins).local(), today.set('hour', hoursEnd).set('minute', minsEnd).local()));\n }\n}\n\nconst StyledBadge = styled(Badge)(({ status, badgewidth, badgeheight, badgeboxshadow, badgeanimation, lastseenminutes, theme, badgecolor }) => ({\n '& .MuiBadge-badge': {\n backgroundColor: badgecolor,\n color: badgecolor,\n width: badgewidth,\n height: badgeheight,\n borderRadius: \"50%\",\n boxShadow: badgeboxshadow,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n '&::after':\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n animation: 'ripple 1.2s infinite ease-in-out',\n border: '1px solid currentColor',\n content: '\"\"',\n display: !badgeanimation ? \"none\" : undefined\n }\n },\n '& .MuiBadge-root': {\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n backgroundColor: \"red\"\n },\n '@keyframes ripple': {\n '0%': {\n transform: 'scale(.8)',\n opacity: 1,\n },\n '100%': {\n transform: 'scale(2.5)',\n opacity: 0,\n },\n },\n}));\n\nexport default function LayoutTemplate({ socialsData, avatarSize, fontSize, gridFlexNumber, type, badgeSize, users, onlineData, titleFontSize, utc_start, utc_end, enable_days, small, scale }) {\n const icons = [BatteryCharging20Icon, BatteryCharging30Icon, BatteryCharging60Icon, BatteryCharging90Icon]\n const [currentIndex, setCurrentIndex] = useState(0);\n\n useEffect(() => {\n const intervalId = setInterval(() => {\n if(currentIndex === icons.length - 1) {\n setCurrentIndex(0);\n }\n else {\n setCurrentIndex(currentIndex + 1);\n }\n }, 1000)\n return () => clearInterval(intervalId);\n }, [currentIndex, icons.length])\n \n const { user } = useContext(MainContext);\n const [onlineMembers, setOnlineMembers] = useState(0);\n const socials =\n type === \"dashboard\" ? user.company_dashboard?.socials :\n type === \"user\" ? user?.dashboard?.socials : socialsData;\n\n const userCountTotal = users?.length ?? 0;\n const numberOfSlides = Math.trunc(userCountTotal / 20 + 1);\n\n const [time, setTime] = useState(dayjs());\n const timeInter = useRef();\n const [isActive, setIsActive] = useState((utc_start && utc_end) ? getActiveState(utc_start, utc_end) : true);\n\n var format = 'HH:mm',\n startTime = dayjs(socials?.onlineTime?.start ?? \"00:00\", format).tz(socials?.tz ?? Intl.DateTimeFormat().resolvedOptions().timeZone),\n endTime = dayjs(socials?.onlineTime?.end ?? \"24:00\", format).tz(socials?.tz ?? Intl.DateTimeFormat().resolvedOptions().timeZone);\n\n useEffect(() => {\n let tempNum = 0;\n if (onlineData) {\n for (const userObj of onlineData) {\n const now = dayjs();\n const lastSeen = userObj?.timestamp ? dayjs(userObj.timestamp) : null;\n const duration = lastSeen ? dayjs.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n if (lastSeen && lastseenminutes <= 10) {\n tempNum++;\n }\n }\n }\n setOnlineMembers(tempNum);\n }, [onlineData]);\n\n useEffect(() => {\n timeInter.current = setInterval(() => {\n setTime(dayjs());\n if (utc_start && utc_end) {\n setIsActive(getActiveState(utc_start, utc_end));\n }\n }, 60000);\n\n return () => clearInterval(timeInter.current);\n }, [utc_start, utc_end]);\n\n const shouldRender = useMemo(() => {\n if (type === 'group') {\n if ((enable_days.includes(dayjs().isoWeekday()) || enable_days === undefined) && isActive) {\n if (socials?.onlineTime?.showWeekDay) {\n if (socials?.onlineTime?.showWeekDay.includes(dayjs().isoWeekday()) || socials?.onlineTime?.showWeekDay === undefined || socials === undefined) {\n if (time.isBetween(startTime, endTime)) {\n return true;\n }\n }\n }\n else {\n if (time.isBetween(startTime, endTime)) {\n return true;\n }\n }\n }\n }\n else {\n if (socials?.onlineTime?.showWeekDay) {\n if (socials?.onlineTime?.showWeekDay.includes(dayjs().isoWeekday()) || socials?.onlineTime?.showWeekDay === undefined || socials === undefined) {\n if (time.isBetween(startTime, endTime)) {\n return true;\n }\n }\n }\n else {\n if (time.isBetween(startTime, endTime)) {\n return true;\n }\n }\n }\n return false;\n }, [enable_days, endTime, isActive, socials, startTime, time, type]);\n\n return (\n \n \n \n {socials?.hasSecondLogo\n ?\n <>\n \n \n \n \n :\n \n \n {socials?.title}\n \n \n }\n \n \n \n \n {\n shouldRender\n ?\n \n :\n \n
Charging Batteries...
\n
\n {currentIndex === 0\n ?\n \n :\n currentIndex === 1\n ?\n \n :\n currentIndex === 2\n ?\n \n :\n \n }\n
\n
\n }\n
\n \n \n \n \n \n \n \n Present: {onlineMembers}\n \n \n \n Away: {users?.length - onlineMembers}\n \n \n \n \n \n \n \n \n
\n );\n}\n\nconst style = createTheme({\n layoutGrid: {\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n overflow: \"auto\",\n backgroundColor: \"lightgreen\"\n },\n gridLogo: {\n\n },\n gridItem1: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"15%\",\n },\n gridClock: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"15%\",\n },\n gridContent: {\n height: \"74%\",\n },\n gridPicture: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"74%\",\n },\n gridFooter: {\n display: \"flex\",\n alignItems: \"center\",\n height: \"8%\",\n },\n gridPoweredBy: {\n },\n gridBottombar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"3%\",\n }\n});\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\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 Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.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, normally an `IconButton` or string.\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 * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\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 * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getSwitchBaseUtilityClass(slot) {\n return generateUtilityClass('PrivateSwitchBase', slot);\n}\nconst switchBaseClasses = generateUtilityClasses('PrivateSwitchBase', ['root', 'checked', 'disabled', 'input', 'edgeStart', 'edgeEnd']);\nexport default switchBaseClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"checked\", \"checkedIcon\", \"className\", \"defaultChecked\", \"disabled\", \"disableFocusRipple\", \"edge\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useControlled from '../utils/useControlled';\nimport useFormControl from '../FormControl/useFormControl';\nimport ButtonBase from '../ButtonBase';\nimport { getSwitchBaseUtilityClass } from './switchBaseClasses';\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 checked,\n disabled,\n edge\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', edge && `edge${capitalize(edge)}`],\n input: ['input']\n };\n return composeClasses(slots, getSwitchBaseUtilityClass, classes);\n};\n\nconst SwitchBaseRoot = styled(ButtonBase)(({\n ownerState\n}) => _extends({\n padding: 9,\n borderRadius: '50%'\n}, ownerState.edge === 'start' && {\n marginLeft: ownerState.size === 'small' ? -3 : -12\n}, ownerState.edge === 'end' && {\n marginRight: ownerState.size === 'small' ? -3 : -12\n}));\nconst SwitchBaseInput = styled('input')({\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n});\n/**\n * @ignore - internal component.\n */\n\nconst SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n const {\n autoFocus,\n checked: checkedProp,\n checkedIcon,\n className,\n defaultChecked,\n disabled: disabledProp,\n disableFocusRipple = false,\n edge = false,\n icon,\n id,\n inputProps,\n inputRef,\n name,\n onBlur,\n onChange,\n onFocus,\n readOnly,\n required,\n tabIndex,\n type,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n });\n const muiFormControl = useFormControl();\n\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n\n const handleInputChange = event => {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n\n if (onChange) {\n // TODO v6: remove the second argument.\n onChange(event, newChecked);\n }\n };\n\n let disabled = disabledProp;\n\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n\n const hasLabelFor = type === 'checkbox' || type === 'radio';\n\n const ownerState = _extends({}, props, {\n checked,\n disabled,\n disableFocusRipple,\n edge\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SwitchBaseRoot, _extends({\n component: \"span\",\n className: clsx(classes.root, className),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SwitchBaseInput, _extends({\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor && id,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n ownerState: ownerState,\n tabIndex: tabIndex,\n type: type\n }, type === 'checkbox' && value === undefined ? {} : {\n value\n }, inputProps)), checked ? checkedIcon : icon]\n }));\n}); // NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\n\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\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\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /*\n * @ignore\n */\n name: PropTypes.string,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object,\n\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default SwitchBase;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.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 * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), 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 * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import { generateUtilityClasses, generateUtilityClass } from '@mui/base';\nexport function getFormControlLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControlLabel', slot);\n}\nconst formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error']);\nexport default formControlLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checked\", \"className\", \"componentsProps\", \"control\", \"disabled\", \"disableTypography\", \"inputRef\", \"label\", \"labelPlacement\", \"name\", \"onChange\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { useFormControl } from '../FormControl';\nimport Typography from '../Typography';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport formControlLabelClasses, { getFormControlLabelUtilityClasses } from './formControlLabelClasses';\nimport formControlState from '../FormControl/formControlState';\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 disabled,\n labelPlacement,\n error\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', `labelPlacement${capitalize(labelPlacement)}`, error && 'error'],\n label: ['label', disabled && 'disabled']\n };\n return composeClasses(slots, getFormControlLabelUtilityClasses, classes);\n};\n\nexport const FormControlLabelRoot = styled('label', {\n name: 'MuiFormControlLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formControlLabelClasses.label}`]: styles.label\n }, styles.root, styles[`labelPlacement${capitalize(ownerState.labelPlacement)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n WebkitTapHighlightColor: 'transparent',\n marginLeft: -11,\n marginRight: 16,\n // used for row presentation of radio/checkbox\n [`&.${formControlLabelClasses.disabled}`]: {\n cursor: 'default'\n }\n}, ownerState.labelPlacement === 'start' && {\n flexDirection: 'row-reverse',\n marginLeft: 16,\n // used for row presentation of radio/checkbox\n marginRight: -11\n}, ownerState.labelPlacement === 'top' && {\n flexDirection: 'column-reverse',\n marginLeft: 16\n}, ownerState.labelPlacement === 'bottom' && {\n flexDirection: 'column',\n marginLeft: 16\n}, {\n [`& .${formControlLabelClasses.label}`]: {\n [`&.${formControlLabelClasses.disabled}`]: {\n color: theme.palette.text.disabled\n }\n }\n}));\n/**\n * Drop-in replacement of the `Radio`, `Switch` and `Checkbox` component.\n * Use this component if you want to display an extra label.\n */\n\nconst FormControlLabel = /*#__PURE__*/React.forwardRef(function FormControlLabel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormControlLabel'\n });\n\n const {\n className,\n componentsProps = {},\n control,\n disabled: disabledProp,\n disableTypography,\n label,\n labelPlacement = 'end'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl();\n let disabled = disabledProp;\n\n if (typeof disabled === 'undefined' && typeof control.props.disabled !== 'undefined') {\n disabled = control.props.disabled;\n }\n\n if (typeof disabled === 'undefined' && muiFormControl) {\n disabled = muiFormControl.disabled;\n }\n\n const controlProps = {\n disabled\n };\n ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(key => {\n if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {\n controlProps[key] = props[key];\n }\n });\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n\n const ownerState = _extends({}, props, {\n disabled,\n label,\n labelPlacement,\n error: fcs.error\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(FormControlLabelRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/React.cloneElement(control, controlProps), label.type === Typography || disableTypography ? label : /*#__PURE__*/_jsx(Typography, _extends({\n component: \"span\",\n className: classes.label\n }, componentsProps.typography, {\n children: label\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControlLabel.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 * If `true`, the component appears selected.\n */\n checked: PropTypes.bool,\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 props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n typography: PropTypes.object\n }),\n\n /**\n * A control element. For instance, it can be a `Radio`, a `Switch` or a `Checkbox`.\n */\n control: PropTypes.element.isRequired,\n\n /**\n * If `true`, the control is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the label is rendered as it is passed without an additional typography node.\n */\n disableTypography: PropTypes.bool,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * A text or an element to be used in an enclosing label element.\n */\n label: PropTypes.oneOfType([PropTypes.element, PropTypes.number, PropTypes.string]).isRequired,\n\n /**\n * The position of the label.\n * @default 'end'\n */\n labelPlacement: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n\n /**\n * @ignore\n */\n name: PropTypes.string,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\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 value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default FormControlLabel;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getSwitchUtilityClass(slot) {\n return generateUtilityClass('MuiSwitch', slot);\n}\nconst switchClasses = generateUtilityClasses('MuiSwitch', ['root', 'edgeStart', 'edgeEnd', 'switchBase', 'colorPrimary', 'colorSecondary', 'sizeSmall', 'sizeMedium', 'checked', 'disabled', 'input', 'thumb', 'track']);\nexport default switchClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"edge\", \"size\", \"sx\"];\n// @inheritedComponent IconButton\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha, darken, lighten } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport SwitchBase from '../internal/SwitchBase';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport switchClasses, { getSwitchUtilityClass } from './switchClasses';\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 edge,\n size,\n color,\n checked,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', edge && `edge${capitalize(edge)}`, `size${capitalize(size)}`],\n switchBase: ['switchBase', `color${capitalize(color)}`, checked && 'checked', disabled && 'disabled'],\n thumb: ['thumb'],\n track: ['track'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getSwitchUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst SwitchRoot = styled('span', {\n name: 'MuiSwitch',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.edge && styles[`edge${capitalize(ownerState.edge)}`], styles[`size${capitalize(ownerState.size)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'inline-flex',\n width: 34 + 12 * 2,\n height: 14 + 12 * 2,\n overflow: 'hidden',\n padding: 12,\n boxSizing: 'border-box',\n position: 'relative',\n flexShrink: 0,\n zIndex: 0,\n // Reset the stacking context.\n verticalAlign: 'middle',\n // For correct alignment with the text.\n '@media print': {\n colorAdjust: 'exact'\n }\n}, ownerState.edge === 'start' && {\n marginLeft: -8\n}, ownerState.edge === 'end' && {\n marginRight: -8\n}, ownerState.size === 'small' && {\n width: 40,\n height: 24,\n padding: 7,\n [`& .${switchClasses.thumb}`]: {\n width: 16,\n height: 16\n },\n [`& .${switchClasses.switchBase}`]: {\n padding: 4,\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(16px)'\n }\n }\n}));\nconst SwitchSwitchBase = styled(SwitchBase, {\n name: 'MuiSwitch',\n slot: 'SwitchBase',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.switchBase, {\n [`& .${switchClasses.input}`]: styles.input\n }, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme\n}) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n // Render above the focus ripple.\n color: theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.grey[300],\n transition: theme.transitions.create(['left', 'transform'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(20px)'\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[600]\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n opacity: 0.5\n },\n [`&.${switchClasses.disabled} + .${switchClasses.track}`]: {\n opacity: theme.palette.mode === 'light' ? 0.12 : 0.2\n },\n [`& .${switchClasses.input}`]: {\n left: '-100%',\n width: '300%'\n }\n}), ({\n theme,\n ownerState\n}) => _extends({\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${switchClasses.checked}`]: {\n color: theme.palette[ownerState.color].main,\n '&:hover': {\n backgroundColor: alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.palette.mode === 'light' ? lighten(theme.palette[ownerState.color].main, 0.62) : darken(theme.palette[ownerState.color].main, 0.55)\n }\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n backgroundColor: theme.palette[ownerState.color].main\n }\n}));\nconst SwitchTrack = styled('span', {\n name: 'MuiSwitch',\n slot: 'Track',\n overridesResolver: (props, styles) => styles.track\n})(({\n theme\n}) => ({\n height: '100%',\n width: '100%',\n borderRadius: 14 / 2,\n zIndex: -1,\n transition: theme.transitions.create(['opacity', 'background-color'], {\n duration: theme.transitions.duration.shortest\n }),\n backgroundColor: theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white,\n opacity: theme.palette.mode === 'light' ? 0.38 : 0.3\n}));\nconst SwitchThumb = styled('span', {\n name: 'MuiSwitch',\n slot: 'Thumb',\n overridesResolver: (props, styles) => styles.thumb\n})(({\n theme\n}) => ({\n boxShadow: theme.shadows[1],\n backgroundColor: 'currentColor',\n width: 20,\n height: 20,\n borderRadius: '50%'\n}));\nconst Switch = /*#__PURE__*/React.forwardRef(function Switch(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSwitch'\n });\n\n const {\n className,\n color = 'primary',\n edge = false,\n size = 'medium',\n sx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n edge,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n\n const icon = /*#__PURE__*/_jsx(SwitchThumb, {\n className: classes.thumb,\n ownerState: ownerState\n });\n\n return /*#__PURE__*/_jsxs(SwitchRoot, {\n className: clsx(classes.root, className),\n sx: sx,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(SwitchSwitchBase, _extends({\n type: \"checkbox\",\n icon: icon,\n checkedIcon: icon,\n ref: ref,\n ownerState: ownerState\n }, other, {\n classes: _extends({}, classes, {\n root: classes.switchBase\n })\n })), /*#__PURE__*/_jsx(SwitchTrack, {\n className: classes.track,\n ownerState: ownerState\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Switch.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 * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: 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. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense switch styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), 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 * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Switch;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getFormGroupUtilityClass(slot) {\n return generateUtilityClass('MuiFormGroup', slot);\n}\nconst formGroupClasses = generateUtilityClasses('MuiFormGroup', ['root', 'row', 'error']);\nexport default formGroupClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"row\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getFormGroupUtilityClass } from './formGroupClasses';\nimport useFormControl from '../FormControl/useFormControl';\nimport formControlState from '../FormControl/formControlState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n row,\n error\n } = ownerState;\n const slots = {\n root: ['root', row && 'row', error && 'error']\n };\n return composeClasses(slots, getFormGroupUtilityClass, classes);\n};\n\nconst FormGroupRoot = styled('div', {\n name: 'MuiFormGroup',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.row && styles.row];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n flexWrap: 'wrap'\n}, ownerState.row && {\n flexDirection: 'row'\n}));\n/**\n * `FormGroup` wraps controls such as `Checkbox` and `Switch`.\n * It provides compact row layout.\n * For the `Radio`, you should be using the `RadioGroup` component instead of this one.\n */\n\nconst FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormGroup'\n });\n\n const {\n className,\n row = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n\n const ownerState = _extends({}, props, {\n row,\n error: fcs.error\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormGroupRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormGroup.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 * Display group of elements in a compact row.\n * @default false\n */\n row: 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} : void 0;\nexport default FormGroup;","export var calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","var checkboardCache = {};\n\nexport var render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nexport var get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React, { isValidElement } from 'react';\nimport reactCSS from 'reactcss';\nimport * as checkboard from '../../helpers/checkboard';\n\nexport var Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n\n var styles = reactCSS({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n return isValidElement(children) ? React.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : React.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexport default Checkboard;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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\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\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as alpha from '../../helpers/alpha';\n\nimport Checkboard from './Checkboard';\n\nexport var Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = reactCSS({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(\n 'div',\n { style: styles.checkboard },\n React.createElement(Checkboard, { renderers: this.props.renderers })\n ),\n React.createElement('div', { style: styles.gradient }),\n React.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(PureComponent || Component);\n\nexport default Alpha;","var _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\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\n\nvar idCounter = 1;\n\nexport var EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n\n _this.inputId = 'rc-editable-input-' + idCounter++;\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n this.setState({ value: value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('input', {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? React.createElement(\n 'label',\n {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(PureComponent || Component);\n\nexport default EditableInput;","export var calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","var _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\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\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as hue from '../../helpers/hue';\n\nexport var Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = reactCSS({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(PureComponent || Component);\n\nexport default Hue;","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nexport var Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = reactCSS(merge({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('div', { style: styles.bg }),\n React.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: PropTypes.string,\n zDepth: PropTypes.oneOf([0, 1, 2, 3, 4, 5]),\n radius: PropTypes.number,\n styles: PropTypes.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexport default Raised;","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","var _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\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\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport throttle from 'lodash-es/throttle';\nimport * as saturation from '../../helpers/saturation';\n\nexport var Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = throttle(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'getContainerRenderWindow',\n value: function getContainerRenderWindow() {\n var container = this.container;\n\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = reactCSS({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return React.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n React.createElement('div', { style: styles.black, className: 'saturation-black' }),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(PureComponent || Component);\n\nexport default Saturation;","export var calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","import each from 'lodash-es/each';\nimport tinycolor from 'tinycolor2';\n\nexport var simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n each(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nexport var toState = function toState(data, oldHue) {\n var color = data.hex ? tinycolor(data.hex) : tinycolor(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nexport var isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor(hex).isValid();\n};\n\nexport var getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nexport var red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexport var isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n return tinycolor(type + ' (' + stringWithoutDegree + ')')._ok;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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\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\nimport React, { Component, PureComponent } from 'react';\nimport debounce from 'lodash-es/debounce';\nimport * as color from '../../helpers/color';\n\nexport var ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, color.toState(props.color, 0));\n\n _this.debounce = debounce(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return React.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(PureComponent || Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexport default ColorWrap;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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\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/* eslint-disable no-invalid-this */\nimport React from 'react';\n\nexport var handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n React.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(React.Component);\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport { handleFocus } from '../../helpers/interaction';\n\nimport Checkboard from './Checkboard';\n\nvar ENTER = 13;\n\nexport var Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = reactCSS({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return React.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && React.createElement(Checkboard, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexport default handleFocus(Swatch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default AlphaPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { ColorWrap, Alpha } from '../common';\nimport AlphaPointer from './AlphaPointer';\n\nexport var AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n React.createElement(Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: AlphaPointer\n};\n\nexport default ColorWrap(AlphaPicker);","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport { Swatch } from '../common';\n\nexport var BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n map(colors, function (c) {\n return React.createElement(Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default BlockSwatches;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Checkboard } from '../common';\nimport BlockSwatches from './BlockSwatches';\n\nexport var Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n color.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: color.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.head },\n transparent && React.createElement(Checkboard, { borderRadius: '6px 6px 0 0' }),\n React.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(BlockSwatches, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n React.createElement(EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['top', 'hide']),\n styles: PropTypes.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexport default ColorWrap(Block);","export var red = {\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"};\nexport var pink = {\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"};\nexport var purple = {\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"};\nexport var deepPurple = {\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"};\nexport var indigo = {\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"};\nexport var blue = {\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"};\nexport var lightBlue = {\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"};\nexport var cyan = {\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"};\nexport var teal = {\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"};\nexport var green = {\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"};\nexport var lightGreen = {\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"};\nexport var lime = {\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"};\nexport var yellow = {\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"};\nexport var amber = {\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"};\nexport var orange = {\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"};\nexport var deepOrange = {\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"};\nexport var brown = {\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"};\nexport var grey = {\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"};\nexport var blueGrey = {\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"};\nexport var darkText = {\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"};\nexport var lightText = {\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"};\nexport var darkIcons = {\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"};\nexport var lightIcons = {\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"};\nexport var white = \"#ffffff\";\nexport var black = \"#000000\";\n\nexport default {\n red: red,\n pink: pink,\n purple: purple,\n deepPurple: deepPurple,\n indigo: indigo,\n blue: blue,\n lightBlue: lightBlue,\n cyan: cyan,\n teal: teal,\n green: green,\n lightGreen: lightGreen,\n lime: lime,\n yellow: yellow,\n amber: amber,\n orange: orange,\n deepOrange: deepOrange,\n brown: brown,\n grey: grey,\n blueGrey: blueGrey,\n darkText: darkText,\n lightText: lightText,\n darkIcons: darkIcons,\n lightIcons: lightIcons,\n white: white,\n black: black\n};\n","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexport default handleHover(CircleSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap } from '../common';\nimport CircleSwatch from './CircleSwatch';\n\nexport var Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n map(colors, function (c) {\n return React.createElement(CircleSwatch, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n circleSize: PropTypes.number,\n circleSpacing: PropTypes.number,\n styles: PropTypes.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexport default ColorWrap(Circle);","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","var _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\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/* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport isUndefined from 'lodash-es/isUndefined';\n\nimport { EditableInput } from '../common';\nimport UnfoldMoreHorizontalIcon from '@icons/material/UnfoldMoreHorizontalIcon';\n\nexport var ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n // We store HSL as a unit interval so we need to override the 1 input to 0.01\n if (data.s == 1) {\n data.s = 0.01;\n } else if (data.l == 1) {\n data.l = 0.01;\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(!isUndefined(data.s) ? data.s : _this.props.hsl.s),\n l: Number(!isUndefined(data.l) ? data.l : _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n React.createElement(\n 'div',\n { style: styles.toggle },\n React.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n React.createElement(UnfoldMoreHorizontalIcon, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(React.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexport default ChromeFields;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointer = function ChromePointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointerCircle = function ChromePointerCircle() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointerCircle;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport ChromeFields from './ChromeFields';\nimport ChromePointer from './ChromePointer';\nimport ChromePointerCircle from './ChromePointerCircle';\n\nexport var Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: ChromePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement('div', { style: styles.active }),\n React.createElement(Checkboard, { renderers: renderers })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.toggles },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: ChromePointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: ChromePointer,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n React.createElement(ChromeFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disableAlpha: PropTypes.bool,\n styles: PropTypes.object,\n defaultView: PropTypes.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexport default ColorWrap(Chrome);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\n\nexport var CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: colorUtils.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return React.createElement(\n Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement('div', { style: styles.dot })\n );\n};\n\nexport default CompactColor;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { EditableInput } from '../common';\n\nexport var CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement('div', { style: styles.active }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexport default CompactFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, Raised } from '../common';\nimport CompactColor from './CompactColor';\nimport CompactFields from './CompactFields';\n\nexport var Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return React.createElement(\n Raised,\n { style: styles.Compact, styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n React.createElement(\n 'div',\n null,\n map(colors, function (c) {\n return React.createElement(CompactColor, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n ),\n React.createElement(CompactFields, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexport default ColorWrap(Compact);","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexport default handleHover(GithubSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap } from '../common';\nimport GithubSwatch from './GithubSwatch';\n\nexport var Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n map(colors, function (c) {\n return React.createElement(GithubSwatch, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: PropTypes.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Github);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport HuePointer from './HuePointer';\n\nexport var HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n React.createElement(Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: PropTypes.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: HuePointer,\n styles: {}\n};\n\nexport default ColorWrap(HuePicker);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Raised } from '../common';\n\nexport var Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n Raised,\n { styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default ColorWrap(Material);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n top: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n color.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.fieldSymbols },\n React.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexport default PhotoshopPicker;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = reactCSS({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.pointer },\n React.createElement(\n 'div',\n { style: styles.left },\n React.createElement('div', { style: styles.leftInside })\n ),\n React.createElement(\n 'div',\n { style: styles.right },\n React.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return React.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexport default PhotoshopButton;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return React.createElement(\n 'div',\n null,\n React.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement('div', { style: styles.new }),\n React.createElement('div', { style: styles.current })\n ),\n React.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexport default PhotoshopPreviews;","var _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\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\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport PhotoshopFields from './PhotoshopFields';\nimport PhotoshopPointerCircle from './PhotoshopPointerCircle';\nimport PhotoshopPointer from './PhotoshopPointer';\nimport PhotoshopButton from './PhotoshopButton';\nimport PhotoshopPreviews from './PhotoshopPreviews';\n\nexport var Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n React.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: PhotoshopPointerCircle,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: PhotoshopPointer,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls },\n React.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.previews },\n React.createElement(PhotoshopPreviews, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n React.createElement(\n 'div',\n { style: styles.actions },\n React.createElement(PhotoshopButton, { label: 'OK', onClick: this.props.onAccept, active: true }),\n React.createElement(PhotoshopButton, { label: 'Cancel', onClick: this.props.onCancel }),\n React.createElement(PhotoshopFields, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(React.Component);\n\nPhotoshop.propTypes = {\n header: PropTypes.string,\n styles: PropTypes.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexport default ColorWrap(Photoshop);","/* eslint-disable no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexport default SketchFields;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return React.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n React.createElement(Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n color: PropTypes.string,\n title: PropTypes.string\n })])).isRequired\n};\n\nexport default SketchPresetColors;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport SketchFields from './SketchFields';\nimport SketchPresetColors from './SketchPresetColors';\n\nexport var Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.sliders },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(Checkboard, null),\n React.createElement('div', { style: styles.activeColor })\n )\n ),\n React.createElement(SketchFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n React.createElement(SketchPresetColors, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexport default ColorWrap(Sketch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return React.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexport default SliderSwatch;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport SliderSwatch from './SliderSwatch';\n\nexport var SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default SliderSwatches;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport SliderSwatches from './SliderSwatches';\nimport SliderPointer from './SliderPointer';\n\nexport var Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(SliderSwatches, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: PropTypes.object\n};\nSlider.defaultProps = {\n pointer: SliderPointer,\n styles: {}\n};\n\nexport default ColorWrap(Slider);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\nimport CheckIcon from '@icons/material/CheckIcon';\n\nexport var SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: colorUtils.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return React.createElement(\n Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement(\n 'div',\n { style: styles.check },\n React.createElement(CheckIcon, null)\n )\n );\n};\n\nexport default SwatchesColor;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport SwatchesColor from './SwatchesColor';\n\nexport var SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.group },\n map(group, function (color, i) {\n return React.createElement(SwatchesColor, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexport default SwatchesGroup;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap, Raised } from '../common';\nimport SwatchesGroup from './SwatchesGroup';\n\nexport var Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n return onChange({ hex: data, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n React.createElement(\n Raised,\n null,\n React.createElement(\n 'div',\n { style: styles.overflow },\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (group) {\n return React.createElement(SwatchesGroup, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n styles: PropTypes.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexport default ColorWrap(Swatches);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Swatch } from '../common';\n\nexport var Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n color.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (c, i) {\n return React.createElement(Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n React.createElement(EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right']),\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Twitter);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointerCircle = function GooglePointerCircle(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n border: '2px #fff solid',\n transform: 'translate(-12px, -13px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointerCircle.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointerCircle.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointer = function GooglePointer(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n transform: 'translate(-10px, -7px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)',\n border: '2px white solid'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointer.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointer.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport { EditableInput } from '../common';\n\nexport var GoogleFields = function GoogleFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n hsv = _ref.hsv;\n\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.rgb) {\n var values = data.rgb.split(',');\n color.isvalidColorString(data.rgb, 'rgb') && onChange({\n r: values[0],\n g: values[1],\n b: values[2],\n a: 1,\n source: 'rgb'\n }, e);\n } else if (data.hsv) {\n var _values = data.hsv.split(',');\n if (color.isvalidColorString(data.hsv, 'hsv')) {\n _values[2] = _values[2].replace('%', '');\n _values[1] = _values[1].replace('%', '');\n _values[0] = _values[0].replace('°', '');\n if (_values[1] == 1) {\n _values[1] = 0.01;\n } else if (_values[2] == 1) {\n _values[2] = 0.01;\n }\n onChange({\n h: Number(_values[0]),\n s: Number(_values[1]),\n v: Number(_values[2]),\n source: 'hsv'\n }, e);\n }\n } else if (data.hsl) {\n var _values2 = data.hsl.split(',');\n if (color.isvalidColorString(data.hsl, 'hsl')) {\n _values2[2] = _values2[2].replace('%', '');\n _values2[1] = _values2[1].replace('%', '');\n _values2[0] = _values2[0].replace('°', '');\n if (hsvValue[1] == 1) {\n hsvValue[1] = 0.01;\n } else if (hsvValue[2] == 1) {\n hsvValue[2] = 0.01;\n }\n onChange({\n h: Number(_values2[0]),\n s: Number(_values2[1]),\n v: Number(_values2[2]),\n source: 'hsl'\n }, e);\n }\n }\n };\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n display: 'flex',\n height: '100px',\n marginTop: '4px'\n },\n fields: {\n width: '100%'\n },\n column: {\n paddingTop: '10px',\n display: 'flex',\n justifyContent: 'space-between'\n },\n double: {\n padding: '0px 4.4px',\n boxSizing: 'border-box'\n },\n input: {\n width: '100%',\n height: '38px',\n boxSizing: 'border-box',\n padding: '4px 10% 3px',\n textAlign: 'center',\n border: '1px solid #dadce0',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n input2: {\n height: '38px',\n width: '100%',\n border: '1px solid #dadce0',\n boxSizing: 'border-box',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n paddingLeft: '10px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label: {\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '35px',\n top: '-6px',\n left: '0',\n right: '0',\n marginLeft: 'auto',\n marginRight: 'auto',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label2: {\n left: '10px',\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '32px',\n top: '-6px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n single: {\n flexGrow: '1',\n margin: '0px 4.4px'\n }\n }\n });\n\n var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b;\n var hslValue = Math.round(hsl.h) + '\\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%';\n var hsvValue = Math.round(hsv.h) + '\\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%';\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.column },\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'rgb',\n value: rgbValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsv',\n value: hsvValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsl',\n value: hslValue,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default GoogleFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport GooglePointerCircle from './GooglePointerCircle';\nimport GooglePointer from './GooglePointer';\nimport GoogleFields from './GoogleFields';\n\nexport var Google = function Google(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n header = _ref.header,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n border: '1px solid #dfe1e5',\n boxSizing: 'initial',\n display: 'flex',\n flexWrap: 'wrap',\n borderRadius: '8px 8px 0px 0px'\n },\n head: {\n height: '57px',\n width: '100%',\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '16px',\n fontSize: '20px',\n boxSizing: 'border-box',\n fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif'\n },\n saturation: {\n width: '70%',\n padding: '0px',\n position: 'relative',\n overflow: 'hidden'\n },\n swatch: {\n width: '30%',\n height: '228px',\n padding: '0px',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)',\n position: 'relative',\n overflow: 'hidden'\n },\n body: {\n margin: 'auto',\n width: '95%'\n },\n controls: {\n display: 'flex',\n boxSizing: 'border-box',\n height: '52px',\n paddingTop: '22px'\n },\n color: {\n width: '32px'\n },\n hue: {\n height: '8px',\n position: 'relative',\n margin: '0px 16px 0px 16px',\n width: '100%'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'google-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n header\n ),\n React.createElement('div', { style: styles.swatch }),\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: hsl,\n hsv: hsv,\n pointer: GooglePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n radius: '4px',\n pointer: GooglePointer,\n onChange: onChange\n })\n )\n ),\n React.createElement(GoogleFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n hsv: hsv,\n onChange: onChange\n })\n )\n );\n};\n\nGoogle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object,\n header: PropTypes.string\n\n};\n\nGoogle.defaultProps = {\n width: 652,\n styles: {},\n header: 'Color picker'\n};\n\nexport default ColorWrap(Google);","import defaultMoment from 'moment';\n\nvar defaultFormats = {\n normalDateWithWeekday: \"ddd, MMM D\",\n normalDate: \"D MMMM\",\n shortDate: \"MMM D\",\n monthAndDate: \"MMMM D\",\n dayOfMonth: \"D\",\n year: \"YYYY\",\n month: \"MMMM\",\n monthShort: \"MMM\",\n monthAndYear: \"MMMM YYYY\",\n weekday: \"dddd\",\n weekdayShort: \"ddd\",\n minutes: \"mm\",\n hours12h: \"hh\",\n hours24h: \"HH\",\n seconds: \"ss\",\n fullTime: \"LT\",\n fullTime12h: \"hh:mm A\",\n fullTime24h: \"HH:mm\",\n fullDate: \"ll\",\n fullDateWithWeekday: \"dddd, LL\",\n fullDateTime: \"lll\",\n fullDateTime12h: \"ll hh:mm A\",\n fullDateTime24h: \"ll HH:mm\",\n keyboardDate: \"L\",\n keyboardDateTime: \"L LT\",\n keyboardDateTime12h: \"L hh:mm A\",\n keyboardDateTime24h: \"L HH:mm\",\n};\nvar MomentUtils = /** @class */ (function () {\n function MomentUtils(_a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, locale = _b.locale, formats = _b.formats, instance = _b.instance;\n this.lib = \"moment\";\n this.is12HourCycleInCurrentLocale = function () {\n return /A|a/.test(_this.moment().localeData().longDateFormat(\"LT\"));\n };\n this.getFormatHelperText = function (format) {\n // @see https://github.com/moment/moment/blob/develop/src/lib/format/format.js#L6\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})|./g;\n return format\n .match(localFormattingTokens)\n .map(function (token) {\n var firstCharacter = token[0];\n if (firstCharacter === \"L\" || firstCharacter === \";\") {\n return _this.moment.localeData().longDateFormat(token);\n }\n return token;\n })\n .join(\"\")\n .replace(/a/gi, \"(a|p)m\")\n .toLocaleLowerCase();\n };\n this.getCurrentLocaleCode = function () {\n return _this.locale || _this.moment.locale();\n };\n this.parseISO = function (isoString) {\n return _this.moment(isoString, true);\n };\n this.toISO = function (value) {\n return value.toISOString();\n };\n this.parse = function (value, format) {\n if (value === \"\") {\n return null;\n }\n if (_this.locale) {\n return _this.moment(value, format, _this.locale, true);\n }\n return _this.moment(value, format, true);\n };\n this.date = function (value) {\n if (value === null) {\n return null;\n }\n var moment = _this.moment(value);\n moment.locale(_this.locale);\n return moment;\n };\n this.toJsDate = function (value) {\n return value.toDate();\n };\n this.isValid = function (value) {\n return _this.moment(value).isValid();\n };\n this.isNull = function (date) {\n return date === null;\n };\n this.getDiff = function (date, comparing, unit) {\n return date.diff(comparing, unit);\n };\n this.isAfter = function (date, value) {\n return date.isAfter(value);\n };\n this.isBefore = function (date, value) {\n return date.isBefore(value);\n };\n this.isAfterDay = function (date, value) {\n return date.isAfter(value, \"day\");\n };\n this.isBeforeDay = function (date, value) {\n return date.isBefore(value, \"day\");\n };\n this.isBeforeYear = function (date, value) {\n return date.isBefore(value, \"year\");\n };\n this.isAfterYear = function (date, value) {\n return date.isAfter(value, \"year\");\n };\n this.startOfDay = function (date) {\n return date.clone().startOf(\"day\");\n };\n this.endOfDay = function (date) {\n return date.clone().endOf(\"day\");\n };\n this.format = function (date, formatKey) {\n return _this.formatByString(date, _this.formats[formatKey]);\n };\n this.formatByString = function (date, formatString) {\n var clonedDate = date.clone();\n clonedDate.locale(_this.locale);\n return clonedDate.format(formatString);\n };\n this.formatNumber = function (numberToFormat) {\n return numberToFormat;\n };\n this.getHours = function (date) {\n return date.get(\"hours\");\n };\n this.addSeconds = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"seconds\")\n : date.clone().add(count, \"seconds\");\n };\n this.addMinutes = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"minutes\")\n : date.clone().add(count, \"minutes\");\n };\n this.addHours = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"hours\")\n : date.clone().add(count, \"hours\");\n };\n this.addDays = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"days\")\n : date.clone().add(count, \"days\");\n };\n this.addWeeks = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"weeks\")\n : date.clone().add(count, \"weeks\");\n };\n this.addMonths = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"months\")\n : date.clone().add(count, \"months\");\n };\n this.setHours = function (date, count) {\n return date.clone().hours(count);\n };\n this.getMinutes = function (date) {\n return date.get(\"minutes\");\n };\n this.setMinutes = function (date, count) {\n return date.clone().minutes(count);\n };\n this.getSeconds = function (date) {\n return date.get(\"seconds\");\n };\n this.setSeconds = function (date, count) {\n return date.clone().seconds(count);\n };\n this.getMonth = function (date) {\n return date.get(\"month\");\n };\n this.getDaysInMonth = function (date) {\n return date.daysInMonth();\n };\n this.isSameDay = function (date, comparing) {\n return date.isSame(comparing, \"day\");\n };\n this.isSameMonth = function (date, comparing) {\n return date.isSame(comparing, \"month\");\n };\n this.isSameYear = function (date, comparing) {\n return date.isSame(comparing, \"year\");\n };\n this.isSameHour = function (date, comparing) {\n return date.isSame(comparing, \"hour\");\n };\n this.setMonth = function (date, count) {\n return date.clone().month(count);\n };\n this.getMeridiemText = function (ampm) {\n if (_this.is12HourCycleInCurrentLocale()) {\n // AM/PM translation only possible in those who have 12 hour cycle in locale.\n return _this.moment.localeData().meridiem(ampm === \"am\" ? 0 : 13, 0, false);\n }\n return ampm === \"am\" ? \"AM\" : \"PM\"; // fallback for de, ru, ...etc\n };\n this.startOfMonth = function (date) {\n return date.clone().startOf(\"month\");\n };\n this.endOfMonth = function (date) {\n return date.clone().endOf(\"month\");\n };\n this.startOfWeek = function (date) {\n return date.clone().startOf(\"week\");\n };\n this.endOfWeek = function (date) {\n return date.clone().endOf(\"week\");\n };\n this.getNextMonth = function (date) {\n return date.clone().add(1, \"month\");\n };\n this.getPreviousMonth = function (date) {\n return date.clone().subtract(1, \"month\");\n };\n this.getMonthArray = function (date) {\n var firstMonth = date.clone().startOf(\"year\");\n var monthArray = [firstMonth];\n while (monthArray.length < 12) {\n var prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(_this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n this.getYear = function (date) {\n return date.get(\"year\");\n };\n this.setYear = function (date, year) {\n return date.clone().set(\"year\", year);\n };\n this.mergeDateAndTime = function (date, time) {\n return date.hour(time.hour()).minute(time.minute()).second(time.second());\n };\n this.getWeekdays = function () {\n return _this.moment.weekdaysShort(true);\n };\n this.isEqual = function (value, comparing) {\n if (value === null && comparing === null) {\n return true;\n }\n return _this.moment(value).isSame(comparing);\n };\n this.getWeekArray = function (date) {\n var start = date.clone().startOf(\"month\").startOf(\"week\");\n var end = date.clone().endOf(\"month\").endOf(\"week\");\n var count = 0;\n var current = start;\n var nestedWeeks = [];\n while (current.isBefore(end)) {\n var weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n return nestedWeeks;\n };\n this.getYearRange = function (start, end) {\n var startDate = _this.moment(start).startOf(\"year\");\n var endDate = _this.moment(end).endOf(\"year\");\n var years = [];\n var current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.clone().add(1, \"year\");\n }\n return years;\n };\n this.isWithinRange = function (date, _a) {\n var start = _a[0], end = _a[1];\n return date.isBetween(start, end, null, \"[]\");\n };\n this.moment = instance || defaultMoment;\n this.locale = locale;\n this.formats = Object.assign({}, defaultFormats, formats);\n }\n return MomentUtils;\n}());\n\nexport { MomentUtils as default };\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const MuiPickersAdapterContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n MuiPickersAdapterContext.displayName = 'MuiPickersAdapterContext';\n}\n\n/**\n * @ignore - do not document.\n */\nfunction LocalizationProvider(props) {\n const {\n children,\n dateAdapter: Utils,\n dateFormats,\n dateLibInstance,\n locale\n } = props;\n const utils = React.useMemo(() => new Utils({\n locale,\n formats: dateFormats,\n instance: dateLibInstance\n }), [Utils, locale, dateFormats, dateLibInstance]);\n const defaultDates = React.useMemo(() => {\n return {\n minDate: utils.date('1900-01-01T00:00:00.000'),\n maxDate: utils.date('2099-12-31T00:00:00.000')\n };\n }, [utils]);\n const contextValue = React.useMemo(() => {\n return {\n utils,\n defaultDates\n };\n }, [defaultDates, utils]);\n return /*#__PURE__*/_jsx(MuiPickersAdapterContext.Provider, {\n value: contextValue,\n children: children\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? LocalizationProvider.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * @ignore\n */\n children: PropTypes.node,\n\n /**\n * DateIO adapter class function\n */\n dateAdapter: PropTypes.func.isRequired,\n\n /**\n * Formats that are used for any child pickers\n */\n dateFormats: PropTypes.shape({\n dayOfMonth: PropTypes.string,\n fullDate: PropTypes.string,\n fullDateTime: PropTypes.string,\n fullDateTime12h: PropTypes.string,\n fullDateTime24h: PropTypes.string,\n fullDateWithWeekday: PropTypes.string,\n fullTime: PropTypes.string,\n fullTime12h: PropTypes.string,\n fullTime24h: PropTypes.string,\n hours12h: PropTypes.string,\n hours24h: PropTypes.string,\n keyboardDate: PropTypes.string,\n keyboardDateTime: PropTypes.string,\n keyboardDateTime12h: PropTypes.string,\n keyboardDateTime24h: PropTypes.string,\n minutes: PropTypes.string,\n month: PropTypes.string,\n monthAndDate: PropTypes.string,\n monthAndYear: PropTypes.string,\n monthShort: PropTypes.string,\n normalDate: PropTypes.string,\n normalDateWithWeekday: PropTypes.string,\n seconds: PropTypes.string,\n shortDate: PropTypes.string,\n weekday: PropTypes.string,\n weekdayShort: PropTypes.string,\n year: PropTypes.string\n }),\n\n /**\n * Date library instance you are using, if it has some global overrides\n * ```jsx\n * dateLibInstance={momentTimeZone}\n * ```\n */\n dateLibInstance: PropTypes.any,\n\n /**\n * Locale for the date library you are using\n */\n locale: PropTypes.oneOfType([PropTypes.object, PropTypes.string])\n} : void 0;\nexport default LocalizationProvider;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import * as React from 'react';\nimport { createSvgIcon } from '@mui/material/utils';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Clock');","export function getTextFieldAriaText(rawValue, utils) {\n // TODO: should `isValid` narrow `TDate | null` to `NonNullable`?\n // Either we allow `TDate | null` to be valid and guard against calling `formatByString` with `null`.\n // Or we ensure `formatByString` is callable with `null`.\n return rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Choose date';\n}\nexport const getDisplayDate = (utils, value, inputFormat) => {\n const date = utils.date(value);\n const isEmpty = value === null;\n\n if (isEmpty) {\n return '';\n }\n\n return utils.isValid(date) ? utils.formatByString( // TODO: should `isValid` narrow `TDate | null` to `NonNullable`?\n // Either we allow `TDate | null` to be valid and guard against calling `formatByString` with `null`.\n // Or we ensure `formatByString` is callable with `null`.\n date, inputFormat) : '';\n};\nexport function pick12hOr24hFormat(userFormat, ampm, formats) {\n if (userFormat) {\n return userFormat;\n }\n\n if (typeof ampm === 'undefined') {\n return formats.localized;\n }\n\n return ampm ? formats['12h'] : formats['24h'];\n}\nconst MASK_USER_INPUT_SYMBOL = '_';\nconst staticDateWith2DigitTokens = '2019-11-21T22:30:00.000';\nconst staticDateWith1DigitTokens = '2019-01-01T09:00:00.000';\nexport function checkMaskIsValidForCurrentFormat(mask, format, acceptRegex, utils) {\n const formattedDateWith1Digit = utils.formatByString(utils.date(staticDateWith1DigitTokens), format);\n const inferredFormatPatternWith1Digits = formattedDateWith1Digit.replace(acceptRegex, MASK_USER_INPUT_SYMBOL);\n const inferredFormatPatternWith2Digits = utils.formatByString(utils.date(staticDateWith2DigitTokens), format).replace(acceptRegex, '_');\n const isMaskValid = inferredFormatPatternWith2Digits === mask && inferredFormatPatternWith1Digits === mask;\n\n if (!isMaskValid && utils.lib !== 'luxon' && process.env.NODE_ENV !== 'production') {\n console.warn(`The mask \"${mask}\" you passed is not valid for the format used ${format}. Falling down to uncontrolled not-masked input.`);\n }\n\n return isMaskValid;\n}\nexport const maskedDateFormatter = (mask, acceptRegexp) => value => {\n return value.split('').map((char, i) => {\n acceptRegexp.lastIndex = 0;\n\n if (i > mask.length - 1) {\n return '';\n }\n\n const maskChar = mask[i];\n const nextMaskChar = mask[i + 1];\n const acceptedChar = acceptRegexp.test(char) ? char : '';\n const formattedChar = maskChar === MASK_USER_INPUT_SYMBOL ? acceptedChar : maskChar + acceptedChar;\n\n if (i === value.length - 1 && nextMaskChar && nextMaskChar !== MASK_USER_INPUT_SYMBOL) {\n // when cursor at the end of mask part (e.g. month) prerender next symbol \"21\" -> \"21/\"\n return formattedChar ? formattedChar + nextMaskChar : '';\n }\n\n return formattedChar;\n }).join('');\n};","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nimport * as React from 'react';\nimport { MuiPickersAdapterContext } from '../../../LocalizationProvider'; // Required for babel https://github.com/vercel/next.js/issues/7882. Replace with `export type` in future\n\nfunction useLocalizationContext() {\n const localization = React.useContext(MuiPickersAdapterContext);\n\n if (localization === null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `Can not find utils in context. It looks like you forgot to wrap your component in LocalizationProvider, or pass dateAdapter prop directly.` : _formatMuiErrorMessage(13));\n }\n\n return localization;\n}\n\nexport function useUtils() {\n return useLocalizationContext().utils;\n}\nexport function useDefaultDates() {\n return useLocalizationContext().defaultDates;\n}\nexport function useNow() {\n const utils = useUtils();\n const now = React.useRef(utils.date());\n return now.current;\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}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"components\", \"inputFormat\", \"openTo\", \"views\"];\nimport { useThemeProps } from '@mui/material/styles';\nimport ClockIcon from '../internal/svg-icons/Clock';\nimport { pick12hOr24hFormat } from '../internal/pickers/text-field-helper';\nimport { useUtils } from '../internal/pickers/hooks/useUtils';\n\nfunction getTextFieldAriaText(value, utils) {\n return value && utils.isValid(utils.date(value)) ? `Choose time, selected time is ${utils.format(utils.date(value), 'fullTime')}` : 'Choose time';\n}\n\nexport function useTimePickerDefaultizedProps(_ref, name) {\n let {\n ampm,\n components,\n inputFormat,\n openTo = 'hours',\n views = ['hours', 'minutes']\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const utils = useUtils();\n const willUseAmPm = ampm != null ? ampm : utils.is12HourCycleInCurrentLocale();\n return useThemeProps({\n props: _extends({\n views,\n openTo,\n ampm: willUseAmPm,\n acceptRegex: willUseAmPm ? /[\\dapAP]/gi : /\\d/gi,\n mask: '__:__',\n disableMaskedInput: willUseAmPm,\n getOpenDialogAriaText: getTextFieldAriaText,\n components: _extends({\n OpenPickerIcon: ClockIcon\n }, components),\n inputFormat: pick12hOr24hFormat(inputFormat, willUseAmPm, {\n localized: utils.formats.fullTime,\n '12h': utils.formats.fullTime12h,\n '24h': utils.formats.fullTime24h\n })\n }, other),\n name\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 ClassNameGenerator from './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}","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}","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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"selected\", \"value\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersToolbarText', ['selected']);\nconst PickersToolbarTextRoot = styled(Typography)(({\n theme\n}) => ({\n transition: theme.transitions.create('color'),\n color: theme.palette.text.secondary,\n [`&.${classes.selected}`]: {\n color: theme.palette.text.primary\n }\n}));\nconst PickersToolbarText = /*#__PURE__*/React.forwardRef(function PickersToolbarText(props, ref) {\n const {\n className,\n selected,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsx(PickersToolbarTextRoot, _extends({\n ref: ref,\n className: clsx(className, selected && classes.selected),\n component: \"span\"\n }, other, {\n children: value\n }));\n});\nexport default PickersToolbarText;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"align\", \"className\", \"selected\", \"typographyClassName\", \"value\", \"variant\"];\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport PickersToolbarText from './PickersToolbarText';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PickersToolbarButtonRoot = styled(Button)({\n padding: 0,\n minWidth: 16,\n textTransform: 'none'\n});\nconst PickersToolbarButton = /*#__PURE__*/React.forwardRef(function PickersToolbarButton(props, ref) {\n const {\n align,\n className,\n selected,\n typographyClassName,\n value,\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsx(PickersToolbarButtonRoot, _extends({\n variant: \"text\",\n ref: ref,\n className: className\n }, other, {\n children: /*#__PURE__*/_jsx(PickersToolbarText, {\n align: align,\n className: typographyClassName,\n variant: variant,\n value: value,\n selected: selected\n })\n }));\n});\nexport default PickersToolbarButton;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _ClockIcon, _CalendarIcon, _PenIcon;\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport IconButton from '@mui/material/IconButton';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/base';\nimport PenIcon from '../svg-icons/Pen';\nimport CalendarIcon from '../svg-icons/Calendar';\nimport ClockIcon from '../svg-icons/Clock';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersToolbar', ['root', 'dateTitleContainer']);\nconst PickersToolbarRoot = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 3)\n}, ownerState.isLandscape && {\n height: 'auto',\n maxWidth: 160,\n padding: 16,\n justifyContent: 'flex-start',\n flexWrap: 'wrap'\n}));\nconst PickersToolbarGrid = styled(Grid)({\n flex: 1\n});\n\nconst getViewTypeIcon = viewType => viewType === 'clock' ? _ClockIcon || (_ClockIcon = /*#__PURE__*/_jsx(ClockIcon, {\n color: \"inherit\"\n})) : _CalendarIcon || (_CalendarIcon = /*#__PURE__*/_jsx(CalendarIcon, {\n color: \"inherit\"\n}));\n\nfunction defaultGetKeyboardInputSwitchingButtonText(isKeyboardInputOpen, viewType) {\n return isKeyboardInputOpen ? `text input view is open, go to ${viewType} view` : `${viewType} view is open, go to text input view`;\n}\n\nconst PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersToolbar(props, ref) {\n const {\n children,\n className,\n getMobileKeyboardInputViewButtonText = defaultGetKeyboardInputSwitchingButtonText,\n isLandscape,\n isMobileKeyboardViewOpen,\n landscapeDirection = 'column',\n penIconClassName,\n toggleMobileKeyboardView,\n toolbarTitle,\n viewType = 'calendar'\n } = props;\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersToolbarRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n variant: \"overline\",\n children: toolbarTitle\n }), /*#__PURE__*/_jsxs(PickersToolbarGrid, {\n container: true,\n justifyContent: \"space-between\",\n className: classes.dateTitleContainer,\n direction: isLandscape ? landscapeDirection : 'row',\n alignItems: isLandscape ? 'flex-start' : 'flex-end',\n children: [children, /*#__PURE__*/_jsx(IconButton, {\n onClick: toggleMobileKeyboardView,\n className: penIconClassName,\n color: \"inherit\",\n \"aria-label\": getMobileKeyboardInputViewButtonText(isMobileKeyboardViewOpen, viewType),\n children: isMobileKeyboardViewOpen ? getViewTypeIcon(viewType) : _PenIcon || (_PenIcon = /*#__PURE__*/_jsx(PenIcon, {\n color: \"inherit\"\n }))\n })]\n })]\n });\n});\nexport default PickersToolbar;","import * as React from 'react';\nimport { createSvgIcon } from '@mui/material/utils';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), 'Pen');","import * as React from 'react';\nimport { createSvgIcon } from '@mui/material/utils';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"\n}), 'Calendar');","/* Use it instead of .includes method for IE support */\nexport function arrayIncludes(array, itemOrItems) {\n if (Array.isArray(itemOrItems)) {\n return itemOrItems.every(item => array.indexOf(item) !== -1);\n }\n\n return array.indexOf(itemOrItems) !== -1;\n}\nexport const onSpaceOrEnter = (innerFn, onFocus) => event => {\n if (event.key === 'Enter' || event.key === ' ') {\n innerFn(); // prevent any side effects\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onFocus) {\n onFocus(event);\n }\n};\n/* Quick untyped helper to improve function composition readability */\n\nexport const pipe = (...fns) => fns.reduceRight((prevFn, nextFn) => (...args) => nextFn(prevFn(...args)), value => value);\nexport const executeInTheNextEventLoopTick = fn => {\n setTimeout(fn, 0);\n};\nexport function createDelegatedEventHandler(fn, onEvent) {\n return event => {\n fn(event);\n\n if (onEvent) {\n onEvent(event);\n }\n };\n}\nexport const doNothing = () => {};","export const getMeridiem = (date, utils) => {\n if (!date) {\n return null;\n }\n\n return utils.getHours(date) >= 12 ? 'pm' : 'am';\n};\nexport const convertValueToMeridiem = (value, meridiem, ampm) => {\n if (ampm) {\n const currentMeridiem = value >= 12 ? 'pm' : 'am';\n\n if (currentMeridiem !== meridiem) {\n return meridiem === 'am' ? value - 12 : value + 12;\n }\n }\n\n return value;\n};\nexport const convertToMeridiem = (time, meridiem, ampm, utils) => {\n const newHoursAmount = convertValueToMeridiem(utils.getHours(time), meridiem, ampm);\n return utils.setHours(time, newHoursAmount);\n};\nexport function getSecondsInDay(date, utils) {\n return utils.getHours(date) * 3600 + utils.getMinutes(date) * 60 + utils.getSeconds(date);\n}\nexport const createIsAfterIgnoreDatePart = (disableIgnoringDatePartForTimeValidation, utils) => (dateLeft, dateRight) => {\n if (disableIgnoringDatePartForTimeValidation) {\n return utils.isAfter(dateLeft, dateRight);\n }\n\n return getSecondsInDay(dateLeft, utils) > getSecondsInDay(dateRight, utils);\n};\nexport const validateTime = (utils, value, {\n minTime,\n maxTime,\n shouldDisableTime,\n disableIgnoringDatePartForTimeValidation\n}) => {\n const date = utils.date(value);\n const isAfterComparingFn = createIsAfterIgnoreDatePart(Boolean(disableIgnoringDatePartForTimeValidation), utils);\n\n if (value === null) {\n return null;\n }\n\n switch (true) {\n case !utils.isValid(value):\n return 'invalidDate';\n\n case Boolean(minTime && isAfterComparingFn(minTime, date)):\n return 'minTime';\n\n case Boolean(maxTime && isAfterComparingFn(date, maxTime)):\n return 'maxTime';\n\n case Boolean(shouldDisableTime && shouldDisableTime(utils.getHours(date), 'hours')):\n return 'shouldDisableTime-hours';\n\n case Boolean(shouldDisableTime && shouldDisableTime(utils.getMinutes(date), 'minutes')):\n return 'shouldDisableTime-minutes';\n\n case Boolean(shouldDisableTime && shouldDisableTime(utils.getSeconds(date), 'seconds')):\n return 'shouldDisableTime-seconds';\n\n default:\n return null;\n }\n};","import * as React from 'react';\nimport { useUtils } from './useUtils';\nimport { getMeridiem, convertToMeridiem } from '../time-utils';\nexport function useNextMonthDisabled(month, {\n disableFuture,\n maxDate\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date();\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n return !utils.isAfter(lastEnabledMonth, month);\n }, [disableFuture, maxDate, month, utils]);\n}\nexport function usePreviousMonthDisabled(month, {\n disablePast,\n minDate\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date();\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n return !utils.isBefore(firstEnabledMonth, month);\n }, [disablePast, minDate, month, utils]);\n}\nexport function useMeridiemMode(date, ampm, onChange) {\n const utils = useUtils();\n const meridiemMode = getMeridiem(date, utils);\n const handleMeridiemChange = React.useCallback(mode => {\n const timeWithMeridiem = convertToMeridiem(date, mode, Boolean(ampm), utils);\n onChange(timeWithMeridiem, 'partial');\n }, [ampm, date, onChange, utils]);\n return {\n meridiemMode,\n handleMeridiemChange\n };\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"ampm\", \"ampmInClock\", \"date\", \"isLandscape\", \"isMobileKeyboardViewOpen\", \"onChange\", \"openView\", \"setOpenView\", \"toggleMobileKeyboardView\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { useTheme, styled } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, generateUtilityClass, generateUtilityClasses } from '@mui/base';\nimport PickersToolbarText from '../internal/pickers/PickersToolbarText';\nimport PickersToolbarButton from '../internal/pickers/PickersToolbarButton';\nimport PickersToolbar from '../internal/pickers/PickersToolbar';\nimport { arrayIncludes } from '../internal/pickers/utils';\nimport { useUtils } from '../internal/pickers/hooks/useUtils';\nimport { useMeridiemMode } from '../internal/pickers/hooks/date-helpers-hooks';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function getTimePickerToolbarUtilityClass(slot) {\n return generateUtilityClass('PrivateTimePickerToolbar', slot);\n}\nexport const timePickerToolbarClasses = generateUtilityClasses('PrivateTimePickerToolbar', ['separator', 'hourMinuteLabel', 'hourMinuteLabelLandscape', 'hourMinuteLabelReverse', 'ampmSelection', 'ampmLandscape', 'ampmLabel', 'penIconLandscape']);\n\nconst useUtilityClasses = ownerState => {\n const {\n theme,\n isLandscape,\n classes\n } = ownerState;\n const slots = {\n penIconLandscape: ['penIconLandscape'],\n separator: ['separator'],\n hourMinuteLabel: ['hourMinuteLabel', isLandscape && 'hourMinuteLabelLandscape', theme.direction === 'rtl' && 'hourMinuteLabelReverse'],\n ampmSelection: ['ampmSelection', isLandscape && 'ampmLandscape'],\n ampmLabel: ['ampmLabel']\n };\n return composeClasses(slots, getTimePickerToolbarUtilityClass, classes);\n};\n\nconst TimePickerToolbarRoot = styled(PickersToolbar)({\n [`& .${timePickerToolbarClasses.penIconLandscape}`]: {\n marginTop: 'auto'\n }\n});\nconst TimePickerToolbarSeparator = styled(PickersToolbarText)({\n outline: 0,\n margin: '0 4px 0 2px',\n cursor: 'default'\n});\nconst TimePickerToolbarHourMinuteLabel = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'flex-end'\n}, ownerState.isLandscape && {\n marginTop: 'auto'\n}, theme.direction === 'rtl' && {\n flexDirection: 'row-reverse'\n}));\nconst TimePickerToolbarAmPmSelection = styled('div')(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n marginRight: 'auto',\n marginLeft: 12\n}, ownerState.isLandscape && {\n margin: '4px 0 auto',\n flexDirection: 'row',\n justifyContent: 'space-around',\n flexBasis: '100%'\n}, {\n [`& .${timePickerToolbarClasses.ampmLabel}`]: {\n fontSize: 17\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nconst TimePickerToolbar = props => {\n const {\n ampm,\n ampmInClock,\n date,\n isLandscape,\n isMobileKeyboardViewOpen,\n onChange,\n openView,\n setOpenView,\n toggleMobileKeyboardView,\n toolbarTitle = 'Select time',\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const theme = useTheme();\n const showAmPmControl = Boolean(ampm && !ampmInClock);\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(date, ampm, onChange);\n\n const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');\n\n const ownerState = props;\n const classes = useUtilityClasses(_extends({}, ownerState, {\n theme\n }));\n\n const separator = /*#__PURE__*/_jsx(TimePickerToolbarSeparator, {\n tabIndex: -1,\n value: \":\",\n variant: \"h3\",\n selected: false,\n className: classes.separator\n });\n\n return /*#__PURE__*/_jsxs(TimePickerToolbarRoot, _extends({\n viewType: \"clock\",\n landscapeDirection: \"row\",\n toolbarTitle: toolbarTitle,\n isLandscape: isLandscape,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView,\n ownerState: ownerState,\n penIconClassName: clsx(isLandscape && classes.penIconLandscape)\n }, other, {\n children: [/*#__PURE__*/_jsxs(TimePickerToolbarHourMinuteLabel, {\n className: classes.hourMinuteLabel,\n ownerState: ownerState,\n children: [arrayIncludes(views, 'hours') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"h3\",\n onClick: () => setOpenView('hours'),\n selected: openView === 'hours',\n value: date ? formatHours(date) : '--'\n }), arrayIncludes(views, ['hours', 'minutes']) && separator, arrayIncludes(views, 'minutes') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"h3\",\n onClick: () => setOpenView('minutes'),\n selected: openView === 'minutes',\n value: date ? utils.format(date, 'minutes') : '--'\n }), arrayIncludes(views, ['minutes', 'seconds']) && separator, arrayIncludes(views, 'seconds') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h3\",\n onClick: () => setOpenView('seconds'),\n selected: openView === 'seconds',\n value: date ? utils.format(date, 'seconds') : '--'\n })]\n }), showAmPmControl && /*#__PURE__*/_jsxs(TimePickerToolbarAmPmSelection, {\n className: classes.ampmSelection,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersToolbarButton, {\n disableRipple: true,\n variant: \"subtitle2\",\n selected: meridiemMode === 'am',\n typographyClassName: classes.ampmLabel,\n value: utils.getMeridiemText('am'),\n onClick: () => handleMeridiemChange('am')\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n disableRipple: true,\n variant: \"subtitle2\",\n selected: meridiemMode === 'pm',\n typographyClassName: classes.ampmLabel,\n value: utils.getMeridiemText('pm'),\n onClick: () => handleMeridiemChange('pm')\n })]\n })]\n }));\n};\n\nexport default TimePickerToolbar;","import * as React from 'react';\n\n/**\n * TODO consider getting rid from wrapper variant\n * @ignore - internal component.\n */\nexport const WrapperVariantContext = /*#__PURE__*/React.createContext(null);\n/**\n * @ignore - internal component.\n */\n\nexport const IsStaticVariantContext = /*#__PURE__*/React.createContext(false);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"onClick\", \"onTouchStart\"];\nimport * as React from 'react';\nimport Grow from '@mui/material/Grow';\nimport Paper from '@mui/material/Paper';\nimport Popper from '@mui/material/Popper';\nimport TrapFocus from '@mui/material/Unstable_TrapFocus';\nimport { useForkRef, useEventCallback, ownerDocument } from '@mui/material/utils';\nimport { styled } from '@mui/material/styles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PickersPopperRoot = styled(Popper)(({\n theme\n}) => ({\n zIndex: theme.zIndex.modal\n}));\nconst PickersPopperPaper = styled(Paper)(({\n ownerState\n}) => _extends({\n transformOrigin: 'top center',\n outline: 0\n}, ownerState.placement === 'top' && {\n transformOrigin: 'bottom center'\n}));\n\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Based on @mui/material/ClickAwayListener without the customization.\n * We can probably strip away even more since children won't be portaled.\n * @param onClickAway\n * @param onClick\n * @param onTouchStart\n */\n\n\nfunction useClickAwayListener(active, onClickAway) {\n const movedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n React.useEffect(() => {\n if (!active) {\n return undefined;\n } // Ensure that this hook is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n\n\n function armClickAwayListener() {\n activatedRef.current = true;\n }\n\n document.addEventListener('mousedown', armClickAwayListener, true);\n document.addEventListener('touchstart', armClickAwayListener, true);\n return () => {\n document.removeEventListener('mousedown', armClickAwayListener, true);\n document.removeEventListener('touchstart', armClickAwayListener, true);\n activatedRef.current = false;\n };\n }, [active]); // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n\n const handleClickAway = useEventCallback(event => {\n if (!activatedRef.current) {\n return;\n } // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n\n\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current); // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n\n if (!nodeRef.current || // is a TouchEvent?\n 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n } // Do not act if user performed touchmove\n\n\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n\n let insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);\n }\n\n if (!insideDOM && !insideReactTree) {\n onClickAway(event);\n }\n }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n const handleSynthetic = () => {\n syntheticEventRef.current = true;\n };\n\n React.useEffect(() => {\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n\n doc.addEventListener('touchstart', handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener('touchstart', handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n\n return undefined;\n }, [active, handleClickAway]);\n React.useEffect(() => {\n // TODO This behavior is not tested automatically\n // It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).\n // Or if this is a timing related issues due to different Transition components\n // Once we get rid of all the manual scheduling (e.g. setTimeout(update, 0)) we can revisit this code+test.\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener('click', handleClickAway);\n return () => {\n doc.removeEventListener('click', handleClickAway); // cleanup `handleClickAway`\n\n syntheticEventRef.current = false;\n };\n }\n\n return undefined;\n }, [active, handleClickAway]);\n return [nodeRef, handleSynthetic, handleSynthetic];\n}\n\nconst PickersPopper = props => {\n const {\n anchorEl,\n children,\n containerRef = null,\n onClose,\n open,\n PopperProps,\n role,\n TransitionComponent = Grow,\n TrapFocusProps,\n PaperProps = {}\n } = props;\n React.useEffect(() => {\n function handleKeyDown(nativeEvent) {\n // IE11, Edge (prior to using Bink?) use 'Esc'\n if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n onClose();\n }\n }\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onClose]);\n const lastFocusedElementRef = React.useRef(null);\n React.useEffect(() => {\n if (role === 'tooltip') {\n return;\n }\n\n if (open) {\n lastFocusedElementRef.current = document.activeElement;\n } else if (lastFocusedElementRef.current && lastFocusedElementRef.current instanceof HTMLElement) {\n lastFocusedElementRef.current.focus();\n }\n }, [open, role]);\n const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onClose);\n const paperRef = React.useRef(null);\n const handleRef = useForkRef(paperRef, containerRef);\n const handlePaperRef = useForkRef(handleRef, clickAwayRef);\n const ownerState = props;\n\n const {\n onClick: onPaperClickProp,\n onTouchStart: onPaperTouchStartProp\n } = PaperProps,\n otherPaperProps = _objectWithoutPropertiesLoose(PaperProps, _excluded);\n\n return /*#__PURE__*/_jsx(PickersPopperRoot, _extends({\n transition: true,\n role: role,\n open: open,\n anchorEl: anchorEl,\n ownerState: ownerState\n }, PopperProps, {\n children: ({\n TransitionProps,\n placement\n }) => /*#__PURE__*/_jsx(TrapFocus, _extends({\n open: open,\n disableAutoFocus: true,\n disableEnforceFocus: role === 'tooltip',\n isEnabled: () => true\n }, TrapFocusProps, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({}, TransitionProps, {\n children: /*#__PURE__*/_jsx(PickersPopperPaper, _extends({\n tabIndex: -1,\n elevation: 8,\n ref: handlePaperRef,\n onClick: event => {\n onPaperClick(event);\n\n if (onPaperClickProp) {\n onPaperClickProp(event);\n }\n },\n onTouchStart: event => {\n onPaperTouchStart(event);\n\n if (onPaperTouchStartProp) {\n onPaperTouchStartProp(event);\n }\n },\n ownerState: _extends({}, ownerState, {\n placement\n })\n }, otherPaperProps, {\n children: children\n }))\n }))\n }))\n }));\n};\n\nexport default PickersPopper;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useForkRef } from '@mui/material/utils';\nimport { WrapperVariantContext } from './WrapperVariantContext';\nimport PickersPopper from '../PickersPopper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nfunction DesktopWrapper(props) {\n const {\n children,\n DateInputProps,\n KeyboardDateInputComponent,\n onDismiss,\n open,\n PopperProps,\n PaperProps,\n TransitionComponent\n } = props;\n const ownInputRef = React.useRef(null);\n const inputRef = useForkRef(DateInputProps.inputRef, ownInputRef);\n return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {\n value: \"desktop\",\n children: [/*#__PURE__*/_jsx(KeyboardDateInputComponent, _extends({}, DateInputProps, {\n inputRef: inputRef\n })), /*#__PURE__*/_jsx(PickersPopper, {\n role: \"dialog\",\n open: open,\n anchorEl: ownInputRef.current,\n TransitionComponent: TransitionComponent,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n onClose: onDismiss,\n children: children\n })]\n });\n}\n\nexport default DesktopWrapper;","import * as React from 'react';\nimport { useControlled } from '@mui/material/utils';\nimport { arrayIncludes } from '../utils';\nexport function useViews({\n onChange,\n onViewChange,\n openTo,\n view,\n views\n}) {\n var _views, _views2;\n\n const [openView, setOpenView] = useControlled({\n name: 'Picker',\n state: 'view',\n controlled: view,\n default: openTo && arrayIncludes(views, openTo) ? openTo : views[0]\n });\n const previousView = (_views = views[views.indexOf(openView) - 1]) != null ? _views : null;\n const nextView = (_views2 = views[views.indexOf(openView) + 1]) != null ? _views2 : null;\n const changeView = React.useCallback(newView => {\n setOpenView(newView);\n\n if (onViewChange) {\n onViewChange(newView);\n }\n }, [setOpenView, onViewChange]);\n const openNext = React.useCallback(() => {\n if (nextView) {\n changeView(nextView);\n }\n }, [nextView, changeView]);\n const handleChangeAndOpenNext = React.useCallback((date, currentViewSelectionState) => {\n const isSelectionFinishedOnCurrentView = currentViewSelectionState === 'finish';\n const globalSelectionState = isSelectionFinishedOnCurrentView && Boolean(nextView) ? 'partial' : currentViewSelectionState;\n onChange(date, globalSelectionState);\n\n if (isSelectionFinishedOnCurrentView) {\n openNext();\n }\n }, [nextView, onChange, openNext]);\n return {\n handleChangeAndOpenNext,\n nextView,\n previousView,\n openNext,\n openView,\n setOpenView: changeView\n };\n}","import * as React from 'react';\nlet globalId = 0;\nexport default function useId(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}","import * as React from 'react';\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","export const CLOCK_WIDTH = 220;\nexport const CLOCK_HOUR_WIDTH = 36;\nconst clockCenter = {\n x: CLOCK_WIDTH / 2,\n y: CLOCK_WIDTH / 2\n};\nconst baseClockPoint = {\n x: clockCenter.x,\n y: 0\n};\nconst cx = baseClockPoint.x - clockCenter.x;\nconst cy = baseClockPoint.y - clockCenter.y;\n\nconst rad2deg = rad => rad * (180 / Math.PI);\n\nconst getAngleValue = (step, offsetX, offsetY) => {\n const x = offsetX - clockCenter.x;\n const y = offsetY - clockCenter.y;\n const atan = Math.atan2(cx, cy) - Math.atan2(x, y);\n let deg = rad2deg(atan);\n deg = Math.round(deg / step) * step;\n deg %= 360;\n const value = Math.floor(deg / step) || 0;\n const delta = x ** 2 + y ** 2;\n const distance = Math.sqrt(delta);\n return {\n value,\n distance\n };\n};\n\nexport const getMinutes = (offsetX, offsetY, step = 1) => {\n const angleStep = step * 6;\n let {\n value\n } = getAngleValue(angleStep, offsetX, offsetY);\n value = value * step % 60;\n return value;\n};\nexport const getHours = (offsetX, offsetY, ampm) => {\n const {\n value,\n distance\n } = getAngleValue(30, offsetX, offsetY);\n let hour = value || 12;\n\n if (!ampm) {\n if (distance < CLOCK_WIDTH / 2 - CLOCK_HOUR_WIDTH) {\n hour += 12;\n hour %= 24;\n }\n } else {\n hour %= 12;\n }\n\n return hour;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"hasSelected\", \"isInner\", \"type\", \"value\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ClockPointerRoot = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n width: 2,\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n left: 'calc(50% - 1px)',\n bottom: '50%',\n transformOrigin: 'center bottom 0px'\n}, ownerState.toAnimateTransform && {\n transition: theme.transitions.create(['transform', 'height'])\n}));\nconst ClockPointerThumb = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n width: 4,\n height: 4,\n backgroundColor: theme.palette.primary.contrastText,\n borderRadius: '50%',\n position: 'absolute',\n top: -21,\n left: `calc(50% - ${CLOCK_HOUR_WIDTH / 2}px)`,\n border: `${(CLOCK_HOUR_WIDTH - 4) / 2}px solid ${theme.palette.primary.main}`,\n boxSizing: 'content-box'\n}, ownerState.hasSelected && {\n backgroundColor: theme.palette.primary.main\n}));\n/**\n * @ignore - internal component.\n */\n\nclass ClockPointer extends React.Component {\n constructor(...args) {\n super(...args);\n this.state = {\n toAnimateTransform: false,\n previousType: undefined\n };\n }\n\n render() {\n const _this$props = this.props,\n {\n className,\n isInner,\n type,\n value\n } = _this$props,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n const ownerState = _extends({}, this.props, this.state);\n\n const getAngleStyle = () => {\n const max = type === 'hours' ? 12 : 60;\n let angle = 360 / max * value;\n\n if (type === 'hours' && value > 12) {\n angle -= 360; // round up angle to max 360 degrees\n }\n\n return {\n height: Math.round((isInner ? 0.26 : 0.4) * CLOCK_WIDTH),\n transform: `rotateZ(${angle}deg)`\n };\n };\n\n return /*#__PURE__*/_jsx(ClockPointerRoot, _extends({\n style: getAngleStyle(),\n className: className,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(ClockPointerThumb, {\n ownerState: ownerState\n })\n }));\n }\n\n}\n\nClockPointer.getDerivedStateFromProps = (nextProps, state) => {\n if (nextProps.type !== state.previousType) {\n return {\n toAnimateTransform: true,\n previousType: nextProps.type\n };\n }\n\n return {\n toAnimateTransform: false,\n previousType: nextProps.type\n };\n};\n\nexport default ClockPointer;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _ClockPin, _Typography, _Typography2;\n\nimport * as React from 'react';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport ClockPointer from './ClockPointer';\nimport { useUtils } from '../internal/pickers/hooks/useUtils';\nimport { WrapperVariantContext } from '../internal/pickers/wrappers/WrapperVariantContext';\nimport { getHours, getMinutes } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst ClockRoot = styled('div')(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(2)\n}));\nconst ClockClock = styled('div')({\n backgroundColor: 'rgba(0,0,0,.07)',\n borderRadius: '50%',\n height: 220,\n width: 220,\n flexShrink: 0,\n position: 'relative',\n pointerEvents: 'none'\n});\nconst ClockSquareMask = styled('div')({\n width: '100%',\n height: '100%',\n position: 'absolute',\n pointerEvents: 'auto',\n outline: 0,\n // Disable scroll capabilities.\n touchAction: 'none',\n userSelect: 'none',\n '@media (pointer: fine)': {\n cursor: 'pointer',\n borderRadius: '50%'\n },\n '&:active': {\n cursor: 'move'\n }\n});\nconst ClockPin = styled('div')(({\n theme\n}) => ({\n width: 6,\n height: 6,\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)'\n}));\nconst ClockAmButton = styled(IconButton)(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: ownerState.ampmInClock ? 64 : 8,\n left: 8\n}, ownerState.meridiemMode === 'am' && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.light\n }\n}));\nconst ClockPmButton = styled(IconButton)(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: ownerState.ampmInClock ? 64 : 8,\n right: 8\n}, ownerState.meridiemMode === 'pm' && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.light\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nfunction Clock(props) {\n const {\n ampm,\n ampmInClock,\n autoFocus,\n children,\n date,\n getClockLabelText,\n handleMeridiemChange,\n isTimeDisabled,\n meridiemMode,\n minutesStep = 1,\n onChange,\n selectedId,\n type,\n value\n } = props;\n const ownerState = props;\n const utils = useUtils();\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const isMoving = React.useRef(false);\n const isSelectedTimeDisabled = isTimeDisabled(value, type);\n const isPointerInner = !ampm && type === 'hours' && (value < 1 || value > 12);\n\n const handleValueChange = (newValue, isFinish) => {\n if (isTimeDisabled(newValue, type)) {\n return;\n }\n\n onChange(newValue, isFinish);\n };\n\n const setTime = (event, isFinish) => {\n let {\n offsetX,\n offsetY\n } = event;\n\n if (offsetX === undefined) {\n const rect = event.target.getBoundingClientRect();\n offsetX = event.changedTouches[0].clientX - rect.left;\n offsetY = event.changedTouches[0].clientY - rect.top;\n }\n\n const newSelectedValue = type === 'seconds' || type === 'minutes' ? getMinutes(offsetX, offsetY, minutesStep) : getHours(offsetX, offsetY, Boolean(ampm));\n handleValueChange(newSelectedValue, isFinish);\n };\n\n const handleTouchMove = event => {\n isMoving.current = true;\n setTime(event, 'shallow');\n };\n\n const handleTouchEnd = event => {\n if (isMoving.current) {\n setTime(event, 'finish');\n isMoving.current = false;\n }\n };\n\n const handleMouseMove = event => {\n // event.buttons & PRIMARY_MOUSE_BUTTON\n if (event.buttons > 0) {\n setTime(event.nativeEvent, 'shallow');\n }\n };\n\n const handleMouseUp = event => {\n if (isMoving.current) {\n isMoving.current = false;\n }\n\n setTime(event.nativeEvent, 'finish');\n };\n\n const hasSelected = React.useMemo(() => {\n if (type === 'hours') {\n return true;\n }\n\n return value % 5 === 0;\n }, [type, value]);\n const keyboardControlStep = type === 'minutes' ? minutesStep : 1;\n const listboxRef = React.useRef(null); // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n\n useEnhancedEffect(() => {\n if (autoFocus) {\n // The ref not being resolved would be a bug in MUI.\n listboxRef.current.focus();\n }\n }, [autoFocus]);\n\n const handleKeyDown = event => {\n // TODO: Why this early exit?\n if (isMoving.current) {\n return;\n }\n\n switch (event.key) {\n case 'Home':\n // annulate both hours and minutes\n handleValueChange(0, 'partial');\n event.preventDefault();\n break;\n\n case 'End':\n handleValueChange(type === 'minutes' ? 59 : 23, 'partial');\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n handleValueChange(value + keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n handleValueChange(value - keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n\n default: // do nothing\n\n }\n };\n\n return /*#__PURE__*/_jsxs(ClockRoot, {\n children: [/*#__PURE__*/_jsxs(ClockClock, {\n children: [/*#__PURE__*/_jsx(ClockSquareMask, {\n onTouchMove: handleTouchMove,\n onTouchEnd: handleTouchEnd,\n onMouseUp: handleMouseUp,\n onMouseMove: handleMouseMove\n }), !isSelectedTimeDisabled && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [_ClockPin || (_ClockPin = /*#__PURE__*/_jsx(ClockPin, {})), date && /*#__PURE__*/_jsx(ClockPointer, {\n type: type,\n value: value,\n isInner: isPointerInner,\n hasSelected: hasSelected\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n \"aria-activedescendant\": selectedId,\n \"aria-label\": getClockLabelText(type, date, utils),\n ref: listboxRef,\n role: \"listbox\",\n onKeyDown: handleKeyDown,\n tabIndex: 0,\n children: children\n })]\n }), ampm && (wrapperVariant === 'desktop' || ampmInClock) && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockAmButton, {\n onClick: () => handleMeridiemChange('am'),\n disabled: meridiemMode === null,\n ownerState: ownerState,\n children: _Typography || (_Typography = /*#__PURE__*/_jsx(Typography, {\n variant: \"caption\",\n children: \"AM\"\n }))\n }), /*#__PURE__*/_jsx(ClockPmButton, {\n disabled: meridiemMode === null,\n onClick: () => handleMeridiemChange('pm'),\n ownerState: ownerState,\n children: _Typography2 || (_Typography2 = /*#__PURE__*/_jsx(Typography, {\n variant: \"caption\",\n children: \"PM\"\n }))\n })]\n })]\n });\n}\n\nexport default Clock;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"index\", \"inner\", \"label\", \"selected\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/base';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const classes = generateUtilityClasses('PrivateClockNumber', ['selected', 'disabled']);\nconst ClockNumberRoot = styled('span')(({\n theme,\n ownerState\n}) => _extends({\n height: CLOCK_HOUR_WIDTH,\n width: CLOCK_HOUR_WIDTH,\n position: 'absolute',\n left: `calc((100% - ${CLOCK_HOUR_WIDTH}px) / 2)`,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n color: theme.palette.text.primary,\n '&:focused': {\n backgroundColor: theme.palette.background.paper\n },\n [`&.${classes.selected}`]: {\n color: theme.palette.primary.contrastText\n },\n [`&.${classes.disabled}`]: {\n pointerEvents: 'none',\n color: theme.palette.text.disabled\n }\n}, ownerState.inner && _extends({}, theme.typography.body2, {\n color: theme.palette.text.secondary\n})));\n/**\n * @ignore - internal component.\n */\n\nfunction ClockNumber(props) {\n const {\n className,\n disabled,\n index,\n inner,\n label,\n selected\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const angle = index % 12 / 12 * Math.PI * 2 - Math.PI / 2;\n const length = (CLOCK_WIDTH - CLOCK_HOUR_WIDTH - 2) / 2 * (inner ? 0.65 : 1);\n const x = Math.round(Math.cos(angle) * length);\n const y = Math.round(Math.sin(angle) * length);\n return /*#__PURE__*/_jsx(ClockNumberRoot, _extends({\n className: clsx(className, selected && classes.selected, disabled && classes.disabled),\n \"aria-disabled\": disabled ? true : undefined,\n \"aria-selected\": selected ? true : undefined,\n role: \"option\",\n style: {\n transform: `translate(${x}px, ${y + (CLOCK_WIDTH - CLOCK_HOUR_WIDTH) / 2}px`\n },\n ownerState: ownerState\n }, other, {\n children: label\n }));\n}\n\nexport default ClockNumber;","import * as React from 'react';\nimport ClockNumber from './ClockNumber';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n * @ignore - internal component.\n */\nexport const getHourNumbers = ({\n ampm,\n date,\n getClockNumberText,\n isDisabled,\n selectedId,\n utils\n}) => {\n const currentHours = date ? utils.getHours(date) : null;\n const hourNumbers = [];\n const startHour = ampm ? 1 : 0;\n const endHour = ampm ? 12 : 23;\n\n const isSelected = hour => {\n if (currentHours === null) {\n return false;\n }\n\n if (ampm) {\n if (hour === 12) {\n return currentHours === 12 || currentHours === 0;\n }\n\n return currentHours === hour || currentHours - 12 === hour;\n }\n\n return currentHours === hour;\n };\n\n for (let hour = startHour; hour <= endHour; hour += 1) {\n let label = hour.toString();\n\n if (hour === 0) {\n label = '00';\n }\n\n const inner = !ampm && (hour === 0 || hour > 12);\n label = utils.formatNumber(label);\n const selected = isSelected(hour);\n hourNumbers.push( /*#__PURE__*/_jsx(ClockNumber, {\n id: selected ? selectedId : undefined,\n index: hour,\n inner: inner,\n selected: selected,\n disabled: isDisabled(hour),\n label: label,\n \"aria-label\": getClockNumberText(label)\n }, hour));\n }\n\n return hourNumbers;\n};\nexport const getMinutesNumbers = ({\n utils,\n value,\n isDisabled,\n getClockNumberText,\n selectedId\n}) => {\n const f = utils.formatNumber;\n return [[5, f('05')], [10, f('10')], [15, f('15')], [20, f('20')], [25, f('25')], [30, f('30')], [35, f('35')], [40, f('40')], [45, f('45')], [50, f('50')], [55, f('55')], [0, f('00')]].map(([numberValue, label], index) => {\n const selected = numberValue === value;\n return /*#__PURE__*/_jsx(ClockNumber, {\n label: label,\n id: selected ? selectedId : undefined,\n index: index + 1,\n inner: false,\n disabled: isDisabled(numberValue),\n selected: selected,\n \"aria-label\": getClockNumberText(label)\n }, numberValue);\n });\n};","import * as React from 'react';\nimport { createSvgIcon } from '@mui/material/utils';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'ArrowLeft');","import * as React from 'react';\nimport { createSvgIcon } from '@mui/material/utils';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'ArrowRight');","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"components\", \"componentsProps\", \"isLeftDisabled\", \"isLeftHidden\", \"isRightDisabled\", \"isRightHidden\", \"leftArrowButtonText\", \"onLeftClick\", \"onRightClick\", \"rightArrowButtonText\"];\nimport * as React from 'react';\nimport Typography from '@mui/material/Typography';\nimport { useTheme, styled } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport ArrowLeftIcon from '../svg-icons/ArrowLeft';\nimport ArrowRightIcon from '../svg-icons/ArrowRight';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersArrowSwitcherRoot = styled('div')({\n display: 'flex'\n});\nconst PickersArrowSwitcherSpacer = styled('div')(({\n theme\n}) => ({\n width: theme.spacing(3)\n}));\nconst PickersArrowSwitcherButton = styled(IconButton)(({\n ownerState\n}) => _extends({}, ownerState.hidden && {\n visibility: 'hidden'\n}));\nconst PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(props, ref) {\n const {\n children,\n className,\n components = {},\n componentsProps = {},\n isLeftDisabled,\n isLeftHidden,\n isRightDisabled,\n isRightHidden,\n leftArrowButtonText,\n onLeftClick,\n onRightClick,\n rightArrowButtonText\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const leftArrowButtonProps = componentsProps.leftArrowButton || {};\n const LeftArrowIcon = components.LeftArrowIcon || ArrowLeftIcon;\n const rightArrowButtonProps = componentsProps.rightArrowButton || {};\n const RightArrowIcon = components.RightArrowIcon || ArrowRightIcon;\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersArrowSwitcherRoot, _extends({\n ref: ref,\n className: className,\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(PickersArrowSwitcherButton, _extends({\n as: components.LeftArrowButton,\n size: \"small\",\n \"aria-label\": leftArrowButtonText,\n title: leftArrowButtonText,\n disabled: isLeftDisabled,\n edge: \"end\",\n onClick: onLeftClick\n }, leftArrowButtonProps, {\n className: leftArrowButtonProps.className,\n ownerState: _extends({}, ownerState, leftArrowButtonProps, {\n hidden: isLeftHidden\n }),\n children: isRtl ? /*#__PURE__*/_jsx(RightArrowIcon, {}) : /*#__PURE__*/_jsx(LeftArrowIcon, {})\n })), children ? /*#__PURE__*/_jsx(Typography, {\n variant: \"subtitle1\",\n component: \"span\",\n children: children\n }) : /*#__PURE__*/_jsx(PickersArrowSwitcherSpacer, {\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersArrowSwitcherButton, _extends({\n as: components.RightArrowButton,\n size: \"small\",\n \"aria-label\": rightArrowButtonText,\n title: rightArrowButtonText,\n edge: \"start\",\n disabled: isRightDisabled,\n onClick: onRightClick\n }, rightArrowButtonProps, {\n className: rightArrowButtonProps.className,\n ownerState: _extends({}, ownerState, rightArrowButtonProps, {\n hidden: isRightHidden\n }),\n children: isRtl ? /*#__PURE__*/_jsx(LeftArrowIcon, {}) : /*#__PURE__*/_jsx(RightArrowIcon, {})\n }))]\n }));\n});\nexport default PickersArrowSwitcher;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, generateUtilityClass, generateUtilityClasses } from '@mui/base';\nimport Clock from './Clock';\nimport { pipe } from '../internal/pickers/utils';\nimport { useUtils, useNow } from '../internal/pickers/hooks/useUtils';\nimport { getHourNumbers, getMinutesNumbers } from './ClockNumbers';\nimport PickersArrowSwitcher from '../internal/pickers/PickersArrowSwitcher';\nimport { convertValueToMeridiem, createIsAfterIgnoreDatePart } from '../internal/pickers/time-utils';\nimport { useMeridiemMode } from '../internal/pickers/hooks/date-helpers-hooks';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function getClockPickerUtilityClass(slot) {\n return generateUtilityClass('MuiClockPicker', slot);\n}\nexport const clockPickerClasses = generateUtilityClasses('MuiClockPicker', ['arrowSwitcher']);\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n arrowSwitcher: ['arrowSwitcher']\n };\n return composeClasses(slots, getClockPickerUtilityClass, classes);\n};\n\nconst ClockPickerArrowSwitcher = styled(PickersArrowSwitcher, {\n name: 'MuiClockPicker',\n slot: 'ArrowSwitcher',\n overridesResolver: (props, styles) => styles.arrowSwitcher\n})({\n position: 'absolute',\n right: 12,\n top: 15\n});\n\nconst defaultGetClockLabelText = (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`;\n\nconst defaultGetMinutesClockNumberText = minutes => `${minutes} minutes`;\n\nconst defaultGetHoursClockNumberText = hours => `${hours} hours`;\n\nconst defaultGetSecondsClockNumberText = seconds => `${seconds} seconds`;\n/**\n *\n * API:\n *\n * - [ClockPicker API](https://mui.com/api/clock-picker/)\n */\n\n\nfunction ClockPicker(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClockPicker'\n });\n const {\n ampm = false,\n ampmInClock = false,\n autoFocus,\n components,\n componentsProps,\n date,\n disableIgnoringDatePartForTimeValidation = false,\n getClockLabelText = defaultGetClockLabelText,\n getHoursClockNumberText = defaultGetHoursClockNumberText,\n getMinutesClockNumberText = defaultGetMinutesClockNumberText,\n getSecondsClockNumberText = defaultGetSecondsClockNumberText,\n leftArrowButtonText = 'open previous view',\n maxTime,\n minTime,\n minutesStep = 1,\n nextViewAvailable,\n onChange,\n openNextView,\n openPreviousView,\n previousViewAvailable,\n rightArrowButtonText = 'open next view',\n shouldDisableTime,\n showViewSwitcher,\n view\n } = props;\n const now = useNow();\n const utils = useUtils();\n const midnight = utils.setSeconds(utils.setMinutes(utils.setHours(now, 0), 0), 0);\n const dateOrMidnight = date || midnight;\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(dateOrMidnight, ampm, onChange);\n const isTimeDisabled = React.useCallback((rawValue, viewType) => {\n if (date === null) {\n return false;\n }\n\n const validateTimeValue = getRequestedTimePoint => {\n const isAfterComparingFn = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n return Boolean(minTime && isAfterComparingFn(minTime, getRequestedTimePoint('end')) || maxTime && isAfterComparingFn(getRequestedTimePoint('start'), maxTime) || shouldDisableTime && shouldDisableTime(rawValue, viewType));\n };\n\n switch (viewType) {\n case 'hours':\n {\n const hoursWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);\n return validateTimeValue(when => pipe(currentDate => utils.setHours(currentDate, hoursWithMeridiem), dateWithHours => utils.setMinutes(dateWithHours, when === 'start' ? 0 : 59), dateWithMinutes => utils.setSeconds(dateWithMinutes, when === 'start' ? 0 : 59))(date));\n }\n\n case 'minutes':\n return validateTimeValue(when => pipe(currentDate => utils.setMinutes(currentDate, rawValue), dateWithMinutes => utils.setSeconds(dateWithMinutes, when === 'start' ? 0 : 59))(date));\n\n case 'seconds':\n return validateTimeValue(() => utils.setSeconds(date, rawValue));\n\n default:\n throw new Error('not supported');\n }\n }, [ampm, date, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, shouldDisableTime, utils]);\n const selectedId = useId();\n const viewProps = React.useMemo(() => {\n switch (view) {\n case 'hours':\n {\n const handleHoursChange = (value, isFinish) => {\n const valueWithMeridiem = convertValueToMeridiem(value, meridiemMode, ampm);\n onChange(utils.setHours(dateOrMidnight, valueWithMeridiem), isFinish);\n };\n\n return {\n onChange: handleHoursChange,\n value: utils.getHours(dateOrMidnight),\n children: getHourNumbers({\n date,\n utils,\n ampm,\n onChange: handleHoursChange,\n getClockNumberText: getHoursClockNumberText,\n isDisabled: value => isTimeDisabled(value, 'hours'),\n selectedId\n })\n };\n }\n\n case 'minutes':\n {\n const minutesValue = utils.getMinutes(dateOrMidnight);\n\n const handleMinutesChange = (value, isFinish) => {\n onChange(utils.setMinutes(dateOrMidnight, value), isFinish);\n };\n\n return {\n value: minutesValue,\n onChange: handleMinutesChange,\n children: getMinutesNumbers({\n utils,\n value: minutesValue,\n onChange: handleMinutesChange,\n getClockNumberText: getMinutesClockNumberText,\n isDisabled: value => isTimeDisabled(value, 'minutes'),\n selectedId\n })\n };\n }\n\n case 'seconds':\n {\n const secondsValue = utils.getSeconds(dateOrMidnight);\n\n const handleSecondsChange = (value, isFinish) => {\n onChange(utils.setSeconds(dateOrMidnight, value), isFinish);\n };\n\n return {\n value: secondsValue,\n onChange: handleSecondsChange,\n children: getMinutesNumbers({\n utils,\n value: secondsValue,\n onChange: handleSecondsChange,\n getClockNumberText: getSecondsClockNumberText,\n isDisabled: value => isTimeDisabled(value, 'seconds'),\n selectedId\n })\n };\n }\n\n default:\n throw new Error('You must provide the type for ClockView');\n }\n }, [view, utils, date, ampm, getHoursClockNumberText, getMinutesClockNumberText, getSecondsClockNumberText, meridiemMode, onChange, dateOrMidnight, isTimeDisabled, selectedId]);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [showViewSwitcher && /*#__PURE__*/_jsx(ClockPickerArrowSwitcher, {\n className: classes.arrowSwitcher,\n leftArrowButtonText: leftArrowButtonText,\n rightArrowButtonText: rightArrowButtonText,\n components: components,\n componentsProps: componentsProps,\n onLeftClick: openPreviousView,\n onRightClick: openNextView,\n isLeftDisabled: previousViewAvailable,\n isRightDisabled: nextViewAvailable,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(Clock, _extends({\n autoFocus: autoFocus,\n date: date,\n ampmInClock: ampmInClock,\n type: view,\n ampm: ampm,\n getClockLabelText: getClockLabelText,\n minutesStep: minutesStep,\n isTimeDisabled: isTimeDisabled,\n meridiemMode: meridiemMode,\n handleMeridiemChange: handleMeridiemChange,\n selectedId: selectedId\n }, viewProps))]\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ClockPicker.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * 12h/24h view for hour selection clock.\n * @default false\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n\n /**\n * Set to `true` if focus should be moved to clock picker.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The components used for each slot.\n * Either a string to use a HTML element or a component.\n */\n components: PropTypes.shape({\n LeftArrowButton: PropTypes.elementType,\n LeftArrowIcon: PropTypes.elementType,\n RightArrowButton: PropTypes.elementType,\n RightArrowIcon: PropTypes.elementType\n }),\n\n /**\n * The props used for each slot inside.\n */\n componentsProps: PropTypes.shape({\n leftArrowButton: PropTypes.object,\n rightArrowButton: PropTypes.object\n }),\n\n /**\n * Selected date @DateIOType.\n */\n date: PropTypes.any,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get clock number aria-text for hours.\n * @default (hours: string) => `${hours} hours`\n */\n getHoursClockNumberText: PropTypes.func,\n\n /**\n * Get clock number aria-text for minutes.\n * @default (minutes: string) => `${minutes} minutes`\n */\n getMinutesClockNumberText: PropTypes.func,\n\n /**\n * Get clock number aria-text for seconds.\n * @default (seconds: string) => `${seconds} seconds`\n */\n getSecondsClockNumberText: PropTypes.func,\n\n /**\n * Left arrow icon aria-label text.\n * @default 'open previous view'\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * @ignore\n */\n nextViewAvailable: PropTypes.bool.isRequired,\n\n /**\n * On change callback @DateIOType.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * @ignore\n */\n openNextView: PropTypes.func.isRequired,\n\n /**\n * @ignore\n */\n openPreviousView: PropTypes.func.isRequired,\n\n /**\n * @ignore\n */\n previousViewAvailable: PropTypes.bool.isRequired,\n\n /**\n * Right arrow icon aria-label text.\n * @default 'open next view'\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * @ignore\n */\n showViewSwitcher: PropTypes.bool,\n\n /**\n * @ignore\n */\n view: PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired\n} : void 0;\n/**\n *\n * Demos:\n *\n * - [Time Picker](https://mui.com/components/time-picker/)\n *\n * API:\n *\n * - [ClockPicker API](https://mui.com/api/clock-picker/)\n */\n\nexport default ClockPicker;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disabled\", \"onSelect\", \"selected\", \"value\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled, alpha } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/base';\nimport { onSpaceOrEnter } from '../internal/pickers/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersMonth', ['root', 'selected']);\nconst PickersMonthRoot = styled(Typography)(({\n theme\n}) => _extends({\n flex: '1 0 33.33%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus, &:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n pointerEvents: 'none',\n color: theme.palette.text.secondary\n },\n [`&.${classes.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n }\n}));\n/**\n * @ignore - do not document.\n */\n\nconst PickersMonth = props => {\n const {\n disabled,\n onSelect,\n selected,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const handleSelection = () => {\n onSelect(value);\n };\n\n return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({\n component: \"button\",\n className: clsx(classes.root, selected && classes.selected),\n tabIndex: disabled ? -1 : 0,\n onClick: handleSelection,\n onKeyDown: onSpaceOrEnter(handleSelection),\n color: selected ? 'primary' : undefined,\n variant: selected ? 'h5' : 'subtitle1',\n disabled: disabled\n }, other));\n};\n\nexport default PickersMonth;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"date\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"onMonthChange\", \"readOnly\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, generateUtilityClass, generateUtilityClasses } from '@mui/base';\nimport PickersMonth from './PickersMonth';\nimport { useUtils, useNow } from '../internal/pickers/hooks/useUtils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getMonthPickerUtilityClass(slot) {\n return generateUtilityClass('MuiMonthPicker', slot);\n}\nexport const monthPickerClasses = generateUtilityClasses('MuiMonthPicker', ['root']);\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getMonthPickerUtilityClass, classes);\n};\n\nconst MonthPickerRoot = styled('div', {\n name: 'MuiMonthPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: 310,\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'stretch',\n margin: '0 4px'\n});\nconst MonthPicker = /*#__PURE__*/React.forwardRef(function MonthPicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMonthPicker'\n });\n\n const {\n className,\n date,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onChange,\n onMonthChange,\n readOnly\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const utils = useUtils();\n const now = useNow();\n const currentMonth = utils.getMonth(date || now);\n\n const shouldDisableMonth = month => {\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n const isBeforeFirstEnabled = utils.isBefore(month, firstEnabledMonth);\n const isAfterLastEnabled = utils.isAfter(month, lastEnabledMonth);\n return isBeforeFirstEnabled || isAfterLastEnabled;\n };\n\n const onMonthSelect = month => {\n if (readOnly) {\n return;\n }\n\n const newDate = utils.setMonth(date || now, month);\n onChange(newDate, 'finish');\n\n if (onMonthChange) {\n onMonthChange(newDate);\n }\n };\n\n return /*#__PURE__*/_jsx(MonthPickerRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: utils.getMonthArray(date || now).map(month => {\n const monthNumber = utils.getMonth(month);\n const monthText = utils.format(month, 'monthShort');\n return /*#__PURE__*/_jsx(PickersMonth, {\n value: monthNumber,\n selected: monthNumber === currentMonth,\n onSelect: onMonthSelect,\n disabled: disabled || shouldDisableMonth(month),\n children: monthText\n }, monthText);\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MonthPicker.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * className applied to the root element.\n */\n className: PropTypes.string,\n\n /**\n * Date value for the MonthPicker\n */\n date: PropTypes.any,\n\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n */\n disablePast: PropTypes.bool,\n\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any.isRequired,\n\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any.isRequired,\n\n /**\n * Callback fired on date change.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * @ignore\n */\n onMonthChange: PropTypes.func,\n\n /**\n * If `true` picker is readonly\n */\n readOnly: 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} : void 0;\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/components/date-picker/)\n *\n * API:\n *\n * - [MonthPicker API](https://mui.com/api/month-picker/)\n */\n\nexport default MonthPicker;","export const findClosestEnabledDate = ({\n date,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n shouldDisableDate,\n utils\n}) => {\n const today = utils.startOfDay(utils.date());\n\n if (disablePast && utils.isBefore(minDate, today)) {\n minDate = today;\n }\n\n if (disableFuture && utils.isAfter(maxDate, today)) {\n maxDate = today;\n }\n\n let forward = date;\n let backward = date;\n\n if (utils.isBefore(date, minDate)) {\n forward = utils.date(minDate);\n backward = null;\n }\n\n if (utils.isAfter(date, maxDate)) {\n if (backward) {\n backward = utils.date(maxDate);\n }\n\n forward = null;\n }\n\n while (forward || backward) {\n if (forward && utils.isAfter(forward, maxDate)) {\n forward = null;\n }\n\n if (backward && utils.isBefore(backward, minDate)) {\n backward = null;\n }\n\n if (forward) {\n if (!shouldDisableDate(forward)) {\n return forward;\n }\n\n forward = utils.addDays(forward, 1);\n }\n\n if (backward) {\n if (!shouldDisableDate(backward)) {\n return backward;\n }\n\n backward = utils.addDays(backward, -1);\n }\n }\n\n return today;\n};\nexport function parsePickerInputValue(utils, value) {\n const parsedValue = utils.date(value);\n return utils.isValid(parsedValue) ? parsedValue : null;\n}\nexport function parseRangeInputValue(utils, value = [null, null]) {\n return value.map(date => !utils.isValid(date) || date === null ? null : utils.startOfDay(utils.date(date)));\n}\nexport const isRangeValid = (utils, range) => {\n return Boolean(range && range[0] && range[1] && !utils.isBefore(range[1], range[0]));\n};\nexport const isWithinRange = (utils, day, range) => {\n return isRangeValid(utils, range) && utils.isWithinRange(day, range);\n};\nexport const isStartOfRange = (utils, day, range) => {\n return isRangeValid(utils, range) && utils.isSameDay(day, range[0]);\n};\nexport const isEndOfRange = (utils, day, range) => {\n return isRangeValid(utils, range) && utils.isSameDay(day, range[1]);\n};\nexport const validateDate = (utils, value, {\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n shouldDisableDate\n}) => {\n const now = utils.date();\n const date = utils.date(value);\n\n if (date === null) {\n return null;\n }\n\n switch (true) {\n case !utils.isValid(value):\n return 'invalidDate';\n\n case Boolean(shouldDisableDate && shouldDisableDate(date)):\n return 'shouldDisableDate';\n\n case Boolean(disableFuture && utils.isAfterDay(date, now)):\n return 'disableFuture';\n\n case Boolean(disablePast && utils.isBeforeDay(date, now)):\n return 'disablePast';\n\n case Boolean(minDate && utils.isBeforeDay(date, minDate)):\n return 'minDate';\n\n case Boolean(maxDate && utils.isAfterDay(date, maxDate)):\n return 'maxDate';\n\n default:\n return null;\n }\n};\nexport const validateDateRange = (utils, value, dateValidationProps) => {\n const [start, end] = value; // for partial input\n\n if (start === null || end === null) {\n return [null, null];\n }\n\n const dateValidations = [validateDate(utils, start, dateValidationProps), validateDate(utils, end, dateValidationProps)];\n\n if (dateValidations[0] || dateValidations[1]) {\n return dateValidations;\n }\n\n if (!isRangeValid(utils, [utils.date(start), utils.date(end)])) {\n return ['invalidRange', 'invalidRange'];\n }\n\n return [null, null];\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { validateDate } from '../internal/pickers/date-utils';\nimport { useUtils, useNow } from '../internal/pickers/hooks/useUtils';\nexport const createCalendarStateReducer = (reduceAnimations, disableSwitchToMonthOnDayFocus, utils) => (state, action) => {\n switch (action.type) {\n case 'changeMonth':\n return _extends({}, state, {\n slideDirection: action.direction,\n currentMonth: action.newMonth,\n isMonthSwitchingAnimating: !reduceAnimations\n });\n\n case 'finishMonthSwitchingAnimation':\n return _extends({}, state, {\n isMonthSwitchingAnimating: false\n });\n\n case 'changeFocusedDay':\n {\n if (state.focusedDay !== null && utils.isSameDay(action.focusedDay, state.focusedDay)) {\n return state;\n }\n\n const needMonthSwitch = Boolean(action.focusedDay) && !disableSwitchToMonthOnDayFocus && !utils.isSameMonth(state.currentMonth, action.focusedDay);\n return _extends({}, state, {\n focusedDay: action.focusedDay,\n isMonthSwitchingAnimating: needMonthSwitch && !reduceAnimations,\n currentMonth: needMonthSwitch ? utils.startOfMonth(action.focusedDay) : state.currentMonth,\n slideDirection: utils.isAfterDay(action.focusedDay, state.currentMonth) ? 'left' : 'right'\n });\n }\n\n default:\n throw new Error('missing support');\n }\n};\nexport function useCalendarState({\n date,\n defaultCalendarMonth,\n disableFuture,\n disablePast,\n disableSwitchToMonthOnDayFocus = false,\n maxDate,\n minDate,\n onMonthChange,\n reduceAnimations,\n shouldDisableDate\n}) {\n var _ref;\n\n const now = useNow();\n const utils = useUtils();\n const reducerFn = React.useRef(createCalendarStateReducer(Boolean(reduceAnimations), disableSwitchToMonthOnDayFocus, utils)).current;\n const [calendarState, dispatch] = React.useReducer(reducerFn, {\n isMonthSwitchingAnimating: false,\n focusedDay: date || now,\n currentMonth: utils.startOfMonth((_ref = date != null ? date : defaultCalendarMonth) != null ? _ref : now),\n slideDirection: 'left'\n });\n const handleChangeMonth = React.useCallback(payload => {\n dispatch(_extends({\n type: 'changeMonth'\n }, payload));\n\n if (onMonthChange) {\n onMonthChange(payload.newMonth);\n }\n }, [onMonthChange]);\n const changeMonth = React.useCallback(newDate => {\n const newDateRequested = newDate != null ? newDate : now;\n\n if (utils.isSameMonth(newDateRequested, calendarState.currentMonth)) {\n return;\n }\n\n handleChangeMonth({\n newMonth: utils.startOfMonth(newDateRequested),\n direction: utils.isAfterDay(newDateRequested, calendarState.currentMonth) ? 'left' : 'right'\n });\n }, [calendarState.currentMonth, handleChangeMonth, now, utils]);\n const isDateDisabled = React.useCallback(day => validateDate(utils, day, {\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n shouldDisableDate\n }) !== null, [disableFuture, disablePast, maxDate, minDate, shouldDisableDate, utils]);\n const onMonthSwitchingAnimationEnd = React.useCallback(() => {\n dispatch({\n type: 'finishMonthSwitchingAnimation'\n });\n }, []);\n const changeFocusedDay = React.useCallback(newFocusedDate => {\n if (!isDateDisabled(newFocusedDate)) {\n dispatch({\n type: 'changeFocusedDay',\n focusedDay: newFocusedDate\n });\n }\n }, [isDateDisabled]);\n return {\n calendarState,\n changeMonth,\n changeFocusedDay,\n isDateDisabled,\n onMonthSwitchingAnimationEnd,\n handleChangeMonth\n };\n}","import * as React from 'react';\nimport clsx from 'clsx';\nimport Fade from '@mui/material/Fade';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/base';\nimport { TransitionGroup } from 'react-transition-group';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersFadeTransitionGroup', ['root']);\nconst animationDuration = 500;\nconst PickersFadeTransitionGroupRoot = styled(TransitionGroup)({\n display: 'block',\n position: 'relative'\n});\n/**\n * @ignore - do not document.\n */\n\nconst PickersFadeTransitionGroup = ({\n children,\n className,\n reduceAnimations,\n transKey\n}) => {\n if (reduceAnimations) {\n return children;\n }\n\n return /*#__PURE__*/_jsx(PickersFadeTransitionGroupRoot, {\n className: clsx(classes.root, className),\n children: /*#__PURE__*/_jsx(Fade, {\n appear: false,\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: {\n appear: animationDuration,\n enter: animationDuration / 2,\n exit: 0\n },\n children: children\n }, transKey)\n });\n};\n\nexport default PickersFadeTransitionGroup;","export const DAY_SIZE = 36;\nexport const DAY_MARGIN = 2;\nexport const DIALOG_WIDTH = 320;\nexport const VIEW_HEIGHT = 358;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"allowSameDateSelection\", \"autoFocus\", \"className\", \"day\", \"disabled\", \"disableHighlightToday\", \"disableMargin\", \"hidden\", \"isAnimating\", \"onClick\", \"onDayFocus\", \"onDaySelect\", \"onFocus\", \"onKeyDown\", \"outsideCurrentMonth\", \"selected\", \"showDaysOutsideCurrentMonth\", \"children\", \"today\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, generateUtilityClass, generateUtilityClasses } from '@mui/base';\nimport { useTheme, alpha, styled, useThemeProps } from '@mui/material/styles';\nimport { useForkRef } from '@mui/material/utils';\nimport { useUtils } from '../internal/pickers/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internal/pickers/constants/dimensions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getPickersDayUtilityClass(slot) {\n return generateUtilityClass('MuiPickersDay', slot);\n}\nexport const pickersDayClasses = generateUtilityClasses('MuiPickersDay', ['root', 'dayWithMargin', 'dayOutsideMonth', 'hiddenDaySpacingFiller', 'today', 'selected', 'disabled']);\n\nconst useUtilityClasses = ownerState => {\n const {\n selected,\n disableMargin,\n disableHighlightToday,\n today,\n outsideCurrentMonth,\n showDaysOutsideCurrentMonth,\n classes\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', !disableMargin && 'dayWithMargin', !disableHighlightToday && today && 'today', outsideCurrentMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth'],\n hiddenDaySpacingFiller: ['hiddenDaySpacingFiller']\n };\n return composeClasses(slots, getPickersDayUtilityClass, classes);\n};\n\nconst styleArg = ({\n theme,\n ownerState\n}) => _extends({}, theme.typography.caption, {\n width: DAY_SIZE,\n height: DAY_SIZE,\n borderRadius: '50%',\n padding: 0,\n // background required here to prevent collides with the other days when animating with transition group\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:focus': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n [`&.${pickersDayClasses.selected}`]: {\n willChange: 'background-color',\n backgroundColor: theme.palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n willChange: 'background-color',\n backgroundColor: theme.palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.disabled}`]: {\n color: theme.palette.text.disabled\n }\n}, !ownerState.disableMargin && {\n margin: `0 ${DAY_MARGIN}px`\n}, ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && {\n color: theme.palette.text.secondary\n}, !ownerState.disableHighlightToday && ownerState.today && {\n [`&:not(.${pickersDayClasses.selected})`]: {\n border: `1px solid ${theme.palette.text.secondary}`\n }\n});\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableMargin && styles.dayWithMargin, !ownerState.disableHighlightToday && ownerState.today && styles.today, !ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && styles.dayOutsideMonth, ownerState.outsideCurrentMonth && !ownerState.showDaysOutsideCurrentMonth && styles.hiddenDaySpacingFiller];\n};\n\nconst PickersDayRoot = styled(ButtonBase, {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(styleArg);\nconst PickersDayFiller = styled('div', {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, styleArg({\n theme,\n ownerState\n}), {\n visibility: 'hidden'\n}));\n\nconst noop = () => {};\n\nconst PickersDay = /*#__PURE__*/React.forwardRef(function PickersDay(inProps, forwardedRef) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersDay'\n });\n\n const {\n allowSameDateSelection = false,\n autoFocus = false,\n className,\n day,\n disabled = false,\n disableHighlightToday = false,\n disableMargin = false,\n isAnimating,\n onClick,\n onDayFocus = noop,\n onDaySelect,\n onFocus,\n onKeyDown,\n outsideCurrentMonth,\n selected = false,\n showDaysOutsideCurrentMonth = false,\n children,\n today: isToday = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n allowSameDateSelection,\n autoFocus,\n disabled,\n disableHighlightToday,\n disableMargin,\n selected,\n showDaysOutsideCurrentMonth,\n today: isToday\n });\n\n const classes = useUtilityClasses(ownerState);\n const utils = useUtils();\n const ref = React.useRef(null);\n const handleRef = useForkRef(ref, forwardedRef); // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n\n useEnhancedEffect(() => {\n if (autoFocus && !disabled && !isAnimating && !outsideCurrentMonth) {\n // ref.current being null would be a bug in MUI\n ref.current.focus();\n }\n }, [autoFocus, disabled, isAnimating, outsideCurrentMonth]);\n\n const handleFocus = event => {\n if (onDayFocus) {\n onDayFocus(day);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleClick = event => {\n if (!allowSameDateSelection && selected) {\n return;\n }\n\n if (!disabled) {\n onDaySelect(day, 'finish');\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const theme = useTheme();\n\n function handleKeyDown(event) {\n if (onKeyDown !== undefined) {\n onKeyDown(event);\n }\n\n switch (event.key) {\n case 'ArrowUp':\n onDayFocus(utils.addDays(day, -7));\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n onDayFocus(utils.addDays(day, 7));\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n onDayFocus(utils.addDays(day, theme.direction === 'ltr' ? -1 : 1));\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n onDayFocus(utils.addDays(day, theme.direction === 'ltr' ? 1 : -1));\n event.preventDefault();\n break;\n\n case 'Home':\n onDayFocus(utils.startOfWeek(day));\n event.preventDefault();\n break;\n\n case 'End':\n onDayFocus(utils.endOfWeek(day));\n event.preventDefault();\n break;\n\n case 'PageUp':\n onDayFocus(utils.getNextMonth(day));\n event.preventDefault();\n break;\n\n case 'PageDown':\n onDayFocus(utils.getPreviousMonth(day));\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n if (outsideCurrentMonth && !showDaysOutsideCurrentMonth) {\n return /*#__PURE__*/_jsx(PickersDayFiller, {\n className: clsx(classes.root, classes.hiddenDaySpacingFiller, className),\n ownerState: ownerState\n });\n }\n\n return /*#__PURE__*/_jsx(PickersDayRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: handleRef,\n centerRipple: true,\n disabled: disabled,\n \"aria-label\": !children ? utils.format(day, 'fullDate') : undefined,\n tabIndex: selected ? 0 : -1,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick\n }, other, {\n children: !children ? utils.format(day, 'dayOfMonth') : children\n }));\n});\nexport const areDayPropsEqual = (prevProps, nextProps) => {\n return prevProps.autoFocus === nextProps.autoFocus && prevProps.isAnimating === nextProps.isAnimating && prevProps.today === nextProps.today && prevProps.disabled === nextProps.disabled && prevProps.selected === nextProps.selected && prevProps.disableMargin === nextProps.disableMargin && prevProps.showDaysOutsideCurrentMonth === nextProps.showDaysOutsideCurrentMonth && prevProps.disableHighlightToday === nextProps.disableHighlightToday && prevProps.className === nextProps.className && prevProps.outsideCurrentMonth === nextProps.outsideCurrentMonth && prevProps.onDayFocus === nextProps.onDayFocus && prevProps.onDaySelect === nextProps.onDaySelect;\n};\nprocess.env.NODE_ENV !== \"production\" ? PickersDay.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, `onChange` is fired on click even if the same date is selected.\n * @default false\n */\n allowSameDateSelection: PropTypes.bool,\n\n /**\n * @ignore\n */\n autoFocus: PropTypes.bool,\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 date to show.\n */\n day: PropTypes.any.isRequired,\n\n /**\n * If `true`, renders as disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, todays date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * If `true`, days are rendering without margin. Useful for displaying linked range of days.\n * @default false\n */\n disableMargin: PropTypes.bool,\n\n /**\n * @ignore\n */\n hidden: PropTypes.bool,\n\n /**\n * @ignore\n */\n isAnimating: PropTypes.bool,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onDayFocus: PropTypes.func,\n\n /**\n * @ignore\n */\n onDaySelect: PropTypes.func.isRequired,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * If `true`, day is outside of month and will be hidden.\n */\n outsideCurrentMonth: PropTypes.bool.isRequired,\n\n /**\n * If `true`, renders as selected.\n * @default false\n */\n selected: PropTypes.bool,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: 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 * If `true`, renders as today date.\n * @default false\n */\n today: PropTypes.bool\n} : void 0;\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/components/date-picker/)\n *\n * API:\n *\n * - [PickersDay API](https://mui.com/api/pickers-day/)\n */\n\nexport default /*#__PURE__*/React.memo(PickersDay, areDayPropsEqual);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\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 * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"reduceAnimations\", \"slideDirection\", \"transKey\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/base';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersSlideTransition', ['root', 'slideEnter-left', 'slideEnter-right', 'slideEnterActive', 'slideEnterActive', 'slideExit', 'slideExitActiveLeft-left', 'slideExitActiveLeft-right']);\nexport const slideAnimationDuration = 350;\nconst PickersSlideTransitionRoot = styled(TransitionGroup)(({\n theme\n}) => {\n const slideTransition = theme.transitions.create('transform', {\n duration: slideAnimationDuration,\n easing: 'cubic-bezier(0.35, 0.8, 0.4, 1)'\n });\n return {\n display: 'block',\n position: 'relative',\n overflowX: 'hidden',\n '& > *': {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0\n },\n [`& .${classes['slideEnter-left']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n zIndex: 1\n },\n [`& .${classes['slideEnter-right']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n zIndex: 1\n },\n [`& .${classes.slideEnterActive}`]: {\n transform: 'translate(0%)',\n transition: slideTransition\n },\n [`& .${classes.slideExit}`]: {\n transform: 'translate(0%)'\n },\n [`& .${classes['slideExitActiveLeft-left']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n transition: slideTransition,\n zIndex: 0\n },\n [`& .${classes['slideExitActiveLeft-right']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n transition: slideTransition,\n zIndex: 0\n }\n };\n});\n/**\n * @ignore - do not document.\n */\n\nconst PickersSlideTransition = _ref => {\n let {\n children,\n className,\n reduceAnimations,\n slideDirection,\n transKey\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n if (reduceAnimations) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx(classes.root, className),\n children: children\n });\n }\n\n const transitionClasses = {\n exit: classes.slideExit,\n enterActive: classes.slideEnterActive,\n enter: classes[`slideEnter-${slideDirection}`],\n exitActive: classes[`slideExitActiveLeft-${slideDirection}`]\n };\n return /*#__PURE__*/_jsx(PickersSlideTransitionRoot, {\n className: clsx(classes.root, className),\n childFactory: element => /*#__PURE__*/React.cloneElement(element, {\n classNames: transitionClasses\n }),\n children: /*#__PURE__*/_jsx(CSSTransition, _extends({\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: slideAnimationDuration,\n classNames: transitionClasses\n }, other, {\n children: children\n }), transKey)\n });\n};\n\nexport default PickersSlideTransition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nimport * as React from 'react';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport PickersDay from '../PickersDay/PickersDay';\nimport { useUtils, useNow } from '../internal/pickers/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internal/pickers/constants/dimensions';\nimport SlideTransition from './PickersSlideTransition';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst weeksContainerHeight = (DAY_SIZE + DAY_MARGIN * 4) * 6;\nconst PickersCalendarDayHeader = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n});\nconst PickersCalendarWeekDayLabel = styled(Typography)(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: theme.palette.text.secondary\n}));\nconst PickersCalendarLoadingContainer = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarSlideTransition = styled(SlideTransition)({\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarWeekContainer = styled('div')({\n overflow: 'hidden'\n});\nconst PickersCalendarWeek = styled('div')({\n margin: `${DAY_MARGIN}px 0`,\n display: 'flex',\n justifyContent: 'center'\n});\n/**\n * @ignore - do not document.\n */\n\nfunction PickersCalendar(props) {\n const {\n allowSameDateSelection,\n autoFocus,\n onFocusedDayChange: changeFocusedDay,\n className,\n currentMonth,\n date,\n disabled,\n disableHighlightToday,\n focusedDay,\n isDateDisabled,\n isMonthSwitchingAnimating,\n loading,\n onChange,\n onMonthSwitchingAnimationEnd,\n readOnly,\n reduceAnimations,\n renderDay,\n renderLoading = () => _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n })),\n showDaysOutsideCurrentMonth,\n slideDirection,\n TransitionProps\n } = props;\n const now = useNow();\n const utils = useUtils();\n const handleDaySelect = React.useCallback((day, isFinish = 'finish') => {\n if (readOnly) {\n return;\n } // TODO possibly buggy line figure out and add tests\n\n\n const finalDate = Array.isArray(date) ? day : utils.mergeDateAndTime(day, date || now);\n onChange(finalDate, isFinish);\n }, [date, now, onChange, readOnly, utils]);\n const currentMonthNumber = utils.getMonth(currentMonth);\n const selectedDates = (Array.isArray(date) ? date : [date]).filter(Boolean).map(selectedDateItem => selectedDateItem && utils.startOfDay(selectedDateItem)); // need a new ref whenever the `key` of the transition changes: http://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.\n\n const transitionKey = currentMonthNumber; // eslint-disable-next-line react-hooks/exhaustive-deps\n\n const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(PickersCalendarDayHeader, {\n children: utils.getWeekdays().map((day, i) => /*#__PURE__*/_jsx(PickersCalendarWeekDayLabel, {\n \"aria-hidden\": true,\n variant: \"caption\",\n children: day.charAt(0).toUpperCase()\n }, day + i.toString()))\n }), loading ? /*#__PURE__*/_jsx(PickersCalendarLoadingContainer, {\n children: renderLoading()\n }) : /*#__PURE__*/_jsx(PickersCalendarSlideTransition, _extends({\n transKey: transitionKey,\n onExited: onMonthSwitchingAnimationEnd,\n reduceAnimations: reduceAnimations,\n slideDirection: slideDirection,\n className: className\n }, TransitionProps, {\n nodeRef: slideNodeRef,\n children: /*#__PURE__*/_jsx(PickersCalendarWeekContainer, {\n ref: slideNodeRef,\n role: \"grid\",\n children: utils.getWeekArray(currentMonth).map(week => /*#__PURE__*/_jsx(PickersCalendarWeek, {\n role: \"row\",\n children: week.map(day => {\n const pickersDayProps = {\n key: day == null ? void 0 : day.toString(),\n day,\n isAnimating: isMonthSwitchingAnimating,\n disabled: disabled || isDateDisabled(day),\n allowSameDateSelection,\n autoFocus: autoFocus && focusedDay !== null && utils.isSameDay(day, focusedDay),\n today: utils.isSameDay(day, now),\n outsideCurrentMonth: utils.getMonth(day) !== currentMonthNumber,\n selected: selectedDates.some(selectedDate => selectedDate && utils.isSameDay(selectedDate, day)),\n disableHighlightToday,\n showDaysOutsideCurrentMonth,\n onDayFocus: changeFocusedDay,\n onDaySelect: handleDaySelect\n };\n return renderDay ? renderDay(day, selectedDates, pickersDayProps) : /*#__PURE__*/_jsx(\"div\", {\n role: \"cell\",\n children: /*#__PURE__*/_jsx(PickersDay, _extends({}, pickersDayProps))\n }, pickersDayProps.key);\n })\n }, `week-${week[0]}`))\n })\n }))]\n });\n}\n\nexport default PickersCalendar;","import * as React from 'react';\nimport { createSvgIcon } from '@mui/material/utils';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Fade from '@mui/material/Fade';\nimport { styled } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport { useUtils } from '../internal/pickers/hooks/useUtils';\nimport FadeTransitionGroup from './PickersFadeTransitionGroup';\n// tslint:disable-next-line no-relative-import-in-test\nimport ArrowDropDownIcon from '../internal/svg-icons/ArrowDropDown';\nimport PickersArrowSwitcher from '../internal/pickers/PickersArrowSwitcher';\nimport { usePreviousMonthDisabled, useNextMonthDisabled } from '../internal/pickers/hooks/date-helpers-hooks';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersCalendarHeaderRoot = styled('div')({\n display: 'flex',\n alignItems: 'center',\n marginTop: 16,\n marginBottom: 8,\n paddingLeft: 24,\n paddingRight: 12,\n // prevent jumping in safari\n maxHeight: 30,\n minHeight: 30\n});\nconst PickersCalendarHeaderLabel = styled('div')(({\n theme\n}) => _extends({\n display: 'flex',\n maxHeight: 30,\n overflow: 'hidden',\n alignItems: 'center',\n cursor: 'pointer',\n marginRight: 'auto'\n}, theme.typography.body1, {\n fontWeight: theme.typography.fontWeightMedium\n}));\nconst PickersCalendarHeaderLabelItem = styled('div')({\n marginRight: 6\n});\nconst PickersCalendarHeaderSwitchViewButton = styled(IconButton)({\n marginRight: 'auto'\n});\nconst PickersCalendarHeaderSwitchView = styled(ArrowDropDownIcon)(({\n theme,\n ownerState\n}) => _extends({\n willChange: 'transform',\n transition: theme.transitions.create('transform'),\n transform: 'rotate(0deg)'\n}, ownerState.openView === 'year' && {\n transform: 'rotate(180deg)'\n}));\n\nfunction getSwitchingViewAriaText(view) {\n return view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view';\n}\n/**\n * @ignore - do not document.\n */\n\n\nfunction PickersCalendarHeader(props) {\n const {\n components = {},\n componentsProps = {},\n currentMonth: month,\n disabled,\n disableFuture,\n disablePast,\n getViewSwitchingButtonText = getSwitchingViewAriaText,\n leftArrowButtonText = 'Previous month',\n maxDate,\n minDate,\n onMonthChange,\n onViewChange,\n openView: currentView,\n reduceAnimations,\n rightArrowButtonText = 'Next month',\n views\n } = props;\n const utils = useUtils();\n const switchViewButtonProps = componentsProps.switchViewButton || {};\n\n const selectNextMonth = () => onMonthChange(utils.getNextMonth(month), 'left');\n\n const selectPreviousMonth = () => onMonthChange(utils.getPreviousMonth(month), 'right');\n\n const isNextMonthDisabled = useNextMonthDisabled(month, {\n disableFuture: disableFuture || disabled,\n maxDate\n });\n const isPreviousMonthDisabled = usePreviousMonthDisabled(month, {\n disablePast: disablePast || disabled,\n minDate\n });\n\n const handleToggleView = () => {\n if (views.length === 1 || !onViewChange || disabled) {\n return;\n }\n\n if (views.length === 2) {\n onViewChange(views.find(view => view !== currentView) || views[0]);\n } else {\n // switching only between first 2\n const nextIndexToOpen = views.indexOf(currentView) !== 0 ? 0 : 1;\n onViewChange(views[nextIndexToOpen]);\n }\n }; // No need to display more information\n\n\n if (views.length === 1 && views[0] === 'year') {\n return null;\n }\n\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, {\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(PickersCalendarHeaderLabel, {\n role: \"presentation\",\n onClick: handleToggleView,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(FadeTransitionGroup, {\n reduceAnimations: reduceAnimations,\n transKey: utils.format(month, 'month'),\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderLabelItem, {\n \"aria-live\": \"polite\",\n ownerState: ownerState,\n children: utils.format(month, 'month')\n })\n }), /*#__PURE__*/_jsx(FadeTransitionGroup, {\n reduceAnimations: reduceAnimations,\n transKey: utils.format(month, 'year'),\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderLabelItem, {\n \"aria-live\": \"polite\",\n ownerState: ownerState,\n children: utils.format(month, 'year')\n })\n }), views.length > 1 && !disabled && /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewButton, _extends({\n size: \"small\",\n as: components.SwitchViewButton,\n \"aria-label\": getViewSwitchingButtonText(currentView)\n }, switchViewButtonProps, {\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchView, {\n as: components.SwitchViewIcon,\n ownerState: ownerState\n })\n }))]\n }), /*#__PURE__*/_jsx(Fade, {\n in: currentView === 'day',\n children: /*#__PURE__*/_jsx(PickersArrowSwitcher, {\n leftArrowButtonText: leftArrowButtonText,\n rightArrowButtonText: rightArrowButtonText,\n components: components,\n componentsProps: componentsProps,\n onLeftClick: selectPreviousMonth,\n onRightClick: selectNextMonth,\n isLeftDisabled: isPreviousMonthDisabled,\n isRightDisabled: isNextMonthDisabled\n })\n })]\n });\n}\n\nexport default PickersCalendarHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { useForkRef, capitalize } from '@mui/material/utils';\nimport { alpha, styled } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, generateUtilityClass, generateUtilityClasses } from '@mui/base';\nimport { WrapperVariantContext } from '../internal/pickers/wrappers/WrapperVariantContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getPickersYearUtilityClass(slot) {\n return generateUtilityClass('PrivatePickersYear', slot);\n}\nexport const pickersYearClasses = generateUtilityClasses('PrivatePickersYear', ['root', 'modeMobile', 'modeDesktop', 'yearButton', 'disabled', 'selected']);\n\nconst useUtilityClasses = ownerState => {\n const {\n wrapperVariant,\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root', wrapperVariant && `mode${capitalize(wrapperVariant)}`],\n yearButton: ['yearButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersYearUtilityClass, classes);\n};\n\nconst PickersYearRoot = styled('div')(({\n ownerState\n}) => _extends({\n flexBasis: '33.3%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n}, (ownerState == null ? void 0 : ownerState.wrapperVariant) === 'desktop' && {\n flexBasis: '25%'\n}));\nconst PickersYearButton = styled('button')(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus, &:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n [`&.${pickersYearClasses.disabled}`]: {\n color: theme.palette.text.secondary\n },\n [`&.${pickersYearClasses.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nconst PickersYear = /*#__PURE__*/React.forwardRef(function PickersYear(props, forwardedRef) {\n const {\n autoFocus,\n className,\n children,\n disabled,\n onClick,\n onKeyDown,\n selected,\n value\n } = props;\n const ref = React.useRef(null);\n const refHandle = useForkRef(ref, forwardedRef);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n\n const ownerState = _extends({}, props, {\n wrapperVariant\n });\n\n const classes = useUtilityClasses(ownerState); // TODO: Can we just forward this to the button?\n\n React.useEffect(() => {\n if (autoFocus) {\n // `ref.current` being `null` would be a bug in MUIu\n ref.current.focus();\n }\n }, [autoFocus]);\n return /*#__PURE__*/_jsx(PickersYearRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(PickersYearButton, {\n ref: refHandle,\n disabled: disabled,\n type: \"button\",\n tabIndex: selected ? 0 : -1,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n className: classes.yearButton,\n ownerState: ownerState,\n children: children\n })\n });\n});\nexport default PickersYear;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getYearPickerUtilityClass(slot) {\n return generateUtilityClass('MuiYearPicker', slot);\n}\nconst yearPickerClasses = generateUtilityClasses('MuiYearPicker', ['root']);\nexport default yearPickerClasses;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTheme, styled, useThemeProps as useThemProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport clsx from 'clsx';\nimport PickersYear from './PickersYear';\nimport { useUtils, useNow } from '../internal/pickers/hooks/useUtils';\nimport { findClosestEnabledDate } from '../internal/pickers/date-utils';\nimport { WrapperVariantContext } from '../internal/pickers/wrappers/WrapperVariantContext';\nimport { getYearPickerUtilityClass } from './yearPickerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getYearPickerUtilityClass, classes);\n};\n\nconst YearPickerRoot = styled('div', {\n name: 'MuiYearPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflowY: 'auto',\n height: '100%',\n margin: '0 4px'\n});\nconst YearPicker = /*#__PURE__*/React.forwardRef(function YearPicker(inProps, ref) {\n const props = useThemProps({\n props: inProps,\n name: 'MuiYearPicker'\n });\n const {\n autoFocus,\n className,\n date,\n disabled,\n disableFuture,\n disablePast,\n isDateDisabled,\n maxDate,\n minDate,\n onChange,\n onFocusedDayChange,\n onYearChange,\n readOnly,\n shouldDisableYear\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const now = useNow();\n const theme = useTheme();\n const utils = useUtils();\n const selectedDate = date || now;\n const currentYear = utils.getYear(selectedDate);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const selectedYearRef = React.useRef(null);\n const [focusedYear, setFocusedYear] = React.useState(currentYear);\n\n const handleYearSelection = (event, year, isFinish = 'finish') => {\n if (readOnly) {\n return;\n }\n\n const submitDate = newDate => {\n onChange(newDate, isFinish);\n\n if (onFocusedDayChange) {\n onFocusedDayChange(newDate || now);\n }\n\n if (onYearChange) {\n onYearChange(newDate);\n }\n };\n\n const newDate = utils.setYear(selectedDate, year);\n\n if (isDateDisabled(newDate)) {\n const closestEnabledDate = findClosestEnabledDate({\n utils,\n date: newDate,\n minDate,\n maxDate,\n disablePast: Boolean(disablePast),\n disableFuture: Boolean(disableFuture),\n shouldDisableDate: isDateDisabled\n });\n submitDate(closestEnabledDate || now);\n } else {\n submitDate(newDate);\n }\n };\n\n const focusYear = React.useCallback(year => {\n if (!isDateDisabled(utils.setYear(selectedDate, year))) {\n setFocusedYear(year);\n }\n }, [selectedDate, isDateDisabled, utils]);\n const yearsInRow = wrapperVariant === 'desktop' ? 4 : 3;\n\n const handleKeyDown = (event, year) => {\n switch (event.key) {\n case 'ArrowUp':\n focusYear(year - yearsInRow);\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n focusYear(year + yearsInRow);\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n focusYear(year + (theme.direction === 'ltr' ? -1 : 1));\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n focusYear(year + (theme.direction === 'ltr' ? 1 : -1));\n event.preventDefault();\n break;\n\n default:\n break;\n }\n };\n\n return /*#__PURE__*/_jsx(YearPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: utils.getYearRange(minDate, maxDate).map(year => {\n const yearNumber = utils.getYear(year);\n const selected = yearNumber === currentYear;\n return /*#__PURE__*/_jsx(PickersYear, {\n selected: selected,\n value: yearNumber,\n onClick: handleYearSelection,\n onKeyDown: handleKeyDown,\n autoFocus: autoFocus && yearNumber === focusedYear,\n ref: selected ? selectedYearRef : undefined,\n disabled: disabled || disablePast && utils.isBeforeYear(year, now) || disableFuture && utils.isAfterYear(year, now) || shouldDisableYear && shouldDisableYear(year),\n children: utils.format(year, 'year')\n }, utils.format(year, 'year'));\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? YearPicker.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * @ignore\n */\n autoFocus: PropTypes.bool,\n\n /**\n * @ignore\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * @ignore\n */\n date: PropTypes.any,\n\n /**\n * @ignore\n */\n disabled: PropTypes.bool,\n\n /**\n * @ignore\n */\n disableFuture: PropTypes.bool,\n\n /**\n * @ignore\n */\n disablePast: PropTypes.bool,\n\n /**\n * @ignore\n */\n isDateDisabled: PropTypes.func.isRequired,\n\n /**\n * @ignore\n */\n maxDate: PropTypes.any.isRequired,\n\n /**\n * @ignore\n */\n minDate: PropTypes.any.isRequired,\n\n /**\n * @ignore\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * @ignore\n */\n onFocusedDayChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n */\n onYearChange: PropTypes.func,\n\n /**\n * @ignore\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n */\n shouldDisableYear: PropTypes.func\n} : void 0;\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/components/date-picker/)\n *\n * API:\n *\n * - [YearPicker API](https://mui.com/api/year-picker/)\n */\n\nexport default YearPicker;","import { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH, VIEW_HEIGHT } from '../constants/dimensions';\nconst PickerView = styled('div')({\n overflowX: 'hidden',\n width: DIALOG_WIDTH,\n maxHeight: VIEW_HEIGHT,\n display: 'flex',\n flexDirection: 'column',\n margin: '0 auto'\n});\nexport default PickerView;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nvar _span;\n\nconst _excluded = [\"autoFocus\", \"onViewChange\", \"date\", \"disableFuture\", \"disablePast\", \"defaultCalendarMonth\", \"loading\", \"maxDate\", \"minDate\", \"onChange\", \"onMonthChange\", \"reduceAnimations\", \"renderLoading\", \"shouldDisableDate\", \"shouldDisableYear\", \"view\", \"views\", \"openTo\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, generateUtilityClass, generateUtilityClasses } from '@mui/base';\nimport MonthPicker from '../MonthPicker/MonthPicker';\nimport { useCalendarState } from './useCalendarState';\nimport { useDefaultDates, useUtils } from '../internal/pickers/hooks/useUtils';\nimport FadeTransitionGroup from './PickersFadeTransitionGroup';\nimport PickersCalendar from './PickersCalendar';\nimport { useViews } from '../internal/pickers/hooks/useViews';\nimport PickersCalendarHeader from './PickersCalendarHeader';\nimport YearPicker from '../YearPicker/YearPicker';\nimport { findClosestEnabledDate } from '../internal/pickers/date-utils';\nimport PickerView from '../internal/pickers/Picker/PickerView';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function getCalendarPickerUtilityClass(slot) {\n return generateUtilityClass('MuiCalendarPicker', slot);\n}\nexport const calendarPickerClasses = generateUtilityClasses('MuiCalendarPicker', ['root', 'viewTransitionContainer']);\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n viewTransitionContainer: ['viewTransitionContainer']\n };\n return composeClasses(slots, getCalendarPickerUtilityClass, classes);\n};\n\nconst CalendarPickerRoot = styled(PickerView, {\n name: 'MuiCalendarPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column'\n});\nconst CalendarPickerViewTransitionContainer = styled(FadeTransitionGroup, {\n name: 'MuiCalendarPicker',\n slot: 'ViewTransitionContainer',\n overridesResolver: (props, styles) => styles.viewTransitionContainer\n})({\n overflowY: 'auto'\n});\nexport const defaultReduceAnimations = typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent);\nconst CalendarPicker = /*#__PURE__*/React.forwardRef(function CalendarPicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCalendarPicker'\n });\n\n const {\n autoFocus,\n onViewChange,\n date,\n disableFuture = false,\n disablePast = false,\n defaultCalendarMonth,\n loading = false,\n maxDate: maxDateProp,\n minDate: minDateProp,\n onChange,\n onMonthChange,\n reduceAnimations = defaultReduceAnimations,\n renderLoading = () => _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n })),\n shouldDisableDate,\n shouldDisableYear,\n view,\n views = ['year', 'day'],\n openTo = 'day',\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const minDate = minDateProp != null ? minDateProp : defaultDates.minDate;\n const maxDate = maxDateProp != null ? maxDateProp : defaultDates.maxDate;\n const {\n openView,\n setOpenView\n } = useViews({\n view,\n views,\n openTo,\n onChange,\n onViewChange\n });\n const {\n calendarState,\n changeFocusedDay,\n changeMonth,\n isDateDisabled,\n handleChangeMonth,\n onMonthSwitchingAnimationEnd\n } = useCalendarState({\n date,\n defaultCalendarMonth,\n reduceAnimations,\n onMonthChange,\n minDate,\n maxDate,\n shouldDisableDate,\n disablePast,\n disableFuture\n });\n React.useEffect(() => {\n if (date && isDateDisabled(date)) {\n const closestEnabledDate = findClosestEnabledDate({\n utils,\n date,\n minDate,\n maxDate,\n disablePast,\n disableFuture,\n shouldDisableDate: isDateDisabled\n });\n onChange(closestEnabledDate, 'partial');\n } // This call is too expensive to run it on each prop change.\n // So just ensure that we are not rendering disabled as selected on mount.\n\n }, []); // eslint-disable-line\n\n React.useEffect(() => {\n if (date) {\n changeMonth(date);\n }\n }, [date]); // eslint-disable-line\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const monthPickerProps = {\n className,\n date,\n disabled: other.disabled,\n disablePast,\n disableFuture,\n onChange,\n minDate,\n maxDate,\n onMonthChange,\n readOnly: other.readOnly\n };\n return /*#__PURE__*/_jsxs(CalendarPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersCalendarHeader, _extends({}, other, {\n views: views,\n openView: openView,\n currentMonth: calendarState.currentMonth,\n onViewChange: setOpenView,\n onMonthChange: (newMonth, direction) => handleChangeMonth({\n newMonth,\n direction\n }),\n minDate: minDate,\n maxDate: maxDate,\n disablePast: disablePast,\n disableFuture: disableFuture,\n reduceAnimations: reduceAnimations\n })), /*#__PURE__*/_jsx(CalendarPickerViewTransitionContainer, {\n reduceAnimations: reduceAnimations,\n className: classes.viewTransitionContainer,\n transKey: openView,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsxs(\"div\", {\n children: [openView === 'year' && /*#__PURE__*/_jsx(YearPicker, _extends({}, other, {\n autoFocus: autoFocus,\n date: date,\n onChange: onChange,\n minDate: minDate,\n maxDate: maxDate,\n disableFuture: disableFuture,\n disablePast: disablePast,\n isDateDisabled: isDateDisabled,\n shouldDisableYear: shouldDisableYear,\n onFocusedDayChange: changeFocusedDay\n })), openView === 'month' && /*#__PURE__*/_jsx(MonthPicker, _extends({}, monthPickerProps)), openView === 'day' && /*#__PURE__*/_jsx(PickersCalendar, _extends({}, other, calendarState, {\n autoFocus: autoFocus,\n onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,\n onFocusedDayChange: changeFocusedDay,\n reduceAnimations: reduceAnimations,\n date: date,\n onChange: onChange,\n isDateDisabled: isDateDisabled,\n loading: loading,\n renderLoading: renderLoading\n }))]\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CalendarPicker.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * @ignore\n */\n autoFocus: PropTypes.bool,\n\n /**\n * @ignore\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * @ignore\n */\n date: PropTypes.any,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Max selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Min selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired on date change\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback firing on month change. @DateIOType\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired on view change.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Initially open view.\n * @default 'day'\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Component displaying when passed `loading` true.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Disable specific date. @DateIOType\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * Controlled open view.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Views for calendar picker.\n * @default ['year', 'day']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/components/date-picker/)\n *\n * API:\n *\n * - [CalendarPicker API](https://mui.com/api/calendar-picker/)\n */\n\nexport default CalendarPicker;","import { useReducer, useRef, useLayoutEffect, useEffect } from 'react';\n\nconst useRifm = props => {\n const [, refresh] = useReducer(c => c + 1, 0);\n const valueRef = useRef(null);\n const {\n replace,\n append\n } = props;\n const userValue = replace ? replace(props.format(props.value)) : props.format(props.value); // state of delete button see comments below about inputType support\n\n const isDeleleteButtonDownRef = useRef(false);\n\n const onChange = evt => {\n if (process.env.NODE_ENV !== 'production') {\n if (evt.target.type === 'number') {\n console.error('Rifm does not support input type=number, use type=tel instead.');\n return;\n }\n\n if (evt.target.type === 'date') {\n console.error('Rifm does not support input type=date.');\n return;\n }\n }\n\n const eventValue = evt.target.value;\n valueRef.current = [eventValue, // eventValue\n evt.target, // input\n eventValue.length > userValue.length, // isSizeIncreaseOperation\n isDeleleteButtonDownRef.current, // isDeleleteButtonDown\n userValue === props.format(eventValue) // isNoOperation\n ];\n\n if (process.env.NODE_ENV !== 'production') {\n const formattedEventValue = props.format(eventValue);\n\n if (eventValue !== formattedEventValue && eventValue.toLowerCase() === formattedEventValue.toLowerCase()) {\n console.warn('Case enforcement does not work with format. Please use replace={value => value.toLowerCase()} instead');\n }\n } // The main trick is to update underlying input with non formatted value (= eventValue)\n // that allows us to calculate right cursor position after formatting (see getCursorPosition)\n // then we format new value and call props.onChange with masked/formatted value\n // and finally we are able to set cursor position into right place\n\n\n refresh();\n }; // React prints warn on server in non production mode about useLayoutEffect usage\n // in both cases it's noop\n\n\n if (process.env.NODE_ENV === 'production' || typeof window !== 'undefined') {\n useLayoutEffect(() => {\n if (valueRef.current == null) return;\n let [eventValue, input, isSizeIncreaseOperation, isDeleleteButtonDown, // No operation means that value itself hasn't been changed, BTW cursor, selection etc can be changed\n isNoOperation] = valueRef.current;\n valueRef.current = null; // this usually occurs on deleting special symbols like ' here 123'123.00\n // in case of isDeleleteButtonDown cursor should move differently vs backspace\n\n const deleteWasNoOp = isDeleleteButtonDown && isNoOperation;\n const valueAfterSelectionStart = eventValue.slice(input.selectionStart);\n const acceptedCharIndexAfterDelete = valueAfterSelectionStart.search(props.accept || /\\d/g);\n const charsToSkipAfterDelete = acceptedCharIndexAfterDelete !== -1 ? acceptedCharIndexAfterDelete : 0; // Create string from only accepted symbols\n\n const clean = str => (str.match(props.accept || /\\d/g) || []).join('');\n\n const valueBeforeSelectionStart = clean(eventValue.substr(0, input.selectionStart)); // trying to find cursor position in formatted value having knowledge about valueBeforeSelectionStart\n // This works because we assume that format doesn't change the order of accepted symbols.\n // Imagine we have formatter which adds ' symbol between numbers, and by default we refuse all non numeric symbols\n // for example we had input = 1'2|'4 (| means cursor position) then user entered '3' symbol\n // inputValue = 1'23'|4 so valueBeforeSelectionStart = 123 and formatted value = 1'2'3'4\n // calling getCursorPosition(\"1'2'3'4\") will give us position after 3, 1'2'3|'4\n // so for formatting just this function to determine cursor position after formatting is enough\n // with masking we need to do some additional checks see `mask` below\n\n const getCursorPosition = val => {\n let start = 0;\n let cleanPos = 0;\n\n for (let i = 0; i !== valueBeforeSelectionStart.length; ++i) {\n let newPos = val.indexOf(valueBeforeSelectionStart[i], start) + 1;\n let newCleanPos = clean(val).indexOf(valueBeforeSelectionStart[i], cleanPos) + 1; // this skips position change if accepted symbols order was broken\n // For example fixes edge case with fixed point numbers:\n // You have '0|.00', then press 1, it becomes 01|.00 and after format 1.00, this breaks our assumption\n // that order of accepted symbols is not changed after format,\n // so here we don't update start position if other accepted symbols was inbetween current and new position\n\n if (newCleanPos - cleanPos > 1) {\n newPos = start;\n newCleanPos = cleanPos;\n }\n\n cleanPos = Math.max(newCleanPos, cleanPos);\n start = Math.max(start, newPos);\n }\n\n return start;\n }; // Masking part, for masks if size of mask is above some value\n // we need to replace symbols instead of do nothing as like in format\n\n\n if (props.mask === true && isSizeIncreaseOperation && !isNoOperation) {\n let start = getCursorPosition(eventValue);\n const c = clean(eventValue.substr(start))[0];\n start = eventValue.indexOf(c, start);\n eventValue = `${eventValue.substr(0, start)}${eventValue.substr(start + 1)}`;\n }\n\n let formattedValue = props.format(eventValue);\n\n if (append != null && // cursor at the end\n input.selectionStart === eventValue.length && !isNoOperation) {\n if (isSizeIncreaseOperation) {\n formattedValue = append(formattedValue);\n } else {\n // If after delete last char is special character and we use append\n // delete it too\n // was: \"12-3|\" backspace pressed, then should be \"12|\"\n if (clean(formattedValue.slice(-1)) === '') {\n formattedValue = formattedValue.slice(0, -1);\n }\n }\n }\n\n const replacedValue = replace ? replace(formattedValue) : formattedValue;\n\n if (userValue === replacedValue) {\n // if nothing changed for formatted value, just refresh so userValue will be used at render\n refresh();\n } else {\n props.onChange(replacedValue);\n }\n\n return () => {\n let start = getCursorPosition(formattedValue); // Visually improves working with masked values,\n // like cursor jumping over refused symbols\n // as an example date mask: was \"5|1-24-3\" then user pressed \"6\"\n // it becomes \"56-|12-43\" with this code, and \"56|-12-43\" without\n\n if (props.mask != null && (isSizeIncreaseOperation || isDeleleteButtonDown && !deleteWasNoOp)) {\n while (formattedValue[start] && clean(formattedValue[start]) === '') {\n start += 1;\n }\n }\n\n input.selectionStart = input.selectionEnd = start + (deleteWasNoOp ? 1 + charsToSkipAfterDelete : 0);\n };\n });\n }\n\n useEffect(() => {\n // until https://developer.mozilla.org/en-US/docs/Web/API/InputEvent/inputType will be supported\n // by all major browsers (now supported by: +chrome, +safari, ?edge, !firefox)\n // there is no way I found to distinguish in onChange\n // backspace or delete was called in some situations\n // firefox track https://bugzilla.mozilla.org/show_bug.cgi?id=1447239\n const handleKeyDown = evt => {\n if (evt.code === 'Delete') {\n isDeleleteButtonDownRef.current = true;\n }\n };\n\n const handleKeyUp = evt => {\n if (evt.code === 'Delete') {\n isDeleleteButtonDownRef.current = false;\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('keyup', handleKeyUp);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('keyup', handleKeyUp);\n };\n }, []);\n return {\n value: valueRef.current != null ? valueRef.current[0] : userValue,\n onChange\n };\n};\nconst Rifm = props => {\n const renderProps = useRifm(props);\n return props.children(renderProps);\n};\n\nexport { Rifm, useRifm };\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useRifm } from 'rifm';\nimport { useUtils } from './useUtils';\nimport { createDelegatedEventHandler } from '../utils';\nimport { maskedDateFormatter, getDisplayDate, checkMaskIsValidForCurrentFormat } from '../text-field-helper';\nexport function useMaskedInput({\n acceptRegex = /[\\d]/gi,\n disabled,\n disableMaskedInput,\n ignoreInvalidInputs,\n inputFormat,\n inputProps,\n label,\n mask,\n onChange,\n rawValue,\n readOnly,\n rifmFormatter,\n TextFieldProps,\n validationError\n}) {\n const utils = useUtils();\n const [isFocused, setIsFocused] = React.useState(false);\n const formatHelperText = utils.getFormatHelperText(inputFormat);\n const shouldUseMaskedInput = React.useMemo(() => {\n // formatting of dates is a quite slow thing, so do not make useless .format calls\n if (!mask || disableMaskedInput) {\n return false;\n }\n\n return checkMaskIsValidForCurrentFormat(mask, inputFormat, acceptRegex, utils);\n }, [acceptRegex, disableMaskedInput, inputFormat, mask, utils]);\n const formatter = React.useMemo(() => shouldUseMaskedInput && mask ? maskedDateFormatter(mask, acceptRegex) : st => st, [acceptRegex, mask, shouldUseMaskedInput]); // TODO: Implement with controlled vs unctrolled `rawValue`\n\n const currentInputValue = getDisplayDate(utils, rawValue, inputFormat);\n const [innerInputValue, setInnerInputValue] = React.useState(currentInputValue);\n const previousInputValueRef = React.useRef(currentInputValue);\n React.useEffect(() => {\n previousInputValueRef.current = currentInputValue;\n }, [currentInputValue]);\n const notTyping = !isFocused;\n const valueChanged = previousInputValueRef.current !== currentInputValue; // Update the input value only if the value changed outside of typing\n\n if (notTyping && valueChanged && (rawValue === null || utils.isValid(rawValue))) {\n if (currentInputValue !== innerInputValue) {\n setInnerInputValue(currentInputValue);\n }\n }\n\n const handleChange = text => {\n const finalString = text === '' || text === mask ? '' : text;\n setInnerInputValue(finalString);\n const date = finalString === null ? null : utils.parse(finalString, inputFormat);\n\n if (ignoreInvalidInputs && !utils.isValid(date)) {\n return;\n }\n\n onChange(date, finalString || undefined);\n };\n\n const rifmProps = useRifm({\n value: innerInputValue,\n onChange: handleChange,\n format: rifmFormatter || formatter\n });\n const inputStateArgs = shouldUseMaskedInput ? rifmProps : {\n value: innerInputValue,\n onChange: event => {\n handleChange(event.currentTarget.value);\n }\n };\n return _extends({\n label,\n disabled,\n error: validationError,\n inputProps: _extends({}, inputStateArgs, {\n disabled,\n placeholder: formatHelperText,\n readOnly,\n type: shouldUseMaskedInput ? 'tel' : 'text'\n }, inputProps, {\n onFocus: createDelegatedEventHandler(() => {\n setIsFocused(true);\n }, inputProps == null ? void 0 : inputProps.onFocus),\n onBlur: createDelegatedEventHandler(() => {\n setIsFocused(false);\n }, inputProps == null ? void 0 : inputProps.onBlur)\n })\n }, TextFieldProps);\n}\nexport default useMaskedInput;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"components\", \"disableOpenPicker\", \"getOpenDialogAriaText\", \"InputAdornmentProps\", \"InputProps\", \"inputRef\", \"openPicker\", \"OpenPickerButtonProps\", \"renderInput\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport { useUtils } from './hooks/useUtils';\nimport CalendarIcon from '../svg-icons/Calendar';\nimport { useMaskedInput } from './hooks/useMaskedInput';\nimport { getTextFieldAriaText } from './text-field-helper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const KeyboardDateInput = /*#__PURE__*/React.forwardRef(function KeyboardDateInput(props, ref) {\n const {\n components = {},\n disableOpenPicker,\n getOpenDialogAriaText = getTextFieldAriaText,\n InputAdornmentProps,\n InputProps,\n inputRef,\n openPicker,\n OpenPickerButtonProps,\n renderInput\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const textFieldProps = useMaskedInput(other);\n const adornmentPosition = (InputAdornmentProps == null ? void 0 : InputAdornmentProps.position) || 'end';\n const OpenPickerIcon = components.OpenPickerIcon || CalendarIcon;\n return renderInput(_extends({\n ref,\n inputRef\n }, textFieldProps, {\n InputProps: _extends({}, InputProps, {\n [`${adornmentPosition}Adornment`]: disableOpenPicker ? undefined : /*#__PURE__*/_jsx(InputAdornment, _extends({\n position: adornmentPosition\n }, InputAdornmentProps, {\n children: /*#__PURE__*/_jsx(IconButton, _extends({\n edge: adornmentPosition,\n disabled: other.disabled || other.readOnly,\n \"aria-label\": getOpenDialogAriaText(other.rawValue, utils)\n }, OpenPickerButtonProps, {\n onClick: openPicker,\n children: /*#__PURE__*/_jsx(OpenPickerIcon, {})\n }))\n }))\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? KeyboardDateInput.propTypes = {\n acceptRegex: PropTypes.instanceOf(RegExp),\n getOpenDialogAriaText: PropTypes.func,\n mask: PropTypes.string,\n OpenPickerButtonProps: PropTypes.object,\n renderInput: PropTypes.func.isRequired,\n rifmFormatter: PropTypes.func\n} : void 0;\nexport default KeyboardDateInput;","import * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { arrayIncludes } from '../utils';\n\nfunction getOrientation() {\n if (typeof window === 'undefined') {\n return 'portrait';\n }\n\n if (window.screen && window.screen.orientation && window.screen.orientation.angle) {\n return Math.abs(window.screen.orientation.angle) === 90 ? 'landscape' : 'portrait';\n } // Support IOS safari\n\n\n if (window.orientation) {\n return Math.abs(Number(window.orientation)) === 90 ? 'landscape' : 'portrait';\n }\n\n return 'portrait';\n}\n\nexport function useIsLandscape(views, customOrientation) {\n const [orientation, setOrientation] = React.useState(getOrientation);\n useEnhancedEffect(() => {\n const eventHandler = () => {\n setOrientation(getOrientation());\n };\n\n window.addEventListener('orientationchange', eventHandler);\n return () => {\n window.removeEventListener('orientationchange', eventHandler);\n };\n }, []);\n\n if (arrayIncludes(views, ['hours', 'minutes', 'seconds'])) {\n // could not display 13:34:44 in landscape mode\n return false;\n }\n\n const orientationToUse = customOrientation || orientation;\n return orientationToUse === 'landscape';\n}\nexport default useIsLandscape;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"date\", \"DateInputProps\", \"isMobileKeyboardViewOpen\", \"onDateChange\", \"onViewChange\", \"openTo\", \"orientation\", \"showToolbar\", \"toggleMobileKeyboardView\", \"ToolbarComponent\", \"toolbarFormat\", \"toolbarPlaceholder\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { useViews } from '../hooks/useViews';\nimport ClockPicker from '../../../ClockPicker/ClockPicker';\nimport CalendarPicker from '../../../CalendarPicker';\nimport { KeyboardDateInput } from '../KeyboardDateInput';\nimport { useIsLandscape } from '../hooks/useIsLandscape';\nimport { WrapperVariantContext } from '../wrappers/WrapperVariantContext';\nimport PickerView from './PickerView';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const MobileKeyboardInputView = styled('div')({\n padding: '16px 24px'\n});\nconst PickerRoot = styled('div')(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column'\n}, ownerState.isLandscape && {\n flexDirection: 'row'\n}));\nconst MobileKeyboardTextFieldProps = {\n fullWidth: true\n};\n\nconst isDatePickerView = view => view === 'year' || view === 'month' || view === 'day';\n\nconst isTimePickerView = view => view === 'hours' || view === 'minutes' || view === 'seconds';\n\nfunction Picker(props) {\n const {\n autoFocus,\n date,\n DateInputProps,\n isMobileKeyboardViewOpen,\n onDateChange,\n onViewChange,\n openTo,\n orientation,\n showToolbar,\n toggleMobileKeyboardView,\n ToolbarComponent = () => null,\n toolbarFormat,\n toolbarPlaceholder,\n toolbarTitle,\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isLandscape = useIsLandscape(views, orientation);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const toShowToolbar = typeof showToolbar === 'undefined' ? wrapperVariant !== 'desktop' : showToolbar;\n const handleDateChange = React.useCallback((newDate, selectionState) => {\n onDateChange(newDate, wrapperVariant, selectionState);\n }, [onDateChange, wrapperVariant]);\n const handleViewChange = React.useCallback(newView => {\n if (isMobileKeyboardViewOpen) {\n toggleMobileKeyboardView();\n }\n\n if (onViewChange) {\n onViewChange(newView);\n }\n }, [isMobileKeyboardViewOpen, onViewChange, toggleMobileKeyboardView]);\n const {\n openView,\n nextView,\n previousView,\n setOpenView,\n handleChangeAndOpenNext\n } = useViews({\n view: undefined,\n views,\n openTo,\n onChange: handleDateChange,\n onViewChange: handleViewChange\n });\n return /*#__PURE__*/_jsxs(PickerRoot, {\n ownerState: {\n isLandscape\n },\n children: [toShowToolbar && /*#__PURE__*/_jsx(ToolbarComponent, _extends({}, other, {\n views: views,\n isLandscape: isLandscape,\n date: date,\n onChange: handleDateChange,\n setOpenView: setOpenView,\n openView: openView,\n toolbarTitle: toolbarTitle,\n toolbarFormat: toolbarFormat,\n toolbarPlaceholder: toolbarPlaceholder,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView\n })), /*#__PURE__*/_jsx(PickerView, {\n children: isMobileKeyboardViewOpen ? /*#__PURE__*/_jsx(MobileKeyboardInputView, {\n children: /*#__PURE__*/_jsx(KeyboardDateInput, _extends({}, DateInputProps, {\n ignoreInvalidInputs: true,\n disableOpenPicker: true,\n TextFieldProps: MobileKeyboardTextFieldProps\n }))\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [isDatePickerView(openView) && /*#__PURE__*/_jsx(CalendarPicker, _extends({\n autoFocus: autoFocus,\n date: date,\n onViewChange: setOpenView,\n onChange: handleChangeAndOpenNext,\n view: openView // Unclear why the predicate `isDatePickerView` does not imply the casted type\n ,\n views: views.filter(isDatePickerView)\n }, other)), isTimePickerView(openView) && /*#__PURE__*/_jsx(ClockPicker, _extends({}, other, {\n autoFocus: autoFocus,\n date: date,\n view: openView,\n onChange: handleChangeAndOpenNext,\n openNextView: () => setOpenView(nextView),\n openPreviousView: () => setOpenView(previousView),\n nextViewAvailable: !nextView,\n previousViewAvailable: !previousView || isDatePickerView(previousView),\n showViewSwitcher: wrapperVariant === 'desktop'\n }))]\n })\n })]\n });\n}\n\nexport default Picker;","import * as React from 'react';\nimport { useUtils } from './useUtils';\nimport { validateDate, validateDateRange } from '../date-utils';\nimport { validateDateTime } from '../date-time-utils';\nimport { validateTime } from '../time-utils';\n\nfunction isSameDateOrTimeError(a, b) {\n return a === b;\n}\n\nfunction isSameDateRangeError(a, b) {\n return b !== null && a[1] === b[1] && a[0] === b[0];\n}\n\nfunction useValidation(props, validate, isSameError = isSameDateOrTimeError) {\n const {\n value,\n onError\n } = props;\n const utils = useUtils();\n const previousValidationErrorRef = React.useRef(null);\n const validationError = validate(utils, value, props);\n React.useEffect(() => {\n if (onError && !isSameError(validationError, previousValidationErrorRef.current)) {\n onError(validationError, value);\n }\n\n previousValidationErrorRef.current = validationError;\n }, [isSameError, onError, previousValidationErrorRef, validationError, value]);\n return validationError;\n}\n\nexport function useTimeValidation(props) {\n return useValidation(props, validateTime, isSameDateOrTimeError);\n}\nexport function useDateValidation(props) {\n return useValidation(props, validateDate, isSameDateOrTimeError);\n}\nexport function useDateTimeValidation(props) {\n return useValidation(props, validateDateTime, isSameDateOrTimeError);\n}\nexport function useDateRangeValidation(props) {\n return useValidation(props, validateDateRange, isSameDateRangeError);\n}","import * as React from 'react';\nexport function useOpenState({\n open,\n onOpen,\n onClose\n}) {\n const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;\n const [openState, setIsOpenState] = React.useState(false); // It is required to update inner state in useEffect in order to avoid situation when\n // Our component is not mounted yet, but `open` state is set to `true` (e.g. initially opened)\n\n React.useEffect(() => {\n if (isControllingOpenProp) {\n if (typeof open !== 'boolean') {\n throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');\n }\n\n setIsOpenState(open);\n }\n }, [isControllingOpenProp, open]);\n const setIsOpen = React.useCallback(newIsOpen => {\n if (!isControllingOpenProp) {\n setIsOpenState(newIsOpen);\n }\n\n if (newIsOpen && onOpen) {\n onOpen();\n }\n\n if (!newIsOpen && onClose) {\n onClose();\n }\n }, [isControllingOpenProp, onOpen, onClose]);\n return {\n isOpen: openState,\n setIsOpen\n };\n}\nexport default useOpenState;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useOpenState } from './useOpenState';\nimport { useUtils } from './useUtils';\nexport function usePickerState(props, valueManager) {\n const {\n disableCloseOnSelect,\n onAccept,\n onChange,\n value\n } = props;\n const utils = useUtils();\n const {\n isOpen,\n setIsOpen\n } = useOpenState(props);\n\n function initDraftableDate(date) {\n return {\n committed: date,\n draft: date\n };\n }\n\n const parsedDateValue = valueManager.parseInput(utils, value);\n const [draftState, dispatch] = React.useReducer((state, action) => {\n switch (action.type) {\n case 'reset':\n return initDraftableDate(action.payload);\n\n case 'update':\n return _extends({}, state, {\n draft: action.payload\n });\n\n default:\n return state;\n }\n }, parsedDateValue, initDraftableDate);\n\n if (!valueManager.areValuesEqual(utils, draftState.committed, parsedDateValue)) {\n dispatch({\n type: 'reset',\n payload: parsedDateValue\n });\n } // Mobile keyboard view is a special case.\n // When it's open picker should work like closed, cause we are just showing text field\n\n\n const [isMobileKeyboardViewOpen, setMobileKeyboardViewOpen] = React.useState(false);\n const acceptDate = React.useCallback((acceptedDate, needClosePicker) => {\n onChange(acceptedDate);\n\n if (needClosePicker) {\n setIsOpen(false);\n\n if (onAccept) {\n onAccept(acceptedDate);\n }\n }\n }, [onAccept, onChange, setIsOpen]);\n const wrapperProps = React.useMemo(() => ({\n open: isOpen,\n onClear: () => acceptDate(valueManager.emptyValue, true),\n onAccept: () => acceptDate(draftState.draft, true),\n onDismiss: () => setIsOpen(false),\n onSetToday: () => {\n const now = utils.date();\n dispatch({\n type: 'update',\n payload: now\n });\n acceptDate(now, !disableCloseOnSelect);\n }\n }), [acceptDate, disableCloseOnSelect, isOpen, utils, draftState.draft, setIsOpen, valueManager.emptyValue]);\n const pickerProps = React.useMemo(() => ({\n date: draftState.draft,\n isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: () => setMobileKeyboardViewOpen(!isMobileKeyboardViewOpen),\n onDateChange: (newDate, wrapperVariant, selectionState = 'partial') => {\n dispatch({\n type: 'update',\n payload: newDate\n });\n\n if (selectionState === 'partial') {\n acceptDate(newDate, false);\n }\n\n if (selectionState === 'finish') {\n const shouldCloseOnSelect = !(disableCloseOnSelect != null ? disableCloseOnSelect : wrapperVariant === 'mobile');\n acceptDate(newDate, shouldCloseOnSelect);\n } // if selectionState === \"shallow\" do nothing (we already update the draft state)\n\n }\n }), [acceptDate, disableCloseOnSelect, isMobileKeyboardViewOpen, draftState.draft]);\n const inputProps = React.useMemo(() => ({\n onChange,\n open: isOpen,\n rawValue: value,\n openPicker: () => setIsOpen(true)\n }), [onChange, isOpen, value, setIsOpen]);\n const pickerState = {\n pickerProps,\n inputProps,\n wrapperProps\n };\n React.useDebugValue(pickerState, () => ({\n MuiPickerState: {\n pickerDraft: draftState,\n other: pickerState\n }\n }));\n return pickerState;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"PopperProps\", \"ToolbarComponent\", \"TransitionComponent\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTimePickerDefaultizedProps } from '../TimePicker/shared';\nimport TimePickerToolbar from '../TimePicker/TimePickerToolbar';\nimport DesktopWrapper from '../internal/pickers/wrappers/DesktopWrapper';\nimport Picker from '../internal/pickers/Picker/Picker';\nimport { useTimeValidation } from '../internal/pickers/hooks/useValidation';\nimport { parsePickerInputValue } from '../internal/pickers/date-utils';\nimport { KeyboardDateInput } from '../internal/pickers/KeyboardDateInput';\nimport { usePickerState } from '../internal/pickers/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst valueManager = {\n emptyValue: null,\n parseInput: parsePickerInputValue,\n areValuesEqual: (utils, a, b) => utils.isEqual(a, b)\n};\n\n/**\n *\n * Demos:\n *\n * - [Time Picker](https://mui.com/components/time-picker/)\n *\n * API:\n *\n * - [DesktopTimePicker API](https://mui.com/api/desktop-time-picker/)\n */\nconst DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker(inProps, ref) {\n // TODO: TDate needs to be instantiated at every usage.\n const props = useTimePickerDefaultizedProps(inProps, 'MuiDesktopTimePicker');\n const validationError = useTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, valueManager);\n\n const {\n PopperProps,\n ToolbarComponent = TimePickerToolbar,\n TransitionComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(DesktopWrapper, _extends({}, wrapperProps, {\n DateInputProps: DateInputProps,\n KeyboardDateInputComponent: KeyboardDateInput,\n PopperProps: PopperProps,\n TransitionComponent: TransitionComponent,\n children: /*#__PURE__*/_jsx(Picker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DesktopTimePicker.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default false\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n\n /**\n * @ignore\n */\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * The components used for each slot.\n * Either a string to use a HTML element or a component.\n */\n components: PropTypes.shape({\n OpenPickerIcon: PropTypes.elementType\n }),\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n disableCloseOnSelect: PropTypes.bool,\n\n /**\n * If `true`, the picker and text field are disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @default (value, utils) => `Choose date, selected date is ${utils.format(utils.date(value), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * @ignore\n */\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n\n /**\n * @ignore\n */\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n\n /**\n * @ignore\n */\n key: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * @ignore\n */\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/api/text-field/#textfield-api) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/components/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.oneOfType([PropTypes.any, PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]),\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;\nexport default DesktopTimePicker;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogActionsUtilityClass(slot) {\n return generateUtilityClass('MuiDialogActions', slot);\n}\nconst dialogActionsClasses = generateUtilityClasses('MuiDialogActions', ['root', 'spacing']);\nexport default dialogActionsClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disableSpacing\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogActionsUtilityClass } from './dialogActionsClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableSpacing\n } = ownerState;\n const slots = {\n root: ['root', !disableSpacing && 'spacing']\n };\n return composeClasses(slots, getDialogActionsUtilityClass, classes);\n};\n\nconst DialogActionsRoot = styled('div', {\n name: 'MuiDialogActions',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableSpacing && styles.spacing];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end',\n flex: '0 0 auto'\n}, !ownerState.disableSpacing && {\n '& > :not(:first-of-type)': {\n marginLeft: 8\n }\n}));\nconst DialogActions = /*#__PURE__*/React.forwardRef(function DialogActions(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogActions'\n });\n\n const {\n className,\n disableSpacing = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n disableSpacing\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogActionsRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogActions.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 * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: 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} : void 0;\nexport default DialogActions;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogContentUtilityClass(slot) {\n return generateUtilityClass('MuiDialogContent', slot);\n}\nconst dialogContentClasses = generateUtilityClasses('MuiDialogContent', ['root', 'dividers']);\nexport default dialogContentClasses;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogTitleUtilityClass(slot) {\n return generateUtilityClass('MuiDialogTitle', slot);\n}\nconst dialogTitleClasses = generateUtilityClasses('MuiDialogTitle', ['root']);\nexport default dialogTitleClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"dividers\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogContentUtilityClass } from './dialogContentClasses';\nimport dialogTitleClasses from '../DialogTitle/dialogTitleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n dividers\n } = ownerState;\n const slots = {\n root: ['root', dividers && 'dividers']\n };\n return composeClasses(slots, getDialogContentUtilityClass, classes);\n};\n\nconst DialogContentRoot = styled('div', {\n name: 'MuiDialogContent',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dividers && styles.dividers];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n flex: '1 1 auto',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n overflowY: 'auto',\n padding: '20px 24px'\n}, ownerState.dividers ? {\n padding: '16px 24px',\n borderTop: `1px solid ${theme.palette.divider}`,\n borderBottom: `1px solid ${theme.palette.divider}`\n} : {\n [`.${dialogTitleClasses.root} + &`]: {\n paddingTop: 0\n }\n}));\nconst DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogContent'\n });\n\n const {\n className,\n dividers = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n dividers\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogContentRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.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 * Display the top and bottom dividers.\n * @default false\n */\n dividers: 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} : void 0;\nexport default DialogContent;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogUtilityClass(slot) {\n return generateUtilityClass('MuiDialog', slot);\n}\nconst dialogClasses = generateUtilityClasses('MuiDialog', ['root', 'scrollPaper', 'scrollBody', 'container', 'paper', 'paperScrollPaper', 'paperScrollBody', 'paperWidthFalse', 'paperWidthXs', 'paperWidthSm', 'paperWidthMd', 'paperWidthLg', 'paperWidthXl', 'paperFullWidth', 'paperFullScreen']);\nexport default dialogClasses;","import { createContext } from 'react';\nconst DialogContext = /*#__PURE__*/createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n DialogContext.displayName = 'DialogContext';\n}\n\nexport default DialogContext;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-describedby\", \"aria-labelledby\", \"BackdropComponent\", \"BackdropProps\", \"children\", \"className\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { unstable_useId as useId } from '@mui/utils';\nimport capitalize from '../utils/capitalize';\nimport Modal from '../Modal';\nimport Fade from '../Fade';\nimport Paper from '../Paper';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport dialogClasses, { getDialogUtilityClass } from './dialogClasses';\nimport DialogContext from './DialogContext';\nimport Backdrop from '../Backdrop';\nimport useTheme from '../styles/useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DialogBackdrop = styled(Backdrop, {\n name: 'MuiDialog',\n slot: 'Backdrop',\n overrides: (props, styles) => styles.backdrop\n})({\n // Improve scrollable dialog support.\n zIndex: -1\n});\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n scroll,\n maxWidth,\n fullWidth,\n fullScreen\n } = ownerState;\n const slots = {\n root: ['root'],\n container: ['container', `scroll${capitalize(scroll)}`],\n paper: ['paper', `paperScroll${capitalize(scroll)}`, `paperWidth${capitalize(String(maxWidth))}`, fullWidth && 'paperFullWidth', fullScreen && 'paperFullScreen']\n };\n return composeClasses(slots, getDialogUtilityClass, classes);\n};\n\nconst DialogRoot = styled(Modal, {\n name: 'MuiDialog',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n});\nconst DialogContainer = styled('div', {\n name: 'MuiDialog',\n slot: 'Container',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.container, styles[`scroll${capitalize(ownerState.scroll)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n}, ownerState.scroll === 'body' && {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&:after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n}));\nconst DialogPaper = styled(Paper, {\n name: 'MuiDialog',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`scrollPaper${capitalize(ownerState.scroll)}`], styles[`paperWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles.paperFullWidth, ownerState.fullScreen && styles.paperFullScreen];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n}, ownerState.scroll === 'body' && {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE11\n\n}, !ownerState.maxWidth && {\n maxWidth: 'calc(100% - 64px)'\n}, ownerState.maxWidth === 'xs' && {\n maxWidth: theme.breakpoints.unit === 'px' ? Math.max(theme.breakpoints.values.xs, 444) : `${theme.breakpoints.values.xs}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.maxWidth !== 'xs' && {\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(theme.breakpoints.values[ownerState.maxWidth] + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.fullWidth && {\n width: 'calc(100% - 64px)'\n}, ownerState.fullScreen && {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n [`&.${dialogClasses.paperScrollBody}`]: {\n margin: 0,\n maxWidth: '100%'\n }\n}));\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\n\nconst Dialog = /*#__PURE__*/React.forwardRef(function Dialog(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialog'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-labelledby': ariaLabelledbyProp,\n BackdropComponent,\n BackdropProps,\n children,\n className,\n disableEscapeKeyDown = false,\n fullScreen = false,\n fullWidth = false,\n maxWidth = 'sm',\n onBackdropClick,\n onClose,\n open,\n PaperComponent = Paper,\n PaperProps = {},\n scroll = 'paper',\n TransitionComponent = Fade,\n transitionDuration = defaultTransitionDuration,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n disableEscapeKeyDown,\n fullScreen,\n fullWidth,\n maxWidth,\n scroll\n });\n\n const classes = useUtilityClasses(ownerState);\n const backdropClick = React.useRef();\n\n const handleMouseDown = event => {\n // We don't want to close the dialog when clicking the dialog content.\n // Make sure the event starts and ends on the same DOM element.\n backdropClick.current = event.target === event.currentTarget;\n };\n\n const handleBackdropClick = event => {\n // Ignore the events not coming from the \"backdrop\".\n if (!backdropClick.current) {\n return;\n }\n\n backdropClick.current = null;\n\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n\n const ariaLabelledby = useId(ariaLabelledbyProp);\n const dialogContextValue = React.useMemo(() => {\n return {\n titleId: ariaLabelledby\n };\n }, [ariaLabelledby]);\n return /*#__PURE__*/_jsx(DialogRoot, _extends({\n className: clsx(classes.root, className),\n BackdropProps: _extends({\n transitionDuration,\n as: BackdropComponent\n }, BackdropProps),\n closeAfterTransition: true,\n BackdropComponent: DialogBackdrop,\n disableEscapeKeyDown: disableEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref,\n onClick: handleBackdropClick,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n role: \"presentation\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(DialogContainer, {\n className: clsx(classes.container),\n onMouseDown: handleMouseDown,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogPaper, _extends({\n as: PaperComponent,\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogContext.Provider, {\n value: dialogContextValue,\n children: children\n })\n }))\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.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 id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n\n /**\n * Dialog children, usually the included sub-components.\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 * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen: PropTypes.bool,\n\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n * @default false\n */\n fullWidth: PropTypes.bool,\n\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'sm'\n */\n maxWidth: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n\n /**\n * Callback fired when the backdrop is clicked.\n */\n onBackdropClick: PropTypes.func,\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * The component used to render the body of the dialog.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`Paper`](/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n\n /**\n * Determine the container for scrolling the dialog.\n * @default 'paper'\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\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](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\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 * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\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 Dialog;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport Dialog, { dialogClasses } from '@mui/material/Dialog';\nimport { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH } from './constants/dimensions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersModalDialogRoot = styled(Dialog)({\n [`& .${dialogClasses.container}`]: {\n outline: 0\n },\n [`& .${dialogClasses.paper}`]: {\n outline: 0,\n minWidth: DIALOG_WIDTH\n }\n});\nconst PickersModalDialogContent = styled(DialogContent)({\n '&:first-of-type': {\n padding: 0\n }\n});\nconst PickersModalDialogActions = styled(DialogActions)(({\n ownerState\n}) => _extends({}, (ownerState.clearable || ownerState.showTodayButton) && {\n // set justifyContent to default value to fix IE11 layout bug\n // see https://github.com/mui-org/material-ui-pickers/pull/267\n justifyContent: 'flex-start',\n '& > *:first-of-type': {\n marginRight: 'auto'\n }\n}));\n\nconst PickersModalDialog = props => {\n const {\n cancelText = 'Cancel',\n children,\n clearable = false,\n clearText = 'Clear',\n DialogProps = {},\n okText = 'OK',\n onAccept,\n onClear,\n onDismiss,\n onSetToday,\n open,\n showTodayButton = false,\n todayText = 'Today'\n } = props;\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersModalDialogRoot, _extends({\n open: open,\n onClose: onDismiss\n }, DialogProps, {\n children: [/*#__PURE__*/_jsx(PickersModalDialogContent, {\n children: children\n }), /*#__PURE__*/_jsxs(PickersModalDialogActions, {\n ownerState: ownerState,\n children: [clearable && /*#__PURE__*/_jsx(Button, {\n onClick: onClear,\n children: clearText\n }), showTodayButton && /*#__PURE__*/_jsx(Button, {\n onClick: onSetToday,\n children: todayText\n }), cancelText && /*#__PURE__*/_jsx(Button, {\n onClick: onDismiss,\n children: cancelText\n }), okText && /*#__PURE__*/_jsx(Button, {\n onClick: onAccept,\n children: okText\n })]\n })]\n }));\n};\n\nexport default PickersModalDialog;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"cancelText\", \"children\", \"clearable\", \"clearText\", \"DateInputProps\", \"DialogProps\", \"okText\", \"onAccept\", \"onClear\", \"onDismiss\", \"onSetToday\", \"open\", \"PureDateInputComponent\", \"showTodayButton\", \"todayText\"];\nimport * as React from 'react';\nimport { WrapperVariantContext } from './WrapperVariantContext';\nimport PickersModalDialog from '../PickersModalDialog';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nfunction MobileWrapper(props) {\n const {\n cancelText,\n children,\n clearable,\n clearText,\n DateInputProps,\n DialogProps,\n okText,\n onAccept,\n onClear,\n onDismiss,\n onSetToday,\n open,\n PureDateInputComponent,\n showTodayButton,\n todayText\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {\n value: \"mobile\",\n children: [/*#__PURE__*/_jsx(PureDateInputComponent, _extends({}, other, DateInputProps)), /*#__PURE__*/_jsx(PickersModalDialog, {\n cancelText: cancelText,\n clearable: clearable,\n clearText: clearText,\n DialogProps: DialogProps,\n okText: okText,\n onAccept: onAccept,\n onClear: onClear,\n onDismiss: onDismiss,\n onSetToday: onSetToday,\n open: open,\n showTodayButton: showTodayButton,\n todayText: todayText,\n children: children\n })]\n });\n}\n\nexport default MobileWrapper;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { onSpaceOrEnter } from './utils';\nimport { useUtils } from './hooks/useUtils';\nimport { getDisplayDate, getTextFieldAriaText } from './text-field-helper'; // make `variant` optional.\n\n// TODO: why is this called \"Pure*\" when it's not memoized? Does \"Pure\" mean \"readonly\"?\nexport const PureDateInput = /*#__PURE__*/React.forwardRef(function PureDateInput(props, ref) {\n const {\n disabled,\n getOpenDialogAriaText = getTextFieldAriaText,\n inputFormat,\n InputProps,\n inputRef,\n label,\n openPicker: onOpen,\n rawValue,\n renderInput,\n TextFieldProps = {},\n validationError\n } = props;\n const utils = useUtils();\n const PureDateInputProps = React.useMemo(() => _extends({}, InputProps, {\n readOnly: true\n }), [InputProps]);\n const inputValue = getDisplayDate(utils, rawValue, inputFormat);\n return renderInput(_extends({\n label,\n disabled,\n ref,\n inputRef,\n error: validationError,\n InputProps: PureDateInputProps,\n inputProps: _extends({\n disabled,\n readOnly: true,\n 'aria-readonly': true,\n 'aria-label': getOpenDialogAriaText(rawValue, utils),\n value: inputValue\n }, !props.readOnly && {\n onClick: onOpen\n }, {\n onKeyDown: onSpaceOrEnter(onOpen)\n })\n }, TextFieldProps));\n});\nPureDateInput.propTypes = {\n getOpenDialogAriaText: PropTypes.func,\n renderInput: PropTypes.func.isRequired\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTimePickerDefaultizedProps } from '../TimePicker/shared';\nimport TimePickerToolbar from '../TimePicker/TimePickerToolbar';\nimport MobileWrapper from '../internal/pickers/wrappers/MobileWrapper';\nimport Picker from '../internal/pickers/Picker/Picker';\nimport { useTimeValidation } from '../internal/pickers/hooks/useValidation';\nimport { parsePickerInputValue } from '../internal/pickers/date-utils';\nimport { PureDateInput } from '../internal/pickers/PureDateInput';\nimport { usePickerState } from '../internal/pickers/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst valueManager = {\n emptyValue: null,\n parseInput: parsePickerInputValue,\n areValuesEqual: (utils, a, b) => utils.isEqual(a, b)\n};\n\n/**\n *\n * Demos:\n *\n * - [Time Picker](https://mui.com/components/time-picker/)\n *\n * API:\n *\n * - [MobileTimePicker API](https://mui.com/api/mobile-time-picker/)\n */\nconst MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(inProps, ref) {\n // TODO: TDate needs to be instantiated at every usage.\n const props = useTimePickerDefaultizedProps(inProps, 'MuiMobileTimePicker');\n const validationError = useTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, valueManager); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = TimePickerToolbar\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(MobileWrapper, _extends({}, other, wrapperProps, {\n DateInputProps: DateInputProps,\n PureDateInputComponent: PureDateInput,\n children: /*#__PURE__*/_jsx(Picker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MobileTimePicker.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default false\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n\n /**\n * Cancel text message.\n * @default 'Cancel'\n */\n cancelText: PropTypes.node,\n\n /**\n * @ignore\n */\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true`, it shows the clear action in the picker dialog.\n * @default false\n */\n clearable: PropTypes.bool,\n\n /**\n * Clear text message.\n * @default 'Clear'\n */\n clearText: PropTypes.node,\n\n /**\n * The components used for each slot.\n * Either a string to use a HTML element or a component.\n */\n components: PropTypes.shape({\n OpenPickerIcon: PropTypes.elementType\n }),\n\n /**\n * Props applied to the [`Dialog`](/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n disableCloseOnSelect: PropTypes.bool,\n\n /**\n * If `true`, the picker and text field are disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @default (value, utils) => `Choose date, selected date is ${utils.format(utils.date(value), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * @ignore\n */\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n\n /**\n * @ignore\n */\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n\n /**\n * @ignore\n */\n key: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * @ignore\n */\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Ok button text.\n * @default 'OK'\n */\n okText: PropTypes.node,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/api/text-field/#textfield-api) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, the today button is displayed. **Note** that `showClearButton` has a higher priority.\n * @default false\n */\n showTodayButton: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Today text message.\n * @default 'Today'\n */\n todayText: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.oneOfType([PropTypes.any, PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]),\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;\nexport default MobileTimePicker;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"cancelText\", \"clearable\", \"clearText\", \"desktopModeMediaQuery\", \"DialogProps\", \"okText\", \"PopperProps\", \"showTodayButton\", \"todayText\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport PropTypes from 'prop-types';\nimport DesktopTimePicker from '../DesktopTimePicker';\nimport MobileTimePicker from '../MobileTimePicker';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Pickers](https://mui.com/components/pickers/)\n * - [Time Picker](https://mui.com/components/time-picker/)\n *\n * API:\n *\n * - [TimePicker API](https://mui.com/api/time-picker/)\n */\nconst TimePicker = /*#__PURE__*/React.forwardRef(function TimePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTimePicker'\n });\n\n const {\n cancelText,\n clearable,\n clearText,\n desktopModeMediaQuery = '@media (pointer: fine)',\n DialogProps,\n okText,\n PopperProps,\n showTodayButton,\n todayText,\n TransitionComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isDesktop = useMediaQuery(desktopModeMediaQuery);\n return isDesktop ? /*#__PURE__*/_jsx(DesktopTimePicker, _extends({\n ref: ref,\n PopperProps: PopperProps,\n TransitionComponent: TransitionComponent\n }, other)) : /*#__PURE__*/_jsx(MobileTimePicker, _extends({\n ref: ref,\n cancelText: cancelText,\n clearable: clearable,\n clearText: clearText,\n DialogProps: DialogProps,\n okText: okText,\n showTodayButton: showTodayButton,\n todayText: todayText\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TimePicker.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default false\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n\n /**\n * Cancel text message.\n * @default 'Cancel'\n */\n cancelText: PropTypes.node,\n\n /**\n * @ignore\n */\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true`, it shows the clear action in the picker dialog.\n * @default false\n */\n clearable: PropTypes.bool,\n\n /**\n * Clear text message.\n * @default 'Clear'\n */\n clearText: PropTypes.node,\n\n /**\n * The components used for each slot.\n * Either a string to use a HTML element or a component.\n */\n components: PropTypes.shape({\n OpenPickerIcon: PropTypes.elementType\n }),\n\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n\n /**\n * Props applied to the [`Dialog`](/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n disableCloseOnSelect: PropTypes.bool,\n\n /**\n * If `true`, the picker and text field are disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @default (value, utils) => `Choose date, selected date is ${utils.format(utils.date(value), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * @ignore\n */\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n\n /**\n * @ignore\n */\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n\n /**\n * @ignore\n */\n key: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * @ignore\n */\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Ok button text.\n * @default 'OK'\n */\n okText: PropTypes.node,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/api/text-field/#textfield-api) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, the today button is displayed. **Note** that `showClearButton` has a higher priority.\n * @default false\n */\n showTodayButton: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Today text message.\n * @default 'Today'\n */\n todayText: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/components/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.oneOfType([PropTypes.any, PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]),\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;\nexport default TimePicker;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"id\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Typography from '../Typography';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogTitleUtilityClass } from './dialogTitleClasses';\nimport DialogContext from '../Dialog/DialogContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getDialogTitleUtilityClass, classes);\n};\n\nconst DialogTitleRoot = styled(Typography, {\n name: 'MuiDialogTitle',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: '16px 24px',\n flex: '0 0 auto'\n});\nconst DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogTitle'\n });\n\n const {\n className,\n id: idProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const {\n titleId: id = idProp\n } = React.useContext(DialogContext);\n return /*#__PURE__*/_jsx(DialogTitleRoot, _extends({\n component: \"h2\",\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n variant: \"h6\",\n id: id\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.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 * @ignore\n */\n id: 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} : void 0;\nexport default DialogTitle;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogContentTextUtilityClass(slot) {\n return generateUtilityClass('MuiDialogContentText', slot);\n}\nconst dialogContentTextClasses = generateUtilityClasses('MuiDialogContentText', ['root']);\nexport default dialogContentTextClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Typography from '../Typography';\nimport { getDialogContentTextUtilityClass } from './dialogContentTextClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n const composedClasses = composeClasses(slots, getDialogContentTextUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst DialogContentTextRoot = styled(Typography, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiDialogContentText',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nconst DialogContentText = /*#__PURE__*/React.forwardRef(function DialogContentText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogContentText'\n });\n\n const ownerState = _objectWithoutPropertiesLoose(props, _excluded);\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogContentTextRoot, _extends({\n component: \"p\",\n variant: \"body1\",\n color: \"text.secondary\",\n ref: ref,\n ownerState: ownerState\n }, props, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContentText.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 * 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} : void 0;\nexport default DialogContentText;","import React, { } from 'react';\nimport { Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, useTheme, useMediaQuery } from '@mui/material';\n\nexport default function ConfirmationDialog({ handleDevice, name, address, open, setOpen, content, title, checkValue, value, handle, noAction, info, isDisabled, stringTitle }) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n\n return (\n setOpen(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n {stringTitle ? `${title} ${name}?` : name ? checkValue ? `${title[1]} ${name}?` : info ? `${title[0]} ${name}` : `${title[0]} ${name}?` : `${title[0]} Device?`}\n \n {(address)\n ?\n isSmall\n ?\n \n {`Mac: ${address}`}\n \n :\n \n {`Mac: ${address}`}\n \n :\n null\n }\n \n \n {content}\n \n \n \n \n {!noAction &&\n \n }\n \n \n );\n}","import * as React from 'react';\nimport { useCallback, useEffect, useState, useContext } from 'react';\nimport { useFetchCloud, useWsDataProvider, LayoutTemplate, timezones } from 'kerberus-components';\nimport {\n FormGroup, Checkbox, Grid, Typography, useTheme, Button, IconButton, Modal, Divider, Select, MenuItem, FormControl,\n InputLabel, FormControlLabel, InputAdornment, Tooltip, Switch, Autocomplete\n} from '@mui/material';\nimport { MainContext } from 'kerberus-components';\nimport TextField from '@mui/material/TextField';\nimport { BlockPicker } from 'react-color';\nimport FullscreenIcon from '@mui/icons-material/Fullscreen';\nimport FullscreenExitIcon from '@mui/icons-material/FullscreenExit';\nimport AdapterMoment from '@mui/lab/AdapterMoment';\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\nimport TimePicker from '@mui/lab/TimePicker';\nimport * as moment from \"moment-timezone\";\nimport AddPhotoAlternateIcon from '@mui/icons-material/AddPhotoAlternate';\nimport PaletteIcon from '@mui/icons-material/Palette';\nimport AccessTimeIcon from '@mui/icons-material/AccessTime';\nimport AddBoxIcon from '@mui/icons-material/AddBox';\nimport HelperIcon from '../../Components/HelperIcon';\nimport ConfirmationDialog from '../../Components/ConfirmationDialog';\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\nimport { createTheme, ThemeProvider } from '@mui/material/styles';\nimport LayoutPaper from '../../Components/LayoutPaper';\nimport useSWR, { useSWRConfig } from 'swr';\n\nconst themeCheckbox = createTheme({\n palette: {\n action: {\n disabled: \"\",\n },\n }\n}\n);\n\nconst disableColor = \"#80808050\";\nconst inputStyle = \"standard\";\nconst contentDashboard =
Toggle checkbox to start modifying current dashboard
;\n\nconst copyToast = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"Dashboard URL copied to clipboard successfully\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nconst dashboardToast = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"Dashboard saved\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nexport default function AdminDashboardMaker(props) {\n const [open, setOpen] = useState(false);\n const theme = useTheme();\n const { user, setOpen: setOpenToast } = useContext(MainContext);\n const { fetchCloud } = useFetchCloud();\n const socials = user?.dashboard?.data?.socials;\n const socialsCompany = user?.user_company.dashboard?.data?.socials;\n const [checked, setChecked] = useState(false);\n const [layout, setLayout] = useState(socialsCompany);\n const [dashboard, setDashboard] = useState(\"company\");\n const [openTrack, setOpenTrack] = useState(false);\n const [valueTrack, setValueTrack] = useState(false);\n const [urlDialog, setUrlDialog] = useState(false);\n const [url, setUrl] = useState('');\n const [urlGroup, setUrlGroup] = useState('');\n const [groupChoices, setGroupChoices] = useState([]);\n const [selectedGroup, setSelectedGroup] = useState();\n const [inputValue, setInputValue] = useState('');\n const [userList, setUserList] = useState([]);\n const { data, getData, doUnsubscribe } = useWsDataProvider();\n const [onlineData, setOnlineData] = useState(null);\n const [alwaysActive, setAlwaysActive] = useState((layout?.onlineTime?.start === undefined && layout?.onlineTime?.end === undefined));\n const { data: profileListData } = useSWR('users/profilelist/');\n const { data: socialgroupselectData } = useSWR('users/socialgroupselect/');\n const { mutate } = useSWRConfig();\n\n const [startTime, setStartTime] = useState(null);\n const [endTime, setEndTime] = useState(null);\n\n useEffect(() => {\n if (startTime) {\n setLayout(prev =>\n ({\n ...prev, onlineTime: prev?.onlineTime?.start\n ?\n { ...prev.onlineTime, start: moment(startTime).tz(Intl.DateTimeFormat().resolvedOptions().timeZone).format(\"HH:mm\") }\n :\n { ...prev?.onlineTime, start: moment(startTime).tz(Intl.DateTimeFormat().resolvedOptions().timeZone).format(\"HH:mm\") }\n }));\n }\n }, [layout?.tz, startTime]);\n\n useEffect(() => {\n if (endTime) {\n setLayout(prev =>\n ({\n ...prev, onlineTime: prev?.onlineTime?.end\n ?\n { ...prev.onlineTime, end: moment(endTime).tz(Intl.DateTimeFormat().resolvedOptions().timeZone).format(\"HH:mm\") }\n :\n { ...prev?.onlineTime, end: moment(endTime).tz(Intl.DateTimeFormat().resolvedOptions().timeZone).format(\"HH:mm\") }\n }));\n }\n }, [layout?.tz, endTime]);\n\n useEffect(() => {\n if (profileListData) {\n setUserList(profileListData);\n }\n }, [profileListData]);\n\n useEffect(() => {\n if (dashboard === 'company' || dashboard === 'user') {\n if (userList.length > 0) {\n getData('socketLocation', 'lastFoundMany', {\n subscribe: true,\n filters: {\n company: user.user_company.id\n }\n });\n }\n }\n else if (dashboard === 'socialgroup' && selectedGroup) {\n if (userList.length > 0) {\n getData('socketLocation', 'lastFoundMany', {\n subscribe: true,\n filters: {\n social_group: selectedGroup.id\n }\n });\n }\n }\n\n return () => {\n doUnsubscribe();\n };\n }, [userList, getData, doUnsubscribe, dashboard, selectedGroup, user.user_company.id]);\n\n useEffect(() => {\n if (data) {\n setOnlineData(data);\n }\n }, [data]);\n\n useEffect(() => {\n if (socialgroupselectData) {\n setGroupChoices(socialgroupselectData);\n }\n }, [socialgroupselectData]);\n\n useEffect(() => {\n if (dashboard !== \"socialgroup\") {\n setSelectedGroup(null);\n }\n else {\n setSelectedGroup(groupChoices.length > 0 && groupChoices[0]);\n }\n }, [dashboard, groupChoices]);\n\n useEffect(() => {\n if (selectedGroup) {\n setLayout(selectedGroup.dashboard?.data?.socials);\n setDashboard(\"socialgroup\");\n setUrl(\"\");\n setUrlGroup(\"\");\n }\n }, [selectedGroup]);\n\n\n const handleLayout = (event) => {\n if (event.target.value === \"company\") {\n setLayout(socialsCompany);\n setDashboard(\"company\");\n setUrl(\"\");\n setUrlGroup(\"\");\n }\n else if (event.target.value === \"user\") {\n setLayout(socials);\n setDashboard(\"user\");\n setUrl(\"\");\n setUrlGroup(\"\");\n }\n else if (event.target.value === \"socialgroup\") {\n setDashboard(\"socialgroup\");\n }\n else {\n return null;\n }\n };\n\n const [displayColorPicker, setDisplayColorPicker] = useState(false);\n const [displayColorPicker2, setDisplayColorPicker2] = useState(false);\n const [displayColorPicker3, setDisplayColorPicker3] = useState(false);\n const [displayColorPicker4, setDisplayColorPicker4] = useState(false);\n const [displayColorPicker5, setDisplayColorPicker5] = useState(false);\n\n const handleChange = (event) => {\n setChecked(event.target.checked);\n };\n\n /* const handleLayoutChange = (e) => {\n setLayout(prev => {\n let newLayout = { ...prev };\n if (backgroundColor !== prev.backgroundColor) newLayout.backgroundColor = backgroundColor;\n return newLayout;\n });\n\n }; */\n\n /* const handleChange1 = (event, newValue) => {\n setValue(newValue);\n }; */\n\n const handleModalOpen = () => {\n setOpen(true);\n /* toggleFullScreen(document.body); */\n };\n\n const handleModalClose = () => {\n setOpen(false);\n /* toggleFullScreen(document.body); */\n };\n\n // Functions like F11 fullscreen toggle\n /* function toggleFullScreen(elem) {\n // ## The below if statement seems to work better ## if ((document.fullScreenElement && document.fullScreenElement !== null) || (document.msfullscreenElement && document.msfullscreenElement !== null) || (!document.mozFullScreen && !document.webkitIsFullScreen)) {\n if ((document.fullScreenElement !== undefined && document.fullScreenElement === null) || (document.msFullscreenElement !== undefined && document.msFullscreenElement === null) || (document.mozFullScreen !== undefined && !document.mozFullScreen) || (document.webkitIsFullScreen !== undefined && !document.webkitIsFullScreen)) {\n if (elem.requestFullScreen) {\n elem.requestFullScreen();\n } else if (elem.mozRequestFullScreen) {\n elem.mozRequestFullScreen();\n } else if (elem.webkitRequestFullScreen) {\n elem.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);\n } else if (elem.msRequestFullscreen) {\n elem.msRequestFullscreen();\n }\n } else {\n if (document.cancelFullScreen) {\n document.cancelFullScreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n } */\n\n const escFunction = useCallback((event) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n }, []);\n\n useEffect(() => {\n document.addEventListener(\"keydown\", escFunction, false);\n\n return () => {\n document.removeEventListener(\"keydown\", escFunction, false);\n };\n }, [escFunction]);\n\n const handleLayoutSave = async (e) => {\n if (dashboard === \"user\") {\n await fetchCloud(`users/update_dashboard`, 'post', {\n dashboard: { ...user.dashboard?.data, socials: layout },\n dashboard_type: dashboard,\n });\n setOpenToast(dashboardToast);\n }\n else if (dashboard === \"company\") {\n await fetchCloud(`users/update_dashboard`, 'post', {\n dashboard: { ...user.user_company.dashboard?.data, socials: layout },\n dashboard_type: dashboard,\n });\n setOpenToast(dashboardToast);\n }\n else {\n await fetchCloud(`users/update_dashboard`, 'post', {\n dashboard: { ...user.social_groups?.data, socials: layout },\n dashboard_type: dashboard,\n social_group: selectedGroup.id\n });\n setOpenToast(dashboardToast);\n }\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n const handleLayoutUrl = async (e) => {\n const res = await fetchCloud(`users/generate_dashboard`, 'post', {\n dashboard_type: dashboard,\n social_group: selectedGroup?.id\n });\n if (dashboard === \"company\") {\n const resGroup = await fetchCloud(`users/generate_dashboard`, 'post', {\n dashboard_type: \"group\",\n });\n setUrlGroup(resGroup.data);\n\n }\n setUrl(res.data);\n };\n\n const copyToClipboard = async () => {\n await navigator.clipboard.writeText(url);\n setOpenToast(copyToast);\n };\n\n const copyToClipboardGroup = async () => {\n await navigator.clipboard.writeText(urlGroup);\n setOpenToast(copyToast);\n };\n\n const classes = {\n gridContainer: {\n height: \"100%\",\n marginTop: 8.5,\n marginLeft: 2,\n marginRight: 2,\n },\n gridItemLayoutUrl: {\n backgroundColor: \"#fff\",\n paddingLeft: 1,\n paddingTop: 1,\n border: \"1px solid #808080\",\n },\n textFieldUrl: {\n position: \"relative\",\n bottom: 10,\n width: 300,\n marginX: 1,\n marginTop: 0.75\n },\n copyIcon: {\n height: 20,\n width: 20\n },\n gridItemLayoutContent: {\n border: \"2px solid #808080\",\n position: \"relative\",\n height: \"74vh\",\n marginTop: -1,\n backgroundColor: \"#fff\",\n },\n swatch: {\n padding: 5,\n background: '#fff',\n borderRadius: '1px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.1)',\n display: 'inline-block',\n cursor: checked && 'pointer',\n position: \"relative\",\n bottom: 9,\n },\n fullscreenIcon: {\n position: \"absolute\",\n top: 0,\n right: 5,\n },\n gridItemLayoutSettings: {\n display: \"flex\",\n alignItems: \"center\",\n border: \"2px solid #808080\",\n flexDirection: \"column\",\n backgroundColor: \"#fff\",\n height: \"74vh\",\n marginTop: -1,\n borderRadius: 4,\n overflow: \"auto\",\n '&::-webkit-scrollbar': {\n width: '0.4em',\n },\n '&::-webkit-scrollbar-track': {\n boxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)',\n webkitBoxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)',\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: \"#1C4E71\",\n },\n '&::-webkit-scrollbar-corner': {\n display: \"none\"\n },\n scrollbarColor: `${theme.palette.primary.main} #fff`,\n scrollbarWidth: \"thin\",\n },\n divider: {\n borderBottomWidth: 4,\n borderColor: !checked ? disableColor : theme.palette.primary.main\n },\n settingsSubheader: {\n fontSize: 22,\n color: !checked && disableColor,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\"\n },\n settingsIcon: {\n color: !checked ? disableColor : theme.palette.primary.main\n },\n disabled: {\n color: !checked && disableColor\n },\n inputTitle: {\n textAlign: \"center\",\n fontSize: 20,\n color: !checked && disableColor,\n marginTop: 3,\n },\n inputTitleColor: {\n textAlign: \"center\",\n fontSize: 20,\n color: !checked && disableColor,\n marginTop: 3,\n marginBottom: 1\n },\n input: {\n width: \"90%\"\n },\n bgColor: {\n width: \"14vw\",\n height: '14px',\n borderRadius: '2px',\n background: `${layout?.backgroundColor}`,\n },\n titleColor: {\n width: \"14vw\",\n height: '14px',\n borderRadius: '2px',\n background: `${layout?.titleColor}`,\n },\n subheaderColor: {\n width: \"14vw\",\n height: '14px',\n borderRadius: '2px',\n background: `${layout?.subheaderColor}`,\n },\n textColor: {\n width: \"14vw\",\n height: '14px',\n borderRadius: '2px',\n background: `${layout?.textColor}`,\n },\n clockColor: {\n width: \"14vw\",\n height: '14px',\n borderRadius: '2px',\n background: `${layout?.clockColor}`,\n },\n disableColor: {\n width: \"14vw\",\n height: '14px',\n borderRadius: '2px',\n background: disableColor,\n }\n };\n\n return (\n \n \n \n \n {dashboard === \"user\"\n ?\n \n \n \n \n \n \n \n )\n }}\n />\n :\n dashboard === \"company\"\n ?\n <>\n \n \n \n \n \n \n \n )\n }}\n />\n \n \n \n \n \n \n \n )\n }}\n />\n \n :\n \n \n \n \n \n \n \n )\n }}\n />\n\n }\n \n \n {\n dashboard === \"user\"\n ?\n \n :\n \n }\n \n \n \n \n <>\n {dashboard === \"user\"\n ?\n \n :\n \n }\n \n \n \n \n \n \n \n \n \n\n \n\n Dashboard\n \n Company\n User\n {groupChoices.length > 0 &&\n Group\n }\n \n \n {(dashboard === \"socialgroup\" && groupChoices.length > 0) &&\n <>\n option.name}\n onChange={(e, newVal) => { setSelectedGroup(newVal); setLayout(newVal?.dashboard ? newVal.dashboard.data.socials : {}); }}\n inputValue={inputValue}\n onInputChange={(e, newVal) => setInputValue(newVal)}\n sx={{}}\n renderInput={(params) => }\n />\n {selectedGroup && selectedGroup.users.length === 0 &&\n \n Group has no members\n \n }\n \n\n }\n \n \n \n \n Layout settings\n \n\n\n \n \n \n Layout\n \n \n \n\n \n setLayout(prev => ({ ...prev, hasLocation: !layout?.hasLocation }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, hasUserTitle: !layout?.hasUserTitle }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n \n\n setLayout(prev => ({ ...prev, hasSecondLogo: !layout?.hasSecondLogo }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n\n {!layout?.hasSecondLogo &&\n <>\n \n Title\n \n setLayout(prev => ({ ...prev, title: e.target.value }))}\n />\n \n }\n\n \n \n \n Logos & Images\n \n \n \n\n \n Background Image\n \n (e.target.value[0] !== \"'\" && e.target.value[0] !== \"`\" && e.target.value[0] !== '\"') ? setLayout(prev => ({ ...prev, background: prev?.background ? { ...prev.background, url: e.target.value } : { url: e.target.value } })) : \"\"}\n />\n \n setLayout(prev => ({ ...prev, backgroundSize: \"cover\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, backgroundSize: \"100% 100%\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n \n\n \n Company Logo\n \n setLayout(prev => ({ ...prev, companylogo: prev?.companylogo ? { ...prev.companylogo, url: e.target.value } : { url: e.target.value } }))}\n\n />\n \n setLayout(prev => ({ ...prev, companylogoSize: \"auto\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, companylogoSize: \"contain\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, companylogoSize: \"cover\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n \n setLayout(prev => ({ ...prev, companylogoSize: \"80% 80%\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, companylogoSize: \"50% 50%\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n \n \n\n {layout?.hasSecondLogo &&\n <>\n \n Company Logo 2\n \n setLayout(prev => ({ ...prev, companylogo2: prev.companylogo2 ? { ...prev.companylogo2, url: e.target.value } : { url: e.target.value } }))}\n />\n\n \n setLayout(prev => ({ ...prev, companylogo2Size: \"auto\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, companylogo2Size: \"contain\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, companylogo2Size: \"cover\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n \n setLayout(prev => ({ ...prev, companylogo2Size: \"80% 80%\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, companylogo2Size: \"50% 50%\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n \n \n \n }\n\n {dashboard === \"user\" &&\n <>\n \n Company Picture\n \n setLayout(prev => ({ ...prev, picture1: prev.picture1 ? { ...prev.picture1, url: e.target.value } : { url: e.target.value } }))}\n />\n \n setLayout(prev => ({ ...prev, picture1Size: \"auto\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, picture1Size: \"contain\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, picture1Size: \"cover\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n \n setLayout(prev => ({ ...prev, picture1Size: \"80% 80%\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n setLayout(prev => ({ ...prev, picture1Size: \"50% 50%\" }))}\n disabled={!checked}\n sx={classes.disabled}\n />}\n />\n \n \n \n }\n\n {/* \n Powered By\n \n setLayout(prev => ({ ...prev, poweredBy: { ...prev.poweredBy, url: e.target.value } }))}\n /> */}\n\n
\n\n \n \n \n Colors\n \n \n \n\n \n Background color\n \n\n {checked\n ?\n <>\n
setDisplayColorPicker(!displayColorPicker)}>\n
\n
\n\n {displayColorPicker ?
\n
setDisplayColorPicker(false)} />\n setLayout(prev => ({ ...prev, backgroundColor: e.hex }))} />\n
: null}\n \n :\n <>\n
\n
\n
\n \n }\n\n \n Title color\n \n\n {checked\n ?\n <>\n
setDisplayColorPicker5(!displayColorPicker5)}>\n
\n
\n\n {displayColorPicker5 ?
\n
setDisplayColorPicker5(false)} />\n setLayout(prev => ({ ...prev, titleColor: e.hex }))} />\n
: null}\n \n :\n <>\n
\n
\n
\n \n }\n\n \n Subheader color\n \n\n {checked\n ?\n <>\n
setDisplayColorPicker3(!displayColorPicker3)}>\n
\n
\n\n {displayColorPicker3 ?
\n
setDisplayColorPicker3(false)} />\n setLayout(prev => ({ ...prev, subheaderColor: e.hex }))} />\n
: null}\n \n :\n <>\n
\n
\n
\n \n }\n\n \n Text color\n \n\n {checked\n ?\n <>\n
setDisplayColorPicker4(!displayColorPicker4)}>\n
\n
\n\n {displayColorPicker4 ?
\n
setDisplayColorPicker4(false)} />\n setLayout(prev => ({ ...prev, textColor: e.hex }))} />\n
: null}\n \n :\n <>\n
\n
\n
\n \n }\n\n\n \n Clock color\n \n\n {checked\n ?\n <>\n
setDisplayColorPicker2(!displayColorPicker2)}>\n
\n
\n\n {displayColorPicker2 ?
\n
setDisplayColorPicker4(false)} />\n setLayout(prev => ({ ...prev, clockColor: e.hex }))} />\n
: null}\n \n :\n <>\n
\n
\n
\n \n }\n\n \n Powered by Missing-Link color\n \n \n White\n setLayout(prev => ({ ...prev, poweredBlack: e.target.checked }))}\n checked={layout?.poweredBlack}\n disabled={!checked}\n sx={{\n '& .MuiSwitch-switchBase': {\n '&.Mui-checked': {\n color: '#000',\n '& + .MuiSwitch-track': {\n backgroundColor: '#808080',\n },\n },\n },\n }}\n />\n Black\n \n\n
\n\n \n \n \n Active Time\n \n \n \n\n
\n\n \n\n \n Timezone\n \n setLayout(prev => ({ ...prev, tz: newVal }))}\n renderInput={(params) => }\n sx={{ mt: 1, mb: 3, width: \"80%\" }}\n disabled={!checked}\n />\n\n\n \n Visibility Hours\n \n\n \n {\n setAlwaysActive(!alwaysActive);\n setLayout(prev => ({ ...prev, onlineTime: { ...prev.onlineTime, start: undefined } }));\n setLayout(prev => ({ ...prev, onlineTime: { ...prev.onlineTime, end: undefined } }));\n }}\n disabled={!checked}\n />\n \n } disabled={!checked} label=\"Always active\" labelPlacement=\"top\" sx={{ '.MuiFormControlLabel-label.Mui-disabled': { color: checked && \"rgba(0, 0, 0, 0.87)\" } }} />\n\n\n \n\n \n }\n value={moment(layout?.onlineTime?.start, \"HH:mm\").tz(layout?.tz ?? Intl.DateTimeFormat().resolvedOptions().timeZone)}\n onChange={(e) => {\n setStartTime(e);\n }}\n />\n \n \n
\n
\n \n }\n value={moment(layout?.onlineTime?.end, \"HH:mm\").tz(layout?.tz ?? Intl.DateTimeFormat().resolvedOptions().timeZone)}\n onChange={(e) => {\n setEndTime(e);\n }}\n />\n \n\n \n\n \n {\n setLayout(prev => {\n let weekDays = Array.isArray(prev.onlineTime?.showWeekDay) ? new Set(prev.onlineTime.showWeekDay) : new Set([1, 2, 3, 4, 5, 6, 7]);\n if (weekDays.has(1)) {\n weekDays.delete(1);\n }\n else {\n weekDays.add(1);\n }\n return ({\n ...prev, onlineTime: {\n ...prev.onlineTime, showWeekDay: Array.from(weekDays)\n }\n }\n );\n });\n }}\n disabled={!checked}\n />\n } label=\"Mon\" labelPlacement=\"top\" sx={{ width: 15, '.MuiFormControlLabel-label.Mui-disabled': { color: checked && \"rgba(0, 0, 0, 0.87)\" } }} />\n {\n setLayout(prev => {\n let weekDays = Array.isArray(prev.onlineTime?.showWeekDay) ? new Set(prev.onlineTime?.showWeekDay) : new Set([1, 2, 3, 4, 5, 6, 7]);\n if (weekDays.has(2)) {\n weekDays.delete(2);\n }\n else {\n weekDays.add(2);\n }\n return ({\n ...prev, onlineTime: {\n ...prev.onlineTime, showWeekDay: Array.from(weekDays)\n }\n }\n );\n });\n }}\n disabled={!checked}\n />\n } label=\"Tue\" labelPlacement=\"top\" sx={{ width: 15, '.MuiFormControlLabel-label.Mui-disabled': { color: checked && \"rgba(0, 0, 0, 0.87)\" } }} />\n {\n setLayout(prev => {\n let weekDays = Array.isArray(prev.onlineTime?.showWeekDay) ? new Set(prev.onlineTime?.showWeekDay) : new Set([1, 2, 3, 4, 5, 6, 7]);\n if (weekDays.has(3)) {\n weekDays.delete(3);\n }\n else {\n weekDays.add(3);\n }\n return ({\n ...prev, onlineTime: {\n ...prev.onlineTime, showWeekDay: Array.from(weekDays)\n }\n }\n );\n });\n }}\n disabled={!checked}\n />\n } label=\"Wed\" labelPlacement=\"top\" sx={{ width: 15, '.MuiFormControlLabel-label.Mui-disabled': { color: checked && \"rgba(0, 0, 0, 0.87)\" } }} />\n {\n setLayout(prev => {\n let weekDays = Array.isArray(prev.onlineTime?.showWeekDay) ? new Set(prev.onlineTime?.showWeekDay) : new Set([1, 2, 3, 4, 5, 6, 7]);\n if (weekDays.has(4)) {\n weekDays.delete(4);\n }\n else {\n weekDays.add(4);\n }\n return ({\n ...prev, onlineTime: {\n ...prev.onlineTime, showWeekDay: Array.from(weekDays)\n }\n }\n );\n });\n }}\n disabled={!checked}\n />\n } label=\"Thu\" labelPlacement=\"top\" sx={{ width: 15, '.MuiFormControlLabel-label.Mui-disabled': { color: checked && \"rgba(0, 0, 0, 0.87)\" } }} />\n {\n setLayout(prev => {\n let weekDays = Array.isArray(prev.onlineTime?.showWeekDay) ? new Set(prev.onlineTime?.showWeekDay) : new Set([1, 2, 3, 4, 5, 6, 7]);\n if (weekDays.has(5)) {\n weekDays.delete(5);\n }\n else {\n weekDays.add(5);\n }\n return ({\n ...prev, onlineTime: {\n ...prev.onlineTime, showWeekDay: Array.from(weekDays)\n }\n }\n );\n });\n }}\n disabled={!checked}\n />\n } label=\"Fri\" labelPlacement=\"top\" sx={{ width: 15, '.MuiFormControlLabel-label.Mui-disabled': { color: checked && \"rgba(0, 0, 0, 0.87)\" } }} />\n {\n setLayout(prev => {\n let weekDays = Array.isArray(prev.onlineTime?.showWeekDay) ? new Set(prev.onlineTime?.showWeekDay) : new Set([1, 2, 3, 4, 5, 6, 7]);\n if (weekDays.has(6)) {\n weekDays.delete(6);\n }\n else {\n weekDays.add(6);\n }\n return ({\n ...prev, onlineTime: {\n ...prev.onlineTime, showWeekDay: Array.from(weekDays)\n }\n }\n );\n });\n }}\n disabled={!checked}\n />\n } label=\"Sat\" labelPlacement=\"top\" sx={{ width: 15, '.MuiFormControlLabel-label.Mui-disabled': { color: checked && \"rgba(0, 0, 0, 0.87)\" } }} />\n {\n setLayout(prev => {\n let weekDays = Array.isArray(prev.onlineTime?.showWeekDay) ? new Set(prev.onlineTime?.showWeekDay) : new Set([1, 2, 3, 4, 5, 6, 7]);\n if (weekDays.has(7)) {\n weekDays.delete(7);\n }\n else {\n weekDays.add(7);\n }\n return ({\n ...prev, onlineTime: {\n ...prev.onlineTime, showWeekDay: Array.from(weekDays)\n }\n }\n );\n });\n }}\n disabled={!checked}\n />\n } label=\"Sun\" labelPlacement=\"top\" sx={{ width: 15, '.MuiFormControlLabel-label.Mui-disabled': { color: checked && \"rgba(0, 0, 0, 0.87)\" } }} />\n \n \n\n
\n\n\n
\n\n \n\n This will apply changes to dashboard and it will be available for viewing from the layout URL button
}\n />\n\n \n By fetching this url and sharing this dashboard you have agreed and are aware that you will be sharing group information, images and location data to where the dashboard will be displayed.\n

\n Note that your responsibility is to make sure that there is no third-party access to the URL inorder to prevent unauthorized copy and use.\n
}\n />\n\n \n \n \n );\n}\n\n/* ALTERNATIVE TIME INPUT\n {\n setLayout(prev => ({ ...prev, onlineTime: { ...prev.onlineTime, start: e.target.value + \":00\" } }));\n }}\n InputLabelProps={{\n shrink: true,\n }}\n inputProps={{\n step: 300,\n }}\n sx={{ width: \"90%\" }}\n/> */","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAvatarGroupUtilityClass(slot) {\n return generateUtilityClass('MuiAvatarGroup', slot);\n}\nconst avatarGroupClasses = generateUtilityClasses('MuiAvatarGroup', ['root', 'avatar']);\nexport default avatarGroupClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"componentsProps\", \"max\", \"spacing\", \"total\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { isFragment } from 'react-is';\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 Avatar, { avatarClasses } from '../Avatar';\nimport avatarGroupClasses, { getAvatarGroupUtilityClass } from './avatarGroupClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst SPACINGS = {\n small: -16,\n medium: null\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n avatar: ['avatar']\n };\n return composeClasses(slots, getAvatarGroupUtilityClass, classes);\n};\n\nconst AvatarGroupRoot = styled('div', {\n name: 'MuiAvatarGroup',\n slot: 'Root',\n overridesResolver: (props, styles) => _extends({\n [`& .${avatarGroupClasses.avatar}`]: styles.avatar\n }, styles.root)\n})(({\n theme\n}) => ({\n [`& .${avatarClasses.root}`]: {\n border: `2px solid ${theme.palette.background.default}`,\n boxSizing: 'content-box',\n marginLeft: -8,\n '&:last-child': {\n marginLeft: 0\n }\n },\n display: 'flex',\n flexDirection: 'row-reverse'\n}));\nconst AvatarGroupAvatar = styled(Avatar, {\n name: 'MuiAvatarGroup',\n slot: 'Avatar',\n overridesResolver: (props, styles) => styles.avatar\n})(({\n theme\n}) => ({\n border: `2px solid ${theme.palette.background.default}`,\n boxSizing: 'content-box',\n marginLeft: -8,\n '&:last-child': {\n marginLeft: 0\n }\n}));\nconst AvatarGroup = /*#__PURE__*/React.forwardRef(function AvatarGroup(inProps, ref) {\n var _componentsProps$addi, _componentsProps$addi2;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAvatarGroup'\n });\n\n const {\n children: childrenProp,\n className,\n componentsProps = {},\n max = 5,\n spacing = 'medium',\n total,\n variant = 'circular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n let clampedMax = max < 2 ? 2 : max;\n\n const ownerState = _extends({}, props, {\n max,\n spacing,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n const children = React.Children.toArray(childrenProp).filter(child => {\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The AvatarGroup component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n return /*#__PURE__*/React.isValidElement(child);\n });\n const totalAvatars = total || children.length;\n\n if (totalAvatars === clampedMax) {\n clampedMax += 1;\n }\n\n clampedMax = Math.min(totalAvatars + 1, clampedMax);\n const maxAvatars = Math.min(children.length, clampedMax - 1);\n const extraAvatars = Math.max(totalAvatars - clampedMax, totalAvatars - maxAvatars, 0);\n const marginLeft = spacing && SPACINGS[spacing] !== undefined ? SPACINGS[spacing] : -spacing;\n return /*#__PURE__*/_jsxs(AvatarGroupRoot, _extends({\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: [extraAvatars ? /*#__PURE__*/_jsxs(AvatarGroupAvatar, _extends({\n ownerState: ownerState,\n variant: variant\n }, componentsProps.additionalAvatar, {\n className: clsx(classes.avatar, (_componentsProps$addi = componentsProps.additionalAvatar) == null ? void 0 : _componentsProps$addi.className),\n style: _extends({\n marginLeft\n }, (_componentsProps$addi2 = componentsProps.additionalAvatar) == null ? void 0 : _componentsProps$addi2.style),\n children: [\"+\", extraAvatars]\n })) : null, children.slice(0, maxAvatars).reverse().map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n className: clsx(child.props.className, classes.avatar),\n style: _extends({\n // Consistent with \"&:last-child\" styling for the default spacing,\n // we do not apply custom marginLeft spacing on the last child\n marginLeft: index === maxAvatars - 1 ? undefined : marginLeft\n }, child.props.style),\n variant: child.props.variant || variant\n });\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? AvatarGroup.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 avatars to stack.\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 props used for each slot inside the AvatarGroup.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n additionalAvatar: PropTypes.object\n }),\n\n /**\n * Max avatars to show before +x.\n * @default 5\n */\n max: chainPropTypes(PropTypes.number, props => {\n if (props.max < 2) {\n return new Error(['MUI: The prop `max` should be equal to 2 or above.', 'A value below is clamped to 2.'].join('\\n'));\n }\n\n return null;\n }),\n\n /**\n * Spacing between avatars.\n * @default 'medium'\n */\n spacing: PropTypes.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.number]),\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 total number of avatars. Used for calculating the number of extra avatars.\n * @default children.length\n */\n total: PropTypes.number,\n\n /**\n * The variant to use.\n * @default 'circular'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['circular', 'rounded', 'square']), PropTypes.string])\n} : void 0;\nexport default AvatarGroup;","import { Checkbox, FormControlLabel } from '@mui/material';\n\nexport default function DayEnabledCheckbox({ day, list, setList, num }) {\n return (\n setList(prev => {\n let temp = new Set(prev);\n if (temp.has(num)) temp.delete(num);\n else temp.add(num);\n return temp;\n })}\n />\n } label={day} labelPlacement=\"top\" sx={{ width: 15 }} />\n );\n}\n","import { generateUtilityClasses, generateUtilityClass } from '@mui/material';\nexport function getDataGridUtilityClass(slot) {\n return generateUtilityClass('MuiDataGrid', slot);\n}\nexport const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell', 'cellContent', 'cellCheckbox', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLinkOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'row--editable', 'row--editing', 'row', 'row--lastVisible', 'rowCount', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { darken, lighten, alpha, styled } from '@mui/material/styles';\nimport { gridClasses } from '../../constants/gridClasses';\nexport const GridRootStyles = styled('div', {\n name: 'MuiDataGrid',\n slot: 'Root',\n overridesResolver: (props, styles) => [{\n [`&.${gridClasses.autoHeight}`]: styles.autoHeight\n }, {\n [`& .${gridClasses.editBooleanCell}`]: styles.editBooleanCell\n }, {\n [`& .${gridClasses['cell--editing']}`]: styles['cell--editing']\n }, {\n [`& .${gridClasses['cell--textCenter']}`]: styles['cell--textCenter']\n }, {\n [`& .${gridClasses['cell--textLeft']}`]: styles['cell--textLeft']\n }, {\n [`& .${gridClasses['cell--textRight']}`]: styles['cell--textRight']\n }, // TODO v6: Remove\n {\n [`& .${gridClasses['cell--withRenderer']}`]: styles['cell--withRenderer']\n }, {\n [`& .${gridClasses.cell}`]: styles.cell\n }, {\n [`& .${gridClasses.cellContent}`]: styles.cellContent\n }, {\n [`& .${gridClasses.cellCheckbox}`]: styles.cellCheckbox\n }, {\n [`& .${gridClasses.checkboxInput}`]: styles.checkboxInput\n }, {\n [`& .${gridClasses['columnHeader--alignCenter']}`]: styles['columnHeader--alignCenter']\n }, {\n [`& .${gridClasses['columnHeader--alignLeft']}`]: styles['columnHeader--alignLeft']\n }, {\n [`& .${gridClasses['columnHeader--alignRight']}`]: styles['columnHeader--alignRight']\n }, {\n [`& .${gridClasses['columnHeader--dragging']}`]: styles['columnHeader--dragging']\n }, {\n [`& .${gridClasses['columnHeader--moving']}`]: styles['columnHeader--moving']\n }, {\n [`& .${gridClasses['columnHeader--numeric']}`]: styles['columnHeader--numeric']\n }, {\n [`& .${gridClasses['columnHeader--sortable']}`]: styles['columnHeader--sortable']\n }, {\n [`& .${gridClasses['columnHeader--sorted']}`]: styles['columnHeader--sorted']\n }, {\n [`& .${gridClasses.columnHeader}`]: styles.columnHeader\n }, {\n [`& .${gridClasses.columnHeaderCheckbox}`]: styles.columnHeaderCheckbox\n }, {\n [`& .${gridClasses.columnHeaderDraggableContainer}`]: styles.columnHeaderDraggableContainer\n }, {\n [`& .${gridClasses.columnHeaderTitleContainer}`]: styles.columnHeaderTitleContainer\n }, {\n [`& .${gridClasses['columnSeparator--resizable']}`]: styles['columnSeparator--resizable']\n }, {\n [`& .${gridClasses['columnSeparator--resizing']}`]: styles['columnSeparator--resizing']\n }, {\n [`& .${gridClasses.columnSeparator}`]: styles.columnSeparator\n }, {\n [`& .${gridClasses.filterIcon}`]: styles.filterIcon\n }, {\n [`& .${gridClasses.iconSeparator}`]: styles.iconSeparator\n }, {\n [`& .${gridClasses.menuIcon}`]: styles.menuIcon\n }, {\n [`& .${gridClasses.menuIconButton}`]: styles.menuIconButton\n }, {\n [`& .${gridClasses.menuOpen}`]: styles.menuOpen\n }, {\n [`& .${gridClasses.menuList}`]: styles.menuList\n }, {\n [`& .${gridClasses['row--editable']}`]: styles['row--editable']\n }, {\n [`& .${gridClasses['row--editing']}`]: styles['row--editing']\n }, {\n [`& .${gridClasses.row}`]: styles.row\n }, {\n [`& .${gridClasses.sortIcon}`]: styles.sortIcon\n }, {\n [`& .${gridClasses.withBorder}`]: styles.withBorder\n }, {\n [`& .${gridClasses.treeDataGroupingCell}`]: styles.treeDataGroupingCell\n }, {\n [`& .${gridClasses.treeDataGroupingCellToggle}`]: styles.treeDataGroupingCellToggle\n }, {\n [`& .${gridClasses.detailPanelToggleCell}`]: styles.detailPanelToggleCell\n }, {\n [`& .${gridClasses['detailPanelToggleCell--expanded']}`]: styles['detailPanelToggleCell--expanded']\n }, styles.root]\n})(({\n theme\n}) => {\n const borderColor = theme.palette.mode === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68);\n\n const gridStyle = _extends({\n flex: 1,\n boxSizing: 'border-box',\n position: 'relative',\n border: `1px solid ${borderColor}`,\n borderRadius: theme.shape.borderRadius,\n color: theme.palette.text.primary\n }, theme.typography.body2, {\n outline: 'none',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n [`&.${gridClasses.autoHeight}`]: {\n height: 'auto',\n [`& .${gridClasses['row--lastVisible']} .${gridClasses.cell}`]: {\n borderBottomColor: 'transparent'\n }\n },\n [`& .${gridClasses['virtualScrollerContent--overflowed']} .${gridClasses['row--lastVisible']} .${gridClasses.cell}`]: {\n borderBottomColor: 'transparent'\n },\n [`& .${gridClasses.columnHeader}, & .${gridClasses.cell}`]: {\n WebkitTapHighlightColor: 'transparent',\n lineHeight: null,\n padding: '0 10px',\n boxSizing: 'border-box'\n },\n [`& .${gridClasses.columnHeader}:focus-within, & .${gridClasses.cell}:focus-within`]: {\n outline: `solid ${alpha(theme.palette.primary.main, 0.5)} 1px`,\n outlineWidth: 1,\n outlineOffset: -1\n },\n [`& .${gridClasses.columnHeader}:focus, & .${gridClasses.cell}:focus`]: {\n outline: `solid ${theme.palette.primary.main} 1px`\n },\n [`& .${gridClasses.columnHeaderCheckbox}, & .${gridClasses.cellCheckbox}`]: {\n padding: 0,\n justifyContent: 'center',\n alignItems: 'center'\n },\n [`& .${gridClasses.columnHeader}`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n },\n [`& .${gridClasses['columnHeader--sorted']} .${gridClasses.iconButtonContainer}, & .${gridClasses['columnHeader--filtered']} .${gridClasses.iconButtonContainer}`]: {\n visibility: 'visible',\n width: 'auto'\n },\n [`& .${gridClasses.columnHeader}:not(.${gridClasses['columnHeader--sorted']}) .${gridClasses.sortIcon}`]: {\n opacity: 0,\n transition: theme.transitions.create(['opacity'], {\n duration: theme.transitions.duration.shorter\n })\n },\n [`& .${gridClasses.columnHeader}:not(.${gridClasses['columnHeader--sorted']}):hover .${gridClasses.sortIcon}`]: {\n opacity: 0.5\n },\n [`& .${gridClasses.columnHeaderTitleContainer}`]: {\n display: 'flex',\n alignItems: 'center',\n minWidth: 0,\n flex: 1,\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n [`& .${gridClasses.columnHeaderTitleContainerContent}`]: {\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center'\n },\n [`& .${gridClasses.sortIcon}, & .${gridClasses.filterIcon}`]: {\n fontSize: 'inherit'\n },\n [`& .${gridClasses['columnHeader--sortable']}`]: {\n cursor: 'pointer'\n },\n [`& .${gridClasses['columnHeader--alignCenter']} .${gridClasses.columnHeaderTitleContainer}`]: {\n justifyContent: 'center'\n },\n [`& .${gridClasses['columnHeader--alignRight']} .${gridClasses.columnHeaderDraggableContainer}, & .${gridClasses['columnHeader--alignRight']} .${gridClasses.columnHeaderTitleContainer}`]: {\n flexDirection: 'row-reverse'\n },\n [`& .${gridClasses['columnHeader--alignCenter']} .${gridClasses.menuIcon}, & .${gridClasses['columnHeader--alignRight']} .${gridClasses.menuIcon}`]: {\n marginRight: 'auto',\n marginLeft: -6\n },\n [`& .${gridClasses['columnHeader--alignRight']} .${gridClasses.menuIcon}, & .${gridClasses['columnHeader--alignRight']} .${gridClasses.menuIcon}`]: {\n marginRight: 'auto',\n marginLeft: -10\n },\n [`& .${gridClasses['columnHeader--moving']}`]: {\n backgroundColor: theme.palette.action.hover\n },\n [`& .${gridClasses.columnSeparator}`]: {\n position: 'absolute',\n zIndex: 100,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n color: borderColor\n },\n [`& .${gridClasses['columnSeparator--sideLeft']}`]: {\n left: -12\n },\n [`& .${gridClasses['columnSeparator--sideRight']}`]: {\n right: -12\n },\n [`& .${gridClasses['columnSeparator--resizable']}`]: {\n cursor: 'col-resize',\n touchAction: 'none',\n '&:hover': {\n color: theme.palette.text.primary,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n color: borderColor\n }\n },\n [`&.${gridClasses['columnSeparator--resizing']}`]: {\n color: theme.palette.text.primary\n }\n },\n [`& .${gridClasses.iconSeparator}`]: {\n color: 'inherit'\n },\n [`& .${gridClasses.menuIcon}`]: {\n width: 0,\n visibility: 'hidden',\n fontSize: 20,\n marginRight: -10,\n display: 'flex',\n alignItems: 'center'\n },\n [`& .${gridClasses.columnHeader}:hover`]: {\n [`& .${gridClasses.iconButtonContainer}`]: {\n visibility: 'visible',\n width: 'auto'\n },\n [`& .${gridClasses.menuIcon}`]: {\n width: 'auto',\n visibility: 'visible'\n }\n },\n [`.${gridClasses.menuOpen}`]: {\n visibility: 'visible',\n width: 'auto'\n },\n [`& .${gridClasses.row}`]: {\n display: 'flex',\n width: 'fit-content',\n breakInside: 'avoid',\n // Avoid the row to be broken in two different print pages.\n '&:hover, &.Mui-hovered': {\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&.Mui-selected': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n '&:hover, &.Mui-hovered': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n }\n }\n },\n [`& .${gridClasses.cell}`]: {\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n borderBottom: `1px solid ${borderColor}`\n },\n [`& .${gridClasses.cellContent}`]: {\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n [`& .${gridClasses.cell}.${gridClasses['cell--editing']}`]: {\n padding: 1,\n display: 'flex',\n boxShadow: theme.shadows[2],\n backgroundColor: theme.palette.background.paper,\n '&:focus-within': {\n outline: `solid ${theme.palette.primary.main} 1px`,\n outlineOffset: '-1px'\n }\n },\n [`& .${gridClasses['row--editing']}`]: {\n boxShadow: theme.shadows[2]\n },\n [`& .${gridClasses['row--editing']} .${gridClasses.cell}`]: {\n boxShadow: theme.shadows[0],\n backgroundColor: theme.palette.background.paper\n },\n [`& .${gridClasses.editBooleanCell}`]: {\n display: 'flex',\n height: '100%',\n width: '100%',\n alignItems: 'center',\n justifyContent: 'center'\n },\n [`& .${gridClasses.booleanCell}[data-value=\"true\"]`]: {\n color: theme.palette.text.secondary\n },\n [`& .${gridClasses.booleanCell}[data-value=\"false\"]`]: {\n color: theme.palette.text.disabled\n },\n [`& .${gridClasses.actionsCell}`]: {\n display: 'inline-flex',\n alignItems: 'center',\n gridGap: theme.spacing(1)\n },\n [`& .${gridClasses.withBorder}`]: {\n borderRight: `1px solid ${borderColor}`\n },\n [`& .${gridClasses['cell--textLeft']}`]: {\n justifyContent: 'flex-start'\n },\n [`& .${gridClasses['cell--textRight']}`]: {\n justifyContent: 'flex-end'\n },\n [`& .${gridClasses['cell--textCenter']}`]: {\n justifyContent: 'center'\n },\n [`& .${gridClasses.columnHeaderDraggableContainer}`]: {\n display: 'flex',\n width: '100%'\n },\n [`& .${gridClasses['columnHeader--dragging']}`]: {\n background: theme.palette.background.paper,\n padding: '0 12px',\n borderRadius: theme.shape.borderRadius,\n opacity: theme.palette.action.disabledOpacity\n },\n [`& .${gridClasses.treeDataGroupingCell}`]: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n [`& .${gridClasses.treeDataGroupingCellToggle}`]: {\n flex: '0 0 28px',\n alignSelf: 'stretch',\n marginRight: theme.spacing(2)\n },\n [`& .${gridClasses.groupingCriteriaCell}`]: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n [`& .${gridClasses.groupingCriteriaCellToggle}`]: {\n flex: '0 0 28px',\n alignSelf: 'stretch',\n marginRight: theme.spacing(2)\n }\n });\n\n return gridStyle;\n});","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function () {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function () {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","export const buildWarning = (message, gravity = 'warning') => {\n let alreadyWarned = false;\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n return () => {\n if (!alreadyWarned) {\n alreadyWarned = true;\n\n if (gravity === 'error') {\n console.error(cleanMessage);\n } else {\n console.warn(cleanMessage);\n }\n }\n };\n};\nexport const wrapWithWarningOnCall = (method, message) => {\n if (process.env.NODE_ENV === 'production') {\n return method;\n }\n\n const warning = buildWarning(message);\n return (...args) => {\n warning();\n return method(...args);\n };\n};","import { createSelector as reselectCreateSelector } from 'reselect';\nimport { buildWarning } from './warning';\nconst cache = {};\nconst missingInstanceIdWarning = buildWarning(['MUI: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, e.g. `mySelector(apiRef)`, or pass the instance ID explicitly, e.g `mySelector(state, apiRef.current.instanceId)`.']);\nexport const createSelector = (...args) => {\n const selector = (...selectorArgs) => {\n const [stateOrApiRef, instanceId] = selectorArgs;\n const isApiRef = !!stateOrApiRef.current;\n const cacheKey = isApiRef ? stateOrApiRef.current.instanceId : instanceId != null ? instanceId : 'default';\n const state = isApiRef ? stateOrApiRef.current.state : stateOrApiRef;\n\n if (process.env.NODE_ENV !== 'production') {\n if (cacheKey === 'default') {\n missingInstanceIdWarning();\n }\n }\n\n if (cache[cacheKey] && cache[cacheKey].get(args)) {\n // We pass the cache key because the called selector might have as\n // dependency another selector created with this `createSelector`.\n return cache[cacheKey].get(args)(state, cacheKey);\n }\n\n const newSelector = reselectCreateSelector(...args);\n\n if (!cache[cacheKey]) {\n cache[cacheKey] = new Map();\n }\n\n cache[cacheKey].set(args, newSelector);\n return newSelector(state, cacheKey);\n }; // We use this property to detect if the selector was created with createSelector\n // or it's only a simple function the receives the state and returns part of it.\n\n\n selector.cache = cache;\n return selector;\n};","import { createSelector } from '../../../utils/createSelector';\nimport { wrapWithWarningOnCall } from '../../../utils/warning';\n/**\n * @category Columns\n * @deprecated Use the selector returning exactly the value you are looking for.\n * @ignore - do not document.\n * TODO v6: Rename `gridColumnsStateSelector`\n */\n\nexport const gridColumnsSelector = state => state.columns;\n/**\n * Get the field of each column.\n * @category Columns\n */\n\nexport const gridColumnFieldsSelector = createSelector(gridColumnsSelector, columnsState => columnsState.all);\n/**\n * Get the columns as a lookup (an object containing the field for keys and the definition for values).\n * @category Columns\n */\n\nexport const gridColumnLookupSelector = createSelector(gridColumnsSelector, columnsState => columnsState.lookup);\n/**\n * Get the columns as an array.\n * @category Columns\n */\n\nexport const gridColumnDefinitionsSelector = createSelector(gridColumnFieldsSelector, gridColumnLookupSelector, (allFields, lookup) => allFields.map(field => lookup[field]));\n/**\n * Get the column visibility model, containing the visibility status of each column.\n * If a column is not registered in the model, it is visible.\n * @category Visible Columns\n */\n\nexport const gridColumnVisibilityModelSelector = createSelector(gridColumnsSelector, columnsState => columnsState.columnVisibilityModel);\n/**\n * Get the visible columns as a lookup (an object containing the field for keys and the definition for values).\n * @category Visible Columns\n */\n\nexport const gridVisibleColumnDefinitionsSelector = createSelector(gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector, (columns, columnVisibilityModel) => columns.filter(column => columnVisibilityModel[column.field] !== false));\n/**\n * Get the field of each visible column.\n * @category Visible Columns\n */\n\nexport const gridVisibleColumnFieldsSelector = createSelector(gridVisibleColumnDefinitionsSelector, visibleColumns => visibleColumns.map(column => column.field));\n/**\n * Get the left position in pixel of each visible columns relative to the left of the first column.\n * @category Visible Columns\n */\n\nexport const gridColumnPositionsSelector = createSelector(gridVisibleColumnDefinitionsSelector, visibleColumns => {\n const positions = [];\n let currentPosition = 0;\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n positions.push(currentPosition);\n currentPosition += visibleColumns[i].computedWidth;\n }\n\n return positions;\n});\n/**\n * Get the summed width of all the visible columns.\n * @category Visible Columns\n */\n\nexport const gridColumnsTotalWidthSelector = createSelector(gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector, (visibleColumns, positions) => {\n const colCount = visibleColumns.length;\n\n if (colCount === 0) {\n return 0;\n }\n\n return positions[colCount - 1] + visibleColumns[colCount - 1].computedWidth;\n});\n/**\n * Get the filterable columns as an array.\n * @category Columns\n */\n\nexport const gridFilterableColumnDefinitionsSelector = createSelector(gridColumnDefinitionsSelector, columns => columns.filter(col => col.filterable));\n/**\n * Get the filterable columns as a lookup (an object containing the field for keys and the definition for values).\n * @category Columns\n */\n\nexport const gridFilterableColumnLookupSelector = createSelector(gridColumnDefinitionsSelector, columns => columns.reduce((acc, col) => {\n if (col.filterable) {\n acc[col.field] = col;\n }\n\n return acc;\n}, {}));\n/**\n * @category Columns\n * @deprecated Use `gridColumnFieldsSelector` instead.\n * @ignore - do not document.\n */\n\nexport const allGridColumnsFieldsSelector = wrapWithWarningOnCall(gridColumnFieldsSelector, ['MUI: The method allGridColumnsFieldsSelector is deprecated and will be removed in the next major version.', 'Use gridColumnFieldsSelector instead']);\n/**\n * @category Columns\n * @deprecated Use `gridColumnDefinitionsSelector` instead.\n * @ignore - do not document.\n */\n\nexport const allGridColumnsSelector = wrapWithWarningOnCall(gridColumnDefinitionsSelector, ['MUI: The method allGridColumnsSelector is deprecated and will be removed in the next major version.', 'Use gridColumnDefinitionsSelector instead']);\n/**\n * @category Visible Columns\n * @deprecated Use `gridVisibleColumnDefinitionsSelector` instead.\n * @ignore - do not document.\n */\n\nexport const visibleGridColumnsSelector = wrapWithWarningOnCall(gridVisibleColumnDefinitionsSelector, ['MUI: The method visibleGridColumnsSelector is deprecated and will be removed in the next major version.', 'Use gridVisibleColumnDefinitionsSelector instead']);\n/**\n * @category Columns\n * @deprecated Use `gridFilterableColumnDefinitionsSelector` instead.\n * @ignore - do not document.\n */\n\nexport const filterableGridColumnsSelector = wrapWithWarningOnCall(gridFilterableColumnDefinitionsSelector, ['MUI: The method filterableGridColumnsSelector is deprecated and will be removed in the next major version.', 'Use gridFilterableColumnDefinitionsSelector instead']);\n/**\n * @category Columns\n * @deprecated Use `gridFilterableColumnLookupSelector` instead (not the same return format).\n * @ignore - do not document.\n */\n\nexport const filterableGridColumnsIdsSelector = wrapWithWarningOnCall(createSelector(gridFilterableColumnDefinitionsSelector, columns => columns.map(col => col.field)), ['MUI: The method filterableGridColumnsIdsSelector is deprecated and will be removed in the next major version.', 'Use gridFilterableColumnDefinitionsSelector instead.', 'The return format is now a lookup, if you want to get the same output as before, use the following code:', '', 'const lookup = gridFilterableColumnLookupSelector(apiRef);', 'const fields = gridColumnFieldsSelector(apiRef).filter(field => lookup[field]);']);\n/**\n * Get the amount of visible columns.\n * @category Visible Columns\n * @deprecated Use the length of the array returned by `gridVisibleColumnDefinitionsSelector` instead.\n * @ignore - do not document.\n */\n\nexport const visibleGridColumnsLengthSelector = wrapWithWarningOnCall(createSelector(gridVisibleColumnDefinitionsSelector, visibleColumns => visibleColumns.length), ['MUI: The method visibleGridColumnsLengthSelector is deprecated and will be removed in the next major version.', 'Use the length of the array returned by gridVisibleColumnDefinitionsSelector instead.']);\n/**\n * @category Visible Columns\n * @deprecated Use `gridColumnsTotalWidthSelector` or `gridColumnPositionsSelector` instead.\n * @ignore - do not document.\n */\n\nexport const gridColumnsMetaSelector = wrapWithWarningOnCall(createSelector(gridColumnPositionsSelector, gridColumnsTotalWidthSelector, (positions, totalWidth) => ({\n totalWidth,\n positions\n})), ['MUI: The method gridColumnsMetaSelector is deprecated and will be removed in the next major version.', 'Use gridColumnsTotalWidthSelector or gridColumnPositionsSelector instead']);","import { buildWarning } from '../../utils/warning';\n\nfunction isOutputSelector(selector) {\n return selector.cache;\n}\n\nconst stateNotInitializedWarning = buildWarning(['MUI: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);\nexport const useGridSelector = (apiRef, selector) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!apiRef.current.state) {\n stateNotInitializedWarning();\n }\n }\n\n if (isOutputSelector(selector)) {\n return selector(apiRef);\n }\n\n return selector(apiRef.current.state);\n};","import * as React from 'react';\nexport const GridApiContext = /*#__PURE__*/React.createContext(undefined);\n\nif (process.env.NODE_ENV !== 'production') {\n GridApiContext.displayName = 'GridApiContext';\n}","import * as React from 'react';\nimport { GridApiContext } from '../../components/GridApiContext';\nexport function useGridApiContext() {\n const apiRef = React.useContext(GridApiContext);\n\n if (apiRef === undefined) {\n throw new Error(['MUI: Could not find the data grid context.', 'It looks like you rendered your component outside of a DataGrid or DataGridPro parent component.', 'This can also happen if you are bundling multiple versions of the data grid.'].join('\\n'));\n }\n\n return apiRef;\n}","import * as React from 'react';\nconst GridRootPropsContext = /*#__PURE__*/React.createContext(undefined);\n\nif (process.env.NODE_ENV !== 'production') {\n GridRootPropsContext.displayName = 'GridRootPropsContext';\n}\n\nexport { GridRootPropsContext };","import * as React from 'react';\nimport { GridRootPropsContext } from '../../context/GridRootPropsContext';\nexport const useGridRootProps = () => {\n const contextValue = React.useContext(GridRootPropsContext);\n\n if (!contextValue) {\n throw new Error('MUI: useGridRootProps should only be used inside the DataGrid/DataGridPro component.');\n }\n\n return contextValue;\n};","import { createSelector } from '../../../utils/createSelector';\nexport const gridRowsStateSelector = state => state.rows;\nexport const gridRowCountSelector = createSelector(gridRowsStateSelector, rows => rows.totalRowCount);\nexport const gridTopLevelRowCountSelector = createSelector(gridRowsStateSelector, rows => rows.totalTopLevelRowCount);\nexport const gridRowsLookupSelector = createSelector(gridRowsStateSelector, rows => rows.idRowsLookup);\nexport const gridRowTreeSelector = createSelector(gridRowsStateSelector, rows => rows.tree);\nexport const gridRowGroupingNameSelector = createSelector(gridRowsStateSelector, rows => rows.groupingName);\nexport const gridRowTreeDepthSelector = createSelector(gridRowsStateSelector, rows => rows.treeDepth);\nexport const gridRowIdsSelector = createSelector(gridRowsStateSelector, rows => rows.ids);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useForkRef } from '@mui/material/utils';\nimport NoSsr from '@mui/material/NoSsr';\nimport { GridRootStyles } from './GridRootStyles';\nimport { gridVisibleColumnDefinitionsSelector } from '../../hooks/features/columns/gridColumnsSelector';\nimport { useGridSelector } from '../../hooks/utils/useGridSelector';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { gridClasses } from '../../constants/gridClasses';\nimport { gridRowCountSelector } from '../../hooks/features/rows/gridRowsSelector';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {\n var _rootProps$classes;\n\n const rootProps = useGridRootProps();\n\n const {\n children,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const apiRef = useGridApiContext();\n const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);\n const totalRowCount = useGridSelector(apiRef, gridRowCountSelector);\n const rootContainerRef = React.useRef(null);\n const handleRef = useForkRef(rootContainerRef, ref);\n apiRef.current.rootElementRef = rootContainerRef;\n return /*#__PURE__*/_jsx(NoSsr, {\n children: /*#__PURE__*/_jsx(GridRootStyles, _extends({\n ref: handleRef,\n className: clsx(className, (_rootProps$classes = rootProps.classes) == null ? void 0 : _rootProps$classes.root, gridClasses.root, rootProps.autoHeight && gridClasses.autoHeight),\n role: \"grid\",\n \"aria-colcount\": visibleColumns.length,\n \"aria-rowcount\": totalRowCount,\n \"aria-multiselectable\": !rootProps.disableMultipleSelection,\n \"aria-label\": rootProps['aria-label'],\n \"aria-labelledby\": rootProps['aria-labelledby']\n }, other, {\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? GridRoot.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\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} : void 0;\nexport { GridRoot };","import * as React from 'react';\nexport function useGridLogger(apiRef, name) {\n const logger = React.useRef(null);\n\n if (logger.current) {\n return logger.current;\n }\n\n const newLogger = apiRef.current.getLogger(name);\n logger.current = newLogger;\n return newLogger;\n}","import * as React from 'react';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['main']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nconst GridMainContainerRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'Main',\n overridesResolver: (props, styles) => styles.main\n})(() => ({\n position: 'relative',\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n}));\nexport function GridMainContainer(props) {\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(GridMainContainerRoot, {\n className: classes.root,\n children: props.children\n });\n}","import * as React from 'react';\nexport class ErrorBoundary extends React.Component {\n static getDerivedStateFromError(error) {\n // Update state so the next render will show the fallback UI.\n return {\n hasError: true,\n error\n };\n }\n\n componentDidCatch(error, errorInfo) {\n if (this.props.api.current) {\n this.logError(error); // Allows to trigger the Error event and all listener can run on Error\n\n this.props.api.current.showError({\n error,\n errorInfo\n });\n }\n }\n\n logError(error, errorInfo) {\n this.props.logger.error(`An unexpected error occurred. Error: ${error && error.message}. `, error, errorInfo);\n }\n\n render() {\n var _this$state;\n\n if (this.props.hasError || (_this$state = this.state) != null && _this$state.hasError) {\n // You can render any custom fallback UI\n return this.props.render(this.props.componentProps || this.state);\n }\n\n return this.props.children;\n }\n\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { useGridLogger } from '../../hooks/utils/useGridLogger';\nimport { GridMainContainer } from '../containers/GridMainContainer';\nimport { ErrorBoundary } from '../ErrorBoundary';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction GridErrorHandler(props) {\n const {\n children\n } = props;\n const apiRef = useGridApiContext();\n const logger = useGridLogger(apiRef, 'GridErrorHandler');\n const rootProps = useGridRootProps();\n const error = apiRef.current.state.error;\n return /*#__PURE__*/_jsx(ErrorBoundary, {\n hasError: error != null,\n componentProps: error,\n api: apiRef,\n logger: logger,\n render: errorProps => {\n var _rootProps$components;\n\n return /*#__PURE__*/_jsx(GridMainContainer, {\n children: /*#__PURE__*/_jsx(rootProps.components.ErrorOverlay, _extends({}, errorProps, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.errorOverlay))\n });\n },\n children: children\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridErrorHandler.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n children: PropTypes.node\n} : void 0;\nexport { GridErrorHandler };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function GridHeaderPlaceholder() {\n var _rootProps$components;\n\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const headerRef = React.useRef(null);\n apiRef.current.headerRef = headerRef;\n return /*#__PURE__*/_jsx(\"div\", {\n ref: headerRef,\n children: /*#__PURE__*/_jsx(rootProps.components.Header, _extends({}, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.header))\n });\n}","var GridEvents;\n\n(function (GridEvents) {\n GridEvents[\"resize\"] = \"resize\";\n GridEvents[\"debouncedResize\"] = \"debouncedResize\";\n GridEvents[\"viewportInnerSizeChange\"] = \"viewportInnerSizeChange\";\n GridEvents[\"componentError\"] = \"componentError\";\n GridEvents[\"unmount\"] = \"unmount\";\n GridEvents[\"cellModeChange\"] = \"cellModeChange\";\n GridEvents[\"cellClick\"] = \"cellClick\";\n GridEvents[\"cellDoubleClick\"] = \"cellDoubleClick\";\n GridEvents[\"cellMouseDown\"] = \"cellMouseDown\";\n GridEvents[\"cellMouseUp\"] = \"cellMouseUp\";\n GridEvents[\"cellKeyDown\"] = \"cellKeyDown\";\n GridEvents[\"cellFocusIn\"] = \"cellFocusIn\";\n GridEvents[\"cellFocusOut\"] = \"cellFocusOut\";\n GridEvents[\"cellDragEnter\"] = \"cellDragEnter\";\n GridEvents[\"cellDragOver\"] = \"cellDragOver\";\n GridEvents[\"editCellPropsChange\"] = \"editCellPropsChange\";\n GridEvents[\"cellEditCommit\"] = \"cellEditCommit\";\n GridEvents[\"cellEditStart\"] = \"cellEditStart\";\n GridEvents[\"cellEditStop\"] = \"cellEditStop\";\n GridEvents[\"rowEditStart\"] = \"rowEditStart\";\n GridEvents[\"rowEditStop\"] = \"rowEditStop\";\n GridEvents[\"rowEditCommit\"] = \"rowEditCommit\";\n GridEvents[\"cellNavigationKeyDown\"] = \"cellNavigationKeyDown\";\n GridEvents[\"rowClick\"] = \"rowClick\";\n GridEvents[\"rowDoubleClick\"] = \"rowDoubleClick\";\n GridEvents[\"rowMouseEnter\"] = \"rowMouseEnter\";\n GridEvents[\"rowMouseLeave\"] = \"rowMouseLeave\";\n GridEvents[\"editRowsModelChange\"] = \"editRowsModelChange\";\n GridEvents[\"columnHeaderBlur\"] = \"columnHeaderBlur\";\n GridEvents[\"columnHeaderFocus\"] = \"columnHeaderFocus\";\n GridEvents[\"columnHeaderNavigationKeyDown\"] = \"columnHeaderNavigationKeyDown\";\n GridEvents[\"columnHeaderKeyDown\"] = \"columnHeaderKeyDown\";\n GridEvents[\"columnHeaderClick\"] = \"columnHeaderClick\";\n GridEvents[\"columnHeaderDoubleClick\"] = \"columnHeaderDoubleClick\";\n GridEvents[\"columnHeaderOver\"] = \"columnHeaderOver\";\n GridEvents[\"columnHeaderOut\"] = \"columnHeaderOut\";\n GridEvents[\"columnHeaderEnter\"] = \"columnHeaderEnter\";\n GridEvents[\"columnHeaderLeave\"] = \"columnHeaderLeave\";\n GridEvents[\"columnHeaderDragStart\"] = \"columnHeaderDragStart\";\n GridEvents[\"columnHeaderDragOver\"] = \"columnHeaderDragOver\";\n GridEvents[\"columnHeaderDragEnter\"] = \"columnHeaderDragEnter\";\n GridEvents[\"columnHeaderDragEnd\"] = \"columnHeaderDragEnd\";\n GridEvents[\"selectionChange\"] = \"selectionChange\";\n GridEvents[\"headerSelectionCheckboxChange\"] = \"headerSelectionCheckboxChange\";\n GridEvents[\"rowSelectionCheckboxChange\"] = \"rowSelectionCheckboxChange\";\n GridEvents[\"pageChange\"] = \"pageChange\";\n GridEvents[\"pageSizeChange\"] = \"pageSizeChange\";\n GridEvents[\"rowGroupingModelChange\"] = \"rowGroupingModelChange\";\n GridEvents[\"rowsScroll\"] = \"rowsScroll\";\n GridEvents[\"rowsScrollEnd\"] = \"rowsScrollEnd\";\n GridEvents[\"columnSeparatorMouseDown\"] = \"columnSeparatorMouseDown\";\n GridEvents[\"columnResize\"] = \"columnResize\";\n GridEvents[\"columnWidthChange\"] = \"columnWidthChange\";\n GridEvents[\"columnResizeStart\"] = \"columnResizeStart\";\n GridEvents[\"columnResizeStop\"] = \"columnResizeStop\";\n GridEvents[\"columnOrderChange\"] = \"columnOrderChange\";\n GridEvents[\"rowsSet\"] = \"rowsSet\";\n GridEvents[\"rowExpansionChange\"] = \"rowExpansionChange\";\n GridEvents[\"visibleRowsSet\"] = \"visibleRowsSet\";\n GridEvents[\"columnsChange\"] = \"columnsChange\";\n GridEvents[\"detailPanelsExpandedRowIdsChange\"] = \"detailPanelsExpandedRowIdsChange\";\n GridEvents[\"pinnedColumnsChange\"] = \"pinnedColumnsChange\";\n GridEvents[\"preProcessorRegister\"] = \"preProcessorRegister\";\n GridEvents[\"preProcessorUnregister\"] = \"preProcessorUnregister\";\n GridEvents[\"activeStrategyProcessorChange\"] = \"activeStrategyProcessorChange\";\n GridEvents[\"strategyAvailabilityChange\"] = \"strategyAvailabilityChange\";\n GridEvents[\"sortModelChange\"] = \"sortModelChange\";\n GridEvents[\"filterModelChange\"] = \"filterModelChange\";\n GridEvents[\"columnVisibilityModelChange\"] = \"columnVisibilityModelChange\";\n GridEvents[\"stateChange\"] = \"stateChange\";\n GridEvents[\"columnVisibilityChange\"] = \"columnVisibilityChange\";\n GridEvents[\"virtualScrollerContentSizeChange\"] = \"virtualScrollerContentSizeChange\";\n})(GridEvents || (GridEvents = {}));\n\nexport { GridEvents };","/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n *\n * TODO replace with https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver\n * once browser support allows it.\n **/\nexport default function createDetectElementResize(nonce, hostWindow) {\n var resetTriggers = function resetTriggers(element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function checkTriggers(element) {\n return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function scrollListener(e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {\n return;\n }\n\n var element = this;\n resetTriggers(this);\n\n if (this.__resizeRAF__) {\n hostWindow.cancelAnimationFrame(this.__resizeRAF__);\n }\n\n this.__resizeRAF__ = hostWindow.requestAnimationFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n /* Detect CSS Animations support to detect element display/re-attach */\n\n\n var animation = false,\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n pfx = '';\n {\n var elm = document.createElement('fakeelement');\n\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n var animationName = 'resizeanim';\n var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n\n var createStyles = function createStyles(doc) {\n if (!doc.getElementById('muiDetectElementResize')) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') + '.Mui-resizeTriggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.Mui-resizeTriggers, .Mui-resizeTriggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .Mui-resizeTriggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = doc.head || doc.getElementsByTagName('head')[0],\n style = doc.createElement('style');\n style.id = 'muiDetectElementResize';\n style.type = 'text/css';\n\n if (nonce != null) {\n style.setAttribute('nonce', nonce);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(doc.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n };\n\n var addResizeListener = function addResizeListener(element, fn) {\n if (!element.__resizeTriggers__) {\n var doc = element.ownerDocument;\n var elementStyle = hostWindow.getComputedStyle(element);\n\n if (elementStyle && elementStyle.position == 'static') {\n element.style.position = 'relative';\n }\n\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement('div')).className = 'Mui-resizeTriggers';\n element.__resizeTriggers__.innerHTML = '
' + '
';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener('scroll', scrollListener, true);\n /* Listen for a css animation to detect element display/re-attach */\n\n if (animationstartevent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName == animationName) {\n resetTriggers(element);\n }\n };\n\n element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n }\n }\n\n element.__resizeListeners__.push(fn);\n };\n\n var removeResizeListener = function removeResizeListener(element, fn) {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener, true);\n\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n\n element.__resizeTriggers__.__animationListener__ = null;\n }\n\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {// Preact compat; see developit/preact-compat/issues/228\n }\n }\n };\n\n return {\n addResizeListener,\n removeResizeListener\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"defaultHeight\", \"defaultWidth\", \"disableHeight\", \"disableWidth\", \"nonce\", \"onResize\", \"style\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useForkRef, ownerWindow, useEventCallback, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';\nimport createDetectElementResize from '../lib/createDetectElementResize'; // TODO replace with https://caniuse.com/resizeobserver.\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GridAutoSizer = /*#__PURE__*/React.forwardRef(function AutoSizer(props, ref) {\n const {\n children,\n defaultHeight = null,\n defaultWidth = null,\n disableHeight = false,\n disableWidth = false,\n nonce,\n onResize,\n style\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [state, setState] = React.useState({\n height: defaultHeight,\n width: defaultWidth\n });\n const rootRef = React.useRef(null);\n const parentElement = React.useRef(null);\n const handleResize = useEventCallback(() => {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n if (parentElement.current) {\n const height = parentElement.current.offsetHeight || 0;\n const width = parentElement.current.offsetWidth || 0;\n const win = ownerWindow(parentElement.current);\n const computedStyle = win.getComputedStyle(parentElement.current);\n const paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n const paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n const paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n const paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n const newHeight = height - paddingTop - paddingBottom;\n const newWidth = width - paddingLeft - paddingRight;\n\n if (!disableHeight && state.height !== newHeight || !disableWidth && state.width !== newWidth) {\n setState({\n height: newHeight,\n width: newWidth\n });\n\n if (onResize) {\n onResize({\n height: newHeight,\n width: newWidth\n });\n }\n }\n }\n });\n useEnhancedEffect(() => {\n var _parentElement$curren;\n\n parentElement.current = rootRef.current.parentElement;\n\n if (!parentElement) {\n return undefined;\n }\n\n const win = ownerWindow((_parentElement$curren = parentElement.current) != null ? _parentElement$curren : undefined);\n const detectElementResize = createDetectElementResize(nonce, win);\n detectElementResize.addResizeListener(parentElement.current, handleResize);\n handleResize();\n return () => {\n detectElementResize.removeResizeListener(parentElement.current, handleResize);\n };\n }, [nonce, handleResize]); // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n\n const outerStyle = {\n overflow: 'visible'\n };\n const childParams = {};\n\n if (!disableHeight) {\n outerStyle.height = 0;\n childParams.height = state.height;\n }\n\n if (!disableWidth) {\n outerStyle.width = 0;\n childParams.width = state.width;\n }\n\n const handleRef = useForkRef(rootRef, ref);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n ref: handleRef,\n style: _extends({}, outerStyle, style)\n }, other, {\n children: state.height === null && state.width === null ? null : children(childParams)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridAutoSizer.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Default height to use for initial render; useful for SSR.\n * @default null\n */\n defaultHeight: PropTypes.number,\n\n /**\n * Default width to use for initial render; useful for SSR.\n * @default null\n */\n defaultWidth: PropTypes.number,\n\n /**\n * If `true`, disable dynamic :height property.\n * @default false\n */\n disableHeight: PropTypes.bool,\n\n /**\n * If `true`, disable dynamic :width property.\n * @default false\n */\n disableWidth: PropTypes.bool,\n\n /**\n * Nonce of the inlined stylesheet for Content Security Policy.\n */\n nonce: PropTypes.string,\n\n /**\n * Callback to be invoked on-resize.\n * @param {AutoSizerSize} size The grid's size.\n */\n onResize: PropTypes.func\n} : void 0;\nexport { GridAutoSizer };","import { createSelector } from '../../../utils/createSelector';\nimport { gridRowsLookupSelector } from '../rows/gridRowsSelector';\n/**\n * @category Sorting\n * @ignore - do not document.\n */\n\nexport const gridSortingStateSelector = state => state.sorting;\n/**\n * Get the id of the rows after the sorting process.\n * @category Sorting\n */\n\nexport const gridSortedRowIdsSelector = createSelector(gridSortingStateSelector, sortingState => sortingState.sortedRows);\n/**\n * Get the id and the model of the rows after the sorting process.\n * @category Sorting\n */\n\nexport const gridSortedRowEntriesSelector = createSelector(gridSortedRowIdsSelector, gridRowsLookupSelector, (sortedIds, idRowsLookup) => sortedIds.map(id => ({\n id,\n model: idRowsLookup[id]\n})));\n/**\n * Get the current sorting model.\n * @category Sorting\n */\n\nexport const gridSortModelSelector = createSelector(gridSortingStateSelector, sorting => sorting.sortModel);\n\n/**\n * @category Sorting\n * @ignore - do not document.\n */\nexport const gridSortColumnLookupSelector = createSelector(gridSortModelSelector, sortModel => {\n const result = sortModel.reduce((res, sortItem, index) => {\n res[sortItem.field] = {\n sortDirection: sortItem.sort,\n sortIndex: sortModel.length > 1 ? index + 1 : undefined\n };\n return res;\n }, {});\n return result;\n});","import { createSelector } from '../../../utils/createSelector';\nimport { gridSortedRowEntriesSelector } from '../sorting/gridSortingSelector';\nimport { gridColumnLookupSelector } from '../columns/gridColumnsSelector';\nimport { gridRowTreeDepthSelector, gridRowTreeSelector } from '../rows/gridRowsSelector';\n/**\n * @category Filtering\n */\n\nexport const gridFilterStateSelector = state => state.filter;\n/**\n * Get the current filter model.\n * @category Filtering\n */\n\nexport const gridFilterModelSelector = createSelector(gridFilterStateSelector, filterState => filterState.filterModel);\n/**\n * @category Filtering\n * @ignore - do not document.\n */\n\nexport const gridVisibleRowsLookupSelector = createSelector(gridFilterStateSelector, filterState => filterState.visibleRowsLookup);\n/**\n * @category Filtering\n * @ignore - do not document.\n */\n\nexport const gridFilteredRowsLookupSelector = createSelector(gridFilterStateSelector, filterState => filterState.filteredRowsLookup);\n/**\n * @category Filtering\n * @ignore - do not document.\n */\n\nexport const gridFilteredDescendantCountLookupSelector = createSelector(gridFilterStateSelector, filterState => filterState.filteredDescendantCountLookup);\n/**\n * Get the id and the model of the rows accessible after the filtering process.\n * Does not contain the collapsed children.\n * @category Filtering\n */\n\nexport const gridVisibleSortedRowEntriesSelector = createSelector(gridVisibleRowsLookupSelector, gridSortedRowEntriesSelector, (visibleRowsLookup, sortedRows) => sortedRows.filter(row => visibleRowsLookup[row.id] !== false));\n/**\n * Get the id of the rows accessible after the filtering process.\n * Does not contain the collapsed children.\n * @category Filtering\n */\n\nexport const gridVisibleSortedRowIdsSelector = createSelector(gridVisibleSortedRowEntriesSelector, visibleSortedRowEntries => visibleSortedRowEntries.map(row => row.id));\n/**\n * Get the id and the model of the rows accessible after the filtering process.\n * Contains the collapsed children.\n * @category Filtering\n */\n\nexport const gridFilteredSortedRowEntriesSelector = createSelector(gridFilteredRowsLookupSelector, gridSortedRowEntriesSelector, (filteredRowsLookup, sortedRows) => sortedRows.filter(row => filteredRowsLookup[row.id] !== false));\n/**\n * Get the id of the rows accessible after the filtering process.\n * Contains the collapsed children.\n * @category Filtering\n */\n\nexport const gridFilteredSortedRowIdsSelector = createSelector(gridFilteredSortedRowEntriesSelector, filteredSortedRowEntries => filteredSortedRowEntries.map(row => row.id));\n/**\n * @category Filtering\n * @deprecated Use `gridVisibleSortedRowIdsSelector` instead\n * @ignore - do not document.\n * TODO: Add deprecation warning once we have the new selectors without the \"visible\" keyword.\n */\n\nexport const gridVisibleRowsSelector = gridVisibleSortedRowIdsSelector;\n/**\n * Get the id and the model of the top level rows accessible after the filtering process.\n * @category Filtering\n */\n\nexport const gridVisibleSortedTopLevelRowEntriesSelector = createSelector(gridVisibleSortedRowEntriesSelector, gridRowTreeSelector, gridRowTreeDepthSelector, (visibleSortedRows, rowTree, rowTreeDepth) => {\n if (rowTreeDepth < 2) {\n return visibleSortedRows;\n }\n\n return visibleSortedRows.filter(row => {\n var _rowTree$row$id;\n\n return ((_rowTree$row$id = rowTree[row.id]) == null ? void 0 : _rowTree$row$id.depth) === 0;\n });\n});\n/**\n * Get the amount of rows accessible after the filtering process.\n * @category Filtering\n */\n\nexport const gridVisibleRowCountSelector = createSelector(gridVisibleSortedRowEntriesSelector, visibleSortedRows => visibleSortedRows.length);\n/**\n * Get the amount of top level rows accessible after the filtering process.\n * @category Filtering\n */\n\nexport const gridVisibleTopLevelRowCountSelector = createSelector(gridVisibleSortedTopLevelRowEntriesSelector, visibleSortedTopLevelRows => visibleSortedTopLevelRows.length);\n/**\n * @category Filtering\n * @ignore - do not document.\n */\n\nexport const gridFilterActiveItemsSelector = createSelector(gridFilterModelSelector, gridColumnLookupSelector, (filterModel, columnLookup) => {\n var _filterModel$items;\n\n return (_filterModel$items = filterModel.items) == null ? void 0 : _filterModel$items.filter(item => {\n var _column$filterOperato, _item$value;\n\n if (!item.columnField) {\n return false;\n }\n\n const column = columnLookup[item.columnField];\n\n if (!(column != null && column.filterOperators) || (column == null ? void 0 : (_column$filterOperato = column.filterOperators) == null ? void 0 : _column$filterOperato.length) === 0) {\n return false;\n }\n\n const filterOperator = column.filterOperators.find(operator => operator.value === item.operatorValue);\n\n if (!filterOperator) {\n return false;\n }\n\n return !filterOperator.InputComponent || item.value != null && ((_item$value = item.value) == null ? void 0 : _item$value.toString()) !== '';\n });\n});\n\n/**\n * @category Filtering\n * @ignore - do not document.\n */\nexport const gridFilterActiveItemsLookupSelector = createSelector(gridFilterActiveItemsSelector, activeFilters => {\n const result = activeFilters.reduce((res, filterItem) => {\n if (!res[filterItem.columnField]) {\n res[filterItem.columnField] = [filterItem];\n } else {\n res[filterItem.columnField].push(filterItem);\n }\n\n return res;\n }, {});\n return result;\n});","import { createSelector } from '../../../utils/createSelector';\nexport const gridDensitySelector = state => state.density;\nexport const gridDensityValueSelector = createSelector(gridDensitySelector, density => density.value);\nexport const gridDensityRowHeightSelector = createSelector(gridDensitySelector, density => density.rowHeight);\nexport const gridDensityHeaderHeightSelector = createSelector(gridDensitySelector, density => density.headerHeight);\nexport const gridDensityFactorSelector = createSelector(gridDensitySelector, density => density.factor);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';\nimport { useGridSelector } from '../../hooks/utils/useGridSelector';\nimport { gridVisibleRowCountSelector } from '../../hooks/features/filter/gridFilterSelector';\nimport { gridRowCountSelector } from '../../hooks/features/rows/gridRowsSelector';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { gridDensityHeaderHeightSelector } from '../../hooks/features/density/densitySelector';\nimport { GridEvents } from '../../models/events';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction GridOverlayWrapper(props) {\n var _viewportInnerSize$he, _viewportInnerSize$wi;\n\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const headerHeight = useGridSelector(apiRef, gridDensityHeaderHeightSelector);\n const [viewportInnerSize, setViewportInnerSize] = React.useState(() => {\n var _apiRef$current$getRo, _apiRef$current$getRo2;\n\n return (_apiRef$current$getRo = (_apiRef$current$getRo2 = apiRef.current.getRootDimensions()) == null ? void 0 : _apiRef$current$getRo2.viewportInnerSize) != null ? _apiRef$current$getRo : null;\n });\n const handleViewportSizeChange = React.useCallback(() => {\n var _apiRef$current$getRo3, _apiRef$current$getRo4;\n\n setViewportInnerSize((_apiRef$current$getRo3 = (_apiRef$current$getRo4 = apiRef.current.getRootDimensions()) == null ? void 0 : _apiRef$current$getRo4.viewportInnerSize) != null ? _apiRef$current$getRo3 : null);\n }, [apiRef]);\n useEnhancedEffect(() => {\n return apiRef.current.subscribeEvent(GridEvents.viewportInnerSizeChange, handleViewportSizeChange);\n }, [apiRef, handleViewportSizeChange]);\n let height = (_viewportInnerSize$he = viewportInnerSize == null ? void 0 : viewportInnerSize.height) != null ? _viewportInnerSize$he : 0;\n\n if (rootProps.autoHeight && height === 0) {\n height = 'auto';\n }\n\n if (!viewportInnerSize) {\n return null;\n }\n\n return /*#__PURE__*/_jsx(\"div\", _extends({\n style: {\n height,\n width: (_viewportInnerSize$wi = viewportInnerSize == null ? void 0 : viewportInnerSize.width) != null ? _viewportInnerSize$wi : 0,\n position: 'absolute',\n top: headerHeight,\n bottom: height === 'auto' ? 0 : undefined\n }\n }, props));\n}\n\nexport function GridOverlays() {\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const totalRowCount = useGridSelector(apiRef, gridRowCountSelector);\n const visibleRowCount = useGridSelector(apiRef, gridVisibleRowCountSelector);\n const showNoRowsOverlay = !rootProps.loading && totalRowCount === 0;\n const showNoResultsOverlay = !rootProps.loading && totalRowCount > 0 && visibleRowCount === 0;\n let overlay = null;\n\n if (showNoRowsOverlay) {\n var _rootProps$components;\n\n overlay = /*#__PURE__*/_jsx(rootProps.components.NoRowsOverlay, _extends({}, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.noRowsOverlay));\n }\n\n if (showNoResultsOverlay) {\n var _rootProps$components2;\n\n overlay = /*#__PURE__*/_jsx(rootProps.components.NoResultsOverlay, _extends({}, (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.noResultsOverlay));\n }\n\n if (rootProps.loading) {\n var _rootProps$components3;\n\n overlay = /*#__PURE__*/_jsx(rootProps.components.LoadingOverlay, _extends({}, (_rootProps$components3 = rootProps.componentsProps) == null ? void 0 : _rootProps$components3.loadingOverlay));\n }\n\n if (overlay === null) {\n return null;\n }\n\n return /*#__PURE__*/_jsx(GridOverlayWrapper, {\n children: overlay\n });\n}","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GridEvents } from '../../models/events';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { GridMainContainer } from '../containers/GridMainContainer';\nimport { GridAutoSizer } from '../GridAutoSizer';\nimport { GridOverlays } from './GridOverlays';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { useGridSelector } from '../../hooks/utils/useGridSelector';\nimport { gridDensityHeaderHeightSelector } from '../../hooks/features/density/densitySelector';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nfunction GridBody(props) {\n const {\n children,\n VirtualScrollerComponent,\n ColumnHeadersComponent\n } = props;\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const headerHeight = useGridSelector(apiRef, gridDensityHeaderHeightSelector);\n const [isVirtualizationDisabled, setIsVirtualizationDisabled] = React.useState(rootProps.disableVirtualization);\n const disableVirtualization = React.useCallback(() => {\n setIsVirtualizationDisabled(true);\n }, []);\n const enableVirtualization = React.useCallback(() => {\n setIsVirtualizationDisabled(false);\n }, []); // The `useGridApiMethod` hook can't be used here, because it only installs the\n // method if it doesn't exist yet. Once installed, it's never updated again.\n // This break the methods above, since their closure comes from the first time\n // they were installed. Which means that calling `setIsVirtualizationDisabled`\n // will trigger a re-render, but it won't update the state. That can be solved\n // by migrating the virtualization status to the global state.\n\n apiRef.current.unstable_disableVirtualization = disableVirtualization;\n apiRef.current.unstable_enableVirtualization = enableVirtualization;\n const columnHeadersRef = React.useRef(null);\n const columnsContainerRef = React.useRef(null);\n const windowRef = React.useRef(null);\n const renderingZoneRef = React.useRef(null);\n apiRef.current.columnHeadersContainerElementRef = columnsContainerRef;\n apiRef.current.columnHeadersElementRef = columnHeadersRef;\n apiRef.current.windowRef = windowRef; // TODO rename, it's not attached to the window anymore\n\n apiRef.current.renderingZoneRef = renderingZoneRef; // TODO remove, nobody should have access to internal parts of the virtualization\n\n const handleResize = React.useCallback(size => {\n apiRef.current.publishEvent(GridEvents.resize, size);\n }, [apiRef]);\n return /*#__PURE__*/_jsxs(GridMainContainer, {\n children: [/*#__PURE__*/_jsx(GridOverlays, {}), /*#__PURE__*/_jsx(ColumnHeadersComponent, {\n ref: columnsContainerRef,\n innerRef: columnHeadersRef\n }), /*#__PURE__*/_jsx(GridAutoSizer, {\n nonce: rootProps.nonce,\n disableHeight: rootProps.autoHeight,\n onResize: handleResize,\n children: size => {\n const style = {\n width: size.width,\n // If `autoHeight` is on, there will be no height value.\n // In this case, let the container to grow whatever it needs.\n height: size.height ? size.height - headerHeight : 'auto',\n marginTop: headerHeight\n };\n return /*#__PURE__*/_jsx(VirtualScrollerComponent, {\n ref: windowRef,\n style: style,\n disableVirtualization: isVirtualizationDisabled\n });\n }\n }), children]\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridBody.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n children: PropTypes.node,\n ColumnHeadersComponent: PropTypes.elementType.isRequired,\n VirtualScrollerComponent: PropTypes.elementType.isRequired\n} : void 0;\nexport { GridBody };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function GridFooterPlaceholder() {\n var _rootProps$components;\n\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const footerRef = React.useRef(null);\n apiRef.current.footerRef = footerRef;\n\n if (rootProps.hideFooter) {\n return null;\n }\n\n return /*#__PURE__*/_jsx(\"div\", {\n ref: footerRef,\n children: /*#__PURE__*/_jsx(rootProps.components.Footer, _extends({}, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.footer))\n });\n}","import * as React from 'react';\nimport { GridApiContext } from '../components/GridApiContext';\nimport { GridRootPropsContext } from './GridRootPropsContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const GridContextProvider = ({\n apiRef,\n props,\n children\n}) => {\n return /*#__PURE__*/_jsx(GridRootPropsContext.Provider, {\n value: props,\n children: /*#__PURE__*/_jsx(GridApiContext.Provider, {\n value: apiRef,\n children: children\n })\n });\n};","export function isNumber(value) {\n return typeof value === 'number';\n}\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isObject(value) {\n return typeof value === 'object';\n}\nexport function localStorageAvailable() {\n try {\n // Incognito mode might reject access to the localStorage for security reasons.\n // window isn't defined on Node.js\n // https://stackoverflow.com/questions/16427636/check-if-localstorage-is-available\n const key = '__some_random_key_you_are_not_going_to_use__';\n window.localStorage.setItem(key, key);\n window.localStorage.removeItem(key);\n return true;\n } catch (err) {\n return false;\n }\n}\nexport function escapeRegExp(value) {\n return value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n/**\n * Follows the CSS specification behavior for min and max\n * If min > max, then the min have priority\n */\n\nexport const clamp = (value, min, max) => Math.max(min, Math.min(max, value));\n/**\n * Based on `fast-deep-equal`\n *\n * MIT License\n *\n * Copyright (c) 2017 Evgeny Poberezkin\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * We only type the public interface to avoid dozens of `as` in the function.\n */\n\nexport function isDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (a.constructor !== b.constructor) {\n return false;\n }\n\n if (Array.isArray(a)) {\n const length = a.length;\n\n if (length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < length; i += 1) {\n if (!isDeepEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n if (a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) {\n return false;\n }\n\n const entriesA = Array.from(a.entries());\n\n for (let i = 0; i < entriesA.length; i += 1) {\n if (!b.has(entriesA[i][0])) {\n return false;\n }\n }\n\n for (let i = 0; i < entriesA.length; i += 1) {\n const entryA = entriesA[i];\n\n if (!isDeepEqual(entryA[1], b.get(entryA[0]))) {\n return false;\n }\n }\n\n return true;\n }\n\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) {\n return false;\n }\n\n const entries = Array.from(a.entries());\n\n for (let i = 0; i < entries.length; i += 1) {\n if (!b.has(entries[i][0])) {\n return false;\n }\n }\n\n return true;\n }\n\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n const length = a.length;\n\n if (length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < length; i += 1) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) {\n return a.source === b.source && a.flags === b.flags;\n }\n\n if (a.valueOf !== Object.prototype.valueOf) {\n return a.valueOf() === b.valueOf();\n }\n\n if (a.toString !== Object.prototype.toString) {\n return a.toString() === b.toString();\n }\n\n const keys = Object.keys(a);\n const length = keys.length;\n\n if (length !== Object.keys(b).length) {\n return false;\n }\n\n for (let i = 0; i < length; i += 1) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n\n for (let i = 0; i < length; i += 1) {\n const key = keys[i];\n\n if (!isDeepEqual(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n } // true if both NaN, false otherwise\n // eslint-disable-next-line no-self-compare\n\n\n return a !== a && b !== b;\n}","import * as React from 'react';\nimport { localStorageAvailable } from '../../utils/utils';\nconst forceDebug = localStorageAvailable() && window.localStorage.getItem('DEBUG') != null;\n\nconst noop = () => {};\n\nconst noopLogger = {\n debug: noop,\n info: noop,\n warn: noop,\n error: noop\n};\nconst LOG_LEVELS = ['debug', 'info', 'warn', 'error'];\n\nfunction getAppender(name, logLevel, appender = console) {\n const minLogLevelIdx = LOG_LEVELS.indexOf(logLevel);\n\n if (minLogLevelIdx === -1) {\n throw new Error(`MUI: Log level ${logLevel} not recognized.`);\n }\n\n const logger = LOG_LEVELS.reduce((loggerObj, method, idx) => {\n if (idx >= minLogLevelIdx) {\n loggerObj[method] = (...args) => {\n const [message, ...other] = args;\n appender[method](`MUI: ${name} - ${message}`, ...other);\n };\n } else {\n loggerObj[method] = noop;\n }\n\n return loggerObj;\n }, {});\n return logger;\n}\n\nexport const useGridLoggerFactory = (apiRef, props) => {\n apiRef.current.getLogger = React.useCallback(name => {\n if (forceDebug) {\n return getAppender(name, 'debug', props.logger);\n }\n\n if (!props.logLevel) {\n return noopLogger;\n }\n\n return getAppender(name, props.logLevel.toString(), props.logger);\n }, [props.logLevel, props.logger]);\n};","import * as React from 'react';\nexport function useGridApiMethod(apiRef, apiMethods, // TODO: Remove `apiName\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\napiName) {\n const apiMethodsRef = React.useRef(apiMethods);\n const [apiMethodsNames] = React.useState(Object.keys(apiMethods));\n const installMethods = React.useCallback(() => {\n if (!apiRef.current) {\n return;\n }\n\n apiMethodsNames.forEach(methodName => {\n if (!apiRef.current.hasOwnProperty(methodName)) {\n apiRef.current[methodName] = (...args) => apiMethodsRef.current[methodName](...args);\n }\n });\n }, [apiMethodsNames, apiRef]);\n React.useEffect(() => {\n apiMethodsRef.current = apiMethods;\n }, [apiMethods]);\n React.useEffect(() => {\n installMethods();\n }, [installMethods]);\n installMethods();\n}","import * as React from 'react';\nimport { TimerBasedCleanupTracking } from '../../utils/cleanupTracking/TimerBasedCleanupTracking';\nimport { FinalizationRegistryBasedCleanupTracking } from '../../utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking';\n\n/**\n * Signal to the underlying logic what version of the public component API\n * of the data grid is exposed.\n */\nvar GridSignature; // We use class to make it easier to detect in heap snapshots by name\n\n(function (GridSignature) {\n GridSignature[\"DataGrid\"] = \"DataGrid\";\n GridSignature[\"DataGridPro\"] = \"DataGridPro\";\n})(GridSignature || (GridSignature = {}));\n\nclass ObjectToBeRetainedByReact {} // Based on https://github.com/Bnaya/use-dispose-uncommitted/blob/main/src/finalization-registry-based-impl.ts\n// Check https://github.com/facebook/react/issues/15317 to get more information\n\n\nexport function createUseGridApiEventHandler(registry) {\n let cleanupTokensCounter = 0;\n return function useGridApiEventHandler(apiRef, eventName, handler, options) {\n const [objectRetainedByReact] = React.useState(new ObjectToBeRetainedByReact());\n const subscription = React.useRef(null);\n const handlerRef = React.useRef();\n handlerRef.current = handler;\n const cleanupTokenRef = React.useRef(null);\n\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler = (params, event, details) => {\n if (!event.defaultMuiPrevented) {\n var _handlerRef$current;\n\n (_handlerRef$current = handlerRef.current) == null ? void 0 : _handlerRef$current.call(handlerRef, params, event, details);\n }\n };\n\n subscription.current = apiRef.current.subscribeEvent(eventName, enhancedHandler, options);\n cleanupTokensCounter += 1;\n cleanupTokenRef.current = {\n cleanupToken: cleanupTokensCounter\n };\n registry.register(objectRetainedByReact, // The callback below will be called once this reference stops being retained\n () => {\n var _subscription$current;\n\n (_subscription$current = subscription.current) == null ? void 0 : _subscription$current.call(subscription);\n subscription.current = null;\n cleanupTokenRef.current = null;\n }, cleanupTokenRef.current);\n } else if (!handlerRef.current && subscription.current) {\n subscription.current();\n subscription.current = null;\n\n if (cleanupTokenRef.current) {\n registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n }\n\n React.useEffect(() => {\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler = (params, event, details) => {\n if (!event.defaultMuiPrevented) {\n var _handlerRef$current2;\n\n (_handlerRef$current2 = handlerRef.current) == null ? void 0 : _handlerRef$current2.call(handlerRef, params, event, details);\n }\n };\n\n subscription.current = apiRef.current.subscribeEvent(eventName, enhancedHandler, options);\n }\n\n if (cleanupTokenRef.current && registry) {\n // If the effect was called, it means that this render was committed\n // so we can trust the cleanup function to remove the listener.\n registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n\n return () => {\n var _subscription$current2;\n\n (_subscription$current2 = subscription.current) == null ? void 0 : _subscription$current2.call(subscription);\n subscription.current = null;\n };\n }, [apiRef, eventName, options]);\n };\n}\nconst registry = typeof FinalizationRegistry !== 'undefined' ? new FinalizationRegistryBasedCleanupTracking() : new TimerBasedCleanupTracking(); // eslint-disable-next-line @typescript-eslint/naming-convention\n\nexport const unstable_resetCleanupTracking = () => registry.reset();\nexport const useGridApiEventHandler = createUseGridApiEventHandler(registry);\nconst optionsSubscriberOptions = {\n isFirst: true\n};\nexport function useGridApiOptionHandler(apiRef, eventName, handler) {\n // Validate that only one per event name?\n useGridApiEventHandler(apiRef, eventName, handler, optionsSubscriberOptions);\n}\nexport { GridSignature };","export class FinalizationRegistryBasedCleanupTracking {\n constructor() {\n this.registry = new FinalizationRegistry(unsubscribe => {\n if (typeof unsubscribe === 'function') {\n unsubscribe();\n }\n });\n }\n\n register(object, unsubscribe, unregisterToken) {\n this.registry.register(object, unsubscribe, unregisterToken);\n }\n\n unregister(unregisterToken) {\n this.registry.unregister(unregisterToken);\n } // eslint-disable-next-line class-methods-use-this\n\n\n reset() {}\n\n}","// If no effect ran after this amount of time, we assume that the render was not committed by React\nconst CLEANUP_TIMER_LOOP_MILLIS = 1000;\nexport class TimerBasedCleanupTracking {\n constructor(timeout = CLEANUP_TIMER_LOOP_MILLIS) {\n this.timeouts = new Map();\n this.cleanupTimeout = CLEANUP_TIMER_LOOP_MILLIS;\n this.cleanupTimeout = timeout;\n }\n\n register(object, unsubscribe, unregisterToken) {\n if (!this.timeouts) {\n this.timeouts = new Map();\n }\n\n const timeout = setTimeout(() => {\n if (typeof unsubscribe === 'function') {\n unsubscribe();\n }\n\n this.timeouts.delete(unregisterToken.cleanupToken);\n }, this.cleanupTimeout);\n this.timeouts.set(unregisterToken.cleanupToken, timeout);\n }\n\n unregister(unregisterToken) {\n const timeout = this.timeouts.get(unregisterToken.cleanupToken);\n\n if (timeout) {\n this.timeouts.delete(unregisterToken.cleanupToken);\n clearTimeout(timeout);\n }\n }\n\n reset() {\n if (this.timeouts) {\n this.timeouts.forEach((value, key) => {\n this.unregister({\n cleanupToken: key\n });\n });\n this.timeouts = undefined;\n }\n }\n\n}","// Used https://gist.github.com/mudge/5830382 as a starting point.\n// See https://github.com/browserify/events/blob/master/events.js for\n// the Node.js (https://nodejs.org/api/events.html) polyfill used by webpack.\nexport class EventManager {\n constructor() {\n this.maxListeners = 10;\n this.warnOnce = false;\n this.events = {};\n }\n\n on(eventName, listener, options = {}) {\n let collection = this.events[eventName];\n\n if (!collection) {\n collection = {\n highPriority: new Map(),\n regular: new Map()\n };\n this.events[eventName] = collection;\n }\n\n if (options.isFirst) {\n collection.highPriority.set(listener, true);\n } else {\n collection.regular.set(listener, true);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const collectionSize = collection.highPriority.size + collection.regular.size;\n\n if (collectionSize > this.maxListeners && !this.warnOnce) {\n this.warnOnce = true;\n console.warn([`Possible EventEmitter memory leak detected. ${collectionSize} ${eventName} listeners added.`, `Use emitter.setMaxListeners() to increase limit.`].join('\\n'));\n }\n }\n }\n\n removeListener(eventName, listener) {\n if (this.events[eventName]) {\n this.events[eventName].regular.delete(listener);\n this.events[eventName].highPriority.delete(listener);\n }\n }\n\n removeAllListeners() {\n this.events = {};\n }\n\n emit(eventName, ...args) {\n const collection = this.events[eventName];\n\n if (!collection) {\n return;\n }\n\n const highPriorityListeners = Array.from(collection.highPriority.keys());\n const regularListeners = Array.from(collection.regular.keys());\n\n for (let i = highPriorityListeners.length - 1; i >= 0; i -= 1) {\n const listener = highPriorityListeners[i];\n\n if (collection.highPriority.has(listener)) {\n listener.apply(this, args);\n }\n }\n\n for (let i = 0; i < regularListeners.length; i += 1) {\n const listener = regularListeners[i];\n\n if (collection.regular.has(listener)) {\n listener.apply(this, args);\n }\n }\n }\n\n once(eventName, listener) {\n // eslint-disable-next-line consistent-this\n const that = this;\n this.on(eventName, function oneTimeListener(...args) {\n that.removeListener(eventName, oneTimeListener);\n listener.apply(that, args);\n });\n }\n\n}","import * as React from 'react';\nimport { GridEvents } from '../../models/events';\nimport { useGridApiMethod } from '../utils/useGridApiMethod';\nimport { GridSignature } from '../utils/useGridApiEventHandler';\nimport { EventManager } from '../../utils/EventManager';\n\nconst isSyntheticEvent = event => {\n return event.isPropagationStopped !== undefined;\n};\n\nlet globalId = 0;\nexport function useGridApiInitialization(inputApiRef, props) {\n const apiRef = React.useRef();\n\n if (!apiRef.current) {\n apiRef.current = {\n unstable_eventManager: new EventManager(),\n state: {},\n instanceId: globalId\n };\n globalId += 1;\n }\n\n React.useImperativeHandle(inputApiRef, () => apiRef.current, [apiRef]);\n const publishEvent = React.useCallback((...args) => {\n const [name, params, event = {}] = args;\n event.defaultMuiPrevented = false;\n\n if (isSyntheticEvent(event) && event.isPropagationStopped()) {\n return;\n }\n\n const details = props.signature === GridSignature.DataGridPro ? {\n api: apiRef.current\n } : {};\n apiRef.current.unstable_eventManager.emit(name, params, event, details);\n }, [apiRef, props.signature]);\n const subscribeEvent = React.useCallback((event, handler, options) => {\n apiRef.current.unstable_eventManager.on(event, handler, options);\n const api = apiRef.current;\n return () => {\n api.unstable_eventManager.removeListener(event, handler);\n };\n }, [apiRef]);\n const showError = React.useCallback(args => {\n apiRef.current.publishEvent(GridEvents.componentError, args);\n }, [apiRef]);\n useGridApiMethod(apiRef, {\n subscribeEvent,\n publishEvent,\n showError\n }, 'GridCoreApi');\n React.useEffect(() => {\n const api = apiRef.current;\n return () => {\n api.publishEvent(GridEvents.unmount);\n };\n }, [apiRef]);\n return apiRef;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nexport default 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}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _toPropertyKey from \"@babel/runtime/helpers/esm/toPropertyKey\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { GridEvents } from '../../../models/events';\n/**\n * TODO: Rename `useGridPipProcessing`\n */\n\nexport const useGridPreProcessing = apiRef => {\n const preProcessorsRef = React.useRef({});\n const registerPreProcessor = React.useCallback((group, id, callback) => {\n if (!preProcessorsRef.current[group]) {\n preProcessorsRef.current[group] = {};\n }\n\n const preProcessors = preProcessorsRef.current[group];\n const oldCallback = preProcessors[id];\n\n if (oldCallback !== callback) {\n preProcessorsRef.current[group] = _extends({}, preProcessors, {\n [id]: callback\n });\n apiRef.current.publishEvent(GridEvents.preProcessorRegister, group);\n }\n\n return () => {\n const _ref = preProcessorsRef.current[group],\n otherProcessors = _objectWithoutPropertiesLoose(_ref, [id].map(_toPropertyKey));\n\n preProcessorsRef.current[group] = otherProcessors;\n apiRef.current.publishEvent(GridEvents.preProcessorUnregister, group);\n };\n }, [apiRef]);\n const applyPreProcessors = React.useCallback((...args) => {\n const [group, value, params] = args;\n\n if (!preProcessorsRef.current[group]) {\n return value;\n }\n\n const preProcessors = Object.values(preProcessorsRef.current[group]);\n return preProcessors.reduce((acc, preProcessor) => {\n return preProcessor(acc, params);\n }, value);\n }, []);\n const preProcessingApi = {\n unstable_registerPreProcessor: registerPreProcessor,\n unstable_applyPreProcessors: applyPreProcessors\n };\n useGridApiMethod(apiRef, preProcessingApi, 'GridPreProcessing');\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _toPropertyKey from \"@babel/runtime/helpers/esm/toPropertyKey\";\nimport * as React from 'react';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { GridEvents } from '../../../models/events';\nexport const GRID_DEFAULT_STRATEGY = 'none';\nexport const GRID_STRATEGIES_PROCESSORS = {\n rowTreeCreation: 'rowTree',\n filtering: 'rowTree',\n sorting: 'rowTree'\n};\n\n/**\n * Implements a variant of the Strategy Pattern (see https://en.wikipedia.org/wiki/Strategy_pattern)\n *\n * Some plugins contain custom logic that must only be run if the right strategy is active.\n * For instance, the tree data plugin has:\n * - custom row tree creation algorithm.\n * - custom sorting algorithm.\n * - custom filtering algorithm.\n *\n * These plugins must use:\n * - `apiRef.current.unstable_registerStrategyProcessor` to register their processors.\n * - `apiRef.current.unstable_setStrategyAvailability` to tell if their strategy can be used.\n *\n * Some hooks need to run the custom logic of the active strategy.\n * For instance, the `useGridFiltering` wants to run:\n * - the tree data filtering if the tree data is the current way of grouping rows.\n * - the row grouping filtering if the row grouping is the current way of grouping rows.\n * - the flat filtering if there is no grouping of the rows (equivalent to the \"none\" strategy).\n *\n * These hooks must use:\n * - `apiRef.current.unstable_applyStrategyProcessor` to run a processor.\n * - `GridEvents.strategyAvailabilityChange` to update something when the active strategy changes.\n * Warning: Be careful not to apply the processor several times.\n * For instance `GridEvents.rowsSet` is fired by `useGridRows` whenever the active strategy changes.\n * So listening to both would most likely run your logic twice.\n * - `GridEvents.activeStrategyProcessorChange` to update something when the processor of the active strategy changes\n *\n * Each processor name is part of a strategy group which can only have one active strategy at the time.\n */\nexport const useGridStrategyProcessing = apiRef => {\n const availableStrategies = React.useRef(new Map());\n const strategiesCache = React.useRef({});\n const registerStrategyProcessor = React.useCallback((strategyName, processorName, processor) => {\n const cleanup = () => {\n const _ref = strategiesCache.current[processorName],\n otherProcessors = _objectWithoutPropertiesLoose(_ref, [strategyName].map(_toPropertyKey));\n\n strategiesCache.current[processorName] = otherProcessors;\n };\n\n if (!strategiesCache.current[processorName]) {\n strategiesCache.current[processorName] = {};\n }\n\n const groupPreProcessors = strategiesCache.current[processorName];\n const previousProcessor = groupPreProcessors[strategyName];\n groupPreProcessors[strategyName] = processor;\n\n if (!previousProcessor || previousProcessor === processor) {\n return cleanup;\n }\n\n if (strategyName === apiRef.current.unstable_getActiveStrategy(GRID_STRATEGIES_PROCESSORS[processorName])) {\n apiRef.current.publishEvent(GridEvents.activeStrategyProcessorChange, processorName);\n }\n\n return cleanup;\n }, [apiRef]);\n const applyStrategyProcessor = React.useCallback((processorName, params) => {\n const activeStrategy = apiRef.current.unstable_getActiveStrategy(GRID_STRATEGIES_PROCESSORS[processorName]);\n\n if (activeStrategy == null) {\n throw new Error(\"Can't apply a strategy processor before defining an active strategy\");\n }\n\n const groupCache = strategiesCache.current[processorName];\n\n if (!groupCache || !groupCache[activeStrategy]) {\n throw new Error(`No processor found for processor \"${processorName}\" on strategy \"${activeStrategy}\"`);\n }\n\n const processor = groupCache[activeStrategy];\n return processor(params);\n }, [apiRef]);\n const getActiveStrategy = React.useCallback(strategyGroup => {\n var _availableStrategyEnt;\n\n const strategyEntries = Array.from(availableStrategies.current.entries());\n const availableStrategyEntry = strategyEntries.find(([, strategy]) => {\n if (strategy.group !== strategyGroup) {\n return false;\n }\n\n return strategy.isAvailable();\n });\n return (_availableStrategyEnt = availableStrategyEntry == null ? void 0 : availableStrategyEntry[0]) != null ? _availableStrategyEnt : GRID_DEFAULT_STRATEGY;\n }, []);\n const setStrategyAvailability = React.useCallback((strategyGroup, strategyName, isAvailable) => {\n availableStrategies.current.set(strategyName, {\n group: strategyGroup,\n isAvailable\n });\n apiRef.current.publishEvent(GridEvents.strategyAvailabilityChange);\n }, [apiRef]);\n const strategyProcessingApi = {\n unstable_registerStrategyProcessor: registerStrategyProcessor,\n unstable_applyStrategyProcessor: applyStrategyProcessor,\n unstable_getActiveStrategy: getActiveStrategy,\n unstable_setStrategyAvailability: setStrategyAvailability\n };\n useGridApiMethod(apiRef, strategyProcessingApi, 'GridStrategyProcessing');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"stateId\"];\nimport * as React from 'react';\nimport { GridSignature } from '../utils/useGridApiEventHandler';\nimport { GridEvents } from '../../models/events';\nimport { useGridApiMethod } from '../utils';\nimport { isFunction } from '../../utils/utils';\nexport const useGridStateInitialization = (apiRef, props) => {\n const controlStateMapRef = React.useRef({});\n const [, rawForceUpdate] = React.useState();\n const updateControlState = React.useCallback(controlStateItem => {\n const {\n stateId\n } = controlStateItem,\n others = _objectWithoutPropertiesLoose(controlStateItem, _excluded);\n\n controlStateMapRef.current[stateId] = _extends({}, others, {\n stateId\n });\n }, []);\n const setState = React.useCallback(state => {\n let newState;\n\n if (isFunction(state)) {\n newState = state(apiRef.current.state);\n } else {\n newState = state;\n }\n\n if (apiRef.current.state === newState) {\n return false;\n }\n\n let ignoreSetState = false; // Apply the control state constraints\n\n const updatedControlStateIds = [];\n Object.keys(controlStateMapRef.current).forEach(stateId => {\n const controlState = controlStateMapRef.current[stateId];\n const oldSubState = controlState.stateSelector(apiRef.current.state, apiRef.current.instanceId);\n const newSubState = controlState.stateSelector(newState, apiRef.current.instanceId);\n\n if (newSubState === oldSubState) {\n return;\n }\n\n updatedControlStateIds.push({\n stateId: controlState.stateId,\n hasPropChanged: newSubState !== controlState.propModel\n }); // The state is controlled, the prop should always win\n\n if (controlState.propModel !== undefined && newSubState !== controlState.propModel) {\n ignoreSetState = true;\n }\n });\n\n if (updatedControlStateIds.length > 1) {\n // Each hook modify its own state, and it should not leak\n // Events are here to forward to other hooks and apply changes.\n // You are trying to update several states in a no isolated way.\n throw new Error(`You're not allowed to update several sub-state in one transaction. You already updated ${updatedControlStateIds[0].stateId}, therefore, you're not allowed to update ${updatedControlStateIds.map(el => el.stateId).join(', ')} in the same transaction.`);\n }\n\n if (!ignoreSetState) {\n // We always assign it as we mutate rows for perf reason.\n apiRef.current.state = newState;\n\n if (apiRef.current.publishEvent) {\n apiRef.current.publishEvent(GridEvents.stateChange, newState);\n }\n }\n\n if (updatedControlStateIds.length === 1) {\n const {\n stateId,\n hasPropChanged\n } = updatedControlStateIds[0];\n const controlState = controlStateMapRef.current[stateId];\n const model = controlState.stateSelector(newState, apiRef.current.instanceId);\n\n if (controlState.propOnChange && hasPropChanged) {\n const details = props.signature === GridSignature.DataGridPro ? {\n api: apiRef.current\n } : {};\n controlState.propOnChange(model, details);\n }\n\n if (!ignoreSetState) {\n apiRef.current.publishEvent(controlState.changeEvent, model);\n }\n }\n\n return !ignoreSetState;\n }, [apiRef, props.signature]);\n const forceUpdate = React.useCallback(() => rawForceUpdate(() => apiRef.current.state), [apiRef]);\n const stateApi = {\n setState,\n forceUpdate,\n unstable_updateControlState: updateControlState\n };\n useGridApiMethod(apiRef, stateApi, 'GridStateApi');\n};","import { useGridLoggerFactory } from './useGridLoggerFactory';\nimport { useGridApiInitialization } from './useGridApiInitialization';\nimport { useGridErrorHandler } from './useGridErrorHandler';\nimport { useGridLocaleText } from './useGridLocaleText';\nimport { useGridPreProcessing } from './preProcessing';\nimport { useGridStrategyProcessing } from './strategyProcessing';\nimport { useGridStateInitialization } from './useGridStateInitialization';\n/**\n * Initialize the technical pieces of the DataGrid (logger, state, ...) that any DataGrid implementation needs\n */\n\nexport const useGridInitialization = (inputApiRef, props) => {\n const apiRef = useGridApiInitialization(inputApiRef, props);\n useGridLoggerFactory(apiRef, props);\n useGridErrorHandler(apiRef, props);\n useGridStateInitialization(apiRef, props);\n useGridPreProcessing(apiRef);\n useGridStrategyProcessing(apiRef);\n useGridLocaleText(apiRef, props);\n return apiRef;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridEvents } from '../../models/events';\nimport { useGridApiEventHandler } from '../utils/useGridApiEventHandler';\nexport function useGridErrorHandler(apiRef, props) {\n const handleError = React.useCallback(args => {\n // We are handling error here, to set up the handler as early as possible and be able to catch error thrown at init time.\n apiRef.current.setState(state => _extends({}, state, {\n error: args\n }));\n }, [apiRef]);\n React.useEffect(() => {\n handleError(props.error);\n }, [handleError, props.error]);\n useGridApiEventHandler(apiRef, GridEvents.componentError, handleError);\n}","import * as React from 'react';\nimport { useGridApiMethod } from '../utils/useGridApiMethod';\nexport const useGridLocaleText = (apiRef, props) => {\n const getLocaleText = React.useCallback(key => {\n if (props.localeText[key] == null) {\n throw new Error(`Missing translation for key ${key}.`);\n }\n\n return props.localeText[key];\n }, [props.localeText]);\n const localeTextApi = {\n getLocaleText\n };\n useGridApiMethod(apiRef, localeTextApi, 'LocaleTextApi');\n};","import * as React from 'react';\nexport const useGridInitializeState = (initializer, apiRef, props) => {\n const isInitialized = React.useRef(false);\n\n if (!isInitialized.current) {\n apiRef.current.state = initializer(apiRef.current.state, props, apiRef);\n isInitialized.current = true;\n }\n};","import * as React from 'react';\nimport { GridEvents } from '../../models/events';\nimport { isFunction } from '../../utils/utils';\nimport { useGridLogger } from './useGridLogger';\nexport const useGridNativeEventListener = (apiRef, ref, eventName, handler, options) => {\n const logger = useGridLogger(apiRef, 'useNativeEventListener');\n const [added, setAdded] = React.useState(false);\n const handlerRef = React.useRef(handler);\n const wrapHandler = React.useCallback(args => {\n return handlerRef.current && handlerRef.current(args);\n }, []);\n React.useEffect(() => {\n handlerRef.current = handler;\n }, [handler]);\n React.useEffect(() => {\n let targetElement;\n\n if (isFunction(ref)) {\n targetElement = ref();\n } else {\n targetElement = ref && ref.current ? ref.current : null;\n }\n\n if (targetElement && wrapHandler && eventName && !added) {\n logger.debug(`Binding native ${eventName} event`);\n targetElement.addEventListener(eventName, wrapHandler, options);\n const boundElem = targetElement;\n setAdded(true);\n\n const unsubscribe = () => {\n logger.debug(`Clearing native ${eventName} event`);\n boundElem.removeEventListener(eventName, wrapHandler, options);\n };\n\n apiRef.current.subscribeEvent(GridEvents.unmount, unsubscribe);\n }\n }, [ref, wrapHandler, eventName, added, logger, options, apiRef]);\n};","import * as React from 'react';\nimport { useGridApiMethod, useGridNativeEventListener } from '../../utils';\n\nfunction writeToClipboardPolyfill(data) {\n const span = document.createElement('span');\n span.style.whiteSpace = 'pre';\n span.style.userSelect = 'all';\n span.style.opacity = '0px';\n span.textContent = data;\n document.body.appendChild(span);\n const range = document.createRange();\n range.selectNode(span);\n const selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n\n try {\n document.execCommand('copy');\n } finally {\n document.body.removeChild(span);\n }\n}\n/**\n * @requires useGridCsvExport (method)\n * @requires useGridSelection (method)\n */\n\n\nexport const useGridClipboard = apiRef => {\n const copySelectedRowsToClipboard = React.useCallback((includeHeaders = false) => {\n if (apiRef.current.getSelectedRows().size === 0) {\n return;\n }\n\n const data = apiRef.current.getDataAsCsv({\n includeHeaders,\n delimiter: '\\t'\n });\n\n if (navigator.clipboard) {\n navigator.clipboard.writeText(data).catch(() => {\n writeToClipboardPolyfill(data);\n });\n } else {\n writeToClipboardPolyfill(data);\n }\n }, [apiRef]);\n const handleKeydown = React.useCallback(event => {\n var _window$getSelection;\n\n const isModifierKeyPressed = event.ctrlKey || event.metaKey || event.altKey; // event.key === 'c' is not enough as alt+c can lead to ©, ç, or other characters on macOS.\n // event.code === 'KeyC' is not enough as event.code assume a QWERTY keyboard layout which would\n // be wrong with a Dvorak keyboard (as if pressing J).\n\n if (String.fromCharCode(event.keyCode) !== 'C' || !isModifierKeyPressed) {\n return;\n } // Do nothing if there's a native selection\n\n\n if (((_window$getSelection = window.getSelection()) == null ? void 0 : _window$getSelection.toString()) !== '') {\n return;\n }\n\n apiRef.current.unstable_copySelectedRowsToClipboard(event.altKey);\n }, [apiRef]);\n useGridNativeEventListener(apiRef, apiRef.current.rootElementRef, 'keydown', handleKeydown);\n const clipboardApi = {\n unstable_copySelectedRowsToClipboard: copySelectedRowsToClipboard\n };\n useGridApiMethod(apiRef, clipboardApi, 'GridClipboardApi');\n};","export const gridColumnMenuSelector = state => state.columnMenu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridEvents } from '../../../models/events';\nimport { useGridLogger, useGridApiMethod, useGridApiEventHandler } from '../../utils';\nimport { gridColumnMenuSelector } from './columnMenuSelector';\nexport const columnMenuStateInitializer = state => _extends({}, state, {\n columnMenu: {\n open: false\n }\n});\n/**\n * @requires useGridColumnResize (event)\n * @requires useGridInfiniteLoader (event)\n */\n\nexport const useGridColumnMenu = apiRef => {\n const logger = useGridLogger(apiRef, 'useGridColumnMenu');\n /**\n * API METHODS\n */\n\n const showColumnMenu = React.useCallback(field => {\n const shouldUpdate = apiRef.current.setState(state => {\n if (state.columnMenu.open && state.columnMenu.field === field) {\n return state;\n }\n\n logger.debug('Opening Column Menu');\n return _extends({}, state, {\n columnMenu: {\n open: true,\n field\n }\n });\n });\n\n if (shouldUpdate) {\n apiRef.current.hidePreferences();\n apiRef.current.forceUpdate();\n }\n }, [apiRef, logger]);\n const hideColumnMenu = React.useCallback(() => {\n const shouldUpdate = apiRef.current.setState(state => {\n if (!state.columnMenu.open && state.columnMenu.field === undefined) {\n return state;\n }\n\n logger.debug('Hiding Column Menu');\n return _extends({}, state, {\n columnMenu: _extends({}, state.columnMenu, {\n open: false,\n field: undefined\n })\n });\n });\n\n if (shouldUpdate) {\n apiRef.current.forceUpdate();\n }\n }, [apiRef, logger]);\n const toggleColumnMenu = React.useCallback(field => {\n logger.debug('Toggle Column Menu');\n const columnMenu = gridColumnMenuSelector(apiRef.current.state);\n\n if (!columnMenu.open || columnMenu.field !== field) {\n showColumnMenu(field);\n } else {\n hideColumnMenu();\n }\n }, [apiRef, logger, showColumnMenu, hideColumnMenu]);\n const columnMenuApi = {\n showColumnMenu,\n hideColumnMenu,\n toggleColumnMenu\n };\n useGridApiMethod(apiRef, columnMenuApi, 'GridColumnMenuApi');\n /**\n * EVENTS\n */\n\n useGridApiEventHandler(apiRef, GridEvents.columnResizeStart, hideColumnMenu);\n useGridApiEventHandler(apiRef, GridEvents.rowsScroll, hideColumnMenu);\n};","import * as React from 'react';\nexport const useFirstRender = callback => {\n const isFirstRender = React.useRef(true);\n\n if (isFirstRender.current) {\n isFirstRender.current = false;\n callback();\n }\n};","import * as React from 'react';\nimport { useFirstRender } from '../../utils/useFirstRender';\n\n/**\n * TODO: Rename `useGridRegisterPipeProcessor`\n */\nexport const useGridRegisterPreProcessor = (apiRef, group, callback) => {\n const cleanup = React.useRef();\n const id = React.useRef(`mui-${Math.round(Math.random() * 1e9)}`);\n const registerPreProcessor = React.useCallback(() => {\n cleanup.current = apiRef.current.unstable_registerPreProcessor(group, id.current, callback);\n }, [apiRef, callback, group]);\n useFirstRender(() => {\n registerPreProcessor();\n });\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n } else {\n registerPreProcessor();\n }\n\n return () => {\n if (cleanup.current) {\n cleanup.current();\n cleanup.current = null;\n }\n };\n }, [registerPreProcessor]);\n};","import * as React from 'react';\nimport { createSvgIcon } from '@mui/material/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const GridArrowUpwardIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\"\n}), 'ArrowUpward');\nexport const GridArrowDownwardIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"\n}), 'ArrowDownward');\nexport const GridKeyboardArrowRight = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'KeyboardArrowRight');\nexport const GridExpandMoreIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');\nexport const GridFilterListIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z\"\n}), 'FilterList');\nexport const GridFilterAltIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61z\"\n}), 'FilterAlt');\nexport const GridSearchIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"\n}), 'Search');\nexport const GridMenuIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"\n}), 'Menu');\nexport const GridCheckCircleIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckCircle');\nexport const GridColumnIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M6 5H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm14 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-7 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\"\n}), 'ColumnIcon');\nexport const GridSeparatorIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M11 19V5h2v14z\"\n}), 'Separator');\nexport const GridViewHeadlineIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"\n}), 'ViewHeadline');\nexport const GridTableRowsIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M21,8H3V4h18V8z M21,10H3v4h18V10z M21,16H3v4h18V16z\"\n}), 'TableRows');\nexport const GridViewStreamIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M4 18h17v-6H4v6zM4 5v6h17V5H4z\"\n}), 'ViewStream');\nexport const GridTripleDotsVerticalIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'TripleDotsVertical');\nexport const GridCloseIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\nexport const GridAddIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\nexport const GridRemoveIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 13H5v-2h14v2z\"\n}), 'Remove');\nexport const GridLoadIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\"\n}), 'Load');\nexport const GridDragIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'Drag');\nexport const GridSaveAltIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67l2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z\"\n}), 'SaveAlt');\nexport const GridCheckIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\n}), 'Check');\nexport const GridMoreVertIcon = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreVert');","export function getValueFromOption(option) {\n if (typeof option === 'object' && option !== null) {\n return option.value;\n }\n\n return option;\n}\nexport function getValueFromValueOptions(value, valueOptions) {\n if (valueOptions === undefined) {\n return undefined;\n }\n\n const result = valueOptions.find(option => {\n const optionValue = getValueFromOption(option);\n return String(optionValue) === String(value);\n });\n return getValueFromOption(result);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/material/utils';\nimport { GridLoadIcon } from '../../icons';\nimport { useGridRootProps } from '../../../hooks/utils/useGridRootProps';\nimport { getValueFromValueOptions } from './filterPanelUtils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst warnedOnce = {};\n\nfunction warnDeprecatedTypeSupport(type) {\n console.warn([`MUI: Using GridFilterInputValue with a \"${type}\" column is deprecated.`, 'Use GridFilterInputSingleSelect instead.'].join('\\n'));\n warnedOnce[type] = true;\n}\n\nconst renderSingleSelectOptions = ({\n valueOptions,\n valueFormatter,\n field\n}, api) => {\n const iterableColumnValues = typeof valueOptions === 'function' ? ['', ...valueOptions({\n field\n })] : ['', ...(valueOptions || [])];\n return iterableColumnValues.map(option => typeof option === 'object' ? /*#__PURE__*/_jsx(\"option\", {\n value: option.value,\n children: option.label\n }, option.value) : /*#__PURE__*/_jsx(\"option\", {\n value: option,\n children: valueFormatter && option !== '' ? valueFormatter({\n value: option,\n field,\n api\n }) : option\n }, option));\n};\n\nexport const SUBMIT_FILTER_STROKE_TIME = 500;\n\nfunction GridFilterInputValue(props) {\n var _item$value, _rootProps$components;\n\n const {\n item,\n applyValue,\n type,\n apiRef,\n focusElementRef\n } = props,\n others = _objectWithoutPropertiesLoose(props, _excluded);\n\n if (process.env.NODE_ENV !== 'production' && ['date', 'datetime-local', 'singleSelect'].includes(type) && !warnedOnce[type]) {\n warnDeprecatedTypeSupport(type);\n }\n\n const filterTimeout = React.useRef();\n const [filterValueState, setFilterValueState] = React.useState((_item$value = item.value) != null ? _item$value : '');\n const [applying, setIsApplying] = React.useState(false);\n const id = useId();\n const rootProps = useGridRootProps();\n const singleSelectProps = type === 'singleSelect' ? {\n select: true,\n SelectProps: {\n native: true\n },\n children: renderSingleSelectOptions(apiRef.current.getColumn(item.columnField), apiRef.current)\n } : {};\n const onFilterChange = React.useCallback(event => {\n let value = event.target.value; // NativeSelect casts the value to a string.\n\n if (type === 'singleSelect') {\n const column = apiRef.current.getColumn(item.columnField);\n const columnValueOptions = typeof column.valueOptions === 'function' ? column.valueOptions({\n field: column.field\n }) : column.valueOptions;\n value = getValueFromValueOptions(value, columnValueOptions);\n }\n\n clearTimeout(filterTimeout.current);\n setFilterValueState(String(value));\n setIsApplying(true); // TODO singleSelect doesn't debounce\n\n filterTimeout.current = setTimeout(() => {\n applyValue(_extends({}, item, {\n value\n }));\n setIsApplying(false);\n }, SUBMIT_FILTER_STROKE_TIME);\n }, [apiRef, applyValue, item, type]);\n React.useEffect(() => {\n return () => {\n clearTimeout(filterTimeout.current);\n };\n }, []);\n React.useEffect(() => {\n var _item$value2;\n\n const itemValue = (_item$value2 = item.value) != null ? _item$value2 : '';\n setFilterValueState(String(itemValue));\n }, [item.value]);\n const InputProps = applying ? {\n endAdornment: /*#__PURE__*/_jsx(GridLoadIcon, {})\n } : others.InputProps;\n return /*#__PURE__*/_jsx(rootProps.components.BaseTextField, _extends({\n id: id,\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),\n value: filterValueState,\n onChange: onFilterChange,\n type: type || 'text',\n variant: \"standard\",\n InputProps: InputProps,\n InputLabelProps: {\n shrink: true\n },\n inputRef: focusElementRef\n }, singleSelectProps, others, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseTextField));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputValue.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.any.isRequired,\n applyValue: PropTypes.func.isRequired,\n focusElementRef: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.func, PropTypes.object]),\n item: PropTypes.shape({\n columnField: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operatorValue: PropTypes.string,\n value: PropTypes.any\n }).isRequired\n} : void 0;\nexport { GridFilterInputValue };","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"tabIndex\", \"hasFocus\", \"getValue\", \"isValidating\", \"debounceMs\", \"isProcessingProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';\nimport { styled } from '@mui/material/styles';\nimport InputBase from '@mui/material/InputBase';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { GridLoadIcon } from '../icons/index';\nimport { SUBMIT_FILTER_STROKE_TIME } from '../panel/filterPanel/GridFilterInputValue';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['editInputCell']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nconst GridEditInputCellRoot = styled(InputBase, {\n name: 'MuiDataGrid',\n slot: 'EditInputCell',\n overridesResolver: (props, styles) => styles.editInputCell\n})(({\n theme\n}) => _extends({}, theme.typography.body2, {\n padding: '1px 0',\n '& input': {\n padding: '0 16px',\n height: '100%'\n }\n}));\n\nfunction GridEditInputCell(props) {\n var _rootProps$experiment;\n\n const rootProps = useGridRootProps();\n\n const {\n id,\n value,\n api,\n field,\n colDef,\n hasFocus,\n debounceMs = (_rootProps$experiment = rootProps.experimentalFeatures) != null && _rootProps$experiment.newEditingApi ? 200 : SUBMIT_FILTER_STROKE_TIME,\n isProcessingProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const inputRef = React.useRef();\n const [valueState, setValueState] = React.useState(value);\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const handleChange = React.useCallback(event => {\n const newValue = event.target.value;\n setValueState(newValue);\n api.setEditCellValue({\n id,\n field,\n value: newValue,\n debounceMs\n }, event);\n }, [api, debounceMs, field, id]);\n React.useEffect(() => {\n setValueState(value);\n }, [value]);\n useEnhancedEffect(() => {\n if (hasFocus) {\n inputRef.current.focus();\n }\n }, [hasFocus]);\n return /*#__PURE__*/_jsx(GridEditInputCellRoot, _extends({\n inputRef: inputRef,\n className: classes.root,\n fullWidth: true,\n type: colDef.type === 'number' ? colDef.type : 'text',\n value: valueState != null ? valueState : '',\n onChange: handleChange,\n endAdornment: isProcessingProps ? /*#__PURE__*/_jsx(GridLoadIcon, {}) : undefined\n }, other));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridEditInputCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * GridApi that let you manipulate the grid.\n * @deprecated Use the `apiRef` returned by `useGridApiContext` or `useGridApiRef` (only available in `@mui/x-data-grid-pro`)\n */\n api: PropTypes.any.isRequired,\n\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n debounceMs: PropTypes.number,\n\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any.isRequired,\n\n /**\n * Get the cell value of a row and field.\n * @param {GridRowId} id The row id.\n * @param {string} field The field.\n * @returns {GridCellValue} The cell value.\n * @deprecated Use `params.row` to directly access the fields you want instead.\n */\n getValue: PropTypes.func.isRequired,\n\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n isProcessingProps: PropTypes.bool,\n isValidating: PropTypes.bool,\n\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired\n} : void 0;\nexport { GridEditInputCell };\nexport const renderEditInputCell = params => /*#__PURE__*/_jsx(GridEditInputCell, _extends({}, params));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { buildWarning } from '../../../utils/warning';\nconst sortModelDisableMultiColumnsSortingWarning = buildWarning(['MUI: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');\nexport const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {\n if (disableMultipleColumnsSorting && model.length > 1) {\n sortModelDisableMultiColumnsSortingWarning();\n return [model[0]];\n }\n\n return model;\n};\nexport const mergeStateWithSortModel = (sortModel, disableMultipleColumnsSorting) => state => _extends({}, state, {\n sorting: _extends({}, state.sorting, {\n sortModel: sanitizeSortModel(sortModel, disableMultipleColumnsSorting)\n })\n});\n\nconst isDesc = direction => direction === 'desc';\n/**\n * Transform an item of the sorting model into a method comparing two rows.\n * @param {GridSortItem} sortItem The sort item we want to apply.\n * @param {React.MutableRefObject} apiRef The API of the grid.\n * @returns {GridParsedSortItem | null} The parsed sort item. Returns `null` is the sort item is not valid.\n */\n\n\nconst parseSortItem = (sortItem, apiRef) => {\n const column = apiRef.current.getColumn(sortItem.field);\n\n if (!column) {\n return null;\n }\n\n const comparator = isDesc(sortItem.sort) ? (...args) => -1 * column.sortComparator(...args) : column.sortComparator;\n\n const getSortCellParams = id => ({\n id,\n field: column.field,\n rowNode: apiRef.current.getRowNode(id),\n value: apiRef.current.getCellValue(id, column.field),\n api: apiRef.current\n });\n\n return {\n getSortCellParams,\n comparator\n };\n};\n/**\n * Compare two rows according to a list of valid sort items.\n * The `row1Params` and `row2Params` must have the same length as `parsedSortItems`,\n * and each of their index must contain the `GridSortCellParams` of the sort item with the same index.\n * @param {GridParsedSortItem[]} parsedSortItems All the sort items with which we want to compare the rows.\n * @param {GridSortCellParams} row1Params The params of the 1st row for each sort item.\n * @param {GridSortCellParams} row2Params The params of the 2nd row for each sort item.\n */\n\n\nconst compareRows = (parsedSortItems, row1Params, row2Params) => {\n return parsedSortItems.reduce((res, item, index) => {\n if (res !== 0) {\n // return the results of the first comparator which distinguish the two rows\n return res;\n }\n\n const sortCellParams1 = row1Params[index];\n const sortCellParams2 = row2Params[index];\n res = item.comparator(sortCellParams1.value, sortCellParams2.value, sortCellParams1, sortCellParams2);\n return res;\n }, 0);\n};\n/**\n * Generates a method to easily sort a list of rows according to the current sort model.\n * @param {GridSortModel} sortModel The model with which we want to sort the rows.\n * @param {React.MutableRefObject} apiRef The API of the grid.\n * @returns {GridSortingModelApplier | null} A method that generates a list of sorted row ids from a list of rows according to the current sort model. If `null`, we consider that the rows should remain in the order there were provided.\n */\n\n\nexport const buildAggregatedSortingApplier = (sortModel, apiRef) => {\n const comparatorList = sortModel.map(item => parseSortItem(item, apiRef)).filter(comparator => !!comparator);\n\n if (comparatorList.length === 0) {\n return null;\n }\n\n return rowList => rowList.map(value => ({\n value,\n params: comparatorList.map(el => el.getSortCellParams(value.id))\n })).sort((a, b) => compareRows(comparatorList, a.params, b.params)).map(row => row.value.id);\n};\nexport const getNextGridSortDirection = (sortingOrder, current) => {\n const currentIdx = sortingOrder.indexOf(current);\n\n if (!current || currentIdx === -1 || currentIdx + 1 === sortingOrder.length) {\n return sortingOrder[0];\n }\n\n return sortingOrder[currentIdx + 1];\n};\n\nconst gridNillComparator = (v1, v2) => {\n if (v1 == null && v2 != null) {\n return -1;\n }\n\n if (v2 == null && v1 != null) {\n return 1;\n }\n\n if (v1 == null && v2 == null) {\n return 0;\n }\n\n return null;\n};\n\nconst collator = new Intl.Collator();\nexport const gridStringOrNumberComparator = (value1, value2) => {\n const nillResult = gridNillComparator(value1, value2);\n\n if (nillResult !== null) {\n return nillResult;\n }\n\n if (typeof value1 === 'string') {\n return collator.compare(value1.toString(), value2.toString());\n }\n\n return value1 - value2;\n};\nexport const gridNumberComparator = (value1, value2) => {\n const nillResult = gridNillComparator(value1, value2);\n\n if (nillResult !== null) {\n return nillResult;\n }\n\n return Number(value1) - Number(value2);\n};\nexport const gridDateComparator = (value1, value2) => {\n const nillResult = gridNillComparator(value1, value2);\n\n if (nillResult !== null) {\n return nillResult;\n }\n\n if (value1 > value2) {\n return 1;\n }\n\n if (value1 < value2) {\n return -1;\n }\n\n return 0;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport Chip from '@mui/material/Chip';\nimport TextField from '@mui/material/TextField';\nimport { unstable_useId as useId } from '@mui/material/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction GridFilterInputMultipleValue(props) {\n const {\n item,\n applyValue,\n type,\n apiRef,\n focusElementRef\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [filterValueState, setFilterValueState] = React.useState(item.value || []);\n const id = useId();\n React.useEffect(() => {\n var _item$value;\n\n const itemValue = (_item$value = item.value) != null ? _item$value : [];\n setFilterValueState(itemValue.map(String));\n }, [item.value]);\n const handleChange = React.useCallback((event, value) => {\n setFilterValueState(value.map(String));\n applyValue(_extends({}, item, {\n value: [...value]\n }));\n }, [applyValue, item]);\n return /*#__PURE__*/_jsx(Autocomplete, _extends({\n multiple: true,\n freeSolo: true,\n limitTags: 1,\n options: [],\n filterOptions: (options, params) => {\n const {\n inputValue\n } = params;\n return inputValue == null || inputValue === '' ? [] : [inputValue];\n },\n id: id,\n value: filterValueState,\n onChange: handleChange,\n renderTags: (value, getTagProps) => value.map((option, index) => /*#__PURE__*/_jsx(Chip, _extends({\n variant: \"outlined\",\n size: \"small\",\n label: option\n }, getTagProps({\n index\n })))),\n renderInput: params => /*#__PURE__*/_jsx(TextField, _extends({}, params, {\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),\n InputLabelProps: _extends({}, params.InputLabelProps, {\n shrink: true\n }),\n inputRef: focusElementRef,\n type: type || 'text',\n variant: \"standard\"\n }))\n }, other));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputMultipleValue.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.any.isRequired,\n applyValue: PropTypes.func.isRequired,\n focusElementRef: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.func, PropTypes.object]),\n item: PropTypes.shape({\n columnField: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operatorValue: PropTypes.string,\n value: PropTypes.any\n }).isRequired,\n type: PropTypes.oneOf(['number', 'text'])\n} : void 0;\nexport { GridFilterInputMultipleValue };","import { GridFilterInputValue } from '../components/panel/filterPanel/GridFilterInputValue';\nimport { escapeRegExp } from '../utils/utils';\nimport { GridFilterInputMultipleValue } from '../components/panel/filterPanel/GridFilterInputMultipleValue';\nexport const getGridStringOperators = () => [{\n value: 'contains',\n getApplyFilterFn: filterItem => {\n if (!filterItem.value) {\n return null;\n }\n\n const filterRegex = new RegExp(escapeRegExp(filterItem.value), 'i');\n return ({\n value\n }) => {\n return value != null ? filterRegex.test(value.toString()) : false;\n };\n },\n InputComponent: GridFilterInputValue\n}, {\n value: 'equals',\n getApplyFilterFn: filterItem => {\n if (!filterItem.value) {\n return null;\n }\n\n const collator = new Intl.Collator(undefined, {\n sensitivity: 'base',\n usage: 'search'\n });\n return ({\n value\n }) => {\n return value != null ? collator.compare(filterItem.value, value.toString()) === 0 : false;\n };\n },\n InputComponent: GridFilterInputValue\n}, {\n value: 'startsWith',\n getApplyFilterFn: filterItem => {\n if (!filterItem.value) {\n return null;\n }\n\n const filterRegex = new RegExp(`^${escapeRegExp(filterItem.value)}.*$`, 'i');\n return ({\n value\n }) => {\n return value != null ? filterRegex.test(value.toString()) : false;\n };\n },\n InputComponent: GridFilterInputValue\n}, {\n value: 'endsWith',\n getApplyFilterFn: filterItem => {\n if (!filterItem.value) {\n return null;\n }\n\n const filterRegex = new RegExp(`.*${escapeRegExp(filterItem.value)}$`, 'i');\n return ({\n value\n }) => {\n return value != null ? filterRegex.test(value.toString()) : false;\n };\n },\n InputComponent: GridFilterInputValue\n}, {\n value: 'isEmpty',\n getApplyFilterFn: () => {\n return ({\n value\n }) => {\n return value === '' || value == null;\n };\n }\n}, {\n value: 'isNotEmpty',\n getApplyFilterFn: () => {\n return ({\n value\n }) => {\n return value !== '' && value != null;\n };\n }\n}, {\n value: 'isAnyOf',\n getApplyFilterFn: filterItem => {\n if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {\n return null;\n }\n\n const collator = new Intl.Collator(undefined, {\n sensitivity: 'base',\n usage: 'search'\n });\n return ({\n value\n }) => value != null ? filterItem.value.some(filterValue => {\n return collator.compare(filterValue, value.toString() || '') === 0;\n }) : false;\n },\n InputComponent: GridFilterInputMultipleValue\n}];","import { renderEditInputCell } from '../components/cell/GridEditInputCell';\nimport { gridStringOrNumberComparator } from '../hooks/features/sorting/gridSortingUtils';\nimport { getGridStringOperators } from './gridStringOperators';\nexport const GRID_STRING_COL_DEF = {\n width: 100,\n minWidth: 50,\n maxWidth: Infinity,\n hide: false,\n hideable: true,\n sortable: true,\n resizable: true,\n filterable: true,\n groupable: true,\n pinnable: true,\n editable: false,\n sortComparator: gridStringOrNumberComparator,\n type: 'string',\n align: 'left',\n filterOperators: getGridStringOperators(),\n renderEditCell: renderEditInputCell\n};","import { GridFilterInputValue } from '../components/panel/filterPanel/GridFilterInputValue';\nimport { GridFilterInputMultipleValue } from '../components/panel/filterPanel/GridFilterInputMultipleValue';\nimport { wrapWithWarningOnCall } from '../utils/warning';\n\nconst parseNumericValue = value => {\n if (value == null) {\n return null;\n }\n\n return Number(value);\n};\n\nexport const getGridNumericOperators = () => [{\n label: '=',\n value: '=',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n\n return ({\n value\n }) => {\n return parseNumericValue(value) === filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n label: '!=',\n value: '!=',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n\n return ({\n value\n }) => {\n return parseNumericValue(value) !== filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n label: '>',\n value: '>',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n\n return ({\n value\n }) => {\n if (value == null) {\n return false;\n }\n\n return parseNumericValue(value) > filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n label: '>=',\n value: '>=',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n\n return ({\n value\n }) => {\n if (value == null) {\n return false;\n }\n\n return parseNumericValue(value) >= filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n label: '<',\n value: '<',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n\n return ({\n value\n }) => {\n if (value == null) {\n return false;\n }\n\n return parseNumericValue(value) < filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n label: '<=',\n value: '<=',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || Number.isNaN(filterItem.value)) {\n return null;\n }\n\n return ({\n value\n }) => {\n if (value == null) {\n return false;\n }\n\n return parseNumericValue(value) <= filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n InputComponentProps: {\n type: 'number'\n }\n}, {\n value: 'isEmpty',\n getApplyFilterFn: () => {\n return ({\n value\n }) => {\n return value == null;\n };\n }\n}, {\n value: 'isNotEmpty',\n getApplyFilterFn: () => {\n return ({\n value\n }) => {\n return value != null;\n };\n }\n}, {\n value: 'isAnyOf',\n getApplyFilterFn: filterItem => {\n if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {\n return null;\n }\n\n return ({\n value\n }) => {\n return value != null && filterItem.value.includes(Number(value));\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n InputComponentProps: {\n type: 'number'\n }\n}];\n/**\n * @deprecated Use `getGridNumericOperators` instead.\n */\n\nexport const getGridNumericColumnOperators = wrapWithWarningOnCall(getGridNumericOperators, ['MUI: The method getGridNumericColumnOperators is deprecated and will be removed in the next major version.', 'Use getGridNumericOperators instead.']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { gridNumberComparator } from '../hooks/features/sorting/gridSortingUtils';\nimport { isNumber } from '../utils/utils';\nimport { getGridNumericOperators } from './gridNumericOperators';\nimport { GRID_STRING_COL_DEF } from './gridStringColDef';\nexport const GRID_NUMERIC_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'number',\n align: 'right',\n headerAlign: 'right',\n sortComparator: gridNumberComparator,\n valueParser: value => value === '' ? null : Number(value),\n valueFormatter: ({\n value\n }) => value && isNumber(value) && value.toLocaleString() || value,\n filterOperators: getGridNumericOperators()\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\", \"InputProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/material/utils';\nimport { GridLoadIcon } from '../../icons';\nimport { useGridRootProps } from '../../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const SUBMIT_FILTER_DATE_STROKE_TIME = 500;\n\nfunction GridFilterInputDate(props) {\n var _item$value, _rootProps$components;\n\n const {\n item,\n applyValue,\n type,\n apiRef,\n focusElementRef,\n InputProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const filterTimeout = React.useRef();\n const [filterValueState, setFilterValueState] = React.useState((_item$value = item.value) != null ? _item$value : '');\n const [applying, setIsApplying] = React.useState(false);\n const id = useId();\n const rootProps = useGridRootProps();\n const onFilterChange = React.useCallback(event => {\n const value = event.target.value;\n clearTimeout(filterTimeout.current);\n setFilterValueState(String(value));\n setIsApplying(true);\n filterTimeout.current = setTimeout(() => {\n applyValue(_extends({}, item, {\n value\n }));\n setIsApplying(false);\n }, SUBMIT_FILTER_DATE_STROKE_TIME);\n }, [applyValue, item]);\n React.useEffect(() => {\n return () => {\n clearTimeout(filterTimeout.current);\n };\n }, []);\n React.useEffect(() => {\n var _item$value2;\n\n const itemValue = (_item$value2 = item.value) != null ? _item$value2 : '';\n setFilterValueState(String(itemValue));\n }, [item.value]);\n return /*#__PURE__*/_jsx(rootProps.components.BaseTextField, _extends({\n id: id,\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),\n value: filterValueState,\n onChange: onFilterChange,\n type: type || 'text',\n variant: \"standard\",\n InputLabelProps: {\n shrink: true\n },\n inputRef: focusElementRef,\n InputProps: _extends({}, applying ? {\n endAdornment: /*#__PURE__*/_jsx(GridLoadIcon, {})\n } : {}, InputProps, {\n inputProps: _extends({\n max: type === 'datetime-local' ? '9999-12-31T23:59' : '9999-12-31'\n }, InputProps == null ? void 0 : InputProps.inputProps)\n })\n }, other, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseTextField));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputDate.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.any.isRequired,\n applyValue: PropTypes.func.isRequired,\n focusElementRef: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.func, PropTypes.object]),\n item: PropTypes.shape({\n columnField: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operatorValue: PropTypes.string,\n value: PropTypes.any\n }).isRequired\n} : void 0;\nexport { GridFilterInputDate };","import { GridFilterInputDate } from '../components/panel/filterPanel/GridFilterInputDate';\nconst dateRegex = /(\\d+)-(\\d+)-(\\d+)/;\nconst dateTimeRegex = /(\\d+)-(\\d+)-(\\d+)T(\\d+):(\\d+)/;\n\nfunction buildApplyFilterFn(filterItem, compareFn, showTime, keepHours) {\n if (!filterItem.value) {\n return null;\n }\n\n const [year, month, day, hour, minute] = filterItem.value.match(showTime ? dateTimeRegex : dateRegex).slice(1).map(Number);\n const time = new Date(year, month - 1, day, hour || 0, minute || 0).getTime();\n return ({\n value\n }) => {\n if (!value) {\n return false;\n }\n\n const valueAsDate = value instanceof Date ? value : new Date(value.toString());\n\n if (keepHours) {\n return compareFn(valueAsDate.getTime(), time);\n } // Make a copy of the date to not reset the hours in the original object\n\n\n const dateCopy = value instanceof Date ? new Date(valueAsDate) : valueAsDate;\n const timeToCompare = dateCopy.setHours(showTime ? valueAsDate.getHours() : 0, showTime ? valueAsDate.getMinutes() : 0, 0, 0);\n return compareFn(timeToCompare, time);\n };\n}\n\nexport const getGridDateOperators = showTime => [{\n value: 'is',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 === value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'not',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 !== value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'after',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 > value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'onOrAfter',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 >= value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'before',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 < value2, showTime, !showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'onOrBefore',\n getApplyFilterFn: filterItem => {\n return buildApplyFilterFn(filterItem, (value1, value2) => value1 <= value2, showTime);\n },\n InputComponent: GridFilterInputDate,\n InputComponentProps: {\n type: showTime ? 'datetime-local' : 'date'\n }\n}, {\n value: 'isEmpty',\n getApplyFilterFn: () => {\n return ({\n value\n }) => {\n return value == null;\n };\n }\n}, {\n value: 'isNotEmpty',\n getApplyFilterFn: () => {\n return ({\n value\n }) => {\n return value != null;\n };\n }\n}];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"tabIndex\", \"hasFocus\", \"getValue\", \"inputProps\", \"isValidating\", \"isProcessingProps\"];\nimport * as React from 'react';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';\nimport InputBase from '@mui/material/InputBase';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['editInputCell']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nexport function GridEditDateCell(props) {\n const {\n id,\n value: valueProp,\n api,\n field,\n colDef,\n hasFocus,\n inputProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isDateTime = colDef.type === 'dateTime';\n const inputRef = React.useRef();\n const valueTransformed = React.useMemo(() => {\n let parsedDate;\n\n if (valueProp == null) {\n parsedDate = null;\n } else if (valueProp instanceof Date) {\n parsedDate = valueProp;\n } else {\n parsedDate = new Date((valueProp != null ? valueProp : '').toString());\n }\n\n let formattedDate;\n\n if (parsedDate == null || Number.isNaN(parsedDate.getTime())) {\n formattedDate = '';\n } else {\n const localDate = new Date(parsedDate.getTime() - parsedDate.getTimezoneOffset() * 60 * 1000);\n formattedDate = localDate.toISOString().substr(0, isDateTime ? 16 : 10);\n }\n\n return {\n parsed: parsedDate,\n formatted: formattedDate\n };\n }, [valueProp, isDateTime]);\n const [valueState, setValueState] = React.useState(valueTransformed);\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const handleChange = React.useCallback(event => {\n const newFormattedDate = event.target.value;\n let newParsedDate;\n\n if (newFormattedDate === '') {\n newParsedDate = null;\n } else {\n const [date, time] = newFormattedDate.split('T');\n const [year, month, day] = date.split('-');\n newParsedDate = new Date();\n newParsedDate.setFullYear(year, Number(month) - 1, day);\n newParsedDate.setHours(0, 0, 0, 0);\n\n if (time) {\n const [hours, minutes] = time.split(':');\n newParsedDate.setHours(Number(hours), Number(minutes), 0, 0);\n }\n }\n\n setValueState({\n parsed: newParsedDate,\n formatted: newFormattedDate\n });\n api.setEditCellValue({\n id,\n field,\n value: newParsedDate\n }, event);\n }, [api, field, id]);\n React.useEffect(() => {\n setValueState(state => {\n var _valueTransformed$par, _state$parsed;\n\n if (valueTransformed.parsed !== state.parsed && ((_valueTransformed$par = valueTransformed.parsed) == null ? void 0 : _valueTransformed$par.getTime()) !== ((_state$parsed = state.parsed) == null ? void 0 : _state$parsed.getTime())) {\n return valueTransformed;\n }\n\n return state;\n });\n }, [valueTransformed]);\n useEnhancedEffect(() => {\n if (hasFocus) {\n inputRef.current.focus();\n }\n }, [hasFocus]);\n return /*#__PURE__*/_jsx(InputBase, _extends({\n inputRef: inputRef,\n fullWidth: true,\n className: classes.root,\n type: isDateTime ? 'datetime-local' : 'date',\n inputProps: _extends({\n max: isDateTime ? '9999-12-31T23:59' : '9999-12-31'\n }, inputProps),\n value: valueState.formatted,\n onChange: handleChange\n }, other));\n}\nexport const renderEditDateCell = params => /*#__PURE__*/_jsx(GridEditDateCell, _extends({}, params));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { gridDateComparator } from '../hooks/features/sorting/gridSortingUtils';\nimport { getGridDateOperators } from './gridDateOperators';\nimport { GRID_STRING_COL_DEF } from './gridStringColDef';\nimport { renderEditDateCell } from '../components/cell/GridEditDateCell';\nexport function gridDateFormatter({\n value\n}) {\n if (value instanceof Date) {\n return value.toLocaleDateString();\n }\n\n return value;\n}\nexport function gridDateTimeFormatter({\n value\n}) {\n if (value instanceof Date) {\n return value.toLocaleString();\n }\n\n return value;\n}\nexport const GRID_DATE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'date',\n sortComparator: gridDateComparator,\n valueFormatter: gridDateFormatter,\n filterOperators: getGridDateOperators(),\n renderEditCell: renderEditDateCell\n});\nexport const GRID_DATETIME_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'dateTime',\n sortComparator: gridDateComparator,\n valueFormatter: gridDateTimeFormatter,\n filterOperators: getGridDateOperators(true),\n renderEditCell: renderEditDateCell\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"hasFocus\", \"tabIndex\", \"getValue\"];\nimport * as React from 'react';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['booleanCell']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nexport const GridBooleanCell = /*#__PURE__*/React.memo(props => {\n const {\n value,\n api\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const Icon = React.useMemo(() => value ? rootProps.components.BooleanCellTrueIcon : rootProps.components.BooleanCellFalseIcon, [rootProps.components.BooleanCellFalseIcon, rootProps.components.BooleanCellTrueIcon, value]);\n return /*#__PURE__*/_jsx(Icon, _extends({\n fontSize: \"small\",\n className: classes.root,\n titleAccess: api.getLocaleText(value ? 'booleanCellTrueLabel' : 'booleanCellFalseLabel'),\n \"data-value\": Boolean(value)\n }, other));\n});\nexport const renderBooleanCell = params => {\n if (params.rowNode.isAutoGenerated) {\n return '';\n }\n\n return /*#__PURE__*/_jsx(GridBooleanCell, _extends({}, params));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"tabIndex\", \"className\", \"getValue\", \"hasFocus\", \"isValidating\", \"isProcessingProps\", \"error\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { unstable_useId as useId, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['editBooleanCell']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nexport function GridEditBooleanCell(props) {\n var _rootProps$components;\n\n const {\n id: idProp,\n value,\n api,\n field,\n className,\n hasFocus\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const inputRef = React.useRef(null);\n const id = useId();\n const [valueState, setValueState] = React.useState(value);\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const handleChange = React.useCallback(event => {\n const newValue = event.target.checked;\n setValueState(newValue);\n api.setEditCellValue({\n id: idProp,\n field,\n value: newValue\n }, event);\n }, [api, field, idProp]);\n React.useEffect(() => {\n setValueState(value);\n }, [value]);\n useEnhancedEffect(() => {\n if (hasFocus) {\n inputRef.current.focus();\n }\n }, [hasFocus]);\n return /*#__PURE__*/_jsx(\"label\", _extends({\n htmlFor: id,\n className: clsx(classes.root, className)\n }, other, {\n children: /*#__PURE__*/_jsx(rootProps.components.BaseCheckbox, _extends({\n id: id,\n inputRef: inputRef,\n checked: Boolean(valueState),\n onChange: handleChange,\n size: \"small\"\n }, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseCheckbox))\n }));\n}\nexport const renderEditBooleanCell = params => /*#__PURE__*/_jsx(GridEditBooleanCell, _extends({}, params));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"apiRef\", \"focusElementRef\"];\nimport * as React from 'react';\nimport { useGridRootProps } from '../../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function GridFilterInputBoolean(props) {\n var _rootProps$components;\n\n const {\n item,\n applyValue,\n apiRef,\n focusElementRef\n } = props,\n others = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [filterValueState, setFilterValueState] = React.useState(item.value || '');\n const rootProps = useGridRootProps();\n const onFilterChange = React.useCallback(event => {\n const value = event.target.value;\n setFilterValueState(value);\n applyValue(_extends({}, item, {\n value\n }));\n }, [applyValue, item]);\n React.useEffect(() => {\n setFilterValueState(item.value || '');\n }, [item.value]);\n return /*#__PURE__*/_jsxs(rootProps.components.BaseTextField, _extends({\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n value: filterValueState,\n onChange: onFilterChange,\n variant: \"standard\",\n select: true,\n SelectProps: {\n native: true\n },\n InputLabelProps: {\n shrink: true\n },\n inputRef: focusElementRef\n }, others, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseTextField, {\n children: [/*#__PURE__*/_jsx(\"option\", {\n value: \"\",\n children: apiRef.current.getLocaleText('filterValueAny')\n }), /*#__PURE__*/_jsx(\"option\", {\n value: \"true\",\n children: apiRef.current.getLocaleText('filterValueTrue')\n }), /*#__PURE__*/_jsx(\"option\", {\n value: \"false\",\n children: apiRef.current.getLocaleText('filterValueFalse')\n })]\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { GRID_STRING_COL_DEF } from './gridStringColDef';\nimport { renderBooleanCell } from '../components/cell/GridBooleanCell';\nimport { renderEditBooleanCell } from '../components/cell/GridEditBooleanCell';\nimport { gridNumberComparator } from '../hooks/features/sorting/gridSortingUtils';\nimport { getGridBooleanOperators } from './gridBooleanOperators';\n\nfunction gridBooleanFormatter({\n value,\n api\n}) {\n return value ? api.getLocaleText('booleanCellTrueLabel') : api.getLocaleText('booleanCellFalseLabel');\n}\n\nexport const GRID_BOOLEAN_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'boolean',\n align: 'center',\n headerAlign: 'center',\n renderCell: renderBooleanCell,\n renderEditCell: renderEditBooleanCell,\n sortComparator: gridNumberComparator,\n valueFormatter: gridBooleanFormatter,\n filterOperators: getGridBooleanOperators()\n});","import { GridFilterInputBoolean } from '../components/panel/filterPanel/GridFilterInputBoolean';\nexport const getGridBooleanOperators = () => [{\n value: 'is',\n getApplyFilterFn: filterItem => {\n if (!filterItem.value) {\n return null;\n }\n\n const valueAsBoolean = filterItem.value === 'true';\n return ({\n value\n }) => {\n return Boolean(value) === valueAsBoolean;\n };\n },\n InputComponent: GridFilterInputBoolean\n}];","export const isEscapeKey = key => key === 'Escape'; // TODO remove\n\nexport const isEnterKey = key => key === 'Enter'; // TODO remove\n\nexport const isTabKey = key => key === 'Tab'; // TODO remove\n\nexport const isSpaceKey = key => key === ' ';\nexport const isArrowKeys = key => key.indexOf('Arrow') === 0;\nexport const isHomeOrEndKeys = key => key === 'Home' || key === 'End';\nexport const isPageKeys = key => key.indexOf('Page') === 0;\nexport const isDeleteKeys = key => key === 'Delete' || key === 'Backspace';\nconst printableCharRegex = /^(\\p{L}|\\p{M}\\p{L}|\\p{M}|\\p{N}|\\p{Z}|\\p{S}|\\p{P})$/iu;\nexport const isPrintableKey = key => printableCharRegex.test(key);\nexport const GRID_MULTIPLE_SELECTION_KEYS = ['Meta', 'Control', 'Shift'];\nexport const GRID_CELL_EXIT_EDIT_MODE_KEYS = ['Enter', 'Escape', 'Tab'];\nexport const GRID_CELL_EDIT_COMMIT_KEYS = ['Enter', 'Tab'];\nexport const isMultipleKey = key => GRID_MULTIPLE_SELECTION_KEYS.indexOf(key) > -1;\nexport const isCellEnterEditModeKeys = key => isEnterKey(key) || isDeleteKeys(key) || isPrintableKey(key);\nexport const isCellExitEditModeKeys = key => GRID_CELL_EXIT_EDIT_MODE_KEYS.indexOf(key) > -1;\nexport const isCellEditCommitKeys = key => GRID_CELL_EDIT_COMMIT_KEYS.indexOf(key) > -1;\nexport const isNavigationKey = key => isHomeOrEndKeys(key) || isArrowKeys(key) || isPageKeys(key) || isSpaceKey(key);\nexport const isKeyboardEvent = event => !!event.key;\nexport const isHideMenuKey = key => isTabKey(key) || isEscapeKey(key);","// TODO v6: rename to GridEditingState\nvar GridEditModes;\n\n(function (GridEditModes) {\n GridEditModes[\"Cell\"] = \"cell\";\n GridEditModes[\"Row\"] = \"row\";\n})(GridEditModes || (GridEditModes = {}));\n\nvar GridCellModes;\n\n(function (GridCellModes) {\n GridCellModes[\"Edit\"] = \"edit\";\n GridCellModes[\"View\"] = \"view\";\n})(GridCellModes || (GridCellModes = {}));\n\nvar GridRowModes;\n\n(function (GridRowModes) {\n GridRowModes[\"Edit\"] = \"edit\";\n GridRowModes[\"View\"] = \"view\";\n})(GridRowModes || (GridRowModes = {}));\n\nexport { GridEditModes, GridCellModes, GridRowModes };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"id\", \"value\", \"formattedValue\", \"api\", \"field\", \"row\", \"rowNode\", \"colDef\", \"cellMode\", \"isEditable\", \"tabIndex\", \"className\", \"getValue\", \"hasFocus\", \"isValidating\", \"isProcessingProps\", \"error\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';\nimport MenuItem from '@mui/material/MenuItem';\nimport { isEscapeKey } from '../../utils/keyboardUtils';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { GridEditModes } from '../../models/gridEditRowModel';\nimport { GridEvents } from '../../models/events/gridEvents';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst renderSingleSelectOptions = option => typeof option === 'object' ? /*#__PURE__*/_jsx(MenuItem, {\n value: option.value,\n children: option.label\n}, option.value) : /*#__PURE__*/_jsx(MenuItem, {\n value: option,\n children: option\n}, option);\n\nfunction GridEditSingleSelectCell(props) {\n var _rootProps$components;\n\n const {\n id,\n value,\n api,\n field,\n row,\n colDef,\n hasFocus,\n error\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ref = React.useRef();\n const inputRef = React.useRef();\n const rootProps = useGridRootProps();\n const [open, setOpen] = React.useState(rootProps.editMode === 'cell');\n let valueOptionsFormatted;\n\n if (typeof colDef.valueOptions === 'function') {\n valueOptionsFormatted = colDef.valueOptions({\n id,\n row,\n field\n });\n } else {\n valueOptionsFormatted = colDef.valueOptions;\n }\n\n if (colDef.valueFormatter) {\n valueOptionsFormatted = valueOptionsFormatted.map(option => {\n if (typeof option === 'object') {\n return option;\n }\n\n const params = {\n field,\n api,\n value: option\n };\n return {\n value: option,\n label: String(colDef.valueFormatter(params))\n };\n });\n }\n\n const handleChange = async event => {\n var _rootProps$experiment;\n\n setOpen(false);\n const target = event.target;\n const isValid = await api.setEditCellValue({\n id,\n field,\n value: target.value\n }, event);\n\n if ((_rootProps$experiment = rootProps.experimentalFeatures) != null && _rootProps$experiment.newEditingApi) {\n return;\n } // We use isValid === false because the default return is undefined which evaluates to true with !isValid\n\n\n if (rootProps.editMode === GridEditModes.Row || isValid === false) {\n return;\n }\n\n const canCommit = await Promise.resolve(api.commitCellChange({\n id,\n field\n }, event));\n\n if (canCommit) {\n api.setCellMode(id, field, 'view');\n\n if (event.key) {\n // TODO v6: remove once we stop ignoring events fired from portals\n const params = api.getCellParams(id, field);\n api.publishEvent(GridEvents.cellNavigationKeyDown, params, event);\n }\n }\n };\n\n const handleClose = (event, reason) => {\n if (rootProps.editMode === GridEditModes.Row) {\n setOpen(false);\n return;\n }\n\n if (reason === 'backdropClick' || isEscapeKey(event.key)) {\n var _rootProps$experiment2;\n\n if ((_rootProps$experiment2 = rootProps.experimentalFeatures) != null && _rootProps$experiment2.newEditingApi) {\n api.stopCellEditMode({\n id,\n field,\n ignoreModifications: true\n });\n } else {\n api.setCellMode(id, field, 'view');\n }\n }\n };\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n useEnhancedEffect(() => {\n if (hasFocus) {\n inputRef.current.focus();\n }\n }, [hasFocus]);\n return /*#__PURE__*/_jsx(rootProps.components.BaseSelect, _extends({\n ref: ref,\n inputRef: inputRef,\n value: value,\n onChange: handleChange,\n open: open,\n onOpen: handleOpen,\n MenuProps: {\n onClose: handleClose\n },\n error: error,\n fullWidth: true\n }, other, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseSelect, {\n children: valueOptionsFormatted.map(renderSingleSelectOptions)\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridEditSingleSelectCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * GridApi that let you manipulate the grid.\n * @deprecated Use the `apiRef` returned by `useGridApiContext` or `useGridApiRef` (only available in `@mui/x-data-grid-pro`)\n */\n api: PropTypes.any.isRequired,\n\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any.isRequired,\n\n /**\n * Get the cell value of a row and field.\n * @param {GridRowId} id The row id.\n * @param {string} field The field.\n * @returns {GridCellValue} The cell value.\n * @deprecated Use `params.row` to directly access the fields you want instead.\n */\n getValue: PropTypes.func.isRequired,\n\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n isProcessingProps: PropTypes.bool,\n isValidating: PropTypes.bool,\n\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired\n} : void 0;\nexport { GridEditSingleSelectCell };\nexport const renderEditSingleSelectCell = params => /*#__PURE__*/_jsx(GridEditSingleSelectCell, _extends({}, params));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/material/utils';\nimport { useGridRootProps } from '../../../hooks/utils/useGridRootProps';\nimport { getValueFromValueOptions } from './filterPanelUtils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst renderSingleSelectOptions = ({\n valueOptions,\n valueFormatter,\n field\n}, api) => {\n const iterableColumnValues = typeof valueOptions === 'function' ? ['', ...valueOptions({\n field\n })] : ['', ...(valueOptions || [])];\n return iterableColumnValues.map(option => typeof option === 'object' ? /*#__PURE__*/_jsx(\"option\", {\n value: option.value,\n children: option.label\n }, option.value) : /*#__PURE__*/_jsx(\"option\", {\n value: option,\n children: valueFormatter && option !== '' ? valueFormatter({\n value: option,\n field,\n api\n }) : option\n }, option));\n};\n\nfunction GridFilterInputSingleSelect(props) {\n var _item$value, _rootProps$components;\n\n const {\n item,\n applyValue,\n type,\n apiRef,\n focusElementRef\n } = props,\n others = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [filterValueState, setFilterValueState] = React.useState((_item$value = item.value) != null ? _item$value : '');\n const id = useId();\n const rootProps = useGridRootProps();\n const currentColumn = item.columnField ? apiRef.current.getColumn(item.columnField) : null;\n const currentValueOptions = React.useMemo(() => {\n return typeof currentColumn.valueOptions === 'function' ? currentColumn.valueOptions({\n field: currentColumn.field\n }) : currentColumn.valueOptions;\n }, [currentColumn]);\n const onFilterChange = React.useCallback(event => {\n let value = event.target.value; // NativeSelect casts the value to a string.\n\n value = getValueFromValueOptions(value, currentValueOptions);\n setFilterValueState(String(value));\n applyValue(_extends({}, item, {\n value\n }));\n }, [applyValue, item, currentValueOptions]);\n React.useEffect(() => {\n var _itemValue;\n\n let itemValue;\n\n if (currentValueOptions !== undefined) {\n // sanitize if valueOptions are provided\n itemValue = getValueFromValueOptions(item.value, currentValueOptions);\n\n if (itemValue !== item.value) {\n applyValue(_extends({}, item, {\n value: itemValue\n }));\n return;\n }\n } else {\n itemValue = item.value;\n }\n\n itemValue = (_itemValue = itemValue) != null ? _itemValue : '';\n setFilterValueState(String(itemValue));\n }, [item, currentValueOptions, applyValue]);\n return /*#__PURE__*/_jsx(rootProps.components.BaseTextField, _extends({\n id: id,\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),\n value: filterValueState,\n onChange: onFilterChange,\n type: type || 'text',\n variant: \"standard\",\n InputLabelProps: {\n shrink: true\n },\n inputRef: focusElementRef,\n select: true,\n SelectProps: {\n native: true\n }\n }, others, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseTextField, {\n children: renderSingleSelectOptions(apiRef.current.getColumn(item.columnField), apiRef.current)\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputSingleSelect.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.any.isRequired,\n applyValue: PropTypes.func.isRequired,\n focusElementRef: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.func, PropTypes.object]),\n item: PropTypes.shape({\n columnField: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operatorValue: PropTypes.string,\n value: PropTypes.any\n }).isRequired\n} : void 0;\nexport { GridFilterInputSingleSelect };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"item\", \"applyValue\", \"type\", \"apiRef\", \"focusElementRef\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Autocomplete, { createFilterOptions } from '@mui/material/Autocomplete';\nimport Chip from '@mui/material/Chip';\nimport TextField from '@mui/material/TextField';\nimport { unstable_useId as useId } from '@mui/material/utils';\nimport { getValueFromOption } from './filterPanelUtils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst isOptionEqualToValue = (option, value) => getValueFromOption(option) === getValueFromOption(value);\n\nconst filter = createFilterOptions();\n\nfunction GridFilterInputMultipleSingleSelect(props) {\n const {\n item,\n applyValue,\n apiRef,\n focusElementRef\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const id = useId();\n const resolvedColumn = item.columnField ? apiRef.current.getColumn(item.columnField) : null;\n const resolvedValueOptions = React.useMemo(() => {\n return typeof (resolvedColumn == null ? void 0 : resolvedColumn.valueOptions) === 'function' ? resolvedColumn.valueOptions({\n field: resolvedColumn.field\n }) : resolvedColumn == null ? void 0 : resolvedColumn.valueOptions;\n }, [resolvedColumn]);\n const resolvedFormattedValueOptions = React.useMemo(() => {\n return resolvedValueOptions == null ? void 0 : resolvedValueOptions.map(getValueFromOption);\n }, [resolvedValueOptions]);\n const {\n valueFormatter,\n field\n } = apiRef.current.getColumn(item.columnField);\n\n const filterValueOptionFormatter = option => {\n if (typeof option === 'object') {\n return option.label;\n }\n\n return valueFormatter && option !== '' ? valueFormatter({\n value: option,\n field,\n api: apiRef.current\n }) : option;\n }; // The value is computed from the item.value and used directly\n // If it was done by a useEffect/useState, the Autocomplete could receive incoherent value and options\n\n\n const filterValues = React.useMemo(() => {\n if (!Array.isArray(item.value)) {\n return [];\n }\n\n if (resolvedValueOptions !== undefined) {\n const itemValueIndexes = item.value.map(element => {\n // get the index matching between values and valueoptions\n const formattedElement = getValueFromOption(element);\n const index = (resolvedFormattedValueOptions == null ? void 0 : resolvedFormattedValueOptions.findIndex(formatedOption => formatedOption === formattedElement)) || 0;\n return index;\n });\n return itemValueIndexes.filter(index => index >= 0).map(index => resolvedValueOptions[index]);\n }\n\n return item.value;\n }, [item.value, resolvedValueOptions, resolvedFormattedValueOptions]);\n React.useEffect(() => {\n if (!Array.isArray(item.value) || filterValues.length !== item.value.length) {\n // update the state if the filter value has been cleaned by the component\n applyValue(_extends({}, item, {\n value: filterValues.map(getValueFromOption)\n }));\n }\n }, [item, filterValues, applyValue]);\n const handleChange = React.useCallback((event, value) => {\n applyValue(_extends({}, item, {\n value: [...value.map(getValueFromOption)]\n }));\n }, [applyValue, item]);\n return /*#__PURE__*/_jsx(Autocomplete, _extends({\n multiple: true,\n freeSolo: false,\n limitTags: 1,\n options: resolvedValueOptions // TODO: avoid `any`?\n ,\n isOptionEqualToValue: isOptionEqualToValue,\n filterOptions: filter,\n id: id,\n value: filterValues,\n onChange: handleChange,\n renderTags: (value, getTagProps) => value.map((option, index) => /*#__PURE__*/_jsx(Chip, _extends({\n variant: \"outlined\",\n size: \"small\",\n label: filterValueOptionFormatter(option)\n }, getTagProps({\n index\n })))),\n renderInput: params => /*#__PURE__*/_jsx(TextField, _extends({}, params, {\n label: apiRef.current.getLocaleText('filterPanelInputLabel'),\n placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),\n InputLabelProps: _extends({}, params.InputLabelProps, {\n shrink: true\n }),\n inputRef: focusElementRef,\n type: 'singleSelect',\n variant: \"standard\"\n }))\n }, other));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridFilterInputMultipleSingleSelect.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n apiRef: PropTypes.shape({\n current: PropTypes.object.isRequired\n }).isRequired,\n applyValue: PropTypes.func.isRequired,\n focusElementRef: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.func, PropTypes.object]),\n item: PropTypes.shape({\n columnField: PropTypes.string.isRequired,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n operatorValue: PropTypes.string,\n value: PropTypes.any\n }).isRequired,\n type: PropTypes.oneOf(['singleSelect'])\n} : void 0;\nexport { GridFilterInputMultipleSingleSelect };","import { GridFilterInputSingleSelect } from '../components/panel/filterPanel/GridFilterInputSingleSelect';\nimport { GridFilterInputMultipleSingleSelect } from '../components/panel/filterPanel/GridFilterInputMultipleSingleSelect';\n\nconst parseObjectValue = value => {\n if (value == null || typeof value !== 'object') {\n return value;\n }\n\n return value.value;\n};\n\nexport const getGridSingleSelectOperators = () => [{\n value: 'is',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || filterItem.value === '') {\n return null;\n }\n\n return ({\n value\n }) => parseObjectValue(value) === parseObjectValue(filterItem.value);\n },\n InputComponent: GridFilterInputSingleSelect\n}, {\n value: 'not',\n getApplyFilterFn: filterItem => {\n if (filterItem.value == null || filterItem.value === '') {\n return null;\n }\n\n return ({\n value\n }) => parseObjectValue(value) !== parseObjectValue(filterItem.value);\n },\n InputComponent: GridFilterInputSingleSelect\n}, {\n value: 'isAnyOf',\n getApplyFilterFn: filterItem => {\n if (!Array.isArray(filterItem.value) || filterItem.value.length === 0) {\n return null;\n }\n\n const filterItemValues = filterItem.value.map(parseObjectValue);\n return ({\n value\n }) => filterItemValues.includes(parseObjectValue(value));\n },\n InputComponent: GridFilterInputMultipleSingleSelect\n}];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { GRID_STRING_COL_DEF } from './gridStringColDef';\nimport { renderEditSingleSelectCell } from '../components/cell/GridEditSingleSelectCell';\nimport { getGridSingleSelectOperators } from './gridSingleSelectOperators';\nexport const GRID_SINGLE_SELECT_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n type: 'singleSelect',\n renderEditCell: renderEditSingleSelectCell,\n filterOperators: getGridSingleSelectOperators()\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"open\", \"target\", \"onClickAway\", \"children\", \"position\", \"className\", \"onExited\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ClickAwayListener from '@mui/material/ClickAwayListener';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport Grow from '@mui/material/Grow';\nimport Paper from '@mui/material/Paper';\nimport Popper from '@mui/material/Popper';\nimport { styled } from '@mui/material/styles';\nimport { HTMLElementType } from '@mui/utils';\nimport { getDataGridUtilityClass, gridClasses } from '../../constants/gridClasses';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['menu']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nconst GridMenuRoot = styled(Popper, {\n name: 'MuiDataGrid',\n slot: 'Menu',\n overridesResolver: (props, styles) => styles.menu\n})(({\n theme\n}) => ({\n zIndex: theme.zIndex.modal,\n [`& .${gridClasses.menuList}`]: {\n outline: 0\n }\n}));\nconst transformOrigin = {\n 'bottom-start': 'top left',\n 'bottom-end': 'top right'\n};\n\nconst GridMenu = props => {\n var _rootProps$components;\n\n const {\n open,\n target,\n onClickAway,\n children,\n position,\n className,\n onExited\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const prevTarget = React.useRef(target);\n const prevOpen = React.useRef(open);\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n React.useEffect(() => {\n if (prevOpen.current && prevTarget.current) {\n prevTarget.current.focus();\n }\n\n prevOpen.current = open;\n prevTarget.current = target;\n }, [open, target]);\n\n const handleExited = popperOnExited => node => {\n if (popperOnExited) {\n popperOnExited();\n }\n\n if (onExited) {\n onExited(node);\n }\n };\n\n return /*#__PURE__*/_jsx(GridMenuRoot, _extends({\n as: rootProps.components.BasePopper,\n className: clsx(className, classes.root),\n open: open,\n anchorEl: target,\n transition: true,\n placement: position\n }, other, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.basePopper, {\n children: ({\n TransitionProps,\n placement\n }) => /*#__PURE__*/_jsx(ClickAwayListener, {\n onClickAway: onClickAway,\n children: /*#__PURE__*/_jsx(Grow, _extends({}, TransitionProps, {\n style: {\n transformOrigin: transformOrigin[placement]\n },\n onExited: handleExited(TransitionProps == null ? void 0 : TransitionProps.onExited),\n children: /*#__PURE__*/_jsx(Paper, {\n children: children\n })\n }))\n })\n }));\n};\n\nprocess.env.NODE_ENV !== \"production\" ? GridMenu.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n onClickAway: PropTypes.func.isRequired,\n onExited: PropTypes.func,\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n position: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n target: HTMLElementType\n} : void 0;\nexport { GridMenu };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport IconButton from '@mui/material/IconButton';\nimport MenuList from '@mui/material/MenuList';\nimport { unstable_useId as useId } from '@mui/material/utils';\nimport { gridClasses } from '../../constants/gridClasses';\nimport { GridMenu } from '../menu/GridMenu';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst hasActions = colDef => typeof colDef.getActions === 'function';\n\nconst GridActionsCell = props => {\n const [open, setOpen] = React.useState(false);\n const buttonRef = React.useRef(null);\n const touchRippleRefs = React.useRef({});\n const menuId = useId();\n const buttonId = useId();\n const rootProps = useGridRootProps();\n const {\n colDef,\n id,\n api,\n hasFocus,\n position = 'bottom-end'\n } = props; // TODO apply the rest to the root element\n\n React.useLayoutEffect(() => {\n if (!hasFocus) {\n Object.entries(touchRippleRefs.current).forEach(([index, ref]) => {\n ref == null ? void 0 : ref.stop({}, () => {\n delete touchRippleRefs.current[index];\n });\n });\n }\n }, [hasFocus]);\n\n if (!hasActions(colDef)) {\n throw new Error('MUI: Missing the `getActions` property in the `GridColDef`.');\n }\n\n const showMenu = () => setOpen(true);\n\n const hideMenu = () => setOpen(false);\n\n const options = colDef.getActions(api.getRowParams(id));\n const iconButtons = options.filter(option => !option.props.showInMenu);\n const menuButtons = options.filter(option => option.props.showInMenu);\n\n const handleTouchRippleRef = index => instance => {\n touchRippleRefs.current[index] = instance;\n };\n\n return /*#__PURE__*/_jsxs(\"div\", {\n className: gridClasses.actionsCell,\n children: [iconButtons.map((button, index) => /*#__PURE__*/React.cloneElement(button, {\n key: index,\n touchRippleRef: handleTouchRippleRef(index)\n })), menuButtons.length > 0 && /*#__PURE__*/_jsx(IconButton, {\n ref: buttonRef,\n id: buttonId,\n \"aria-label\": api.getLocaleText('actionsCellMore'),\n \"aria-controls\": menuId,\n \"aria-expanded\": open ? 'true' : undefined,\n \"aria-haspopup\": \"true\",\n size: \"small\",\n onClick: showMenu,\n children: /*#__PURE__*/_jsx(rootProps.components.MoreActionsIcon, {\n fontSize: \"small\"\n })\n }), menuButtons.length > 0 && /*#__PURE__*/_jsx(GridMenu, {\n id: menuId,\n onClickAway: hideMenu,\n onClick: hideMenu,\n open: open,\n target: buttonRef.current,\n position: position,\n \"aria-labelledby\": buttonId,\n children: /*#__PURE__*/_jsx(MenuList, {\n className: gridClasses.menuList,\n children: menuButtons.map((button, index) => /*#__PURE__*/React.cloneElement(button, {\n key: index\n }))\n })\n })]\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? GridActionsCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * GridApi that let you manipulate the grid.\n * @deprecated Use the `apiRef` returned by `useGridApiContext` or `useGridApiRef` (only available in `@mui/x-data-grid-pro`)\n */\n api: PropTypes.any.isRequired,\n\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n position: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top'])\n} : void 0;\nexport { GridActionsCell };\nexport const renderActionsCell = params => /*#__PURE__*/_jsx(GridActionsCell, _extends({}, params));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { GRID_STRING_COL_DEF } from './gridStringColDef';\nimport { renderActionsCell } from '../components/cell/GridActionsCell';\nexport const GRID_ACTIONS_COLUMN_TYPE = 'actions';\nexport const GRID_ACTIONS_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {\n sortable: false,\n filterable: false,\n width: 100,\n align: 'center',\n headerAlign: 'center',\n headerName: '',\n disableColumnMenu: true,\n disableExport: true,\n renderCell: renderActionsCell\n});","import { GRID_STRING_COL_DEF } from '../../colDef/gridStringColDef';\nimport { GRID_NUMERIC_COL_DEF } from '../../colDef/gridNumericColDef';\nimport { GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF } from '../../colDef/gridDateColDef';\nimport { GRID_BOOLEAN_COL_DEF } from '../../colDef/gridBooleanColDef';\nimport { GRID_SINGLE_SELECT_COL_DEF } from '../../colDef/gridSingleSelectColDef';\nimport { GRID_ACTIONS_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../../colDef/gridActionsColDef';\nexport const DEFAULT_GRID_COL_TYPE_KEY = '__default__';\nexport const getGridDefaultColumnTypes = () => {\n const nativeColumnTypes = {\n string: GRID_STRING_COL_DEF,\n number: GRID_NUMERIC_COL_DEF,\n date: GRID_DATE_COL_DEF,\n dateTime: GRID_DATETIME_COL_DEF,\n boolean: GRID_BOOLEAN_COL_DEF,\n singleSelect: GRID_SINGLE_SELECT_COL_DEF,\n [GRID_ACTIONS_COLUMN_TYPE]: GRID_ACTIONS_COL_DEF,\n [DEFAULT_GRID_COL_TYPE_KEY]: GRID_STRING_COL_DEF\n };\n return nativeColumnTypes;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { DEFAULT_GRID_COL_TYPE_KEY, getGridDefaultColumnTypes } from '../../../models';\nimport { gridColumnsSelector, gridColumnVisibilityModelSelector } from './gridColumnsSelector';\nimport { clamp } from '../../../utils/utils';\nexport const COLUMNS_DIMENSION_PROPERTIES = ['maxWidth', 'minWidth', 'width', 'flex'];\nexport const computeColumnTypes = (customColumnTypes = {}) => {\n const mergedColumnTypes = _extends({}, getGridDefaultColumnTypes());\n\n Object.entries(customColumnTypes).forEach(([colType, colTypeDef]) => {\n if (mergedColumnTypes[colType]) {\n mergedColumnTypes[colType] = _extends({}, mergedColumnTypes[colType], colTypeDef);\n } else {\n mergedColumnTypes[colType] = _extends({}, mergedColumnTypes[colTypeDef.extendType || DEFAULT_GRID_COL_TYPE_KEY], colTypeDef);\n }\n });\n return mergedColumnTypes;\n};\n/**\n * Computes width for flex columns.\n * Based on CSS Flexbox specification:\n * https://drafts.csswg.org/css-flexbox-1/#resolve-flexible-lengths\n */\n\nexport function computeFlexColumnsWidth({\n initialFreeSpace,\n totalFlexUnits,\n flexColumns\n}) {\n const flexColumnsLookup = {\n all: {},\n frozenFields: [],\n freeze: field => {\n const value = flexColumnsLookup.all[field];\n\n if (value && value.frozen !== true) {\n flexColumnsLookup.all[field].frozen = true;\n flexColumnsLookup.frozenFields.push(field);\n }\n }\n }; // Step 5 of https://drafts.csswg.org/css-flexbox-1/#resolve-flexible-lengths\n\n function loopOverFlexItems() {\n // 5a: If all the flex items on the line are frozen, free space has been distributed.\n if (flexColumnsLookup.frozenFields.length === flexColumns.length) {\n return;\n }\n\n const violationsLookup = {\n min: {},\n max: {}\n };\n let remainingFreeSpace = initialFreeSpace;\n let flexUnits = totalFlexUnits;\n let totalViolation = 0; // 5b: Calculate the remaining free space\n\n flexColumnsLookup.frozenFields.forEach(field => {\n remainingFreeSpace -= flexColumnsLookup.all[field].computedWidth;\n flexUnits -= flexColumnsLookup.all[field].flex;\n });\n\n for (let i = 0; i < flexColumns.length; i += 1) {\n const column = flexColumns[i];\n\n if (flexColumnsLookup.all[column.field] && flexColumnsLookup.all[column.field].frozen === true) {\n // eslint-disable-next-line no-continue\n continue;\n } // 5c: Distribute remaining free space proportional to the flex factors\n\n\n const widthPerFlexUnit = remainingFreeSpace / flexUnits;\n let computedWidth = widthPerFlexUnit * column.flex; // 5d: Fix min/max violations\n\n if (computedWidth < column.minWidth) {\n totalViolation += column.minWidth - computedWidth;\n computedWidth = column.minWidth;\n violationsLookup.min[column.field] = true;\n } else if (computedWidth > column.maxWidth) {\n totalViolation += column.maxWidth - computedWidth;\n computedWidth = column.maxWidth;\n violationsLookup.max[column.field] = true;\n }\n\n flexColumnsLookup.all[column.field] = {\n frozen: false,\n computedWidth,\n flex: column.flex\n };\n } // 5e: Freeze over-flexed items\n\n\n if (totalViolation < 0) {\n // Freeze all the items with max violations\n Object.keys(violationsLookup.max).forEach(field => {\n flexColumnsLookup.freeze(field);\n });\n } else if (totalViolation > 0) {\n // Freeze all the items with min violations\n Object.keys(violationsLookup.min).forEach(field => {\n flexColumnsLookup.freeze(field);\n });\n } else {\n // Freeze all items\n flexColumns.forEach(({\n field\n }) => {\n flexColumnsLookup.freeze(field);\n });\n } // 5f: Return to the start of this loop\n\n\n loopOverFlexItems();\n }\n\n loopOverFlexItems();\n return flexColumnsLookup.all;\n}\n/**\n * Compute the `computedWidth` (ie: the width the column should have during rendering) based on the `width` / `flex` / `minWidth` / `maxWidth` properties of `GridColDef`.\n * The columns already have been merged with there `type` default values for `minWidth`, `maxWidth` and `width`, thus the `!` for those properties below.\n * TODO: Unit test this function in depth and only keep basic cases for the whole grid testing.\n * TODO: Improve the `GridColDef` typing to reflect the fact that `minWidth` / `maxWidth` and `width` can't be null after the merge with the `type` default values.\n */\n\nexport const hydrateColumnsWidth = (rawState, viewportInnerWidth) => {\n const columnsLookup = {};\n let totalFlexUnits = 0;\n let widthAllocatedBeforeFlex = 0;\n const flexColumns = []; // For the non-flex columns, compute their width\n // For the flex columns, compute there minimum width and how much width must be allocated during the flex allocation\n\n rawState.all.forEach(columnField => {\n const newColumn = _extends({}, rawState.lookup[columnField]);\n\n if (rawState.columnVisibilityModel[columnField] === false) {\n newColumn.computedWidth = 0;\n } else {\n let computedWidth;\n\n if (newColumn.flex && newColumn.flex > 0) {\n totalFlexUnits += newColumn.flex;\n computedWidth = 0;\n flexColumns.push(newColumn);\n } else {\n computedWidth = clamp(newColumn.width, newColumn.minWidth, newColumn.maxWidth);\n }\n\n widthAllocatedBeforeFlex += computedWidth;\n newColumn.computedWidth = computedWidth;\n }\n\n columnsLookup[columnField] = newColumn;\n });\n const initialFreeSpace = Math.max(viewportInnerWidth - widthAllocatedBeforeFlex, 0); // Allocate the remaining space to the flex columns\n\n if (totalFlexUnits > 0 && viewportInnerWidth > 0) {\n const computedColumnWidths = computeFlexColumnsWidth({\n initialFreeSpace,\n totalFlexUnits,\n flexColumns\n });\n Object.keys(computedColumnWidths).forEach(field => {\n columnsLookup[field].computedWidth = computedColumnWidths[field].computedWidth;\n });\n }\n\n return _extends({}, rawState, {\n lookup: columnsLookup\n });\n};\nlet columnTypeWarnedOnce = false;\n/**\n * Apply the order and the dimensions of the initial state.\n * The columns not registered in `orderedFields` will be placed after the imported columns.\n */\n\nexport const applyInitialState = (columnsState, initialState) => {\n if (!initialState) {\n return columnsState;\n }\n\n const {\n orderedFields = [],\n dimensions = {}\n } = initialState;\n const columnsWithUpdatedDimensions = Object.keys(dimensions);\n\n if (columnsWithUpdatedDimensions.length === 0 && orderedFields.length === 0) {\n return columnsState;\n }\n\n const orderedFieldsLookup = {};\n const cleanOrderedFields = [];\n\n for (let i = 0; i < orderedFields.length; i += 1) {\n const field = orderedFields[i]; // Ignores the fields in the initialState that matches no field on the current column state\n\n if (columnsState.lookup[field]) {\n orderedFieldsLookup[field] = true;\n cleanOrderedFields.push(field);\n }\n }\n\n const newOrderedFields = cleanOrderedFields.length === 0 ? columnsState.all : [...cleanOrderedFields, ...columnsState.all.filter(field => !orderedFieldsLookup[field])];\n\n const newColumnLookup = _extends({}, columnsState.lookup);\n\n for (let i = 0; i < columnsWithUpdatedDimensions.length; i += 1) {\n const field = columnsWithUpdatedDimensions[i];\n newColumnLookup[field] = _extends({}, newColumnLookup[field], dimensions[field], {\n hasBeenResized: true\n });\n }\n\n const newColumnsState = {\n all: newOrderedFields,\n lookup: newColumnLookup\n };\n return newColumnsState;\n};\n/**\n * @deprecated Should have been internal only, you can inline the logic.\n */\n\nexport const getGridColDef = (columnTypes, type) => {\n if (!type) {\n return columnTypes[DEFAULT_GRID_COL_TYPE_KEY];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!columnTypeWarnedOnce && !columnTypes[type]) {\n console.warn([`MUI: The column type \"${type}\" you are using is not supported.`, `Column type \"string\" is being used instead.`].join('\\n'));\n columnTypeWarnedOnce = true;\n }\n }\n\n if (!columnTypes[type]) {\n return columnTypes[DEFAULT_GRID_COL_TYPE_KEY];\n }\n\n return columnTypes[type];\n};\nexport const createColumnsState = ({\n apiRef,\n columnsToUpsert,\n initialState,\n columnsTypes,\n currentColumnVisibilityModel = gridColumnVisibilityModelSelector(apiRef),\n shouldRegenColumnVisibilityModelFromColumns,\n keepOnlyColumnsToUpsert = false\n}) => {\n var _apiRef$current$getRo, _apiRef$current$getRo2, _apiRef$current, _apiRef$current$getRo3;\n\n const isInsideStateInitializer = !apiRef.current.state.columns;\n let columnsStateWithoutColumnVisibilityModel;\n\n if (isInsideStateInitializer || keepOnlyColumnsToUpsert) {\n columnsStateWithoutColumnVisibilityModel = {\n all: [],\n lookup: {}\n };\n } else {\n const currentState = gridColumnsSelector(apiRef.current.state);\n columnsStateWithoutColumnVisibilityModel = {\n all: [...currentState.all],\n lookup: _extends({}, currentState.lookup)\n };\n }\n\n const columnsToUpsertLookup = {};\n columnsToUpsert.forEach(newColumn => {\n columnsToUpsertLookup[newColumn.field] = true;\n\n if (columnsStateWithoutColumnVisibilityModel.lookup[newColumn.field] == null) {\n // New Column\n columnsStateWithoutColumnVisibilityModel.lookup[newColumn.field] = _extends({}, getGridColDef(columnsTypes, newColumn.type), newColumn);\n columnsStateWithoutColumnVisibilityModel.all.push(newColumn.field);\n } else {\n const mergedColumn = _extends({}, columnsStateWithoutColumnVisibilityModel.lookup[newColumn.field], newColumn);\n\n if (!mergedColumn.hasBeenResized && COLUMNS_DIMENSION_PROPERTIES.some(propertyName => newColumn[propertyName] !== undefined)) {\n mergedColumn.hasBeenResized = true;\n }\n\n columnsStateWithoutColumnVisibilityModel.lookup[newColumn.field] = mergedColumn;\n }\n });\n\n const columnsLookupBeforePreProcessing = _extends({}, columnsStateWithoutColumnVisibilityModel.lookup);\n\n const columnsStateWithPreProcessing = apiRef.current.unstable_applyPreProcessors('hydrateColumns', columnsStateWithoutColumnVisibilityModel); // TODO v6: remove the sync between the columns `hide` option and the model.\n\n let columnVisibilityModel = {};\n\n if (shouldRegenColumnVisibilityModelFromColumns) {\n let hasModelChanged = false;\n\n const newColumnVisibilityModel = _extends({}, currentColumnVisibilityModel);\n\n if (isInsideStateInitializer) {\n columnsStateWithPreProcessing.all.forEach(field => {\n newColumnVisibilityModel[field] = !columnsStateWithoutColumnVisibilityModel.lookup[field].hide;\n });\n } else if (keepOnlyColumnsToUpsert) {\n // At this point, `keepOnlyColumnsToUpsert` has a new meaning: keep the columns\n // passed via `columnToUpsert` + columns added by the pre-processors. We do the following\n // cleanup because a given column may have been removed from the `columns` prop but it still\n // exists in the state.\n Object.keys(newColumnVisibilityModel).forEach(field => {\n if (!columnsStateWithPreProcessing.lookup[field]) {\n delete newColumnVisibilityModel[field];\n hasModelChanged = true;\n }\n });\n }\n\n columnsStateWithPreProcessing.all.forEach(field => {\n // If neither the `columnsToUpsert` nor the pre-processors updated the column,\n // Then we don't want to update the visibility status of the column in the model.\n if (!columnsToUpsertLookup[field] && columnsLookupBeforePreProcessing[field] === columnsStateWithPreProcessing.lookup[field]) {\n return;\n } // We always assume that a column not in the model is visible by default. However, there's an\n // edge case where the column is not in the model but it also doesn't exist in the `columns`\n // prop, meaning that the column is being added. In that case, we assume that the column was\n // not visible before for it be added to the model.\n\n\n let isVisibleBefore = currentColumnVisibilityModel[field];\n\n if (isVisibleBefore === undefined) {\n if (isInsideStateInitializer) {\n isVisibleBefore = true;\n } else {\n const currentState = gridColumnsSelector(apiRef.current.state);\n isVisibleBefore = !!currentState.lookup[field];\n }\n }\n\n const isVisibleAfter = !columnsStateWithPreProcessing.lookup[field].hide;\n\n if (isVisibleAfter !== isVisibleBefore) {\n hasModelChanged = true;\n newColumnVisibilityModel[field] = isVisibleAfter;\n }\n });\n\n if (hasModelChanged || isInsideStateInitializer) {\n columnVisibilityModel = newColumnVisibilityModel;\n } else {\n columnVisibilityModel = currentColumnVisibilityModel;\n }\n } else {\n columnVisibilityModel = currentColumnVisibilityModel;\n }\n\n const columnsStateWithPortableColumns = applyInitialState(columnsStateWithPreProcessing, initialState);\n\n const columnsState = _extends({}, columnsStateWithPortableColumns, {\n columnVisibilityModel\n });\n\n return hydrateColumnsWidth(columnsState, (_apiRef$current$getRo = (_apiRef$current$getRo2 = (_apiRef$current = apiRef.current).getRootDimensions) == null ? void 0 : (_apiRef$current$getRo3 = _apiRef$current$getRo2.call(_apiRef$current)) == null ? void 0 : _apiRef$current$getRo3.viewportInnerSize.width) != null ? _apiRef$current$getRo : 0);\n};\nexport const mergeColumnsState = columnsState => state => _extends({}, state, {\n columns: columnsState\n});","var GridPreferencePanelsValue;\n\n(function (GridPreferencePanelsValue) {\n GridPreferencePanelsValue[\"filters\"] = \"filters\";\n GridPreferencePanelsValue[\"columns\"] = \"columns\";\n})(GridPreferencePanelsValue || (GridPreferencePanelsValue = {}));\n\nexport { GridPreferencePanelsValue };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridEvents } from '../../../models/events';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridColumnFieldsSelector, gridColumnDefinitionsSelector, gridColumnLookupSelector, gridColumnsMetaSelector, gridColumnsSelector, gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from './gridColumnsSelector';\nimport { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';\nimport { useGridRegisterPreProcessor } from '../../core/preProcessing';\nimport { hydrateColumnsWidth, computeColumnTypes, createColumnsState, mergeColumnsState, COLUMNS_DIMENSION_PROPERTIES } from './gridColumnsUtils';\nimport { GridPreferencePanelsValue } from '../preferencesPanel';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const columnsStateInitializer = (state, props, apiRef) => {\n var _props$initialState, _props$initialState$c, _props$initialState2, _ref, _props$columnVisibili, _props$initialState3, _props$initialState3$;\n\n const isUsingColumnVisibilityModel = !!props.columnVisibilityModel || !!((_props$initialState = props.initialState) != null && (_props$initialState$c = _props$initialState.columns) != null && _props$initialState$c.columnVisibilityModel);\n const columnsTypes = computeColumnTypes(props.columnTypes);\n const columnsState = createColumnsState({\n apiRef,\n columnsTypes,\n columnsToUpsert: props.columns,\n initialState: (_props$initialState2 = props.initialState) == null ? void 0 : _props$initialState2.columns,\n shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel,\n currentColumnVisibilityModel: (_ref = (_props$columnVisibili = props.columnVisibilityModel) != null ? _props$columnVisibili : (_props$initialState3 = props.initialState) == null ? void 0 : (_props$initialState3$ = _props$initialState3.columns) == null ? void 0 : _props$initialState3$.columnVisibilityModel) != null ? _ref : {},\n keepOnlyColumnsToUpsert: true\n });\n return _extends({}, state, {\n columns: columnsState\n });\n};\n/**\n * @requires useGridParamsApi (method)\n * @requires useGridDimensions (method, event) - can be after\n * TODO: Impossible priority - useGridParamsApi also needs to be after useGridColumns\n */\n\nexport function useGridColumns(apiRef, props) {\n var _props$initialState4, _props$initialState4$, _props$componentsProp2;\n\n const logger = useGridLogger(apiRef, 'useGridColumns');\n const columnsTypes = React.useMemo(() => computeColumnTypes(props.columnTypes), [props.columnTypes]);\n /**\n * If `initialState.columns.columnVisibilityModel` or `columnVisibilityModel` was defined during the 1st render, we are directly updating the model\n * If not, we keep the old behavior and update the `GridColDef.hide` option (which will update the state model through the `GridColDef.hide` => `columnVisibilityModel` sync in `createColumnsState`\n */\n\n const isUsingColumnVisibilityModel = React.useRef(!!props.columnVisibilityModel || !!((_props$initialState4 = props.initialState) != null && (_props$initialState4$ = _props$initialState4.columns) != null && _props$initialState4$.columnVisibilityModel)).current;\n apiRef.current.unstable_updateControlState({\n stateId: 'visibleColumns',\n propModel: props.columnVisibilityModel,\n propOnChange: props.onColumnVisibilityModelChange,\n stateSelector: gridColumnVisibilityModelSelector,\n changeEvent: GridEvents.columnVisibilityModelChange\n });\n const setGridColumnsState = React.useCallback(columnsState => {\n logger.debug('Updating columns state.');\n apiRef.current.setState(mergeColumnsState(columnsState));\n apiRef.current.forceUpdate();\n apiRef.current.publishEvent(GridEvents.columnsChange, columnsState.all);\n }, [logger, apiRef]);\n /**\n * API METHODS\n */\n\n const getColumn = React.useCallback(field => gridColumnLookupSelector(apiRef)[field], [apiRef]);\n const getAllColumns = React.useCallback(() => gridColumnDefinitionsSelector(apiRef), [apiRef]);\n const getVisibleColumns = React.useCallback(() => gridVisibleColumnDefinitionsSelector(apiRef), [apiRef]);\n const getColumnsMeta = React.useCallback(() => gridColumnsMetaSelector(apiRef), [apiRef]);\n const getColumnIndex = React.useCallback((field, useVisibleColumns = true) => {\n const columns = useVisibleColumns ? gridVisibleColumnDefinitionsSelector(apiRef) : gridColumnDefinitionsSelector(apiRef);\n return columns.findIndex(col => col.field === field);\n }, [apiRef]);\n const getColumnPosition = React.useCallback(field => {\n const index = getColumnIndex(field);\n return gridColumnPositionsSelector(apiRef)[index];\n }, [apiRef, getColumnIndex]);\n const setColumnVisibilityModel = React.useCallback(model => {\n const currentModel = gridColumnVisibilityModelSelector(apiRef);\n\n if (currentModel !== model) {\n apiRef.current.setState(state => _extends({}, state, {\n columns: createColumnsState({\n apiRef,\n columnsTypes,\n columnsToUpsert: [],\n initialState: undefined,\n shouldRegenColumnVisibilityModelFromColumns: false,\n currentColumnVisibilityModel: model,\n keepOnlyColumnsToUpsert: false\n })\n }));\n apiRef.current.forceUpdate();\n }\n }, [apiRef, columnsTypes]);\n const updateColumns = React.useCallback(columns => {\n const columnsState = createColumnsState({\n apiRef,\n columnsTypes,\n columnsToUpsert: columns,\n initialState: undefined,\n shouldRegenColumnVisibilityModelFromColumns: true,\n keepOnlyColumnsToUpsert: false\n });\n setGridColumnsState(columnsState);\n }, [apiRef, setGridColumnsState, columnsTypes]);\n const updateColumn = React.useCallback(column => apiRef.current.updateColumns([column]), [apiRef]);\n const setColumnVisibility = React.useCallback((field, isVisible) => {\n // We keep updating the `hide` option of `GridColDef` when not controlling the model to avoid any breaking change.\n // `updateColumns` take care of updating the model itself if needs be.\n // TODO v6: stop using the `hide` field even when the model is not defined\n if (isUsingColumnVisibilityModel) {\n var _columnVisibilityMode;\n\n const columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef);\n const isCurrentlyVisible = (_columnVisibilityMode = columnVisibilityModel[field]) != null ? _columnVisibilityMode : true;\n\n if (isVisible !== isCurrentlyVisible) {\n const newModel = _extends({}, columnVisibilityModel, {\n [field]: isVisible\n });\n\n apiRef.current.setColumnVisibilityModel(newModel);\n }\n } else {\n const column = apiRef.current.getColumn(field);\n\n const newColumn = _extends({}, column, {\n hide: !isVisible\n });\n\n apiRef.current.updateColumns([newColumn]);\n const params = {\n field,\n colDef: newColumn,\n isVisible\n };\n apiRef.current.publishEvent(GridEvents.columnVisibilityChange, params);\n }\n }, [apiRef, isUsingColumnVisibilityModel]);\n const setColumnIndex = React.useCallback((field, targetIndexPosition) => {\n const allColumns = gridColumnFieldsSelector(apiRef);\n const oldIndexPosition = allColumns.findIndex(col => col === field);\n\n if (oldIndexPosition === targetIndexPosition) {\n return;\n }\n\n logger.debug(`Moving column ${field} to index ${targetIndexPosition}`);\n const updatedColumns = [...allColumns];\n updatedColumns.splice(targetIndexPosition, 0, updatedColumns.splice(oldIndexPosition, 1)[0]);\n setGridColumnsState(_extends({}, gridColumnsSelector(apiRef.current.state), {\n all: updatedColumns\n }));\n const params = {\n field,\n element: apiRef.current.getColumnHeaderElement(field),\n colDef: apiRef.current.getColumn(field),\n targetIndex: targetIndexPosition,\n oldIndex: oldIndexPosition\n };\n apiRef.current.publishEvent(GridEvents.columnOrderChange, params);\n }, [apiRef, logger, setGridColumnsState]);\n const setColumnWidth = React.useCallback((field, width) => {\n logger.debug(`Updating column ${field} width to ${width}`);\n const column = apiRef.current.getColumn(field);\n\n const newColumn = _extends({}, column, {\n width\n });\n\n apiRef.current.updateColumns([newColumn]);\n apiRef.current.publishEvent(GridEvents.columnWidthChange, {\n element: apiRef.current.getColumnHeaderElement(field),\n colDef: newColumn,\n width\n });\n }, [apiRef, logger]);\n const columnApi = {\n getColumn,\n getAllColumns,\n getColumnIndex,\n getColumnPosition,\n getVisibleColumns,\n getColumnsMeta,\n updateColumn,\n updateColumns,\n setColumnVisibilityModel,\n setColumnVisibility,\n setColumnIndex,\n setColumnWidth\n };\n useGridApiMethod(apiRef, columnApi, 'GridColumnApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback(prevState => {\n const columnsStateToExport = {};\n\n if (isUsingColumnVisibilityModel) {\n const columnVisibilityModelToExport = gridColumnVisibilityModelSelector(apiRef);\n const hasHiddenColumns = Object.values(columnVisibilityModelToExport).some(value => value === false);\n\n if (hasHiddenColumns) {\n columnsStateToExport.columnVisibilityModel = columnVisibilityModelToExport;\n }\n }\n\n columnsStateToExport.orderedFields = gridColumnFieldsSelector(apiRef);\n const columns = gridColumnDefinitionsSelector(apiRef);\n const dimensions = {};\n columns.forEach(colDef => {\n if (colDef.hasBeenResized) {\n const colDefDimensions = {};\n COLUMNS_DIMENSION_PROPERTIES.forEach(propertyName => {\n colDefDimensions[propertyName] = colDef[propertyName];\n });\n dimensions[colDef.field] = colDefDimensions;\n }\n });\n\n if (Object.keys(dimensions).length > 0) {\n columnsStateToExport.dimensions = dimensions;\n }\n\n return _extends({}, prevState, {\n columns: columnsStateToExport\n });\n }, [apiRef, isUsingColumnVisibilityModel]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n var _context$stateToResto;\n\n const columnVisibilityModelToImport = isUsingColumnVisibilityModel ? (_context$stateToResto = context.stateToRestore.columns) == null ? void 0 : _context$stateToResto.columnVisibilityModel : undefined;\n const initialState = context.stateToRestore.columns;\n\n if (columnVisibilityModelToImport == null && initialState == null) {\n return params;\n }\n\n const columnsState = createColumnsState({\n apiRef,\n columnsTypes,\n columnsToUpsert: [],\n initialState,\n shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel,\n currentColumnVisibilityModel: columnVisibilityModelToImport,\n keepOnlyColumnsToUpsert: false\n });\n apiRef.current.setState(mergeColumnsState(columnsState));\n\n if (initialState != null) {\n apiRef.current.publishEvent(GridEvents.columnsChange, columnsState.all);\n }\n\n return params;\n }, [apiRef, isUsingColumnVisibilityModel, columnsTypes]);\n const preferencePanelPreProcessing = React.useCallback((initialValue, value) => {\n if (value === GridPreferencePanelsValue.columns) {\n var _props$componentsProp;\n\n const ColumnsPanel = props.components.ColumnsPanel;\n return /*#__PURE__*/_jsx(ColumnsPanel, _extends({}, (_props$componentsProp = props.componentsProps) == null ? void 0 : _props$componentsProp.columnsPanel));\n }\n\n return initialValue;\n }, [props.components.ColumnsPanel, (_props$componentsProp2 = props.componentsProps) == null ? void 0 : _props$componentsProp2.columnsPanel]);\n useGridRegisterPreProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPreProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n useGridRegisterPreProcessor(apiRef, 'preferencePanel', preferencePanelPreProcessing);\n /**\n * EVENTS\n */\n\n const handlePreProcessorRegister = React.useCallback(name => {\n if (name !== 'hydrateColumns') {\n return;\n }\n\n logger.info(`Columns pre-processing have changed, regenerating the columns`);\n const columnsState = createColumnsState({\n apiRef,\n columnsTypes,\n columnsToUpsert: [],\n initialState: undefined,\n shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel,\n keepOnlyColumnsToUpsert: false\n });\n setGridColumnsState(columnsState);\n }, [apiRef, logger, setGridColumnsState, columnsTypes, isUsingColumnVisibilityModel]);\n const prevInnerWidth = React.useRef(null);\n\n const handleGridSizeChange = viewportInnerSize => {\n if (prevInnerWidth.current !== viewportInnerSize.width) {\n prevInnerWidth.current = viewportInnerSize.width;\n setGridColumnsState(hydrateColumnsWidth(gridColumnsSelector(apiRef.current.state), viewportInnerSize.width));\n }\n };\n\n useGridApiEventHandler(apiRef, GridEvents.preProcessorRegister, handlePreProcessorRegister);\n useGridApiEventHandler(apiRef, GridEvents.viewportInnerSizeChange, handleGridSizeChange);\n useGridApiOptionHandler(apiRef, GridEvents.columnVisibilityChange, props.onColumnVisibilityChange);\n /**\n * EFFECTS\n */\n // The effect do not track any value defined synchronously during the 1st render by hooks called after `useGridColumns`\n // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one\n\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n\n logger.info(`GridColumns have changed, new length ${props.columns.length}`);\n const columnsState = createColumnsState({\n apiRef,\n columnsTypes,\n initialState: undefined,\n // If the user provides a model, we don't want to set it in the state here because it has it's dedicated `useEffect` which calls `setColumnVisibilityModel`\n shouldRegenColumnVisibilityModelFromColumns: !isUsingColumnVisibilityModel,\n columnsToUpsert: props.columns,\n keepOnlyColumnsToUpsert: true\n });\n setGridColumnsState(columnsState);\n }, [logger, apiRef, setGridColumnsState, props.columns, columnsTypes, isUsingColumnVisibilityModel]);\n React.useEffect(() => {\n if (props.columnVisibilityModel !== undefined) {\n apiRef.current.setColumnVisibilityModel(props.columnVisibilityModel);\n }\n }, [apiRef, logger, props.columnVisibilityModel]);\n}","/**\n * Available densities.\n */\n\n/**\n * Density enum.\n */\nvar GridDensityTypes;\n\n(function (GridDensityTypes) {\n GridDensityTypes[\"Compact\"] = \"compact\";\n GridDensityTypes[\"Standard\"] = \"standard\";\n GridDensityTypes[\"Comfortable\"] = \"comfortable\";\n})(GridDensityTypes || (GridDensityTypes = {}));\n\nexport { GridDensityTypes };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridDensityTypes } from '../../../models/gridDensity';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { gridDensitySelector } from './densitySelector';\nimport { isDeepEqual } from '../../../utils/utils';\nexport const COMPACT_DENSITY_FACTOR = 0.7;\nexport const COMFORTABLE_DENSITY_FACTOR = 1.3; // TODO v6: revise keeping headerHeight and rowHeight in state\n\nconst getUpdatedDensityState = (newDensity, newHeaderHeight, newRowHeight) => {\n switch (newDensity) {\n case GridDensityTypes.Compact:\n return {\n value: newDensity,\n headerHeight: Math.floor(newHeaderHeight * COMPACT_DENSITY_FACTOR),\n rowHeight: Math.floor(newRowHeight * COMPACT_DENSITY_FACTOR),\n factor: COMPACT_DENSITY_FACTOR\n };\n\n case GridDensityTypes.Comfortable:\n return {\n value: newDensity,\n headerHeight: Math.floor(newHeaderHeight * COMFORTABLE_DENSITY_FACTOR),\n rowHeight: Math.floor(newRowHeight * COMFORTABLE_DENSITY_FACTOR),\n factor: COMFORTABLE_DENSITY_FACTOR\n };\n\n default:\n return {\n value: newDensity,\n headerHeight: newHeaderHeight,\n rowHeight: newRowHeight,\n factor: 1\n };\n }\n};\n\nexport const densityStateInitializer = (state, props) => _extends({}, state, {\n density: getUpdatedDensityState(props.density, props.headerHeight, props.rowHeight)\n});\nexport const useGridDensity = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useDensity');\n const setDensity = React.useCallback((newDensity, newHeaderHeight = props.headerHeight, newRowHeight = props.rowHeight) => {\n logger.debug(`Set grid density to ${newDensity}`);\n apiRef.current.setState(state => {\n const currentDensityState = gridDensitySelector(state);\n const newDensityState = getUpdatedDensityState(newDensity, newHeaderHeight, newRowHeight);\n\n if (isDeepEqual(currentDensityState, newDensityState)) {\n return state;\n }\n\n return _extends({}, state, {\n density: newDensityState\n });\n });\n apiRef.current.forceUpdate();\n }, [logger, apiRef, props.headerHeight, props.rowHeight]);\n React.useEffect(() => {\n apiRef.current.setDensity(props.density, props.headerHeight, props.rowHeight);\n }, [apiRef, props.density, props.rowHeight, props.headerHeight]);\n const densityApi = {\n setDensity\n };\n useGridApiMethod(apiRef, densityApi, 'GridDensityApi');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"field\", \"id\", \"value\", \"formattedValue\", \"row\", \"rowNode\", \"colDef\", \"isEditable\", \"cellMode\", \"hasFocus\", \"tabIndex\", \"getValue\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { useForkRef } from '@mui/material/utils';\nimport { GridEvents } from '../../models/events';\nimport { isNavigationKey, isSpaceKey } from '../../utils/keyboardUtils';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['checkboxInput']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nconst GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCellCheckboxRenderer(props, ref) {\n var _rootProps$components;\n\n const {\n field,\n id,\n value: isChecked,\n hasFocus,\n tabIndex\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const checkboxElement = React.useRef(null);\n const rippleRef = React.useRef();\n const handleRef = useForkRef(checkboxElement, ref);\n const element = apiRef.current.getCellElement(id, field);\n\n const handleChange = event => {\n const params = {\n value: event.target.checked,\n id\n };\n apiRef.current.publishEvent(GridEvents.rowSelectionCheckboxChange, params, event);\n };\n\n React.useLayoutEffect(() => {\n if (tabIndex === 0 && element) {\n element.tabIndex = -1;\n }\n }, [element, tabIndex]);\n React.useLayoutEffect(() => {\n if (hasFocus) {\n var _checkboxElement$curr;\n\n const input = (_checkboxElement$curr = checkboxElement.current) == null ? void 0 : _checkboxElement$curr.querySelector('input');\n input == null ? void 0 : input.focus();\n } else if (rippleRef.current) {\n // Only available in @mui/material v5.4.1 or later\n rippleRef.current.stop({});\n }\n }, [hasFocus]);\n const handleKeyDown = React.useCallback(event => {\n if (isSpaceKey(event.key)) {\n event.stopPropagation();\n }\n\n if (isNavigationKey(event.key) && !event.shiftKey) {\n apiRef.current.publishEvent(GridEvents.cellNavigationKeyDown, props, event);\n }\n }, [apiRef, props]);\n const isSelectable = !rootProps.isRowSelectable || rootProps.isRowSelectable(apiRef.current.getRowParams(id));\n const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');\n return /*#__PURE__*/_jsx(rootProps.components.BaseCheckbox, _extends({\n ref: handleRef,\n tabIndex: tabIndex,\n checked: isChecked,\n onChange: handleChange,\n className: classes.root,\n color: \"primary\",\n inputProps: {\n 'aria-label': label\n },\n onKeyDown: handleKeyDown,\n disabled: !isSelectable,\n touchRippleRef: rippleRef\n }, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseCheckbox, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridCellCheckboxForwardRef.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The mode of the cell.\n */\n cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,\n\n /**\n * The column of the row that the current cell belongs to.\n */\n colDef: PropTypes.object.isRequired,\n\n /**\n * The column field of the cell that triggered the event.\n */\n field: PropTypes.string.isRequired,\n\n /**\n * The cell value formatted with the column valueFormatter.\n */\n formattedValue: PropTypes.any.isRequired,\n\n /**\n * Get the cell value of a row and field.\n * @param {GridRowId} id The row id.\n * @param {string} field The field.\n * @returns {GridCellValue} The cell value.\n * @deprecated Use `params.row` to directly access the fields you want instead.\n */\n getValue: PropTypes.func.isRequired,\n\n /**\n * If true, the cell is the active element.\n */\n hasFocus: PropTypes.bool.isRequired,\n\n /**\n * The grid row id.\n */\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n\n /**\n * If true, the cell is editable.\n */\n isEditable: PropTypes.bool,\n\n /**\n * The row model of the row that the current cell belongs to.\n */\n row: PropTypes.any.isRequired,\n\n /**\n * The node of the row that the current cell belongs to.\n */\n rowNode: PropTypes.object.isRequired,\n\n /**\n * the tabIndex value.\n */\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired,\n\n /**\n * The cell value, but if the column has valueGetter, use getValue.\n */\n value: PropTypes.any.isRequired\n} : void 0;\nexport { GridCellCheckboxForwardRef };\nexport const GridCellCheckboxRenderer = /*#__PURE__*/React.memo(GridCellCheckboxForwardRef);","import { createSelector } from '../../../utils/createSelector';\nexport const gridFocusStateSelector = state => state.focus;\nexport const gridFocusCellSelector = createSelector(gridFocusStateSelector, focusState => focusState.cell);\nexport const gridFocusColumnHeaderSelector = createSelector(gridFocusStateSelector, focusState => focusState.columnHeader);\nexport const gridTabIndexStateSelector = state => state.tabIndex;\nexport const gridTabIndexCellSelector = createSelector(gridTabIndexStateSelector, state => state.cell);\nexport const gridTabIndexColumnHeaderSelector = createSelector(gridTabIndexStateSelector, state => state.columnHeader);","import { createSelector } from '../../../utils/createSelector';\nimport { gridRowsLookupSelector } from '../rows/gridRowsSelector';\nexport const gridSelectionStateSelector = state => state.selection;\nexport const selectedGridRowsCountSelector = createSelector(gridSelectionStateSelector, selection => selection.length);\nexport const selectedGridRowsSelector = createSelector(gridSelectionStateSelector, gridRowsLookupSelector, (selectedRows, rowsLookup) => new Map(selectedRows.map(id => [id, rowsLookup[id]])));\nexport const selectedIdsLookupSelector = createSelector(gridSelectionStateSelector, selection => selection.reduce((lookup, rowId) => {\n lookup[rowId] = rowId;\n return lookup;\n}, {}));","import { createSelector } from '../../../utils/createSelector';\nimport { gridVisibleSortedRowEntriesSelector, gridVisibleSortedRowIdsSelector, gridVisibleSortedTopLevelRowEntriesSelector } from '../filter/gridFilterSelector';\nimport { gridRowTreeDepthSelector, gridRowTreeSelector } from '../rows/gridRowsSelector';\n/**\n * @category Pagination\n * @ignore - do not document.\n */\n\nexport const gridPaginationSelector = state => state.pagination;\n/**\n * Get the index of the page to render if the pagination is enabled\n * @category Pagination\n */\n\nexport const gridPageSelector = createSelector(gridPaginationSelector, pagination => pagination.page);\n/**\n * Get the maximum amount of rows to display on a single page if the pagination is enabled\n * @category Pagination\n */\n\nexport const gridPageSizeSelector = createSelector(gridPaginationSelector, pagination => pagination.pageSize);\n/**\n * Get the amount of pages needed to display all the rows if the pagination is enabled\n * @category Pagination\n */\n\nexport const gridPageCountSelector = createSelector(gridPaginationSelector, pagination => pagination.pageCount);\n/**\n * Get the index of the first and the last row to include in the current page if the pagination is enabled.\n * @category Pagination\n */\n\nexport const gridPaginationRowRangeSelector = createSelector(gridPaginationSelector, gridRowTreeSelector, gridRowTreeDepthSelector, gridVisibleSortedRowEntriesSelector, gridVisibleSortedTopLevelRowEntriesSelector, (pagination, rowTree, rowTreeDepth, visibleSortedRowEntries, visibleSortedTopLevelRowEntries) => {\n const visibleTopLevelRowCount = visibleSortedTopLevelRowEntries.length;\n const topLevelFirstRowIndex = Math.min(pagination.pageSize * pagination.page, visibleTopLevelRowCount - 1);\n const topLevelLastRowIndex = Math.min(topLevelFirstRowIndex + pagination.pageSize - 1, visibleTopLevelRowCount - 1); // The range contains no element\n\n if (topLevelFirstRowIndex === -1 || topLevelLastRowIndex === -1) {\n return null;\n } // The tree is flat, there is no need to look for children\n\n\n if (rowTreeDepth < 2) {\n return {\n firstRowIndex: topLevelFirstRowIndex,\n lastRowIndex: topLevelLastRowIndex\n };\n }\n\n const topLevelFirstRow = visibleSortedTopLevelRowEntries[topLevelFirstRowIndex];\n const topLevelRowsInCurrentPageCount = topLevelLastRowIndex - topLevelFirstRowIndex + 1;\n const firstRowIndex = visibleSortedRowEntries.findIndex(row => row.id === topLevelFirstRow.id);\n let lastRowIndex = firstRowIndex;\n let topLevelRowAdded = 0;\n\n while (lastRowIndex < visibleSortedRowEntries.length && topLevelRowAdded <= topLevelRowsInCurrentPageCount) {\n const row = visibleSortedRowEntries[lastRowIndex];\n const depth = rowTree[row.id].depth;\n\n if (topLevelRowAdded < topLevelRowsInCurrentPageCount || depth > 0) {\n lastRowIndex += 1;\n }\n\n if (depth === 0) {\n topLevelRowAdded += 1;\n }\n }\n\n return {\n firstRowIndex,\n lastRowIndex: lastRowIndex - 1\n };\n});\n/**\n * Get the id and the model of each row to include in the current page if the pagination is enabled.\n * @category Pagination\n */\n\nexport const gridPaginatedVisibleSortedGridRowEntriesSelector = createSelector(gridVisibleSortedRowEntriesSelector, gridPaginationRowRangeSelector, (visibleSortedRowEntries, paginationRange) => {\n if (!paginationRange) {\n return [];\n }\n\n return visibleSortedRowEntries.slice(paginationRange.firstRowIndex, paginationRange.lastRowIndex + 1);\n});\n/**\n * Get the id of each row to include in the current page if the pagination is enabled.\n * @category Pagination\n */\n\nexport const gridPaginatedVisibleSortedGridRowIdsSelector = createSelector(gridVisibleSortedRowIdsSelector, gridPaginationRowRangeSelector, (visibleSortedRowIds, paginationRange) => {\n if (!paginationRange) {\n return [];\n }\n\n return visibleSortedRowIds.slice(paginationRange.firstRowIndex, paginationRange.lastRowIndex + 1);\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"field\", \"colDef\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { GridEvents } from '../../models/events';\nimport { useGridSelector } from '../../hooks/utils/useGridSelector';\nimport { gridTabIndexColumnHeaderSelector } from '../../hooks/features/focus/gridFocusStateSelector';\nimport { gridSelectionStateSelector } from '../../hooks/features/selection/gridSelectionSelector';\nimport { isNavigationKey } from '../../utils/keyboardUtils';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { gridVisibleSortedRowIdsSelector } from '../../hooks/features/filter/gridFilterSelector';\nimport { gridPaginatedVisibleSortedGridRowIdsSelector } from '../../hooks/features/pagination/gridPaginationSelector';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['checkboxInput']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nconst GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderCheckbox(props, ref) {\n var _rootProps$components;\n\n const other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [, forceUpdate] = React.useState(false);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const tabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);\n const selection = useGridSelector(apiRef, gridSelectionStateSelector);\n const visibleRowIds = useGridSelector(apiRef, gridVisibleSortedRowIdsSelector);\n const paginatedVisibleRowIds = useGridSelector(apiRef, gridPaginatedVisibleSortedGridRowIdsSelector);\n const filteredSelection = React.useMemo(() => {\n if (typeof rootProps.isRowSelectable !== 'function') {\n return selection;\n }\n\n return selection.filter(id => {\n // The row might have been deleted\n if (!apiRef.current.getRow(id)) {\n return false;\n }\n\n return rootProps.isRowSelectable(apiRef.current.getRowParams(id));\n });\n }, [apiRef, rootProps.isRowSelectable, selection]); // All the rows that could be selected / unselected by toggling this checkbox\n\n const selectionCandidates = React.useMemo(() => {\n const rowIds = !rootProps.pagination || !rootProps.checkboxSelectionVisibleOnly ? visibleRowIds : paginatedVisibleRowIds; // Convert to an object to make O(1) checking if a row exists or not\n // TODO create selector that returns visibleRowIds/paginatedVisibleRowIds as an object\n\n return rowIds.reduce((acc, id) => {\n acc[id] = true;\n return acc;\n }, {});\n }, [rootProps.pagination, rootProps.checkboxSelectionVisibleOnly, paginatedVisibleRowIds, visibleRowIds]); // Amount of rows selected and that are visible in the current page\n\n const currentSelectionSize = React.useMemo(() => filteredSelection.filter(id => selectionCandidates[id]).length, [filteredSelection, selectionCandidates]);\n const isIndeterminate = currentSelectionSize > 0 && currentSelectionSize < Object.keys(selectionCandidates).length;\n const isChecked = currentSelectionSize > 0;\n\n const handleChange = event => {\n const params = {\n value: event.target.checked\n };\n apiRef.current.publishEvent(GridEvents.headerSelectionCheckboxChange, params);\n };\n\n const tabIndex = tabIndexState !== null && tabIndexState.field === props.field ? 0 : -1;\n React.useLayoutEffect(() => {\n const element = apiRef.current.getColumnHeaderElement(props.field);\n\n if (tabIndex === 0 && element) {\n element.tabIndex = -1;\n }\n }, [tabIndex, apiRef, props.field]);\n const handleKeyDown = React.useCallback(event => {\n if (event.key === ' ') {\n // imperative toggle the checkbox because Space is disable by some preventDefault\n apiRef.current.publishEvent(GridEvents.headerSelectionCheckboxChange, {\n value: !isChecked\n });\n } // TODO v6 remove columnHeaderNavigationKeyDown events which are not used internally anymore\n\n\n if (isNavigationKey(event.key) && !event.shiftKey) {\n apiRef.current.publishEvent(GridEvents.columnHeaderNavigationKeyDown, props, event);\n }\n }, [apiRef, props, isChecked]);\n const handleSelectionChange = React.useCallback(() => {\n forceUpdate(p => !p);\n }, []);\n React.useEffect(() => {\n return apiRef.current.subscribeEvent(GridEvents.selectionChange, handleSelectionChange);\n }, [apiRef, handleSelectionChange]);\n const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');\n return /*#__PURE__*/_jsx(rootProps.components.BaseCheckbox, _extends({\n ref: ref,\n indeterminate: isIndeterminate,\n checked: isChecked,\n onChange: handleChange,\n className: classes.root,\n color: \"primary\",\n inputProps: {\n 'aria-label': label\n },\n tabIndex: tabIndex,\n onKeyDown: handleKeyDown\n }, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseCheckbox, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridHeaderCheckbox.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The column of the current header component.\n */\n colDef: PropTypes.object.isRequired,\n\n /**\n * The column field of the column that triggered the event\n */\n field: PropTypes.string.isRequired\n} : void 0;\nexport { GridHeaderCheckbox };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridCellCheckboxRenderer } from '../components/columnSelection/GridCellCheckboxRenderer';\nimport { GridHeaderCheckbox } from '../components/columnSelection/GridHeaderCheckbox';\nimport { selectedIdsLookupSelector } from '../hooks/features/selection/gridSelectionSelector';\nimport { GRID_BOOLEAN_COL_DEF } from './gridBooleanColDef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const GRID_CHECKBOX_SELECTION_COL_DEF = _extends({}, GRID_BOOLEAN_COL_DEF, {\n field: '__check__',\n type: 'checkboxSelection',\n width: 50,\n resizable: false,\n sortable: false,\n filterable: false,\n disableColumnMenu: true,\n disableReorder: true,\n disableExport: true,\n valueGetter: params => {\n const selectionLookup = selectedIdsLookupSelector(params.api.state, params.api.instanceId);\n return selectionLookup[params.id] !== undefined;\n },\n renderHeader: params => /*#__PURE__*/_jsx(GridHeaderCheckbox, _extends({}, params)),\n renderCell: params => /*#__PURE__*/_jsx(GridCellCheckboxRenderer, _extends({}, params))\n});","import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../../colDef';\nimport { buildWarning } from '../../../../utils/warning';\n\nconst serialiseCellValue = (value, delimiterCharacter) => {\n if (typeof value === 'string') {\n const formattedValue = value.replace(/\"/g, '\"\"'); // Make sure value containing delimiter or line break won't be split into multiple rows\n\n if ([delimiterCharacter, '\\n', '\\r'].some(delimiter => formattedValue.includes(delimiter))) {\n return `\"${formattedValue}\"`;\n }\n\n return formattedValue;\n }\n\n return value;\n};\n\nconst objectFormattedValueWarning = buildWarning(['MUI: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);\n\nconst serialiseRow = (id, columns, getCellParams, delimiterCharacter) => columns.map(column => {\n const cellParams = getCellParams(id, column.field);\n\n if (process.env.NODE_ENV !== 'production') {\n if (String(cellParams.formattedValue) === '[object Object]') {\n objectFormattedValueWarning();\n }\n }\n\n return serialiseCellValue(cellParams.formattedValue, delimiterCharacter);\n});\n\nexport function buildCSV(options) {\n const {\n columns,\n rowIds,\n getCellParams,\n delimiterCharacter,\n includeHeaders\n } = options;\n const CSVBody = rowIds.reduce((acc, id) => `${acc}${serialiseRow(id, columns, getCellParams, delimiterCharacter).join(delimiterCharacter)}\\r\\n`, '').trim();\n\n if (!includeHeaders) {\n return CSVBody;\n }\n\n const CSVHead = `${columns.filter(column => column.field !== GRID_CHECKBOX_SELECTION_COL_DEF.field).map(column => serialiseCellValue(column.headerName || column.field, delimiterCharacter)).join(delimiterCharacter)}\\r\\n`;\n return `${CSVHead}${CSVBody}`.trim();\n}","import { gridColumnDefinitionsSelector, gridVisibleColumnDefinitionsSelector } from '../columns';\nexport const getColumnsToExport = ({\n apiRef,\n options\n}) => {\n const columns = gridColumnDefinitionsSelector(apiRef);\n\n if (options.fields) {\n return options.fields.map(field => columns.find(column => column.field === field)).filter(column => !!column);\n }\n\n const validColumns = options.allColumns ? columns : gridVisibleColumnDefinitionsSelector(apiRef);\n return validColumns.filter(column => !column.disableExport);\n};","import * as React from 'react';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { gridFilteredSortedRowIdsSelector } from '../filter';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { exportAs } from '../../../utils/exportAs';\nimport { buildCSV } from './serializers/csvSerializer';\nimport { getColumnsToExport } from './utils';\n\nconst defaultGetRowsToExport = ({\n apiRef\n}) => {\n const filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);\n const selectedRows = apiRef.current.getSelectedRows();\n\n if (selectedRows.size > 0) {\n return filteredSortedRowIds.filter(id => selectedRows.has(id));\n }\n\n return filteredSortedRowIds;\n};\n/**\n * @requires useGridColumns (state)\n * @requires useGridFilter (state)\n * @requires useGridSorting (state)\n * @requires useGridSelection (state)\n * @requires useGridParamsApi (method)\n */\n\n\nexport const useGridCsvExport = apiRef => {\n const logger = useGridLogger(apiRef, 'useGridCsvExport');\n const getDataAsCsv = React.useCallback((options = {}) => {\n var _options$getRowsToExp, _options$includeHeade;\n\n logger.debug(`Get data as CSV`);\n const exportedColumns = getColumnsToExport({\n apiRef,\n options\n });\n const getRowsToExport = (_options$getRowsToExp = options.getRowsToExport) != null ? _options$getRowsToExp : defaultGetRowsToExport;\n const exportedRowIds = getRowsToExport({\n apiRef\n });\n return buildCSV({\n columns: exportedColumns,\n rowIds: exportedRowIds,\n getCellParams: apiRef.current.getCellParams,\n delimiterCharacter: options.delimiter || ',',\n includeHeaders: (_options$includeHeade = options.includeHeaders) != null ? _options$includeHeade : true\n });\n }, [logger, apiRef]);\n const exportDataAsCsv = React.useCallback(options => {\n logger.debug(`Export data as CSV`);\n const csv = getDataAsCsv(options);\n const blob = new Blob([options != null && options.utf8WithBom ? new Uint8Array([0xef, 0xbb, 0xbf]) : '', csv], {\n type: 'text/csv'\n });\n exportAs(blob, 'csv', options == null ? void 0 : options.fileName);\n }, [logger, getDataAsCsv]);\n const csvExportApi = {\n getDataAsCsv,\n exportDataAsCsv\n };\n useGridApiMethod(apiRef, csvExportApi, 'GridCsvExportApi');\n};","/**\n * I have hesitated to use https://github.com/eligrey/FileSaver.js.\n * If we get bug reports that this project solves, we should consider using it.\n *\n * Related resources.\n * https://blog.logrocket.com/programmatic-file-downloads-in-the-browser-9a5186298d5c/\n * https://github.com/mbrn/filefy/blob/ec4ed0b7415d93be7158c23029f2ea1fa0b8e2d9/src/core/BaseBuilder.ts\n * https://unpkg.com/browse/@progress/kendo-file-saver@1.0.7/dist/es/save-as.js\n * https://github.com/ag-grid/ag-grid/blob/9565c219b6210aa85fa833c929d0728f9d163a91/community-modules/csv-export/src/csvExport/downloader.ts\n */\nexport function exportAs(blob, extension = 'csv', filename = document.title) {\n const fullName = `${filename}.${extension}`; // Test download attribute first\n // https://github.com/eligrey/FileSaver.js/issues/193\n\n if ('download' in HTMLAnchorElement.prototype) {\n // Create an object URL for the blob object\n const url = URL.createObjectURL(blob); // Create a new anchor element\n\n const a = document.createElement('a');\n a.href = url;\n a.download = fullName; // Programmatically trigger a click on the anchor element\n // Useful if you want the download to happen automatically\n // Without attaching the anchor element to the DOM\n\n a.click(); // https://github.com/eligrey/FileSaver.js/issues/205\n\n setTimeout(() => {\n URL.revokeObjectURL(url);\n });\n return;\n }\n\n throw new Error('MUI: exportAs not supported');\n}","export const gridRowsMetaSelector = state => state.rowsMeta;","export const GridFeatureModeConstant = {\n client: 'client',\n server: 'server'\n};","/**\n * Filter item definition interface.\n */\nvar GridLinkOperator;\n\n(function (GridLinkOperator) {\n GridLinkOperator[\"And\"] = \"and\";\n GridLinkOperator[\"Or\"] = \"or\";\n})(GridLinkOperator || (GridLinkOperator = {}));\n\nexport { GridLinkOperator };","import { GridLinkOperator } from '../../../models/gridFilterItem';\nexport const getDefaultGridFilterModel = () => ({\n items: [],\n linkOperator: GridLinkOperator.And\n});","import * as React from 'react';\nimport { useFirstRender } from '../../utils/useFirstRender';\nexport const useGridRegisterStrategyProcessor = (apiRef, strategyName, group, processor) => {\n const registerPreProcessor = React.useCallback(() => {\n apiRef.current.unstable_registerStrategyProcessor(strategyName, group, processor);\n }, [apiRef, processor, group, strategyName]);\n useFirstRender(() => {\n registerPreProcessor();\n });\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n } else {\n registerPreProcessor();\n }\n }, [registerPreProcessor]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { GridLinkOperator } from '../../../models';\nimport { buildWarning } from '../../../utils/warning';\n\n/**\n * Adds default values to the optional fields of a filter items.\n * @param {GridFilterItem} item The raw filter item.\n * @param {React.MutableRefObject} apiRef The API of the grid.\n * @return {GridFilterItem} The clean filter item with an uniq ID and an always-defined operatorValue.\n * TODO: Make the typing reflect the different between GridFilterInputItem and GridFilterItem.\n */\nconst cleanFilterItem = (item, apiRef) => {\n const cleanItem = _extends({}, item);\n\n if (cleanItem.id == null) {\n cleanItem.id = Math.round(Math.random() * 1e5);\n }\n\n if (cleanItem.operatorValue == null) {\n // we select a default operator\n const column = apiRef.current.getColumn(cleanItem.columnField);\n cleanItem.operatorValue = column && column.filterOperators[0].value;\n }\n\n return cleanItem;\n};\n\nconst filterModelDisableMultiColumnsFilteringWarning = buildWarning(['MUI: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');\nconst filterModelMissingItemIdWarning = buildWarning(\"MUI: The 'id' field is required on `filterModel.items` when you use multiple filters.\", 'error');\nconst filterModelMissingItemOperatorWarning = buildWarning(['MUI: One of your filtering item have no `operatorValue` provided.', 'This property will become required on `@mui/x-data-grid@6.X`.']);\nexport const sanitizeFilterModel = (model, disableMultipleColumnsFiltering, apiRef) => {\n const hasSeveralItems = model.items.length > 1;\n let items;\n\n if (hasSeveralItems && disableMultipleColumnsFiltering) {\n filterModelDisableMultiColumnsFilteringWarning();\n items = [model.items[0]];\n } else {\n items = model.items;\n }\n\n const hasItemsWithoutIds = hasSeveralItems && items.some(item => item.id == null);\n const hasItemWithoutOperator = items.some(item => item.operatorValue == null);\n\n if (hasItemsWithoutIds) {\n filterModelMissingItemIdWarning();\n }\n\n if (hasItemWithoutOperator) {\n filterModelMissingItemOperatorWarning();\n }\n\n if (hasItemWithoutOperator || hasItemsWithoutIds) {\n return _extends({}, model, {\n items: items.map(item => cleanFilterItem(item, apiRef))\n });\n }\n\n if (model.items !== items) {\n return _extends({}, model, {\n items\n });\n }\n\n return model;\n};\nexport const mergeStateWithFilterModel = (filterModel, disableMultipleColumnsFiltering, apiRef) => state => _extends({}, state, {\n filter: _extends({}, state.filter, {\n filterModel: sanitizeFilterModel(filterModel, disableMultipleColumnsFiltering, apiRef)\n })\n});\n/**\n * Generates a method to easily check if a row is matching the current filter model.\n * @param {GridFilterModel} filterModel The model with which we want to filter the rows.\n * @param {React.MutableRefObject} apiRef The API of the grid.\n * @returns {GridAggregatedFilterItemApplier | null} A method that checks if a row is matching the current filter model. If `null`, we consider that all the rows are matching the filters.\n */\n\nexport const buildAggregatedFilterApplier = (filterModel, apiRef) => {\n const {\n items,\n linkOperator = GridLinkOperator.And\n } = filterModel;\n\n const getFilterCallbackFromItem = filterItem => {\n if (!filterItem.columnField || !filterItem.operatorValue) {\n return null;\n }\n\n const column = apiRef.current.getColumn(filterItem.columnField);\n\n if (!column) {\n return null;\n }\n\n let parsedValue;\n\n if (column.valueParser) {\n var _filterItem$value;\n\n const parser = column.valueParser;\n parsedValue = Array.isArray(filterItem.value) ? (_filterItem$value = filterItem.value) == null ? void 0 : _filterItem$value.map(x => parser(x)) : parser(filterItem.value);\n } else {\n parsedValue = filterItem.value;\n }\n\n const newFilterItem = _extends({}, filterItem, {\n value: parsedValue\n });\n\n const filterOperators = column.filterOperators;\n\n if (!(filterOperators != null && filterOperators.length)) {\n throw new Error(`MUI: No filter operators found for column '${column.field}'.`);\n }\n\n const filterOperator = filterOperators.find(operator => operator.value === newFilterItem.operatorValue);\n\n if (!filterOperator) {\n throw new Error(`MUI: No filter operator found for column '${column.field}' and operator value '${newFilterItem.operatorValue}'.`);\n }\n\n const applyFilterOnRow = filterOperator.getApplyFilterFn(newFilterItem, column);\n\n if (typeof applyFilterOnRow !== 'function') {\n return null;\n }\n\n const fn = rowId => {\n const cellParams = apiRef.current.getCellParams(rowId, newFilterItem.columnField);\n return applyFilterOnRow(cellParams);\n };\n\n return {\n fn,\n item: newFilterItem\n };\n };\n\n const appliers = items.map(getFilterCallbackFromItem).filter(callback => !!callback);\n\n if (appliers.length === 0) {\n return null;\n }\n\n return (rowId, shouldApplyFilter) => {\n const filteredAppliers = shouldApplyFilter ? appliers.filter(applier => shouldApplyFilter(applier.item)) : appliers; // Return `false` as soon as we have a failing filter\n\n if (linkOperator === GridLinkOperator.And) {\n return filteredAppliers.every(applier => applier.fn(rowId));\n } // Return `true` as soon as we have a passing filter\n\n\n return filteredAppliers.some(applier => applier.fn(rowId));\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridEvents } from '../../../models/events';\nimport { GridFeatureModeConstant } from '../../../models/gridFeatureMode';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridFilterableColumnLookupSelector } from '../columns/gridColumnsSelector';\nimport { GridPreferencePanelsValue } from '../preferencesPanel/gridPreferencePanelsValue';\nimport { getDefaultGridFilterModel } from './gridFilterState';\nimport { gridFilterModelSelector, gridVisibleSortedRowEntriesSelector } from './gridFilterSelector';\nimport { useFirstRender } from '../../utils/useFirstRender';\nimport { gridRowIdsSelector } from '../rows';\nimport { useGridRegisterPreProcessor } from '../../core/preProcessing';\nimport { GRID_DEFAULT_STRATEGY, useGridRegisterStrategyProcessor } from '../../core/strategyProcessing';\nimport { buildAggregatedFilterApplier, sanitizeFilterModel, mergeStateWithFilterModel } from './gridFilterUtils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const filterStateInitializer = (state, props, apiRef) => {\n var _ref, _props$filterModel, _props$initialState, _props$initialState$f;\n\n const filterModel = (_ref = (_props$filterModel = props.filterModel) != null ? _props$filterModel : (_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$f = _props$initialState.filter) == null ? void 0 : _props$initialState$f.filterModel) != null ? _ref : getDefaultGridFilterModel();\n return _extends({}, state, {\n filter: {\n filterModel: sanitizeFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef),\n visibleRowsLookup: {},\n filteredDescendantCountLookup: {}\n }\n });\n};\n/**\n * @requires useGridColumns (method, event)\n * @requires useGridParamsApi (method)\n * @requires useGridRows (event)\n */\n\nexport const useGridFilter = (apiRef, props) => {\n var _props$componentsProp2;\n\n const logger = useGridLogger(apiRef, 'useGridFilter');\n apiRef.current.unstable_updateControlState({\n stateId: 'filter',\n propModel: props.filterModel,\n propOnChange: props.onFilterModelChange,\n stateSelector: gridFilterModelSelector,\n changeEvent: GridEvents.filterModelChange\n });\n /**\n * API METHODS\n */\n\n const applyFilters = React.useCallback(() => {\n apiRef.current.setState(state => {\n const filterModel = gridFilterModelSelector(state, apiRef.current.instanceId);\n const isRowMatchingFilters = props.filterMode === GridFeatureModeConstant.client ? buildAggregatedFilterApplier(filterModel, apiRef) : null;\n const filteringResult = apiRef.current.unstable_applyStrategyProcessor('filtering', {\n isRowMatchingFilters\n });\n return _extends({}, state, {\n filter: _extends({}, state.filter, filteringResult)\n });\n });\n apiRef.current.publishEvent(GridEvents.visibleRowsSet);\n apiRef.current.forceUpdate();\n }, [apiRef, props.filterMode]);\n const upsertFilterItem = React.useCallback(item => {\n const filterModel = gridFilterModelSelector(apiRef);\n const items = [...filterModel.items];\n const itemIndex = items.findIndex(filterItem => filterItem.id === item.id);\n\n if (itemIndex === -1) {\n items.push(item);\n } else {\n items[itemIndex] = item;\n }\n\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }));\n }, [apiRef]);\n const deleteFilterItem = React.useCallback(itemToDelete => {\n const filterModel = gridFilterModelSelector(apiRef);\n const items = filterModel.items.filter(item => item.id !== itemToDelete.id);\n\n if (items.length === filterModel.items.length) {\n return;\n }\n\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items\n }));\n }, [apiRef]);\n const showFilterPanel = React.useCallback(targetColumnField => {\n logger.debug('Displaying filter panel');\n\n if (targetColumnField) {\n const filterModel = gridFilterModelSelector(apiRef);\n const filterItemsWithValue = filterModel.items.filter(item => item.value !== undefined);\n let newFilterItems;\n const filterItemOnTarget = filterItemsWithValue.find(item => item.columnField === targetColumnField);\n\n if (filterItemOnTarget) {\n newFilterItems = filterItemsWithValue;\n } else if (props.disableMultipleColumnsFiltering) {\n newFilterItems = [{\n columnField: targetColumnField\n }];\n } else {\n newFilterItems = [...filterItemsWithValue, {\n columnField: targetColumnField\n }];\n }\n\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: newFilterItems\n }));\n }\n\n apiRef.current.showPreferences(GridPreferencePanelsValue.filters);\n }, [apiRef, logger, props.disableMultipleColumnsFiltering]);\n const hideFilterPanel = React.useCallback(() => {\n logger.debug('Hiding filter panel');\n apiRef.current.hidePreferences();\n }, [apiRef, logger]);\n const setFilterLinkOperator = React.useCallback(linkOperator => {\n const filterModel = gridFilterModelSelector(apiRef);\n\n if (filterModel.linkOperator === linkOperator) {\n return;\n }\n\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n linkOperator\n }));\n }, [apiRef]);\n const setFilterModel = React.useCallback(model => {\n const currentModel = gridFilterModelSelector(apiRef);\n\n if (currentModel !== model) {\n logger.debug('Setting filter model');\n apiRef.current.setState(mergeStateWithFilterModel(model, props.disableMultipleColumnsFiltering, apiRef));\n apiRef.current.unstable_applyFilters();\n }\n }, [apiRef, logger, props.disableMultipleColumnsFiltering]);\n const getVisibleRowModels = React.useCallback(() => {\n const visibleSortedRows = gridVisibleSortedRowEntriesSelector(apiRef);\n return new Map(visibleSortedRows.map(row => [row.id, row.model]));\n }, [apiRef]);\n const filterApi = {\n setFilterLinkOperator,\n unstable_applyFilters: applyFilters,\n deleteFilterItem,\n upsertFilterItem,\n setFilterModel,\n showFilterPanel,\n hideFilterPanel,\n getVisibleRowModels\n };\n useGridApiMethod(apiRef, filterApi, 'GridFilterApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback(prevState => {\n const filterModelToExport = gridFilterModelSelector(apiRef);\n\n if (filterModelToExport.items.length === 0 && filterModelToExport.linkOperator === getDefaultGridFilterModel().linkOperator) {\n return prevState;\n }\n\n return _extends({}, prevState, {\n filter: {\n filterModel: filterModelToExport\n }\n });\n }, [apiRef]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n var _context$stateToResto;\n\n const filterModel = (_context$stateToResto = context.stateToRestore.filter) == null ? void 0 : _context$stateToResto.filterModel;\n\n if (filterModel == null) {\n return params;\n }\n\n apiRef.current.setState(mergeStateWithFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef));\n return _extends({}, params, {\n callbacks: [...params.callbacks, apiRef.current.unstable_applyFilters]\n });\n }, [apiRef, props.disableMultipleColumnsFiltering]);\n const preferencePanelPreProcessing = React.useCallback((initialValue, value) => {\n if (value === GridPreferencePanelsValue.filters) {\n var _props$componentsProp;\n\n const FilterPanel = props.components.FilterPanel;\n return /*#__PURE__*/_jsx(FilterPanel, _extends({}, (_props$componentsProp = props.componentsProps) == null ? void 0 : _props$componentsProp.filterPanel));\n }\n\n return initialValue;\n }, [props.components.FilterPanel, (_props$componentsProp2 = props.componentsProps) == null ? void 0 : _props$componentsProp2.filterPanel]);\n const flatFilteringMethod = React.useCallback(params => {\n if (props.filterMode === GridFeatureModeConstant.client && params.isRowMatchingFilters) {\n const rowIds = gridRowIdsSelector(apiRef);\n const filteredRowsLookup = {};\n\n for (let i = 0; i < rowIds.length; i += 1) {\n const rowId = rowIds[i];\n filteredRowsLookup[rowId] = params.isRowMatchingFilters(rowId);\n }\n\n return {\n filteredRowsLookup,\n // For flat tree, the `visibleRowsLookup` and the `filteredRowsLookup` since no row is collapsed.\n visibleRowsLookup: filteredRowsLookup,\n filteredDescendantCountLookup: {}\n };\n }\n\n return {\n visibleRowsLookup: {},\n filteredRowsLookup: {},\n filteredDescendantCountLookup: {}\n };\n }, [apiRef, props.filterMode]);\n useGridRegisterPreProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPreProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n useGridRegisterPreProcessor(apiRef, 'preferencePanel', preferencePanelPreProcessing);\n useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'filtering', flatFilteringMethod);\n /**\n * EVENTS\n */\n\n const handleColumnsChange = React.useCallback(() => {\n logger.debug('onColUpdated - GridColumns changed, applying filters');\n const filterModel = gridFilterModelSelector(apiRef);\n const filterableColumnsLookup = gridFilterableColumnLookupSelector(apiRef);\n const newFilterItems = filterModel.items.filter(item => item.columnField && filterableColumnsLookup[item.columnField]);\n\n if (newFilterItems.length < filterModel.items.length) {\n apiRef.current.setFilterModel(_extends({}, filterModel, {\n items: newFilterItems\n }));\n }\n }, [apiRef, logger]);\n const handleStrategyProcessorChange = React.useCallback(methodName => {\n if (methodName === 'filtering') {\n apiRef.current.unstable_applyFilters();\n }\n }, [apiRef]);\n useGridApiEventHandler(apiRef, GridEvents.rowsSet, apiRef.current.unstable_applyFilters);\n useGridApiEventHandler(apiRef, GridEvents.rowExpansionChange, apiRef.current.unstable_applyFilters);\n useGridApiEventHandler(apiRef, GridEvents.columnsChange, handleColumnsChange);\n useGridApiEventHandler(apiRef, GridEvents.activeStrategyProcessorChange, handleStrategyProcessorChange);\n /**\n * 1ST RENDER\n */\n\n useFirstRender(() => {\n apiRef.current.unstable_applyFilters();\n });\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n if (props.filterModel !== undefined) {\n apiRef.current.setFilterModel(props.filterModel);\n }\n }, [apiRef, logger, props.filterModel]);\n};","import * as React from 'react';\nimport { gridPaginationRowRangeSelector, gridPaginatedVisibleSortedGridRowEntriesSelector } from '../features/pagination/gridPaginationSelector';\nimport { gridVisibleSortedRowEntriesSelector } from '../features/filter/gridFilterSelector';\nexport const getVisibleRows = (apiRef, props) => {\n let rows;\n let range;\n\n if (props.pagination && props.paginationMode === 'client') {\n range = gridPaginationRowRangeSelector(apiRef);\n rows = gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef);\n } else {\n rows = gridVisibleSortedRowEntriesSelector(apiRef);\n\n if (rows.length === 0) {\n range = null;\n } else {\n range = {\n firstRowIndex: 0,\n lastRowIndex: rows.length - 1\n };\n }\n }\n\n return {\n rows,\n range\n };\n};\n/**\n * Computes the list of rows that are reachable by scroll.\n * Depending on whether pagination is enabled, it will return the rows in the current page.\n * - If the pagination is disabled or in server mode, it equals all the visible rows.\n * - If the row tree has several layers, it contains up to `state.pageSize` top level rows and all their descendants.\n * - If the row tree is flat, it only contains up to `state.pageSize` rows.\n */\n\nexport const useGridVisibleRows = (apiRef, props) => {\n const response = getVisibleRows(apiRef, props);\n return React.useMemo(() => ({\n rows: response.rows,\n range: response.range\n }), [response.rows, response.range]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { ownerDocument } from '@mui/material/utils';\nimport { GridEvents } from '../../../models/events';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { isNavigationKey } from '../../../utils/keyboardUtils';\nimport { gridFocusCellSelector } from './gridFocusStateSelector';\nimport { gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';\nimport { getVisibleRows } from '../../utils/useGridVisibleRows';\nimport { clamp } from '../../../utils/utils';\nexport const focusStateInitializer = state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n },\n tabIndex: {\n cell: null,\n columnHeader: null\n }\n});\n/**\n * @requires useGridParamsApi (method)\n * @requires useGridRows (method)\n * @requires useGridEditing (event)\n */\n\nexport const useGridFocus = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridFocus');\n const lastClickedCell = React.useRef(null);\n const setCellFocus = React.useCallback((id, field) => {\n // The row might have been deleted\n if (!apiRef.current.getRow(id)) {\n return;\n }\n\n const focusedCell = gridFocusCellSelector(apiRef);\n\n if ((focusedCell == null ? void 0 : focusedCell.id) === id && focusedCell.field === field) {\n return;\n }\n\n apiRef.current.setState(state => {\n logger.debug(`Focusing on cell with id=${id} and field=${field}`);\n return _extends({}, state, {\n tabIndex: {\n cell: {\n id,\n field\n },\n columnHeader: null\n },\n focus: {\n cell: {\n id,\n field\n },\n columnHeader: null\n }\n });\n });\n apiRef.current.forceUpdate();\n apiRef.current.publishEvent(GridEvents.cellFocusIn, apiRef.current.getCellParams(id, field));\n }, [apiRef, logger]);\n const setColumnHeaderFocus = React.useCallback((field, event = {}) => {\n const cell = gridFocusCellSelector(apiRef);\n\n if (cell) {\n apiRef.current.publishEvent(GridEvents.cellFocusOut, apiRef.current.getCellParams(cell.id, cell.field), event);\n }\n\n apiRef.current.setState(state => {\n logger.debug(`Focusing on column header with colIndex=${field}`);\n return _extends({}, state, {\n tabIndex: {\n columnHeader: {\n field\n },\n cell: null\n },\n focus: {\n columnHeader: {\n field\n },\n cell: null\n }\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef, logger]);\n const moveFocusToRelativeCell = React.useCallback((id, field, direction) => {\n let columnIndexToFocus = apiRef.current.getColumnIndex(field);\n let rowIndexToFocus = apiRef.current.getRowIndexRelativeToVisibleRows(id);\n const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);\n\n if (direction === 'right') {\n columnIndexToFocus += 1;\n } else if (direction === 'left') {\n columnIndexToFocus -= 1;\n } else {\n rowIndexToFocus += 1;\n }\n\n if (columnIndexToFocus >= visibleColumns.length) {\n // Go to next row if we are at the last column\n rowIndexToFocus += 1;\n columnIndexToFocus = 0;\n } else if (columnIndexToFocus < 0) {\n // Go to previous row if we are at the first column\n rowIndexToFocus -= 1;\n columnIndexToFocus = visibleColumns.length - 1;\n }\n\n const currentPage = getVisibleRows(apiRef, {\n pagination: props.pagination,\n paginationMode: props.paginationMode\n });\n rowIndexToFocus = clamp(rowIndexToFocus, currentPage.range.firstRowIndex, currentPage.range.lastRowIndex);\n const rowToFocus = currentPage.rows[rowIndexToFocus];\n const columnToFocus = visibleColumns[columnIndexToFocus];\n apiRef.current.setCellFocus(rowToFocus.id, columnToFocus.field);\n }, [apiRef, props.pagination, props.paginationMode]);\n const handleCellDoubleClick = React.useCallback(({\n id,\n field\n }) => {\n apiRef.current.setCellFocus(id, field);\n }, [apiRef]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n // GRID_CELL_NAVIGATION_KEY_DOWN handles the focus on Enter, Tab and navigation keys\n if (event.key === 'Enter' || event.key === 'Tab' || isNavigationKey(event.key)) {\n return;\n }\n\n apiRef.current.setCellFocus(params.id, params.field);\n }, [apiRef]);\n const handleColumnHeaderFocus = React.useCallback(({\n field\n }, event) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n apiRef.current.setColumnHeaderFocus(field, event);\n }, [apiRef]);\n const handleBlur = React.useCallback(() => {\n logger.debug(`Clearing focus`);\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n }\n }));\n }, [logger, apiRef]);\n const handleCellMouseUp = React.useCallback(params => {\n lastClickedCell.current = params;\n }, []);\n const handleDocumentClick = React.useCallback(event => {\n const cellParams = lastClickedCell.current;\n lastClickedCell.current = null;\n const focusedCell = gridFocusCellSelector(apiRef);\n\n if (!focusedCell) {\n if (cellParams) {\n apiRef.current.setCellFocus(cellParams.id, cellParams.field);\n }\n\n return;\n }\n\n if ((cellParams == null ? void 0 : cellParams.id) === focusedCell.id && (cellParams == null ? void 0 : cellParams.field) === focusedCell.field) {\n return;\n }\n\n const cellElement = apiRef.current.getCellElement(focusedCell.id, focusedCell.field);\n\n if (cellElement != null && cellElement.contains(event.target)) {\n return;\n } // The row might have been deleted during the click\n\n\n if (!apiRef.current.getRow(focusedCell.id)) {\n return;\n } // There's a focused cell but another cell was clicked\n // Publishes an event to notify that the focus was lost\n\n\n apiRef.current.publishEvent(GridEvents.cellFocusOut, apiRef.current.getCellParams(focusedCell.id, focusedCell.field), event);\n\n if (cellParams) {\n apiRef.current.setCellFocus(cellParams.id, cellParams.field);\n } else {\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n }\n }));\n apiRef.current.forceUpdate();\n }\n }, [apiRef]);\n const handleCellModeChange = React.useCallback(params => {\n if (params.cellMode === 'view') {\n return;\n }\n\n const cell = gridFocusCellSelector(apiRef);\n\n if ((cell == null ? void 0 : cell.id) !== params.id || (cell == null ? void 0 : cell.field) !== params.field) {\n apiRef.current.setCellFocus(params.id, params.field);\n }\n }, [apiRef]);\n useGridApiMethod(apiRef, {\n setCellFocus,\n setColumnHeaderFocus,\n unstable_moveFocusToRelativeCell: moveFocusToRelativeCell\n }, 'GridFocusApi');\n React.useEffect(() => {\n const cell = gridFocusCellSelector(apiRef);\n\n if (cell) {\n const updatedRow = apiRef.current.getRow(cell.id);\n\n if (!updatedRow) {\n apiRef.current.setState(state => _extends({}, state, {\n focus: {\n cell: null,\n columnHeader: null\n }\n }));\n }\n }\n }, [apiRef, props.rows]);\n React.useEffect(() => {\n const doc = ownerDocument(apiRef.current.rootElementRef.current);\n doc.addEventListener('click', handleDocumentClick);\n return () => {\n doc.removeEventListener('click', handleDocumentClick);\n };\n }, [apiRef, handleDocumentClick]);\n useGridApiEventHandler(apiRef, GridEvents.columnHeaderBlur, handleBlur);\n useGridApiEventHandler(apiRef, GridEvents.cellDoubleClick, handleCellDoubleClick);\n useGridApiEventHandler(apiRef, GridEvents.cellMouseUp, handleCellMouseUp);\n useGridApiEventHandler(apiRef, GridEvents.cellKeyDown, handleCellKeyDown);\n useGridApiEventHandler(apiRef, GridEvents.cellModeChange, handleCellModeChange);\n useGridApiEventHandler(apiRef, GridEvents.columnHeaderFocus, handleColumnHeaderFocus);\n};","import { gridClasses } from '../constants/gridClasses';\nexport function isOverflown(element) {\n return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;\n}\nexport function findParentElementFromClassName(elem, className) {\n return elem.closest(`.${className}`);\n}\nexport function getRowEl(cell) {\n if (!cell) {\n return null;\n }\n\n return findParentElementFromClassName(cell, gridClasses.row);\n} // TODO remove\n\nexport function isGridCellRoot(elem) {\n return elem != null && elem.classList.contains(gridClasses.cell);\n}\nexport function isGridHeaderCellRoot(elem) {\n return elem != null && elem.classList.contains(gridClasses.columnHeader);\n}\n\nfunction escapeOperandAttributeSelector(operand) {\n return operand.replace(/[\"\\\\]/g, '\\\\$&');\n}\n\nexport function getGridColumnHeaderElement(root, field) {\n return root.querySelector(`[role=\"columnheader\"][data-field=\"${escapeOperandAttributeSelector(field)}\"]`);\n}\nexport function getGridRowElement(root, id) {\n return root.querySelector(`.${gridClasses.row}[data-id=\"${escapeOperandAttributeSelector(String(id))}\"]`);\n}\nexport function getGridCellElement(root, {\n id,\n field\n}) {\n const row = getGridRowElement(root, id);\n\n if (!row) {\n return null;\n }\n\n return row.querySelector(`.${gridClasses.cell}[data-field=\"${escapeOperandAttributeSelector(field)}\"]`);\n}","import * as React from 'react';\nimport { gridClasses } from '../../../constants/gridClasses';\nimport { GridEvents } from '../../../models/events';\nimport { findParentElementFromClassName } from '../../../utils/domUtils';\nimport { isNavigationKey } from '../../../utils/keyboardUtils';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { GridCellModes } from '../../../models/gridEditRowModel';\nimport { gridVisibleSortedRowIdsSelector } from '../filter/gridFilterSelector';\nimport { gridFocusCellSelector } from '../focus/gridFocusStateSelector';\n/**\n * @requires useGridSelection (method)\n * @requires useGridRows (method)\n * @requires useGridFocus (state)\n * @requires useGridParamsApi (method)\n * @requires useGridColumnMenu (method)\n */\n\nexport const useGridKeyboard = apiRef => {\n const expandSelection = React.useCallback((params, event) => {\n apiRef.current.publishEvent(GridEvents.cellNavigationKeyDown, params, event);\n const focusCell = gridFocusCellSelector(apiRef);\n\n if (!focusCell) {\n return;\n }\n\n const rowEl = findParentElementFromClassName(event.target, gridClasses.row);\n const startRowIndex = Number(rowEl.getAttribute('data-rowindex'));\n const startId = gridVisibleSortedRowIdsSelector(apiRef)[startRowIndex];\n\n if (startId === focusCell.id) {\n return;\n }\n\n apiRef.current.selectRowRange({\n startId,\n endId: focusCell.id\n }, !apiRef.current.isRowSelected(focusCell.id));\n }, [apiRef]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n // Ignore portal\n if (!event.currentTarget.contains(event.target)) {\n return;\n } // Get the most recent params because the cell mode may have changed by another listener\n\n\n const cellParams = apiRef.current.getCellParams(params.id, params.field);\n const isEditMode = cellParams.cellMode === GridCellModes.Edit;\n\n if (isEditMode) {\n return;\n }\n\n if (event.key === ' ' && event.shiftKey) {\n // This is a select event, so it's handled by the selection hook\n return;\n }\n\n if (isNavigationKey(event.key) && !event.shiftKey) {\n apiRef.current.publishEvent(GridEvents.cellNavigationKeyDown, cellParams, event);\n return;\n }\n\n if (isNavigationKey(event.key) && event.shiftKey) {\n event.preventDefault();\n expandSelection(cellParams, event);\n }\n }, [apiRef, expandSelection]);\n useGridApiEventHandler(apiRef, GridEvents.cellKeyDown, handleCellKeyDown);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridEvents } from '../../../models/events';\nimport { useGridLogger, useGridApiMethod, useGridApiEventHandler, useGridSelector } from '../../utils';\nimport { gridPageSizeSelector } from './gridPaginationSelector';\nimport { gridDensityRowHeightSelector } from '../density';\nimport { useGridRegisterPreProcessor } from '../../core/preProcessing';\nexport const defaultPageSize = autoPageSize => autoPageSize ? 0 : 100;\n\nconst mergeStateWithPageSize = pageSize => state => _extends({}, state, {\n pagination: _extends({}, state.pagination, {\n pageSize\n })\n});\n/**\n * @requires useGridDimensions (event) - can be after\n */\n\n\nexport const useGridPageSize = (apiRef, props) => {\n var _props$initialState2, _props$initialState2$;\n\n const logger = useGridLogger(apiRef, 'useGridPageSize');\n const rowHeight = useGridSelector(apiRef, gridDensityRowHeightSelector);\n apiRef.current.unstable_updateControlState({\n stateId: 'pageSize',\n propModel: props.pageSize,\n propOnChange: props.onPageSizeChange,\n stateSelector: gridPageSizeSelector,\n changeEvent: GridEvents.pageSizeChange\n });\n /**\n * API METHODS\n */\n\n const setPageSize = React.useCallback(pageSize => {\n if (pageSize === gridPageSizeSelector(apiRef)) {\n return;\n }\n\n logger.debug(`Setting page size to ${pageSize}`);\n apiRef.current.setState(mergeStateWithPageSize(pageSize));\n apiRef.current.forceUpdate();\n }, [apiRef, logger]);\n const pageSizeApi = {\n setPageSize\n };\n useGridApiMethod(apiRef, pageSizeApi, 'GridPageSizeApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback(prevState => {\n var _props$initialState, _props$initialState$p;\n\n const pageSizeToExport = gridPageSizeSelector(apiRef);\n const shouldExportPageSize = // Always export if the page size is controlled\n props.pageSize != null || // Always export if the page size has been initialized\n ((_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$p = _props$initialState.pagination) == null ? void 0 : _props$initialState$p.pageSize) != null || // Export if the page size value is not equal to the default value\n pageSizeToExport !== defaultPageSize(props.autoPageSize);\n\n if (!shouldExportPageSize) {\n return prevState;\n }\n\n return _extends({}, prevState, {\n pagination: _extends({}, prevState.pagination, {\n pageSize: pageSizeToExport\n })\n });\n }, [apiRef, props.pageSize, (_props$initialState2 = props.initialState) == null ? void 0 : (_props$initialState2$ = _props$initialState2.pagination) == null ? void 0 : _props$initialState2$.pageSize, props.autoPageSize]);\n /**\n * TODO: Add error if `prop.autoHeight = true`\n */\n\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n var _context$stateToResto;\n\n const pageSize = (_context$stateToResto = context.stateToRestore.pagination) == null ? void 0 : _context$stateToResto.pageSize;\n\n if (pageSize != null) {\n apiRef.current.setState(mergeStateWithPageSize(pageSize));\n }\n\n return params;\n }, [apiRef]);\n useGridRegisterPreProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPreProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n /**\n * EVENTS\n */\n\n const handleUpdateAutoPageSize = React.useCallback(() => {\n const dimensions = apiRef.current.getRootDimensions();\n\n if (!props.autoPageSize || !dimensions) {\n return;\n }\n\n const maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);\n apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);\n }, [apiRef, props.autoPageSize, rowHeight]);\n useGridApiEventHandler(apiRef, GridEvents.viewportInnerSizeChange, handleUpdateAutoPageSize);\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n if (props.pageSize != null && !props.autoPageSize) {\n apiRef.current.setPageSize(props.pageSize);\n }\n }, [apiRef, props.autoPageSize, props.pageSize]);\n React.useEffect(() => {\n handleUpdateAutoPageSize();\n }, [handleUpdateAutoPageSize]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridLogger, useGridSelector, useGridApiMethod, useGridApiEventHandler } from '../../utils';\nimport { GridEvents } from '../../../models/events';\nimport { gridVisibleTopLevelRowCountSelector } from '../filter';\nimport { gridPageSelector } from './gridPaginationSelector';\nimport { useGridRegisterPreProcessor } from '../../core/preProcessing';\nimport { buildWarning } from '../../../utils/warning';\nexport const getPageCount = (rowCount, pageSize) => {\n if (pageSize > 0 && rowCount > 0) {\n return Math.ceil(rowCount / pageSize);\n }\n\n return 0;\n};\n\nconst applyValidPage = paginationState => {\n if (!paginationState.pageCount) {\n return paginationState;\n }\n\n return _extends({}, paginationState, {\n page: Math.max(Math.min(paginationState.page, paginationState.pageCount - 1), 0)\n });\n};\n\nconst mergeStateWithPage = page => state => _extends({}, state, {\n pagination: applyValidPage(_extends({}, state.pagination, {\n page\n }))\n});\n\nconst noRowCountInServerMode = buildWarning([\"MUI: the 'rowCount' prop is undefined while using paginationMode='server'\", 'For more detail, see http://mui.com/components/data-grid/pagination/#basic-implementation'], 'error');\n/**\n * @requires useGridPageSize (event)\n */\n\nexport const useGridPage = (apiRef, props) => {\n var _props$initialState2, _props$initialState2$;\n\n const logger = useGridLogger(apiRef, 'useGridPage');\n const visibleTopLevelRowCount = useGridSelector(apiRef, gridVisibleTopLevelRowCountSelector);\n apiRef.current.unstable_updateControlState({\n stateId: 'page',\n propModel: props.page,\n propOnChange: props.onPageChange,\n stateSelector: gridPageSelector,\n changeEvent: GridEvents.pageChange\n });\n /**\n * API METHODS\n */\n\n const setPage = React.useCallback(page => {\n logger.debug(`Setting page to ${page}`);\n apiRef.current.setState(mergeStateWithPage(page));\n apiRef.current.forceUpdate();\n }, [apiRef, logger]);\n const pageApi = {\n setPage\n };\n useGridApiMethod(apiRef, pageApi, 'GridPageApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback(prevState => {\n var _props$initialState, _props$initialState$p;\n\n const pageToExport = gridPageSelector(apiRef);\n const shouldExportPage = // Always export if the page is controlled\n props.page != null || // Always export if the page has been initialized\n ((_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$p = _props$initialState.pagination) == null ? void 0 : _props$initialState$p.page) != null || // Export if the page value is not equal to the default value\n pageToExport !== 0;\n\n if (!shouldExportPage) {\n return prevState;\n }\n\n return _extends({}, prevState, {\n pagination: _extends({}, prevState.pagination, {\n page: pageToExport\n })\n });\n }, [apiRef, props.page, (_props$initialState2 = props.initialState) == null ? void 0 : (_props$initialState2$ = _props$initialState2.pagination) == null ? void 0 : _props$initialState2$.page]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n var _context$stateToResto, _context$stateToResto2;\n\n // We apply the constraint even if the page did not change in case the pageSize changed.\n const page = (_context$stateToResto = (_context$stateToResto2 = context.stateToRestore.pagination) == null ? void 0 : _context$stateToResto2.page) != null ? _context$stateToResto : gridPageSelector(apiRef);\n apiRef.current.setState(mergeStateWithPage(page));\n return params;\n }, [apiRef]);\n useGridRegisterPreProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPreProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n /**\n * EVENTS\n */\n\n const handlePageSizeChange = pageSize => {\n apiRef.current.setState(state => {\n const pageCount = getPageCount(state.pagination.rowCount, pageSize);\n return _extends({}, state, {\n pagination: applyValidPage(_extends({}, state.pagination, {\n pageCount,\n page: state.pagination.page\n }))\n });\n });\n apiRef.current.forceUpdate();\n };\n\n useGridApiEventHandler(apiRef, GridEvents.pageSizeChange, handlePageSizeChange);\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production') {\n if (props.paginationMode === 'server' && props.rowCount == null) {\n noRowCountInServerMode();\n }\n }\n }, [props.rowCount, props.paginationMode]);\n React.useEffect(() => {\n apiRef.current.setState(state => {\n const rowCount = props.rowCount !== undefined ? props.rowCount : visibleTopLevelRowCount;\n const pageCount = getPageCount(rowCount, state.pagination.pageSize);\n const page = props.page == null ? state.pagination.page : props.page;\n return _extends({}, state, {\n pagination: applyValidPage(_extends({}, state.pagination, {\n page,\n rowCount,\n pageCount\n }))\n });\n });\n apiRef.current.forceUpdate();\n }, [visibleTopLevelRowCount, props.rowCount, props.page, props.paginationMode, apiRef]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useGridPageSize, defaultPageSize } from './useGridPageSize';\nimport { useGridPage, getPageCount } from './useGridPage';\nexport const paginationStateInitializer = (state, props) => {\n var _props$initialState, _props$initialState$p, _ref, _props$page, _props$initialState2, _props$initialState2$, _props$rowCount, _props$rowCount2;\n\n let pageSize;\n\n if (props.pageSize != null) {\n pageSize = props.pageSize;\n } else if (((_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$p = _props$initialState.pagination) == null ? void 0 : _props$initialState$p.pageSize) != null) {\n pageSize = props.initialState.pagination.pageSize;\n } else {\n pageSize = defaultPageSize(props.autoPageSize);\n }\n\n return _extends({}, state, {\n pagination: {\n pageSize,\n page: (_ref = (_props$page = props.page) != null ? _props$page : (_props$initialState2 = props.initialState) == null ? void 0 : (_props$initialState2$ = _props$initialState2.pagination) == null ? void 0 : _props$initialState2$.page) != null ? _ref : 0,\n pageCount: getPageCount((_props$rowCount = props.rowCount) != null ? _props$rowCount : 0, pageSize),\n rowCount: (_props$rowCount2 = props.rowCount) != null ? _props$rowCount2 : 0\n }\n });\n};\n/**\n * @requires useGridFilter (state)\n * @requires useGridDimensions (event) - can be after\n */\n\nexport const useGridPagination = (apiRef, props) => {\n useGridPageSize(apiRef, props);\n useGridPage(apiRef, props);\n};","export const gridPreferencePanelStateSelector = state => state.preferencePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { useGridRegisterPreProcessor } from '../../core/preProcessing';\nimport { gridPreferencePanelStateSelector } from './gridPreferencePanelSelector';\nexport const preferencePanelStateInitializer = (state, props) => {\n var _props$initialState$p, _props$initialState;\n\n return _extends({}, state, {\n preferencePanel: (_props$initialState$p = (_props$initialState = props.initialState) == null ? void 0 : _props$initialState.preferencePanel) != null ? _props$initialState$p : {\n open: false\n }\n });\n};\n/**\n * TODO: Add a single `setPreferencePanel` method to avoid multiple `setState`\n */\n\nexport const useGridPreferencesPanel = apiRef => {\n const logger = useGridLogger(apiRef, 'useGridPreferencesPanel');\n const hideTimeout = React.useRef();\n const immediateTimeout = React.useRef();\n /**\n * API METHODS\n */\n\n const hidePreferences = React.useCallback(() => {\n logger.debug('Hiding Preferences Panel');\n apiRef.current.setState(state => _extends({}, state, {\n preferencePanel: {\n open: false\n }\n }));\n apiRef.current.forceUpdate();\n }, [apiRef, logger]); // This is to prevent the preferences from closing when you open a select box or another panel,\n // The issue is in MUI core V4 => Fixed in V5\n\n const doNotHidePanel = React.useCallback(() => {\n immediateTimeout.current = setTimeout(() => clearTimeout(hideTimeout.current), 0);\n }, []); // This is a hack for the issue with Core V4, by delaying hiding the panel on the clickAwayListener,\n // we can cancel the action if the trigger element still need the panel...\n\n const hidePreferencesDelayed = React.useCallback(() => {\n hideTimeout.current = setTimeout(hidePreferences, 100);\n }, [hidePreferences]);\n const showPreferences = React.useCallback(newValue => {\n logger.debug('Opening Preferences Panel');\n doNotHidePanel();\n apiRef.current.setState(state => _extends({}, state, {\n preferencePanel: _extends({}, state.preferencePanel, {\n open: true,\n openedPanelValue: newValue\n })\n }));\n apiRef.current.forceUpdate();\n }, [doNotHidePanel, apiRef, logger]);\n useGridApiMethod(apiRef, {\n showPreferences,\n hidePreferences: hidePreferencesDelayed\n }, 'ColumnMenuApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback(prevState => {\n const preferencePanelToExport = gridPreferencePanelStateSelector(apiRef.current.state);\n\n if (!preferencePanelToExport.open && !preferencePanelToExport.openedPanelValue) {\n return prevState;\n }\n\n return _extends({}, prevState, {\n preferencePanel: preferencePanelToExport\n });\n }, [apiRef]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n const preferencePanel = context.stateToRestore.preferencePanel;\n\n if (preferencePanel != null) {\n apiRef.current.setState(state => _extends({}, state, {\n preferencePanel\n }));\n }\n\n return params;\n }, [apiRef]);\n useGridRegisterPreProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPreProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n return () => {\n clearTimeout(hideTimeout.current);\n clearTimeout(immediateTimeout.current);\n };\n }, []);\n};","// TODO v6: rename to gridEditingStateSelector\nexport const gridEditRowsStateSelector = state => state.editRows;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useEventCallback } from '@mui/material/utils';\nimport { useGridApiOptionHandler, useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { GridEvents } from '../../../models/events/gridEvents';\nimport { GridCellModes, GridEditModes } from '../../../models/gridEditRowModel';\nimport { isKeyboardEvent, isPrintableKey, isCellEnterEditModeKeys, isCellExitEditModeKeys, isCellEditCommitKeys, isDeleteKeys } from '../../../utils/keyboardUtils';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridFocusCellSelector } from '../focus/gridFocusStateSelector';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { gridEditRowsStateSelector } from './gridEditRowsSelector';\n\nfunction isPromise(promise) {\n return typeof promise.then === 'function';\n}\n\nexport const useCellEditing = (apiRef, props) => {\n var _props$experimentalFe2;\n\n const logger = useGridLogger(apiRef, 'useGridEditRows');\n\n const buildCallback = callback => (...args) => {\n if (props.editMode === GridEditModes.Cell) {\n callback(...args);\n }\n };\n\n const setCellMode = React.useCallback((id, field, mode) => {\n if (apiRef.current.getCellMode(id, field) === mode) {\n return;\n }\n\n logger.debug(`Switching cell id: ${id} field: ${field} to mode: ${mode}`);\n apiRef.current.setState(state => {\n const newEditRowsState = _extends({}, state.editRows);\n\n newEditRowsState[id] = _extends({}, newEditRowsState[id]);\n\n if (mode === GridCellModes.Edit) {\n newEditRowsState[id][field] = {\n value: apiRef.current.getCellValue(id, field)\n };\n } else {\n delete newEditRowsState[id][field];\n\n if (!Object.keys(newEditRowsState[id]).length) {\n delete newEditRowsState[id];\n }\n }\n\n return _extends({}, state, {\n editRows: newEditRowsState\n });\n });\n apiRef.current.forceUpdate();\n apiRef.current.publishEvent(GridEvents.cellModeChange, apiRef.current.getCellParams(id, field));\n }, [apiRef, logger]);\n const getCellMode = React.useCallback((id, field) => {\n const editRowsState = gridEditRowsStateSelector(apiRef.current.state);\n const isEditing = editRowsState[id] && editRowsState[id][field];\n return isEditing ? GridCellModes.Edit : GridCellModes.View;\n }, [apiRef]); // TODO v6: it should always return a promise\n\n const commitCellChange = React.useCallback((params, event = {}) => {\n var _props$experimentalFe;\n\n const {\n id,\n field\n } = params;\n apiRef.current.unstable_runPendingEditCellValueMutation(id, field);\n const model = apiRef.current.getEditRowsModel();\n\n if (!model[id] || !model[id][field]) {\n throw new Error(`MUI: Cell at id: ${id} and field: ${field} is not in edit mode.`);\n }\n\n const editCellProps = model[id][field];\n const column = apiRef.current.getColumn(field);\n const row = apiRef.current.getRow(id);\n\n if ((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.preventCommitWhileValidating) {\n const cellProps = model[id][field];\n\n if (cellProps.isValidating || cellProps.error) {\n return false;\n }\n }\n\n const commitParams = _extends({}, params, {\n value: editCellProps.value\n });\n\n let hasError = !!editCellProps.error;\n\n if (!hasError && typeof column.preProcessEditCellProps === 'function') {\n const result = column.preProcessEditCellProps({\n id,\n row,\n props: editCellProps\n });\n\n if (isPromise(result)) {\n return result.then(newEditCellProps => {\n apiRef.current.unstable_setEditCellProps({\n id,\n field,\n props: newEditCellProps\n });\n\n if (newEditCellProps.error) {\n return false;\n }\n\n apiRef.current.publishEvent(GridEvents.cellEditCommit, commitParams, event);\n return true;\n });\n }\n\n apiRef.current.unstable_setEditCellProps({\n id,\n field,\n props: result\n });\n hasError = !!result.error;\n }\n\n if (!hasError) {\n apiRef.current.publishEvent(GridEvents.cellEditCommit, commitParams, event);\n return true;\n }\n\n return false;\n }, [apiRef, (_props$experimentalFe2 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe2.preventCommitWhileValidating]);\n const setCellEditingEditCellValue = React.useCallback(params => {\n const column = apiRef.current.getColumn(params.field);\n const row = apiRef.current.getRow(params.id);\n return new Promise(resolve => {\n let newEditCellProps = {\n value: params.value\n };\n const model = apiRef.current.getEditRowsModel();\n const editCellProps = model[params.id][params.field];\n\n if (typeof column.preProcessEditCellProps !== 'function') {\n apiRef.current.unstable_setEditCellProps(_extends({}, params, {\n props: newEditCellProps\n }));\n resolve(true);\n return;\n } // setEditCellProps runs the value parser and returns the updated props\n\n\n newEditCellProps = apiRef.current.unstable_setEditCellProps(_extends({}, params, {\n props: _extends({}, editCellProps, {\n isValidating: true\n })\n }));\n Promise.resolve(column.preProcessEditCellProps({\n id: params.id,\n row,\n props: _extends({}, newEditCellProps, {\n value: apiRef.current.unstable_parseValue(params.id, params.field, params.value)\n })\n })).then(newEditCellPropsProcessed => {\n apiRef.current.unstable_setEditCellProps(_extends({}, params, {\n props: _extends({}, newEditCellPropsProcessed, {\n isValidating: false\n })\n }));\n resolve(!newEditCellPropsProcessed.error);\n });\n });\n }, [apiRef]);\n const cellEditingApi = {\n setCellMode,\n getCellMode,\n commitCellChange,\n unstable_setCellEditingEditCellValue: setCellEditingEditCellValue\n };\n useGridApiMethod(apiRef, cellEditingApi, 'EditRowApi');\n const handleCellKeyDown = React.useCallback(async (params, event) => {\n const {\n id,\n field,\n cellMode,\n isEditable\n } = params;\n\n if (!isEditable) {\n return;\n }\n\n const isEditMode = cellMode === GridCellModes.Edit;\n const isModifierKeyPressed = event.ctrlKey || event.metaKey || event.altKey;\n\n if (!isEditMode && isCellEnterEditModeKeys(event.key) && !isModifierKeyPressed && !(event.key === ' ' && event.shiftKey)) {\n apiRef.current.publishEvent(GridEvents.cellEditStart, params, event);\n }\n\n if (!isEditMode && isDeleteKeys(event.key)) {\n apiRef.current.setEditCellValue({\n id,\n field,\n value: ''\n });\n apiRef.current.commitCellChange({\n id,\n field\n }, event);\n apiRef.current.publishEvent(GridEvents.cellEditStop, params, event);\n }\n\n if (isEditMode && isCellEditCommitKeys(event.key)) {\n const commitParams = {\n id,\n field\n };\n const isValid = await apiRef.current.commitCellChange(commitParams, event);\n\n if (!isValid) {\n return;\n }\n }\n\n if (isEditMode && isCellExitEditModeKeys(event.key)) {\n apiRef.current.publishEvent(GridEvents.cellEditStop, params, event);\n }\n }, [apiRef]);\n const handleCellDoubleClick = React.useCallback((params, event) => {\n if (!params.isEditable) {\n return;\n }\n\n apiRef.current.publishEvent(GridEvents.cellEditStart, params, event);\n }, [apiRef]);\n\n const commitPropsAndExit = async (params, event) => {\n if (params.cellMode === GridCellModes.View) {\n return;\n }\n\n await apiRef.current.commitCellChange(params, event);\n apiRef.current.publishEvent(GridEvents.cellEditStop, params, event);\n };\n\n const handleCellFocusOut = useEventCallback((params, event) => {\n commitPropsAndExit(params, event);\n });\n const handleColumnHeaderDragStart = useEventCallback(() => {\n const cell = gridFocusCellSelector(apiRef);\n\n if (!cell) {\n return;\n }\n\n const params = apiRef.current.getCellParams(cell.id, cell.field);\n commitPropsAndExit(params, {});\n });\n const handleCellEditStart = React.useCallback((params, event) => {\n if (!params.isEditable) {\n return;\n }\n\n apiRef.current.setCellMode(params.id, params.field, GridCellModes.Edit);\n\n if (isKeyboardEvent(event) && isPrintableKey(event.key)) {\n apiRef.current.unstable_setEditCellProps({\n id: params.id,\n field: params.field,\n props: {\n value: ''\n }\n });\n }\n }, [apiRef]);\n const handleCellEditStop = React.useCallback((params, event) => {\n apiRef.current.setCellMode(params.id, params.field, GridCellModes.View);\n\n if (!isKeyboardEvent(event)) {\n return;\n }\n\n if (isCellEditCommitKeys(event.key)) {\n apiRef.current.publishEvent(GridEvents.cellNavigationKeyDown, params, event);\n return;\n }\n\n if (event.key === 'Escape' || isDeleteKeys(event.key)) {\n apiRef.current.setCellFocus(params.id, params.field);\n }\n }, [apiRef]);\n const handleCellEditCommit = React.useCallback(params => {\n const {\n id,\n field\n } = params;\n const model = apiRef.current.getEditRowsModel();\n const {\n value\n } = model[id][field];\n logger.debug(`Setting cell id: ${id} field: ${field} to value: ${value == null ? void 0 : value.toString()}`);\n const row = apiRef.current.getRow(id);\n\n if (row) {\n const column = apiRef.current.getColumn(params.field);\n\n let rowUpdate = _extends({}, row, {\n [field]: value\n });\n\n if (column.valueSetter) {\n rowUpdate = column.valueSetter({\n row,\n value\n });\n }\n\n apiRef.current.updateRows([rowUpdate]);\n }\n }, [apiRef, logger]);\n const handleEditCellPropsChange = React.useCallback(params => {\n const row = apiRef.current.getRow(params.id);\n const column = apiRef.current.getColumn(params.field);\n const editCellProps = column.preProcessEditCellProps ? column.preProcessEditCellProps({\n id: params.id,\n row,\n props: params.props\n }) : params.props;\n\n if (isPromise(editCellProps)) {\n editCellProps.then(newEditCellProps => {\n apiRef.current.unstable_setEditCellProps(_extends({}, params, {\n props: newEditCellProps\n }));\n });\n } else {\n apiRef.current.unstable_setEditCellProps(_extends({}, params, {\n props: editCellProps\n }));\n }\n }, [apiRef]);\n useGridApiEventHandler(apiRef, GridEvents.cellKeyDown, buildCallback(handleCellKeyDown));\n useGridApiEventHandler(apiRef, GridEvents.cellDoubleClick, buildCallback(handleCellDoubleClick));\n useGridApiEventHandler(apiRef, GridEvents.cellFocusOut, buildCallback(handleCellFocusOut));\n useGridApiEventHandler(apiRef, GridEvents.columnHeaderDragStart, buildCallback(handleColumnHeaderDragStart));\n useGridApiEventHandler(apiRef, GridEvents.cellEditStart, buildCallback(handleCellEditStart));\n useGridApiEventHandler(apiRef, GridEvents.cellEditStop, buildCallback(handleCellEditStop));\n useGridApiEventHandler(apiRef, GridEvents.cellEditCommit, buildCallback(handleCellEditCommit));\n useGridApiEventHandler(apiRef, GridEvents.editCellPropsChange, buildCallback(handleEditCellPropsChange));\n useGridApiOptionHandler(apiRef, GridEvents.cellEditCommit, props.onCellEditCommit);\n useGridApiOptionHandler(apiRef, GridEvents.cellEditStart, props.onCellEditStart);\n useGridApiOptionHandler(apiRef, GridEvents.cellEditStop, props.onCellEditStop);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridEvents } from '../../../models/events';\nimport { GridCellModes } from '../../../models/gridEditRowModel';\nimport { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridEditRowsStateSelector } from './gridEditRowsSelector';\nimport { useCellEditing } from './useGridCellEditing.old';\nimport { useGridRowEditing } from './useGridRowEditing.old';\nexport const editingStateInitializer = state => _extends({}, state, {\n editRows: {}\n});\n/**\n * @requires useGridFocus - can be after, async only\n * @requires useGridParamsApi (method)\n * @requires useGridColumns (state)\n */\n\nexport function useGridEditing(apiRef, props) {\n var _props$experimentalFe2;\n\n const logger = useGridLogger(apiRef, 'useGridEditRows');\n useCellEditing(apiRef, props);\n useGridRowEditing(apiRef, props);\n const debounceMap = React.useRef({});\n apiRef.current.unstable_updateControlState({\n stateId: 'editRows',\n propModel: props.editRowsModel,\n propOnChange: props.onEditRowsModelChange,\n stateSelector: gridEditRowsStateSelector,\n changeEvent: GridEvents.editRowsModelChange\n });\n const isCellEditable = React.useCallback(params => !params.rowNode.isAutoGenerated && !!params.colDef.editable && !!params.colDef.renderEditCell && (!props.isCellEditable || props.isCellEditable(params)), // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.isCellEditable]);\n\n const maybeDebounce = (id, field, debounceMs, callback) => {\n if (!debounceMs) {\n callback();\n return;\n }\n\n if (!debounceMap.current[id]) {\n debounceMap.current[id] = {};\n }\n\n if (debounceMap.current[id][field]) {\n const [timeout] = debounceMap.current[id][field];\n clearTimeout(timeout);\n }\n\n const callbackToRunImmediately = () => {\n callback();\n const [timeout] = debounceMap.current[id][field];\n clearTimeout(timeout);\n delete debounceMap.current[id][field];\n };\n\n const timeout = setTimeout(() => {\n callback();\n delete debounceMap.current[id][field];\n }, debounceMs);\n debounceMap.current[id][field] = [timeout, callbackToRunImmediately];\n };\n\n const runPendingEditCellValueMutation = React.useCallback((id, field) => {\n if (!debounceMap.current[id]) {\n return;\n }\n\n if (!field) {\n Object.keys(debounceMap.current[id]).forEach(debouncedField => {\n const [, callback] = debounceMap.current[id][debouncedField];\n callback();\n });\n } else if (debounceMap.current[id][field]) {\n const [, callback] = debounceMap.current[id][field];\n callback();\n }\n }, []);\n const setEditCellValue = React.useCallback((params, event = {}) => {\n maybeDebounce(params.id, params.field, params.debounceMs, () => {\n var _props$experimentalFe;\n\n if ((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.preventCommitWhileValidating) {\n if (props.editMode === 'row') {\n return apiRef.current.unstable_setRowEditingEditCellValue(params);\n }\n\n return apiRef.current.unstable_setCellEditingEditCellValue(params);\n }\n\n const newParams = {\n id: params.id,\n field: params.field,\n props: {\n value: params.value\n }\n };\n return apiRef.current.publishEvent(GridEvents.editCellPropsChange, newParams, event);\n });\n }, [apiRef, props.editMode, (_props$experimentalFe2 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe2.preventCommitWhileValidating]);\n const parseValue = React.useCallback((id, field, value) => {\n const column = apiRef.current.getColumn(field);\n return column.valueParser ? column.valueParser(value, apiRef.current.getCellParams(id, field)) : value;\n }, [apiRef]);\n const setEditCellProps = React.useCallback(params => {\n const {\n id,\n field,\n props: editProps\n } = params;\n logger.debug(`Setting cell props on id: ${id} field: ${field}`);\n apiRef.current.setState(state => {\n const editRowsModel = _extends({}, state.editRows);\n\n editRowsModel[id] = _extends({}, state.editRows[id]);\n editRowsModel[id][field] = _extends({}, editProps, {\n value: parseValue(id, field, editProps.value)\n });\n return _extends({}, state, {\n editRows: editRowsModel\n });\n });\n apiRef.current.forceUpdate();\n const editRowsState = gridEditRowsStateSelector(apiRef.current.state);\n return editRowsState[id][field];\n }, [apiRef, logger, parseValue]);\n const setEditRowsModel = React.useCallback(model => {\n const currentModel = gridEditRowsStateSelector(apiRef.current.state);\n\n if (currentModel !== model) {\n logger.debug(`Setting editRows model`);\n apiRef.current.setState(state => _extends({}, state, {\n editRows: model\n }));\n apiRef.current.forceUpdate();\n }\n }, [apiRef, logger]);\n const getEditRowsModel = React.useCallback(() => gridEditRowsStateSelector(apiRef.current.state), [apiRef]);\n const preventTextSelection = React.useCallback((params, event) => {\n const isMoreThanOneClick = event.detail > 1;\n\n if (params.isEditable && params.cellMode === GridCellModes.View && isMoreThanOneClick) {\n // If we click more than one time, then we prevent the default behavior of selecting the text cell.\n event.preventDefault();\n }\n }, []);\n useGridApiEventHandler(apiRef, GridEvents.cellMouseDown, preventTextSelection);\n useGridApiOptionHandler(apiRef, GridEvents.editCellPropsChange, props.onEditCellPropsChange); // TODO v6: remove, use `preProcessEditCellProps` instead\n\n const editingSharedApi = {\n isCellEditable,\n setEditRowsModel,\n getEditRowsModel,\n setEditCellValue,\n unstable_setEditCellProps: setEditCellProps,\n unstable_parseValue: parseValue,\n unstable_runPendingEditCellValueMutation: runPendingEditCellValueMutation\n };\n useGridApiMethod(apiRef, editingSharedApi, 'EditRowApi');\n React.useEffect(() => {\n if (props.editRowsModel !== undefined) {\n apiRef.current.setEditRowsModel(props.editRowsModel);\n }\n }, [apiRef, props.editRowsModel]);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useEventCallback } from '@mui/material/utils';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { GridRowModes, GridEditModes, GridCellModes } from '../../../models/gridEditRowModel';\nimport { useGridSelector } from '../../utils/useGridSelector';\nimport { gridColumnDefinitionsSelector } from '../columns/gridColumnsSelector';\nimport { gridEditRowsStateSelector } from './gridEditRowsSelector';\nimport { GridEvents } from '../../../models/events/gridEvents';\nimport { gridFocusCellSelector } from '../focus/gridFocusStateSelector';\nimport { useGridApiOptionHandler, useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nexport const useGridRowEditing = (apiRef, props) => {\n var _props$experimentalFe2, _props$experimentalFe4;\n\n const focusTimeout = React.useRef(null);\n const nextFocusedCell = React.useRef(null);\n const columns = useGridSelector(apiRef, gridColumnDefinitionsSelector);\n\n const buildCallback = callback => (...args) => {\n if (props.editMode === GridEditModes.Row) {\n callback(...args);\n }\n };\n\n const setRowMode = React.useCallback((id, mode) => {\n if (mode === apiRef.current.getRowMode(id)) {\n return;\n }\n\n apiRef.current.setState(state => {\n const newEditRowsState = _extends({}, state.editRows);\n\n if (mode === GridRowModes.Edit) {\n newEditRowsState[id] = {};\n columns.forEach(column => {\n const cellParams = apiRef.current.getCellParams(id, column.field);\n\n if (cellParams.isEditable) {\n newEditRowsState[id][column.field] = {\n value: cellParams.value\n };\n }\n });\n } else {\n delete newEditRowsState[id];\n }\n\n return _extends({}, state, {\n editRows: newEditRowsState\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef, columns]);\n const getRowMode = React.useCallback(id => {\n if (props.editMode === GridEditModes.Cell) {\n return GridRowModes.View;\n }\n\n const editRowsState = gridEditRowsStateSelector(apiRef.current.state);\n return editRowsState[id] ? GridRowModes.Edit : GridRowModes.View;\n }, [apiRef, props.editMode]);\n const commitRowChange = React.useCallback((id, event = {}) => {\n var _props$experimentalFe;\n\n if (props.editMode === GridEditModes.Cell) {\n throw new Error(`MUI: You can't commit changes when the edit mode is 'cell'.`);\n }\n\n apiRef.current.unstable_runPendingEditCellValueMutation(id);\n const model = apiRef.current.getEditRowsModel();\n const editRowProps = model[id];\n\n if (!editRowProps) {\n throw new Error(`MUI: Row at id: ${id} is not being edited.`);\n }\n\n if ((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.preventCommitWhileValidating) {\n const isValid = Object.keys(editRowProps).reduce((acc, field) => {\n return acc && !editRowProps[field].isValidating && !editRowProps[field].error;\n }, true);\n\n if (!isValid) {\n return false;\n }\n }\n\n const hasFieldWithError = Object.values(editRowProps).some(value => !!value.error);\n\n if (hasFieldWithError) {\n return false;\n }\n\n const fieldsWithValidator = Object.keys(editRowProps).filter(field => {\n const column = apiRef.current.getColumn(field);\n return typeof column.preProcessEditCellProps === 'function';\n });\n\n if (fieldsWithValidator.length > 0) {\n const row = apiRef.current.getRow(id);\n const validatorErrors = fieldsWithValidator.map(async field => {\n const column = apiRef.current.getColumn(field);\n const newEditCellProps = await Promise.resolve(column.preProcessEditCellProps({\n id,\n row,\n props: editRowProps[field]\n }));\n apiRef.current.unstable_setEditCellProps({\n id,\n field,\n props: newEditCellProps\n });\n return newEditCellProps.error;\n });\n return Promise.all(validatorErrors).then(errors => {\n if (errors.some(error => !!error)) {\n return false;\n }\n\n apiRef.current.publishEvent(GridEvents.rowEditCommit, id, event);\n return true;\n });\n }\n\n apiRef.current.publishEvent(GridEvents.rowEditCommit, id, event);\n return true;\n }, [apiRef, props.editMode, (_props$experimentalFe2 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe2.preventCommitWhileValidating]);\n const setRowEditingEditCellValue = React.useCallback(params => {\n const model = apiRef.current.getEditRowsModel();\n const editRow = model[params.id];\n const row = apiRef.current.getRow(params.id);\n let isValid = true;\n return new Promise(resolve => {\n Object.keys(editRow).forEach(async field => {\n const column = apiRef.current.getColumn(field);\n let editCellProps = field === params.field ? {\n value: params.value\n } : editRow[field]; // setEditCellProps runs the value parser and returns the updated props\n\n editCellProps = apiRef.current.unstable_setEditCellProps({\n id: params.id,\n field,\n props: _extends({}, editCellProps, {\n isValidating: true\n })\n });\n\n if (column.preProcessEditCellProps) {\n editCellProps = await Promise.resolve(column.preProcessEditCellProps({\n id: params.id,\n row,\n props: _extends({}, editCellProps, {\n value: field === params.field ? apiRef.current.unstable_parseValue(params.id, field, params.value) : editCellProps.value\n })\n }));\n }\n\n if (editCellProps.error) {\n isValid = false;\n }\n\n apiRef.current.unstable_setEditCellProps({\n id: params.id,\n field,\n props: _extends({}, editCellProps, {\n isValidating: false\n })\n });\n });\n resolve(isValid);\n });\n }, [apiRef]);\n const rowEditingApi = {\n setRowMode,\n getRowMode,\n commitRowChange,\n unstable_setRowEditingEditCellValue: setRowEditingEditCellValue\n };\n useGridApiMethod(apiRef, rowEditingApi, 'EditRowApi');\n const handleCellKeyDown = React.useCallback(async (params, event) => {\n const {\n cellMode,\n isEditable\n } = params;\n\n if (!isEditable) {\n return;\n }\n\n const isEditMode = cellMode === GridCellModes.Edit;\n const rowParams = apiRef.current.getRowParams(params.id);\n\n if (isEditMode) {\n if (event.key === 'Enter') {\n var _props$experimentalFe3;\n\n // TODO: check the return before firing GridEvents.rowEditStop\n // On cell editing, it won't exits the edit mode with error\n const isValid = await apiRef.current.commitRowChange(params.id);\n\n if (!isValid && (_props$experimentalFe3 = props.experimentalFeatures) != null && _props$experimentalFe3.preventCommitWhileValidating) {\n return;\n }\n\n apiRef.current.publishEvent(GridEvents.rowEditStop, rowParams, event);\n } else if (event.key === 'Escape') {\n apiRef.current.publishEvent(GridEvents.rowEditStop, rowParams, event);\n }\n } else if (event.key === 'Enter') {\n apiRef.current.publishEvent(GridEvents.rowEditStart, rowParams, event);\n }\n }, [apiRef, (_props$experimentalFe4 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe4.preventCommitWhileValidating]);\n const handleCellDoubleClick = React.useCallback((params, event) => {\n if (!params.isEditable) {\n return;\n }\n\n const rowParams = apiRef.current.getRowParams(params.id);\n apiRef.current.publishEvent(GridEvents.rowEditStart, rowParams, event);\n }, [apiRef]);\n const handleEditCellPropsChange = React.useCallback(params => {\n const row = apiRef.current.getRow(params.id);\n const model = apiRef.current.getEditRowsModel();\n const editRow = model[params.id];\n Object.keys(editRow).forEach(async field => {\n const column = apiRef.current.getColumn(field);\n\n if (column.preProcessEditCellProps) {\n const editCellProps = field === params.field ? params.props : editRow[field];\n const newEditCellProps = await Promise.resolve(column.preProcessEditCellProps({\n id: params.id,\n row,\n props: editCellProps\n }));\n apiRef.current.unstable_setEditCellProps({\n id: params.id,\n field,\n props: newEditCellProps\n });\n } else if (field === params.field) {\n apiRef.current.unstable_setEditCellProps(params);\n }\n });\n }, [apiRef]);\n const handleRowEditStart = React.useCallback(params => {\n apiRef.current.setRowMode(params.id, GridRowModes.Edit);\n }, [apiRef]);\n const handleRowEditStop = React.useCallback((params, event) => {\n apiRef.current.setRowMode(params.id, GridRowModes.View);\n\n if (event.key === 'Enter') {\n apiRef.current.publishEvent(GridEvents.cellNavigationKeyDown, params, event);\n }\n }, [apiRef]);\n const handleRowEditCommit = React.useCallback(id => {\n const model = apiRef.current.getEditRowsModel();\n const editRow = model[id];\n\n if (!editRow) {\n throw new Error(`MUI: Row at id: ${id} is not being edited.`);\n }\n\n const row = apiRef.current.getRow(id);\n\n if (row) {\n let rowUpdate = _extends({}, row);\n\n Object.keys(editRow).forEach(field => {\n const column = apiRef.current.getColumn(field);\n const value = editRow[field].value;\n\n if (column.valueSetter) {\n rowUpdate = column.valueSetter({\n row: rowUpdate,\n value\n });\n } else {\n rowUpdate[field] = value;\n }\n });\n apiRef.current.updateRows([rowUpdate]);\n }\n }, [apiRef]);\n const handleCellFocusIn = React.useCallback(params => {\n nextFocusedCell.current = params;\n }, []);\n\n const commitPropsAndExit = async (params, event) => {\n if (params.cellMode === GridCellModes.View) {\n return;\n }\n\n nextFocusedCell.current = null;\n focusTimeout.current = setTimeout(async () => {\n var _nextFocusedCell$curr;\n\n if (((_nextFocusedCell$curr = nextFocusedCell.current) == null ? void 0 : _nextFocusedCell$curr.id) !== params.id) {\n await apiRef.current.commitRowChange(params.id, event);\n const rowParams = apiRef.current.getRowParams(params.id);\n apiRef.current.publishEvent(GridEvents.rowEditStop, rowParams, event);\n }\n });\n };\n\n const handleCellFocusOut = useEventCallback((params, event) => {\n commitPropsAndExit(params, event);\n });\n const handleColumnHeaderDragStart = useEventCallback(() => {\n const cell = gridFocusCellSelector(apiRef);\n\n if (!cell) {\n return;\n }\n\n const params = apiRef.current.getCellParams(cell.id, cell.field);\n commitPropsAndExit(params, {});\n });\n useGridApiEventHandler(apiRef, GridEvents.cellKeyDown, buildCallback(handleCellKeyDown));\n useGridApiEventHandler(apiRef, GridEvents.cellDoubleClick, buildCallback(handleCellDoubleClick));\n useGridApiEventHandler(apiRef, GridEvents.editCellPropsChange, buildCallback(handleEditCellPropsChange));\n useGridApiEventHandler(apiRef, GridEvents.rowEditStart, buildCallback(handleRowEditStart));\n useGridApiEventHandler(apiRef, GridEvents.rowEditStop, buildCallback(handleRowEditStop));\n useGridApiEventHandler(apiRef, GridEvents.rowEditCommit, buildCallback(handleRowEditCommit));\n useGridApiEventHandler(apiRef, GridEvents.cellFocusIn, buildCallback(handleCellFocusIn));\n useGridApiEventHandler(apiRef, GridEvents.cellFocusOut, buildCallback(handleCellFocusOut));\n useGridApiEventHandler(apiRef, GridEvents.columnHeaderDragStart, buildCallback(handleColumnHeaderDragStart));\n useGridApiOptionHandler(apiRef, GridEvents.rowEditCommit, props.onRowEditCommit);\n useGridApiOptionHandler(apiRef, GridEvents.rowEditStart, props.onRowEditStart);\n useGridApiOptionHandler(apiRef, GridEvents.rowEditStop, props.onRowEditStop);\n};","// TODO v6 - remove\n\n/**\n * Params passed to `apiRef.current.setEditCellValue`.\n */\n// TODO v6 - remove\n// TODO v6 - remove\nvar GridCellEditStartReasons;\n/**\n * Params passed to the `cellEditStart` event.\n */\n\n(function (GridCellEditStartReasons) {\n GridCellEditStartReasons[\"enterKeyDown\"] = \"enterKeyDown\";\n GridCellEditStartReasons[\"cellDoubleClick\"] = \"cellDoubleClick\";\n GridCellEditStartReasons[\"printableKeyDown\"] = \"printableKeyDown\";\n GridCellEditStartReasons[\"deleteKeyDown\"] = \"deleteKeyDown\";\n})(GridCellEditStartReasons || (GridCellEditStartReasons = {}));\n\nvar GridCellEditStopReasons;\n/**\n * Params passed to the `cellEditStop event.\n */\n\n(function (GridCellEditStopReasons) {\n GridCellEditStopReasons[\"cellFocusOut\"] = \"cellFocusOut\";\n GridCellEditStopReasons[\"escapeKeyDown\"] = \"escapeKeyDown\";\n GridCellEditStopReasons[\"enterKeyDown\"] = \"enterKeyDown\";\n GridCellEditStopReasons[\"tabKeyDown\"] = \"tabKeyDown\";\n GridCellEditStopReasons[\"shiftTabKeyDown\"] = \"shiftTabKeyDown\";\n})(GridCellEditStopReasons || (GridCellEditStopReasons = {}));\n\n// https://github.com/mui/mui-x/pull/3738#discussion_r798504277\nexport { GridCellEditStartReasons, GridCellEditStopReasons };","/**\n * Object passed as parameter in the row callbacks.\n */\n\n/**\n * Object passed as parameter in the row `getRowClassName` callback prop.\n */\n\n/**\n * Object passed as parameter in the row `getRowHeight` callback prop.\n */\n\n/**\n * The getRowHeight return value.\n */\nvar GridRowEditStartReasons;\n/**\n * Params passed to the `rowEditStart` event.\n */\n\n(function (GridRowEditStartReasons) {\n GridRowEditStartReasons[\"enterKeyDown\"] = \"enterKeyDown\";\n GridRowEditStartReasons[\"cellDoubleClick\"] = \"cellDoubleClick\";\n GridRowEditStartReasons[\"printableKeyDown\"] = \"printableKeyDown\";\n GridRowEditStartReasons[\"deleteKeyDown\"] = \"deleteKeyDown\";\n})(GridRowEditStartReasons || (GridRowEditStartReasons = {}));\n\nvar GridRowEditStopReasons;\n\n(function (GridRowEditStopReasons) {\n GridRowEditStopReasons[\"rowFocusOut\"] = \"rowFocusOut\";\n GridRowEditStopReasons[\"escapeKeyDown\"] = \"escapeKeyDown\";\n GridRowEditStopReasons[\"enterKeyDown\"] = \"enterKeyDown\";\n GridRowEditStopReasons[\"tabKeyDown\"] = \"tabKeyDown\";\n GridRowEditStopReasons[\"shiftTabKeyDown\"] = \"shiftTabKeyDown\";\n})(GridRowEditStopReasons || (GridRowEditStopReasons = {}));\n\n// https://github.com/mui/mui-x/pull/3738#discussion_r798504277\nexport { GridRowEditStartReasons, GridRowEditStopReasons };","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _toPropertyKey from \"@babel/runtime/helpers/esm/toPropertyKey\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';\nimport { GridEvents } from '../../../models/events/gridEvents';\nimport { GridEditModes, GridRowModes } from '../../../models/gridEditRowModel';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { gridEditRowsStateSelector } from './gridEditRowsSelector';\nimport { isPrintableKey } from '../../../utils/keyboardUtils';\nimport { gridColumnFieldsSelector } from '../columns/gridColumnsSelector';\nimport { GridRowEditStopReasons, GridRowEditStartReasons } from '../../../models/params/gridRowParams';\nexport const useGridRowEditing = (apiRef, props) => {\n const focusTimeout = React.useRef(null);\n const nextFocusedCell = React.useRef(null);\n const {\n processRowUpdate\n } = props;\n\n const runIfEditModeIsRow = callback => (...args) => {\n if (props.editMode === GridEditModes.Row) {\n callback(...args);\n }\n };\n\n const throwIfNotEditable = React.useCallback((id, field) => {\n const params = apiRef.current.getCellParams(id, field);\n\n if (!apiRef.current.isCellEditable(params)) {\n throw new Error(`MUI: The cell with id=${id} and field=${field} is not editable.`);\n }\n }, [apiRef]);\n const throwIfNotInMode = React.useCallback((id, mode) => {\n if (apiRef.current.getRowMode(id) !== mode) {\n throw new Error(`MUI: The row with id=${id} is not in ${mode} mode.`);\n }\n }, [apiRef]);\n const handleCellDoubleClick = React.useCallback((params, event) => {\n if (!params.isEditable) {\n return;\n }\n\n if (apiRef.current.getRowMode(params.id) === GridRowModes.Edit) {\n return;\n }\n\n const rowParams = apiRef.current.getRowParams(params.id);\n\n const newParams = _extends({}, rowParams, {\n field: params.field,\n reason: GridRowEditStartReasons.cellDoubleClick\n });\n\n apiRef.current.publishEvent(GridEvents.rowEditStart, newParams, event);\n }, [apiRef]);\n const handleCellFocusIn = React.useCallback(params => {\n nextFocusedCell.current = params;\n }, []);\n const handleCellFocusOut = React.useCallback((params, event) => {\n if (!params.isEditable) {\n return;\n }\n\n if (apiRef.current.getRowMode(params.id) === GridRowModes.View) {\n return;\n } // The mechanism to detect if we can stop editing a row is different from\n // the cell editing. Instead of triggering it when clicking outside a cell,\n // we must check if another cell in the same row was not clicked. To achieve\n // that, first we keep track of all cells that gained focus. When a cell loses\n // focus we check if the next cell that received focus is from a different row.\n\n\n nextFocusedCell.current = null;\n focusTimeout.current = setTimeout(() => {\n var _nextFocusedCell$curr;\n\n focusTimeout.current = null;\n\n if (((_nextFocusedCell$curr = nextFocusedCell.current) == null ? void 0 : _nextFocusedCell$curr.id) !== params.id) {\n const rowParams = apiRef.current.getRowParams(params.id);\n\n const newParams = _extends({}, rowParams, {\n field: params.field,\n reason: GridRowEditStopReasons.rowFocusOut\n });\n\n apiRef.current.publishEvent(GridEvents.rowEditStop, newParams, event);\n }\n });\n }, [apiRef]);\n React.useEffect(() => {\n return () => {\n clearTimeout(focusTimeout.current);\n };\n }, []);\n const handleCellKeyDown = React.useCallback((params, event) => {\n if (params.cellMode === GridRowModes.Edit) {\n let reason;\n\n if (event.key === 'Escape') {\n reason = GridRowEditStopReasons.escapeKeyDown;\n } else if (event.key === 'Enter') {\n reason = GridRowEditStopReasons.enterKeyDown;\n } else if (event.key === 'Tab') {\n const columnFields = gridColumnFieldsSelector(apiRef).filter(field => apiRef.current.isCellEditable(apiRef.current.getCellParams(params.id, field)));\n\n if (event.shiftKey) {\n if (params.field === columnFields[0]) {\n // Exit if user pressed Shift+Tab on the first field\n reason = GridRowEditStopReasons.shiftTabKeyDown;\n }\n } else if (params.field === columnFields[columnFields.length - 1]) {\n // Exit if user pressed Tab on the last field\n reason = GridRowEditStopReasons.tabKeyDown;\n }\n\n if (reason) {\n event.preventDefault(); // Prevent going to the next element in the tab sequence\n }\n }\n\n if (reason) {\n const rowParams = apiRef.current.getRowParams(params.id);\n\n const newParams = _extends({}, rowParams, {\n reason,\n field: params.field\n });\n\n apiRef.current.publishEvent(GridEvents.rowEditStop, newParams, event);\n }\n } else if (params.isEditable) {\n let reason;\n\n if (isPrintableKey(event.key)) {\n if (event.shiftKey || event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n reason = GridRowEditStartReasons.printableKeyDown;\n } else if (event.key === 'Enter') {\n reason = GridRowEditStartReasons.enterKeyDown;\n } else if (event.key === 'Delete') {\n reason = GridRowEditStartReasons.deleteKeyDown;\n }\n\n if (reason) {\n const rowParams = apiRef.current.getRowParams(params.id);\n\n const newParams = _extends({}, rowParams, {\n field: params.field,\n reason\n });\n\n apiRef.current.publishEvent(GridEvents.rowEditStart, newParams, event);\n }\n }\n }, [apiRef]);\n const handleRowEditStart = React.useCallback((params, event) => {\n const {\n id,\n field,\n reason\n } = params;\n apiRef.current.startRowEditMode({\n id,\n fieldToFocus: field\n });\n\n if (reason === GridRowEditStartReasons.deleteKeyDown || reason === GridRowEditStartReasons.printableKeyDown) {\n apiRef.current.setEditCellValue({\n id,\n field: field,\n value: ''\n }, event);\n }\n }, [apiRef]);\n const handleRowEditStop = React.useCallback(params => {\n const {\n id,\n reason,\n field\n } = params;\n apiRef.current.unstable_runPendingEditCellValueMutation(id);\n let cellToFocusAfter;\n\n if (reason === GridRowEditStopReasons.enterKeyDown) {\n cellToFocusAfter = 'below';\n } else if (reason === GridRowEditStopReasons.tabKeyDown) {\n cellToFocusAfter = 'right';\n } else if (reason === GridRowEditStopReasons.shiftTabKeyDown) {\n cellToFocusAfter = 'left';\n }\n\n let ignoreModifications = reason === 'escapeKeyDown';\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n\n if (!ignoreModifications) {\n // The user wants to stop editing the cell but we can't wait for the props to be processed.\n // In this case, discard the modifications if any field is processing its props.\n ignoreModifications = Object.values(editingState[id]).some(fieldProps => {\n return fieldProps.isProcessingProps;\n });\n }\n\n apiRef.current.stopRowEditMode({\n id,\n ignoreModifications,\n field,\n cellToFocusAfter\n });\n }, [apiRef]);\n useGridApiEventHandler(apiRef, GridEvents.cellDoubleClick, runIfEditModeIsRow(handleCellDoubleClick));\n useGridApiEventHandler(apiRef, GridEvents.cellFocusIn, runIfEditModeIsRow(handleCellFocusIn));\n useGridApiEventHandler(apiRef, GridEvents.cellFocusOut, runIfEditModeIsRow(handleCellFocusOut));\n useGridApiEventHandler(apiRef, GridEvents.cellKeyDown, runIfEditModeIsRow(handleCellKeyDown));\n useGridApiEventHandler(apiRef, GridEvents.rowEditStart, runIfEditModeIsRow(handleRowEditStart));\n useGridApiEventHandler(apiRef, GridEvents.rowEditStop, runIfEditModeIsRow(handleRowEditStop));\n useGridApiOptionHandler(apiRef, GridEvents.rowEditStart, props.onRowEditStart);\n useGridApiOptionHandler(apiRef, GridEvents.rowEditStop, props.onRowEditStop);\n const getRowMode = React.useCallback(id => {\n if (props.editMode === GridEditModes.Cell) {\n return GridRowModes.View;\n }\n\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const isEditing = editingState[id] && Object.keys(editingState[id]).length > 0;\n return isEditing ? GridRowModes.Edit : GridRowModes.View;\n }, [apiRef, props.editMode]);\n const updateOrDeleteRowState = React.useCallback((id, newProps) => {\n apiRef.current.setState(state => {\n const newEditingState = _extends({}, state.editRows);\n\n if (newProps !== null) {\n newEditingState[id] = newProps;\n } else {\n delete newEditingState[id];\n }\n\n return _extends({}, state, {\n editRows: newEditingState\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const updateOrDeleteFieldState = React.useCallback((id, field, newProps) => {\n apiRef.current.setState(state => {\n const newEditingState = _extends({}, state.editRows);\n\n if (newProps !== null) {\n newEditingState[id] = _extends({}, newEditingState[id], {\n [field]: _extends({}, newProps)\n });\n } else {\n delete newEditingState[id][field];\n\n if (Object.keys(newEditingState[id]).length === 0) {\n delete newEditingState[id];\n }\n }\n\n return _extends({}, state, {\n editRows: newEditingState\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const startRowEditMode = React.useCallback(params => {\n const {\n id,\n fieldToFocus\n } = params;\n throwIfNotInMode(id, GridRowModes.View);\n\n if (apiRef.current.getRowMode(id) === GridRowModes.Edit) {\n throw new Error(`MUI: The cell with id=${id} is already in edit mode.`);\n }\n\n const columnFields = gridColumnFieldsSelector(apiRef);\n const newProps = columnFields.reduce((acc, field) => {\n const cellParams = apiRef.current.getCellParams(id, field);\n\n if (!cellParams.isEditable) {\n return acc;\n }\n\n acc[field] = {\n value: apiRef.current.getCellValue(id, field),\n error: false,\n isProcessingProps: false\n };\n return acc;\n }, {});\n updateOrDeleteRowState(id, newProps);\n\n if (fieldToFocus) {\n apiRef.current.setCellFocus(id, fieldToFocus);\n }\n }, [apiRef, throwIfNotInMode, updateOrDeleteRowState]);\n const stopRowEditMode = React.useCallback(params => {\n const {\n id,\n ignoreModifications,\n field: focusedField,\n cellToFocusAfter = 'none'\n } = params;\n throwIfNotInMode(id, GridRowModes.Edit);\n apiRef.current.unstable_runPendingEditCellValueMutation(id);\n\n const updateFocusedCellIfNeeded = () => {\n if (cellToFocusAfter !== 'none' && focusedField) {\n apiRef.current.unstable_moveFocusToRelativeCell(id, focusedField, cellToFocusAfter);\n }\n };\n\n if (ignoreModifications) {\n updateFocusedCellIfNeeded();\n updateOrDeleteRowState(id, null);\n return;\n }\n\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const row = apiRef.current.getRow(id);\n const isSomeFieldProcessingProps = Object.values(editingState[id]).some(fieldProps => fieldProps.isProcessingProps);\n\n if (isSomeFieldProcessingProps) {\n return;\n }\n\n const hasSomeFieldWithError = Object.values(editingState[id]).some(fieldProps => fieldProps.error);\n\n if (hasSomeFieldWithError) {\n return;\n }\n\n let rowUpdate = _extends({}, row);\n\n Object.entries(editingState[id]).forEach(([field, fieldProps]) => {\n const column = apiRef.current.getColumn(field);\n\n if (column.valueSetter) {\n rowUpdate = column.valueSetter({\n value: fieldProps.value,\n row: rowUpdate\n });\n } else {\n rowUpdate[field] = fieldProps.value;\n }\n });\n\n if (processRowUpdate) {\n Promise.resolve(processRowUpdate(rowUpdate, row)).then(finalRowUpdate => {\n apiRef.current.updateRows([finalRowUpdate]);\n updateFocusedCellIfNeeded();\n updateOrDeleteRowState(id, null);\n });\n } else {\n apiRef.current.updateRows([rowUpdate]);\n updateFocusedCellIfNeeded();\n updateOrDeleteRowState(id, null);\n }\n }, [apiRef, processRowUpdate, throwIfNotInMode, updateOrDeleteRowState]);\n const setRowEditingEditCellValue = React.useCallback(params => {\n const {\n id,\n field,\n value\n } = params;\n throwIfNotEditable(id, field);\n const column = apiRef.current.getColumn(field);\n const row = apiRef.current.getRow(id);\n let parsedValue = value;\n\n if (column.valueParser) {\n parsedValue = column.valueParser(value, apiRef.current.getCellParams(id, field));\n }\n\n let editingState = gridEditRowsStateSelector(apiRef.current.state);\n\n let newProps = _extends({}, editingState[id][field], {\n value: parsedValue\n });\n\n if (!column.preProcessEditCellProps) {\n updateOrDeleteFieldState(id, field, newProps);\n }\n\n return new Promise(resolve => {\n const promises = [];\n\n if (column.preProcessEditCellProps) {\n const hasChanged = newProps.value !== editingState[id][field].value;\n newProps = _extends({}, newProps, {\n isProcessingProps: true\n });\n updateOrDeleteFieldState(id, field, newProps);\n\n const _editingState$id = editingState[id],\n otherFieldsProps = _objectWithoutPropertiesLoose(_editingState$id, [field].map(_toPropertyKey));\n\n const promise = Promise.resolve(column.preProcessEditCellProps({\n id,\n row,\n props: newProps,\n hasChanged,\n otherFieldsProps\n })).then(processedProps => {\n // Check again if the row is in edit mode because the user may have\n // discarded the changes while the props were being processed.\n if (apiRef.current.getRowMode(id) === GridRowModes.View) {\n resolve(false);\n return;\n }\n\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n processedProps = _extends({}, processedProps, {\n isProcessingProps: false\n }); // We don't reuse the value from the props pre-processing because when the\n // promise resolves it may be already outdated. The only exception to this rule\n // is when there's no pre-processing.\n\n processedProps.value = column.preProcessEditCellProps ? editingState[id][field].value : parsedValue;\n updateOrDeleteFieldState(id, field, processedProps);\n });\n promises.push(promise);\n }\n\n Object.entries(editingState[id]).forEach(([thisField, fieldProps]) => {\n if (thisField === field) {\n return;\n }\n\n const fieldColumn = apiRef.current.getColumn(thisField);\n\n if (!fieldColumn.preProcessEditCellProps) {\n return;\n }\n\n fieldProps = _extends({}, fieldProps, {\n isProcessingProps: true\n });\n updateOrDeleteFieldState(id, thisField, fieldProps);\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n\n const _editingState$id2 = editingState[id],\n otherFieldsProps = _objectWithoutPropertiesLoose(_editingState$id2, [thisField].map(_toPropertyKey));\n\n const promise = Promise.resolve(fieldColumn.preProcessEditCellProps({\n id,\n row,\n props: fieldProps,\n hasChanged: false,\n otherFieldsProps\n })).then(processedProps => {\n // Check again if the row is in edit mode because the user may have\n // discarded the changes while the props were being processed.\n if (apiRef.current.getRowMode(id) === GridRowModes.View) {\n resolve(false);\n return;\n }\n\n processedProps = _extends({}, processedProps, {\n isProcessingProps: false\n });\n updateOrDeleteFieldState(id, thisField, processedProps);\n });\n promises.push(promise);\n });\n Promise.all(promises).then(() => {\n if (apiRef.current.getRowMode(id) === GridRowModes.Edit) {\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n resolve(!editingState[id][field].error);\n } else {\n resolve(false);\n }\n });\n });\n }, [apiRef, throwIfNotEditable, updateOrDeleteFieldState]);\n const editingApi = {\n getRowMode,\n startRowEditMode,\n stopRowEditMode,\n unstable_setRowEditingEditCellValue: setRowEditingEditCellValue\n };\n useGridApiMethod(apiRef, editingApi, 'EditingApi');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridCellEditing } from './useGridCellEditing.new';\nimport { GridCellModes } from '../../../models/gridEditRowModel';\nimport { useGridRowEditing } from './useGridRowEditing.new';\nexport const editingStateInitializer = state => _extends({}, state, {\n editRows: {}\n});\nexport const useGridEditing = (apiRef, props) => {\n useGridCellEditing(apiRef, props);\n useGridRowEditing(apiRef, props);\n const debounceMap = React.useRef({});\n const {\n isCellEditable: isCellEditableProp\n } = props;\n const isCellEditable = React.useCallback(params => {\n if (params.rowNode.isAutoGenerated) {\n return false;\n }\n\n if (!params.colDef.editable) {\n return false;\n }\n\n if (!params.colDef.renderEditCell) {\n return false;\n }\n\n if (isCellEditableProp) {\n return isCellEditableProp(params);\n }\n\n return true;\n }, [isCellEditableProp]);\n\n const maybeDebounce = (id, field, debounceMs, callback) => {\n if (!debounceMs) {\n callback();\n return;\n }\n\n if (!debounceMap.current[id]) {\n debounceMap.current[id] = {};\n }\n\n if (debounceMap.current[id][field]) {\n const [timeout] = debounceMap.current[id][field];\n clearTimeout(timeout);\n } // To run the callback immediatelly without waiting the timeout\n\n\n const runImmediately = () => {\n const [timeout] = debounceMap.current[id][field];\n clearTimeout(timeout);\n callback();\n delete debounceMap.current[id][field];\n };\n\n const timeout = setTimeout(() => {\n callback();\n delete debounceMap.current[id][field];\n }, debounceMs);\n debounceMap.current[id][field] = [timeout, runImmediately];\n };\n\n React.useEffect(() => {\n const debounces = debounceMap.current;\n return () => {\n Object.entries(debounces).forEach(([id, fields]) => {\n Object.keys(fields).forEach(field => {\n const [timeout] = debounces[id][field];\n clearTimeout(timeout);\n delete debounces[id][field];\n });\n });\n };\n }, []);\n const runPendingEditCellValueMutation = React.useCallback((id, field) => {\n if (!debounceMap.current[id]) {\n return;\n }\n\n if (!field) {\n Object.keys(debounceMap.current[id]).forEach(debouncedField => {\n const [, runCallback] = debounceMap.current[id][debouncedField];\n runCallback();\n });\n } else if (debounceMap.current[id][field]) {\n const [, runCallback] = debounceMap.current[id][field];\n runCallback();\n }\n }, []);\n const setEditCellValue = React.useCallback(params => {\n const {\n id,\n field,\n debounceMs\n } = params;\n return new Promise(resolve => {\n maybeDebounce(id, field, debounceMs, async () => {\n const setEditCellValueToCall = props.editMode === 'row' ? apiRef.current.unstable_setRowEditingEditCellValue : apiRef.current.unstable_setCellEditingEditCellValue; // Check if the cell is in edit mode\n // By the time this callback runs the user may have cancelled the editing\n\n if (apiRef.current.getCellMode(id, field) === GridCellModes.Edit) {\n const result = await setEditCellValueToCall(params);\n resolve(result);\n }\n });\n });\n }, [apiRef, props.editMode]);\n const editingSharedApi = {\n isCellEditable,\n setEditCellValue,\n unstable_runPendingEditCellValueMutation: runPendingEditCellValueMutation\n };\n useGridApiMethod(apiRef, editingSharedApi, 'EditingApi');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';\nimport { GridEvents } from '../../../models/events/gridEvents';\nimport { GridEditModes, GridCellModes } from '../../../models/gridEditRowModel';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { gridEditRowsStateSelector } from './gridEditRowsSelector';\nimport { isPrintableKey } from '../../../utils/keyboardUtils';\nimport { GridCellEditStartReasons, GridCellEditStopReasons } from '../../../models/params/gridEditCellParams';\nexport const useGridCellEditing = (apiRef, props) => {\n const {\n processRowUpdate\n } = props;\n\n const runIfEditModeIsCell = callback => (...args) => {\n if (props.editMode === GridEditModes.Cell) {\n callback(...args);\n }\n };\n\n const throwIfNotEditable = React.useCallback((id, field) => {\n const params = apiRef.current.getCellParams(id, field);\n\n if (!apiRef.current.isCellEditable(params)) {\n throw new Error(`MUI: The cell with id=${id} and field=${field} is not editable.`);\n }\n }, [apiRef]);\n const throwIfNotInMode = React.useCallback((id, field, mode) => {\n if (apiRef.current.getCellMode(id, field) !== mode) {\n throw new Error(`MUI: The cell with id=${id} and field=${field} is not in ${mode} mode.`);\n }\n }, [apiRef]);\n const handleCellDoubleClick = React.useCallback((params, event) => {\n if (!params.isEditable) {\n return;\n }\n\n if (params.cellMode === GridCellModes.Edit) {\n return;\n }\n\n const newParams = _extends({}, params, {\n reason: GridCellEditStartReasons.cellDoubleClick\n });\n\n apiRef.current.publishEvent(GridEvents.cellEditStart, newParams, event);\n }, [apiRef]);\n const handleCellFocusOut = React.useCallback((params, event) => {\n if (params.cellMode === GridCellModes.View) {\n return;\n }\n\n const newParams = _extends({}, params, {\n reason: GridCellEditStopReasons.cellFocusOut\n });\n\n apiRef.current.publishEvent(GridEvents.cellEditStop, newParams, event);\n }, [apiRef]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n if (params.cellMode === GridCellModes.Edit) {\n let reason;\n\n if (event.key === 'Escape') {\n reason = GridCellEditStopReasons.escapeKeyDown;\n } else if (event.key === 'Enter') {\n reason = GridCellEditStopReasons.enterKeyDown;\n } else if (event.key === 'Tab') {\n reason = event.shiftKey ? GridCellEditStopReasons.shiftTabKeyDown : GridCellEditStopReasons.tabKeyDown;\n event.preventDefault(); // Prevent going to the next element in the tab sequence\n }\n\n if (reason) {\n const newParams = _extends({}, params, {\n reason\n });\n\n apiRef.current.publishEvent(GridEvents.cellEditStop, newParams, event);\n }\n } else if (params.isEditable) {\n let reason;\n\n if (isPrintableKey(event.key)) {\n if (event.shiftKey || event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n reason = GridCellEditStartReasons.printableKeyDown;\n } else if (event.key === 'Enter') {\n reason = GridCellEditStartReasons.enterKeyDown;\n } else if (event.key === 'Delete') {\n reason = GridCellEditStartReasons.deleteKeyDown;\n }\n\n if (reason) {\n const newParams = _extends({}, params, {\n reason\n });\n\n apiRef.current.publishEvent(GridEvents.cellEditStart, newParams, event);\n }\n }\n }, [apiRef]);\n const handleCellEditStart = React.useCallback((params, event) => {\n const {\n id,\n field,\n reason\n } = params;\n apiRef.current.startCellEditMode(params);\n\n if (reason === GridCellEditStartReasons.deleteKeyDown || reason === GridCellEditStartReasons.printableKeyDown) {\n apiRef.current.setEditCellValue({\n id,\n field,\n value: ''\n }, event);\n }\n }, [apiRef]);\n const handleCellEditStop = React.useCallback(params => {\n const {\n id,\n field,\n reason\n } = params;\n let cellToFocusAfter;\n\n if (reason === GridCellEditStopReasons.enterKeyDown) {\n cellToFocusAfter = 'below';\n } else if (reason === GridCellEditStopReasons.tabKeyDown) {\n cellToFocusAfter = 'right';\n } else if (reason === GridCellEditStopReasons.shiftTabKeyDown) {\n cellToFocusAfter = 'left';\n }\n\n let ignoreModifications = reason === 'escapeKeyDown';\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n\n if (editingState[id][field].isProcessingProps) {\n // The user wants to stop editing the cell but we can't wait for the props to be processed.\n // In this case, discard the modifications.\n ignoreModifications = true;\n }\n\n apiRef.current.stopCellEditMode({\n id,\n field,\n ignoreModifications,\n cellToFocusAfter\n });\n }, [apiRef]);\n useGridApiEventHandler(apiRef, GridEvents.cellDoubleClick, runIfEditModeIsCell(handleCellDoubleClick));\n useGridApiEventHandler(apiRef, GridEvents.cellFocusOut, runIfEditModeIsCell(handleCellFocusOut));\n useGridApiEventHandler(apiRef, GridEvents.cellKeyDown, runIfEditModeIsCell(handleCellKeyDown));\n useGridApiEventHandler(apiRef, GridEvents.cellEditStart, runIfEditModeIsCell(handleCellEditStart));\n useGridApiEventHandler(apiRef, GridEvents.cellEditStop, runIfEditModeIsCell(handleCellEditStop));\n useGridApiOptionHandler(apiRef, GridEvents.cellEditStart, props.onCellEditStart);\n useGridApiOptionHandler(apiRef, GridEvents.cellEditStop, props.onCellEditStop);\n const getCellMode = React.useCallback((id, field) => {\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const isEditing = editingState[id] && editingState[id][field];\n return isEditing ? GridCellModes.Edit : GridCellModes.View;\n }, [apiRef]);\n const updateOrDeleteFieldState = React.useCallback((id, field, newProps) => {\n apiRef.current.setState(state => {\n const newEditingState = _extends({}, state.editRows);\n\n if (newProps !== null) {\n newEditingState[id] = _extends({}, newEditingState[id], {\n [field]: _extends({}, newProps)\n });\n } else {\n delete newEditingState[id][field];\n\n if (Object.keys(newEditingState[id]).length === 0) {\n delete newEditingState[id];\n }\n }\n\n return _extends({}, state, {\n editRows: newEditingState\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const startCellEditMode = React.useCallback(params => {\n const {\n id,\n field\n } = params;\n throwIfNotEditable(id, field);\n throwIfNotInMode(id, field, GridCellModes.View);\n const newProps = {\n value: apiRef.current.getCellValue(id, field),\n error: false,\n isProcessingProps: false\n };\n updateOrDeleteFieldState(id, field, newProps);\n apiRef.current.setCellFocus(id, field);\n }, [apiRef, throwIfNotEditable, throwIfNotInMode, updateOrDeleteFieldState]);\n const stopCellEditMode = React.useCallback(params => {\n const {\n id,\n field,\n ignoreModifications,\n cellToFocusAfter = 'none'\n } = params;\n throwIfNotInMode(id, field, GridCellModes.Edit);\n apiRef.current.unstable_runPendingEditCellValueMutation(id, field);\n\n const updateFocusedCellIfNeeded = () => {\n if (cellToFocusAfter !== 'none') {\n apiRef.current.unstable_moveFocusToRelativeCell(id, field, cellToFocusAfter);\n }\n };\n\n if (ignoreModifications) {\n updateFocusedCellIfNeeded();\n updateOrDeleteFieldState(id, field, null);\n return;\n }\n\n const editingState = gridEditRowsStateSelector(apiRef.current.state);\n const row = apiRef.current.getRow(id);\n const column = apiRef.current.getColumn(field);\n const {\n value,\n error,\n isProcessingProps\n } = editingState[id][field];\n\n if (error || isProcessingProps) {\n return;\n }\n\n const rowUpdate = column.valueSetter ? column.valueSetter({\n value,\n row\n }) : _extends({}, row, {\n [field]: value\n });\n\n if (processRowUpdate) {\n Promise.resolve(processRowUpdate(rowUpdate, row)).then(finalRowUpdate => {\n apiRef.current.updateRows([finalRowUpdate]);\n updateFocusedCellIfNeeded();\n updateOrDeleteFieldState(id, field, null);\n });\n } else {\n apiRef.current.updateRows([rowUpdate]);\n updateFocusedCellIfNeeded();\n updateOrDeleteFieldState(id, field, null);\n }\n }, [apiRef, processRowUpdate, throwIfNotInMode, updateOrDeleteFieldState]);\n const setCellEditingEditCellValue = React.useCallback(async params => {\n const {\n id,\n field,\n value\n } = params;\n throwIfNotEditable(id, field);\n throwIfNotInMode(id, field, GridCellModes.Edit);\n const column = apiRef.current.getColumn(field);\n const row = apiRef.current.getRow(id);\n let parsedValue = value;\n\n if (column.valueParser) {\n parsedValue = column.valueParser(value, apiRef.current.getCellParams(id, field));\n }\n\n let editingState = gridEditRowsStateSelector(apiRef.current.state);\n\n let newProps = _extends({}, editingState[id][field], {\n value: parsedValue\n });\n\n if (column.preProcessEditCellProps) {\n const hasChanged = value !== editingState[id][field].value;\n newProps = _extends({}, newProps, {\n isProcessingProps: true\n });\n updateOrDeleteFieldState(id, field, newProps);\n newProps = await Promise.resolve(column.preProcessEditCellProps({\n id,\n row,\n props: newProps,\n hasChanged\n }));\n } // Check again if the cell is in edit mode because the user may have\n // discarded the changes while the props were being processed.\n\n\n if (apiRef.current.getCellMode(id, field) === GridCellModes.View) {\n return false;\n }\n\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n newProps = _extends({}, newProps, {\n isProcessingProps: false\n }); // We don't update the value with the one coming from the props pre-processing\n // because when the promise resolves it may be already outdated. The only\n // exception to this rule is when there's no pre-processing.\n\n newProps.value = column.preProcessEditCellProps ? editingState[id][field].value : parsedValue;\n updateOrDeleteFieldState(id, field, newProps);\n editingState = gridEditRowsStateSelector(apiRef.current.state);\n return !editingState[id][field].error;\n }, [apiRef, throwIfNotEditable, throwIfNotInMode, updateOrDeleteFieldState]);\n const editingApi = {\n getCellMode,\n startCellEditMode,\n stopCellEditMode,\n unstable_setCellEditingEditCellValue: setCellEditingEditCellValue\n };\n useGridApiMethod(apiRef, editingApi, 'EditingApi');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridEvents } from '../../../models/events';\nimport { checkGridRowIdIsValid } from '../../../models/gridRows';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridRowCountSelector, gridRowsLookupSelector, gridRowTreeSelector, gridRowIdsSelector, gridRowGroupingNameSelector } from './gridRowsSelector';\nimport { GridSignature, useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { useGridVisibleRows } from '../../utils/useGridVisibleRows';\n\nfunction getGridRowId(rowModel, getRowId, detailErrorMessage) {\n const id = getRowId ? getRowId(rowModel) : rowModel.id;\n checkGridRowIdIsValid(id, rowModel, detailErrorMessage);\n return id;\n}\n\nconst convertGridRowsPropToState = ({\n prevState,\n rows,\n getRowId\n}) => {\n let value;\n\n if (rows) {\n value = {\n idRowsLookup: {},\n ids: []\n };\n\n for (let i = 0; i < rows.length; i += 1) {\n const row = rows[i];\n const id = getGridRowId(row, getRowId);\n value.idRowsLookup[id] = row;\n value.ids.push(id);\n }\n } else {\n value = prevState.value;\n }\n\n return {\n value,\n rowsBeforePartialUpdates: rows != null ? rows : prevState.rowsBeforePartialUpdates\n };\n};\n\nconst getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp) => {\n const {\n value\n } = rowsCache.state;\n const rowCount = rowCountProp != null ? rowCountProp : 0;\n const groupingResponse = apiRef.current.unstable_applyStrategyProcessor('rowTreeCreation', _extends({}, value, {\n previousTree\n }));\n const dataTopLevelRowCount = groupingResponse.treeDepth === 1 ? groupingResponse.ids.length : Object.values(groupingResponse.tree).filter(node => node.parent == null).length;\n return _extends({}, groupingResponse, {\n totalRowCount: Math.max(rowCount, groupingResponse.ids.length),\n totalTopLevelRowCount: Math.max(rowCount, dataTopLevelRowCount)\n });\n};\n\nexport const rowsStateInitializer = (state, props, apiRef) => {\n const rowsCache = {\n state: convertGridRowsPropToState({\n rows: props.rows,\n getRowId: props.getRowId,\n prevState: {\n value: {\n idRowsLookup: {},\n ids: []\n },\n rowsBeforePartialUpdates: []\n }\n }),\n timeout: null,\n lastUpdateMs: Date.now()\n };\n return _extends({}, state, {\n rows: getRowsStateFromCache(rowsCache, null, apiRef, props.rowCount),\n rowsCache // TODO remove from state\n\n });\n};\nexport const useGridRows = (apiRef, props) => {\n if (process.env.NODE_ENV !== 'production') {\n // Freeze rows for immutability\n Object.freeze(props.rows);\n }\n\n const logger = useGridLogger(apiRef, 'useGridRows');\n const rowsCache = React.useRef(apiRef.current.state.rowsCache); // To avoid listing rowsCache as useEffect dep\n\n const currentPage = useGridVisibleRows(apiRef, props);\n const getRow = React.useCallback(id => {\n var _gridRowsLookupSelect;\n\n return (_gridRowsLookupSelect = gridRowsLookupSelector(apiRef)[id]) != null ? _gridRowsLookupSelect : null;\n }, [apiRef]);\n const lookup = React.useMemo(() => currentPage.rows.reduce((acc, {\n id\n }, index) => {\n acc[id] = index;\n return acc;\n }, {}), [currentPage.rows]);\n const throttledRowsChange = React.useCallback((newState, throttle) => {\n const run = () => {\n rowsCache.current.timeout = null;\n rowsCache.current.lastUpdateMs = Date.now();\n apiRef.current.setState(state => _extends({}, state, {\n rows: getRowsStateFromCache(rowsCache.current, gridRowTreeSelector(apiRef), apiRef, props.rowCount)\n }));\n apiRef.current.publishEvent(GridEvents.rowsSet);\n apiRef.current.forceUpdate();\n };\n\n if (rowsCache.current.timeout) {\n clearTimeout(rowsCache.current.timeout);\n }\n\n rowsCache.current.state = newState;\n rowsCache.current.timeout = null;\n\n if (!throttle) {\n run();\n return;\n }\n\n const throttleRemainingTimeMs = props.throttleRowsMs - (Date.now() - rowsCache.current.lastUpdateMs);\n\n if (throttleRemainingTimeMs > 0) {\n rowsCache.current.timeout = setTimeout(run, throttleRemainingTimeMs);\n return;\n }\n\n run();\n }, [props.throttleRowsMs, props.rowCount, apiRef]);\n /**\n * API METHODS\n */\n\n const setRows = React.useCallback(rows => {\n logger.debug(`Updating all rows, new length ${rows.length}`);\n throttledRowsChange(convertGridRowsPropToState({\n rows,\n prevState: rowsCache.current.state,\n getRowId: props.getRowId\n }), true);\n }, [logger, props.getRowId, throttledRowsChange]);\n const updateRows = React.useCallback(updates => {\n if (props.signature === GridSignature.DataGrid && updates.length > 1) {\n // TODO: Add test with direct call to `apiRef.current.updateRows` in DataGrid after enabling the `apiRef` on the free plan.\n throw new Error([\"MUI: You can't update several rows at once in `apiRef.current.updateRows` on the DataGrid.\", 'You need to upgrade to the DataGridPro component to unlock this feature.'].join('\\n'));\n } // we remove duplicate updates. A server can batch updates, and send several updates for the same row in one fn call.\n\n\n const uniqUpdates = new Map();\n updates.forEach(update => {\n const id = getGridRowId(update, props.getRowId, 'A row was provided without id when calling updateRows():');\n\n if (uniqUpdates.has(id)) {\n uniqUpdates.set(id, _extends({}, uniqUpdates.get(id), update));\n } else {\n uniqUpdates.set(id, update);\n }\n });\n const deletedRowIds = [];\n const newStateValue = {\n idRowsLookup: _extends({}, rowsCache.current.state.value.idRowsLookup),\n ids: [...rowsCache.current.state.value.ids]\n };\n uniqUpdates.forEach((partialRow, id) => {\n // eslint-disable-next-line no-underscore-dangle\n if (partialRow._action === 'delete') {\n delete newStateValue.idRowsLookup[id];\n deletedRowIds.push(id);\n return;\n }\n\n const oldRow = apiRef.current.getRow(id);\n\n if (!oldRow) {\n newStateValue.idRowsLookup[id] = partialRow;\n newStateValue.ids.push(id);\n return;\n }\n\n newStateValue.idRowsLookup[id] = _extends({}, apiRef.current.getRow(id), partialRow);\n });\n\n if (deletedRowIds.length > 0) {\n newStateValue.ids = newStateValue.ids.filter(id => !deletedRowIds.includes(id));\n }\n\n const state = _extends({}, rowsCache.current.state, {\n value: newStateValue\n });\n\n throttledRowsChange(state, true);\n }, [apiRef, props.getRowId, throttledRowsChange, props.signature]);\n const getRowModels = React.useCallback(() => {\n const allRows = gridRowIdsSelector(apiRef);\n const idRowsLookup = gridRowsLookupSelector(apiRef);\n return new Map(allRows.map(id => [id, idRowsLookup[id]]));\n }, [apiRef]);\n const getRowsCount = React.useCallback(() => gridRowCountSelector(apiRef), [apiRef]);\n const getAllRowIds = React.useCallback(() => gridRowIdsSelector(apiRef), [apiRef]);\n const getRowIndexRelativeToVisibleRows = React.useCallback(id => lookup[id], [lookup]);\n const setRowChildrenExpansion = React.useCallback((id, isExpanded) => {\n const currentNode = apiRef.current.getRowNode(id);\n\n if (!currentNode) {\n throw new Error(`MUI: No row with id #${id} found`);\n }\n\n const newNode = _extends({}, currentNode, {\n childrenExpanded: isExpanded\n });\n\n apiRef.current.setState(state => {\n return _extends({}, state, {\n rows: _extends({}, state.rows, {\n tree: _extends({}, state.rows.tree, {\n [id]: newNode\n })\n })\n });\n });\n apiRef.current.forceUpdate();\n apiRef.current.publishEvent(GridEvents.rowExpansionChange, newNode);\n }, [apiRef]);\n const getRowNode = React.useCallback(id => {\n var _gridRowTreeSelector$;\n\n return (_gridRowTreeSelector$ = gridRowTreeSelector(apiRef)[id]) != null ? _gridRowTreeSelector$ : null;\n }, [apiRef]);\n const rowApi = {\n getRow,\n getRowModels,\n getRowsCount,\n getAllRowIds,\n setRows,\n updateRows,\n setRowChildrenExpansion,\n getRowNode,\n getRowIndexRelativeToVisibleRows\n };\n /**\n * EVENTS\n */\n\n const groupRows = React.useCallback(() => {\n logger.info(`Row grouping pre-processing have changed, regenerating the row tree`);\n let rows;\n\n if (rowsCache.current.state.rowsBeforePartialUpdates === props.rows) {\n // The `props.rows` has not changed since the last row grouping\n // We can keep the potential updates stored in `inputRowsAfterUpdates` on the new grouping\n rows = undefined;\n } else {\n // The `props.rows` has changed since the last row grouping\n // We must use the new `props.rows` on the new grouping\n // This occurs because this event is triggered before the `useEffect` on the rows when both the grouping pre-processing and the rows changes on the same render\n rows = props.rows;\n }\n\n throttledRowsChange(convertGridRowsPropToState({\n rows,\n getRowId: props.getRowId,\n prevState: rowsCache.current.state\n }), false);\n }, [logger, throttledRowsChange, props.getRowId, props.rows]);\n const handleStrategyProcessorChange = React.useCallback(methodName => {\n if (methodName === 'rowTreeCreation') {\n groupRows();\n }\n }, [groupRows]);\n const handleStrategyActivityChange = React.useCallback(() => {\n // `rowTreeCreation` is the only processor ran when `strategyAvailabilityChange` is fired.\n // All the other processors listen to `rowsSet` which will be published by the `groupRows` method below.\n if (apiRef.current.unstable_getActiveStrategy('rowTree') !== gridRowGroupingNameSelector(apiRef)) {\n groupRows();\n }\n }, [apiRef, groupRows]);\n useGridApiEventHandler(apiRef, GridEvents.activeStrategyProcessorChange, handleStrategyProcessorChange);\n useGridApiEventHandler(apiRef, GridEvents.strategyAvailabilityChange, handleStrategyActivityChange);\n useGridApiMethod(apiRef, rowApi, 'GridRowApi');\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n return () => {\n if (rowsCache.current.timeout !== null) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n clearTimeout(rowsCache.current.timeout);\n }\n };\n }, []); // The effect do not track any value defined synchronously during the 1st render by hooks called after `useGridRows`\n // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one\n\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n } // The new rows have already been applied (most likely in the `GridEvents.rowGroupsPreProcessingChange` listener)\n\n\n if (rowsCache.current.state.rowsBeforePartialUpdates === props.rows) {\n return;\n }\n\n logger.debug(`Updating all rows, new length ${props.rows.length}`);\n throttledRowsChange(convertGridRowsPropToState({\n rows: props.rows,\n getRowId: props.getRowId,\n prevState: rowsCache.current.state\n }), false);\n }, [props.rows, props.rowCount, props.getRowId, logger, throttledRowsChange]);\n};","/**\n * @deprecated prefer GridRowModel.\n */\n\n/**\n * The key value object representing the data of a row.\n */\n\n/**\n * The grid rows total height and row positions.\n */\n\n/**\n * The type of Id supported by the grid.\n */\n\n/**\n * The function to retrieve the id of a [[GridRowModel]].\n */\n\n/**\n * An helper function to check if the id provided is valid.\n * @param {GridRowId} id Id as [[GridRowId]].\n * @param {GridRowModel | Partial} row Row as [[GridRowModel]].\n * @param {string} detailErrorMessage A custom error message to display for invalid IDs\n */\nexport function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided without id in the rows prop:') {\n if (id == null) {\n throw new Error(['MUI: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\\n'));\n }\n}","import { GRID_DEFAULT_STRATEGY, useGridRegisterStrategyProcessor } from '../../core/strategyProcessing';\n\nconst flatRowTreeCreationMethod = ({\n ids,\n idRowsLookup,\n previousTree\n}) => {\n const tree = {};\n\n for (let i = 0; i < ids.length; i += 1) {\n const rowId = ids[i];\n\n if (previousTree && previousTree[rowId]) {\n tree[rowId] = previousTree[rowId];\n } else {\n tree[rowId] = {\n id: rowId,\n depth: 0,\n parent: null,\n groupingKey: '',\n groupingField: null\n };\n }\n }\n\n return {\n groupingName: GRID_DEFAULT_STRATEGY,\n tree,\n treeDepth: 1,\n idRowsLookup,\n ids\n };\n};\n\nexport const useGridRowsPreProcessors = apiRef => {\n useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'rowTreeCreation', flatRowTreeCreationMethod);\n};","import * as React from 'react';\nimport { getGridCellElement, getGridColumnHeaderElement, getGridRowElement } from '../../../utils/domUtils';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';\nimport { buildWarning } from '../../../utils/warning';\nlet warnedOnceMissingColumn = false;\n\nfunction warnMissingColumn(field) {\n console.warn([`MUI: You are calling getValue('${field}') but the column \\`${field}\\` is not defined.`, `Instead, you can access the data from \\`params.row.${field}\\`.`].join('\\n'));\n warnedOnceMissingColumn = true;\n}\n\nconst getCellValueWarning = buildWarning([`MUI: You are calling getValue. This method is deprecated and will be removed in the next major version.`, 'Instead, you can access the data from `params.row`.']);\n/**\n * @requires useGridColumns (method)\n * @requires useGridRows (method)\n * @requires useGridFocus (state)\n * @requires useGridEditing (method)\n * TODO: Impossible priority - useGridEditing also needs to be after useGridParamsApi\n * TODO: Impossible priority - useGridFocus also needs to be after useGridParamsApi\n */\n\nexport function useGridParamsApi(apiRef) {\n const getColumnHeaderParams = React.useCallback(field => ({\n field,\n colDef: apiRef.current.getColumn(field)\n }), [apiRef]);\n /**\n * We want to remove the `getValue` param from `getRowParams`, `getCellParams` and `getBaseCellParams`\n */\n\n const getCellValueWithDeprecationWarning = React.useCallback((...args) => {\n if (process.env.NODE_ENV !== 'production') {\n getCellValueWarning();\n }\n\n return apiRef.current.getCellValue(...args);\n }, [apiRef]);\n const getRowParams = React.useCallback(id => {\n const row = apiRef.current.getRow(id);\n\n if (!row) {\n throw new Error(`No row with id #${id} found`);\n }\n\n const params = {\n id,\n columns: apiRef.current.getAllColumns(),\n row,\n // TODO v6: remove\n getValue: getCellValueWithDeprecationWarning\n };\n return params;\n }, [apiRef, getCellValueWithDeprecationWarning]);\n const getBaseCellParams = React.useCallback((id, field) => {\n const row = apiRef.current.getRow(id);\n const rowNode = apiRef.current.getRowNode(id);\n\n if (!row || !rowNode) {\n throw new Error(`No row with id #${id} found`);\n }\n\n const cellFocus = gridFocusCellSelector(apiRef);\n const cellTabIndex = gridTabIndexCellSelector(apiRef);\n const params = {\n id,\n field,\n row,\n rowNode,\n value: row[field],\n colDef: apiRef.current.getColumn(field),\n cellMode: apiRef.current.getCellMode(id, field),\n // TODO v6: remove\n getValue: getCellValueWithDeprecationWarning,\n api: apiRef.current,\n hasFocus: cellFocus !== null && cellFocus.field === field && cellFocus.id === id,\n tabIndex: cellTabIndex && cellTabIndex.field === field && cellTabIndex.id === id ? 0 : -1\n };\n return params;\n }, [apiRef, getCellValueWithDeprecationWarning]);\n const getCellParams = React.useCallback((id, field) => {\n const colDef = apiRef.current.getColumn(field);\n const value = apiRef.current.getCellValue(id, field);\n const row = apiRef.current.getRow(id);\n const rowNode = apiRef.current.getRowNode(id);\n\n if (!row || !rowNode) {\n throw new Error(`No row with id #${id} found`);\n }\n\n const cellFocus = gridFocusCellSelector(apiRef);\n const cellTabIndex = gridTabIndexCellSelector(apiRef);\n const params = {\n id,\n field,\n row,\n rowNode,\n colDef,\n cellMode: apiRef.current.getCellMode(id, field),\n // TODO v6: remove\n getValue: getCellValueWithDeprecationWarning,\n hasFocus: cellFocus !== null && cellFocus.field === field && cellFocus.id === id,\n tabIndex: cellTabIndex && cellTabIndex.field === field && cellTabIndex.id === id ? 0 : -1,\n value,\n formattedValue: value\n };\n\n if (colDef.valueFormatter) {\n params.formattedValue = colDef.valueFormatter({\n id,\n field: params.field,\n value: params.value,\n api: apiRef.current\n });\n }\n\n params.isEditable = colDef && apiRef.current.isCellEditable(params);\n return params;\n }, [apiRef, getCellValueWithDeprecationWarning]);\n const getCellValue = React.useCallback((id, field) => {\n const colDef = apiRef.current.getColumn(field);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!colDef && !warnedOnceMissingColumn) {\n warnMissingColumn(field);\n }\n }\n\n if (!colDef || !colDef.valueGetter) {\n const rowModel = apiRef.current.getRow(id);\n\n if (!rowModel) {\n throw new Error(`No row with id #${id} found`);\n }\n\n return rowModel[field];\n }\n\n return colDef.valueGetter(getBaseCellParams(id, field));\n }, [apiRef, getBaseCellParams]);\n const getColumnHeaderElement = React.useCallback(field => {\n if (!apiRef.current.rootElementRef.current) {\n return null;\n }\n\n return getGridColumnHeaderElement(apiRef.current.rootElementRef.current, field);\n }, [apiRef]);\n const getRowElement = React.useCallback(id => {\n if (!apiRef.current.rootElementRef.current) {\n return null;\n }\n\n return getGridRowElement(apiRef.current.rootElementRef.current, id);\n }, [apiRef]);\n const getCellElement = React.useCallback((id, field) => {\n if (!apiRef.current.rootElementRef.current) {\n return null;\n }\n\n return getGridCellElement(apiRef.current.rootElementRef.current, {\n id,\n field\n });\n }, [apiRef]);\n const paramsApi = {\n getCellValue,\n getCellParams,\n getCellElement,\n getRowParams,\n getRowElement,\n getColumnHeaderParams,\n getColumnHeaderElement\n };\n useGridApiMethod(apiRef, paramsApi, 'GridParamsApi');\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridEvents } from '../../../models/events';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridRowsLookupSelector } from '../rows/gridRowsSelector';\nimport { isGridCellRoot } from '../../../utils/domUtils';\nimport { gridSelectionStateSelector, selectedGridRowsSelector, selectedIdsLookupSelector } from './gridSelectionSelector';\nimport { gridPaginatedVisibleSortedGridRowIdsSelector } from '../pagination';\nimport { gridVisibleSortedRowIdsSelector } from '../filter/gridFilterSelector';\nimport { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';\nimport { GridCellModes } from '../../../models/gridEditRowModel';\nimport { isKeyboardEvent } from '../../../utils/keyboardUtils';\nimport { getVisibleRows } from '../../utils/useGridVisibleRows';\n\nconst getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {\n if (selectionModelProp == null) {\n return selectionModelProp;\n }\n\n if (Array.isArray(selectionModelProp)) {\n return selectionModelProp;\n }\n\n if (prevSelectionModel && prevSelectionModel[0] === selectionModelProp) {\n return prevSelectionModel;\n }\n\n return [selectionModelProp];\n};\n\nexport const selectionStateInitializer = (state, props) => {\n var _getSelectionModelPro;\n\n return _extends({}, state, {\n selection: (_getSelectionModelPro = getSelectionModelPropValue(props.selectionModel)) != null ? _getSelectionModelPro : []\n });\n};\n/**\n * @requires useGridRows (state, method)\n * @requires useGridParamsApi (method)\n */\n\nexport const useGridSelection = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridSelection');\n const propSelectionModel = React.useMemo(() => {\n return getSelectionModelPropValue(props.selectionModel, gridSelectionStateSelector(apiRef.current.state));\n }, [apiRef, props.selectionModel]);\n const lastRowToggled = React.useRef(null);\n apiRef.current.unstable_updateControlState({\n stateId: 'selection',\n propModel: propSelectionModel,\n propOnChange: props.onSelectionModelChange,\n stateSelector: gridSelectionStateSelector,\n changeEvent: GridEvents.selectionChange\n });\n const {\n checkboxSelection,\n disableMultipleSelection,\n disableSelectionOnClick,\n isRowSelectable,\n pagination,\n paginationMode\n } = props;\n const canHaveMultipleSelection = !disableMultipleSelection || checkboxSelection;\n const expandRowRangeSelection = React.useCallback(id => {\n var _lastRowToggled$curre;\n\n let endId = id;\n const startId = (_lastRowToggled$curre = lastRowToggled.current) != null ? _lastRowToggled$curre : id;\n const isSelected = apiRef.current.isRowSelected(id);\n\n if (isSelected) {\n const visibleRowIds = gridVisibleSortedRowIdsSelector(apiRef);\n const startIndex = visibleRowIds.findIndex(rowId => rowId === startId);\n const endIndex = visibleRowIds.findIndex(rowId => rowId === endId);\n\n if (startIndex === endIndex) {\n return;\n }\n\n if (startIndex > endIndex) {\n endId = visibleRowIds[endIndex + 1];\n } else {\n endId = visibleRowIds[endIndex - 1];\n }\n }\n\n lastRowToggled.current = id;\n apiRef.current.selectRowRange({\n startId,\n endId\n }, !isSelected);\n }, [apiRef]);\n /**\n * API METHODS\n */\n\n const setSelectionModel = React.useCallback(model => {\n const currentModel = gridSelectionStateSelector(apiRef.current.state);\n\n if (currentModel !== model) {\n logger.debug(`Setting selection model`);\n apiRef.current.setState(state => _extends({}, state, {\n selection: model\n }));\n apiRef.current.forceUpdate();\n }\n }, [apiRef, logger]);\n const isRowSelected = React.useCallback(id => gridSelectionStateSelector(apiRef.current.state).includes(id), [apiRef]);\n const getSelectedRows = React.useCallback(() => selectedGridRowsSelector(apiRef), [apiRef]);\n const selectRow = React.useCallback((id, isSelected = true, resetSelection = false) => {\n if (isRowSelectable && !isRowSelectable(apiRef.current.getRowParams(id))) {\n return;\n }\n\n lastRowToggled.current = id;\n\n if (resetSelection) {\n logger.debug(`Setting selection for row ${id}`);\n apiRef.current.setSelectionModel(isSelected ? [id] : []);\n } else {\n logger.debug(`Toggling selection for row ${id}`);\n const selection = gridSelectionStateSelector(apiRef.current.state);\n const newSelection = selection.filter(el => el !== id);\n\n if (isSelected) {\n newSelection.push(id);\n }\n\n const isSelectionValid = newSelection.length < 2 || canHaveMultipleSelection;\n\n if (isSelectionValid) {\n apiRef.current.setSelectionModel(newSelection);\n }\n }\n }, [apiRef, isRowSelectable, logger, canHaveMultipleSelection]);\n const selectRows = React.useCallback((ids, isSelected = true, resetSelection = false) => {\n logger.debug(`Setting selection for several rows`);\n const selectableIds = isRowSelectable ? ids.filter(id => isRowSelectable(apiRef.current.getRowParams(id))) : ids;\n let newSelection;\n\n if (resetSelection) {\n newSelection = isSelected ? selectableIds : [];\n } else {\n // We clone the existing object to avoid mutating the same object returned by the selector to others part of the project\n const selectionLookup = _extends({}, selectedIdsLookupSelector(apiRef));\n\n selectableIds.forEach(id => {\n if (isSelected) {\n selectionLookup[id] = id;\n } else {\n delete selectionLookup[id];\n }\n });\n newSelection = Object.values(selectionLookup);\n }\n\n const isSelectionValid = newSelection.length < 2 || canHaveMultipleSelection;\n\n if (isSelectionValid) {\n apiRef.current.setSelectionModel(newSelection);\n }\n }, [apiRef, isRowSelectable, logger, canHaveMultipleSelection]);\n const selectRowRange = React.useCallback(({\n startId,\n endId\n }, isSelected = true, resetSelection) => {\n if (!apiRef.current.getRow(startId) || !apiRef.current.getRow(endId)) {\n return;\n }\n\n logger.debug(`Expanding selection from row ${startId} to row ${endId}`);\n const visibleRowIds = gridVisibleSortedRowIdsSelector(apiRef);\n const startIndex = visibleRowIds.indexOf(startId);\n const endIndex = visibleRowIds.indexOf(endId);\n const [start, end] = startIndex > endIndex ? [endIndex, startIndex] : [startIndex, endIndex];\n const rowsBetweenStartAndEnd = visibleRowIds.slice(start, end + 1);\n apiRef.current.selectRows(rowsBetweenStartAndEnd, isSelected, resetSelection);\n }, [apiRef, logger]);\n const selectionApi = {\n selectRow,\n selectRows,\n selectRowRange,\n setSelectionModel,\n getSelectedRows,\n isRowSelected\n };\n useGridApiMethod(apiRef, selectionApi, 'GridSelectionApi');\n /**\n * EVENTS\n */\n\n const removeOutdatedSelection = React.useCallback(() => {\n const currentSelection = gridSelectionStateSelector(apiRef.current.state);\n const rowsLookup = gridRowsLookupSelector(apiRef); // We clone the existing object to avoid mutating the same object returned by the selector to others part of the project\n\n const selectionLookup = _extends({}, selectedIdsLookupSelector(apiRef));\n\n let hasChanged = false;\n currentSelection.forEach(id => {\n if (!rowsLookup[id]) {\n delete selectionLookup[id];\n hasChanged = true;\n }\n });\n\n if (hasChanged) {\n apiRef.current.setSelectionModel(Object.values(selectionLookup));\n }\n }, [apiRef]);\n const handleSingleRowSelection = React.useCallback((id, event) => {\n const hasCtrlKey = event.metaKey || event.ctrlKey; // multiple selection is only allowed if:\n // - it is a checkboxSelection\n // - it is a keyboard selection\n // - CTRL is pressed\n\n const isMultipleSelectionDisabled = !checkboxSelection && !hasCtrlKey && !isKeyboardEvent(event);\n const resetSelection = !canHaveMultipleSelection || isMultipleSelectionDisabled;\n const isSelected = apiRef.current.isRowSelected(id);\n\n if (resetSelection) {\n apiRef.current.selectRow(id, !isMultipleSelectionDisabled ? !isSelected : true, true);\n } else {\n apiRef.current.selectRow(id, !isSelected, false);\n }\n }, [apiRef, canHaveMultipleSelection, checkboxSelection]);\n const handleCellClick = React.useCallback((params, event) => {\n if (disableSelectionOnClick) {\n return;\n }\n\n if (params.field === GRID_CHECKBOX_SELECTION_COL_DEF.field) {\n // click on checkbox should not trigger row selection\n return;\n }\n\n if (params.field === '__detail_panel_toggle__') {\n // click to open the detail panel should not select the row\n return;\n }\n\n if (params.field) {\n const column = apiRef.current.getColumn(params.field);\n\n if (column.type === GRID_ACTIONS_COLUMN_TYPE) {\n return;\n }\n }\n\n if (event.shiftKey && (canHaveMultipleSelection || checkboxSelection)) {\n expandRowRangeSelection(params.id);\n } else {\n handleSingleRowSelection(params.id, event);\n }\n }, [disableSelectionOnClick, canHaveMultipleSelection, checkboxSelection, apiRef, expandRowRangeSelection, handleSingleRowSelection]);\n const preventSelectionOnShift = React.useCallback((params, event) => {\n if (canHaveMultipleSelection && event.shiftKey) {\n var _window$getSelection;\n\n (_window$getSelection = window.getSelection()) == null ? void 0 : _window$getSelection.removeAllRanges();\n }\n }, [canHaveMultipleSelection]);\n const handleRowSelectionCheckboxChange = React.useCallback((params, event) => {\n if (event.nativeEvent.shiftKey) {\n expandRowRangeSelection(params.id);\n } else {\n apiRef.current.selectRow(params.id, params.value);\n }\n }, [apiRef, expandRowRangeSelection]);\n const handleHeaderSelectionCheckboxChange = React.useCallback(params => {\n const shouldLimitSelectionToCurrentPage = props.checkboxSelectionVisibleOnly && props.pagination;\n const rowsToBeSelected = shouldLimitSelectionToCurrentPage ? gridPaginatedVisibleSortedGridRowIdsSelector(apiRef) : gridVisibleSortedRowIdsSelector(apiRef);\n apiRef.current.selectRows(rowsToBeSelected, params.value);\n }, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination]);\n const handleCellKeyDown = React.useCallback((params, event) => {\n // Ignore portal\n // Do not apply shortcuts if the focus is not on the cell root component\n // TODO replace with !event.currentTarget.contains(event.target as Element)\n if (!isGridCellRoot(event.target)) {\n return;\n } // Get the most recent params because the cell mode may have changed by another listener\n\n\n const cellParams = apiRef.current.getCellParams(params.id, params.field);\n const isEditMode = cellParams.cellMode === GridCellModes.Edit;\n\n if (isEditMode) {\n return;\n }\n\n if (event.key === ' ' && event.shiftKey) {\n event.preventDefault();\n handleSingleRowSelection(cellParams.id, event);\n return;\n }\n\n if (event.key.toLowerCase() === 'a' && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n selectRows(apiRef.current.getAllRowIds(), true);\n }\n }, [apiRef, handleSingleRowSelection, selectRows]);\n useGridApiEventHandler(apiRef, GridEvents.visibleRowsSet, removeOutdatedSelection);\n useGridApiEventHandler(apiRef, GridEvents.cellClick, handleCellClick);\n useGridApiEventHandler(apiRef, GridEvents.rowSelectionCheckboxChange, handleRowSelectionCheckboxChange);\n useGridApiEventHandler(apiRef, GridEvents.headerSelectionCheckboxChange, handleHeaderSelectionCheckboxChange);\n useGridApiEventHandler(apiRef, GridEvents.cellMouseDown, preventSelectionOnShift);\n useGridApiEventHandler(apiRef, GridEvents.cellKeyDown, handleCellKeyDown);\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n if (propSelectionModel !== undefined) {\n apiRef.current.setSelectionModel(propSelectionModel);\n }\n }, [apiRef, propSelectionModel]);\n const isStateControlled = propSelectionModel != null;\n React.useEffect(() => {\n if (isStateControlled) {\n return;\n } // isRowSelectable changed\n\n\n const currentSelection = gridSelectionStateSelector(apiRef.current.state);\n\n if (isRowSelectable) {\n const newSelection = currentSelection.filter(id => isRowSelectable(apiRef.current.getRowParams(id)));\n\n if (newSelection.length < currentSelection.length) {\n apiRef.current.setSelectionModel(newSelection);\n }\n }\n }, [apiRef, isRowSelectable, isStateControlled]);\n React.useEffect(() => {\n const currentSelection = gridSelectionStateSelector(apiRef.current.state);\n\n if (!canHaveMultipleSelection && currentSelection.length > 1) {\n const {\n rows: currentPageRows\n } = getVisibleRows(apiRef, {\n pagination,\n paginationMode\n });\n const currentPageRowsLookup = currentPageRows.reduce((acc, {\n id\n }) => {\n acc[id] = true;\n return acc;\n }, {});\n const firstSelectableRow = currentSelection.find(id => {\n let isSelectable = true;\n\n if (isRowSelectable) {\n isSelectable = isRowSelectable(apiRef.current.getRowParams(id));\n }\n\n return isSelectable && currentPageRowsLookup[id]; // Check if the row is in the current page\n });\n apiRef.current.setSelectionModel(firstSelectableRow !== undefined ? [firstSelectableRow] : []);\n }\n }, [apiRef, canHaveMultipleSelection, checkboxSelection, disableMultipleSelection, isRowSelectable, pagination, paginationMode]);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { useGridRegisterPreProcessor } from '../../core/preProcessing';\nimport { getDataGridUtilityClass } from '../../../constants';\nimport { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../colDef';\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n return React.useMemo(() => {\n const slots = {\n cellCheckbox: ['cellCheckbox'],\n columnHeaderCheckbox: ['columnHeaderCheckbox']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n }, [classes]);\n};\n\nexport const useGridSelectionPreProcessors = (apiRef, props) => {\n const ownerState = {\n classes: props.classes\n };\n const classes = useUtilityClasses(ownerState);\n const updateSelectionColumn = React.useCallback(columnsState => {\n const selectionColumn = _extends({}, GRID_CHECKBOX_SELECTION_COL_DEF, {\n cellClassName: classes.cellCheckbox,\n headerClassName: classes.columnHeaderCheckbox,\n headerName: apiRef.current.getLocaleText('checkboxSelectionHeaderName')\n });\n\n const shouldHaveSelectionColumn = props.checkboxSelection;\n const haveSelectionColumn = columnsState.lookup[selectionColumn.field] != null;\n\n if (shouldHaveSelectionColumn && !haveSelectionColumn) {\n columnsState.lookup[selectionColumn.field] = selectionColumn;\n columnsState.all = [selectionColumn.field, ...columnsState.all];\n } else if (!shouldHaveSelectionColumn && haveSelectionColumn) {\n delete columnsState.lookup[selectionColumn.field];\n columnsState.all = columnsState.all.filter(field => field !== selectionColumn.field);\n }\n\n return columnsState;\n }, [apiRef, classes, props.checkboxSelection]);\n useGridRegisterPreProcessor(apiRef, 'hydrateColumns', updateSelectionColumn);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { GridEvents } from '../../../models/events';\nimport { GridFeatureModeConstant } from '../../../models/gridFeatureMode';\nimport { isEnterKey } from '../../../utils/keyboardUtils';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridColumnLookupSelector } from '../columns/gridColumnsSelector';\nimport { gridSortedRowEntriesSelector, gridSortedRowIdsSelector, gridSortModelSelector } from './gridSortingSelector';\nimport { gridRowIdsSelector, gridRowTreeSelector } from '../rows';\nimport { useFirstRender } from '../../utils/useFirstRender';\nimport { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from '../../core/strategyProcessing';\nimport { buildAggregatedSortingApplier, mergeStateWithSortModel, getNextGridSortDirection, sanitizeSortModel } from './gridSortingUtils';\nimport { useGridRegisterPreProcessor } from '../../core/preProcessing';\nexport const sortingStateInitializer = (state, props) => {\n var _ref, _props$sortModel, _props$initialState, _props$initialState$s;\n\n const sortModel = (_ref = (_props$sortModel = props.sortModel) != null ? _props$sortModel : (_props$initialState = props.initialState) == null ? void 0 : (_props$initialState$s = _props$initialState.sorting) == null ? void 0 : _props$initialState$s.sortModel) != null ? _ref : [];\n return _extends({}, state, {\n sorting: {\n sortModel: sanitizeSortModel(sortModel, props.disableMultipleColumnsSorting),\n sortedRows: []\n }\n });\n};\n/**\n * @requires useGridRows (event)\n * @requires useGridColumns (event)\n */\n\nexport const useGridSorting = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridSorting');\n apiRef.current.unstable_updateControlState({\n stateId: 'sortModel',\n propModel: props.sortModel,\n propOnChange: props.onSortModelChange,\n stateSelector: gridSortModelSelector,\n changeEvent: GridEvents.sortModelChange\n });\n const upsertSortModel = React.useCallback((field, sortItem) => {\n const sortModel = gridSortModelSelector(apiRef);\n const existingIdx = sortModel.findIndex(c => c.field === field);\n let newSortModel = [...sortModel];\n\n if (existingIdx > -1) {\n if (!sortItem) {\n newSortModel.splice(existingIdx, 1);\n } else {\n newSortModel.splice(existingIdx, 1, sortItem);\n }\n } else {\n newSortModel = [...sortModel, sortItem];\n }\n\n return newSortModel;\n }, [apiRef]);\n const createSortItem = React.useCallback((col, directionOverride) => {\n var _col$sortingOrder2;\n\n const sortModel = gridSortModelSelector(apiRef);\n const existing = sortModel.find(c => c.field === col.field);\n\n if (existing) {\n var _col$sortingOrder;\n\n const nextSort = directionOverride === undefined ? getNextGridSortDirection((_col$sortingOrder = col.sortingOrder) != null ? _col$sortingOrder : props.sortingOrder, existing.sort) : directionOverride;\n return nextSort == null ? undefined : _extends({}, existing, {\n sort: nextSort\n });\n }\n\n return {\n field: col.field,\n sort: directionOverride === undefined ? getNextGridSortDirection((_col$sortingOrder2 = col.sortingOrder) != null ? _col$sortingOrder2 : props.sortingOrder) : directionOverride\n };\n }, [apiRef, props.sortingOrder]);\n /**\n * API METHODS\n */\n\n const applySorting = React.useCallback(() => {\n if (props.sortingMode === GridFeatureModeConstant.server) {\n logger.debug('Skipping sorting rows as sortingMode = server');\n apiRef.current.setState(state => _extends({}, state, {\n sorting: _extends({}, state.sorting, {\n sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)\n })\n }));\n return;\n }\n\n apiRef.current.setState(state => {\n const sortModel = gridSortModelSelector(state, apiRef.current.instanceId);\n const sortRowList = buildAggregatedSortingApplier(sortModel, apiRef);\n const sortedRows = apiRef.current.unstable_applyStrategyProcessor('sorting', {\n sortRowList\n });\n return _extends({}, state, {\n sorting: _extends({}, state.sorting, {\n sortedRows\n })\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef, logger, props.sortingMode]);\n const setSortModel = React.useCallback(model => {\n const currentModel = gridSortModelSelector(apiRef);\n\n if (currentModel !== model) {\n logger.debug(`Setting sort model`);\n apiRef.current.setState(mergeStateWithSortModel(model, props.disableMultipleColumnsSorting));\n apiRef.current.forceUpdate();\n apiRef.current.applySorting();\n }\n }, [apiRef, logger, props.disableMultipleColumnsSorting]);\n const sortColumn = React.useCallback((column, direction, allowMultipleSorting) => {\n if (!column.sortable) {\n return;\n }\n\n const sortItem = createSortItem(column, direction);\n let sortModel;\n\n if (!allowMultipleSorting || props.disableMultipleColumnsSorting) {\n sortModel = !sortItem ? [] : [sortItem];\n } else {\n sortModel = upsertSortModel(column.field, sortItem);\n }\n\n apiRef.current.setSortModel(sortModel);\n }, [apiRef, upsertSortModel, createSortItem, props.disableMultipleColumnsSorting]);\n const getSortModel = React.useCallback(() => gridSortModelSelector(apiRef), [apiRef]);\n const getSortedRows = React.useCallback(() => {\n const sortedRows = gridSortedRowEntriesSelector(apiRef);\n return sortedRows.map(row => row.model);\n }, [apiRef]);\n const getSortedRowIds = React.useCallback(() => gridSortedRowIdsSelector(apiRef), [apiRef]);\n const getRowIndex = React.useCallback(id => apiRef.current.getSortedRowIds().indexOf(id), [apiRef]);\n const getRowIdFromRowIndex = React.useCallback(index => apiRef.current.getSortedRowIds()[index], [apiRef]);\n const sortApi = {\n getSortModel,\n getSortedRows,\n getSortedRowIds,\n getRowIndex,\n getRowIdFromRowIndex,\n setSortModel,\n sortColumn,\n applySorting\n };\n useGridApiMethod(apiRef, sortApi, 'GridSortApi');\n /**\n * PRE-PROCESSING\n */\n\n const stateExportPreProcessing = React.useCallback(prevState => {\n const sortModelToExport = gridSortModelSelector(apiRef);\n\n if (sortModelToExport.length === 0) {\n return prevState;\n }\n\n return _extends({}, prevState, {\n sorting: {\n sortModel: sortModelToExport\n }\n });\n }, [apiRef]);\n const stateRestorePreProcessing = React.useCallback((params, context) => {\n var _context$stateToResto;\n\n const sortModel = (_context$stateToResto = context.stateToRestore.sorting) == null ? void 0 : _context$stateToResto.sortModel;\n\n if (sortModel == null) {\n return params;\n }\n\n apiRef.current.setState(mergeStateWithSortModel(sortModel, props.disableMultipleColumnsSorting));\n return _extends({}, params, {\n callbacks: [...params.callbacks, apiRef.current.applySorting]\n });\n }, [apiRef, props.disableMultipleColumnsSorting]);\n const flatSortingMethod = React.useCallback(params => {\n if (!params.sortRowList) {\n return gridRowIdsSelector(apiRef);\n }\n\n const rowTree = gridRowTreeSelector(apiRef);\n return params.sortRowList(Object.values(rowTree));\n }, [apiRef]);\n useGridRegisterPreProcessor(apiRef, 'exportState', stateExportPreProcessing);\n useGridRegisterPreProcessor(apiRef, 'restoreState', stateRestorePreProcessing);\n useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'sorting', flatSortingMethod);\n /**\n * EVENTS\n */\n\n const handleColumnHeaderClick = React.useCallback(({\n colDef\n }, event) => {\n const allowMultipleSorting = event.shiftKey || event.metaKey || event.ctrlKey;\n sortColumn(colDef, undefined, allowMultipleSorting);\n }, [sortColumn]);\n const handleColumnHeaderKeyDown = React.useCallback(({\n colDef\n }, event) => {\n // CTRL + Enter opens the column menu\n if (isEnterKey(event.key) && !event.ctrlKey && !event.metaKey) {\n sortColumn(colDef, undefined, event.shiftKey);\n }\n }, [sortColumn]);\n const handleColumnsChange = React.useCallback(() => {\n // When the columns change we check that the sorted columns are still part of the dataset\n const sortModel = gridSortModelSelector(apiRef);\n const latestColumns = gridColumnLookupSelector(apiRef);\n\n if (sortModel.length > 0) {\n const newModel = sortModel.filter(sortItem => latestColumns[sortItem.field]);\n\n if (newModel.length < sortModel.length) {\n apiRef.current.setSortModel(newModel);\n }\n }\n }, [apiRef]);\n const handleStrategyProcessorChange = React.useCallback(methodName => {\n if (methodName === 'sorting') {\n apiRef.current.applySorting();\n }\n }, [apiRef]);\n useGridApiEventHandler(apiRef, GridEvents.columnHeaderClick, handleColumnHeaderClick);\n useGridApiEventHandler(apiRef, GridEvents.columnHeaderKeyDown, handleColumnHeaderKeyDown);\n useGridApiEventHandler(apiRef, GridEvents.rowsSet, apiRef.current.applySorting);\n useGridApiEventHandler(apiRef, GridEvents.columnsChange, handleColumnsChange);\n useGridApiEventHandler(apiRef, GridEvents.activeStrategyProcessorChange, handleStrategyProcessorChange);\n /**\n * 1ST RENDER\n */\n\n useFirstRender(() => {\n apiRef.current.applySorting();\n });\n /**\n * EFFECTS\n */\n\n React.useEffect(() => {\n if (props.sortModel !== undefined) {\n apiRef.current.setSortModel(props.sortModel);\n }\n }, [apiRef, props.sortModel]);\n};","import * as React from 'react';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridColumnPositionsSelector, gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';\nimport { gridPageSelector, gridPageSizeSelector } from '../pagination/gridPaginationSelector';\nimport { gridRowCountSelector } from '../rows/gridRowsSelector';\nimport { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridNativeEventListener } from '../../utils/useGridNativeEventListener'; // Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js\n// Similar to https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView\n\nfunction scrollIntoView(dimensions) {\n const {\n clientHeight,\n scrollTop,\n offsetHeight,\n offsetTop\n } = dimensions;\n const elementBottom = offsetTop + offsetHeight;\n\n if (elementBottom - clientHeight > scrollTop) {\n return elementBottom - clientHeight;\n }\n\n if (offsetTop < scrollTop) {\n return offsetTop;\n }\n\n return undefined;\n}\n/**\n * @requires useGridPagination (state) - can be after, async only\n * @requires useGridColumns (state) - can be after, async only\n * @requires useGridRows (state) - can be after, async only\n * @requires useGridRowsMeta (state) - can be after, async only\n */\n\n\nexport const useGridScroll = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridScroll');\n const colRef = apiRef.current.columnHeadersElementRef;\n const windowRef = apiRef.current.windowRef;\n const scrollToIndexes = React.useCallback(params => {\n const totalRowCount = gridRowCountSelector(apiRef);\n const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);\n\n if (totalRowCount === 0 || visibleColumns.length === 0) {\n return false;\n }\n\n logger.debug(`Scrolling to cell at row ${params.rowIndex}, col: ${params.colIndex} `);\n let scrollCoordinates = {};\n\n if (params.colIndex != null) {\n const columnPositions = gridColumnPositionsSelector(apiRef);\n scrollCoordinates.left = scrollIntoView({\n clientHeight: windowRef.current.clientWidth,\n scrollTop: windowRef.current.scrollLeft,\n offsetHeight: visibleColumns[params.colIndex].computedWidth,\n offsetTop: columnPositions[params.colIndex]\n });\n }\n\n if (params.rowIndex != null) {\n const rowsMeta = gridRowsMetaSelector(apiRef.current.state);\n const page = gridPageSelector(apiRef);\n const pageSize = gridPageSizeSelector(apiRef);\n const elementIndex = !props.pagination ? params.rowIndex : params.rowIndex - page * pageSize;\n const targetOffsetHeight = rowsMeta.positions[elementIndex + 1] ? rowsMeta.positions[elementIndex + 1] - rowsMeta.positions[elementIndex] : rowsMeta.currentPageTotalHeight - rowsMeta.positions[elementIndex];\n scrollCoordinates.top = scrollIntoView({\n clientHeight: windowRef.current.clientHeight,\n scrollTop: windowRef.current.scrollTop,\n offsetHeight: targetOffsetHeight,\n offsetTop: rowsMeta.positions[elementIndex]\n });\n }\n\n scrollCoordinates = apiRef.current.unstable_applyPreProcessors('scrollToIndexes', scrollCoordinates, params);\n\n if (typeof scrollCoordinates.left !== undefined || typeof scrollCoordinates.top !== undefined) {\n apiRef.current.scroll(scrollCoordinates);\n return true;\n }\n\n return false;\n }, [logger, apiRef, windowRef, props.pagination]);\n const scroll = React.useCallback(params => {\n if (windowRef.current && params.left != null && colRef.current) {\n colRef.current.scrollLeft = params.left;\n windowRef.current.scrollLeft = params.left;\n logger.debug(`Scrolling left: ${params.left}`);\n }\n\n if (windowRef.current && params.top != null) {\n windowRef.current.scrollTop = params.top;\n logger.debug(`Scrolling top: ${params.top}`);\n }\n\n logger.debug(`Scrolling, updating container, and viewport`);\n }, [windowRef, colRef, logger]);\n const getScrollPosition = React.useCallback(() => {\n if (!(windowRef != null && windowRef.current)) {\n return {\n top: 0,\n left: 0\n };\n }\n\n return {\n top: windowRef.current.scrollTop,\n left: windowRef.current.scrollLeft\n };\n }, [windowRef]);\n const scrollApi = {\n scroll,\n scrollToIndexes,\n getScrollPosition\n };\n useGridApiMethod(apiRef, scrollApi, 'GridScrollApi');\n const preventScroll = React.useCallback(event => {\n event.target.scrollLeft = 0;\n event.target.scrollTop = 0;\n }, []);\n useGridNativeEventListener(apiRef, () => {\n var _apiRef$current, _apiRef$current$rende, _apiRef$current$rende2;\n\n return (_apiRef$current = apiRef.current) == null ? void 0 : (_apiRef$current$rende = _apiRef$current.renderingZoneRef) == null ? void 0 : (_apiRef$current$rende2 = _apiRef$current$rende.current) == null ? void 0 : _apiRef$current$rende2.parentElement;\n }, 'scroll', preventScroll);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridVisibleRows } from '../../utils/useGridVisibleRows';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridSelector } from '../../utils/useGridSelector';\nimport { gridDensityRowHeightSelector, gridDensityFactorSelector } from '../density/densitySelector';\nimport { gridFilterStateSelector } from '../filter/gridFilterSelector';\nimport { gridPaginationSelector } from '../pagination/gridPaginationSelector';\nimport { gridSortingStateSelector } from '../sorting/gridSortingSelector';\nimport { GridEvents } from '../../../models/events/gridEvents';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nexport const rowsMetaStateInitializer = state => _extends({}, state, {\n rowsMeta: {\n currentPageTotalHeight: 0,\n positions: []\n }\n});\n/**\n * @requires useGridPageSize (method)\n * @requires useGridPage (method)\n */\n\nexport const useGridRowsMeta = (apiRef, props) => {\n const {\n getRowHeight,\n getRowSpacing\n } = props;\n const rowsHeightLookup = React.useRef({});\n const rowHeight = useGridSelector(apiRef, gridDensityRowHeightSelector);\n const filterState = useGridSelector(apiRef, gridFilterStateSelector);\n const paginationState = useGridSelector(apiRef, gridPaginationSelector);\n const sortingState = useGridSelector(apiRef, gridSortingStateSelector);\n const currentPage = useGridVisibleRows(apiRef, props);\n const hydrateRowsMeta = React.useCallback(() => {\n apiRef.current.setState(state => {\n const positions = [];\n const densityFactor = gridDensityFactorSelector(state, apiRef.current.instanceId);\n const currentRowHeight = gridDensityRowHeightSelector(state, apiRef.current.instanceId);\n const currentPageTotalHeight = currentPage.rows.reduce((acc, row) => {\n positions.push(acc);\n let baseRowHeight;\n const isResized = rowsHeightLookup.current[row.id] && rowsHeightLookup.current[row.id].isResized || false;\n\n if (isResized) {\n // do not recalculate resized row height and use the value from the lookup\n baseRowHeight = rowsHeightLookup.current[row.id].value;\n } else {\n baseRowHeight = currentRowHeight;\n\n if (getRowHeight) {\n var _getRowHeight;\n\n // Default back to base rowHeight if getRowHeight returns null or undefined.\n baseRowHeight = (_getRowHeight = getRowHeight(_extends({}, row, {\n densityFactor\n }))) != null ? _getRowHeight : currentRowHeight;\n }\n } // We use an object to make simple to check if a height is already added or not\n\n\n const initialHeights = {\n base: baseRowHeight\n };\n\n if (getRowSpacing) {\n var _spacing$top, _spacing$bottom;\n\n const index = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);\n const spacing = getRowSpacing(_extends({}, row, {\n isFirstVisible: index === 0,\n isLastVisible: index === currentPage.rows.length - 1\n }));\n initialHeights.spacingTop = (_spacing$top = spacing.top) != null ? _spacing$top : 0;\n initialHeights.spacingBottom = (_spacing$bottom = spacing.bottom) != null ? _spacing$bottom : 0;\n }\n\n const sizes = apiRef.current.unstable_applyPreProcessors('rowHeight', initialHeights, row);\n const finalRowHeight = Object.values(sizes).reduce((acc2, value) => acc2 + value, 0);\n rowsHeightLookup.current[row.id] = {\n value: baseRowHeight,\n sizes,\n isResized\n };\n return acc + finalRowHeight;\n }, 0);\n return _extends({}, state, {\n rowsMeta: {\n currentPageTotalHeight,\n positions\n }\n });\n });\n apiRef.current.forceUpdate();\n }, [apiRef, currentPage.rows, getRowSpacing, getRowHeight]);\n\n const getTargetRowHeight = rowId => {\n var _rowsHeightLookup$cur;\n\n return ((_rowsHeightLookup$cur = rowsHeightLookup.current[rowId]) == null ? void 0 : _rowsHeightLookup$cur.value) || rowHeight;\n };\n\n const getRowInternalSizes = rowId => {\n var _rowsHeightLookup$cur2;\n\n return (_rowsHeightLookup$cur2 = rowsHeightLookup.current[rowId]) == null ? void 0 : _rowsHeightLookup$cur2.sizes;\n };\n\n const setRowHeight = React.useCallback((id, height) => {\n rowsHeightLookup.current[id] = {\n value: height,\n isResized: true,\n sizes: _extends({}, rowsHeightLookup.current[id].sizes, {\n base: height\n })\n };\n hydrateRowsMeta();\n }, [hydrateRowsMeta]); // The effect is used to build the rows meta data - currentPageTotalHeight and positions.\n // Because of variable row height this is needed for the virtualization\n\n React.useEffect(() => {\n hydrateRowsMeta();\n }, [rowHeight, filterState, paginationState, sortingState, hydrateRowsMeta]);\n const handlePreProcessorRegister = React.useCallback(name => {\n if (name !== 'rowHeight') {\n return;\n }\n\n hydrateRowsMeta();\n }, [hydrateRowsMeta]);\n useGridApiEventHandler(apiRef, GridEvents.preProcessorRegister, handlePreProcessorRegister);\n const rowsMetaApi = {\n unstable_getRowHeight: getTargetRowHeight,\n unstable_getRowInternalSizes: getRowInternalSizes,\n unstable_setRowHeight: setRowHeight\n };\n useGridApiMethod(apiRef, rowsMetaApi, 'GridRowsMetaApi');\n};","import { useGridInitialization } from '../hooks/core/useGridInitialization';\nimport { useGridInitializeState } from '../hooks/utils/useGridInitializeState';\nimport { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';\nimport { columnMenuStateInitializer, useGridColumnMenu } from '../hooks/features/columnMenu/useGridColumnMenu';\nimport { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';\nimport { densityStateInitializer, useGridDensity } from '../hooks/features/density/useGridDensity';\nimport { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';\nimport { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';\nimport { useGridFilter, filterStateInitializer } from '../hooks/features/filter/useGridFilter';\nimport { focusStateInitializer, useGridFocus } from '../hooks/features/focus/useGridFocus';\nimport { useGridKeyboard } from '../hooks/features/keyboard/useGridKeyboard';\nimport { useGridKeyboardNavigation } from '../hooks/features/keyboard/useGridKeyboardNavigation';\nimport { useGridPagination, paginationStateInitializer } from '../hooks/features/pagination/useGridPagination';\nimport { useGridPreferencesPanel, preferencePanelStateInitializer } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';\nimport { useGridEditing as useGridEditing_old, editingStateInitializer as editingStateInitializer_old } from '../hooks/features/editRows/useGridEditing.old';\nimport { useGridEditing as useGridEditing_new, editingStateInitializer as editingStateInitializer_new } from '../hooks/features/editRows/useGridEditing.new';\nimport { useGridRows, rowsStateInitializer } from '../hooks/features/rows/useGridRows';\nimport { useGridRowsPreProcessors } from '../hooks/features/rows/useGridRowsPreProcessors';\nimport { useGridParamsApi } from '../hooks/features/rows/useGridParamsApi';\nimport { selectionStateInitializer, useGridSelection } from '../hooks/features/selection/useGridSelection';\nimport { useGridSelectionPreProcessors } from '../hooks/features/selection/useGridSelectionPreProcessors';\nimport { useGridSorting, sortingStateInitializer } from '../hooks/features/sorting/useGridSorting';\nimport { useGridScroll } from '../hooks/features/scroll/useGridScroll';\nimport { useGridEvents } from '../hooks/features/events/useGridEvents';\nimport { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';\nimport { rowsMetaStateInitializer, useGridRowsMeta } from '../hooks/features/rows/useGridRowsMeta';\nimport { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';\nexport const useDataGridComponent = props => {\n var _props$experimentalFe, _props$experimentalFe2;\n\n const apiRef = useGridInitialization(undefined, props);\n /**\n * Register all pre-processors called during state initialization here.\n */\n\n useGridSelectionPreProcessors(apiRef, props);\n useGridRowsPreProcessors(apiRef);\n /**\n * Register all state initializers here.\n */\n\n useGridInitializeState(selectionStateInitializer, apiRef, props);\n useGridInitializeState(columnsStateInitializer, apiRef, props);\n useGridInitializeState(rowsStateInitializer, apiRef, props);\n useGridInitializeState((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.newEditingApi ? editingStateInitializer_new : editingStateInitializer_old, apiRef, props);\n useGridInitializeState(focusStateInitializer, apiRef, props);\n useGridInitializeState(sortingStateInitializer, apiRef, props);\n useGridInitializeState(preferencePanelStateInitializer, apiRef, props);\n useGridInitializeState(filterStateInitializer, apiRef, props);\n useGridInitializeState(densityStateInitializer, apiRef, props);\n useGridInitializeState(paginationStateInitializer, apiRef, props);\n useGridInitializeState(rowsMetaStateInitializer, apiRef, props);\n useGridInitializeState(columnMenuStateInitializer, apiRef, props);\n useGridSelection(apiRef, props);\n useGridColumns(apiRef, props);\n useGridRows(apiRef, props);\n useGridParamsApi(apiRef);\n const useGridEditing = (_props$experimentalFe2 = props.experimentalFeatures) != null && _props$experimentalFe2.newEditingApi ? useGridEditing_new : useGridEditing_old;\n useGridEditing(apiRef, props);\n useGridFocus(apiRef, props);\n useGridSorting(apiRef, props);\n useGridPreferencesPanel(apiRef);\n useGridFilter(apiRef, props);\n useGridDensity(apiRef, props);\n useGridPagination(apiRef, props);\n useGridRowsMeta(apiRef, props);\n useGridScroll(apiRef, props);\n useGridColumnMenu(apiRef);\n useGridKeyboard(apiRef);\n useGridKeyboardNavigation(apiRef, props);\n useGridCsvExport(apiRef);\n useGridPrintExport(apiRef, props);\n useGridClipboard(apiRef);\n useGridDimensions(apiRef, props);\n useGridEvents(apiRef, props);\n useGridStatePersistence(apiRef);\n return apiRef;\n};","import * as React from 'react';\nimport { GridEvents } from '../../../models/events';\nimport { gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';\nimport { gridVisibleSortedRowEntriesSelector } from '../filter/gridFilterSelector';\nimport { useGridVisibleRows } from '../../utils/useGridVisibleRows';\nimport { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../colDef/gridCheckboxSelectionColDef';\nimport { gridClasses } from '../../../constants/gridClasses';\n/**\n * @requires useGridPage (state)\n * @requires useGridPageSize (state)\n * @requires useGridFilter (state)\n * @requires useGridColumns (state, method)\n * @requires useGridRows (state, method)\n * @requires useGridSorting (method) - can be after\n * @requires useGridDimensions (method) - can be after\n * @requires useGridFocus (method) - can be after\n * @requires useGridScroll (method) - can be after\n */\n\nexport const useGridKeyboardNavigation = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridKeyboardNavigation');\n const currentPage = useGridVisibleRows(apiRef, props);\n const goToCell = React.useCallback((colIndex, rowIndex) => {\n logger.debug(`Navigating to cell row ${rowIndex}, col ${colIndex}`);\n apiRef.current.scrollToIndexes({\n colIndex,\n rowIndex\n });\n const field = apiRef.current.getVisibleColumns()[colIndex].field;\n const visibleSortedRows = gridVisibleSortedRowEntriesSelector(apiRef);\n const node = visibleSortedRows[rowIndex];\n apiRef.current.setCellFocus(node.id, field);\n }, [apiRef, logger]);\n const goToHeader = React.useCallback((colIndex, event) => {\n logger.debug(`Navigating to header col ${colIndex}`);\n apiRef.current.scrollToIndexes({\n colIndex\n });\n const field = apiRef.current.getVisibleColumns()[colIndex].field;\n apiRef.current.setColumnHeaderFocus(field, event);\n }, [apiRef, logger]);\n const handleCellNavigationKeyDown = React.useCallback((params, event) => {\n const dimensions = apiRef.current.getRootDimensions();\n\n if (!currentPage.range || !dimensions) {\n return;\n }\n\n const viewportPageSize = apiRef.current.unstable_getViewportPageSize();\n const visibleSortedRows = gridVisibleSortedRowEntriesSelector(apiRef);\n const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;\n const rowIndexBefore = visibleSortedRows.findIndex(row => row.id === params.id);\n const firstRowIndexInPage = currentPage.range.firstRowIndex;\n const lastRowIndexInPage = currentPage.range.lastRowIndex;\n const firstColIndex = 0;\n const lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;\n let shouldPreventDefault = true;\n\n switch (event.key) {\n case 'ArrowDown':\n case 'Enter':\n {\n // \"Enter\" is only triggered by the row / cell editing feature\n if (rowIndexBefore < lastRowIndexInPage) {\n goToCell(colIndexBefore, rowIndexBefore + 1);\n }\n\n break;\n }\n\n case 'ArrowUp':\n {\n if (rowIndexBefore > firstRowIndexInPage) {\n goToCell(colIndexBefore, rowIndexBefore - 1);\n } else {\n goToHeader(colIndexBefore, event);\n }\n\n break;\n }\n\n case 'ArrowRight':\n {\n if (colIndexBefore < lastColIndex) {\n goToCell(colIndexBefore + 1, rowIndexBefore);\n }\n\n break;\n }\n\n case 'ArrowLeft':\n {\n if (colIndexBefore > firstColIndex) {\n goToCell(colIndexBefore - 1, rowIndexBefore);\n }\n\n break;\n }\n\n case 'Tab':\n {\n // \"Tab\" is only triggered by the row / cell editing feature\n if (event.shiftKey && colIndexBefore > firstColIndex) {\n goToCell(colIndexBefore - 1, rowIndexBefore);\n } else if (!event.shiftKey && colIndexBefore < lastColIndex) {\n goToCell(colIndexBefore + 1, rowIndexBefore);\n }\n\n break;\n }\n\n case 'PageDown':\n case ' ':\n {\n if (rowIndexBefore < lastRowIndexInPage) {\n goToCell(colIndexBefore, Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage));\n }\n\n break;\n }\n\n case 'PageUp':\n {\n // Go to the first row before going to header\n const nextRowIndex = Math.max(rowIndexBefore - viewportPageSize, firstRowIndexInPage);\n\n if (nextRowIndex !== rowIndexBefore && nextRowIndex >= firstRowIndexInPage) {\n goToCell(colIndexBefore, nextRowIndex);\n } else {\n goToHeader(colIndexBefore, event);\n }\n\n break;\n }\n\n case 'Home':\n {\n if (event.ctrlKey || event.metaKey || event.shiftKey) {\n goToCell(firstColIndex, firstRowIndexInPage);\n } else {\n goToCell(firstColIndex, rowIndexBefore);\n }\n\n break;\n }\n\n case 'End':\n {\n if (event.ctrlKey || event.metaKey || event.shiftKey) {\n goToCell(lastColIndex, lastRowIndexInPage);\n } else {\n goToCell(lastColIndex, rowIndexBefore);\n }\n\n break;\n }\n\n default:\n {\n shouldPreventDefault = false;\n }\n }\n\n if (shouldPreventDefault) {\n event.preventDefault();\n }\n }, [apiRef, currentPage, goToCell, goToHeader]);\n const handleColumnHeaderKeyDown = React.useCallback((params, event) => {\n var _currentPage$range$fi, _currentPage$range, _currentPage$range$la, _currentPage$range2;\n\n const headerTitleNode = event.currentTarget.querySelector(`.${gridClasses.columnHeaderTitleContainerContent}`);\n const isFromInsideContent = !!headerTitleNode && headerTitleNode.contains(event.target);\n\n if (isFromInsideContent && params.field !== GRID_CHECKBOX_SELECTION_COL_DEF.field) {\n // When focus is on a nested input, keyboard events have no effect to avoid conflicts with native events.\n // There is one exception for the checkBoxHeader\n return;\n }\n\n const dimensions = apiRef.current.getRootDimensions();\n\n if (!dimensions) {\n return;\n }\n\n const viewportPageSize = apiRef.current.unstable_getViewportPageSize();\n const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;\n const firstRowIndexInPage = (_currentPage$range$fi = (_currentPage$range = currentPage.range) == null ? void 0 : _currentPage$range.firstRowIndex) != null ? _currentPage$range$fi : null;\n const lastRowIndexInPage = (_currentPage$range$la = (_currentPage$range2 = currentPage.range) == null ? void 0 : _currentPage$range2.lastRowIndex) != null ? _currentPage$range$la : null;\n const firstColIndex = 0;\n const lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;\n let shouldPreventDefault = true;\n\n switch (event.key) {\n case 'ArrowDown':\n {\n if (firstRowIndexInPage !== null) {\n goToCell(colIndexBefore, firstRowIndexInPage);\n }\n\n break;\n }\n\n case 'ArrowRight':\n {\n if (colIndexBefore < lastColIndex) {\n goToHeader(colIndexBefore + 1, event);\n }\n\n break;\n }\n\n case 'ArrowLeft':\n {\n if (colIndexBefore > firstColIndex) {\n goToHeader(colIndexBefore - 1, event);\n }\n\n break;\n }\n\n case 'PageDown':\n {\n if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {\n goToCell(colIndexBefore, Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage));\n }\n\n break;\n }\n\n case 'Home':\n {\n goToHeader(firstColIndex, event);\n break;\n }\n\n case 'End':\n {\n goToHeader(lastColIndex, event);\n break;\n }\n\n case 'Enter':\n {\n if (event.ctrlKey || event.metaKey) {\n apiRef.current.toggleColumnMenu(params.field);\n }\n\n break;\n }\n\n case ' ':\n {\n // prevent Space event from scrolling\n break;\n }\n\n default:\n {\n shouldPreventDefault = false;\n }\n }\n\n if (shouldPreventDefault) {\n event.preventDefault();\n }\n }, [apiRef, currentPage, goToCell, goToHeader]);\n useGridApiEventHandler(apiRef, GridEvents.cellNavigationKeyDown, handleCellNavigationKeyDown);\n useGridApiEventHandler(apiRef, GridEvents.columnHeaderKeyDown, handleColumnHeaderKeyDown);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { ownerDocument } from '@mui/material/utils';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridVisibleRowCountSelector } from '../filter/gridFilterSelector';\nimport { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from '../columns/gridColumnsSelector';\nimport { gridDensityHeaderHeightSelector } from '../density/densitySelector';\nimport { gridClasses } from '../../../constants/gridClasses';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';\nimport { getColumnsToExport } from './utils';\n\n/**\n * @requires useGridColumns (state)\n * @requires useGridFilter (state)\n * @requires useGridSorting (state)\n * @requires useGridParamsApi (method)\n */\nexport const useGridPrintExport = (apiRef, props) => {\n const logger = useGridLogger(apiRef, 'useGridPrintExport');\n const doc = React.useRef(null);\n const previousGridState = React.useRef(null);\n const previousColumnVisibility = React.useRef({});\n React.useEffect(() => {\n doc.current = ownerDocument(apiRef.current.rootElementRef.current);\n }, [apiRef]); // Returns a promise because updateColumns triggers state update and\n // the new state needs to be in place before the grid can be sized correctly\n\n const updateGridColumnsForPrint = React.useCallback((fields, allColumns) => new Promise(resolve => {\n if (!fields && !allColumns) {\n resolve();\n return;\n }\n\n const exportedColumnFields = getColumnsToExport({\n apiRef,\n options: {\n fields,\n allColumns\n }\n }).map(column => column.field);\n const columns = gridColumnDefinitionsSelector(apiRef);\n const newColumnVisibilityModel = {};\n columns.forEach(column => {\n newColumnVisibilityModel[column.field] = exportedColumnFields.includes(column.field);\n });\n apiRef.current.setColumnVisibilityModel(newColumnVisibilityModel);\n resolve();\n }), [apiRef]);\n const buildPrintWindow = React.useCallback(title => {\n const iframeEl = document.createElement('iframe');\n iframeEl.id = 'grid-print-window'; // Without this 'onload' event won't fire in some browsers\n\n iframeEl.src = window.location.href;\n iframeEl.style.position = 'absolute';\n iframeEl.style.width = '0px';\n iframeEl.style.height = '0px';\n iframeEl.title = title || document.title;\n return iframeEl;\n }, []);\n const handlePrintWindowLoad = React.useCallback((printWindow, options) => {\n var _printWindow$contentW, _querySelector, _querySelector2;\n\n const normalizeOptions = _extends({\n copyStyles: true,\n hideToolbar: false,\n hideFooter: false\n }, options); // Some agents, such as IE11 and Enzyme (as of 2 Jun 2020) continuously call the\n // `onload` callback. This ensures that it is only called once.\n\n\n printWindow.onload = null;\n const printDoc = printWindow.contentDocument || ((_printWindow$contentW = printWindow.contentWindow) == null ? void 0 : _printWindow$contentW.document);\n\n if (!printDoc) {\n return;\n }\n\n const headerHeight = gridDensityHeaderHeightSelector(apiRef);\n const rowsMeta = gridRowsMetaSelector(apiRef.current.state);\n const gridRootElement = apiRef.current.rootElementRef.current;\n const gridClone = gridRootElement.cloneNode(true);\n const gridCloneViewport = gridClone.querySelector(`.${gridClasses.virtualScroller}`); // Expand the viewport window to prevent clipping\n\n gridCloneViewport.style.height = 'auto';\n gridCloneViewport.style.width = 'auto';\n gridCloneViewport.parentElement.style.width = 'auto';\n gridCloneViewport.parentElement.style.height = 'auto'; // Allow to overflow to not hide the border of the last row\n\n const gridMain = gridClone.querySelector(`.${gridClasses.main}`);\n gridMain.style.overflow = 'visible';\n const columnHeaders = gridClone.querySelector(`.${gridClasses.columnHeaders}`);\n const columnHeadersInner = columnHeaders.querySelector(`.${gridClasses.columnHeadersInner}`);\n columnHeadersInner.style.width = '100%';\n let gridToolbarElementHeight = ((_querySelector = gridRootElement.querySelector(`.${gridClasses.toolbarContainer}`)) == null ? void 0 : _querySelector.clientHeight) || 0;\n let gridFooterElementHeight = ((_querySelector2 = gridRootElement.querySelector(`.${gridClasses.footerContainer}`)) == null ? void 0 : _querySelector2.clientHeight) || 0;\n\n if (normalizeOptions.hideToolbar) {\n var _gridClone$querySelec;\n\n (_gridClone$querySelec = gridClone.querySelector(`.${gridClasses.toolbarContainer}`)) == null ? void 0 : _gridClone$querySelec.remove();\n gridToolbarElementHeight = 0;\n }\n\n if (normalizeOptions.hideFooter) {\n var _gridClone$querySelec2;\n\n (_gridClone$querySelec2 = gridClone.querySelector(`.${gridClasses.footerContainer}`)) == null ? void 0 : _gridClone$querySelec2.remove();\n gridFooterElementHeight = 0;\n } // Expand container height to accommodate all rows\n\n\n gridClone.style.height = `${rowsMeta.currentPageTotalHeight + headerHeight + gridToolbarElementHeight + gridFooterElementHeight}px`; // Remove all loaded elements from the current host\n\n printDoc.body.innerHTML = '';\n printDoc.body.appendChild(gridClone);\n const defaultPageStyle = typeof normalizeOptions.pageStyle === 'function' ? normalizeOptions.pageStyle() : normalizeOptions.pageStyle;\n\n if (typeof defaultPageStyle === 'string') {\n // TODO custom styles should always win\n const styleElement = printDoc.createElement('style');\n styleElement.appendChild(printDoc.createTextNode(defaultPageStyle));\n printDoc.head.appendChild(styleElement);\n }\n\n if (normalizeOptions.bodyClassName) {\n printDoc.body.classList.add(...normalizeOptions.bodyClassName.split(' '));\n }\n\n if (normalizeOptions.copyStyles) {\n const headStyleElements = doc.current.querySelectorAll(\"style, link[rel='stylesheet']\");\n\n for (let i = 0; i < headStyleElements.length; i += 1) {\n const node = headStyleElements[i];\n\n if (node.tagName === 'STYLE') {\n const newHeadStyleElements = printDoc.createElement(node.tagName);\n const sheet = node.sheet;\n\n if (sheet) {\n let styleCSS = ''; // NOTE: for-of is not supported by IE\n\n for (let j = 0; j < sheet.cssRules.length; j += 1) {\n if (typeof sheet.cssRules[j].cssText === 'string') {\n styleCSS += `${sheet.cssRules[j].cssText}\\r\\n`;\n }\n }\n\n newHeadStyleElements.appendChild(printDoc.createTextNode(styleCSS));\n printDoc.head.appendChild(newHeadStyleElements);\n }\n } else if (node.getAttribute('href')) {\n // If `href` tag is empty, avoid loading these links\n const newHeadStyleElements = printDoc.createElement(node.tagName);\n\n for (let j = 0; j < node.attributes.length; j += 1) {\n const attr = node.attributes[j];\n\n if (attr) {\n newHeadStyleElements.setAttribute(attr.nodeName, attr.nodeValue || '');\n }\n }\n\n printDoc.head.appendChild(newHeadStyleElements);\n }\n }\n } // Trigger print\n\n\n if (process.env.NODE_ENV !== 'test') {\n printWindow.contentWindow.print();\n }\n }, [apiRef, doc]);\n const handlePrintWindowAfterPrint = React.useCallback(printWindow => {\n var _previousGridState$cu, _previousGridState$cu2;\n\n // Remove the print iframe\n doc.current.body.removeChild(printWindow); // Revert grid to previous state\n\n apiRef.current.restoreState(previousGridState.current || {});\n\n if (!((_previousGridState$cu = previousGridState.current) != null && (_previousGridState$cu2 = _previousGridState$cu.columns) != null && _previousGridState$cu2.columnVisibilityModel)) {\n // if the apiRef.current.exportState(); did not exported the column visibility, we update it\n apiRef.current.setColumnVisibilityModel(previousColumnVisibility.current);\n }\n\n apiRef.current.unstable_enableVirtualization(); // Clear local state\n\n previousGridState.current = null;\n previousColumnVisibility.current = {};\n }, [apiRef]);\n const exportDataAsPrint = React.useCallback(async options => {\n logger.debug(`Export data as Print`);\n\n if (!apiRef.current.rootElementRef.current) {\n throw new Error('MUI: No grid root element available.');\n }\n\n previousGridState.current = apiRef.current.exportState(); // It appends that the visibility model is not exported, especially if columnVisibility is not controlled\n\n previousColumnVisibility.current = gridColumnVisibilityModelSelector(apiRef);\n\n if (props.pagination) {\n const visibleRowCount = gridVisibleRowCountSelector(apiRef);\n apiRef.current.setPageSize(visibleRowCount);\n }\n\n await updateGridColumnsForPrint(options == null ? void 0 : options.fields, options == null ? void 0 : options.allColumns);\n apiRef.current.unstable_disableVirtualization();\n const printWindow = buildPrintWindow(options == null ? void 0 : options.fileName);\n doc.current.body.appendChild(printWindow);\n\n if (process.env.NODE_ENV === 'test') {\n // In test env, run the all pipeline without waiting for loading\n handlePrintWindowLoad(printWindow, options);\n handlePrintWindowAfterPrint(printWindow);\n } else {\n printWindow.onload = () => handlePrintWindowLoad(printWindow, options);\n\n printWindow.contentWindow.onafterprint = () => handlePrintWindowAfterPrint(printWindow);\n }\n }, [props, logger, apiRef, buildPrintWindow, handlePrintWindowLoad, handlePrintWindowAfterPrint, updateGridColumnsForPrint]);\n const printExportApi = {\n exportDataAsPrint\n };\n useGridApiMethod(apiRef, printExportApi, 'GridPrintExportApi');\n};","import * as React from 'react';\nimport { debounce, ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';\nimport { GridEvents } from '../../../models/events';\nimport { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nimport { useGridLogger } from '../../utils/useGridLogger';\nimport { gridColumnsTotalWidthSelector } from '../columns';\nimport { gridDensityHeaderHeightSelector, gridDensityRowHeightSelector } from '../density';\nimport { useGridSelector } from '../../utils';\nimport { getVisibleRows } from '../../utils/useGridVisibleRows';\nimport { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';\nconst isTestEnvironment = process.env.NODE_ENV === 'test';\n\nconst hasScroll = ({\n content,\n container,\n scrollBarSize\n}) => {\n const hasScrollXIfNoYScrollBar = content.width > container.width;\n const hasScrollYIfNoXScrollBar = content.height > container.height;\n let hasScrollX = false;\n let hasScrollY = false;\n\n if (hasScrollXIfNoYScrollBar || hasScrollYIfNoXScrollBar) {\n hasScrollX = hasScrollXIfNoYScrollBar;\n hasScrollY = content.height + (hasScrollX ? scrollBarSize : 0) > container.height; // We recalculate the scroll x to consider the size of the y scrollbar.\n\n if (hasScrollY) {\n hasScrollX = content.width + scrollBarSize > container.width;\n }\n }\n\n return {\n hasScrollX,\n hasScrollY\n };\n};\n\nexport function useGridDimensions(apiRef, props) {\n const logger = useGridLogger(apiRef, 'useResizeContainer');\n const warningShown = React.useRef(false);\n const rootDimensionsRef = React.useRef(null);\n const fullDimensionsRef = React.useRef(null);\n const rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);\n const headerHeight = useGridSelector(apiRef, gridDensityHeaderHeightSelector);\n const updateGridDimensionsRef = React.useCallback(() => {\n var _apiRef$current$rootE;\n\n const rootElement = (_apiRef$current$rootE = apiRef.current.rootElementRef) == null ? void 0 : _apiRef$current$rootE.current;\n const columnsTotalWidth = gridColumnsTotalWidthSelector(apiRef);\n\n if (!rootDimensionsRef.current) {\n return;\n }\n\n let scrollBarSize;\n\n if (props.scrollbarSize != null) {\n scrollBarSize = props.scrollbarSize;\n } else if (!columnsTotalWidth || !rootElement) {\n scrollBarSize = 0;\n } else {\n const doc = ownerDocument(rootElement);\n const scrollDiv = doc.createElement('div');\n scrollDiv.style.width = '99px';\n scrollDiv.style.height = '99px';\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.overflow = 'scroll';\n scrollDiv.className = 'scrollDiv';\n rootElement.appendChild(scrollDiv);\n scrollBarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n rootElement.removeChild(scrollDiv);\n }\n\n const viewportOuterSize = {\n width: rootDimensionsRef.current.width,\n height: props.autoHeight ? rowsMeta.currentPageTotalHeight : rootDimensionsRef.current.height - headerHeight\n };\n const {\n hasScrollX,\n hasScrollY\n } = hasScroll({\n content: {\n width: Math.round(columnsTotalWidth),\n height: rowsMeta.currentPageTotalHeight\n },\n container: viewportOuterSize,\n scrollBarSize\n });\n const viewportInnerSize = {\n width: viewportOuterSize.width - (hasScrollY ? scrollBarSize : 0),\n height: viewportOuterSize.height - (hasScrollX ? scrollBarSize : 0)\n };\n const newFullDimensions = {\n viewportOuterSize,\n viewportInnerSize,\n hasScrollX,\n hasScrollY\n };\n const prevDimensions = fullDimensionsRef.current;\n fullDimensionsRef.current = newFullDimensions;\n\n if (newFullDimensions.viewportInnerSize.width !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.width) || newFullDimensions.viewportInnerSize.height !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.height)) {\n apiRef.current.publishEvent(GridEvents.viewportInnerSizeChange, newFullDimensions.viewportInnerSize);\n }\n }, [apiRef, props.scrollbarSize, props.autoHeight, headerHeight, rowsMeta.currentPageTotalHeight]);\n const resize = React.useCallback(() => {\n updateGridDimensionsRef();\n apiRef.current.publishEvent(GridEvents.debouncedResize, rootDimensionsRef.current);\n }, [apiRef, updateGridDimensionsRef]);\n const getRootDimensions = React.useCallback(() => fullDimensionsRef.current, []);\n const getViewportPageSize = React.useCallback(() => {\n const dimensions = apiRef.current.getRootDimensions();\n\n if (!dimensions) {\n return 0;\n }\n\n const currentPage = getVisibleRows(apiRef, {\n pagination: props.pagination,\n paginationMode: props.paginationMode\n }); // TODO: Use a combination of scrollTop, dimensions.viewportInnerSize.height and rowsMeta.possitions\n // to find out the maximum number of rows that can fit in the visible part of the grid\n\n if (props.getRowHeight) {\n const renderContext = apiRef.current.unstable_getRenderContext();\n const viewportPageSize = renderContext.lastRowIndex - renderContext.firstRowIndex;\n return Math.min(viewportPageSize - 1, currentPage.rows.length);\n }\n\n const maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / gridDensityRowHeightSelector(apiRef));\n return Math.min(maximumPageSizeWithoutScrollBar, currentPage.rows.length);\n }, [apiRef, props.pagination, props.paginationMode, props.getRowHeight]);\n const dimensionsApi = {\n resize,\n getRootDimensions,\n unstable_getViewportPageSize: getViewportPageSize\n };\n useGridApiMethod(apiRef, dimensionsApi, 'GridDimensionsApi');\n const debounceResize = React.useMemo(() => debounce(resize, 60), [resize]);\n const isFirstSizing = React.useRef(true);\n const handleResize = React.useCallback(size => {\n rootDimensionsRef.current = size; // jsdom has no layout capabilities\n\n const isJSDOM = /jsdom/.test(window.navigator.userAgent);\n\n if (size.height === 0 && !warningShown.current && !props.autoHeight && !isJSDOM) {\n logger.warn(['The parent of the grid has an empty height.', 'You need to make sure the container has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/components/data-grid/layout/'].join('\\n'));\n warningShown.current = true;\n }\n\n if (size.width === 0 && !warningShown.current && !isJSDOM) {\n logger.warn(['The parent of the grid has an empty width.', 'You need to make sure the container has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/components/data-grid/layout/'].join('\\n'));\n warningShown.current = true;\n }\n\n if (isTestEnvironment) {\n // We don't need to debounce the resize for tests.\n resize();\n isFirstSizing.current = false;\n return;\n }\n\n if (isFirstSizing.current) {\n // We want to initialize the grid dimensions as soon as possible to avoid flickering\n resize();\n isFirstSizing.current = false;\n return;\n }\n\n debounceResize();\n }, [props.autoHeight, debounceResize, logger, resize]);\n useEnhancedEffect(() => updateGridDimensionsRef(), [updateGridDimensionsRef]);\n useGridApiOptionHandler(apiRef, GridEvents.visibleRowsSet, updateGridDimensionsRef);\n useGridApiOptionHandler(apiRef, GridEvents.pageChange, updateGridDimensionsRef);\n useGridApiOptionHandler(apiRef, GridEvents.pageSizeChange, updateGridDimensionsRef);\n useGridApiOptionHandler(apiRef, GridEvents.columnsChange, updateGridDimensionsRef);\n useGridApiEventHandler(apiRef, GridEvents.resize, handleResize);\n useGridApiOptionHandler(apiRef, GridEvents.debouncedResize, props.onResize);\n}","import { GridEvents } from '../../../models/events';\nimport { useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';\n\n/**\n * @requires useGridFocus (event) - can be after, async only\n * @requires useGridColumns (event) - can be after, async only\n */\nexport function useGridEvents(apiRef, props) {\n useGridApiOptionHandler(apiRef, GridEvents.columnHeaderClick, props.onColumnHeaderClick);\n useGridApiOptionHandler(apiRef, GridEvents.columnHeaderDoubleClick, props.onColumnHeaderDoubleClick);\n useGridApiOptionHandler(apiRef, GridEvents.columnHeaderOver, props.onColumnHeaderOver);\n useGridApiOptionHandler(apiRef, GridEvents.columnHeaderOut, props.onColumnHeaderOut);\n useGridApiOptionHandler(apiRef, GridEvents.columnHeaderEnter, props.onColumnHeaderEnter);\n useGridApiOptionHandler(apiRef, GridEvents.columnHeaderLeave, props.onColumnHeaderLeave);\n useGridApiOptionHandler(apiRef, GridEvents.columnOrderChange, props.onColumnOrderChange);\n useGridApiOptionHandler(apiRef, GridEvents.cellClick, props.onCellClick);\n useGridApiOptionHandler(apiRef, GridEvents.cellDoubleClick, props.onCellDoubleClick);\n useGridApiOptionHandler(apiRef, GridEvents.cellKeyDown, props.onCellKeyDown);\n useGridApiOptionHandler(apiRef, GridEvents.cellFocusOut, props.onCellFocusOut);\n useGridApiOptionHandler(apiRef, GridEvents.rowDoubleClick, props.onRowDoubleClick);\n useGridApiOptionHandler(apiRef, GridEvents.rowClick, props.onRowClick);\n useGridApiOptionHandler(apiRef, GridEvents.componentError, props.onError);\n useGridApiOptionHandler(apiRef, GridEvents.stateChange, props.onStateChange);\n}","import * as React from 'react';\nimport { useGridApiMethod } from '../../utils';\nexport const useGridStatePersistence = apiRef => {\n const exportState = React.useCallback(() => {\n const stateToExport = apiRef.current.unstable_applyPreProcessors('exportState', {});\n return stateToExport;\n }, [apiRef]);\n const restoreState = React.useCallback(stateToRestore => {\n const response = apiRef.current.unstable_applyPreProcessors('restoreState', {\n callbacks: []\n }, {\n stateToRestore\n });\n response.callbacks.forEach(callback => {\n callback();\n });\n apiRef.current.forceUpdate();\n }, [apiRef]);\n const statePersistenceApi = {\n exportState,\n restoreState\n };\n useGridApiMethod(apiRef, statePersistenceApi, 'GridStatePersistenceApi');\n};","export const GRID_DEFAULT_LOCALE_TEXT = {\n // Root\n noRowsLabel: 'No rows',\n noResultsOverlayLabel: 'No results found.',\n errorOverlayDefaultLabel: 'An error occurred.',\n // Density selector toolbar button text\n toolbarDensity: 'Density',\n toolbarDensityLabel: 'Density',\n toolbarDensityCompact: 'Compact',\n toolbarDensityStandard: 'Standard',\n toolbarDensityComfortable: 'Comfortable',\n // Columns selector toolbar button text\n toolbarColumns: 'Columns',\n toolbarColumnsLabel: 'Select columns',\n // Filters toolbar button text\n toolbarFilters: 'Filters',\n toolbarFiltersLabel: 'Show filters',\n toolbarFiltersTooltipHide: 'Hide filters',\n toolbarFiltersTooltipShow: 'Show filters',\n toolbarFiltersTooltipActive: count => count !== 1 ? `${count} active filters` : `${count} active filter`,\n // Export selector toolbar button text\n toolbarExport: 'Export',\n toolbarExportLabel: 'Export',\n toolbarExportCSV: 'Download as CSV',\n toolbarExportPrint: 'Print',\n // Columns panel text\n columnsPanelTextFieldLabel: 'Find column',\n columnsPanelTextFieldPlaceholder: 'Column title',\n columnsPanelDragIconLabel: 'Reorder column',\n columnsPanelShowAllButton: 'Show all',\n columnsPanelHideAllButton: 'Hide all',\n // Filter panel text\n filterPanelAddFilter: 'Add filter',\n filterPanelDeleteIconLabel: 'Delete',\n filterPanelLinkOperator: 'Logic operator',\n filterPanelOperators: 'Operator',\n // TODO v6: rename to filterPanelOperator\n filterPanelOperatorAnd: 'And',\n filterPanelOperatorOr: 'Or',\n filterPanelColumns: 'Columns',\n filterPanelInputLabel: 'Value',\n filterPanelInputPlaceholder: 'Filter value',\n // Filter operators text\n filterOperatorContains: 'contains',\n filterOperatorEquals: 'equals',\n filterOperatorStartsWith: 'starts with',\n filterOperatorEndsWith: 'ends with',\n filterOperatorIs: 'is',\n filterOperatorNot: 'is not',\n filterOperatorAfter: 'is after',\n filterOperatorOnOrAfter: 'is on or after',\n filterOperatorBefore: 'is before',\n filterOperatorOnOrBefore: 'is on or before',\n filterOperatorIsEmpty: 'is empty',\n filterOperatorIsNotEmpty: 'is not empty',\n filterOperatorIsAnyOf: 'is any of',\n // Filter values text\n filterValueAny: 'any',\n filterValueTrue: 'true',\n filterValueFalse: 'false',\n // Column menu text\n columnMenuLabel: 'Menu',\n columnMenuShowColumns: 'Show columns',\n columnMenuFilter: 'Filter',\n columnMenuHideColumn: 'Hide',\n columnMenuUnsort: 'Unsort',\n columnMenuSortAsc: 'Sort by ASC',\n columnMenuSortDesc: 'Sort by DESC',\n // Column header text\n columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} active filters` : `${count} active filter`,\n columnHeaderFiltersLabel: 'Show filters',\n columnHeaderSortIconLabel: 'Sort',\n // Rows selected footer text\n footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} rows selected` : `${count.toLocaleString()} row selected`,\n // Total row amount footer text\n footerTotalRows: 'Total Rows:',\n // Total visible row amount footer text\n footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} of ${totalCount.toLocaleString()}`,\n // Checkbox selection text\n checkboxSelectionHeaderName: 'Checkbox selection',\n checkboxSelectionSelectAllRows: 'Select all rows',\n checkboxSelectionUnselectAllRows: 'Unselect all rows',\n checkboxSelectionSelectRow: 'Select row',\n checkboxSelectionUnselectRow: 'Unselect row',\n // Boolean cell text\n booleanCellTrueLabel: 'yes',\n booleanCellFalseLabel: 'no',\n // Actions cell more text\n actionsCellMore: 'more',\n // Column pinning text\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n unpin: 'Unpin',\n // Tree Data\n treeDataGroupingHeaderName: 'Group',\n treeDataExpand: 'see children',\n treeDataCollapse: 'hide children',\n // Grouping columns\n groupingColumnHeaderName: 'Group',\n groupColumn: name => `Group by ${name}`,\n unGroupColumn: name => `Stop grouping by ${name}`,\n // Master/detail\n expandDetailPanel: 'Expand',\n collapseDetailPanel: 'Collapse',\n // Used core components translation keys\n MuiTablePagination: {}\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"align\", \"children\", \"colIndex\", \"cellMode\", \"field\", \"formattedValue\", \"hasFocus\", \"height\", \"isEditable\", \"rowId\", \"tabIndex\", \"value\", \"width\", \"className\", \"showRightBorder\", \"extendRowFullWidth\", \"row\", \"onClick\", \"onDoubleClick\", \"onMouseDown\", \"onMouseUp\", \"onKeyDown\", \"onDragEnter\", \"onDragOver\"];\n\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { ownerDocument, capitalize } from '@mui/material/utils';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { GridEvents, GridCellModes } from '../../models';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { gridFocusCellSelector } from '../../hooks/features/focus/gridFocusStateSelector';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// Based on https://stackoverflow.com/a/59518678\nlet cachedSupportsPreventScroll;\n\nfunction doesSupportPreventScroll() {\n if (cachedSupportsPreventScroll === undefined) {\n document.createElement('div').focus({\n get preventScroll() {\n cachedSupportsPreventScroll = true;\n return false;\n }\n\n });\n }\n\n return cachedSupportsPreventScroll;\n}\n\nconst useUtilityClasses = ownerState => {\n const {\n align,\n showRightBorder,\n isEditable,\n classes\n } = ownerState;\n const slots = {\n root: ['cell', `cell--text${capitalize(align)}`, isEditable && 'cell--editable', showRightBorder && 'withBorder'],\n content: ['cellContent']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nlet warnedOnce = false;\n\nfunction GridCell(props) {\n var _rootProps$experiment;\n\n const {\n align,\n children,\n colIndex,\n cellMode,\n field,\n formattedValue,\n hasFocus,\n height,\n isEditable,\n rowId,\n tabIndex,\n value,\n width,\n className,\n showRightBorder,\n onClick,\n onDoubleClick,\n onMouseDown,\n onMouseUp,\n onKeyDown,\n onDragEnter,\n onDragOver\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const valueToRender = formattedValue == null ? value : formattedValue;\n const cellRef = React.useRef(null);\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = {\n align,\n showRightBorder,\n isEditable,\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const publishMouseUp = React.useCallback(eventName => event => {\n const params = apiRef.current.getCellParams(rowId, field || '');\n apiRef.current.publishEvent(eventName, params, event);\n\n if (onMouseUp) {\n onMouseUp(event);\n }\n }, [apiRef, field, onMouseUp, rowId]);\n const publish = React.useCallback((eventName, propHandler) => event => {\n // Ignore portal\n if (!event.currentTarget.contains(event.target)) {\n return;\n } // The row might have been deleted during the click\n\n\n if (!apiRef.current.getRow(rowId)) {\n return;\n }\n\n const params = apiRef.current.getCellParams(rowId, field || '');\n apiRef.current.publishEvent(eventName, params, event);\n\n if (propHandler) {\n propHandler(event);\n }\n }, [apiRef, field, rowId]);\n const style = {\n minWidth: width,\n maxWidth: width,\n minHeight: height,\n maxHeight: height\n };\n React.useLayoutEffect(() => {\n if (!hasFocus || cellMode === GridCellModes.Edit) {\n return;\n }\n\n const doc = ownerDocument(apiRef.current.rootElementRef.current);\n\n if (cellRef.current && !cellRef.current.contains(doc.activeElement)) {\n const focusableElement = cellRef.current.querySelector('[tabindex=\"0\"]');\n const elementToFocus = focusableElement || cellRef.current;\n\n if (doesSupportPreventScroll()) {\n elementToFocus.focus({\n preventScroll: true\n });\n } else {\n const scrollPosition = apiRef.current.getScrollPosition();\n elementToFocus.focus();\n apiRef.current.scroll(scrollPosition);\n }\n }\n }, [hasFocus, cellMode, apiRef]);\n let handleFocus = other.onFocus;\n\n if (process.env.NODE_ENV === 'test' && (_rootProps$experiment = rootProps.experimentalFeatures) != null && _rootProps$experiment.warnIfFocusStateIsNotSynced) {\n handleFocus = event => {\n const focusedCell = gridFocusCellSelector(apiRef);\n\n if ((focusedCell == null ? void 0 : focusedCell.id) === rowId && focusedCell.field === field) {\n if (typeof other.onFocus === 'function') {\n other.onFocus(event);\n }\n\n return;\n }\n\n if (!warnedOnce) {\n console.warn([`MUI: The cell with id=${rowId} and field=${field} received focus.`, `According to the state, the focus should be at id=${focusedCell == null ? void 0 : focusedCell.id}, field=${focusedCell == null ? void 0 : focusedCell.field}.`, \"Not syncing the state may cause unwanted behaviors since the `cellFocusIn` event won't be fired.\", 'Call `fireEvent.mouseUp` before the `fireEvent.click` to sync the focus with the state.'].join('\\n'));\n warnedOnce = true;\n }\n };\n }\n\n return /*#__PURE__*/_jsx(\"div\", _extends({\n ref: cellRef,\n className: clsx(className, classes.root),\n role: \"cell\",\n \"data-field\": field,\n \"data-colindex\": colIndex,\n \"aria-colindex\": colIndex + 1,\n style: style,\n tabIndex: cellMode === 'view' || !isEditable ? tabIndex : -1,\n onClick: publish(GridEvents.cellClick, onClick),\n onDoubleClick: publish(GridEvents.cellDoubleClick, onDoubleClick),\n onMouseDown: publish(GridEvents.cellMouseDown, onMouseDown),\n onMouseUp: publishMouseUp(GridEvents.cellMouseUp),\n onKeyDown: publish(GridEvents.cellKeyDown, onKeyDown),\n onDragEnter: publish(GridEvents.cellDragEnter, onDragEnter),\n onDragOver: publish(GridEvents.cellDragOver, onDragOver)\n }, other, {\n onFocus: handleFocus,\n children: children != null ? children : /*#__PURE__*/_jsx(\"div\", {\n className: classes.content,\n children: valueToRender == null ? void 0 : valueToRender.toString()\n })\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? GridCell.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n align: PropTypes.oneOf(['center', 'left', 'right']).isRequired,\n cellMode: PropTypes.oneOf(['edit', 'view']),\n children: PropTypes.node,\n className: PropTypes.string,\n colIndex: PropTypes.number.isRequired,\n field: PropTypes.string.isRequired,\n formattedValue: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool]),\n hasFocus: PropTypes.bool,\n height: PropTypes.number.isRequired,\n isEditable: PropTypes.bool,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onDragEnter: PropTypes.func,\n onDragOver: PropTypes.func,\n onKeyDown: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n showRightBorder: PropTypes.bool,\n tabIndex: PropTypes.oneOf([-1, 0]).isRequired,\n value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool]),\n width: PropTypes.number.isRequired\n} : void 0;\nexport { GridCell };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"hideMenu\", \"currentColumn\", \"open\", \"id\", \"labelledby\", \"className\", \"children\"];\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport MenuList from '@mui/material/MenuList';\nimport { isHideMenuKey, isTabKey } from '../../../utils/keyboardUtils';\nimport { gridClasses } from '../../../constants/gridClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GridColumnMenuContainer = /*#__PURE__*/React.forwardRef(function GridColumnMenuContainer(props, ref) {\n const {\n hideMenu,\n open,\n id,\n labelledby,\n className,\n children\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const handleListKeyDown = React.useCallback(event => {\n if (isTabKey(event.key)) {\n event.preventDefault();\n }\n\n if (isHideMenuKey(event.key)) {\n hideMenu(event);\n }\n }, [hideMenu]);\n return /*#__PURE__*/_jsx(MenuList, _extends({\n id: id,\n ref: ref,\n className: clsx(gridClasses.menuList, className),\n \"aria-labelledby\": labelledby,\n onKeyDown: handleListKeyDown,\n autoFocus: open\n }, other, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridColumnMenuContainer.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n currentColumn: PropTypes.object.isRequired,\n hideMenu: PropTypes.func.isRequired,\n id: PropTypes.string,\n labelledby: PropTypes.string,\n open: PropTypes.bool.isRequired\n} : void 0;\nexport { GridColumnMenuContainer };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '@mui/material/MenuItem';\nimport { GridPreferencePanelsValue } from '../../../hooks/features/preferencesPanel/gridPreferencePanelsValue';\nimport { useGridApiContext } from '../../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst GridColumnsMenuItem = props => {\n const {\n onClick\n } = props;\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const showColumns = React.useCallback(event => {\n onClick(event);\n apiRef.current.showPreferences(GridPreferencePanelsValue.columns);\n }, [apiRef, onClick]);\n\n if (rootProps.disableColumnSelector) {\n return null;\n }\n\n return /*#__PURE__*/_jsx(MenuItem, {\n onClick: showColumns,\n children: apiRef.current.getLocaleText('columnMenuShowColumns')\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? GridColumnsMenuItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n column: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired\n} : void 0;\nexport { GridColumnsMenuItem };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '@mui/material/MenuItem';\nimport { useGridApiContext } from '../../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst GridFilterMenuItem = props => {\n const {\n column,\n onClick\n } = props;\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const showFilter = React.useCallback(event => {\n onClick(event);\n apiRef.current.showFilterPanel(column == null ? void 0 : column.field);\n }, [apiRef, column == null ? void 0 : column.field, onClick]);\n\n if (rootProps.disableColumnFilter || !(column != null && column.filterable)) {\n return null;\n }\n\n return /*#__PURE__*/_jsx(MenuItem, {\n onClick: showFilter,\n children: apiRef.current.getLocaleText('columnMenuFilter')\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? GridFilterMenuItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n column: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired\n} : void 0;\nexport { GridFilterMenuItem };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '@mui/material/MenuItem';\nimport { useGridApiContext } from '../../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../../hooks/utils/useGridRootProps';\nimport { gridVisibleColumnDefinitionsSelector } from '../../../hooks/features/columns';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst HideGridColMenuItem = props => {\n const {\n column,\n onClick\n } = props;\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const timeoutRef = React.useRef();\n const visibleColumns = gridVisibleColumnDefinitionsSelector(apiRef);\n const columnsWithMenu = visibleColumns.filter(col => col.disableColumnMenu !== true); // do not allow to hide the last column with menu\n\n const disabled = columnsWithMenu.length === 1;\n const toggleColumn = React.useCallback(event => {\n /**\n * Disabled `MenuItem` would trigger `click` event\n * after imperative `.click()` call on HTML element.\n * Also, click is triggered in testing environment as well.\n */\n if (disabled) {\n return;\n }\n\n onClick(event); // time for the transition\n\n timeoutRef.current = setTimeout(() => {\n apiRef.current.setColumnVisibility(column == null ? void 0 : column.field, false);\n }, 100);\n }, [apiRef, column == null ? void 0 : column.field, onClick, disabled]);\n React.useEffect(() => {\n return () => clearTimeout(timeoutRef.current);\n }, []);\n\n if (rootProps.disableColumnSelector) {\n return null;\n }\n\n if (column.hideable === false) {\n return null;\n }\n\n return /*#__PURE__*/_jsx(MenuItem, {\n onClick: toggleColumn,\n disabled: disabled,\n children: apiRef.current.getLocaleText('columnMenuHideColumn')\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? HideGridColMenuItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n column: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired\n} : void 0;\nexport { HideGridColMenuItem };","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItem from '@mui/material/MenuItem';\nimport { useGridSelector } from '../../../hooks/utils/useGridSelector';\nimport { gridSortModelSelector } from '../../../hooks/features/sorting/gridSortingSelector';\nimport { useGridApiContext } from '../../../hooks/utils/useGridApiContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst SortGridMenuItems = props => {\n const {\n column,\n onClick\n } = props;\n const apiRef = useGridApiContext();\n const sortModel = useGridSelector(apiRef, gridSortModelSelector);\n const sortDirection = React.useMemo(() => {\n if (!column) {\n return null;\n }\n\n const sortItem = sortModel.find(item => item.field === column.field);\n return sortItem == null ? void 0 : sortItem.sort;\n }, [column, sortModel]);\n const onSortMenuItemClick = React.useCallback(event => {\n onClick(event);\n const direction = event.currentTarget.getAttribute('data-value') || null;\n apiRef.current.sortColumn(column, direction);\n }, [apiRef, column, onClick]);\n\n if (!column || !column.sortable) {\n return null;\n }\n\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(MenuItem, {\n onClick: onSortMenuItemClick,\n disabled: sortDirection == null,\n children: apiRef.current.getLocaleText('columnMenuUnsort')\n }), /*#__PURE__*/_jsx(MenuItem, {\n onClick: onSortMenuItemClick,\n \"data-value\": \"asc\",\n disabled: sortDirection === 'asc',\n children: apiRef.current.getLocaleText('columnMenuSortAsc')\n }), /*#__PURE__*/_jsx(MenuItem, {\n onClick: onSortMenuItemClick,\n \"data-value\": \"desc\",\n disabled: sortDirection === 'desc',\n children: apiRef.current.getLocaleText('columnMenuSortDesc')\n })]\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? SortGridMenuItems.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n column: PropTypes.object.isRequired,\n onClick: PropTypes.func.isRequired\n} : void 0;\nexport { SortGridMenuItems };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GridColumnMenuContainer } from './GridColumnMenuContainer';\nimport { GridColumnsMenuItem } from './GridColumnsMenuItem';\nimport { GridFilterMenuItem } from './GridFilterMenuItem';\nimport { HideGridColMenuItem } from './HideGridColMenuItem';\nimport { SortGridMenuItems } from './SortGridMenuItems';\nimport { useGridApiContext } from '../../../hooks/utils/useGridApiContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GridColumnMenu = /*#__PURE__*/React.forwardRef(function GridColumnMenu(props, ref) {\n const {\n hideMenu,\n currentColumn\n } = props;\n const apiRef = useGridApiContext();\n const defaultButtons = [/*#__PURE__*/_jsx(SortGridMenuItems, {\n onClick: hideMenu,\n column: currentColumn\n }),\n /*#__PURE__*/\n // TODO update types to allow `onClick` and `column` to be optional\n _jsx(GridFilterMenuItem, {\n onClick: hideMenu,\n column: currentColumn\n }), /*#__PURE__*/_jsx(HideGridColMenuItem, {\n onClick: hideMenu,\n column: currentColumn\n }), /*#__PURE__*/_jsx(GridColumnsMenuItem, {\n onClick: hideMenu,\n column: currentColumn\n })];\n const preProcessedButtons = apiRef.current.unstable_applyPreProcessors('columnMenu', defaultButtons, currentColumn);\n return /*#__PURE__*/_jsx(GridColumnMenuContainer, _extends({\n ref: ref\n }, props, {\n children: preProcessedButtons.map((button, index) => /*#__PURE__*/React.cloneElement(button, {\n key: index,\n onClick: hideMenu,\n column: currentColumn\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridColumnMenu.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n currentColumn: PropTypes.object.isRequired,\n hideMenu: PropTypes.func.isRequired,\n id: PropTypes.string,\n labelledby: PropTypes.string,\n open: PropTypes.bool.isRequired\n} : void 0;\nexport { GridColumnMenu };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"rowCount\", \"visibleRowCount\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport { useGridApiContext } from '../hooks/utils/useGridApiContext';\nimport { getDataGridUtilityClass } from '../constants/gridClasses';\nimport { useGridRootProps } from '../hooks/utils/useGridRootProps';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['rowCount']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nconst GridRowCountRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'RowCount',\n overridesResolver: (props, styles) => styles.rowCount\n})(({\n theme\n}) => ({\n alignItems: 'center',\n display: 'flex',\n margin: theme.spacing(0, 2)\n}));\nconst GridRowCount = /*#__PURE__*/React.forwardRef(function GridRowCount(props, ref) {\n const {\n className,\n rowCount,\n visibleRowCount\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n\n if (rowCount === 0) {\n return null;\n }\n\n const text = visibleRowCount < rowCount ? apiRef.current.getLocaleText('footerTotalVisibleRows')(visibleRowCount, rowCount) : rowCount.toLocaleString();\n return /*#__PURE__*/_jsxs(GridRowCountRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n children: [apiRef.current.getLocaleText('footerTotalRows'), \" \", text]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridRowCount.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n rowCount: PropTypes.number.isRequired,\n visibleRowCount: PropTypes.number.isRequired\n} : void 0;\nexport { GridRowCount };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"selectedRowCount\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport { useGridApiContext } from '../hooks/utils/useGridApiContext';\nimport { getDataGridUtilityClass } from '../constants/gridClasses';\nimport { useGridRootProps } from '../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['selectedRowCount']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nconst GridSelectedRowCountRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'SelectedRowCount',\n overridesResolver: (props, styles) => styles.selectedRowCount\n})(({\n theme\n}) => ({\n alignItems: 'center',\n display: 'flex',\n margin: theme.spacing(0, 2),\n visibility: 'hidden',\n width: 0,\n height: 0,\n [theme.breakpoints.up('sm')]: {\n visibility: 'visible',\n width: 'auto',\n height: 'auto'\n }\n}));\nconst GridSelectedRowCount = /*#__PURE__*/React.forwardRef(function GridSelectedRowCount(props, ref) {\n const {\n className,\n selectedRowCount\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n const rowSelectedText = apiRef.current.getLocaleText('footerRowSelected')(selectedRowCount);\n return /*#__PURE__*/_jsx(GridSelectedRowCountRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n children: rowSelectedText\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridSelectedRowCount.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n selectedRowCount: PropTypes.number.isRequired\n} : void 0;\nexport { GridSelectedRowCount };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { styled, alpha, lighten, darken } from '@mui/material/styles';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['footerContainer']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nconst GridFooterContainerRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'FooterContainer',\n overridesResolver: (props, styles) => styles.footerContainer\n})(({\n theme\n}) => {\n const borderColor = theme.palette.mode === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68);\n return {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n minHeight: 52,\n // Match TablePagination min height\n borderTop: `1px solid ${borderColor}`\n };\n});\nexport const GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFooterContainer(props, ref) {\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(GridFooterContainerRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className)\n }, other));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridSelector } from '../hooks/utils/useGridSelector';\nimport { gridTopLevelRowCountSelector } from '../hooks/features/rows/gridRowsSelector';\nimport { selectedGridRowsCountSelector } from '../hooks/features/selection/gridSelectionSelector';\nimport { gridVisibleTopLevelRowCountSelector } from '../hooks/features/filter/gridFilterSelector';\nimport { useGridApiContext } from '../hooks/utils/useGridApiContext';\nimport { GridRowCount } from './GridRowCount';\nimport { GridSelectedRowCount } from './GridSelectedRowCount';\nimport { GridFooterContainer } from './containers/GridFooterContainer';\nimport { useGridRootProps } from '../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const GridFooter = /*#__PURE__*/React.forwardRef(function GridFooter(props, ref) {\n var _rootProps$components;\n\n const apiRef = useGridApiContext();\n const rootProps = useGridRootProps();\n const totalTopLevelRowCount = useGridSelector(apiRef, gridTopLevelRowCountSelector);\n const selectedRowCount = useGridSelector(apiRef, selectedGridRowsCountSelector);\n const visibleTopLevelRowCount = useGridSelector(apiRef, gridVisibleTopLevelRowCountSelector);\n const selectedRowCountElement = !rootProps.hideFooterSelectedRowCount && selectedRowCount > 0 ? /*#__PURE__*/_jsx(GridSelectedRowCount, {\n selectedRowCount: selectedRowCount\n }) : /*#__PURE__*/_jsx(\"div\", {});\n const rowCountElement = !rootProps.hideFooterRowCount && !rootProps.pagination ? /*#__PURE__*/_jsx(GridRowCount, {\n rowCount: totalTopLevelRowCount,\n visibleRowCount: visibleTopLevelRowCount\n }) : null;\n\n const paginationElement = rootProps.pagination && !rootProps.hideFooterPagination && rootProps.components.Pagination && /*#__PURE__*/_jsx(rootProps.components.Pagination, _extends({}, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.pagination));\n\n return /*#__PURE__*/_jsxs(GridFooterContainer, _extends({\n ref: ref\n }, props, {\n children: [selectedRowCountElement, rowCountElement, paginationElement]\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useGridRootProps } from '../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const GridHeader = /*#__PURE__*/React.forwardRef(function GridHeader(props, ref) {\n var _rootProps$components, _rootProps$components2;\n\n const rootProps = useGridRootProps();\n return /*#__PURE__*/_jsxs(\"div\", _extends({\n ref: ref\n }, props, {\n children: [/*#__PURE__*/_jsx(rootProps.components.PreferencesPanel, _extends({}, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.preferencesPanel)), rootProps.components.Toolbar && /*#__PURE__*/_jsx(rootProps.components.Toolbar, _extends({}, (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.toolbar))]\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { gridColumnDefinitionsSelector } from '../../hooks/features/columns/gridColumnsSelector';\nimport { useGridSelector } from '../../hooks/utils/useGridSelector';\nimport { gridPreferencePanelStateSelector } from '../../hooks/features/preferencesPanel/gridPreferencePanelSelector';\nimport { GridPreferencePanelsValue } from '../../hooks/features/preferencesPanel/gridPreferencePanelsValue';\nimport { useGridApiContext } from '../../hooks/utils/useGridApiContext';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const GridPreferencesPanel = /*#__PURE__*/React.forwardRef(function GridPreferencesPanel(props, ref) {\n var _preferencePanelState, _rootProps$components, _rootProps$components2;\n\n const apiRef = useGridApiContext();\n const columns = useGridSelector(apiRef, gridColumnDefinitionsSelector);\n const rootProps = useGridRootProps();\n const preferencePanelState = useGridSelector(apiRef, gridPreferencePanelStateSelector);\n const panelContent = apiRef.current.unstable_applyPreProcessors('preferencePanel', null, (_preferencePanelState = preferencePanelState.openedPanelValue) != null ? _preferencePanelState : GridPreferencePanelsValue.filters);\n return /*#__PURE__*/_jsx(rootProps.components.Panel, _extends({\n ref: ref,\n as: rootProps.components.BasePopper,\n open: columns.length > 0 && preferencePanelState.open\n }, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.panel, props, (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.basePopper, {\n children: panelContent\n }));\n});","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"disableShrink\", \"size\", \"style\", \"thickness\", \"value\", \"variant\"];\n\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { keyframes, css } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getCircularProgressUtilityClass } from './circularProgressClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`));\nconst circularDashKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`));\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\n\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n display: 'inline-block'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('transform')\n}, ownerState.color !== 'inherit' && {\n color: theme.palette[ownerState.color].main\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && css(_t3 || (_t3 = _`\n animation: ${0} 1.4s linear infinite;\n `), circularRotateKeyframe));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n stroke: 'currentColor'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('stroke-dashoffset')\n}, ownerState.variant === 'indeterminate' && {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink && css(_t4 || (_t4 = _`\n animation: ${0} 1.4s ease-in-out infinite;\n `), circularDashKeyframe));\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n\n return /*#__PURE__*/_jsx(CircularProgressRoot, _extends({\n className: clsx(classes.root, className),\n style: _extends({\n width: size,\n height: size\n }, rootStyle, style),\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\"\n }, rootProps, other, {\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.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 * 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. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n\n return null;\n }),\n\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, e.g '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\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 thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { alpha, styled } from '@mui/material/styles';\nimport { getDataGridUtilityClass } from '../../constants/gridClasses';\nimport { useGridRootProps } from '../../hooks/utils/useGridRootProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['overlay']\n };\n return composeClasses(slots, getDataGridUtilityClass, classes);\n};\n\nconst GridOverlayRoot = styled('div', {\n name: 'MuiDataGrid',\n slot: 'Overlay',\n overridesResolver: (props, styles) => styles.overlay\n})(({\n theme\n}) => ({\n display: 'flex',\n height: '100%',\n alignSelf: 'center',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: alpha(theme.palette.background.default, theme.palette.action.disabledOpacity)\n}));\nconst GridOverlay = /*#__PURE__*/React.forwardRef(function GridOverlay(props, ref) {\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const rootProps = useGridRootProps();\n const ownerState = {\n classes: rootProps.classes\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(GridOverlayRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className)\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridOverlay.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridOverlay };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport { GridOverlay } from './containers/GridOverlay';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GridLoadingOverlay = /*#__PURE__*/React.forwardRef(function GridLoadingOverlay(props, ref) {\n return /*#__PURE__*/_jsx(GridOverlay, _extends({\n ref: ref\n }, props, {\n children: /*#__PURE__*/_jsx(CircularProgress, {})\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridLoadingOverlay.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridLoadingOverlay };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useGridApiContext } from '../hooks/utils/useGridApiContext';\nimport { GridOverlay } from './containers/GridOverlay';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GridNoRowsOverlay = /*#__PURE__*/React.forwardRef(function GridNoRowsOverlay(props, ref) {\n const apiRef = useGridApiContext();\n const noRowsLabel = apiRef.current.getLocaleText('noRowsLabel');\n return /*#__PURE__*/_jsx(GridOverlay, _extends({\n ref: ref\n }, props, {\n children: noRowsLabel\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? GridNoRowsOverlay.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { GridNoRowsOverlay };","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst TableContext = /*#__PURE__*/React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n TableContext.displayName = 'TableContext';\n}\n\nexport default TableContext;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst Tablelvl2Context = /*#__PURE__*/React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\n\nexport default Tablelvl2Context;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableCellUtilityClass(slot) {\n return generateUtilityClass('MuiTableCell', slot);\n}\nconst tableCellClasses = generateUtilityClasses('MuiTableCell', ['root', 'head', 'body', 'footer', 'sizeSmall', 'sizeMedium', 'paddingCheckbox', 'paddingNone', 'alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'stickyHeader']);\nexport default tableCellClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"align\", \"className\", \"component\", \"padding\", \"scope\", \"size\", \"sortDirection\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { darken, alpha, lighten } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport TableContext from '../Table/TableContext';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport tableCellClasses, { getTableCellUtilityClass } from './tableCellClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n align,\n padding,\n size,\n stickyHeader\n } = ownerState;\n const slots = {\n root: ['root', variant, stickyHeader && 'stickyHeader', align !== 'inherit' && `align${capitalize(align)}`, padding !== 'normal' && `padding${capitalize(padding)}`, `size${capitalize(size)}`]\n };\n return composeClasses(slots, getTableCellUtilityClass, classes);\n};\n\nconst TableCellRoot = styled('td', {\n name: 'MuiTableCell',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.padding !== 'normal' && styles[`padding${capitalize(ownerState.padding)}`], ownerState.align !== 'inherit' && styles[`align${capitalize(ownerState.align)}`], ownerState.stickyHeader && styles.stickyHeader];\n }\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.body2, {\n display: 'table-cell',\n verticalAlign: 'inherit',\n // Workaround for a rendering bug with spanned columns in Chrome 62.0.\n // Removes the alpha (sets it to 1), and lightens or darkens the theme color.\n borderBottom: `1px solid\n ${theme.palette.mode === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68)}`,\n textAlign: 'left',\n padding: 16\n}, ownerState.variant === 'head' && {\n color: theme.palette.text.primary,\n lineHeight: theme.typography.pxToRem(24),\n fontWeight: theme.typography.fontWeightMedium\n}, ownerState.variant === 'body' && {\n color: theme.palette.text.primary\n}, ownerState.variant === 'footer' && {\n color: theme.palette.text.secondary,\n lineHeight: theme.typography.pxToRem(21),\n fontSize: theme.typography.pxToRem(12)\n}, ownerState.size === 'small' && {\n padding: '6px 16px',\n [`&.${tableCellClasses.paddingCheckbox}`]: {\n width: 24,\n // prevent the checkbox column from growing\n padding: '0 12px 0 16px',\n '& > *': {\n padding: 0\n }\n }\n}, ownerState.padding === 'checkbox' && {\n width: 48,\n // prevent the checkbox column from growing\n padding: '0 0 0 4px'\n}, ownerState.padding === 'none' && {\n padding: 0\n}, ownerState.align === 'left' && {\n textAlign: 'left'\n}, ownerState.align === 'center' && {\n textAlign: 'center'\n}, ownerState.align === 'right' && {\n textAlign: 'right',\n flexDirection: 'row-reverse'\n}, ownerState.align === 'justify' && {\n textAlign: 'justify'\n}, ownerState.stickyHeader && {\n position: 'sticky',\n top: 0,\n zIndex: 2,\n backgroundColor: theme.palette.background.default\n}));\n/**\n * The component renders a `` element when the parent context is a header\n * or otherwise a `` element.\n */\n\nconst TableCell = /*#__PURE__*/React.forwardRef(function TableCell(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableCell'\n });\n\n const {\n align = 'inherit',\n className,\n component: componentProp,\n padding: paddingProp,\n scope: scopeProp,\n size: sizeProp,\n sortDirection,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const table = React.useContext(TableContext);\n const tablelvl2 = React.useContext(Tablelvl2Context);\n const isHeadCell = tablelvl2 && tablelvl2.variant === 'head';\n let component;\n\n if (componentProp) {\n component = componentProp;\n } else {\n component = isHeadCell ? 'th' : 'td';\n }\n\n let scope = scopeProp;\n\n if (!scope && isHeadCell) {\n scope = 'col';\n }\n\n const variant = variantProp || tablelvl2 && tablelvl2.variant;\n\n const ownerState = _extends({}, props, {\n align,\n component,\n padding: paddingProp || (table && table.padding ? table.padding : 'normal'),\n size: sizeProp || (table && table.size ? table.size : 'medium'),\n sortDirection,\n stickyHeader: variant === 'head' && table && table.stickyHeader,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n let ariaSort = null;\n\n if (sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n\n return /*#__PURE__*/_jsx(TableCellRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n \"aria-sort\": ariaSort,\n scope: scope,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableCell.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 * Set the text-align on the table cell content.\n *\n * Monetary or generally number fields **should be right aligned** as that allows\n * you to add them up quickly in your head without having to worry about decimals.\n * @default 'inherit'\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\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 * Sets the padding applied to the cell.\n * The prop defaults to the value (`'default'`) inherited from the parent Table component.\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n\n /**\n * Set scope attribute.\n */\n scope: PropTypes.string,\n\n /**\n * Specify the size of the cell.\n * The prop defaults to the value (`'medium'`) inherited from the parent Table component.\n */\n size: PropTypes.oneOf(['small', 'medium']),\n\n /**\n * Set aria-sort direction.\n */\n sortDirection: PropTypes.oneOf(['asc', 'desc', false]),\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 * Specify the cell type.\n * The prop defaults to the value inherited from the parent TableHead, TableBody, or TableFooter components.\n */\n variant: PropTypes.oneOf(['body', 'footer', 'head'])\n} : void 0;\nexport default TableCell;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nvar _LastPageIcon, _FirstPageIcon, _KeyboardArrowRight, _KeyboardArrowLeft, _KeyboardArrowLeft2, _KeyboardArrowRight2, _FirstPageIcon2, _LastPageIcon2;\n\nconst _excluded = [\"backIconButtonProps\", \"count\", \"getItemAriaLabel\", \"nextIconButtonProps\", \"onPageChange\", \"page\", \"rowsPerPage\", \"showFirstButton\", \"showLastButton\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowLeft from '../internal/svg-icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '../internal/svg-icons/KeyboardArrowRight';\nimport useTheme from '../styles/useTheme';\nimport IconButton from '../IconButton';\nimport LastPageIcon from '../internal/svg-icons/LastPage';\nimport FirstPageIcon from '../internal/svg-icons/FirstPage';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TablePaginationActions = /*#__PURE__*/React.forwardRef(function TablePaginationActions(props, ref) {\n const {\n backIconButtonProps,\n count,\n getItemAriaLabel,\n nextIconButtonProps,\n onPageChange,\n page,\n rowsPerPage,\n showFirstButton,\n showLastButton\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n\n const handleFirstPageButtonClick = event => {\n onPageChange(event, 0);\n };\n\n const handleBackButtonClick = event => {\n onPageChange(event, page - 1);\n };\n\n const handleNextButtonClick = event => {\n onPageChange(event, page + 1);\n };\n\n const handleLastPageButtonClick = event => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\n };\n\n return /*#__PURE__*/_jsxs(\"div\", _extends({\n ref: ref\n }, other, {\n children: [showFirstButton && /*#__PURE__*/_jsx(IconButton, {\n onClick: handleFirstPageButtonClick,\n disabled: page === 0,\n \"aria-label\": getItemAriaLabel('first', page),\n title: getItemAriaLabel('first', page),\n children: theme.direction === 'rtl' ? _LastPageIcon || (_LastPageIcon = /*#__PURE__*/_jsx(LastPageIcon, {})) : _FirstPageIcon || (_FirstPageIcon = /*#__PURE__*/_jsx(FirstPageIcon, {}))\n }), /*#__PURE__*/_jsx(IconButton, _extends({\n onClick: handleBackButtonClick,\n disabled: page === 0,\n color: \"inherit\",\n \"aria-label\": getItemAriaLabel('previous', page),\n title: getItemAriaLabel('previous', page)\n }, backIconButtonProps, {\n children: theme.direction === 'rtl' ? _KeyboardArrowRight || (_KeyboardArrowRight = /*#__PURE__*/_jsx(KeyboardArrowRight, {})) : _KeyboardArrowLeft || (_KeyboardArrowLeft = /*#__PURE__*/_jsx(KeyboardArrowLeft, {}))\n })), /*#__PURE__*/_jsx(IconButton, _extends({\n onClick: handleNextButtonClick,\n disabled: count !== -1 ? page >= Math.ceil(count / rowsPerPage) - 1 : false,\n color: \"inherit\",\n \"aria-label\": getItemAriaLabel('next', page),\n title: getItemAriaLabel('next', page)\n }, nextIconButtonProps, {\n children: theme.direction === 'rtl' ? _KeyboardArrowLeft2 || (_KeyboardArrowLeft2 = /*#__PURE__*/_jsx(KeyboardArrowLeft, {})) : _KeyboardArrowRight2 || (_KeyboardArrowRight2 = /*#__PURE__*/_jsx(KeyboardArrowRight, {}))\n })), showLastButton && /*#__PURE__*/_jsx(IconButton, {\n onClick: handleLastPageButtonClick,\n disabled: page >= Math.ceil(count / rowsPerPage) - 1,\n \"aria-label\": getItemAriaLabel('last', page),\n title: getItemAriaLabel('last', page),\n children: theme.direction === 'rtl' ? _FirstPageIcon2 || (_FirstPageIcon2 = /*#__PURE__*/_jsx(FirstPageIcon, {})) : _LastPageIcon2 || (_LastPageIcon2 = /*#__PURE__*/_jsx(LastPageIcon, {}))\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TablePaginationActions.propTypes = {\n /**\n * Props applied to the back arrow [`IconButton`](/api/icon-button/) element.\n */\n backIconButtonProps: PropTypes.object,\n\n /**\n * The total number of rows.\n */\n count: PropTypes.number.isRequired,\n\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n *\n * For localization purposes, you can use the provided [translations](/guides/localization/).\n *\n * @param {string} type The link or button type to format ('page' | 'first' | 'last' | 'next' | 'previous'). Defaults to 'page'.\n * @param {number} page The page number to format.\n * @returns {string}\n */\n getItemAriaLabel: PropTypes.func.isRequired,\n\n /**\n * Props applied to the next arrow [`IconButton`](/api/icon-button/) element.\n */\n nextIconButtonProps: PropTypes.object,\n\n /**\n * Callback fired when the page is changed.\n *\n * @param {object} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onPageChange: PropTypes.func.isRequired,\n\n /**\n * The zero-based index of the current page.\n */\n page: PropTypes.number.isRequired,\n\n /**\n * The number of rows per page.\n */\n rowsPerPage: PropTypes.number.isRequired,\n\n /**\n * If `true`, show the first-page button.\n */\n showFirstButton: PropTypes.bool.isRequired,\n\n /**\n * If `true`, show the last-page button.\n */\n showLastButton: PropTypes.bool.isRequired\n} : void 0;\nexport default TablePaginationActions;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"\n}), 'LastPage');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"\n}), 'FirstPage');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTablePaginationUtilityClass(slot) {\n return generateUtilityClass('MuiTablePagination', slot);\n}\nconst tablePaginationClasses = generateUtilityClasses('MuiTablePagination', ['root', 'toolbar', 'spacer', 'selectLabel', 'selectRoot', 'select', 'selectIcon', 'input', 'menuItem', 'displayedRows', 'actions']);\nexport default tablePaginationClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _InputBase;\n\nconst _excluded = [\"ActionsComponent\", \"backIconButtonProps\", \"className\", \"colSpan\", \"component\", \"count\", \"getItemAriaLabel\", \"labelDisplayedRows\", \"labelRowsPerPage\", \"nextIconButtonProps\", \"onPageChange\", \"onRowsPerPageChange\", \"page\", \"rowsPerPage\", \"rowsPerPageOptions\", \"SelectProps\", \"showFirstButton\", \"showLastButton\"];\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, isHostComponent } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport InputBase from '../InputBase';\nimport MenuItem from '../MenuItem';\nimport Select from '../Select';\nimport TableCell from '../TableCell';\nimport Toolbar from '../Toolbar';\nimport TablePaginationActions from './TablePaginationActions';\nimport useId from '../utils/useId';\nimport tablePaginationClasses, { getTablePaginationUtilityClass } from './tablePaginationClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TablePaginationRoot = styled(TableCell, {\n name: 'MuiTablePagination',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n overflow: 'auto',\n color: theme.palette.text.primary,\n fontSize: theme.typography.pxToRem(14),\n // Increase the specificity to override TableCell.\n '&:last-child': {\n padding: 0\n }\n}));\nconst TablePaginationToolbar = styled(Toolbar, {\n name: 'MuiTablePagination',\n slot: 'Toolbar',\n overridesResolver: (props, styles) => _extends({\n [`& .${tablePaginationClasses.actions}`]: styles.actions\n }, styles.toolbar)\n})(({\n theme\n}) => ({\n minHeight: 52,\n paddingRight: 2,\n [`${theme.breakpoints.up('xs')} and (orientation: landscape)`]: {\n minHeight: 52\n },\n [theme.breakpoints.up('sm')]: {\n minHeight: 52,\n paddingRight: 2\n },\n [`& .${tablePaginationClasses.actions}`]: {\n flexShrink: 0,\n marginLeft: 20\n }\n}));\nconst TablePaginationSpacer = styled('div', {\n name: 'MuiTablePagination',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})({\n flex: '1 1 100%'\n});\nconst TablePaginationSelectLabel = styled('p', {\n name: 'MuiTablePagination',\n slot: 'SelectLabel',\n overridesResolver: (props, styles) => styles.selectLabel\n})(({\n theme\n}) => _extends({}, theme.typography.body2, {\n flexShrink: 0\n}));\nconst TablePaginationSelect = styled(Select, {\n name: 'MuiTablePagination',\n slot: 'Select',\n overridesResolver: (props, styles) => _extends({\n [`& .${tablePaginationClasses.selectIcon}`]: styles.selectIcon,\n [`& .${tablePaginationClasses.select}`]: styles.select\n }, styles.input, styles.selectRoot)\n})({\n color: 'inherit',\n fontSize: 'inherit',\n flexShrink: 0,\n marginRight: 32,\n marginLeft: 8,\n [`& .${tablePaginationClasses.select}`]: {\n paddingLeft: 8,\n paddingRight: 24,\n textAlign: 'right',\n textAlignLast: 'right' // Align is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n return f;\n}\n\ninterface DOMFile extends Blob {\n readonly lastModified: number;\n readonly name: string;\n}\n\nexport interface FileWithPath extends DOMFile {\n readonly path?: string;\n}\n\ninterface FileWithWebkitPath extends File {\n readonly webkitRelativePath?: string;\n}\n\nfunction withMimeType(file: FileWithPath) {\n const {name} = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop()!.toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n\n return file;\n}\n","import {FileWithPath, toFileWithPath} from './file';\n\n\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n\n\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n * @param evt\n */\nexport async function fromEvent(evt: Event): Promise<(FileWithPath | DataTransferItem)[]> {\n return isDragEvt(evt) && evt.dataTransfer\n ? getDataTransferFiles(evt.dataTransfer, evt.type)\n : getInputFiles(evt);\n}\n\nfunction isDragEvt(value: any): value is DragEvent {\n return !!value.dataTransfer;\n}\n\nfunction getInputFiles(evt: Event) {\n const files = isInput(evt.target)\n ? evt.target.files\n ? fromList(evt.target.files)\n : []\n : [];\n return files.map(file => toFileWithPath(file));\n}\n\nfunction isInput(value: EventTarget | null): value is HTMLInputElement {\n return value !== null;\n}\n\nasync function getDataTransferFiles(dt: DataTransfer, type: string) {\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = await Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n}\n\nfunction noIgnoredFiles(files: FileWithPath[]) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items: DataTransferItemList | FileList): T[] {\n const files = [];\n\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n\n return files as any;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item: DataTransferItem) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n\n const entry = item.webkitGetAsEntry();\n\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry) as any;\n }\n\n return fromDataTransferItem(item);\n}\n\nfunction flatten(items: any[]): T[] {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\n\nfunction fromDataTransferItem(item: DataTransferItem) {\n const file = item.getAsFile();\n if (!file) {\n return Promise.reject(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nasync function fromEntry(entry: any) {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry: any) {\n const reader = entry.createReader();\n\n return new Promise((resolve, reject) => {\n const entries: Promise[] = [];\n\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(async (batch: any[]) => {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = await Promise.all(entries);\n resolve(files);\n } catch (err) {\n reject(err);\n }\n } else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n\n // Continue reading\n readEntries();\n }\n }, (err: any) => {\n reject(err);\n });\n }\n\n readEntries();\n });\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nasync function fromFileEntry(entry: any) {\n return new Promise((resolve, reject) => {\n entry.file((file: FileWithPath) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err: any) => {\n reject(err);\n });\n });\n}\n\n// Infinite type recursion\n// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540\ninterface FileArray extends Array {}\ntype FileValue = FileWithPath\n | FileArray[];\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files';\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function \n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch]); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n\n if (typeof onFileDialogCancel === 'function') {\n onFileDialogCancel();\n }\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancel]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [multiple, accept, minSize, maxSize, maxFiles, getFilesFromEvent, onDrop, onDropAccepted, onDropRejected, noDragEventsBubbling, validator]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb))\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nexport { ErrorCode } from './utils';","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown) => typeof value === 'object';\n\nexport default (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n [...names].some((current) => getNodeParentName(name) === current);\n","export default (name: string) => name.substring(0, name.search(/.\\d/)) || name;\n","export default (value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (obj: T, path: string, defaultValue?: unknown): any => {\n if (!path || !isObject(obj)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n obj,\n );\n\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path as keyof T])\n ? defaultValue\n : obj[path as keyof T]\n : result;\n};\n","import { ValidationMode } from './types';\n\nexport const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\n\nexport const VALIDATION_MODE: ValidationMode = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n","import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as unknown as UseFormReturn;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useFrom methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = (\n props: FormProviderProps,\n) => {\n const { children, ...data } = props;\n return (\n \n {props.children}\n \n );\n};\n","import { VALIDATION_MODE } from '../constants';\nimport { FormState, ReadFormState } from '../types';\n\nexport default (\n formState: FormState,\n _proxyFormState: ReadFormState,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {} as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState & keyof ReadFormState;\n\n if (_proxyFormState[_key] !== VALIDATION_MODE.all) {\n _proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport { ReadFormState } from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default , K extends ReadFormState>(\n formStateData: T,\n _proxyFormState: K,\n isRoot?: boolean,\n) => {\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default (value: T) => (Array.isArray(value) ? value : [value]);\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default (\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n exact && signalName\n ? name === signalName\n : !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import React from 'react';\n\nimport { Subject, Subscription } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n callback: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const tearDown = (subscription: Subscription | false) => {\n if (subscription) {\n subscription.unsubscribe();\n }\n };\n\n const subscription =\n !props.disabled &&\n _props.current.subject.subscribe({\n next: _props.current.callback,\n });\n\n return () => tearDown(subscription);\n }, [props.disabled]);\n}\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { FieldValues, InternalFieldName, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n) => {\n const isArray = Array.isArray(names);\n if (isString(names)) {\n isGlobal && _names.watch.add(names as InternalFieldName);\n return get(formValues, names as InternalFieldName);\n }\n\n if (isArray) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName as InternalFieldName),\n get(formValues, fieldName as InternalFieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport get from './utils/get';\nimport { EVENTS } from './constants';\nimport {\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UnpackNestedValue,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
\n * \n *

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

\n *

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

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

Field is dirty.

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

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

\n *

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

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: ControllerProps,\n) => props.render(useController(props));\n\nexport { Controller };\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default function set(\n object: FieldValues,\n path: string,\n value?: unknown,\n) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n","import { FieldRefs, InternalFieldName } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\nimport isUndefined from '../utils/isUndefined';\n\nconst focusFieldBy = (\n fields: FieldRefs,\n callback: (name: string) => boolean,\n fieldsNames?: Set | InternalFieldName[],\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f && callback(_f.name)) {\n if (_f.ref.focus && isUndefined(_f.ref.focus())) {\n break;\n } else if (_f.refs) {\n _f.refs[0].focus();\n break;\n }\n } else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\n};\n\nexport default focusFieldBy;\n","export default () => {\n const d =\n typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import isFunction from './isFunction';\nimport isObject from './isObject';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (isArray || isObject(data)) {\n copy = isArray ? [] : {};\n for (const key in data) {\n if (isFunction(data[key])) {\n copy = data;\n break;\n }\n copy[key] = cloneObject(data[key]);\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default function createSubject(): Subject {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n}\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode } from '../types';\n\nexport default (\n mode?: Mode,\n): {\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnAll: boolean;\n isOnTouch: boolean;\n} => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is HTMLElement =>\n value instanceof HTMLElement;\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nexport default function unset(object: any, path: string) {\n const updatePath = isKey(path) ? [path] : stringToPath(path);\n const childObject =\n updatePath.length == 1 ? object : baseGet(object, updatePath);\n const key = updatePath[updatePath.length - 1];\n let previousObjRef;\n\n if (childObject) {\n delete childObject[key];\n }\n\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\n let index = -1;\n let objectRef;\n const currentPaths = updatePath.slice(0, -(k + 1));\n const currentPathsLength = currentPaths.length - 1;\n\n if (k > 0) {\n previousObjRef = object;\n }\n\n while (++index < currentPaths.length) {\n const item = currentPaths[index];\n objectRef = objectRef ? objectRef[item] : object[item];\n\n if (\n currentPathsLength === index &&\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\n (Array.isArray(objectRef) &&\n !objectRef.filter((data) => !isUndefined(data)).length))\n ) {\n previousObjRef ? delete previousObjRef[item] : delete object[item];\n }\n\n previousObjRef = objectRef;\n }\n }\n\n return object;\n}\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: U, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: any,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : +value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? undefined\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","export default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial<{\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnTouch: boolean;\n isOnAll: boolean;\n }>,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import React from 'react';\n\nimport { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message =>\n isString(value) || React.isValidElement(value as JSX.Element);\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n InternalFieldErrors,\n Message,\n NativeFieldValue,\n} from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n inputValue: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled,\n } = field._f;\n if (!mount || disabled) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || ' ');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) && !ref.value) ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType = INPUT_VALIDATION_RULES.maxLength,\n minType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber || +inputValue;\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n if (isString(maxOutput.value)) {\n exceedMax = valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value)) {\n exceedMin = valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if ((maxLength || minLength) && !isEmpty && isString(inputValue)) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n Ref,\n ResolverResult,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UnpackNestedValue,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport getValidationModes from '../utils/getValidationModes';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isPrimitive from '../utils/isPrimitive';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport focusFieldBy from './focusFieldBy';\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState = {\n isDirty: false,\n isValidating: false,\n dirtyFields: {} as FieldNamesMarkedBoolean,\n isSubmitted: false,\n submitCount: 0,\n touchedFields: {} as FieldNamesMarkedBoolean,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n errors: {} as FieldErrors,\n };\n let _fields = {};\n let _defaultValues = cloneObject(_options.defaultValues) || {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _stateFlags = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n } as Names;\n let delayErrorCallback: DelayCallback;\n let timer = 0;\n let validateFields: Record = {};\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n watch: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T, wait: number) =>\n (...args: any) => {\n clearTimeout(timer);\n timer = window.setTimeout(() => callback(...args), wait);\n };\n\n const _updateValid = async (shouldSkipRender?: boolean) => {\n let isValid = false;\n\n if (_proxyFormState.isValid) {\n isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuildInValidation(_fields, true);\n\n if (!shouldSkipRender && isValid !== _formState.isValid) {\n _formState.isValid = isValid;\n _subjects.state.next({\n isValid,\n });\n }\n }\n\n return isValid;\n };\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method) {\n _stateFlags.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n _proxyFormState.errors &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => (\n set(_formState.errors, name, error),\n _subjects.state.next({\n errors: _formState.errors,\n })\n );\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _stateFlags.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let isFieldDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (_proxyFormState.isDirty) {\n const isPreviousFormDirty = _formState.isDirty;\n\n _formState.isDirty = output.isDirty = _getDirty();\n isFieldDirty = isPreviousFormDirty !== output.isDirty;\n }\n\n if (_proxyFormState.dirtyFields && (!isBlurEvent || shouldDirty)) {\n const isPreviousFieldDirty = get(_formState.dirtyFields, name);\n const isCurrentFieldPristine = deepEqual(\n get(_defaultValues, name),\n fieldValue,\n );\n\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields as TFieldValues, name, true);\n output.dirtyFields = _formState.dirtyFields;\n isFieldDirty =\n isFieldDirty ||\n isPreviousFieldDirty !== get(_formState.dirtyFields, name);\n }\n\n if (isBlurEvent && !isPreviousFieldTouched) {\n set(_formState.touchedFields as TFieldValues, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n isFieldDirty =\n isFieldDirty ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n\n isFieldDirty && shouldRender && _subjects.state.next(output);\n\n return isFieldDirty ? output : {};\n };\n\n const shouldRenderByError = async (\n shouldSkipRender: boolean,\n name: InternalFieldName,\n isValid: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ): Promise => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid && _formState.isValid !== isValid;\n\n if (props.delayError && error) {\n delayErrorCallback =\n delayErrorCallback || debounce(updateErrors, props.delayError);\n delayErrorCallback(name, error);\n } else {\n clearTimeout(timer);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) &&\n !shouldSkipRender\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n\n validateFields[name]--;\n\n if (\n _proxyFormState.isValidating &&\n !Object.values(validateFields).some((v) => v)\n ) {\n _subjects.state.next({\n isValidating: false,\n });\n validateFields = {};\n }\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) =>\n _options.resolver\n ? await _options.resolver(\n { ..._formValues } as UnpackNestedValue,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n )\n : ({} as ResolverResult);\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema();\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors as FieldErrors;\n }\n\n return errors;\n };\n\n const executeBuildInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f: fieldReference, ...fieldValue } = field;\n\n if (fieldReference) {\n const fieldError = await validateField(\n field,\n get(_formValues, fieldReference.name),\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n );\n\n if (fieldError[fieldReference.name]) {\n context.valid = false;\n\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n if (!shouldOnlyCheckValid) {\n fieldError[fieldReference.name]\n ? set(\n _formState.errors,\n fieldReference.name,\n fieldError[fieldReference.name],\n )\n : unset(_formState.errors, fieldReference.name);\n }\n }\n\n fieldValue &&\n (await executeBuildInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) => (\n name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues)\n );\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) => {\n const fieldValues = {\n ...(_stateFlags.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n };\n\n return generateWatchOutput(names, _names, fieldValues, isGlobal);\n };\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _stateFlags.mount ? _formValues : _defaultValues,\n name,\n props.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isWeb && isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (selectRef) =>\n (selectRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(selectRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n !checkboxRef.disabled &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.watch.next({\n name,\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}` as Path;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: _formValues,\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n\n _subjects.state.next({\n name,\n dirtyFields: _formState.dirtyFields,\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({});\n _subjects.watch.next({\n name,\n });\n };\n\n const onChange: ChangeHandler = async (event) => {\n const target = event.target;\n let name = target.name;\n const field: Field = get(_fields, name);\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.watch.next({\n name,\n type: event.type,\n });\n\n if (shouldSkipValidation) {\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({});\n\n validateFields[name] = validateFields[name] ? +1 : 1;\n\n _subjects.state.next({\n isValidating: true,\n });\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n } else {\n error = (\n await validateField(\n field,\n get(_formValues, name),\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n\n isValid = await _updateValid(true);\n }\n\n field._f.deps &&\n trigger(\n field._f.deps as FieldPath | FieldPath[],\n );\n\n shouldRenderByError(false, name, isValid, error, fieldState);\n }\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n _subjects.state.next({\n isValidating: true,\n });\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuildInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuildInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n\n options.shouldFocus &&\n !validationResult &&\n focusFieldBy(\n _fields,\n (key) => get(_formState.errors, key),\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ..._defaultValues,\n ...(_stateFlags.mount ? _formValues : {}),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames as InternalFieldName)\n : fieldNames.map((name) => get(values, name as InternalFieldName));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name\n ? convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n )\n : (_formState.errors = {} as FieldErrors);\n\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = ((get(_fields, name, { _f: {} }) as Field)._f || {}).ref;\n\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: unknown,\n ) =>\n isFunction(name)\n ? _subjects.watch.subscribe({\n next: (info) =>\n name(\n _getWatch(\n undefined,\n defaultValue as UnpackNestedValue>,\n ),\n info as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue as UnpackNestedValue>,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (get(_fields, fieldName)) {\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n }\n\n _subjects.watch.next({});\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n\n set(_fields, name, {\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n field\n ? disabledIsDefined &&\n set(\n _formValues,\n name,\n options.disabled\n ? undefined\n : get(_formValues, name, getFieldValue(field._f)),\n )\n : updateValidAndValue(name, true, options.value);\n\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.shouldUseNativeValidation\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [...refs.filter(live), fieldRef],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _stateFlags.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let hasNoPromiseError = true;\n let fieldValues: any = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n try {\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors as FieldErrors;\n fieldValues = values;\n } else {\n await executeBuildInValidation(_fields);\n }\n\n if (\n isEmptyObject(_formState.errors) &&\n Object.keys(_formState.errors).every((name) => get(fieldValues, name))\n ) {\n _subjects.state.next({\n errors: {} as FieldErrors,\n isSubmitting: true,\n });\n await onValid(fieldValues, e);\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n\n _options.shouldFocusError &&\n focusFieldBy(\n _fields,\n (key) => get(_formState.errors, key),\n _names.mount,\n );\n }\n } catch (err) {\n hasNoPromiseError = false;\n throw err;\n } finally {\n _formState.isSubmitted = true;\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful:\n isEmptyObject(_formState.errors) && hasNoPromiseError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n }\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n } else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, options.defaultValue);\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, get(_defaultValues, name))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues || _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values =\n formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n try {\n isHTMLElement(fieldReference) &&\n fieldReference.closest('form')!.reset();\n break;\n } catch {}\n }\n }\n }\n\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneUpdatedValues;\n\n _fields = {};\n\n _subjects.array.next({\n values,\n });\n\n _subjects.watch.next({\n values,\n });\n }\n\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n _stateFlags.mount =\n !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n\n _stateFlags.watch = !!props.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: keepStateOptions.keepDirty\n ? _formState.isDirty\n : keepStateOptions.keepDefaultValues\n ? !deepEqual(formValues, _defaultValues)\n : false,\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : ((keepStateOptions.keepDefaultValues && formValues\n ? Object.entries(formValues).reduce(\n (previous, [key, value]) => ({\n ...previous,\n [key]: value !== get(_defaultValues, key),\n }),\n {},\n )\n : {}) as FieldNamesMarkedBoolean),\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : ({} as FieldNamesMarkedBoolean),\n errors: keepStateOptions.keepErrors\n ? _formState.errors\n : ({} as FieldErrors),\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name)._f;\n const fieldRef = field.refs ? field.refs[0] : field.ref;\n options.shouldSelect ? fieldRef.select() : fieldRef.focus();\n };\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _getFieldArray,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _stateFlags() {\n return _stateFlags;\n },\n set _stateFlags(value) {\n _stateFlags = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport {\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldValues,\n FormState,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to mange the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/api/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >();\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n dirtyFields: {} as FieldNamesMarkedBoolean,\n isSubmitted: false,\n submitCount: 0,\n touchedFields: {} as FieldNamesMarkedBoolean,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n errors: {} as FieldErrors,\n });\n\n if (_formControl.current) {\n _formControl.current.control._options = props;\n } else {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n\n const callback = React.useCallback(\n (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, true)) {\n control._formState = {\n ...control._formState,\n ...value,\n };\n\n updateFormState({ ...control._formState });\n }\n },\n [control],\n );\n\n useSubscribe({\n subject: control._subjects.state,\n callback,\n });\n\n React.useEffect(() => {\n if (!control._stateFlags.mount) {\n control._proxyFormState.isValid && control._updateValid();\n control._stateFlags.mount = true;\n }\n if (control._stateFlags.watch) {\n control._stateFlags.watch = false;\n control._subjects.state.next({});\n }\n control._removeUnmounted();\n });\n\n _formControl.current.formState = getProxyFormState(\n formState,\n control._proxyFormState,\n );\n\n return _formControl.current;\n}\n","var _style, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSlackMark(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 270 270\",\n style: {\n enableBackground: \"new 0 0 270 270\"\n },\n xmlSpace: \"preserve\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#E01E5A;}\\n\\t.st1{fill:#36C5F0;}\\n\\t.st2{fill:#2EB67D;}\\n\\t.st3{fill:#ECB22E;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M99.4,151.2c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h12.9V151.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M105.9,151.2c0-7.1,5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v32.3c0,7.1-5.8,12.9-12.9,12.9 s-12.9-5.8-12.9-12.9V151.2z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M118.8,99.4c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v12.9H118.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M118.8,105.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9H86.5c-7.1,0-12.9-5.8-12.9-12.9 s5.8-12.9,12.9-12.9H118.8z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M170.6,118.8c0-7.1,5.8-12.9,12.9-12.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9h-12.9V118.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M164.1,118.8c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9V86.5c0-7.1,5.8-12.9,12.9-12.9 c7.1,0,12.9,5.8,12.9,12.9V118.8z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M151.2,170.6c7.1,0,12.9,5.8,12.9,12.9c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9v-12.9H151.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st3\",\n d: \"M151.2,164.1c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h32.3c7.1,0,12.9,5.8,12.9,12.9 c0,7.1-5.8,12.9-12.9,12.9H151.2z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSlackMark);\nexport default __webpack_public_path__ + \"static/media/Slack_Mark.cc1036641851d0229eb6cc4945620e27.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSlackMarkBlack(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 270 270\",\n style: {\n enableBackground: \"new 0 0 270 270\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.4,151.2c0,7.1-5.8,12.9-12.9,12.9s-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h12.9V151.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.9,151.2c0-7.1,5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v32.3c0,7.1-5.8,12.9-12.9,12.9s-12.9-5.8-12.9-12.9 C105.9,183.5,105.9,151.2,105.9,151.2z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M118.8,99.4c-7.1,0-12.9-5.8-12.9-12.9s5.8-12.9,12.9-12.9s12.9,5.8,12.9,12.9v12.9H118.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M118.8,105.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9H86.5c-7.1,0-12.9-5.8-12.9-12.9s5.8-12.9,12.9-12.9 C86.5,105.9,118.8,105.9,118.8,105.9z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.6,118.8c0-7.1,5.8-12.9,12.9-12.9c7.1,0,12.9,5.8,12.9,12.9s-5.8,12.9-12.9,12.9h-12.9V118.8z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.1,118.8c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9V86.5c0-7.1,5.8-12.9,12.9-12.9 c7.1,0,12.9,5.8,12.9,12.9V118.8z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.2,170.6c7.1,0,12.9,5.8,12.9,12.9c0,7.1-5.8,12.9-12.9,12.9c-7.1,0-12.9-5.8-12.9-12.9v-12.9H151.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.2,164.1c-7.1,0-12.9-5.8-12.9-12.9c0-7.1,5.8-12.9,12.9-12.9h32.3c7.1,0,12.9,5.8,12.9,12.9 c0,7.1-5.8,12.9-12.9,12.9H151.2z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSlackMarkBlack);\nexport default __webpack_public_path__ + \"static/media/Slack_Mark_Black.035ae32a74f296091e6d560bbd293792.svg\";\nexport { ForwardRef as ReactComponent };","import { SvgIcon } from '@mui/material';\nimport { ReactComponent as SlackLogo } from '../../Assets/Images/Slack_Mark.svg';\nimport { ReactComponent as SlackLogoBlack } from '../../Assets/Images/Slack_Mark_Black.svg';\n\n\nfunction SlackIcon(props) {\n return (\n \n \n \n );\n}\n\nfunction SlackIconBlack(props) {\n return (\n \n \n \n );\n}\n\nexport {SlackIcon, SlackIconBlack};","import React, { useContext, useState } from 'react';\nimport { useForm, Controller } from \"react-hook-form\";\nimport { TextField, InputAdornment, Tooltip, Box, Button, useMediaQuery, useTheme, Typography, Checkbox, IconButton, Grid } from \"@mui/material\";\nimport HelpIcon from '@mui/icons-material/Help';\nimport { Link } from 'react-router-dom';\nimport { MainContext, useFetchCloud } from 'kerberus-components';\nimport { useSWRConfig } from 'swr';\nimport ConfirmationDialog from '../ConfirmationDialog';\nimport LanguageIcon from '@mui/icons-material/Language';\nimport { SlackIcon } from '../../Components/Icons/Slack';\n\nconst toastError = {\n open: true,\n type: \"error\",\n title: \"Error\",\n message: `Something went wrong!`,\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nconst toastInfo = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"Group settings saved!\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\n\nexport default function CompanyLinks() {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const [socialLinkDialog, setSocialLinkDialog] = useState();\n const [isDisabled, setIsDisabled,] = useState(true);\n const { setOpen, user } = useContext(MainContext);\n const { fetchCloud } = useFetchCloud();\n const { mutate } = useSWRConfig();\n const { handleSubmit, control, formState: { errors, isDirty }, register } = useForm({\n defaultValues: {\n company_page: user.user_company?.links?.company_page,\n slack: user.user_company?.links?.slack,\n },\n mode: \"onChange\"\n });\n const isEdited = isDirty\n const onSubmit = data => handleSocialLinksSave(data);\n\n const handleSocialLinksSave = async (e) => {\n try {\n await fetchCloud(`users/company/${user.user_company.id}/`, 'PATCH', {\n links: e\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastInfo);\n }\n catch (err) {\n setOpen(toastError);\n }\n };\n\n const contentSocialLinks = (\n \n You are about to add your personal data to the system.\n
\n Some of the information you provide may be subject to GDPR legislation.\n
\n Therefore the system has all the necessary settings to control the visibility of this information to other users.\n
\n
\n Please ensure that you understand that you are personally responsible for the accuracy of the provided information you share and its visibility and use.\n
\n \n I understand\n setIsDisabled(isDisabled => !isDisabled)} />\n \n
\n {!isSmall &&
}\n
\n If you would like further information on this matter you can review our\n \n Terms & Conditions\n \n {\" again.\"}\n
\n
\n );\n\n return (\n
\n\n \n\n \n\n \n\n \n {!isSmall &&\n \n \n \n }\n \n \n \n \n \n \n \n )\n }}\n\n\n />\n \n \n }\n />\n\n \n\n \n\n \n {!isSmall &&\n \n }\n \n \n \n \n \n \n \n \n \n )\n }}\n\n\n />\n \n \n }\n />\n \n \n \n \n\n \n \n\n );\n\n}","import AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport { Avatar, Box, Button, Dialog, DialogContent, DialogTitle, Divider, Grid, IconButton, InputAdornment, TextField, Tooltip, Typography, useMediaQuery, useTheme } from \"@mui/material\";\nimport { MainContext, SmallAvatarWrapper, useFetchCloud } from 'kerberus-components';\nimport * as React from 'react';\nimport { useCallback, useContext, useState } from \"react\";\nimport { useDropzone } from 'react-dropzone';\nimport { useNavigate } from \"react-router-dom\";\nimport CompanyLinks from '../../Components/Company/CompanyLinks';\nimport LayoutPaper from \"../../Components/LayoutPaper\";\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\nimport DashboardIcon from '@mui/icons-material/Dashboard';\nimport ConfirmationDialog from '../../Components/ConfirmationDialog';\n\nconst copyToast = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"Dashboard URL copied to clipboard successfully\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nexport default function CompanySettings() {\n const { user } = useContext(MainContext);\n const navigate = useNavigate();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n\n const imgSrc = `${process.env.REACT_APP_IMAGE_SERVE_HOST}/companypic/${user.user_company.id}_128.webp`;\n const [uploadDialogOpen, setUploadDialogOpen] = useState(false);\n const [uploadDisabled, setUploadDisabled] = useState(false);\n const [loading, setLoading] = useState('');\n const [file, setFile] = useState(null);\n const [image, setImage] = useState();\n const [urlDialog, setUrlDialog] = useState(false);\n const [dashboard] = useState(\"company\");\n const [selectedGroup] = useState();\n const [setUrlGroup] = useState('');\n const [url, setUrl] = useState('');\n const [dialogShown, setDialogShown] = useState(false);\n\n const { setOpen: setOpenToast } = useContext(MainContext);\n\n const handleLayoutUrl = async (e) => {\n const res = await fetchCloud(`users/generate_dashboard`, 'post', {\n dashboard_type: dashboard,\n social_group: selectedGroup?.id\n });\n if (dashboard === \"company\") {\n const resGroup = await fetchCloud(`users/generate_dashboard`, 'post', {\n dashboard_type: \"group\",\n });\n setUrlGroup(resGroup.data);\n\n }\n setUrl(res.data);\n };\n\n const { fetchCloud } = useFetchCloud();\n\n const onDrop = useCallback(async acceptedFiles => {\n setUploadDisabled(true);\n const imageUrl = URL.createObjectURL(acceptedFiles[0]);\n setImage(imageUrl);\n setFile(acceptedFiles[0]);\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop, multiple: false, disabled: uploadDisabled });\n\n const handleUpload = async () => {\n try {\n setLoading('Loading...');\n await fetchCloud('upload/company', 'post', {\n file: file,\n }, true, true);\n window.location.reload();\n }\n catch (err) {\n setLoading('Failed upload');\n console.error(err);\n }\n };\n\n const copyToClipboard = async () => {\n await navigator.clipboard.writeText(url);\n setOpenToast(copyToast);\n };\n\n const handleGetUrl = () => {\n if(!dialogShown) {\n setUrlDialog(true);\n /* setDialogShown(true); */\n } else {\n handleLayoutUrl()\n }\n }\n return (\n \n \n \n\n \n \n \n {user.user_company.name}\n \n \n\n\n \n \n navigate(-1)} >\n \n \n \n \n\n \n\n {(user.perm_level === \"admin\" || user.perm_level === \"superuser\") &&\n <>\n {isSmall\n ?\n \n \n \n :\n \n }\n\n \n\n \n \n Company settings\n {!isSmall &&\n \n \n \n }\n \n \n\n \n {isSmall\n ?\n \n setUploadDialogOpen(true)} alt={user.user_company.name} src={imgSrc} sx={{ height: 100, width: 100, my: 1 }} />\n \n Press to change company picture\n \n \n :\n \n }\n\n {!isSmall &&\n <>\n \n \n }\n\n \n\n \n\n \n Company Website & Slack\n \n \n\n \n \n Company Dashboard link\n \n \n \n {!isSmall &&\n \n }\n \n \n \n \n \n \n \n \n )\n }}\n />\n \n \n \n \n }\n\n \n\n \n\n setUploadDialogOpen(false)}\n >\n \n \n Upload Group Picture\n \n \n \n {!file &&\n
\n \n {\n uploadDisabled ?

File selected

:\n isDragActive ?\n

Drop the files here ...

:\n

{isSmall ? 'Press to select file' : 'Drag and drop some files here, or click to select files'}

\n }\n
}\n {file && \n \n {file.name}\n \n \n \n\n \n }\n
\n {image && }\n
\n
\n \n {loading}\n
\n
\n \n\n {handleLayoutUrl(); setDialogShown(true)}}\n name=\"dashboard URL\"\n open={urlDialog}\n setOpen={setUrlDialog}\n content={
\n By fetching this url and sharing this dashboard you have agreed and are aware that you will be sharing group information, images and location data to where the dashboard will be displayed.\n

\n Note that your responsibility is to make sure that there is no third-party access to the URL in order to prevent unauthorized copy and use.\n
}\n />\n\n
\n );\n}","import { useContext } from 'react';\nimport { MainContext } from 'kerberus-components';\nimport moment from 'moment';\n\nexport default function GetOnlineData(user) {\n const { bulkData } = useContext(MainContext);\n const onlineData = bulkData.company\n\n const userObj = onlineData?.find(i => i.user_id === user.id);\n const busy = userObj?.status === 'busy';\n const now = moment();\n const lastSeen = userObj?.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n\n return { lastseenminutes: lastseenminutes, busy: busy, timestamp: userObj?.timestamp, layer_name: userObj?.layer_name }\n}\n","import { useContext } from 'react';\nimport { MainContext } from 'kerberus-components';\n\nexport default function GetUserData() {\n const { user } = useContext(MainContext);\n\n return user\n}\n","import { StyledBadgeAvatar } from 'kerberus-components';\nimport SocialIcons from '../SocialIcons';\nimport ProfileMenu from '../Profile/ProfileMenu';\nimport moment from 'moment';\nimport GetOnlineData from '../GetOnlineData';\nimport GetUserData from '../GetUserData';\n\nconst DatagridColumns = [\n {\n field: 'id', headerName: '', flex: 0.1, align: \"center\", renderCell: (e) => (\n = 5\n ?\n \"#FCC041\"\n :\n GetOnlineData(e.row).lastseenminutes > -5 && GetOnlineData(e.row).lastseenminutes < 5\n ?\n \"#8DBF30\"\n :\n '#adadb8'\n :\n '#adadb8'\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={e.row.id}\n lastseenminutes={GetOnlineData(e.row).lastseenminutes}\n busy={GetOnlineData(e.row).busy}\n imageSize=\"_32\"\n />\n )\n },\n {\n field: 'first_name', headerName: 'Name', flex: 0.65, renderCell: (e) => (\n
\n {e.row.first_name || e.row.last_name ? e.row.first_name + \" \" + e.row.last_name : e.row.username}\n
\n )\n },\n {\n field: 'links', headerName: 'Social Links', flex: 1, renderCell: (e) => (\n \n )\n },\n {\n field: '', headerName: 'Last seen', flex: 1, renderCell: (e) =>\n
\n {\n GetOnlineData(e.row).timestamp\n ?\n GetOnlineData(e.row).lastseenminutes <= 10 && GetOnlineData(e.row).lastseenminutes >= 5\n ?\n moment(GetOnlineData(e.row).timestamp).from(moment().add(30, 'seconds'))\n :\n GetOnlineData(e.row).lastseenminutes >= 10\n ?\n moment(GetOnlineData(e.row).timestamp).from(moment().add(30, 'seconds'))\n :\n GetOnlineData(e.row).layer_name\n ?\n GetOnlineData(e.row).layer_name\n :\n moment(GetOnlineData(e.row).timestamp).from(moment().add(30, 'seconds'))\n :\n 'Long time ago'\n }\n
\n },\n {\n field: 'Menu', headerName: '', flex: 0.2, renderCell: (e) => (\n \n )\n },\n];\n\nexport default DatagridColumns;","import React from 'react';\nimport { Typography, Box } from '@mui/material';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nconst DatagridColumnsMobile = [\n {\n field: 'username', flex: 1, headerName: 'Users',\n renderCell: (e) =>\n \n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n\n >\n \n \n {e.row.first_name && e.row.last_name ? `${e.row.first_name} ${e.row.last_name}` : e.row.username}\n \n \n \n\n \n {e.row.first_name &&\n <>\n \n First name\n \n \n {e.row.first_name}\n \n \n }\n\n {e.row.last_name &&\n <>\n \n Last Name\n \n \n {e.row.last_name}\n \n \n }\n \n Title\n \n \n {e.row.title}\n \n \n Company\n \n \n {e.row.company_name}\n \n\n \n \n \n },\n]\n\nexport default DatagridColumnsMobile;","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n\n for (var i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","import _debounce from \"lodash/debounce\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport classNames from 'classnames';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect } from 'react';\nimport ReactResizeDetector from 'react-resize-detector/build/withPolyfill';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n minWidth = _ref.minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className;\n\n var _useState = useState({\n containerWidth: -1,\n containerHeight: -1\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n\n var containerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return containerRef;\n }, [containerRef]);\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n mounted = _useState4[0],\n setMounted = _useState4[1];\n\n var getContainerSize = function getContainerSize() {\n if (!containerRef.current) {\n return null;\n }\n\n return {\n containerWidth: containerRef.current.clientWidth,\n containerHeight: containerRef.current.clientHeight\n };\n };\n\n var updateDimensionsImmediate = function updateDimensionsImmediate() {\n if (!mounted) {\n return;\n }\n\n var newSize = getContainerSize();\n\n if (newSize) {\n var oldWidth = sizes.containerWidth,\n oldHeight = sizes.containerHeight;\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n setSizes({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n });\n }\n }\n };\n\n var handleResize = debounce > 0 ? _debounce(updateDimensionsImmediate, debounce) : updateDimensionsImmediate;\n\n var renderChart = function renderChart() {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n\n\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return /*#__PURE__*/cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n };\n\n useEffect(function () {\n if (mounted) {\n var size = getContainerSize();\n\n if (size) {\n setSizes(size);\n }\n }\n }, [mounted]);\n useEffect(function () {\n setMounted(true);\n }, []);\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return /*#__PURE__*/React.createElement(ReactResizeDetector, {\n handleWidth: true,\n handleHeight: true,\n onResize: handleResize,\n targetRef: containerRef\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, id != null ? {\n id: \"\".concat(id)\n } : {}, {\n className: classNames('recharts-responsive-container', className),\n style: style,\n ref: containerRef\n }), renderChart()));\n});","import _isObject from \"lodash/isObject\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { isValidElement } from 'react';\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nvar SVGElementPropKeys = ['className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style', 'target', 'type', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', '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', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', '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', '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', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\nexport var filterProps = function filterProps(props, includeEvents, isSvg) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n // viewBox only exist in \n if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, true), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), children);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true)), children);\n}","import raf from 'raf';\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n raf(shouldUpdate);\n }\n };\n\n raf(shouldUpdate);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n {\n var easing = args[0].split('(');\n\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', instead received %s', args);\n }\n }\n }\n }\n\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n\n warn(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport raf, { cancel as caf } from 'raf';\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = raf(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n\n if (t < 1) {\n cafId = raf(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n raf(update); // return stop animation method\n\n return function () {\n caf(cafId);\n };\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n\n var _super = _createSuper(Animate);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, this.props.to) : this.props.to\n };\n\n if (this.state && this.state.style) {\n if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n return;\n }\n\n if (deepEqual(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;\n\n if (this.state && this.state.style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n\n if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(PureComponent);\n\nAnimate.displayName = 'Animate';\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nexport default Animate;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nif (Number.isFinite === undefined) {\n Number.isFinite = function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n}\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (Number.isFinite(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n var _super = _createSuper(AnimateGroupChild);\n\n function AnimateGroupChild() {\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\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 isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\nexport var DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n var _super = _createSuper(DefaultTooltipContent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter,\n payload = _this$props2.payload;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = !_isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) {\n finalLabel = labelFormatter(label, payload);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\n\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { Global } from '../util/Global';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\n\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip() {\n var _this;\n\n _classCallCheck(this, Tooltip);\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 boxWidth: -1,\n boxHeight: -1\n };\n _this.wrapperNode = void 0;\n\n _this.getTranslate = function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var restricted = coordinate[key] - tooltipDimension - offset;\n var unrestricted = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return unrestricted;\n }\n\n var tooltipBoundary = coordinate[key] + tooltipDimension + offset;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(restricted, viewBox[key]);\n }\n\n return Math.max(unrestricted, viewBox[key]);\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n payloadUniqBy = _this$props2.payloadUniqBy;\n var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n })), outerStyle);\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\n\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n\n return Tooltip;\n}(PureComponent);\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n trigger: 'hover',\n isAnimationActive: !Global.isSsr,\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _upperFirst from \"lodash/upperFirst\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nexport var Symbols = /*#__PURE__*/function (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n var _super = _createSuper(Symbols);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\n\nSymbols.registerSymbol = function (key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n};","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function(type, size) {\n var context = null;\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n\n var _super = _createSuper(DefaultLegendContent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(PureComponent);\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\n\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, [\"ref\"]);\n\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\n\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n var _super = _createSuper(Legend);\n\n function Legend() {\n var _this;\n\n _classCallCheck(this, Legend);\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.wrapperNode = void 0;\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n\n return null;\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box = this.getBBoxSnapshot() || {\n width: 0\n };\n\n hPos = {\n left: ((chartWidth || 0) - _box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box2 = this.getBBoxSnapshot() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box2.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: _box3.width,\n boxHeight: _box3.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(_box3);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payloadUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\nLegend.displayName = 'Legend';\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n};","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(_upperFirst(type));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nexport var Curve = /*#__PURE__*/function (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n var _super = _createSuper(Curve);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cross\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var Cross = /*#__PURE__*/function (_PureComponent) {\n _inherits(Cross, _PureComponent);\n\n var _super = _createSuper(Cross);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-cross', className),\n d: Cross.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n }\n }]);\n\n return Cross;\n}(PureComponent);\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n};","import _isNil from \"lodash/isNil\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Sector\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\n\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\n\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide\n\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n\n return path;\n};\n\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n\n return path;\n};\n\nexport var Sector = /*#__PURE__*/function (_PureComponent) {\n _inherits(Sector, _PureComponent);\n\n var _super = _createSuper(Sector);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(PureComponent);\nSector.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nexport var Dot = /*#__PURE__*/function (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n var _super = _createSuper(Dot);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/types';\n\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n\n return false;\n};\nexport var Rectangle = /*#__PURE__*/function (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n var _super = _createSuper(Rectangle);\n\n function Rectangle() {\n var _this;\n\n _classCallCheck(this, Rectangle);\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 totalLength: -1\n };\n _this.node = void 0;\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(_this2.props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\nRectangle.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","import _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n}; // `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\n\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n var count = Children.count(nextChildren);\n\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/types';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = [];\n\n if (!_isNil(props.children)) {\n if (props.breakAll) {\n words = props.children.toString().split('');\n } else {\n words = props.children.toString().split(BREAKING_SPACES);\n }\n }\n\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = props.breakAll ? 0 : getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar calculateWordsByLines = function calculateWordsByLines(props, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var shouldLimitLines = isNumber(props.maxLines);\n var text = props.children;\n\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n };\n\n var originalResult = calculate(initialWordsWithComputedWith);\n\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n\n if (!shouldLimitLines) {\n return originalResult;\n }\n\n var suffix = '…';\n\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths(_objectSpread(_objectSpread({}, props), {}, {\n children: tempText + suffix\n })).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > props.maxLines || findLongestLine(result).width > lineWidth;\n return [doesOverflow, result];\n };\n\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n\n iterations++;\n } // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n\n\n return trimmedResult || originalResult;\n};\n\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\n\nvar getWordsByLines = function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(props.children);\n }\n\n return calculateWordsByLines(props, wordsWithComputedWidth, spaceWidth, props.width, props.scaleToFit);\n }\n }\n\n return getWordsWithoutCalculate(props.children);\n};\n\nexport var Text = /*#__PURE__*/function (_Component) {\n _inherits(Text, _Component);\n\n var _super = _createSuper(Text);\n\n function Text() {\n var _this;\n\n _classCallCheck(this, Text);\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 return _this;\n }\n\n _createClass(Text, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n breakAll = _this$props.breakAll,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\", \"breakAll\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = this.props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(breakAll ? '' : ' '))\n );\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.width !== prevState.prevWidth || nextProps.scaleToFit !== prevState.prevScaleToFit || nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll) {\n var needCalculate = nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll;\n return {\n prevWidth: nextProps.width,\n prevScaleToFit: nextProps.scaleToFit,\n prevChildren: nextProps.children,\n prevStyle: nextProps.style,\n wordsByLines: getWordsByLines(nextProps, needCalculate)\n };\n }\n\n return null;\n }\n }]);\n\n return Text;\n}(Component);\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior\n\n};","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { filterProps } from '../util/types';\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height; // Define vertical offsets and position inverts based on the value being positive or negative\n\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end'; // Define horizontal offsets and position inverts based on the value being positive or negative\n\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nexport function Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nLabel.defaultProps = {\n offset: 5\n};\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n\n if (labelViewBox) {\n return labelViewBox;\n }\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _get from \"lodash/get\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Global } from '../util/Global';\nimport { isNumber, mathSign } from '../util/DataUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n\n var _super = _createSuper(CartesianAxis);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld);\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: classNames('recharts-cartesian-axis-line', _get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks) {\n var _this = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: classNames('recharts-cartesian-axis-tick-line', _get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: // todo Array\n function getTicks(props) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || Global.isSsr) {\n return CartesianAxis.getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;\n var tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport { Legend } from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils'; // TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { filterProps } from './types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData; // 支持Date类型的x轴\n\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend.displayName);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, 'ErrorBar').filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return _isNil(direction) || _isNil(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n\n\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\n\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n\n if (!domain.length) {\n return null;\n }\n\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (_isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/types';\n\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n\n if (!data || !data.length) {\n return {};\n }\n\n var len = data.length;\n var scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\n\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\n\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n\n var _super = _createSuper(Brush);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _super.call(this, props);\n _this.leaveTimer = void 0;\n _this.travellerDragStartHandlers = void 0;\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n\n _this.detachDragEndListener();\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n\n _this.attachDragEndListener();\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props = this.props,\n gap = _this$props.gap,\n data = _this$props.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props2 = this.props,\n data = _this$props2.data,\n tickFormatter = _this$props2.tickFormatter,\n dataKey = _this$props2.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props3 = this.props,\n x = _this$props3.x,\n width = _this$props3.width,\n travellerWidth = _this$props3.travellerWidth,\n startIndex = _this$props3.startIndex,\n endIndex = _this$props3.endIndex,\n onChange = _this$props3.onChange;\n var delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n onChange = _this$props4.onChange,\n gap = _this$props4.gap,\n data = _this$props4.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n\n return false;\n };\n\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n fill = _this$props5.fill,\n stroke = _this$props5.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n data = _this$props6.data,\n children = _this$props6.children,\n padding = _this$props6.padding;\n var chartElement = Children.only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this$props7 = this.props,\n y = _this$props7.y,\n travellerWidth = _this$props7.travellerWidth,\n height = _this$props7.height,\n traveller = _this$props7.traveller;\n var x = Math.max(travellerX, this.props.x);\n\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n height = _this$props8.height,\n stroke = _this$props8.stroke,\n travellerWidth = _this$props8.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props9 = this.props,\n startIndex = _this$props9.startIndex,\n endIndex = _this$props9.endIndex,\n y = _this$props9.y,\n height = _this$props9.height,\n travellerWidth = _this$props9.travellerWidth,\n stroke = _this$props9.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n className = _this$props10.className,\n children = _this$props10.children,\n x = _this$props10.x,\n y = _this$props10.y,\n width = _this$props10.width,\n height = _this$props10.height,\n alwaysShowText = _this$props10.alwaysShowText;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseMove: this.handleDrag,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(PureComponent);\nBrush.displayName = 'Brush';\nBrush.defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n};","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, 'Bar');\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = void 0;\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n};\n\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = getCoordinate(props);\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\n\nReferenceDot.renderDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n};","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n}; // TODO: ScaleHelper\n\n\nvar getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {\n var _props$viewBox = props.viewBox,\n x = _props$viewBox.x,\n y = _props$viewBox.y,\n width = _props$viewBox.width,\n height = _props$viewBox.height,\n position = props.position;\n\n if (isFixedY) {\n var yCoord = props.y,\n orientation = props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n\n if (isSegment) {\n var segment = props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n\n if (ifOverflowMatches(props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n};\n\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, props);\n\n if (!endPoints) {\n return null;\n }\n\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/types';\n\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n};\n\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n\n if (!rect && !shape) {\n return null;\n }\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\n\nReferenceArea.renderRect = function (option, props) {\n var rect;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n};","import { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine.displayName);\n var dots = findAllByType(children, ReferenceDot.displayName);\n var elements = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea.displayName);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents'; // eslint-disable-next-line no-redeclare","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _isFunction from \"lodash/isFunction\";\nimport _throttle from \"lodash/throttle\";\nimport _sortBy from \"lodash/sortBy\";\nimport _get from \"lodash/get\";\nimport _range from \"lodash/range\";\nimport _isNil from \"lodash/isNil\";\nimport _isBoolean from \"lodash/isBoolean\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { Sector } from '../shape/Sector';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle, Rectangle } from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType } from '../util/ReactUtils';\nimport { CartesianAxis } from '../cartesian/CartesianAxis';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, isCategoricalAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis, getTooltipItem } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { filterProps, adaptEventHandlers } from '../util/types';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n}; // use legacy isFinite only if there is a problem (aka IE)\n// eslint-disable-next-line no-restricted-globals\n\nvar isFinit = Number.isFinite ? Number.isFinite : isFinite;\nvar defer = // eslint-disable-next-line no-nested-ternary\ntypeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;\nvar deferClear = // eslint-disable-next-line no-nested-ternary\ntypeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;\n\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n};\n\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\n};\n\nvar getDisplayedData = function getDisplayedData(data, _ref, item) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n};\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var data = child.props.data;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\n\n\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n\n return null;\n};\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks;\n var axisId = child.props[axisIdKey];\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is catrgorical axis\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), type, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && child.props.domain) {\n var axisDomain = child.props.domain;\n var isDomainValidate = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n\n if (isDomainValidate) {\n domain = axisDomain;\n }\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1; // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorical) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: _get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorical: isCategorical,\n layout: layout // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n\n return axisMap;\n};\n\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n\n\nvar createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush.displayName);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = brushItem && brushItem.props && brushItem.props.endIndex || props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n};\n\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\n\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * graphicalItems The instances of item\n * xAxisMap The configuration of x-axis\n * yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox the boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\n\n\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush.displayName);\n var legendItem = findChildByType(children, Legend.displayName);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, _get(result, \"\".concat(orientation)) + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && prevLegendBBox) {\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n};\n\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class, _temp;\n\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread6;\n\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread6));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n\n // 如果是bar,计算bar的位置\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n\n var composedFn = item && item.type && item.type.getComposedData;\n\n if (composedFn) {\n var _objectSpread7;\n\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, (_objectSpread7 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, \"animationId\", updateId), _objectSpread7)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n\n\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n var _super = _createSuper(CategoricalChartWrapper);\n\n // todo join specific chart propTypes\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _super.call(this, _props);\n _this.uniqueChartId = void 0;\n _this.clipPathId = void 0;\n _this.legendInstance = void 0;\n _this.deferId = void 0;\n _this.container = void 0;\n\n _this.clearDeferId = function () {\n if (!_isNil(_this.deferId) && deferClear) {\n deferClear(_this.deferId);\n }\n\n _this.deferId = null;\n };\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var syncId = _this.props.syncId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n _this.clearDeferId();\n\n _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));\n }\n };\n\n _this.handleBrushChange = function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState);\n\n _this.triggerSyncEvent(_nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _this.handleItemMouseEnter = function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n };\n\n _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n\n _this.cancelThrottledTriggerAfterMouseMove();\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n var event = _get(_this.props, \"\".concat(eventName));\n\n if (eventName && _isFunction(event)) {\n var mouse;\n\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n\n var handler = event;\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState2);\n\n _this.triggerSyncEvent(_nextState2);\n\n if (_isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n\n onMouseDown(_nextState3, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n\n onMouseUp(_nextState4, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref10) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n };\n\n _this.horizontalCoordinatesGenerator = function (_ref11) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n };\n\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _this.renderCursor = function (element) {\n var _this$state2 = _this.state,\n isTooltipActive = _this$state2.isTooltipActive,\n activeCoordinate = _this$state2.activeCoordinate,\n activePayload = _this$state2.activePayload,\n offset = _this$state2.offset,\n activeTooltipIndex = _this$state2.activeTooltipIndex;\n\n var tooltipEventType = _this.getTooltipEventType();\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = _get(element, 'type.axisType');\n\n var axisMap = _get(_this.state, \"\".concat(axisType, \"Map\"));\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n };\n\n _this.renderXAxis = function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderYAxis = function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderGrid = function (element) {\n var _this$state3 = _this.state,\n xAxisMap = _this$state3.xAxisMap,\n yAxisMap = _this$state3.yAxisMap,\n offset = _this$state3.offset;\n var _this$props = _this.props,\n width = _this$props.width,\n height = _this$props.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, isFinit);\n });\n\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n };\n\n _this.renderPolarGrid = function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: _isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: _isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n };\n\n _this.renderLegend = function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this.legendInstance = legend;\n },\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n };\n\n _this.renderTooltip = function () {\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n };\n\n _this.renderBrush = function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId; // TODO: update brush when children update\n\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n };\n\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n };\n\n _this.renderActivePoints = function (_ref12) {\n var item = _ref12.item,\n activePoint = _ref12.activePoint,\n basePoint = _ref12.basePoint,\n childIndex = _ref12.childIndex,\n isRange = _ref12.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot)), adaptEventHandlers(activeDot));\n\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var tooltipEventType = _this.getTooltipEventType();\n\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n var itemEvents = {};\n\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onCLick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, null, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onMouseEnter)\n };\n }\n\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n };\n\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n _this.state = {};\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // add syncId\n if (_isNil(prevProps.syncId) && !_isNil(this.props.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!_isNil(prevProps.syncId) && _isNil(this.props.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDeferId();\n\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n\n this.cancelThrottledTriggerAfterMouseMove();\n }\n }, {\n key: \"cancelThrottledTriggerAfterMouseMove\",\n value: function cancelThrottledTriggerAfterMouseMove() {\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip.displayName);\n\n if (tooltipItem && _isBoolean(tooltipItem.props.shared)) {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n\n return defaultTooltipEventType;\n }\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n\n return null;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state10 = this.state,\n activeCoordinate = _this$state10.activeCoordinate,\n offset = _this$state10.offset,\n tooltipAxisBandSize = _this$state10.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state11 = this.state,\n activeCoordinate = _this$state11.activeCoordinate,\n offset = _this$state11.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n\n var _this$state12 = this.state,\n angleAxisMap = _this$state12.angleAxisMap,\n radiusAxisMap = _this$state12.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var tooltipEvents = {};\n\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"applySyncEvent\",\n value: function applySyncEvent(data) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n syncMethod = _this$props4.syncMethod;\n var updateId = this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, this.state)));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state13 = this.state,\n offset = _this$state13.offset,\n tooltipTicks = _this$state13.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(this.state, this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n this.setState(data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n value:\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap, _this$state$xAxisMap$;\n\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 ? void 0 : (_this$state$xAxisMap$ = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap$ === void 0 ? void 0 : _this$state$xAxisMap$.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap, _this$state$yAxisMap$;\n\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 ? void 0 : (_this$state$yAxisMap$ = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap$ === void 0 ? void 0 : _this$state$yAxisMap$.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n others = _objectWithoutProperties(_this$props6, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\n var attrs = filterProps(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component), _class.displayName = chartName, _class.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps), _class.getDerivedStateFromProps = function (nextProps, prevState) {\n var data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n\n if (_isNil(prevState.updateId)) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps); // Fixes https://github.com/recharts/recharts/issues/2143\n\n\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n // update configuration in chilren\n var hasGlobalData = !_isNil(data);\n var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId\n }), prevState)), {}, {\n prevChildren: children\n });\n }\n\n return null;\n }, _class.renderActiveDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }, _temp;\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/types';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var svgProps = filterProps(others);\n var errorBars = data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n\n if (!errorVal) {\n return null;\n }\n\n var lineCoordinates = [];\n var lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound); // the right line of |--|\n\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n }); // the middle line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n }); // the left line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n\n var _xMin = xMid - width;\n\n var _xMax = xMid + width;\n\n var _yMin = _scale(value - lowBound);\n\n var _yMax = _scale(value + highBound); // the top line\n\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n }); // the middle line\n\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n }); // the bottom line\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, svgProps), lineCoordinates.map(function (coordinates, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(index)\n }))\n );\n }))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","/**\n * @fileOverview Cross\n */\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { cloneElement } from 'react';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\nexport function LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n textBreakAll = props.textBreakAll,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n index: index,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\n\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(label) || _isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n}\n\nfunction renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n}\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n\n var _super = _createSuper(Bar);\n\n function Bar() {\n var _this;\n\n _classCallCheck(this, Bar);\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 isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-bar-');\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (onAnimationStart) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n\n var shape = this.props.shape;\n var baseProps = filterProps(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n index: i\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }), Bar.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n\n var _this$props = this.props,\n data = _this$props.data,\n layout = _this$props.layout,\n isAnimationActive = _this$props.isAnimationActive,\n animationBegin = _this$props.animationBegin,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n animationId = _this$props.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n\n var h = _interpolatorHeight(t);\n\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props2 = this.props,\n data = _this$props2.data,\n isAnimationActive = _this$props2.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n\n var data = this.props.data;\n var backgroundProps = filterProps(this.props.background);\n return data.map(function (entry, i) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n\n return Bar.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props3 = this.props,\n data = _this$props3.data,\n xAxis = _this$props3.xAxis,\n yAxis = _this$props3.yAxis,\n layout = _this$props3.layout,\n children = _this$props3.children;\n var errorBarItems = findAllByType(children, ErrorBar.displayName);\n\n if (!errorBarItems) {\n return null;\n }\n\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n // eslint-disable-line react/no-array-index-key\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n hide = _this$props4.hide,\n data = _this$props4.data,\n className = _this$props4.className,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n left = _this$props4.left,\n top = _this$props4.top,\n width = _this$props4.width,\n height = _this$props4.height,\n isAnimationActive = _this$props4.isAnimationActive,\n background = _this$props4.background,\n id = _this$props4.id;\n\n if (hide || !data || !data.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-bar', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n\n return null;\n }\n }, {\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = /*#__PURE__*/React.createElement(Rectangle, props);\n }\n\n return rectangle;\n }\n }]);\n\n return Bar;\n}(PureComponent);\nBar.displayName = 'Bar';\nBar.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n};\n\nBar.getComposedData = function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n\n if (!pos) {\n return null;\n }\n\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell.displayName);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n x = xAxis.scale(value[0]);\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n\n width += _delta;\n }\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n};","/**\n * @fileOverview X Axis\n */\n\n/** Define of XAxis props */\nexport var XAxis = function XAxis() {\n return null;\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","/**\n * @fileOverview Y Axis\n */\nexport var YAxis = function YAxis() {\n return null;\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Grid\n */\nimport React, { PureComponent } from 'react';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var CartesianGrid = /*#__PURE__*/function (_PureComponent) {\n _inherits(CartesianGrid, _PureComponent);\n\n var _super = _createSuper(CartesianGrid);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n value:\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n function renderHorizontal(horizontalPoints) {\n var _this = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this.props), {}, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(horizontal, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread(_objectSpread({}, _this2.props), {}, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n\n return CartesianGrid.renderLineItem(vertical, props);\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n var items = verticalPointsUpdated.map(function (entry, i) {\n var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\n\n var colorIndex = i % verticalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n x: Math.round(entry + x - x),\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n var items = horizontalPointsUpdated.map(function (entry, i) {\n var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\n\n var colorIndex = i % horizontalFill.length;\n return /*#__PURE__*/React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n y: Math.round(entry + y - y),\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n\n if (!fill || fill === 'none') {\n return null;\n }\n\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\n if ((!verticalPoints || !verticalPoints.length) && _isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n lineItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\n lineItem = /*#__PURE__*/React.createElement(\"line\", _extends({}, filterProps(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(PureComponent);\nCartesianGrid.displayName = 'CartesianGrid';\nCartesianGrid.defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isEqual from \"lodash/isEqual\";\nimport _isNaN from \"lodash/isNaN\";\nimport _max from \"lodash/max\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Area\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { Global } from '../util/Global';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nexport var Area = /*#__PURE__*/function (_PureComponent) {\n _inherits(Area, _PureComponent);\n\n var _super = _createSuper(Area);\n\n function Area() {\n var _this;\n\n _classCallCheck(this, Area);\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 isAnimationFinished: true\n };\n _this.id = uniqueId('recharts-area-');\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Area, [{\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n\n var _this$props = this.props,\n dot = _this$props.dot,\n points = _this$props.points,\n dataKey = _this$props.dataKey;\n var areaProps = filterProps(this.props);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, areaProps), customDotProps), {}, {\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n value: entry.value,\n payload: entry.payload\n });\n\n return Area.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props2 = this.props,\n baseLine = _this$props2.baseLine,\n points = _this$props2.points,\n strokeWidth = _this$props2.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n\n var maxY = _max(points.map(function (entry) {\n return entry.y || 0;\n }));\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxY = Math.max(_max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n\n if (isNumber(maxY)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: Math.floor(maxY + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1))\n });\n }\n\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n\n var maxX = _max(points.map(function (entry) {\n return entry.x || 0;\n }));\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxX = Math.max(_max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n\n if (isNumber(maxX)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1),\n height: Math.floor(height)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n type = _this$props4.type,\n stroke = _this$props4.stroke,\n connectNulls = _this$props4.connectNulls,\n isRange = _this$props4.isRange,\n ref = _this$props4.ref,\n others = _objectWithoutProperties(_this$props4, [\"layout\", \"type\", \"stroke\", \"connectNulls\", \"isRange\", \"ref\"]);\n\n return /*#__PURE__*/React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(others, true), {\n points: points,\n connectNulls: connectNulls,\n type: type,\n baseLine: baseLine,\n layout: layout,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n baseLine = _this$props5.baseLine,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine; // const clipPathId = _.isNil(id) ? this.id : id;\n\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length; // update animtaion\n\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n var stepBaseLine;\n\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n var interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (_isNil(baseLine) || _isNaN(baseLine)) {\n var _interpolator = interpolateNumber(prevBaseLine, 0);\n\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n }\n\n return _this2.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this2.renderClipRect(t))), /*#__PURE__*/React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this2.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points) || !_isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n top = _this$props7.top,\n left = _this$props7.left,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-area', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: Math.floor(height)\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine,\n prevPoints: prevState.curPoints,\n prevBaseLine: prevState.curBaseLine\n };\n }\n\n if (nextProps.points !== prevState.curPoints || nextProps.baseLine !== prevState.curBaseLine) {\n return {\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine\n };\n }\n\n return null;\n }\n }]);\n\n return Area;\n}(PureComponent);\nArea.displayName = 'Area';\nArea.defaultProps = {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\n\nArea.getBaseValue = function (props, xAxis, yAxis) {\n var layout = props.layout,\n baseValue = props.baseValue;\n\n if (isNumber(baseValue) && typeof baseValue === 'number') {\n return baseValue;\n }\n\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var max = Math.max(domain[0], domain[1]);\n var min = Math.min(domain[0], domain[1]);\n\n if (baseValue === 'dataMin') {\n return min;\n }\n\n if (baseValue === 'dataMax') {\n return max;\n }\n\n return max < 0 ? max : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n\n return domain[0];\n};\n\nArea.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n bandSize = _ref2.bandSize,\n dataKey = _ref2.dataKey,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = Area.getBaseValue(props, xAxis, yAxis);\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var originalValue = getValueByDataKey(entry, dataKey);\n var value;\n\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = originalValue;\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n\n var isBreakPoint = _isNil(value[1]) || hasStack && _isNil(originalValue);\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isBreakPoint ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: isBreakPoint ? null : xAxis.scale(value[1]),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n var baseLine;\n\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.x,\n y: !_isNil(_get(entry, 'value[0]')) && !_isNil(_get(entry, 'y')) ? yAxis.scale(_get(entry, 'value[0]')) : null\n };\n }\n\n return {\n x: !_isNil(_get(entry, 'value[0]')) ? xAxis.scale(_get(entry, 'value[0]')) : null,\n y: entry.y\n };\n });\n } else if (layout === 'horizontal') {\n baseLine = yAxis.scale(baseValue);\n } else {\n baseLine = xAxis.scale(baseValue);\n }\n\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n};\n\nArea.renderDotItem = function (option, props) {\n var dotItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: \"recharts-area-dot\"\n }));\n }\n\n return dotItem;\n};","/**\n * @fileOverview Area Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Area } from '../cartesian/Area';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var AreaChart = generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","import { Box } from \"@mui/material\";\n\n\nfunction Circle(props) {\n\n return (\n \n •\n \n )\n};\n\nfunction Square(props) {\n\n return (\n \n ▪\n \n )\n};\n\nexport { Circle, Square };","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport const getPickersLocalization = pickersTranslations => {\n return {\n components: {\n MuiLocalizationProvider: {\n defaultProps: {\n localeText: _extends({}, pickersTranslations)\n }\n }\n }\n };\n};","import { getPickersLocalization } from './utils/getPickersLocalization'; // This object is not Partial because it is the default values\n\nconst enUSPickers = {\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n openPreviousView: 'open previous view',\n openNextView: 'open next view',\n cancelButtonLabel: 'Cancel',\n clearButtonLabel: 'Clear',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Today',\n start: 'Start',\n end: 'End'\n};\nexport const DEFAULT_LOCALE = enUSPickers;\nexport const enUS = getPickersLocalization(enUSPickers);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useThemeProps } from '@mui/material/styles';\nimport { DEFAULT_LOCALE } from '../locales';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const MuiPickersAdapterContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n MuiPickersAdapterContext.displayName = 'MuiPickersAdapterContext';\n}\n\nlet warnedOnce = false;\n/**\n * @ignore - do not document.\n */\n\nexport function LocalizationProvider(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLocalizationProvider'\n });\n const {\n children,\n dateAdapter: Utils,\n dateFormats,\n dateLibInstance,\n locale,\n adapterLocale,\n localeText\n } = props;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce && locale !== undefined) {\n warnedOnce = true;\n console.warn(\"LocalizationProvider's prop `locale` is deprecated and replaced by `adapterLocale`\");\n }\n }\n\n const utils = React.useMemo(() => new Utils({\n locale: adapterLocale != null ? adapterLocale : locale,\n formats: dateFormats,\n instance: dateLibInstance\n }), [Utils, locale, adapterLocale, dateFormats, dateLibInstance]);\n const defaultDates = React.useMemo(() => {\n return {\n minDate: utils.date('1900-01-01T00:00:00.000'),\n maxDate: utils.date('2099-12-31T00:00:00.000')\n };\n }, [utils]);\n const contextValue = React.useMemo(() => {\n return {\n utils,\n defaultDates,\n localeText: _extends({}, DEFAULT_LOCALE, localeText != null ? localeText : {})\n };\n }, [defaultDates, utils, localeText]);\n return /*#__PURE__*/_jsx(MuiPickersAdapterContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? LocalizationProvider.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Locale for the date library you are using\n */\n adapterLocale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n children: PropTypes.node,\n\n /**\n * DateIO adapter class function\n */\n dateAdapter: PropTypes.func.isRequired,\n\n /**\n * Formats that are used for any child pickers\n */\n dateFormats: PropTypes.shape({\n dayOfMonth: PropTypes.string,\n fullDate: PropTypes.string,\n fullDateTime: PropTypes.string,\n fullDateTime12h: PropTypes.string,\n fullDateTime24h: PropTypes.string,\n fullDateWithWeekday: PropTypes.string,\n fullTime: PropTypes.string,\n fullTime12h: PropTypes.string,\n fullTime24h: PropTypes.string,\n hours12h: PropTypes.string,\n hours24h: PropTypes.string,\n keyboardDate: PropTypes.string,\n keyboardDateTime: PropTypes.string,\n keyboardDateTime12h: PropTypes.string,\n keyboardDateTime24h: PropTypes.string,\n minutes: PropTypes.string,\n month: PropTypes.string,\n monthAndDate: PropTypes.string,\n monthAndYear: PropTypes.string,\n monthShort: PropTypes.string,\n normalDate: PropTypes.string,\n normalDateWithWeekday: PropTypes.string,\n seconds: PropTypes.string,\n shortDate: PropTypes.string,\n weekday: PropTypes.string,\n weekdayShort: PropTypes.string,\n year: PropTypes.string\n }),\n\n /**\n * Date library instance you are using, if it has some global overrides\n * ```jsx\n * dateLibInstance={momentTimeZone}\n * ```\n */\n dateLibInstance: PropTypes.any,\n\n /**\n * Locale for the date library you are using\n * @deprecated Use `adapterLocale` instead\n */\n locale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n\n /**\n * Locale for components texts\n */\n localeText: PropTypes.object\n} : void 0;","import * as React from 'react';\nimport { MuiPickersAdapterContext } from '../../LocalizationProvider/LocalizationProvider';\n\nconst useLocalizationContext = () => {\n const localization = React.useContext(MuiPickersAdapterContext);\n\n if (localization === null) {\n throw new Error('MUI: Can not find utils in context. It looks like you forgot to wrap your component in LocalizationProvider, or pass dateAdapter prop directly.');\n }\n\n return localization;\n};\n\nexport const useUtils = () => useLocalizationContext().utils;\nexport const useDefaultDates = () => useLocalizationContext().defaultDates;\nexport const useLocaleText = () => useLocalizationContext().localeText;\nexport const useNow = () => {\n const utils = useUtils();\n const now = React.useRef(utils.date());\n return now.current;\n};","export const findClosestEnabledDate = ({\n date,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n shouldDisableDate,\n utils\n}) => {\n const today = utils.startOfDay(utils.date());\n\n if (disablePast && utils.isBefore(minDate, today)) {\n minDate = today;\n }\n\n if (disableFuture && utils.isAfter(maxDate, today)) {\n maxDate = today;\n }\n\n let forward = date;\n let backward = date;\n\n if (utils.isBefore(date, minDate)) {\n forward = utils.date(minDate);\n backward = null;\n }\n\n if (utils.isAfter(date, maxDate)) {\n if (backward) {\n backward = utils.date(maxDate);\n }\n\n forward = null;\n }\n\n while (forward || backward) {\n if (forward && utils.isAfter(forward, maxDate)) {\n forward = null;\n }\n\n if (backward && utils.isBefore(backward, minDate)) {\n backward = null;\n }\n\n if (forward) {\n if (!shouldDisableDate(forward)) {\n return forward;\n }\n\n forward = utils.addDays(forward, 1);\n }\n\n if (backward) {\n if (!shouldDisableDate(backward)) {\n return backward;\n }\n\n backward = utils.addDays(backward, -1);\n }\n }\n\n return today;\n};\nexport const parsePickerInputValue = (utils, value) => {\n const parsedValue = utils.date(value);\n return utils.isValid(parsedValue) ? parsedValue : null;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useThemeProps } from '@mui/material/styles';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { parsePickerInputValue } from '../internals/utils/date-utils';\nexport const isYearOnlyView = views => views.length === 1 && views[0] === 'year';\nexport const isYearAndMonthViews = views => views.length === 2 && views.indexOf('month') !== -1 && views.indexOf('year') !== -1;\n\nconst getFormatAndMaskByViews = (views, utils) => {\n if (isYearOnlyView(views)) {\n return {\n mask: '____',\n inputFormat: utils.formats.year\n };\n }\n\n if (isYearAndMonthViews(views)) {\n return {\n disableMaskedInput: true,\n inputFormat: utils.formats.monthAndYear\n };\n }\n\n return {\n mask: '__/__/____',\n inputFormat: utils.formats.keyboardDate\n };\n};\n\nexport function useDatePickerDefaultizedProps(props, name) {\n var _themeProps$views;\n\n const utils = useUtils();\n const defaultDates = useDefaultDates(); // This is technically unsound if the type parameters appear in optional props.\n // Optional props can be filled by `useThemeProps` with types that don't match the type parameters.\n\n const themeProps = useThemeProps({\n props,\n name\n });\n const views = (_themeProps$views = themeProps.views) != null ? _themeProps$views : ['year', 'day'];\n return _extends({\n openTo: 'day',\n minDate: defaultDates.minDate,\n maxDate: defaultDates.maxDate\n }, getFormatAndMaskByViews(views, utils), themeProps, {\n views\n });\n}\nexport const datePickerValueManager = {\n emptyValue: null,\n getTodayValue: utils => utils.date(),\n parseInput: parsePickerInputValue,\n areValuesEqual: (utils, a, b) => utils.isEqual(a, b)\n};","import { createSvgIcon } from '@mui/material/utils';\nimport * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ArrowDropDown = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');\n/**\n * @ignore - internal component.\n */\n\nexport const ArrowLeft = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'ArrowLeft');\n/**\n * @ignore - internal component.\n */\n\nexport const ArrowRight = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'ArrowRight');\n/**\n * @ignore - internal component.\n */\n\nexport const Calendar = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"\n}), 'Calendar');\n/**\n * @ignore - internal component.\n */\n\nexport const Clock = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Clock');\n/**\n * @ignore - internal component.\n */\n\nexport const DateRange = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z\"\n}), 'DateRange');\n/**\n * @ignore - internal component.\n */\n\nexport const Pen = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), 'Pen');\n/**\n * @ignore - internal component.\n */\n\nexport const Time = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Time');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport IconButton from '@mui/material/IconButton';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { Pen, Calendar, Clock } from './icons';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const pickersToolbarClasses = generateUtilityClasses('MuiPickersToolbar', ['root', 'content', 'penIconButton', 'penIconButtonLandscape']);\nconst PickersToolbarRoot = styled('div', {\n name: 'MuiPickersToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 3)\n}, ownerState.isLandscape && {\n height: 'auto',\n maxWidth: 160,\n padding: 16,\n justifyContent: 'flex-start',\n flexWrap: 'wrap'\n}));\nconst PickersToolbarContent = styled(Grid, {\n name: 'MuiPickersToolbar',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n flex: 1\n});\nconst PickersToolbarPenIconButton = styled(IconButton, {\n name: 'MuiPickersToolbar',\n slot: 'PenIconButton',\n overridesResolver: (props, styles) => styles.penIconButton\n})({});\n\nconst getViewTypeIcon = viewType => viewType === 'clock' ? /*#__PURE__*/_jsx(Clock, {\n color: \"inherit\"\n}) : /*#__PURE__*/_jsx(Calendar, {\n color: \"inherit\"\n});\n\nfunction defaultGetKeyboardInputSwitchingButtonText(isKeyboardInputOpen, viewType) {\n return isKeyboardInputOpen ? `text input view is open, go to ${viewType} view` : `${viewType} view is open, go to text input view`;\n}\n\nexport const PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersToolbar(props, ref) {\n const {\n children,\n className,\n getMobileKeyboardInputViewButtonText = defaultGetKeyboardInputSwitchingButtonText,\n isLandscape,\n isMobileKeyboardViewOpen,\n landscapeDirection = 'column',\n toggleMobileKeyboardView,\n toolbarTitle,\n viewType = 'calendar'\n } = props;\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersToolbarRoot, {\n ref: ref,\n className: clsx(pickersToolbarClasses.root, className),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n variant: \"overline\",\n children: toolbarTitle\n }), /*#__PURE__*/_jsxs(PickersToolbarContent, {\n container: true,\n justifyContent: \"space-between\",\n className: pickersToolbarClasses.content,\n ownerState: ownerState,\n direction: isLandscape ? landscapeDirection : 'row',\n alignItems: isLandscape ? 'flex-start' : 'flex-end',\n children: [children, /*#__PURE__*/_jsx(PickersToolbarPenIconButton, {\n onClick: toggleMobileKeyboardView,\n className: clsx(pickersToolbarClasses.penIconButton, isLandscape && pickersToolbarClasses.penIconButtonLandscape),\n ownerState: ownerState,\n color: \"inherit\",\n \"aria-label\": getMobileKeyboardInputViewButtonText(isMobileKeyboardViewOpen, viewType),\n children: isMobileKeyboardViewOpen ? getViewTypeIcon(viewType) : /*#__PURE__*/_jsx(Pen, {\n color: \"inherit\"\n })\n })]\n })]\n });\n});","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"parsedValue\", \"isLandscape\", \"isMobileKeyboardViewOpen\", \"onChange\", \"toggleMobileKeyboardView\", \"toolbarFormat\", \"toolbarPlaceholder\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { PickersToolbar, pickersToolbarClasses } from '../internals/components/PickersToolbar';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { isYearAndMonthViews, isYearOnlyView } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const datePickerToolbarClasses = generateUtilityClasses('MuiDatePickerToolbar', ['root', 'title']);\nconst DatePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiDatePickerToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n [`& .${pickersToolbarClasses.penIconButton}`]: {\n position: 'relative',\n top: 4\n }\n});\nconst DatePickerToolbarTitle = styled(Typography, {\n name: 'MuiDatePickerToolbar',\n slot: 'Title',\n overridesResolver: (props, styles) => styles.title\n})(({\n ownerState\n}) => _extends({}, ownerState.isLandscape && {\n margin: 'auto 16px auto auto'\n}));\n\n/**\n * @ignore - internal component.\n */\nexport const DatePickerToolbar = /*#__PURE__*/React.forwardRef(function DatePickerToolbar(props, ref) {\n const {\n parsedValue,\n isLandscape,\n isMobileKeyboardViewOpen,\n toggleMobileKeyboardView,\n toolbarFormat,\n toolbarPlaceholder = '––',\n toolbarTitle = 'Select date',\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const dateText = React.useMemo(() => {\n if (!parsedValue) {\n return toolbarPlaceholder;\n }\n\n if (toolbarFormat) {\n return utils.formatByString(parsedValue, toolbarFormat);\n }\n\n if (isYearOnlyView(views)) {\n return utils.format(parsedValue, 'year');\n }\n\n if (isYearAndMonthViews(views)) {\n return utils.format(parsedValue, 'month');\n } // Little localization hack (Google is doing the same for android native pickers):\n // For english localization it is convenient to include weekday into the date \"Mon, Jun 1\".\n // For other locales using strings like \"June 1\", without weekday.\n\n\n return /en/.test(utils.getCurrentLocaleCode()) ? utils.format(parsedValue, 'normalDateWithWeekday') : utils.format(parsedValue, 'normalDate');\n }, [parsedValue, toolbarFormat, toolbarPlaceholder, utils, views]);\n const ownerState = props;\n return /*#__PURE__*/_jsx(DatePickerToolbarRoot, _extends({\n ref: ref,\n toolbarTitle: toolbarTitle,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView,\n isLandscape: isLandscape,\n ownerState: ownerState,\n className: datePickerToolbarClasses.root\n }, other, {\n children: /*#__PURE__*/_jsx(DatePickerToolbarTitle, {\n variant: \"h4\",\n align: isLandscape ? 'left' : 'center',\n ownerState: ownerState,\n className: datePickerToolbarClasses.title,\n children: dateText\n })\n }));\n});","import * as React from 'react';\n\n/**\n * TODO consider getting rid from wrapper variant\n * @ignore - internal component.\n */\nexport const WrapperVariantContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nimport Button from '@mui/material/Button';\nimport DialogActions from '@mui/material/DialogActions';\nimport { useLocaleText } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const PickersActionBar = props => {\n const {\n onAccept,\n onClear,\n onCancel,\n onSetToday,\n actions\n } = props;\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const localeText = useLocaleText();\n const actionsArray = typeof actions === 'function' ? actions(wrapperVariant) : actions;\n\n if (actionsArray == null || actionsArray.length === 0) {\n return null;\n }\n\n const buttons = actionsArray == null ? void 0 : actionsArray.map(actionType => {\n switch (actionType) {\n case 'clear':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onClear,\n children: localeText.clearButtonLabel\n }, actionType);\n\n case 'cancel':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onCancel,\n children: localeText.cancelButtonLabel\n }, actionType);\n\n case 'accept':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onAccept,\n children: localeText.okButtonLabel\n }, actionType);\n\n case 'today':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onSetToday,\n children: localeText.todayButtonLabel\n }, actionType);\n\n default:\n return null;\n }\n });\n return /*#__PURE__*/_jsx(DialogActions, {\n children: buttons\n });\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"onClick\", \"onTouchStart\"];\nimport * as React from 'react';\nimport Grow from '@mui/material/Grow';\nimport Paper from '@mui/material/Paper';\nimport Popper from '@mui/material/Popper';\nimport TrapFocus from '@mui/material/Unstable_TrapFocus';\nimport { useForkRef, useEventCallback, ownerDocument } from '@mui/material/utils';\nimport { styled } from '@mui/material/styles';\nimport { PickersActionBar } from '../../PickersActionBar';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersPopperRoot = styled(Popper)(({\n theme\n}) => ({\n zIndex: theme.zIndex.modal\n}));\nconst PickersPopperPaper = styled(Paper)(({\n ownerState\n}) => _extends({\n transformOrigin: 'top center',\n outline: 0\n}, ownerState.placement === 'top' && {\n transformOrigin: 'bottom center'\n}));\n\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n\n/**\n * Based on @mui/material/ClickAwayListener without the customization.\n * We can probably strip away even more since children won't be portaled.\n * @param {boolean} active Only listen to clicks when the popper is opened.\n * @param {(event: MouseEvent | TouchEvent) => void} onClickAway The callback to call when clicking outside the popper.\n * @returns {Array} The ref and event handler to listen to the outside clicks.\n */\nfunction useClickAwayListener(active, onClickAway) {\n const movedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n React.useEffect(() => {\n if (!active) {\n return undefined;\n } // Ensure that this hook is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n\n\n function armClickAwayListener() {\n activatedRef.current = true;\n }\n\n document.addEventListener('mousedown', armClickAwayListener, true);\n document.addEventListener('touchstart', armClickAwayListener, true);\n return () => {\n document.removeEventListener('mousedown', armClickAwayListener, true);\n document.removeEventListener('touchstart', armClickAwayListener, true);\n activatedRef.current = false;\n };\n }, [active]); // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n\n const handleClickAway = useEventCallback(event => {\n if (!activatedRef.current) {\n return;\n } // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n\n\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current); // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n\n if (!nodeRef.current || // is a TouchEvent?\n 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n } // Do not act if user performed touchmove\n\n\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n\n let insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);\n }\n\n if (!insideDOM && !insideReactTree) {\n onClickAway(event);\n }\n }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n const handleSynthetic = () => {\n syntheticEventRef.current = true;\n };\n\n React.useEffect(() => {\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n\n doc.addEventListener('touchstart', handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener('touchstart', handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n\n return undefined;\n }, [active, handleClickAway]);\n React.useEffect(() => {\n // TODO This behavior is not tested automatically\n // It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).\n // Or if this is a timing related issues due to different Transition components\n // Once we get rid of all the manual scheduling (e.g. setTimeout(update, 0)) we can revisit this code+test.\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener('click', handleClickAway);\n return () => {\n doc.removeEventListener('click', handleClickAway); // cleanup `handleClickAway`\n\n syntheticEventRef.current = false;\n };\n }\n\n return undefined;\n }, [active, handleClickAway]);\n return [nodeRef, handleSynthetic, handleSynthetic];\n}\n\nexport const PickersPopper = props => {\n var _components$ActionBar;\n\n const {\n anchorEl,\n children,\n containerRef = null,\n onBlur,\n onClose,\n onClear,\n onAccept,\n onCancel,\n onSetToday,\n open,\n PopperProps,\n role,\n TransitionComponent = Grow,\n TrapFocusProps,\n PaperProps = {},\n components,\n componentsProps\n } = props;\n React.useEffect(() => {\n function handleKeyDown(nativeEvent) {\n // IE11, Edge (prior to using Bink?) use 'Esc'\n if (open && (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc')) {\n onClose();\n }\n }\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onClose, open]);\n const lastFocusedElementRef = React.useRef(null);\n React.useEffect(() => {\n if (role === 'tooltip') {\n return;\n }\n\n if (open) {\n lastFocusedElementRef.current = document.activeElement;\n } else if (lastFocusedElementRef.current && lastFocusedElementRef.current instanceof HTMLElement) {\n lastFocusedElementRef.current.focus();\n }\n }, [open, role]);\n const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur != null ? onBlur : onClose);\n const paperRef = React.useRef(null);\n const handleRef = useForkRef(paperRef, containerRef);\n const handlePaperRef = useForkRef(handleRef, clickAwayRef);\n const ownerState = props;\n\n const {\n onClick: onPaperClickProp,\n onTouchStart: onPaperTouchStartProp\n } = PaperProps,\n otherPaperProps = _objectWithoutPropertiesLoose(PaperProps, _excluded);\n\n const handleKeyDown = event => {\n if (event.key === 'Escape') {\n // stop the propagation to avoid closing parent modal\n event.stopPropagation();\n onClose();\n }\n };\n\n const ActionBar = (_components$ActionBar = components == null ? void 0 : components.ActionBar) != null ? _components$ActionBar : PickersActionBar;\n return /*#__PURE__*/_jsx(PickersPopperRoot, _extends({\n transition: true,\n role: role,\n open: open,\n anchorEl: anchorEl,\n ownerState: ownerState,\n onKeyDown: handleKeyDown\n }, PopperProps, {\n children: ({\n TransitionProps,\n placement\n }) => /*#__PURE__*/_jsx(TrapFocus, _extends({\n open: open,\n disableAutoFocus: true,\n disableEnforceFocus: role === 'tooltip',\n isEnabled: () => true\n }, TrapFocusProps, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({}, TransitionProps, {\n children: /*#__PURE__*/_jsxs(PickersPopperPaper, _extends({\n tabIndex: -1,\n elevation: 8,\n ref: handlePaperRef,\n onClick: event => {\n onPaperClick(event);\n\n if (onPaperClickProp) {\n onPaperClickProp(event);\n }\n },\n onTouchStart: event => {\n onPaperTouchStart(event);\n\n if (onPaperTouchStartProp) {\n onPaperTouchStartProp(event);\n }\n },\n ownerState: _extends({}, ownerState, {\n placement\n })\n }, otherPaperProps, {\n children: [children, /*#__PURE__*/_jsx(ActionBar, _extends({\n onAccept: onAccept,\n onClear: onClear,\n onCancel: onCancel,\n onSetToday: onSetToday,\n actions: []\n }, componentsProps == null ? void 0 : componentsProps.actionBar))]\n }))\n }))\n }))\n }));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useForkRef } from '@mui/material/utils';\nimport { WrapperVariantContext } from './WrapperVariantContext';\nimport { PickersPopper } from '../PickersPopper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function DesktopWrapper(props) {\n const {\n children,\n DateInputProps,\n KeyboardDateInputComponent,\n onClear,\n onDismiss,\n onCancel,\n onAccept,\n onSetToday,\n open,\n PopperProps,\n PaperProps,\n TransitionComponent,\n components,\n componentsProps\n } = props;\n const ownInputRef = React.useRef(null);\n const inputRef = useForkRef(DateInputProps.inputRef, ownInputRef);\n return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {\n value: \"desktop\",\n children: [/*#__PURE__*/_jsx(KeyboardDateInputComponent, _extends({}, DateInputProps, {\n inputRef: inputRef\n })), /*#__PURE__*/_jsx(PickersPopper, {\n role: \"dialog\",\n open: open,\n anchorEl: ownInputRef.current,\n TransitionComponent: TransitionComponent,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n onClose: onDismiss,\n onCancel: onCancel,\n onClear: onClear,\n onAccept: onAccept,\n onSetToday: onSetToday,\n components: components,\n componentsProps: componentsProps,\n children: children\n })]\n });\n}","/* Use it instead of .includes method for IE support */\nexport function arrayIncludes(array, itemOrItems) {\n if (Array.isArray(itemOrItems)) {\n return itemOrItems.every(item => array.indexOf(item) !== -1);\n }\n\n return array.indexOf(itemOrItems) !== -1;\n}\nexport const onSpaceOrEnter = (innerFn, onFocus) => event => {\n if (event.key === 'Enter' || event.key === ' ') {\n innerFn(); // prevent any side effects\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onFocus) {\n onFocus(event);\n }\n};\nexport const executeInTheNextEventLoopTick = fn => {\n setTimeout(fn, 0);\n};\nexport function createDelegatedEventHandler(fn, onEvent) {\n return event => {\n fn(event);\n\n if (onEvent) {\n onEvent(event);\n }\n };\n}\nexport const doNothing = () => {};","import * as React from 'react';\nimport { useControlled } from '@mui/material/utils';\nimport { arrayIncludes } from '../utils/utils';\nexport function useViews({\n onChange,\n onViewChange,\n openTo,\n view,\n views\n}) {\n var _views, _views2;\n\n const [openView, setOpenView] = useControlled({\n name: 'Picker',\n state: 'view',\n controlled: view,\n default: openTo && arrayIncludes(views, openTo) ? openTo : views[0]\n });\n const previousView = (_views = views[views.indexOf(openView) - 1]) != null ? _views : null;\n const nextView = (_views2 = views[views.indexOf(openView) + 1]) != null ? _views2 : null;\n const changeView = React.useCallback(newView => {\n setOpenView(newView);\n\n if (onViewChange) {\n onViewChange(newView);\n }\n }, [setOpenView, onViewChange]);\n const openNext = React.useCallback(() => {\n if (nextView) {\n changeView(nextView);\n }\n }, [nextView, changeView]);\n const handleChangeAndOpenNext = React.useCallback((date, currentViewSelectionState) => {\n const isSelectionFinishedOnCurrentView = currentViewSelectionState === 'finish';\n const globalSelectionState = isSelectionFinishedOnCurrentView && Boolean(nextView) ? 'partial' : currentViewSelectionState;\n onChange(date, globalSelectionState);\n\n if (isSelectionFinishedOnCurrentView) {\n openNext();\n }\n }, [nextView, onChange, openNext]);\n return {\n handleChangeAndOpenNext,\n nextView,\n previousView,\n openNext,\n openView,\n setOpenView: changeView\n };\n}","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 * as React from 'react';\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","export const CLOCK_WIDTH = 220;\nexport const CLOCK_HOUR_WIDTH = 36;\nconst clockCenter = {\n x: CLOCK_WIDTH / 2,\n y: CLOCK_WIDTH / 2\n};\nconst baseClockPoint = {\n x: clockCenter.x,\n y: 0\n};\nconst cx = baseClockPoint.x - clockCenter.x;\nconst cy = baseClockPoint.y - clockCenter.y;\n\nconst rad2deg = rad => rad * (180 / Math.PI);\n\nconst getAngleValue = (step, offsetX, offsetY) => {\n const x = offsetX - clockCenter.x;\n const y = offsetY - clockCenter.y;\n const atan = Math.atan2(cx, cy) - Math.atan2(x, y);\n let deg = rad2deg(atan);\n deg = Math.round(deg / step) * step;\n deg %= 360;\n const value = Math.floor(deg / step) || 0;\n const delta = x ** 2 + y ** 2;\n const distance = Math.sqrt(delta);\n return {\n value,\n distance\n };\n};\n\nexport const getMinutes = (offsetX, offsetY, step = 1) => {\n const angleStep = step * 6;\n let {\n value\n } = getAngleValue(angleStep, offsetX, offsetY);\n value = value * step % 60;\n return value;\n};\nexport const getHours = (offsetX, offsetY, ampm) => {\n const {\n value,\n distance\n } = getAngleValue(30, offsetX, offsetY);\n let hour = value || 12;\n\n if (!ampm) {\n if (distance < CLOCK_WIDTH / 2 - CLOCK_HOUR_WIDTH) {\n hour += 12;\n hour %= 24;\n }\n } else {\n hour %= 12;\n }\n\n return hour;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"hasSelected\", \"isInner\", \"type\", \"value\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ClockPointerRoot = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n width: 2,\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n left: 'calc(50% - 1px)',\n bottom: '50%',\n transformOrigin: 'center bottom 0px'\n}, ownerState.toAnimateTransform && {\n transition: theme.transitions.create(['transform', 'height'])\n}));\nconst ClockPointerThumb = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n width: 4,\n height: 4,\n backgroundColor: theme.palette.primary.contrastText,\n borderRadius: '50%',\n position: 'absolute',\n top: -21,\n left: `calc(50% - ${CLOCK_HOUR_WIDTH / 2}px)`,\n border: `${(CLOCK_HOUR_WIDTH - 4) / 2}px solid ${theme.palette.primary.main}`,\n boxSizing: 'content-box'\n}, ownerState.hasSelected && {\n backgroundColor: theme.palette.primary.main\n}));\n/**\n * @ignore - internal component.\n * TODO: Remove class\n */\n\nexport class ClockPointer extends React.Component {\n constructor(...args) {\n super(...args);\n this.state = {\n toAnimateTransform: false,\n previousType: undefined\n };\n }\n\n render() {\n const _this$props = this.props,\n {\n className,\n isInner,\n type,\n value\n } = _this$props,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n const ownerState = _extends({}, this.props, this.state);\n\n const getAngleStyle = () => {\n const max = type === 'hours' ? 12 : 60;\n let angle = 360 / max * value;\n\n if (type === 'hours' && value > 12) {\n angle -= 360; // round up angle to max 360 degrees\n }\n\n return {\n height: Math.round((isInner ? 0.26 : 0.4) * CLOCK_WIDTH),\n transform: `rotateZ(${angle}deg)`\n };\n };\n\n return /*#__PURE__*/_jsx(ClockPointerRoot, _extends({\n style: getAngleStyle(),\n className: className,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(ClockPointerThumb, {\n ownerState: ownerState\n })\n }));\n }\n\n}\n\nClockPointer.getDerivedStateFromProps = (nextProps, state) => {\n if (nextProps.type !== state.previousType) {\n return {\n toAnimateTransform: true,\n previousType: nextProps.type\n };\n }\n\n return {\n toAnimateTransform: false,\n previousType: nextProps.type\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { ClockPointer } from './ClockPointer';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { getHours, getMinutes } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst ClockRoot = styled('div')(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(2)\n}));\nconst ClockClock = styled('div')({\n backgroundColor: 'rgba(0,0,0,.07)',\n borderRadius: '50%',\n height: 220,\n width: 220,\n flexShrink: 0,\n position: 'relative',\n pointerEvents: 'none'\n});\nconst ClockSquareMask = styled('div')(({\n ownerState\n}) => _extends({\n width: '100%',\n height: '100%',\n position: 'absolute',\n pointerEvents: 'auto',\n outline: 0,\n // Disable scroll capabilities.\n touchAction: 'none',\n userSelect: 'none'\n}, ownerState.disabled ? {} : {\n '@media (pointer: fine)': {\n cursor: 'pointer',\n borderRadius: '50%'\n },\n '&:active': {\n cursor: 'move'\n }\n}));\nconst ClockPin = styled('div')(({\n theme\n}) => ({\n width: 6,\n height: 6,\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)'\n}));\nconst ClockAmButton = styled(IconButton)(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: ownerState.ampmInClock ? 64 : 8,\n left: 8\n}, ownerState.meridiemMode === 'am' && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.light\n }\n}));\nconst ClockPmButton = styled(IconButton)(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: ownerState.ampmInClock ? 64 : 8,\n right: 8\n}, ownerState.meridiemMode === 'pm' && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.light\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport function Clock(props) {\n const {\n ampm,\n ampmInClock,\n autoFocus,\n children,\n date,\n getClockLabelText,\n handleMeridiemChange,\n isTimeDisabled,\n meridiemMode,\n minutesStep = 1,\n onChange,\n selectedId,\n type,\n value,\n disabled,\n readOnly\n } = props;\n const ownerState = props;\n const utils = useUtils();\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const isMoving = React.useRef(false);\n const isSelectedTimeDisabled = isTimeDisabled(value, type);\n const isPointerInner = !ampm && type === 'hours' && (value < 1 || value > 12);\n\n const handleValueChange = (newValue, isFinish) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (isTimeDisabled(newValue, type)) {\n return;\n }\n\n onChange(newValue, isFinish);\n };\n\n const setTime = (event, isFinish) => {\n let {\n offsetX,\n offsetY\n } = event;\n\n if (offsetX === undefined) {\n const rect = event.target.getBoundingClientRect();\n offsetX = event.changedTouches[0].clientX - rect.left;\n offsetY = event.changedTouches[0].clientY - rect.top;\n }\n\n const newSelectedValue = type === 'seconds' || type === 'minutes' ? getMinutes(offsetX, offsetY, minutesStep) : getHours(offsetX, offsetY, Boolean(ampm));\n handleValueChange(newSelectedValue, isFinish);\n };\n\n const handleTouchMove = event => {\n isMoving.current = true;\n setTime(event, 'shallow');\n };\n\n const handleTouchEnd = event => {\n if (isMoving.current) {\n setTime(event, 'finish');\n isMoving.current = false;\n }\n };\n\n const handleMouseMove = event => {\n // event.buttons & PRIMARY_MOUSE_BUTTON\n if (event.buttons > 0) {\n setTime(event.nativeEvent, 'shallow');\n }\n };\n\n const handleMouseUp = event => {\n if (isMoving.current) {\n isMoving.current = false;\n }\n\n setTime(event.nativeEvent, 'finish');\n };\n\n const hasSelected = React.useMemo(() => {\n if (type === 'hours') {\n return true;\n }\n\n return value % 5 === 0;\n }, [type, value]);\n const keyboardControlStep = type === 'minutes' ? minutesStep : 1;\n const listboxRef = React.useRef(null); // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n\n useEnhancedEffect(() => {\n if (autoFocus) {\n // The ref not being resolved would be a bug in MUI.\n listboxRef.current.focus();\n }\n }, [autoFocus]);\n\n const handleKeyDown = event => {\n // TODO: Why this early exit?\n if (isMoving.current) {\n return;\n }\n\n switch (event.key) {\n case 'Home':\n // annulate both hours and minutes\n handleValueChange(0, 'partial');\n event.preventDefault();\n break;\n\n case 'End':\n handleValueChange(type === 'minutes' ? 59 : 23, 'partial');\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n handleValueChange(value + keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n handleValueChange(value - keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n\n default: // do nothing\n\n }\n };\n\n return /*#__PURE__*/_jsxs(ClockRoot, {\n children: [/*#__PURE__*/_jsxs(ClockClock, {\n children: [/*#__PURE__*/_jsx(ClockSquareMask, {\n onTouchMove: handleTouchMove,\n onTouchEnd: handleTouchEnd,\n onMouseUp: handleMouseUp,\n onMouseMove: handleMouseMove,\n ownerState: {\n disabled\n }\n }), !isSelectedTimeDisabled && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockPin, {}), date && /*#__PURE__*/_jsx(ClockPointer, {\n type: type,\n value: value,\n isInner: isPointerInner,\n hasSelected: hasSelected\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n \"aria-activedescendant\": selectedId,\n \"aria-label\": getClockLabelText(type, date, utils),\n ref: listboxRef,\n role: \"listbox\",\n onKeyDown: handleKeyDown,\n tabIndex: 0,\n children: children\n })]\n }), ampm && (wrapperVariant === 'desktop' || ampmInClock) && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockAmButton, {\n onClick: readOnly ? undefined : () => handleMeridiemChange('am'),\n disabled: disabled || meridiemMode === null,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(Typography, {\n variant: \"caption\",\n children: \"AM\"\n })\n }), /*#__PURE__*/_jsx(ClockPmButton, {\n disabled: disabled || meridiemMode === null,\n onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(Typography, {\n variant: \"caption\",\n children: \"PM\"\n })\n })]\n })]\n });\n}","export const buildDeprecatedPropsWarning = message => {\n let alreadyWarned = false;\n\n if (process.env.NODE_ENV === 'production') {\n return () => {};\n }\n\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n return deprecatedProps => {\n const deprecatedKeys = Object.entries(deprecatedProps).filter(([, value]) => value !== undefined).map(([key]) => `- ${key}`);\n\n if (!alreadyWarned && deprecatedKeys.length > 0) {\n alreadyWarned = true;\n console.warn([cleanMessage, 'deprecated props observed:', ...deprecatedKeys].join('\\n'));\n }\n };\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"index\", \"inner\", \"label\", \"selected\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const classes = generateUtilityClasses('PrivateClockNumber', ['selected', 'disabled']);\nconst ClockNumberRoot = styled('span')(({\n theme,\n ownerState\n}) => _extends({\n height: CLOCK_HOUR_WIDTH,\n width: CLOCK_HOUR_WIDTH,\n position: 'absolute',\n left: `calc((100% - ${CLOCK_HOUR_WIDTH}px) / 2)`,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n color: theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n '&:focused': {\n backgroundColor: theme.palette.background.paper\n },\n [`&.${classes.selected}`]: {\n color: theme.palette.primary.contrastText\n },\n [`&.${classes.disabled}`]: {\n pointerEvents: 'none',\n color: theme.palette.text.disabled\n }\n}, ownerState.inner && _extends({}, theme.typography.body2, {\n color: theme.palette.text.secondary\n})));\n/**\n * @ignore - internal component.\n */\n\nexport function ClockNumber(props) {\n const {\n className,\n disabled,\n index,\n inner,\n label,\n selected\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const angle = index % 12 / 12 * Math.PI * 2 - Math.PI / 2;\n const length = (CLOCK_WIDTH - CLOCK_HOUR_WIDTH - 2) / 2 * (inner ? 0.65 : 1);\n const x = Math.round(Math.cos(angle) * length);\n const y = Math.round(Math.sin(angle) * length);\n return /*#__PURE__*/_jsx(ClockNumberRoot, _extends({\n className: clsx(className, selected && classes.selected, disabled && classes.disabled),\n \"aria-disabled\": disabled ? true : undefined,\n \"aria-selected\": selected ? true : undefined,\n role: \"option\",\n style: {\n transform: `translate(${x}px, ${y + (CLOCK_WIDTH - CLOCK_HOUR_WIDTH) / 2}px`\n },\n ownerState: ownerState\n }, other, {\n children: label\n }));\n}","import * as React from 'react';\nimport { ClockNumber } from './ClockNumber';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n * @ignore - internal component.\n */\nexport const getHourNumbers = ({\n ampm,\n date,\n getClockNumberText,\n isDisabled,\n selectedId,\n utils\n}) => {\n const currentHours = date ? utils.getHours(date) : null;\n const hourNumbers = [];\n const startHour = ampm ? 1 : 0;\n const endHour = ampm ? 12 : 23;\n\n const isSelected = hour => {\n if (currentHours === null) {\n return false;\n }\n\n if (ampm) {\n if (hour === 12) {\n return currentHours === 12 || currentHours === 0;\n }\n\n return currentHours === hour || currentHours - 12 === hour;\n }\n\n return currentHours === hour;\n };\n\n for (let hour = startHour; hour <= endHour; hour += 1) {\n let label = hour.toString();\n\n if (hour === 0) {\n label = '00';\n }\n\n const inner = !ampm && (hour === 0 || hour > 12);\n label = utils.formatNumber(label);\n const selected = isSelected(hour);\n hourNumbers.push( /*#__PURE__*/_jsx(ClockNumber, {\n id: selected ? selectedId : undefined,\n index: hour,\n inner: inner,\n selected: selected,\n disabled: isDisabled(hour),\n label: label,\n \"aria-label\": getClockNumberText(label)\n }, hour));\n }\n\n return hourNumbers;\n};\nexport const getMinutesNumbers = ({\n utils,\n value,\n isDisabled,\n getClockNumberText,\n selectedId\n}) => {\n const f = utils.formatNumber;\n return [[5, f('05')], [10, f('10')], [15, f('15')], [20, f('20')], [25, f('25')], [30, f('30')], [35, f('35')], [40, f('40')], [45, f('45')], [50, f('50')], [55, f('55')], [0, f('00')]].map(([numberValue, label], index) => {\n const selected = numberValue === value;\n return /*#__PURE__*/_jsx(ClockNumber, {\n label: label,\n id: selected ? selectedId : undefined,\n index: index + 1,\n inner: false,\n disabled: isDisabled(numberValue),\n selected: selected,\n \"aria-label\": getClockNumberText(label)\n }, numberValue);\n });\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"components\", \"componentsProps\", \"isLeftDisabled\", \"isLeftHidden\", \"isRightDisabled\", \"isRightHidden\", \"leftArrowButtonText\", \"onLeftClick\", \"onRightClick\", \"rightArrowButtonText\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { generateUtilityClasses } from '@mui/material';\nimport { useTheme, styled } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport { ArrowLeft, ArrowRight } from './icons';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('MuiPickersArrowSwitcher', ['root', 'spacer', 'button']);\nconst PickersArrowSwitcherRoot = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex'\n});\nconst PickersArrowSwitcherSpacer = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})(({\n theme\n}) => ({\n width: theme.spacing(3)\n}));\nconst PickersArrowSwitcherButton = styled(IconButton, {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Button',\n overridesResolver: (props, styles) => styles.button\n})(({\n ownerState\n}) => _extends({}, ownerState.hidden && {\n visibility: 'hidden'\n}));\nexport const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(props, ref) {\n const {\n children,\n className,\n components,\n componentsProps,\n isLeftDisabled,\n isLeftHidden,\n isRightDisabled,\n isRightHidden,\n leftArrowButtonText,\n onLeftClick,\n onRightClick,\n rightArrowButtonText\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const leftArrowButtonProps = (componentsProps == null ? void 0 : componentsProps.leftArrowButton) || {};\n const LeftArrowIcon = (components == null ? void 0 : components.LeftArrowIcon) || ArrowLeft;\n const rightArrowButtonProps = (componentsProps == null ? void 0 : componentsProps.rightArrowButton) || {};\n const RightArrowIcon = (components == null ? void 0 : components.RightArrowIcon) || ArrowRight;\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersArrowSwitcherRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(PickersArrowSwitcherButton, _extends({\n as: components == null ? void 0 : components.LeftArrowButton,\n size: \"small\",\n \"aria-label\": leftArrowButtonText,\n title: leftArrowButtonText,\n disabled: isLeftDisabled,\n edge: \"end\",\n onClick: onLeftClick\n }, leftArrowButtonProps, {\n className: clsx(classes.button, leftArrowButtonProps.className),\n ownerState: _extends({}, ownerState, leftArrowButtonProps, {\n hidden: isLeftHidden\n }),\n children: isRtl ? /*#__PURE__*/_jsx(RightArrowIcon, {}) : /*#__PURE__*/_jsx(LeftArrowIcon, {})\n })), children ? /*#__PURE__*/_jsx(Typography, {\n variant: \"subtitle1\",\n component: \"span\",\n children: children\n }) : /*#__PURE__*/_jsx(PickersArrowSwitcherSpacer, {\n className: classes.spacer,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersArrowSwitcherButton, _extends({\n as: components == null ? void 0 : components.RightArrowButton,\n size: \"small\",\n \"aria-label\": rightArrowButtonText,\n title: rightArrowButtonText,\n edge: \"start\",\n disabled: isRightDisabled,\n onClick: onRightClick\n }, rightArrowButtonProps, {\n className: clsx(classes.button, rightArrowButtonProps.className),\n ownerState: _extends({}, ownerState, rightArrowButtonProps, {\n hidden: isRightHidden\n }),\n children: isRtl ? /*#__PURE__*/_jsx(LeftArrowIcon, {}) : /*#__PURE__*/_jsx(RightArrowIcon, {})\n }))]\n }));\n});","export const getMeridiem = (date, utils) => {\n if (!date) {\n return null;\n }\n\n return utils.getHours(date) >= 12 ? 'pm' : 'am';\n};\nexport const convertValueToMeridiem = (value, meridiem, ampm) => {\n if (ampm) {\n const currentMeridiem = value >= 12 ? 'pm' : 'am';\n\n if (currentMeridiem !== meridiem) {\n return meridiem === 'am' ? value - 12 : value + 12;\n }\n }\n\n return value;\n};\nexport const convertToMeridiem = (time, meridiem, ampm, utils) => {\n const newHoursAmount = convertValueToMeridiem(utils.getHours(time), meridiem, ampm);\n return utils.setHours(time, newHoursAmount);\n};\nexport const getSecondsInDay = (date, utils) => {\n return utils.getHours(date) * 3600 + utils.getMinutes(date) * 60 + utils.getSeconds(date);\n};\nexport const createIsAfterIgnoreDatePart = (disableIgnoringDatePartForTimeValidation = false, utils) => (dateLeft, dateRight) => {\n if (disableIgnoringDatePartForTimeValidation) {\n return utils.isAfter(dateLeft, dateRight);\n }\n\n return getSecondsInDay(dateLeft, utils) > getSecondsInDay(dateRight, utils);\n};","import * as React from 'react';\nimport { useUtils } from './useUtils';\nimport { getMeridiem, convertToMeridiem } from '../utils/time-utils';\nexport function useNextMonthDisabled(month, {\n disableFuture,\n maxDate\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date();\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n return !utils.isAfter(lastEnabledMonth, month);\n }, [disableFuture, maxDate, month, utils]);\n}\nexport function usePreviousMonthDisabled(month, {\n disablePast,\n minDate\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date();\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n return !utils.isBefore(firstEnabledMonth, month);\n }, [disablePast, minDate, month, utils]);\n}\nexport function useMeridiemMode(date, ampm, onChange) {\n const utils = useUtils();\n const meridiemMode = getMeridiem(date, utils);\n const handleMeridiemChange = React.useCallback(mode => {\n const timeWithMeridiem = date == null ? null : convertToMeridiem(date, mode, Boolean(ampm), utils);\n onChange(timeWithMeridiem, 'partial');\n }, [ampm, date, onChange, utils]);\n return {\n meridiemMode,\n handleMeridiemChange\n };\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getClockPickerUtilityClass(slot) {\n return generateUtilityClass('MuiClockPicker', slot);\n}\nexport const clockPickerClasses = generateUtilityClasses('MuiClockPicker', ['root', 'arrowSwitcher']);","import { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH, VIEW_HEIGHT } from '../../constants/dimensions';\nexport const PickerViewRoot = styled('div')({\n overflowX: 'hidden',\n width: DIALOG_WIDTH,\n maxHeight: VIEW_HEIGHT,\n display: 'flex',\n flexDirection: 'column',\n margin: '0 auto'\n});","export const DAY_SIZE = 36;\nexport const DAY_MARGIN = 2;\nexport const DIALOG_WIDTH = 320;\nexport const VIEW_HEIGHT = 358;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { Clock } from './Clock';\nimport { useUtils, useNow, useLocaleText } from '../internals/hooks/useUtils';\nimport { buildDeprecatedPropsWarning } from '../internals/utils/warning';\nimport { getHourNumbers, getMinutesNumbers } from './ClockNumbers';\nimport { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';\nimport { convertValueToMeridiem, createIsAfterIgnoreDatePart } from '../internals/utils/time-utils';\nimport { useViews } from '../internals/hooks/useViews';\nimport { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';\nimport { getClockPickerUtilityClass } from './clockPickerClasses';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\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 } = ownerState;\n const slots = {\n root: ['root'],\n arrowSwitcher: ['arrowSwitcher']\n };\n return composeClasses(slots, getClockPickerUtilityClass, classes);\n};\n\nconst ClockPickerRoot = styled(PickerViewRoot, {\n name: 'MuiClockPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column'\n});\nconst ClockPickerArrowSwitcher = styled(PickersArrowSwitcher, {\n name: 'MuiClockPicker',\n slot: 'ArrowSwitcher',\n overridesResolver: (props, styles) => styles.arrowSwitcher\n})({\n position: 'absolute',\n right: 12,\n top: 15\n});\n\nconst defaultGetClockLabelText = (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`;\n\nconst defaultGetMinutesClockNumberText = minutes => `${minutes} minutes`;\n\nconst defaultGetHoursClockNumberText = hours => `${hours} hours`;\n\nconst defaultGetSecondsClockNumberText = seconds => `${seconds} seconds`;\n\nconst deprecatedPropsWarning = buildDeprecatedPropsWarning('Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information.');\n/**\n *\n * API:\n *\n * - [ClockPicker API](https://mui.com/x/api/date-pickers/clock-picker/)\n */\n\nexport const ClockPicker = /*#__PURE__*/React.forwardRef(function ClockPicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClockPicker'\n });\n const {\n ampm = false,\n ampmInClock = false,\n autoFocus,\n components,\n componentsProps,\n date,\n disableIgnoringDatePartForTimeValidation,\n getClockLabelText = defaultGetClockLabelText,\n getHoursClockNumberText = defaultGetHoursClockNumberText,\n getMinutesClockNumberText = defaultGetMinutesClockNumberText,\n getSecondsClockNumberText = defaultGetSecondsClockNumberText,\n leftArrowButtonText: leftArrowButtonTextProp,\n maxTime,\n minTime,\n minutesStep = 1,\n rightArrowButtonText: rightArrowButtonTextProp,\n shouldDisableTime,\n showViewSwitcher,\n onChange,\n view,\n views = ['hours', 'minutes'],\n openTo,\n onViewChange,\n className,\n disabled,\n readOnly\n } = props;\n deprecatedPropsWarning({\n leftArrowButtonText: leftArrowButtonTextProp,\n rightArrowButtonText: rightArrowButtonTextProp\n });\n const localeText = useLocaleText();\n const leftArrowButtonText = leftArrowButtonTextProp != null ? leftArrowButtonTextProp : localeText.openPreviousView;\n const rightArrowButtonText = rightArrowButtonTextProp != null ? rightArrowButtonTextProp : localeText.openNextView;\n const {\n openView,\n setOpenView,\n nextView,\n previousView,\n handleChangeAndOpenNext\n } = useViews({\n view,\n views,\n openTo,\n onViewChange,\n onChange\n });\n const now = useNow();\n const utils = useUtils();\n const dateOrMidnight = React.useMemo(() => date || utils.setSeconds(utils.setMinutes(utils.setHours(now, 0), 0), 0), [date, now, utils]);\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(dateOrMidnight, ampm, handleChangeAndOpenNext);\n const isTimeDisabled = React.useCallback((rawValue, viewType) => {\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n\n const containsValidTime = ({\n start,\n end\n }) => {\n if (minTime && isAfter(minTime, end)) {\n return false;\n }\n\n if (maxTime && isAfter(start, maxTime)) {\n return false;\n }\n\n return true;\n };\n\n const isValidValue = (value, step = 1) => {\n if (value % step !== 0) {\n return false;\n }\n\n if (shouldDisableTime) {\n return !shouldDisableTime(value, viewType);\n }\n\n return true;\n };\n\n switch (viewType) {\n case 'hours':\n {\n const value = convertValueToMeridiem(rawValue, meridiemMode, ampm);\n const dateWithNewHours = utils.setHours(dateOrMidnight, value);\n const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);\n const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(value);\n }\n\n case 'minutes':\n {\n const dateWithNewMinutes = utils.setMinutes(dateOrMidnight, rawValue);\n const start = utils.setSeconds(dateWithNewMinutes, 0);\n const end = utils.setSeconds(dateWithNewMinutes, 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue, minutesStep);\n }\n\n case 'seconds':\n {\n const dateWithNewSeconds = utils.setSeconds(dateOrMidnight, rawValue);\n const start = dateWithNewSeconds;\n const end = dateWithNewSeconds;\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue);\n }\n\n default:\n throw new Error('not supported');\n }\n }, [ampm, dateOrMidnight, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, utils]);\n const selectedId = useId();\n const viewProps = React.useMemo(() => {\n switch (openView) {\n case 'hours':\n {\n const handleHoursChange = (value, isFinish) => {\n const valueWithMeridiem = convertValueToMeridiem(value, meridiemMode, ampm);\n handleChangeAndOpenNext(utils.setHours(dateOrMidnight, valueWithMeridiem), isFinish);\n };\n\n return {\n onChange: handleHoursChange,\n value: utils.getHours(dateOrMidnight),\n children: getHourNumbers({\n date,\n utils,\n ampm,\n onChange: handleHoursChange,\n getClockNumberText: getHoursClockNumberText,\n isDisabled: value => disabled || isTimeDisabled(value, 'hours'),\n selectedId\n })\n };\n }\n\n case 'minutes':\n {\n const minutesValue = utils.getMinutes(dateOrMidnight);\n\n const handleMinutesChange = (value, isFinish) => {\n handleChangeAndOpenNext(utils.setMinutes(dateOrMidnight, value), isFinish);\n };\n\n return {\n value: minutesValue,\n onChange: handleMinutesChange,\n children: getMinutesNumbers({\n utils,\n value: minutesValue,\n onChange: handleMinutesChange,\n getClockNumberText: getMinutesClockNumberText,\n isDisabled: value => disabled || isTimeDisabled(value, 'minutes'),\n selectedId\n })\n };\n }\n\n case 'seconds':\n {\n const secondsValue = utils.getSeconds(dateOrMidnight);\n\n const handleSecondsChange = (value, isFinish) => {\n handleChangeAndOpenNext(utils.setSeconds(dateOrMidnight, value), isFinish);\n };\n\n return {\n value: secondsValue,\n onChange: handleSecondsChange,\n children: getMinutesNumbers({\n utils,\n value: secondsValue,\n onChange: handleSecondsChange,\n getClockNumberText: getSecondsClockNumberText,\n isDisabled: value => disabled || isTimeDisabled(value, 'seconds'),\n selectedId\n })\n };\n }\n\n default:\n throw new Error('You must provide the type for ClockView');\n }\n }, [openView, utils, date, ampm, getHoursClockNumberText, getMinutesClockNumberText, getSecondsClockNumberText, meridiemMode, handleChangeAndOpenNext, dateOrMidnight, isTimeDisabled, selectedId, disabled]);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(ClockPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: [showViewSwitcher && /*#__PURE__*/_jsx(ClockPickerArrowSwitcher, {\n className: classes.arrowSwitcher,\n leftArrowButtonText: leftArrowButtonText,\n rightArrowButtonText: rightArrowButtonText,\n components: components,\n componentsProps: componentsProps,\n onLeftClick: () => setOpenView(previousView),\n onRightClick: () => setOpenView(nextView),\n isLeftDisabled: !previousView,\n isRightDisabled: !nextView,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(Clock, _extends({\n autoFocus: autoFocus,\n date: date,\n ampmInClock: ampmInClock,\n type: openView,\n ampm: ampm,\n getClockLabelText: getClockLabelText,\n minutesStep: minutesStep,\n isTimeDisabled: isTimeDisabled,\n meridiemMode: meridiemMode,\n handleMeridiemChange: handleMeridiemChange,\n selectedId: selectedId,\n disabled: disabled,\n readOnly: readOnly\n }, viewProps))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ClockPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * 12h/24h view for hour selection clock.\n * @default false\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n\n /**\n * Set to `true` if focus should be moved to clock picker.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n\n /**\n * The components used for each slot.\n * Either a string to use an HTML element or a component.\n */\n components: PropTypes.object,\n\n /**\n * The props used for each slot inside.\n */\n componentsProps: PropTypes.object,\n\n /**\n * Selected date @DateIOType.\n */\n date: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get clock number aria-text for hours.\n * @param {string} hours The hours to format.\n * @returns {string} the formatted hours text.\n * @default (hours: string) => `${hours} hours`\n */\n getHoursClockNumberText: PropTypes.func,\n\n /**\n * Get clock number aria-text for minutes.\n * @param {string} minutes The minutes to format.\n * @returns {string} the formatted minutes text.\n * @default (minutes: string) => `${minutes} minutes`\n */\n getMinutesClockNumberText: PropTypes.func,\n\n /**\n * Get clock number aria-text for seconds.\n * @param {string} seconds The seconds to format.\n * @returns {string} the formatted seconds text.\n * @default (seconds: string) => `${seconds} seconds`\n */\n getSecondsClockNumberText: PropTypes.func,\n\n /**\n * Left arrow icon aria-label text.\n * @default 'open previous view'\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * On change callback @DateIOType.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Initially open view.\n * @default 'hours'\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Right arrow icon aria-label text.\n * @default 'open next view'\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n showViewSwitcher: PropTypes.bool,\n\n /**\n * Controlled open view.\n */\n view: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Views for calendar picker.\n * @default ['hours', 'minutes']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disabled\", \"onSelect\", \"selected\", \"value\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled, alpha } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { onSpaceOrEnter } from '../internals/utils/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersMonth', ['root', 'selected']);\nconst PickersMonthRoot = styled(Typography)(({\n theme\n}) => _extends({\n flex: '1 0 33.33%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus, &:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n pointerEvents: 'none',\n color: theme.palette.text.secondary\n },\n [`&.${classes.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n }\n}));\n/**\n * @ignore - do not document.\n */\n\nexport const PickersMonth = props => {\n const {\n disabled,\n onSelect,\n selected,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const handleSelection = () => {\n onSelect(value);\n };\n\n return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({\n component: \"button\",\n type: \"button\",\n className: clsx(classes.root, selected && classes.selected),\n tabIndex: disabled ? -1 : 0,\n onClick: handleSelection,\n onKeyDown: onSpaceOrEnter(handleSelection),\n color: selected ? 'primary' : undefined,\n variant: selected ? 'h5' : 'subtitle1',\n disabled: disabled\n }, other));\n};","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getMonthPickerUtilityClass(slot) {\n return generateUtilityClass('MuiMonthPicker', slot);\n}\nexport const monthPickerClasses = generateUtilityClasses('MuiMonthPicker', ['root']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"date\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"onMonthChange\", \"shouldDisableMonth\", \"readOnly\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { PickersMonth } from './PickersMonth';\nimport { useUtils, useNow } from '../internals/hooks/useUtils';\nimport { getMonthPickerUtilityClass } from './monthPickerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getMonthPickerUtilityClass, classes);\n};\n\nconst MonthPickerRoot = styled('div', {\n name: 'MuiMonthPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: 310,\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'stretch',\n margin: '0 4px'\n});\nexport const MonthPicker = /*#__PURE__*/React.forwardRef(function MonthPicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMonthPicker'\n });\n\n const {\n className,\n date,\n disabled,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n onChange,\n onMonthChange,\n shouldDisableMonth,\n readOnly\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const utils = useUtils();\n const now = useNow();\n const currentMonth = utils.getMonth(date || now);\n\n const isMonthDisabled = month => {\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n\n if (utils.isBefore(month, firstEnabledMonth)) {\n return true;\n }\n\n if (utils.isAfter(month, lastEnabledMonth)) {\n return true;\n }\n\n if (!shouldDisableMonth) {\n return false;\n }\n\n return shouldDisableMonth(month);\n };\n\n const onMonthSelect = month => {\n if (readOnly) {\n return;\n }\n\n const newDate = utils.setMonth(date || now, month);\n onChange(newDate, 'finish');\n\n if (onMonthChange) {\n onMonthChange(newDate);\n }\n };\n\n return /*#__PURE__*/_jsx(MonthPickerRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: utils.getMonthArray(date || now).map(month => {\n const monthNumber = utils.getMonth(month);\n const monthText = utils.format(month, 'monthShort');\n return /*#__PURE__*/_jsx(PickersMonth, {\n value: monthNumber,\n selected: monthNumber === currentMonth,\n onSelect: onMonthSelect,\n disabled: disabled || isMonthDisabled(month),\n children: monthText\n }, monthText);\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MonthPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * className applied to the root element.\n */\n className: PropTypes.string,\n\n /**\n * Date value for the MonthPicker\n */\n date: PropTypes.any,\n\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n */\n disablePast: PropTypes.bool,\n\n /**\n * Maximal selectable date.\n */\n maxDate: PropTypes.any.isRequired,\n\n /**\n * Minimal selectable date.\n */\n minDate: PropTypes.any.isRequired,\n\n /**\n * Callback fired on date change.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new year.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * If `true` picker is readonly\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\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} : void 0;","import { useValidation } from './useValidation';\nexport const validateDate = (utils, value, {\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n shouldDisableDate\n}) => {\n const now = utils.date();\n const date = utils.date(value);\n\n if (date === null) {\n return null;\n }\n\n switch (true) {\n case !utils.isValid(value):\n return 'invalidDate';\n\n case Boolean(shouldDisableDate && shouldDisableDate(date)):\n return 'shouldDisableDate';\n\n case Boolean(disableFuture && utils.isAfterDay(date, now)):\n return 'disableFuture';\n\n case Boolean(disablePast && utils.isBeforeDay(date, now)):\n return 'disablePast';\n\n case Boolean(minDate && utils.isBeforeDay(date, minDate)):\n return 'minDate';\n\n case Boolean(maxDate && utils.isAfterDay(date, maxDate)):\n return 'maxDate';\n\n default:\n return null;\n }\n};\n\nconst isSameDateError = (a, b) => a === b;\n\nexport const useDateValidation = props => useValidation(props, validateDate, isSameDateError);","import * as React from 'react';\nimport { useUtils } from '../useUtils';\nexport function useValidation(props, validate, isSameError) {\n const {\n value,\n onError\n } = props;\n const utils = useUtils();\n const previousValidationErrorRef = React.useRef(null);\n const validationError = validate(utils, value, props);\n React.useEffect(() => {\n if (onError && !isSameError(validationError, previousValidationErrorRef.current)) {\n onError(validationError, value);\n }\n\n previousValidationErrorRef.current = validationError;\n }, [isSameError, onError, previousValidationErrorRef, validationError, value]);\n return validationError;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { validateDate } from '../internals/hooks/validation/useDateValidation';\nimport { useUtils, useNow } from '../internals/hooks/useUtils';\nexport const createCalendarStateReducer = (reduceAnimations, disableSwitchToMonthOnDayFocus, utils) => (state, action) => {\n switch (action.type) {\n case 'changeMonth':\n return _extends({}, state, {\n slideDirection: action.direction,\n currentMonth: action.newMonth,\n isMonthSwitchingAnimating: !reduceAnimations\n });\n\n case 'finishMonthSwitchingAnimation':\n return _extends({}, state, {\n isMonthSwitchingAnimating: false\n });\n\n case 'changeFocusedDay':\n {\n if (state.focusedDay !== null && utils.isSameDay(action.focusedDay, state.focusedDay)) {\n return state;\n }\n\n const needMonthSwitch = Boolean(action.focusedDay) && !disableSwitchToMonthOnDayFocus && !utils.isSameMonth(state.currentMonth, action.focusedDay);\n return _extends({}, state, {\n focusedDay: action.focusedDay,\n isMonthSwitchingAnimating: needMonthSwitch && !reduceAnimations,\n currentMonth: needMonthSwitch ? utils.startOfMonth(action.focusedDay) : state.currentMonth,\n slideDirection: utils.isAfterDay(action.focusedDay, state.currentMonth) ? 'left' : 'right'\n });\n }\n\n default:\n throw new Error('missing support');\n }\n};\nexport const useCalendarState = ({\n date,\n defaultCalendarMonth,\n disableFuture,\n disablePast,\n disableSwitchToMonthOnDayFocus = false,\n maxDate,\n minDate,\n onMonthChange,\n reduceAnimations,\n shouldDisableDate\n}) => {\n var _ref;\n\n const now = useNow();\n const utils = useUtils();\n const reducerFn = React.useRef(createCalendarStateReducer(Boolean(reduceAnimations), disableSwitchToMonthOnDayFocus, utils)).current;\n const [calendarState, dispatch] = React.useReducer(reducerFn, {\n isMonthSwitchingAnimating: false,\n focusedDay: date || now,\n currentMonth: utils.startOfMonth((_ref = date != null ? date : defaultCalendarMonth) != null ? _ref : now),\n slideDirection: 'left'\n });\n const handleChangeMonth = React.useCallback(payload => {\n dispatch(_extends({\n type: 'changeMonth'\n }, payload));\n\n if (onMonthChange) {\n onMonthChange(payload.newMonth);\n }\n }, [onMonthChange]);\n const changeMonth = React.useCallback(newDate => {\n const newDateRequested = newDate != null ? newDate : now;\n\n if (utils.isSameMonth(newDateRequested, calendarState.currentMonth)) {\n return;\n }\n\n handleChangeMonth({\n newMonth: utils.startOfMonth(newDateRequested),\n direction: utils.isAfterDay(newDateRequested, calendarState.currentMonth) ? 'left' : 'right'\n });\n }, [calendarState.currentMonth, handleChangeMonth, now, utils]);\n const isDateDisabled = React.useCallback(day => validateDate(utils, day, {\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n shouldDisableDate\n }) !== null, [disableFuture, disablePast, maxDate, minDate, shouldDisableDate, utils]);\n const onMonthSwitchingAnimationEnd = React.useCallback(() => {\n dispatch({\n type: 'finishMonthSwitchingAnimation'\n });\n }, []);\n const changeFocusedDay = React.useCallback(newFocusedDate => {\n if (!isDateDisabled(newFocusedDate)) {\n dispatch({\n type: 'changeFocusedDay',\n focusedDay: newFocusedDate\n });\n }\n }, [isDateDisabled]);\n return {\n calendarState,\n changeMonth,\n changeFocusedDay,\n isDateDisabled,\n onMonthSwitchingAnimationEnd,\n handleChangeMonth\n };\n};","import * as React from 'react';\nimport clsx from 'clsx';\nimport Fade from '@mui/material/Fade';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { TransitionGroup } from 'react-transition-group';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersFadeTransitionGroup', ['root']);\nconst animationDuration = 500;\nconst PickersFadeTransitionGroupRoot = styled(TransitionGroup)({\n display: 'block',\n position: 'relative'\n});\n/**\n * @ignore - do not document.\n */\n\nexport const PickersFadeTransitionGroup = ({\n children,\n className,\n reduceAnimations,\n transKey\n}) => {\n if (reduceAnimations) {\n return children;\n }\n\n return /*#__PURE__*/_jsx(PickersFadeTransitionGroupRoot, {\n className: clsx(classes.root, className),\n children: /*#__PURE__*/_jsx(Fade, {\n appear: false,\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: {\n appear: animationDuration,\n enter: animationDuration / 2,\n exit: 0\n },\n children: children\n }, transKey)\n });\n};","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getPickersDayUtilityClass(slot) {\n return generateUtilityClass('MuiPickersDay', slot);\n}\nexport const pickersDayClasses = generateUtilityClasses('MuiPickersDay', ['root', 'dayWithMargin', 'dayOutsideMonth', 'hiddenDaySpacingFiller', 'today', 'selected', 'disabled']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"day\", \"disabled\", \"disableHighlightToday\", \"disableMargin\", \"hidden\", \"isAnimating\", \"onClick\", \"onDayFocus\", \"onDaySelect\", \"onFocus\", \"onKeyDown\", \"outsideCurrentMonth\", \"selected\", \"showDaysOutsideCurrentMonth\", \"children\", \"today\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { useTheme, alpha, styled, useThemeProps } from '@mui/material/styles';\nimport { useForkRef } from '@mui/material/utils';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { getPickersDayUtilityClass, pickersDayClasses } from './pickersDayClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n selected,\n disableMargin,\n disableHighlightToday,\n today,\n outsideCurrentMonth,\n showDaysOutsideCurrentMonth,\n classes\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', !disableMargin && 'dayWithMargin', !disableHighlightToday && today && 'today', outsideCurrentMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth'],\n hiddenDaySpacingFiller: ['hiddenDaySpacingFiller']\n };\n return composeClasses(slots, getPickersDayUtilityClass, classes);\n};\n\nconst styleArg = ({\n theme,\n ownerState\n}) => _extends({}, theme.typography.caption, {\n width: DAY_SIZE,\n height: DAY_SIZE,\n borderRadius: '50%',\n padding: 0,\n // background required here to prevent collides with the other days when animating with transition group\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:focus': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n [`&.${pickersDayClasses.selected}`]: {\n willChange: 'background-color',\n backgroundColor: theme.palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n willChange: 'background-color',\n backgroundColor: theme.palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.disabled}`]: {\n color: theme.palette.text.disabled\n }\n}, !ownerState.disableMargin && {\n margin: `0 ${DAY_MARGIN}px`\n}, ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && {\n color: theme.palette.text.secondary\n}, !ownerState.disableHighlightToday && ownerState.today && {\n [`&:not(.${pickersDayClasses.selected})`]: {\n border: `1px solid ${theme.palette.text.secondary}`\n }\n});\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableMargin && styles.dayWithMargin, !ownerState.disableHighlightToday && ownerState.today && styles.today, !ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && styles.dayOutsideMonth, ownerState.outsideCurrentMonth && !ownerState.showDaysOutsideCurrentMonth && styles.hiddenDaySpacingFiller];\n};\n\nconst PickersDayRoot = styled(ButtonBase, {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(styleArg);\nconst PickersDayFiller = styled('div', {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, styleArg({\n theme,\n ownerState\n}), {\n visibility: 'hidden'\n}));\n\nconst noop = () => {};\n\nconst PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps, forwardedRef) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersDay'\n });\n\n const {\n autoFocus = false,\n className,\n day,\n disabled = false,\n disableHighlightToday = false,\n disableMargin = false,\n isAnimating,\n onClick,\n onDayFocus = noop,\n onDaySelect,\n onFocus,\n onKeyDown,\n outsideCurrentMonth,\n selected = false,\n showDaysOutsideCurrentMonth = false,\n children,\n today: isToday = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n autoFocus,\n disabled,\n disableHighlightToday,\n disableMargin,\n selected,\n showDaysOutsideCurrentMonth,\n today: isToday\n });\n\n const classes = useUtilityClasses(ownerState);\n const utils = useUtils();\n const ref = React.useRef(null);\n const handleRef = useForkRef(ref, forwardedRef); // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n\n useEnhancedEffect(() => {\n if (autoFocus && !disabled && !isAnimating && !outsideCurrentMonth) {\n // ref.current being null would be a bug in MUI\n ref.current.focus();\n }\n }, [autoFocus, disabled, isAnimating, outsideCurrentMonth]);\n\n const handleFocus = event => {\n if (onDayFocus) {\n onDayFocus(day);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleClick = event => {\n if (!disabled) {\n onDaySelect(day, 'finish');\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const theme = useTheme();\n\n function handleKeyDown(event) {\n if (onKeyDown !== undefined) {\n onKeyDown(event);\n }\n\n switch (event.key) {\n case 'ArrowUp':\n onDayFocus(utils.addDays(day, -7));\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n onDayFocus(utils.addDays(day, 7));\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n onDayFocus(utils.addDays(day, theme.direction === 'ltr' ? -1 : 1));\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n onDayFocus(utils.addDays(day, theme.direction === 'ltr' ? 1 : -1));\n event.preventDefault();\n break;\n\n case 'Home':\n onDayFocus(utils.startOfWeek(day));\n event.preventDefault();\n break;\n\n case 'End':\n onDayFocus(utils.endOfWeek(day));\n event.preventDefault();\n break;\n\n case 'PageUp':\n onDayFocus(utils.getNextMonth(day));\n event.preventDefault();\n break;\n\n case 'PageDown':\n onDayFocus(utils.getPreviousMonth(day));\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n if (outsideCurrentMonth && !showDaysOutsideCurrentMonth) {\n return /*#__PURE__*/_jsx(PickersDayFiller, {\n className: clsx(classes.root, classes.hiddenDaySpacingFiller, className),\n ownerState: ownerState\n });\n }\n\n return /*#__PURE__*/_jsx(PickersDayRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: handleRef,\n centerRipple: true,\n disabled: disabled,\n \"aria-label\": !children ? utils.format(day, 'fullDate') : undefined,\n tabIndex: selected ? 0 : -1,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick\n }, other, {\n children: !children ? utils.format(day, 'dayOfMonth') : children\n }));\n});\nexport const areDayPropsEqual = (prevProps, nextProps) => {\n return prevProps.autoFocus === nextProps.autoFocus && prevProps.isAnimating === nextProps.isAnimating && prevProps.today === nextProps.today && prevProps.disabled === nextProps.disabled && prevProps.selected === nextProps.selected && prevProps.disableMargin === nextProps.disableMargin && prevProps.showDaysOutsideCurrentMonth === nextProps.showDaysOutsideCurrentMonth && prevProps.disableHighlightToday === nextProps.disableHighlightToday && prevProps.className === nextProps.className && prevProps.outsideCurrentMonth === nextProps.outsideCurrentMonth && prevProps.onDayFocus === nextProps.onDayFocus && prevProps.onDaySelect === nextProps.onDaySelect;\n};\nprocess.env.NODE_ENV !== \"production\" ? PickersDayRaw.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The date to show.\n */\n day: PropTypes.any.isRequired,\n\n /**\n * If `true`, renders as disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, todays date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * If `true`, days are rendering without margin. Useful for displaying linked range of days.\n * @default false\n */\n disableMargin: PropTypes.bool,\n isAnimating: PropTypes.bool,\n onDayFocus: PropTypes.func,\n onDaySelect: PropTypes.func.isRequired,\n\n /**\n * If `true`, day is outside of month and will be hidden.\n */\n outsideCurrentMonth: PropTypes.bool.isRequired,\n\n /**\n * If `true`, renders as selected.\n * @default false\n */\n selected: PropTypes.bool,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: 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 * If `true`, renders as today date.\n * @default false\n */\n today: PropTypes.bool\n} : void 0;\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [PickersDay API](https://mui.com/x/api/date-pickers/pickers-day/)\n */\n\nexport const PickersDay = /*#__PURE__*/React.memo(PickersDayRaw, areDayPropsEqual);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"reduceAnimations\", \"slideDirection\", \"transKey\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersSlideTransition', ['root', 'slideEnter-left', 'slideEnter-right', 'slideEnterActive', 'slideEnterActive', 'slideExit', 'slideExitActiveLeft-left', 'slideExitActiveLeft-right']);\nexport const slideAnimationDuration = 350;\nconst PickersSlideTransitionRoot = styled(TransitionGroup)(({\n theme\n}) => {\n const slideTransition = theme.transitions.create('transform', {\n duration: slideAnimationDuration,\n easing: 'cubic-bezier(0.35, 0.8, 0.4, 1)'\n });\n return {\n display: 'block',\n position: 'relative',\n overflowX: 'hidden',\n '& > *': {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0\n },\n [`& .${classes['slideEnter-left']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n zIndex: 1\n },\n [`& .${classes['slideEnter-right']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n zIndex: 1\n },\n [`& .${classes.slideEnterActive}`]: {\n transform: 'translate(0%)',\n transition: slideTransition\n },\n [`& .${classes.slideExit}`]: {\n transform: 'translate(0%)'\n },\n [`& .${classes['slideExitActiveLeft-left']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n transition: slideTransition,\n zIndex: 0\n },\n [`& .${classes['slideExitActiveLeft-right']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n transition: slideTransition,\n zIndex: 0\n }\n };\n});\n/**\n * @ignore - do not document.\n */\n\nexport const PickersSlideTransition = _ref => {\n let {\n children,\n className,\n reduceAnimations,\n slideDirection,\n transKey\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n if (reduceAnimations) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx(classes.root, className),\n children: children\n });\n }\n\n const transitionClasses = {\n exit: classes.slideExit,\n enterActive: classes.slideEnterActive,\n enter: classes[`slideEnter-${slideDirection}`],\n exitActive: classes[`slideExitActiveLeft-${slideDirection}`]\n };\n return /*#__PURE__*/_jsx(PickersSlideTransitionRoot, {\n className: clsx(classes.root, className),\n childFactory: element => /*#__PURE__*/React.cloneElement(element, {\n classNames: transitionClasses\n }),\n children: /*#__PURE__*/_jsx(CSSTransition, _extends({\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: slideAnimationDuration,\n classNames: transitionClasses\n }, other, {\n children: children\n }), transKey)\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { PickersDay } from '../PickersDay/PickersDay';\nimport { useUtils, useNow } from '../internals/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { PickersSlideTransition } from './PickersSlideTransition';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst weeksContainerHeight = (DAY_SIZE + DAY_MARGIN * 4) * 6;\nconst PickersCalendarDayHeader = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n});\nconst PickersCalendarWeekDayLabel = styled(Typography)(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: theme.palette.text.secondary\n}));\nconst PickersCalendarLoadingContainer = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarSlideTransition = styled(PickersSlideTransition)({\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarWeekContainer = styled('div')({\n overflow: 'hidden'\n});\nconst PickersCalendarWeek = styled('div')({\n margin: `${DAY_MARGIN}px 0`,\n display: 'flex',\n justifyContent: 'center'\n});\n/**\n * @ignore - do not document.\n */\n\nexport function DayPicker(props) {\n const {\n autoFocus,\n onFocusedDayChange,\n className,\n currentMonth,\n selectedDays,\n disabled,\n disableHighlightToday,\n focusedDay,\n isDateDisabled,\n isMonthSwitchingAnimating,\n loading,\n onSelectedDaysChange,\n onMonthSwitchingAnimationEnd,\n readOnly,\n reduceAnimations,\n renderDay,\n renderLoading = () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n showDaysOutsideCurrentMonth,\n slideDirection,\n TransitionProps\n } = props;\n const now = useNow();\n const utils = useUtils();\n const handleDaySelect = React.useCallback((day, isFinish = 'finish') => {\n if (readOnly) {\n return;\n }\n\n onSelectedDaysChange(day, isFinish);\n }, [onSelectedDaysChange, readOnly]);\n const currentMonthNumber = utils.getMonth(currentMonth);\n const validSelectedDays = selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)); // need a new ref whenever the `key` of the transition changes: http://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.\n\n const transitionKey = currentMonthNumber; // eslint-disable-next-line react-hooks/exhaustive-deps\n\n const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(PickersCalendarDayHeader, {\n children: utils.getWeekdays().map((day, i) => /*#__PURE__*/_jsx(PickersCalendarWeekDayLabel, {\n \"aria-hidden\": true,\n variant: \"caption\",\n children: day.charAt(0).toUpperCase()\n }, day + i.toString()))\n }), loading ? /*#__PURE__*/_jsx(PickersCalendarLoadingContainer, {\n children: renderLoading()\n }) : /*#__PURE__*/_jsx(PickersCalendarSlideTransition, _extends({\n transKey: transitionKey,\n onExited: onMonthSwitchingAnimationEnd,\n reduceAnimations: reduceAnimations,\n slideDirection: slideDirection,\n className: className\n }, TransitionProps, {\n nodeRef: slideNodeRef,\n children: /*#__PURE__*/_jsx(PickersCalendarWeekContainer, {\n ref: slideNodeRef,\n role: \"grid\",\n children: utils.getWeekArray(currentMonth).map(week => /*#__PURE__*/_jsx(PickersCalendarWeek, {\n role: \"row\",\n children: week.map(day => {\n const pickersDayProps = {\n key: day == null ? void 0 : day.toString(),\n day,\n isAnimating: isMonthSwitchingAnimating,\n disabled: disabled || isDateDisabled(day),\n autoFocus: autoFocus && focusedDay !== null && utils.isSameDay(day, focusedDay),\n today: utils.isSameDay(day, now),\n outsideCurrentMonth: utils.getMonth(day) !== currentMonthNumber,\n selected: validSelectedDays.some(selectedDay => utils.isSameDay(selectedDay, day)),\n disableHighlightToday,\n showDaysOutsideCurrentMonth,\n onDayFocus: onFocusedDayChange,\n onDaySelect: handleDaySelect\n };\n return renderDay ? renderDay(day, validSelectedDays, pickersDayProps) : /*#__PURE__*/_jsx(\"div\", {\n role: \"cell\",\n children: /*#__PURE__*/_jsx(PickersDay, _extends({}, pickersDayProps))\n }, pickersDayProps.key);\n })\n }, `week-${week[0]}`))\n })\n }))]\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Fade from '@mui/material/Fade';\nimport { styled } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { PickersFadeTransitionGroup } from './PickersFadeTransitionGroup';\nimport { ArrowDropDown } from '../internals/components/icons';\nimport { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';\nimport { usePreviousMonthDisabled, useNextMonthDisabled } from '../internals/hooks/date-helpers-hooks';\nimport { buildDeprecatedPropsWarning } from '../internals/utils/warning';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersCalendarHeaderRoot = styled('div')({\n display: 'flex',\n alignItems: 'center',\n marginTop: 16,\n marginBottom: 8,\n paddingLeft: 24,\n paddingRight: 12,\n // prevent jumping in safari\n maxHeight: 30,\n minHeight: 30\n});\nconst PickersCalendarHeaderLabel = styled('div')(({\n theme\n}) => _extends({\n display: 'flex',\n maxHeight: 30,\n overflow: 'hidden',\n alignItems: 'center',\n cursor: 'pointer',\n marginRight: 'auto'\n}, theme.typography.body1, {\n fontWeight: theme.typography.fontWeightMedium\n}));\nconst PickersCalendarHeaderLabelItem = styled('div')({\n marginRight: 6\n});\nconst PickersCalendarHeaderSwitchViewButton = styled(IconButton)({\n marginRight: 'auto'\n});\nconst PickersCalendarHeaderSwitchView = styled(ArrowDropDown)(({\n theme,\n ownerState\n}) => _extends({\n willChange: 'transform',\n transition: theme.transitions.create('transform'),\n transform: 'rotate(0deg)'\n}, ownerState.openView === 'year' && {\n transform: 'rotate(180deg)'\n}));\n\nfunction getSwitchingViewAriaText(view) {\n return view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view';\n}\n\nconst deprecatedPropsWarning = buildDeprecatedPropsWarning('Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information.');\n/**\n * @ignore - do not document.\n */\n\nexport function PickersCalendarHeader(props) {\n const {\n components = {},\n componentsProps = {},\n currentMonth: month,\n disabled,\n disableFuture,\n disablePast,\n getViewSwitchingButtonText = getSwitchingViewAriaText,\n leftArrowButtonText: leftArrowButtonTextProp,\n maxDate,\n minDate,\n onMonthChange,\n onViewChange,\n openView: currentView,\n reduceAnimations,\n rightArrowButtonText: rightArrowButtonTextProp,\n views\n } = props;\n deprecatedPropsWarning({\n leftArrowButtonText: leftArrowButtonTextProp,\n rightArrowButtonText: rightArrowButtonTextProp\n });\n const localeText = useLocaleText();\n const leftArrowButtonText = leftArrowButtonTextProp != null ? leftArrowButtonTextProp : localeText.previousMonth;\n const rightArrowButtonText = rightArrowButtonTextProp != null ? rightArrowButtonTextProp : localeText.nextMonth;\n const utils = useUtils();\n const switchViewButtonProps = componentsProps.switchViewButton || {};\n\n const selectNextMonth = () => onMonthChange(utils.getNextMonth(month), 'left');\n\n const selectPreviousMonth = () => onMonthChange(utils.getPreviousMonth(month), 'right');\n\n const isNextMonthDisabled = useNextMonthDisabled(month, {\n disableFuture,\n maxDate\n });\n const isPreviousMonthDisabled = usePreviousMonthDisabled(month, {\n disablePast,\n minDate\n });\n\n const handleToggleView = () => {\n if (views.length === 1 || !onViewChange || disabled) {\n return;\n }\n\n if (views.length === 2) {\n onViewChange(views.find(view => view !== currentView) || views[0]);\n } else {\n // switching only between first 2\n const nextIndexToOpen = views.indexOf(currentView) !== 0 ? 0 : 1;\n onViewChange(views[nextIndexToOpen]);\n }\n }; // No need to display more information\n\n\n if (views.length === 1 && views[0] === 'year') {\n return null;\n }\n\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, {\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(PickersCalendarHeaderLabel, {\n role: \"presentation\",\n onClick: handleToggleView,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersFadeTransitionGroup, {\n reduceAnimations: reduceAnimations,\n transKey: utils.format(month, 'monthAndYear'),\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderLabelItem, {\n \"aria-live\": \"polite\",\n ownerState: ownerState,\n children: utils.format(month, 'monthAndYear')\n })\n }), views.length > 1 && !disabled && /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewButton, _extends({\n size: \"small\",\n as: components.SwitchViewButton,\n \"aria-label\": getViewSwitchingButtonText(currentView)\n }, switchViewButtonProps, {\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchView, {\n as: components.SwitchViewIcon,\n ownerState: ownerState\n })\n }))]\n }), /*#__PURE__*/_jsx(Fade, {\n in: currentView === 'day',\n children: /*#__PURE__*/_jsx(PickersArrowSwitcher, {\n leftArrowButtonText: leftArrowButtonText,\n rightArrowButtonText: rightArrowButtonText,\n components: components,\n componentsProps: componentsProps,\n onLeftClick: selectPreviousMonth,\n onRightClick: selectNextMonth,\n isLeftDisabled: isPreviousMonthDisabled,\n isRightDisabled: isNextMonthDisabled\n })\n })]\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { useForkRef, capitalize } from '@mui/material/utils';\nimport { alpha, styled } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, generateUtilityClass, generateUtilityClasses } from '@mui/material';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getPickersYearUtilityClass(slot) {\n return generateUtilityClass('PrivatePickersYear', slot);\n}\nexport const pickersYearClasses = generateUtilityClasses('PrivatePickersYear', ['root', 'modeMobile', 'modeDesktop', 'yearButton', 'disabled', 'selected']);\n\nconst useUtilityClasses = ownerState => {\n const {\n wrapperVariant,\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root', wrapperVariant && `mode${capitalize(wrapperVariant)}`],\n yearButton: ['yearButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersYearUtilityClass, classes);\n};\n\nconst PickersYearRoot = styled('div')(({\n ownerState\n}) => _extends({\n flexBasis: '33.3%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n}, (ownerState == null ? void 0 : ownerState.wrapperVariant) === 'desktop' && {\n flexBasis: '25%'\n}));\nconst PickersYearButton = styled('button')(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus, &:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n [`&.${pickersYearClasses.disabled}`]: {\n color: theme.palette.text.secondary\n },\n [`&.${pickersYearClasses.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport const PickersYear = /*#__PURE__*/React.forwardRef(function PickersYear(props, forwardedRef) {\n const {\n autoFocus,\n className,\n children,\n disabled,\n onClick,\n onKeyDown,\n selected,\n value\n } = props;\n const ref = React.useRef(null);\n const refHandle = useForkRef(ref, forwardedRef);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n\n const ownerState = _extends({}, props, {\n wrapperVariant\n });\n\n const classes = useUtilityClasses(ownerState); // TODO: Can we just forward this to the button?\n\n React.useEffect(() => {\n if (autoFocus) {\n // `ref.current` being `null` would be a bug in MUIu\n ref.current.focus();\n }\n }, [autoFocus]);\n return /*#__PURE__*/_jsx(PickersYearRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(PickersYearButton, {\n ref: refHandle,\n disabled: disabled,\n type: \"button\",\n tabIndex: selected ? 0 : -1,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n className: classes.yearButton,\n ownerState: ownerState,\n children: children\n })\n });\n});","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getYearPickerUtilityClass(slot) {\n return generateUtilityClass('MuiYearPicker', slot);\n}\nexport const yearPickerClasses = generateUtilityClasses('MuiYearPicker', ['root']);","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTheme, styled, useThemeProps as useThemProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport clsx from 'clsx';\nimport { PickersYear } from './PickersYear';\nimport { useUtils, useNow } from '../internals/hooks/useUtils';\nimport { findClosestEnabledDate } from '../internals/utils/date-utils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { getYearPickerUtilityClass } from './yearPickerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getYearPickerUtilityClass, classes);\n};\n\nconst YearPickerRoot = styled('div', {\n name: 'MuiYearPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflowY: 'auto',\n height: '100%',\n margin: '0 4px'\n});\nexport const YearPicker = /*#__PURE__*/React.forwardRef(function YearPicker(inProps, ref) {\n const props = useThemProps({\n props: inProps,\n name: 'MuiYearPicker'\n });\n const {\n autoFocus,\n className,\n date,\n disabled,\n disableFuture,\n disablePast,\n isDateDisabled,\n maxDate,\n minDate,\n onChange,\n onFocusedDayChange,\n onYearChange,\n readOnly,\n shouldDisableYear\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const now = useNow();\n const theme = useTheme();\n const utils = useUtils();\n const selectedDate = date || now;\n const currentYear = utils.getYear(selectedDate);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const selectedYearRef = React.useRef(null);\n const [focusedYear, setFocusedYear] = React.useState(currentYear);\n const isYearDisabled = React.useCallback(dateToValidate => {\n if (disablePast && utils.isBeforeYear(dateToValidate, now)) {\n return true;\n }\n\n if (disableFuture && utils.isAfterYear(dateToValidate, now)) {\n return true;\n }\n\n if (minDate && utils.isBeforeYear(dateToValidate, minDate)) {\n return true;\n }\n\n if (maxDate && utils.isAfterYear(dateToValidate, maxDate)) {\n return true;\n }\n\n if (shouldDisableYear && shouldDisableYear(dateToValidate)) {\n return true;\n }\n\n return false;\n }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, utils]);\n\n const handleYearSelection = (event, year, isFinish = 'finish') => {\n if (readOnly) {\n return;\n }\n\n const submitDate = newDate => {\n onChange(newDate, isFinish);\n\n if (onFocusedDayChange) {\n onFocusedDayChange(newDate || now);\n }\n\n if (onYearChange) {\n onYearChange(newDate);\n }\n };\n\n const newDate = utils.setYear(selectedDate, year);\n\n if (isDateDisabled(newDate)) {\n const closestEnabledDate = findClosestEnabledDate({\n utils,\n date: newDate,\n minDate,\n maxDate,\n disablePast: Boolean(disablePast),\n disableFuture: Boolean(disableFuture),\n shouldDisableDate: isDateDisabled\n });\n submitDate(closestEnabledDate || now);\n } else {\n submitDate(newDate);\n }\n };\n\n const focusYear = React.useCallback(year => {\n if (!isYearDisabled(utils.setYear(selectedDate, year))) {\n setFocusedYear(year);\n }\n }, [selectedDate, isYearDisabled, utils]);\n const yearsInRow = wrapperVariant === 'desktop' ? 4 : 3;\n\n const handleKeyDown = (event, year) => {\n switch (event.key) {\n case 'ArrowUp':\n focusYear(year - yearsInRow);\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n focusYear(year + yearsInRow);\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n focusYear(year + (theme.direction === 'ltr' ? -1 : 1));\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n focusYear(year + (theme.direction === 'ltr' ? 1 : -1));\n event.preventDefault();\n break;\n\n default:\n break;\n }\n };\n\n return /*#__PURE__*/_jsx(YearPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: utils.getYearRange(minDate, maxDate).map(year => {\n const yearNumber = utils.getYear(year);\n const selected = yearNumber === currentYear;\n return /*#__PURE__*/_jsx(PickersYear, {\n selected: selected,\n value: yearNumber,\n onClick: handleYearSelection,\n onKeyDown: handleKeyDown,\n autoFocus: autoFocus && yearNumber === focusedYear,\n ref: selected ? selectedYearRef : undefined,\n disabled: disabled || isYearDisabled(year),\n children: utils.format(year, 'year')\n }, utils.format(year, 'year'));\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? YearPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n date: PropTypes.any,\n disabled: PropTypes.bool,\n disableFuture: PropTypes.bool,\n disablePast: PropTypes.bool,\n isDateDisabled: PropTypes.func.isRequired,\n maxDate: PropTypes.any.isRequired,\n minDate: PropTypes.any.isRequired,\n onChange: PropTypes.func.isRequired,\n onFocusedDayChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n readOnly: PropTypes.bool,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Return `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func\n} : void 0;","export const defaultReduceAnimations = typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent);","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport const getCalendarPickerUtilityClass = slot => generateUtilityClass('MuiCalendarPicker', slot);\nexport const calendarPickerClasses = generateUtilityClasses('MuiCalendarPicker', ['root', 'viewTransitionContainer']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoFocus\", \"onViewChange\", \"date\", \"disableFuture\", \"disablePast\", \"defaultCalendarMonth\", \"loading\", \"maxDate\", \"minDate\", \"onChange\", \"onMonthChange\", \"reduceAnimations\", \"renderLoading\", \"shouldDisableDate\", \"shouldDisableMonth\", \"shouldDisableYear\", \"view\", \"views\", \"openTo\", \"className\", \"disabled\", \"readOnly\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { MonthPicker } from '../MonthPicker/MonthPicker';\nimport { useCalendarState } from './useCalendarState';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { PickersFadeTransitionGroup } from './PickersFadeTransitionGroup';\nimport { DayPicker } from './DayPicker';\nimport { useViews } from '../internals/hooks/useViews';\nimport { PickersCalendarHeader } from './PickersCalendarHeader';\nimport { YearPicker } from '../YearPicker/YearPicker';\nimport { findClosestEnabledDate } from '../internals/utils/date-utils';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\nimport { defaultReduceAnimations } from '../internals/utils/defaultReduceAnimations';\nimport { getCalendarPickerUtilityClass } from './calendarPickerClasses';\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 } = ownerState;\n const slots = {\n root: ['root'],\n viewTransitionContainer: ['viewTransitionContainer']\n };\n return composeClasses(slots, getCalendarPickerUtilityClass, classes);\n};\n\nconst CalendarPickerRoot = styled(PickerViewRoot, {\n name: 'MuiCalendarPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column'\n});\nconst CalendarPickerViewTransitionContainer = styled(PickersFadeTransitionGroup, {\n name: 'MuiCalendarPicker',\n slot: 'ViewTransitionContainer',\n overridesResolver: (props, styles) => styles.viewTransitionContainer\n})({\n overflowY: 'auto'\n});\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [CalendarPicker API](https://mui.com/x/api/date-pickers/calendar-picker/)\n */\nconst CalendarPicker = /*#__PURE__*/React.forwardRef(function CalendarPicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCalendarPicker'\n });\n\n const {\n autoFocus,\n onViewChange,\n date,\n disableFuture = false,\n disablePast = false,\n defaultCalendarMonth,\n loading = false,\n maxDate: maxDateProp,\n minDate: minDateProp,\n onChange,\n onMonthChange,\n reduceAnimations = defaultReduceAnimations,\n renderLoading = () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n view,\n views = ['year', 'day'],\n openTo = 'day',\n className,\n disabled,\n readOnly\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const minDate = minDateProp != null ? minDateProp : defaultDates.minDate;\n const maxDate = maxDateProp != null ? maxDateProp : defaultDates.maxDate;\n const {\n openView,\n setOpenView\n } = useViews({\n view,\n views,\n openTo,\n onChange,\n onViewChange\n });\n const {\n calendarState,\n changeFocusedDay,\n changeMonth,\n isDateDisabled,\n handleChangeMonth,\n onMonthSwitchingAnimationEnd\n } = useCalendarState({\n date,\n defaultCalendarMonth,\n reduceAnimations,\n onMonthChange,\n minDate,\n maxDate,\n shouldDisableDate,\n disablePast,\n disableFuture\n });\n const onSelectedDayChange = React.useCallback((day, isFinish) => {\n if (date && day) {\n // If there is a date already selected, then we want to keep its time\n return onChange(utils.mergeDateAndTime(day, date), isFinish);\n }\n\n return onChange(day, isFinish);\n }, [utils, date, onChange]);\n React.useEffect(() => {\n if (date && isDateDisabled(date)) {\n const closestEnabledDate = findClosestEnabledDate({\n utils,\n date,\n minDate,\n maxDate,\n disablePast,\n disableFuture,\n shouldDisableDate: isDateDisabled\n });\n onChange(closestEnabledDate, 'partial');\n } // This call is too expensive to run it on each prop change.\n // So just ensure that we are not rendering disabled as selected on mount.\n\n }, []); // eslint-disable-line\n\n React.useEffect(() => {\n if (date) {\n changeMonth(date);\n }\n }, [date]); // eslint-disable-line\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const monthPickerProps = {\n className,\n date,\n disabled,\n disablePast,\n disableFuture,\n onChange,\n minDate,\n maxDate,\n shouldDisableMonth,\n onMonthChange,\n readOnly\n }; // When disable, limit the view to the selected date\n\n const minDateWithDisabled = disabled && date || minDate;\n const maxDateWithDisabled = disabled && date || maxDate;\n return /*#__PURE__*/_jsxs(CalendarPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersCalendarHeader, _extends({}, other, {\n views: views,\n openView: openView,\n currentMonth: calendarState.currentMonth,\n onViewChange: setOpenView,\n onMonthChange: (newMonth, direction) => handleChangeMonth({\n newMonth,\n direction\n }),\n minDate: minDateWithDisabled,\n maxDate: maxDateWithDisabled,\n disabled: disabled,\n disablePast: disablePast,\n disableFuture: disableFuture,\n reduceAnimations: reduceAnimations\n })), /*#__PURE__*/_jsx(CalendarPickerViewTransitionContainer, {\n reduceAnimations: reduceAnimations,\n className: classes.viewTransitionContainer,\n transKey: openView,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsxs(\"div\", {\n children: [openView === 'year' && /*#__PURE__*/_jsx(YearPicker, _extends({}, other, {\n autoFocus: autoFocus,\n date: date,\n onChange: onChange,\n minDate: minDate,\n maxDate: maxDate,\n disableFuture: disableFuture,\n disablePast: disablePast,\n isDateDisabled: isDateDisabled,\n shouldDisableYear: shouldDisableYear,\n onFocusedDayChange: changeFocusedDay,\n disabled: disabled,\n readOnly: readOnly\n })), openView === 'month' && /*#__PURE__*/_jsx(MonthPicker, _extends({}, monthPickerProps)), openView === 'day' && /*#__PURE__*/_jsx(DayPicker, _extends({}, other, calendarState, {\n autoFocus: autoFocus,\n onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,\n onFocusedDayChange: changeFocusedDay,\n reduceAnimations: reduceAnimations,\n selectedDays: [date],\n onSelectedDaysChange: onSelectedDayChange,\n isDateDisabled: isDateDisabled,\n loading: loading,\n renderLoading: renderLoading,\n disabled: disabled,\n readOnly: readOnly\n }))]\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CalendarPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n\n /**\n * The components used for each slot.\n * Either a string to use an HTML element or a component.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.object,\n date: PropTypes.any,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, todays date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Max selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Min selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired on date change\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new year.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Initially open view.\n * @default 'day'\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to check.\n * @returns {boolean} If `true` the day will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Return `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * Controlled open view.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Views for calendar picker.\n * @default ['year', 'day']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;\nexport { CalendarPicker };","export function getTextFieldAriaText(rawValue, utils) {\n // TODO: should `isValid` narrow `TDate | null` to `NonNullable`?\n // Either we allow `TDate | null` to be valid and guard against calling `formatByString` with `null`.\n // Or we ensure `formatByString` is callable with `null`.\n return rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Choose date';\n}\nexport const getDisplayDate = (utils, rawValue, inputFormat) => {\n const date = utils.date(rawValue);\n const isEmpty = rawValue === null;\n\n if (isEmpty) {\n return '';\n }\n\n return utils.isValid(date) ? utils.formatByString( // TODO: should `isValid` narrow `TDate | null` to `NonNullable`?\n // Either we allow `TDate | null` to be valid and guard against calling `formatByString` with `null`.\n // Or we ensure `formatByString` is callable with `null`.\n date, inputFormat) : '';\n};\nconst MASK_USER_INPUT_SYMBOL = '_';\nconst staticDateWith2DigitTokens = '2019-11-21T22:30:00.000';\nconst staticDateWith1DigitTokens = '2019-01-01T09:00:00.000';\nexport function checkMaskIsValidForCurrentFormat(mask, format, acceptRegex, utils) {\n const formattedDateWith1Digit = utils.formatByString(utils.date(staticDateWith1DigitTokens), format);\n const inferredFormatPatternWith1Digits = formattedDateWith1Digit.replace(acceptRegex, MASK_USER_INPUT_SYMBOL);\n const inferredFormatPatternWith2Digits = utils.formatByString(utils.date(staticDateWith2DigitTokens), format).replace(acceptRegex, '_');\n const isMaskValid = inferredFormatPatternWith2Digits === mask && inferredFormatPatternWith1Digits === mask;\n\n if (!isMaskValid && utils.lib !== 'luxon' && process.env.NODE_ENV !== 'production') {\n const defaultWarning = [`The mask \"${mask}\" you passed is not valid for the format used ${format}.`, `Falling down to uncontrolled no-mask input.`];\n\n if (format.includes('MMM')) {\n console.warn([...defaultWarning, `Mask does not support literals such as 'MMM'.`, `Either use numbers with fix length or disable mask feature with 'disableMaskedInput' prop`].join('\\n'));\n } else if (inferredFormatPatternWith2Digits !== mask && inferredFormatPatternWith1Digits === mask) {\n console.warn([...defaultWarning, `Mask does not support numbers with variable length such as 'M'.`, `Either use numbers with fix length or disable mask feature with 'disableMaskedInput' prop`].join('\\n'));\n } else {\n console.warn(defaultWarning.join('\\n'));\n }\n }\n\n return isMaskValid;\n}\nexport const maskedDateFormatter = (mask, acceptRegexp) => value => {\n let outputCharIndex = 0;\n return value.split('').map((char, inputCharIndex) => {\n acceptRegexp.lastIndex = 0;\n\n if (outputCharIndex > mask.length - 1) {\n return '';\n }\n\n const maskChar = mask[outputCharIndex];\n const nextMaskChar = mask[outputCharIndex + 1];\n const acceptedChar = acceptRegexp.test(char) ? char : '';\n const formattedChar = maskChar === MASK_USER_INPUT_SYMBOL ? acceptedChar : maskChar + acceptedChar;\n outputCharIndex += formattedChar.length;\n const isLastCharacter = inputCharIndex === value.length - 1;\n\n if (isLastCharacter && nextMaskChar && nextMaskChar !== MASK_USER_INPUT_SYMBOL) {\n // when cursor at the end of mask part (e.g. month) prerender next symbol \"21\" -> \"21/\"\n return formattedChar ? formattedChar + nextMaskChar : '';\n }\n\n return formattedChar;\n }).join('');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"components\", \"disableOpenPicker\", \"getOpenDialogAriaText\", \"InputAdornmentProps\", \"InputProps\", \"inputRef\", \"openPicker\", \"OpenPickerButtonProps\", \"renderInput\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport { useUtils } from '../hooks/useUtils';\nimport { Calendar } from './icons';\nimport { useMaskedInput } from '../hooks/useMaskedInput';\nimport { getTextFieldAriaText } from '../utils/text-field-helper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const KeyboardDateInput = /*#__PURE__*/React.forwardRef(function KeyboardDateInput(props, ref) {\n const {\n components = {},\n disableOpenPicker,\n getOpenDialogAriaText = getTextFieldAriaText,\n InputAdornmentProps,\n InputProps,\n inputRef,\n openPicker,\n OpenPickerButtonProps,\n renderInput\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const textFieldProps = useMaskedInput(other);\n const adornmentPosition = (InputAdornmentProps == null ? void 0 : InputAdornmentProps.position) || 'end';\n const OpenPickerIcon = components.OpenPickerIcon || Calendar;\n return renderInput(_extends({\n ref,\n inputRef\n }, textFieldProps, {\n InputProps: _extends({}, InputProps, {\n [`${adornmentPosition}Adornment`]: disableOpenPicker ? undefined : /*#__PURE__*/_jsx(InputAdornment, _extends({\n position: adornmentPosition\n }, InputAdornmentProps, {\n children: /*#__PURE__*/_jsx(IconButton, _extends({\n edge: adornmentPosition,\n disabled: other.disabled || other.readOnly,\n \"aria-label\": getOpenDialogAriaText(other.rawValue, utils)\n }, OpenPickerButtonProps, {\n onClick: openPicker,\n children: /*#__PURE__*/_jsx(OpenPickerIcon, {})\n }))\n }))\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? KeyboardDateInput.propTypes = {\n acceptRegex: PropTypes.instanceOf(RegExp),\n getOpenDialogAriaText: PropTypes.func,\n mask: PropTypes.string,\n OpenPickerButtonProps: PropTypes.object,\n renderInput: PropTypes.func.isRequired,\n rifmFormatter: PropTypes.func\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useRifm } from 'rifm';\nimport { useUtils } from './useUtils';\nimport { createDelegatedEventHandler } from '../utils/utils';\nimport { maskedDateFormatter, getDisplayDate, checkMaskIsValidForCurrentFormat } from '../utils/text-field-helper';\nexport const useMaskedInput = ({\n acceptRegex = /[\\d]/gi,\n disabled,\n disableMaskedInput,\n ignoreInvalidInputs,\n inputFormat,\n inputProps,\n label,\n mask,\n onChange,\n rawValue,\n readOnly,\n rifmFormatter,\n TextFieldProps,\n validationError\n}) => {\n const utils = useUtils();\n const [isFocused, setIsFocused] = React.useState(false);\n const formatHelperText = utils.getFormatHelperText(inputFormat);\n const shouldUseMaskedInput = React.useMemo(() => {\n // formatting of dates is a quite slow thing, so do not make useless .format calls\n if (!mask || disableMaskedInput) {\n return false;\n }\n\n return checkMaskIsValidForCurrentFormat(mask, inputFormat, acceptRegex, utils);\n }, [acceptRegex, disableMaskedInput, inputFormat, mask, utils]);\n const formatter = React.useMemo(() => shouldUseMaskedInput && mask ? maskedDateFormatter(mask, acceptRegex) : st => st, [acceptRegex, mask, shouldUseMaskedInput]); // TODO: Implement with controlled vs uncontrolled `rawValue`\n\n const currentInputValue = getDisplayDate(utils, rawValue, inputFormat);\n const [innerInputValue, setInnerInputValue] = React.useState(currentInputValue);\n const previousInputValueRef = React.useRef(currentInputValue);\n React.useEffect(() => {\n previousInputValueRef.current = currentInputValue;\n }, [currentInputValue]);\n const notTyping = !isFocused;\n const valueChanged = previousInputValueRef.current !== currentInputValue; // Update the input value only if the value changed outside of typing\n\n if (notTyping && valueChanged && (rawValue === null || utils.isValid(rawValue))) {\n if (currentInputValue !== innerInputValue) {\n setInnerInputValue(currentInputValue);\n }\n }\n\n const handleChange = text => {\n const finalString = text === '' || text === mask ? '' : text;\n setInnerInputValue(finalString);\n const date = finalString === null ? null : utils.parse(finalString, inputFormat);\n\n if (ignoreInvalidInputs && !utils.isValid(date)) {\n return;\n }\n\n onChange(date, finalString || undefined);\n };\n\n const rifmProps = useRifm({\n value: innerInputValue,\n onChange: handleChange,\n format: rifmFormatter || formatter\n });\n const inputStateArgs = shouldUseMaskedInput ? rifmProps : {\n value: innerInputValue,\n onChange: event => {\n handleChange(event.currentTarget.value);\n }\n };\n return _extends({\n label,\n disabled,\n error: validationError,\n inputProps: _extends({}, inputStateArgs, {\n disabled,\n placeholder: formatHelperText,\n readOnly,\n type: shouldUseMaskedInput ? 'tel' : 'text'\n }, inputProps, {\n onFocus: createDelegatedEventHandler(() => {\n setIsFocused(true);\n }, inputProps == null ? void 0 : inputProps.onFocus),\n onBlur: createDelegatedEventHandler(() => {\n setIsFocused(false);\n }, inputProps == null ? void 0 : inputProps.onBlur)\n })\n }, TextFieldProps);\n};","import * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { arrayIncludes } from '../utils/utils';\n\nfunction getOrientation() {\n if (typeof window === 'undefined') {\n return 'portrait';\n }\n\n if (window.screen && window.screen.orientation && window.screen.orientation.angle) {\n return Math.abs(window.screen.orientation.angle) === 90 ? 'landscape' : 'portrait';\n } // Support IOS safari\n\n\n if (window.orientation) {\n return Math.abs(Number(window.orientation)) === 90 ? 'landscape' : 'portrait';\n }\n\n return 'portrait';\n}\n\nexport const useIsLandscape = (views, customOrientation) => {\n const [orientation, setOrientation] = React.useState(getOrientation);\n useEnhancedEffect(() => {\n const eventHandler = () => {\n setOrientation(getOrientation());\n };\n\n window.addEventListener('orientationchange', eventHandler);\n return () => {\n window.removeEventListener('orientationchange', eventHandler);\n };\n }, []);\n\n if (arrayIncludes(views, ['hours', 'minutes', 'seconds'])) {\n // could not display 13:34:44 in landscape mode\n return false;\n }\n\n const orientationToUse = customOrientation || orientation;\n return orientationToUse === 'landscape';\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"parsedValue\", \"DateInputProps\", \"isMobileKeyboardViewOpen\", \"onDateChange\", \"onViewChange\", \"openTo\", \"orientation\", \"showToolbar\", \"toggleMobileKeyboardView\", \"ToolbarComponent\", \"toolbarFormat\", \"toolbarPlaceholder\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { useViews } from '../../hooks/useViews';\nimport { ClockPicker } from '../../../ClockPicker/ClockPicker';\nimport { CalendarPicker } from '../../../CalendarPicker/CalendarPicker';\nimport { KeyboardDateInput } from '../KeyboardDateInput';\nimport { useIsLandscape } from '../../hooks/useIsLandscape';\nimport { WrapperVariantContext } from '../wrappers/WrapperVariantContext';\nimport { PickerViewRoot } from '../PickerViewRoot';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const MobileKeyboardInputView = styled('div')({\n padding: '16px 24px'\n});\nconst PickerRoot = styled('div')(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column'\n}, ownerState.isLandscape && {\n flexDirection: 'row'\n}));\nconst MobileKeyboardTextFieldProps = {\n fullWidth: true\n};\n\nconst isDatePickerView = view => view === 'year' || view === 'month' || view === 'day';\n\nconst isTimePickerView = view => view === 'hours' || view === 'minutes' || view === 'seconds';\n\nexport function CalendarOrClockPicker(props) {\n const {\n autoFocus,\n parsedValue,\n DateInputProps,\n isMobileKeyboardViewOpen,\n onDateChange,\n onViewChange,\n openTo,\n orientation,\n showToolbar,\n toggleMobileKeyboardView,\n ToolbarComponent = () => null,\n toolbarFormat,\n toolbarPlaceholder,\n toolbarTitle,\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isLandscape = useIsLandscape(views, orientation);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const toShowToolbar = showToolbar != null ? showToolbar : wrapperVariant !== 'desktop';\n const handleDateChange = React.useCallback((newDate, selectionState) => {\n onDateChange(newDate, wrapperVariant, selectionState);\n }, [onDateChange, wrapperVariant]);\n const handleViewChange = React.useCallback(newView => {\n if (isMobileKeyboardViewOpen) {\n toggleMobileKeyboardView();\n }\n\n if (onViewChange) {\n onViewChange(newView);\n }\n }, [isMobileKeyboardViewOpen, onViewChange, toggleMobileKeyboardView]);\n const {\n openView,\n setOpenView,\n handleChangeAndOpenNext\n } = useViews({\n view: undefined,\n views,\n openTo,\n onChange: handleDateChange,\n onViewChange: handleViewChange\n });\n return /*#__PURE__*/_jsxs(PickerRoot, {\n ownerState: {\n isLandscape\n },\n children: [toShowToolbar && /*#__PURE__*/_jsx(ToolbarComponent, _extends({}, other, {\n views: views,\n isLandscape: isLandscape,\n parsedValue: parsedValue,\n onChange: handleDateChange,\n setOpenView: setOpenView,\n openView: openView,\n toolbarTitle: toolbarTitle,\n toolbarFormat: toolbarFormat,\n toolbarPlaceholder: toolbarPlaceholder,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView\n })), /*#__PURE__*/_jsx(PickerViewRoot, {\n children: isMobileKeyboardViewOpen ? /*#__PURE__*/_jsx(MobileKeyboardInputView, {\n children: /*#__PURE__*/_jsx(KeyboardDateInput, _extends({}, DateInputProps, {\n ignoreInvalidInputs: true,\n disableOpenPicker: true,\n TextFieldProps: MobileKeyboardTextFieldProps\n }))\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [isDatePickerView(openView) && /*#__PURE__*/_jsx(CalendarPicker, _extends({\n autoFocus: autoFocus,\n date: parsedValue,\n onViewChange: setOpenView,\n onChange: handleChangeAndOpenNext,\n view: openView // Unclear why the predicate `isDatePickerView` does not imply the casted type\n ,\n views: views.filter(isDatePickerView)\n }, other)), isTimePickerView(openView) && /*#__PURE__*/_jsx(ClockPicker, _extends({}, other, {\n autoFocus: autoFocus,\n date: parsedValue,\n view: openView // Unclear why the predicate `isDatePickerView` does not imply the casted type\n ,\n views: views.filter(isTimePickerView),\n onChange: handleChangeAndOpenNext,\n onViewChange: setOpenView,\n showViewSwitcher: wrapperVariant === 'desktop'\n }))]\n })\n })]\n });\n}","import * as React from 'react';\nexport const useOpenState = ({\n open,\n onOpen,\n onClose\n}) => {\n const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;\n const [openState, setIsOpenState] = React.useState(false); // It is required to update inner state in useEffect in order to avoid situation when\n // Our component is not mounted yet, but `open` state is set to `true` (e.g. initially opened)\n\n React.useEffect(() => {\n if (isControllingOpenProp) {\n if (typeof open !== 'boolean') {\n throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');\n }\n\n setIsOpenState(open);\n }\n }, [isControllingOpenProp, open]);\n const setIsOpen = React.useCallback(newIsOpen => {\n if (!isControllingOpenProp) {\n setIsOpenState(newIsOpen);\n }\n\n if (newIsOpen && onOpen) {\n onOpen();\n }\n\n if (!newIsOpen && onClose) {\n onClose();\n }\n }, [isControllingOpenProp, onOpen, onClose]);\n return {\n isOpen: openState,\n setIsOpen\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useOpenState } from './useOpenState';\nimport { useUtils } from './useUtils';\nexport const usePickerState = (props, valueManager) => {\n const {\n onAccept,\n onChange,\n value,\n closeOnSelect\n } = props;\n const utils = useUtils();\n const {\n isOpen,\n setIsOpen\n } = useOpenState(props);\n const parsedDateValue = React.useMemo(() => valueManager.parseInput(utils, value), [valueManager, utils, value]);\n const [lastValidDateValue, setLastValidDateValue] = React.useState(parsedDateValue);\n const [dateState, setDateState] = React.useState(() => ({\n committed: parsedDateValue,\n draft: parsedDateValue,\n resetFallback: parsedDateValue\n }));\n const setDate = React.useCallback(params => {\n setDateState(prev => {\n switch (params.action) {\n case 'setAll':\n case 'acceptAndClose':\n {\n return {\n draft: params.value,\n committed: params.value,\n resetFallback: params.value\n };\n }\n\n case 'setCommitted':\n {\n return _extends({}, prev, {\n draft: params.value,\n committed: params.value\n });\n }\n\n case 'setDraft':\n {\n return _extends({}, prev, {\n draft: params.value\n });\n }\n\n default:\n {\n return prev;\n }\n }\n });\n\n if (!params.skipOnChangeCall && !valueManager.areValuesEqual(utils, dateState.committed, params.value)) {\n onChange(params.value);\n }\n\n if (params.action === 'acceptAndClose') {\n setIsOpen(false);\n\n if (onAccept && !valueManager.areValuesEqual(utils, dateState.resetFallback, params.value)) {\n onAccept(params.value);\n }\n }\n }, [onAccept, onChange, setIsOpen, dateState, utils, valueManager]);\n React.useEffect(() => {\n if (utils.isValid(parsedDateValue)) {\n setLastValidDateValue(parsedDateValue);\n }\n }, [utils, parsedDateValue]);\n React.useEffect(() => {\n if (isOpen) {\n // Update all dates in state to equal the current prop value\n setDate({\n action: 'setAll',\n value: parsedDateValue,\n skipOnChangeCall: true\n });\n }\n }, [isOpen]); // eslint-disable-line react-hooks/exhaustive-deps\n // Set the draft and committed date to equal the new prop value.\n\n if (!valueManager.areValuesEqual(utils, dateState.committed, parsedDateValue)) {\n setDate({\n action: 'setCommitted',\n value: parsedDateValue,\n skipOnChangeCall: true\n });\n }\n\n const wrapperProps = React.useMemo(() => ({\n open: isOpen,\n onClear: () => {\n // Reset all date in state to the empty value and close picker.\n setDate({\n value: valueManager.emptyValue,\n action: 'acceptAndClose'\n });\n },\n onAccept: () => {\n // Set all date in state to equal the current draft value and close picker.\n setDate({\n value: dateState.draft,\n action: 'acceptAndClose'\n });\n },\n onDismiss: () => {\n // Set all dates in state to equal the last committed date.\n // e.g. Reset the state to the last committed value.\n setDate({\n value: dateState.committed,\n action: 'acceptAndClose'\n });\n },\n onCancel: () => {\n // Set all dates in state to equal the last accepted date and close picker.\n // e.g. Reset the state to the last accepted value\n setDate({\n value: dateState.resetFallback,\n action: 'acceptAndClose'\n });\n },\n onSetToday: () => {\n // Set all dates in state to equal today and close picker.\n setDate({\n value: valueManager.getTodayValue(utils),\n action: 'acceptAndClose'\n });\n }\n }), [setDate, isOpen, utils, dateState, valueManager]); // Mobile keyboard view is a special case.\n // When it's open picker should work like closed, because we are just showing text field\n\n const [isMobileKeyboardViewOpen, setMobileKeyboardViewOpen] = React.useState(false);\n const pickerProps = React.useMemo(() => ({\n parsedValue: dateState.draft,\n isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: () => setMobileKeyboardViewOpen(!isMobileKeyboardViewOpen),\n onDateChange: (newDate, wrapperVariant, selectionState = 'partial') => {\n switch (selectionState) {\n case 'shallow':\n {\n // Update the `draft` state but do not fire `onChange`\n return setDate({\n action: 'setDraft',\n value: newDate,\n skipOnChangeCall: true\n });\n }\n\n case 'partial':\n {\n // Update the `draft` state and fire `onChange`\n return setDate({\n action: 'setDraft',\n value: newDate\n });\n }\n\n case 'finish':\n {\n if (closeOnSelect != null ? closeOnSelect : wrapperVariant === 'desktop') {\n // Set all dates in state to equal the new date and close picker.\n return setDate({\n value: newDate,\n action: 'acceptAndClose'\n });\n } // Updates the `committed` state and fire `onChange`\n\n\n return setDate({\n value: newDate,\n action: 'setCommitted'\n });\n }\n\n default:\n {\n throw new Error('MUI: Invalid selectionState passed to `onDateChange`');\n }\n }\n }\n }), [setDate, isMobileKeyboardViewOpen, dateState.draft, closeOnSelect]);\n const handleInputChange = React.useCallback((newParsedValue, keyboardInputValue) => {\n const cleanParsedValue = valueManager.valueReducer ? valueManager.valueReducer(utils, lastValidDateValue, newParsedValue) : newParsedValue;\n onChange(cleanParsedValue, keyboardInputValue);\n }, [onChange, valueManager, lastValidDateValue, utils]);\n const inputProps = React.useMemo(() => ({\n onChange: handleInputChange,\n open: isOpen,\n rawValue: value,\n openPicker: () => setIsOpen(true)\n }), [handleInputChange, isOpen, value, setIsOpen]);\n const pickerState = {\n pickerProps,\n inputProps,\n wrapperProps\n };\n React.useDebugValue(pickerState, () => ({\n MuiPickerState: {\n dateState,\n other: pickerState\n }\n }));\n return pickerState;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"PopperProps\", \"PaperProps\", \"ToolbarComponent\", \"TransitionComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDatePickerDefaultizedProps, datePickerValueManager } from '../DatePicker/shared';\nimport { DatePickerToolbar } from '../DatePicker/DatePickerToolbar';\nimport { DesktopWrapper } from '../internals/components/wrappers/DesktopWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateValidation } from '../internals/hooks/validation/useDateValidation';\nimport { KeyboardDateInput } from '../internals/components/KeyboardDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)\n */\nexport const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {\n const props = useDatePickerDefaultizedProps(inProps, 'MuiDesktopDatePicker');\n const validationError = useDateValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, datePickerValueManager);\n\n const {\n PopperProps,\n PaperProps,\n ToolbarComponent = DatePickerToolbar,\n TransitionComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const AllDateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(DesktopWrapper, _extends({}, wrapperProps, {\n DateInputProps: AllDateInputProps,\n KeyboardDateInputComponent: KeyboardDateInput,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n TransitionComponent: TransitionComponent,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: AllDateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DesktopDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * The components used for each slot.\n * Either a string to use an HTML element or a component.\n */\n components: PropTypes.object,\n\n /**\n * The props used for each slot inside.\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, todays date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Min selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new year.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to check.\n * @returns {boolean} If `true` the day will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Return `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DialogContent from '@mui/material/DialogContent';\nimport Dialog, { dialogClasses } from '@mui/material/Dialog';\nimport { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH } from '../constants/dimensions';\nimport { PickersActionBar } from '../../PickersActionBar';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersModalDialogRoot = styled(Dialog)({\n [`& .${dialogClasses.container}`]: {\n outline: 0\n },\n [`& .${dialogClasses.paper}`]: {\n outline: 0,\n minWidth: DIALOG_WIDTH\n }\n});\nconst PickersModalDialogContent = styled(DialogContent)({\n '&:first-of-type': {\n padding: 0\n }\n});\nexport const PickersModalDialog = props => {\n var _components$ActionBar;\n\n const {\n children,\n DialogProps = {},\n onAccept,\n onClear,\n onDismiss,\n onCancel,\n onSetToday,\n open,\n components,\n componentsProps\n } = props;\n const ActionBar = (_components$ActionBar = components == null ? void 0 : components.ActionBar) != null ? _components$ActionBar : PickersActionBar;\n return /*#__PURE__*/_jsxs(PickersModalDialogRoot, _extends({\n open: open,\n onClose: onDismiss\n }, DialogProps, {\n children: [/*#__PURE__*/_jsx(PickersModalDialogContent, {\n children: children\n }), /*#__PURE__*/_jsx(ActionBar, _extends({\n onAccept: onAccept,\n onClear: onClear,\n onCancel: onCancel,\n onSetToday: onSetToday,\n actions: ['cancel', 'accept']\n }, componentsProps == null ? void 0 : componentsProps.actionBar))]\n }));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"DateInputProps\", \"DialogProps\", \"onAccept\", \"onClear\", \"onDismiss\", \"onCancel\", \"onSetToday\", \"open\", \"PureDateInputComponent\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport { WrapperVariantContext } from './WrapperVariantContext';\nimport { PickersModalDialog } from '../PickersModalDialog';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function MobileWrapper(props) {\n const {\n children,\n DateInputProps,\n DialogProps,\n onAccept,\n onClear,\n onDismiss,\n onCancel,\n onSetToday,\n open,\n PureDateInputComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {\n value: \"mobile\",\n children: [/*#__PURE__*/_jsx(PureDateInputComponent, _extends({\n components: components\n }, other, DateInputProps)), /*#__PURE__*/_jsx(PickersModalDialog, {\n DialogProps: DialogProps,\n onAccept: onAccept,\n onClear: onClear,\n onDismiss: onDismiss,\n onCancel: onCancel,\n onSetToday: onSetToday,\n open: open,\n components: components,\n componentsProps: componentsProps,\n children: children\n })]\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { onSpaceOrEnter } from '../utils/utils';\nimport { useUtils } from '../hooks/useUtils';\nimport { getDisplayDate, getTextFieldAriaText } from '../utils/text-field-helper';\n// TODO: why is this called \"Pure*\" when it's not memoized? Does \"Pure\" mean \"readonly\"?\nexport const PureDateInput = /*#__PURE__*/React.forwardRef(function PureDateInput(props, ref) {\n const {\n disabled,\n getOpenDialogAriaText = getTextFieldAriaText,\n inputFormat,\n InputProps,\n inputRef,\n label,\n openPicker: onOpen,\n rawValue,\n renderInput,\n TextFieldProps = {},\n validationError\n } = props;\n const utils = useUtils();\n const PureDateInputProps = React.useMemo(() => _extends({}, InputProps, {\n readOnly: true\n }), [InputProps]);\n const inputValue = getDisplayDate(utils, rawValue, inputFormat);\n return renderInput(_extends({\n label,\n disabled,\n ref,\n inputRef,\n error: validationError,\n InputProps: PureDateInputProps,\n inputProps: _extends({\n disabled,\n readOnly: true,\n 'aria-readonly': true,\n 'aria-label': getOpenDialogAriaText(rawValue, utils),\n value: inputValue\n }, !props.readOnly && {\n onClick: onOpen\n }, {\n onKeyDown: onSpaceOrEnter(onOpen)\n })\n }, TextFieldProps));\n});\nPureDateInput.propTypes = {\n getOpenDialogAriaText: PropTypes.func,\n renderInput: PropTypes.func.isRequired\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDatePickerDefaultizedProps, datePickerValueManager } from '../DatePicker/shared';\nimport { DatePickerToolbar } from '../DatePicker/DatePickerToolbar';\nimport { MobileWrapper } from '../internals/components/wrappers/MobileWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateValidation } from '../internals/hooks/validation/useDateValidation';\nimport { PureDateInput } from '../internals/components/PureDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)\n */\nexport const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {\n const props = useDatePickerDefaultizedProps(inProps, 'MuiMobileDatePicker');\n const validationError = useDateValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, datePickerValueManager); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = DatePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(MobileWrapper, _extends({}, other, wrapperProps, {\n DateInputProps: DateInputProps,\n PureDateInputComponent: PureDateInput,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MobileDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * The components used for each slot.\n * Either a string to use an HTML element or a component.\n */\n components: PropTypes.object,\n\n /**\n * The props used for each slot inside.\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, todays date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Min selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new year.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to check.\n * @returns {boolean} If `true` the day will be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Return `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, BarChart, Bar, Legend } from 'recharts';\nimport { Box, Typography, useTheme, ToggleButtonGroup, ToggleButton, IconButton, Grid, useMediaQuery, TextField, Button } from '@mui/material';\nimport HelperIcon from './HelperIcon';\nimport moment from 'moment';\nimport { Square } from \"../Components/Icons/Shapes\";\nimport EqualizerIcon from '@mui/icons-material/Equalizer';\nimport { useState } from 'react';\nimport { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker';\nimport { MobileDatePicker } from '@mui/x-date-pickers/MobileDatePicker';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\n\nconst renderLegend = (props) => {\n const { payload } = props;\n return (\n \n {\n payload.map((entry, index) => (\n \n \n \n User count\n \n \n ))\n }\n \n );\n};\n\n/* const CustomTooltip = ({ active, payload, label }) => {\n console.log(active, payload, label)\n if (active && payload && payload.length) {\n return (\n \n {`${moment(label).format(\"DD.MM.YYYY HH:mm\")}`}\n {`Users count: ${payload[0].value}`}\n \n );\n }\n \n return null;\n }; */\n\nexport default function ActivityGraph({ data, setDuration, interval, duration, chartType, setChartType, date, setDate, label }) {\n const theme = useTheme();\n const isMedium = useMediaQuery(theme.breakpoints.down('md'));\n\n const [alignment, setAlignment] = useState(duration);\n\n const handleAlignment = (event, newAlignment) => {\n setAlignment(newAlignment);\n };\n\n const nextDay = () => {\n setDate(moment(date).add(1, 'days'));\n };\n\n const nextWeek = () => {\n setDate(moment(date).add(1, 'weeks'));\n };\n\n const nextMonth = () => {\n setDate(moment(date).add(1, 'month'));\n };\n\n const prevDay = () => {\n setDate(moment(date).subtract(1, 'days'));\n };\n\n const prevWeek = () => {\n setDate(moment(date).subtract(1, 'weeks'));\n };\n\n const prevMonth = () => {\n setDate(moment(date).subtract(1, 'months'));\n };\n\n return (\n \n\n setChartType((prev) => prev === \"bar\" ? \"area\" : \"bar\")}>\n \n \n \n\n \n\n\n\n \n \n\n \n \n \n {isMedium\n ?\n setDate(e)}\n renderInput={(params) => }\n mask=\"\"\n />\n :\n setDate(e)}\n renderInput={(params) => }\n mask=\"\"\n />\n }\n \n \n \n \n\n \n\n \n \n setDuration(\"day\")}>\n Day\n \n setDuration(\"week\")}>\n Week\n \n setDuration(\"month\")}>\n Month\n \n \n \n\n \n\n \n \n {chartType === \"bar\"\n ?\n \n \n moment(e).format(\"DD\")\n :\n duration === \"week\"\n ?\n (e) => moment(e).format(\"dd\")\n :\n (e) => moment(e).format(\"HH\")\n }\n />\n \n } */ labelFormatter={(e) => moment(e).format(\"DD.MM.YYYY HH:mm\")} formatter={(e) => [e, \"Users count\"]}/>\n \n \n \n :\n \n \n \n \n \n \n \n \n \n \n \n \n moment(e).format(\"DD\")\n :\n duration === \"week\"\n ?\n (e) => moment(e).format(\"dd\")\n :\n (e) => moment(e).format(\"HH\")\n }\n />\n \n moment(e).format(\"DD.MM.YYYY HH:mm\")} formatter={(e) => [e, \"Users count\"]} />\n \n \n \n\n }\n \n \n \n );\n}","import * as React from 'react';\nimport { IconButton, Modal, Box, Tooltip, useTheme, useMediaQuery } from '@mui/material';\nimport EqualizerIcon from '@mui/icons-material/Equalizer';\nimport ActivityGraph from '../ActivityGraph';\n\nconst style = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: \"50%\",\n bgcolor: 'background.paper',\n border: '1px solid #000',\n boxShadow: 24,\n p: 3,\n borderRadius: 4,\n};\n\nconst styleMobile = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: \"95%\",\n bgcolor: 'background.paper',\n border: '1px solid #000',\n boxShadow: 24,\n p: 1,\n borderRadius: 4,\n};\n\nexport default function GraphModal(props) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n\n const [open, setOpen] = React.useState(false);\n const handleOpen = () => setOpen(true);\n const handleClose = () => setOpen(false);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}","import * as React from 'react';\nimport { Typography, Box } from \"@mui/material\";\nimport StyledBadgeAvatar from \"../StyledBadgeAvatar\";\nimport { dayjs } from '../dayjs-utils';\n\n\n\nexport default function GridLarge(props) {\n const { lastseenminutes, avatarWidth, avatarHeight, busy, item, userObj } = props;\n\n return (\n <>\n \n\n\n \n {(item.first_name && item.last_name) ? item.first_name : item.username}\n \n\n \n = 5 ? 'Away' : lastseenminutes > -5 && lastseenminutes < 5 ? 'Online' : 'Offline' : 'Offline'}\n tooltipPlacement=\"bottom-end\"\n badgeOverlap=\"circular\"\n badgeAnchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n badgeVariant=\"dot\"\n badgeheight=\"25%\"\n badgewidth=\"25%\"\n badgeanimation={!busy ? lastseenminutes ? lastseenminutes > -5 && lastseenminutes < 5 : false : false}\n badgeboxshadow={`0 0 0 2px #fff`}\n badgeSx={{\n width: avatarWidth,\n height: avatarHeight,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n }}\n avatarSx={{\n width: \"88%\",\n height: \"88%\",\n borderWidth: 0,\n borderStyle: \"solid\",\n borderColor: busy ? \"#E72D50\" : lastseenminutes ? lastseenminutes <= 10 && lastseenminutes >= 5 ? \"#FCC041\" : lastseenminutes > -5 && lastseenminutes < 5 ? \"#8DBF30\" : '#adadb8' : '#adadb8',\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={item.id}\n lastseenminutes={lastseenminutes}\n busy={busy}\n skipCookie\n imageSize=\"_256\"\n />\n {(props.hasUserTitle && item?.title?.length > 0) &&\n \n {item.title}\n \n }\n \n\n {props.hasLocation ?\n \n {\n userObj?.timestamp\n ?\n lastseenminutes <= 10 && lastseenminutes >= 5\n ?\n dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds'))\n :\n lastseenminutes >= 10\n ?\n dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds'))\n :\n userObj.layer_name ?? dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds'))\n :\n 'Long time ago'\n }\n \n :\n \n {userObj?.timestamp ? dayjs(userObj.timestamp).from(dayjs().add(30, 'seconds')) : 'Long time ago'}\n \n\n }\n \n \n );\n}","import { useRef, useMemo, useEffect, useState } from \"react\";\nimport { Grid, createTheme, Box } from \"@mui/material\";\nimport { dayjs } from '../dayjs-utils';\nimport Card from '@mui/material/Card';\nimport GridSmallMobile from './GridSmallMobile';\nimport useEmblaCarousel from 'embla-carousel-react';\nimport Autoplay from 'embla-carousel-autoplay';\n\nconst style = createTheme({\n gridItem: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#808080\" + 50,\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: 100,\n flexDirection: \"column\",\n },\n gridItemGreen: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#8DBF30\",\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: 100,\n flexDirection: \"column\"\n },\n gridItemYellow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#FCC041\",\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: 100,\n flexDirection: \"column\"\n },\n gridItemRed: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#E72D50\",\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: 100,\n flexDirection: \"column\"\n },\n avatar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n flexDirection: \"column\"\n },\n profilepic: {\n height: \"8vw\",\n width: \"8vw\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#000\",\n },\n title: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n fontSize: \"1.25vw\"\n }\n});\n\nfunction createArrays(array, numberOfGroups) {\n const perGroup = array && numberOfGroups && Math.ceil(array.length / numberOfGroups);\n return array && numberOfGroups && new Array(numberOfGroups)\n .fill('')\n .map((_, i) => array.slice(i * perGroup, (i + 1) * perGroup));\n}\n\nconst options = { delay: 30000 }; // Options\nconst autoplayRoot = (emblaRoot) => emblaRoot.parentElement; // Root node\nconst autoplay = Autoplay(options, autoplayRoot);\n\nexport default function SocialsDashboardLandscape(props) {\n const [emblaRef] = useEmblaCarousel({ loop: false }, [autoplay]);\n\n\n const [count, setCount] = useState(0);\n const [memberAmount, setMemberAmount] = useState([]);\n const userCountTotal = props.users?.length ?? 0;\n const arrLen = useRef();\n const slicedArray = useMemo(() => createArrays(props?.users, Math.trunc(userCountTotal / 20 + 1)), [props.users, userCountTotal]);\n\n /* Count how many members per slide */\n useEffect(() => {\n if (props.users) {\n setMemberAmount(createArrays(props.users, Math.trunc(userCountTotal / 20 + 1))[count]?.length);\n }\n }, [props.users, count, userCountTotal]);\n\n useEffect(() => { arrLen.current = slicedArray?.length; }, [slicedArray]);\n\n /* Sets interval between slides */\n useEffect(() => {\n const id = setInterval(() => setCount((oldCount) => oldCount === arrLen.current - 1 ? 0 : oldCount + 1), 30000);\n return () => {\n clearInterval(id);\n };\n }, [count, props.users]);\n\n\n\n return (\n\n\n
\n
\n {props.users && slicedArray && slicedArray?.map((item) => {\n\n let gridSize = \"\";\n let padding = \"\";\n let paddingX = \"\";\n let spacing = \"\";\n\n switch (true) {\n case item.length > 0 && item.length <= 2:\n gridSize = 12 / 2;\n padding = props.small ? 12 : \"18vh\";\n spacing = 10;\n break;\n case item.length > 2 && item.length <= 4:\n gridSize = 12 / 2;\n padding = 0;\n paddingX = \"20%\";\n spacing = 2;\n break;\n case item.length > 4 && item.length <= 6:\n gridSize = 12 / 3;\n padding = 0;\n paddingX = \"20%\";\n spacing = 2;\n break;\n case item.length > 6 && item.length <= 8:\n gridSize = 12 / 4;\n padding = 0;\n paddingX = \"15%\";\n spacing = 2;\n break;\n case item.length > 8 && item.length <= 10:\n gridSize = 12 / 5;\n padding = 0;\n paddingX = \"10%\";\n spacing = 2;\n break;\n case item.length > 10 && item.length <= 12:\n gridSize = 12 / 6;\n padding = 1;\n paddingX = 1;\n spacing = 2;\n break;\n case item.length > 12 && item.length <= 14:\n gridSize = 12 / 7;\n padding = 1;\n paddingX = 1;\n spacing = 2;\n break;\n case item.length > 14 && item.length <= 16:\n gridSize = 12 / 8;\n padding = 1;\n paddingX = 1;\n spacing = 2;\n break;\n case item.length > 16 && item.length <= 18:\n gridSize = 12 / 9;\n padding = 1;\n paddingX = 1;\n spacing = 2;\n break;\n case item.length > 18 && item.length <= 20:\n gridSize = 12 / 10;\n padding = 1;\n paddingX = 1;\n spacing = 2;\n break;\n default:\n gridSize = 12 / 10;\n padding = 3;\n spacing = 4;\n }\n return (\n\n
\n \n {props.users && slicedArray && slicedArray[count].map(item => {\n const userObj = props.onlineData?.find(i => i.user_id === item.id);\n const busy = userObj?.status === 'busy';\n const now = dayjs().add(30, 'seconds');\n const lastSeen = userObj?.timestamp ? dayjs(userObj.timestamp) : null;\n const duration = lastSeen ? dayjs.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n const avatarHeight = props.avatarSize;\n const avatarWidth = props.avatarSize;\n return (\n \n = 5 ? style.gridItemYellow : lastseenminutes > -5 && lastseenminutes < 5 ? style.gridItemGreen : style.gridItem : style.gridItem}>\n \n {\n \n }\n \n \n \n );\n }\n )}\n \n
\n\n );\n }\n )}\n
\n
\n );\n}\n","import { Grid, createTheme, Box } from \"@mui/material\";\nimport { dayjs } from '../dayjs-utils';\nimport Card from '@mui/material/Card';\nimport GridLarge from './GridLarge';\n\nconst style = createTheme({\n gridItem: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#808080\" + 50,\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: \"100%\",\n flexDirection: \"column\",\n },\n gridItemGreen: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#8DBF30\",\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: \"100%\",\n flexDirection: \"column\"\n },\n gridItemYellow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#FCC041\",\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: \"100%\",\n flexDirection: \"column\"\n },\n gridItemRed: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#E72D50\",\n borderRadius: 5,\n backgroundColor: \"transparent\",\n width: \"100%\",\n height: \"100%\",\n flexDirection: \"column\"\n },\n avatar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n flexDirection: \"column\"\n },\n profilepic: {\n height: \"8vw\",\n width: \"8vw\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#000\",\n },\n title: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n fontSize: \"1.25vw\"\n }\n});\n\n\nexport default function SocialsDashboardPortrait(props) {\n\n return (\n \n {props.users && props.users.map(item => {\n const userObj = props.onlineData?.find(i => i.user_id === item.id);\n const busy = userObj?.status === 'busy';\n const now = dayjs().add(30, 'seconds');\n const lastSeen = userObj?.timestamp ? dayjs(userObj.timestamp) : null;\n const duration = lastSeen ? dayjs.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n const avatarHeight = props.avatarSize;\n const avatarWidth = props.avatarSize;\n return (\n \n = 5 ? style.gridItemYellow : lastseenminutes > -5 && lastseenminutes < 5 ? style.gridItemGreen : style.gridItem : style.gridItem}>\n \n \n \n \n \n );\n }\n )}\n \n );\n}\n","import * as React from 'react';\nimport { useState, useContext, useRef, useEffect, useMemo } from \"react\";\nimport { Grid, Typography, createTheme, Box, styled, Badge } from \"@mui/material\";\nimport MainContext from \"../Backend/MainContext\";\nimport Clock from \"../Clock\";\nimport LinearLoading from \"../LinearLoading\";\nimport SocialsDashboardLandscape from './SocialsDashboardLandscape';\nimport SocialsDashboardPortrait from './SocialsDashboardPortrait';\nimport { dayjs } from '../dayjs-utils';\nimport BatteryCharging60Icon from '@mui/icons-material/BatteryCharging60';\n\n/* Defines if the current time is between SocialGroups' active time */\nfunction getActiveState(utc_start, utc_end) {\n let [hoursEnd, minsEnd] = utc_end && utc_end.split(':');\n let [hours, mins] = utc_start.split(':');\n let yesterday = dayjs.utc().startOf('day').subtract(1, 'day');\n let today = dayjs.utc().startOf('day');\n let tomorrow = dayjs.utc().startOf('day').add(1, 'day');\n\n if (hours > hoursEnd) {\n let isBetween1 = dayjs().isBetween(yesterday.set('hour', hours).set('minute', mins).local(), today.set('hour', hoursEnd).set('minute', minsEnd).local());\n let isBetween2 = dayjs().isBetween(today.set('hour', hours).set('minute', mins).local(), tomorrow.set('hour', hoursEnd).set('minute', minsEnd).local());\n\n return (isBetween1 || isBetween2);\n }\n else {\n return (dayjs().isBetween(today.set('hour', hours).set('minute', mins).local(), today.set('hour', hoursEnd).set('minute', minsEnd).local()));\n }\n}\n\nconst StyledBadge = styled(Badge)(({ status, badgewidth, badgeheight, badgeboxshadow, badgeanimation, lastseenminutes, theme, badgecolor }) => ({\n '& .MuiBadge-badge': {\n backgroundColor: badgecolor,\n color: badgecolor,\n width: badgewidth,\n height: badgeheight,\n borderRadius: \"50%\",\n boxShadow: badgeboxshadow,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n '&::after':\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n animation: 'ripple 1.2s infinite ease-in-out',\n border: '1px solid currentColor',\n content: '\"\"',\n display: !badgeanimation ? \"none\" : undefined\n }\n },\n '& .MuiBadge-root': {\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n backgroundColor: \"red\"\n },\n '@keyframes ripple': {\n '0%': {\n transform: 'scale(.8)',\n opacity: 1,\n },\n '100%': {\n transform: 'scale(2.5)',\n opacity: 0,\n },\n },\n}));\n\nexport default function LayoutTemplate({ socialsData, avatarSize, fontSize, gridFlexNumber, type, badgeSize, users, onlineData, titleFontSize, utc_start, utc_end, enable_days, small, orientation }) {\n const { user } = useContext(MainContext);\n const [onlineMembers, setOnlineMembers] = useState(0);\n const socials =\n type === \"dashboard\" ? user.company_dashboard?.socials :\n type === \"user\" ? user?.dashboard?.socials : socialsData;\n const [time, setTime] = useState(dayjs());\n const timeInter = useRef();\n const [isActive, setIsActive] = useState((utc_start && utc_end) ? getActiveState(utc_start, utc_end) : true);\n\n var format = 'HH:mm',\n startTime = dayjs(socials?.onlineTime?.start ? socials?.onlineTime?.start : \"00:00\", format),\n endTime = dayjs(socials?.onlineTime?.end ? socials?.onlineTime?.end : \"24:00\", format);\n\n useEffect(() => {\n let tempNum = 0;\n if (onlineData) {\n for (const userObj of onlineData) {\n const now = dayjs();\n const lastSeen = userObj?.timestamp ? dayjs(userObj.timestamp) : null;\n const duration = lastSeen ? dayjs.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n if (lastSeen && lastseenminutes <= 10) {\n tempNum++;\n }\n }\n }\n setOnlineMembers(tempNum);\n }, [onlineData]);\n\n useEffect(() => {\n timeInter.current = setInterval(() => {\n setTime(dayjs());\n if (utc_start && utc_end) {\n setIsActive(getActiveState(utc_start, utc_end));\n }\n }, 60000);\n\n return () => clearInterval(timeInter.current);\n }, [utc_start, utc_end]);\n\n const shouldRender = useMemo(() => {\n if (type === 'group') {\n if ((enable_days.includes(dayjs().isoWeekday()) || enable_days === undefined) && isActive) {\n if (socials?.onlineTime?.showWeekDay) {\n if (socials?.onlineTime?.showWeekDay.includes(dayjs().isoWeekday()) || socials?.onlineTime?.showWeekDay === undefined || socials === undefined) {\n if (time.isBetween(startTime, endTime)) {\n return true;\n }\n }\n }\n else {\n if (time.isBetween(startTime, endTime)) {\n return true;\n }\n }\n }\n }\n else {\n if (socials?.onlineTime?.showWeekDay) {\n if (socials?.onlineTime?.showWeekDay.includes(dayjs().isoWeekday()) || socials?.onlineTime?.showWeekDay === undefined || socials === undefined) {\n if (time.isBetween(startTime, endTime)) {\n return true;\n }\n }\n }\n else {\n if (time.isBetween(startTime, endTime)) {\n return true;\n }\n }\n }\n return false;\n }, [enable_days, endTime, isActive, socials, startTime, time, type]);\n\n return (\n \n \n \n {socials?.hasSecondLogo\n ?\n <>\n \n \n \n \n :\n \n \n {socials?.title}\n \n \n }\n \n \n \n \n {\n shouldRender\n ?\n orientation === \"portrait\"\n ?\n \n :\n \n :\n \n
Charging Batteries...
\n \n
\n }\n
\n \n \n \n \n Present: {onlineMembers}\n \n \n \n Away: {users?.length - onlineMembers}\n \n \n \n \n \n \n \n \n
\n );\n}\n\nconst style = createTheme({\n layoutGrid: {\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n backgroundColor: \"lightgreen\"\n },\n gridLogo: {\n\n },\n gridItem1: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"15%\",\n },\n gridClock: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"15%\",\n },\n gridContent: {\n height: \"70%\",\n },\n gridPicture: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"70%\",\n },\n gridFooter: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"10%\",\n },\n gridPoweredBy: {\n },\n gridBottombar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"5%\",\n }\n});\n","import React, { useState, useContext, useEffect } from \"react\";\nimport { MainContext, LayoutTemplate, useWsDataProvider, LayoutTemplateMobile } from \"kerberus-components\";\nimport useSWR from 'swr';\nimport { useTheme, useMediaQuery } from \"@mui/material\";\n\nexport default function DashboardModalCompany(props) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { user } = useContext(MainContext);\n const { data, getData, doUnsubscribe } = useWsDataProvider();\n const [onlineData, setOnlineData] = useState(null);\n const [userList, setUserList] = useState([]);\n const { data: profilelistSocialData } = useSWR('users/profilelistsocial/');\n\n const [orientation, setOrientation] = useState(window.orientation);\n\n window.onresize = function (event) {\n applyOrientation();\n };\n\n function applyOrientation() {\n if (window.innerHeight > window.innerWidth) {\n setOrientation(\"portrait\");\n } else {\n setOrientation(\"landscape\");\n }\n }\n\n useEffect(() => {\n applyOrientation();\n }, []);\n\n useEffect(() => {\n if (profilelistSocialData) {\n setUserList(profilelistSocialData);\n }\n }, [profilelistSocialData]);\n\n useEffect(() => {\n if (userList.length > 0) {\n getData('socketLocation', 'lastFoundMany', {\n subscribe: true,\n filters: {\n company: user.user_company.id\n }\n });\n }\n return () => {\n doUnsubscribe();\n };\n }, [userList, getData, doUnsubscribe, user.user_company]);\n\n useEffect(() => {\n if (data) {\n setOnlineData(data);\n }\n }, [data]);\n\n return (\n\n isSmall\n ?\n \n :\n \n );\n}","import * as React from 'react';\nimport { useEffect, useState, useContext, useMemo, useRef, useCallback } from 'react';\nimport { Grid, Typography, Box, useTheme, useMediaQuery, IconButton, Divider, Tooltip, Link as MuiLink, Modal } from '@mui/material';\nimport { useNavigate } from 'react-router-dom';\nimport moment from 'moment';\nimport LayoutPaper from '../../Components/LayoutPaper';\nimport { MainContext, SmallAvatarWrapper, useWsDataProvider } from 'kerberus-components';\nimport useSWR from 'swr';\nimport SettingsIcon from '@mui/icons-material/Settings';\n/* import AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings'; */\nimport UserList from '../../Components/UserList';\nimport DatagridColumns from '../../Components/Company/DatagridColumns';\nimport { SlackIcon, SlackIconBlack } from '../../Components/Icons/Slack';\nimport DatagridColumnsMobile from '../../Components/Company/DatagridColumnsMobile';\nimport GraphModal from '../../Components/Groups/GraphModal';\nimport DashboardIcon from '@mui/icons-material/Dashboard';\nimport DashboardModalCompany from '../../Components/DashboardModalCompany.js';\n\nconst style = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: \"85%\",\n height: \"90%\",\n bgcolor: 'background.paper',\n border: '2px solid #000',\n boxShadow: 24,\n};\n\nexport default React.memo(function CompanyView() {\n const { user, bulkData } = useContext(MainContext);\n const { user_company } = user;\n const navigate = useNavigate();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const [onlineMembers, setOnlineMembers] = useState(0);\n const { data: profiles = [] } = useSWR('users/profilelistsocial/');\n\n\n const [date, setDate] = useState(moment());\n const [interval, setInterval] = useState(60);\n const [duration, setDuration] = useState(\"day\");\n const [chartType, setChartType] = useState(\"bar\");\n const [openCompany, setOpenCompany] = useState(false);\n\n const { data, getData } = useWsDataProvider();\n\n const cacheMap = useRef(new Map());\n\n const [graphData, setGraphData] = useState();\n\n const dataProviderParams = useRef();\n\n useEffect(() => {\n if (data) {\n cacheMap.current.set(\n moment(dataProviderParams.current.date).startOf(dataProviderParams.current.duration).toJSON()\n +\n moment(dataProviderParams.current.date).endOf(dataProviderParams.current.duration).toJSON(), data);\n setGraphData(data);\n }\n }, [data]);\n\n const getDataProviderData = useCallback(() => {\n getData('socketLocation', 'ucountGraph', {\n filters: {\n start_time: moment(date).startOf(duration),\n end_time: moment(date).endOf(duration),\n interval: interval,\n company: user_company.id,\n }\n });\n dataProviderParams.current = {\n date: date,\n duration: duration\n };\n }, [date, duration, getData, interval, user_company.id]);\n\n useEffect(() => {\n const cacheObj = cacheMap.current.get(moment(date).startOf(duration).toJSON() + moment(date).endOf(duration).toJSON());\n if (cacheObj) {\n setGraphData(cacheObj);\n }\n else {\n getDataProviderData();\n }\n }, [date, duration, getData, getDataProviderData, interval, user_company]);\n\n useEffect(() => {\n if (duration === \"day\") {\n setInterval(60);\n }\n else if (duration === \"week\") {\n setInterval(120);\n }\n else {\n setInterval(240);\n }\n }, [date, duration, getData, interval, user_company]);\n\n useEffect(() => {\n let tempNum = 0;\n if (bulkData) {\n for (const userObj of bulkData.company) {\n const now = moment();\n const lastSeen = userObj?.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n if (lastSeen && lastseenminutes <= 10) {\n tempNum++;\n }\n }\n }\n setOnlineMembers(tempNum);\n }, [bulkData]);\n\n const gridColumnsMobile = useMemo(() => (\n DatagridColumnsMobile\n ), []);\n\n return (\n \n \n\n \n\n \n \n \n {user_company.name}\n \n \n\n {!isSmall &&\n \n {onlineMembers}/{profiles.length}\n \n }\n \n\n \n \n setOpenCompany(true)}>\n \n \n \n \n \n {!user_company.links.slack\n ?\n \n :\n \n }\n \n \n {user.next &&\n \n }\n {(user.perm_level === \"superuser\" || user.perm_level === \"admin\") &&\n \n navigate('./settings')}>\n \n \n \n }\n \n\n\n \n \n \n\n \n \n \n\n setOpenCompany(false)}\n aria-labelledby=\"modal-modal-title2\"\n aria-describedby=\"modal-modal-description2\"\n BackdropProps={{ style: { opacity: 0.2 } }}\n >\n \n \n \n \n\n \n \n );\n\n});","import * as React from 'react';\nimport { useEffect, useState, useContext } from 'react';\nimport { MainContext, SmallAvatarWrapper } from 'kerberus-components';\nimport Grid from '@mui/material/Grid';\nimport { Typography, IconButton, Button } from '@mui/material';\nimport moment from 'moment';\nimport { useNavigate } from 'react-router-dom';\nimport { useTheme } from '@mui/material';\nimport { StyledBadgeAvatar } from 'kerberus-components';\nimport useSWR from 'swr';\n\nfunction titleGen(item, userObj) {\n let retstring = '';\n if (item.first_name && item.last_name) {\n retstring += `${item.first_name} ${item.last_name} `;\n }\n else {\n retstring += item.username;\n }\n\n if (userObj?.status === 'busy') {\n retstring += 'is busy';\n }\n else if (userObj?.timestamp) {\n retstring += `\n last seen ${moment(userObj.timestamp).fromNow()}`;\n }\n else {\n retstring += `\n last seen over a week ago`;\n }\n\n return retstring;\n}\n\nexport default function ProfileList({ avatarHeight, avatarWidth, isSmall, gridOneHidden, gridTwoHidden, gridThreeHidden }) {\n const [profiles, setProfiles] = useState([]);\n const { user, bulkData } = useContext(MainContext);\n const [onlineMembers, setOnlineMembers] = useState(0);\n const { data: profilelistSocialData } = useSWR('users/profilelistsocial/');\n\n const navigate = useNavigate();\n const theme = useTheme();\n\n useEffect(() => {\n if (profilelistSocialData) {\n setProfiles(profilelistSocialData);\n }\n }, [profilelistSocialData]);\n\n\n\n useEffect(() => {\n let tempNum = 0;\n if (bulkData) {\n for (const userObj of bulkData.company) {\n const now = moment();\n const lastSeen = userObj.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n if (lastSeen && lastseenminutes <= 10) {\n tempNum++;\n }\n }\n }\n setOnlineMembers(tempNum);\n }, [bulkData]);\n\n return profiles ? (\n <>\n Company\n \n \n \n \n {bulkData && [...profiles].sort((prev, next) => {\n const prevObj = bulkData.company.find(i => i.user_id === prev?.id);\n const nextObj = bulkData.company.find(i => i.user_id === next?.id);\n if (prevObj?.timestamp && nextObj?.timestamp) {\n const now = moment();\n const prevLast = moment.duration(now.diff(prevObj.timestamp)).asMinutes();\n const nextLast = moment.duration(now.diff(nextObj.timestamp)).asMinutes();\n if (prevLast <= 5 && nextLast <= 5) {\n return 0;\n }\n else if ((prevLast <= 10 && prevLast >= 5) && (nextLast <= 10 && nextLast >= 5)) {\n return 0;\n }\n else if (prevLast > 10 && nextLast > 10) {\n return 0;\n }\n else if (prevLast > nextLast) {\n return 1;\n }\n else return -1;\n }\n else if (prevObj?.timestamp && !nextObj?.timestamp) {\n return -1;\n }\n else if (!prevObj?.timestamp && nextObj?.timestamp) {\n return 1;\n }\n else if (!prevObj?.timestamp && !nextObj?.timestamp) {\n return 0;\n }\n else return 0;\n }).map(item => {\n const userObj = bulkData.company.find(i => i.user_id === item.id);\n const busy = userObj?.status === 'busy';\n const now = moment();\n const lastSeen = userObj?.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n return (\n\n \n navigate('profile/' + item.id)} sx={{ margin: isSmall && 0, display: \"flex\", flexDirection: \"column\" }}>\n {/* {isSmall &&\n \n {item.first_name ? item.first_name : item.username}\n \n } */}\n \n {titleGen(item, userObj)}\n {userObj?.layer_name &&\n <>\n
\n Location: {userObj?.layer_name}\n }\n
\n }\n tooltipPlacement=\"bottom-end\"\n badgeOverlap=\"circular\"\n badgeAnchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n badgeVariant=\"dot\"\n badgeheight={15}\n badgewidth={15}\n badgeboxshadow={`0 0 0 1px ${theme.palette.background.paper}`}\n badgeSx={{\n width: avatarWidth,\n height: avatarHeight,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n }}\n avatarSx={{\n width: avatarWidth,\n height: avatarHeight,\n borderWidth: 5,\n borderStyle: \"solid\",\n borderColor: busy ? theme.palette.mlRed.main : lastseenminutes ? lastseenminutes <= 10 && lastseenminutes >= 5 ? theme.palette.mlYellow.main : lastseenminutes > -5 && lastseenminutes < 5 ? theme.palette.mlGreen.main : '#adadb8' : '#adadb8',\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={item.id}\n lastseenminutes={lastseenminutes}\n busy={busy}\n imageSize=\"_64\"\n />\n\n \n {item.first_name ? item.first_name : item.username}\n \n\n \n\n \n );\n })\n }\n \n \n ) : null;\n}","import * as React from 'react';\nimport {\n Typography, useTheme, useMediaQuery\n} from '@mui/material';\nimport moment from 'moment';\nimport { Circle, Square } from '../../Components/Icons/Shapes';\n\nexport default React.memo(function ActiveTime({ socialGroup, center }) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n\n return (\n\n socialGroup?.enable_days.length > 0\n ?\n (moment.utc().startOf('day').add(socialGroup?.utc_start).local().format('HH:mm') === moment.utc().startOf('day').add(socialGroup?.utc_end).local().format('HH:mm') && JSON.stringify(socialGroup?.enable_days) === JSON.stringify([1, 2, 3, 4, 5, 6, 7]))\n ?\n \n Always active\n \n :\n <>\n \n Active during {moment.utc().startOf('day').add(socialGroup?.utc_start).local().format('HH:mm')} - {moment.utc().startOf('day').add(socialGroup?.utc_end).local().format('HH:mm')}\n \n \n \n {JSON.stringify(socialGroup?.enable_days) === JSON.stringify([1, 2, 3, 4, 5, 6, 7])\n ?\n 'Daily'\n :\n socialGroup?.enable_days.map((item) => {\n switch (item) {\n case 1:\n return \"Mon\";\n case 2:\n return \"Tue\";\n case 3:\n return \"Wed\";\n case 4:\n return \"Thu\";\n case 5:\n return \"Fri\";\n case 6:\n return \"Sat\";\n case 7:\n return \"Sun\";\n default:\n return \"\";\n }\n }).join(', ')\n }\n \n \n \n :\n \n Never active\n \n\n\n );\n});","import * as React from 'react';\nimport { useEffect, useState, useContext, useMemo, memo } from 'react';\nimport { MainContext, SmallAvatarWrapper } from 'kerberus-components';\nimport Grid from '@mui/material/Grid';\nimport { Typography, IconButton, Divider, Button, useTheme } from '@mui/material';\nimport moment from 'moment';\nimport { useNavigate } from 'react-router-dom';\nimport { StyledBadgeAvatar } from 'kerberus-components';\nimport useSWR from 'swr';\nimport ActiveTime from '../Components/Groups/ActiveTime';\n\nfunction getActiveState(utc_start, utc_end) {\n let [hoursEnd, minsEnd] = utc_end && utc_end.split(':');\n let [hours, mins] = utc_start.split(':');\n let yesterday = moment.utc().startOf('day').subtract(1, 'day');\n let today = moment.utc().startOf('day');\n let tomorrow = moment.utc().startOf('day').add(1, 'day');\n\n\n if (hours > hoursEnd || (hours === hoursEnd && mins > minsEnd)) {\n let isBetween1 = moment().isBetween(yesterday.utc().set('hour', hours).set('minute', mins).local(), today.utc().set('hour', hoursEnd).set('minute', minsEnd).local());\n let isBetween2 = moment().isBetween(today.utc().set('hour', hours).set('minute', mins).local(), tomorrow.utc().set('hour', hoursEnd).set('minute', minsEnd).local());\n return (isBetween1 || isBetween2);\n }\n else {\n return (moment().isBetween(moment.utc().startOf('day').add(utc_start).local(), moment.utc().startOf('day').add(utc_end).local()));\n }\n}\n\nexport default function SocialGroupList({ avatarHeight, avatarWidth, isSmall, gridOneHidden, gridTwoHidden }) {\n const { user, bulkData } = useContext(MainContext);\n const [socialGroups, setSocialGroups] = useState([]);\n const navigate = useNavigate();\n const { data: groupListData } = useSWR('users/socialgrouplist/');\n\n useEffect(() => {\n if (groupListData) {\n setSocialGroups(groupListData);\n }\n }, [groupListData]);\n\n return (\n socialGroups.length > 0 &&\n <>\n \n Socials\n\n \n\n {socialGroups.map(item => {\n let tempNum = 0;\n const groupObj = bulkData.social_groups.find(i => i.group_id === item.id);\n if (groupObj) {\n for (const userObj of groupObj.users) {\n const now = moment();\n const lastSeen = userObj?.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n if (item.users.some(i => i.id === userObj.user_id) && lastSeen && lastseenminutes <= 10 && lastseenminutes > 0) {\n tempNum++;\n }\n }\n }\n\n const isActive = (item.utc_start && item.utc_end) ? getActiveState(item.utc_start, item.utc_end) || item.utc_start === item.utc_end : true;\n const isActiveWeekday = item.enable_days.includes(moment().isoWeekday()) || item.enable_days === undefined;\n\n return (\n\n \n\n \n \n \n\n \n \n \n \n \n\n {(!isActive || !isActiveWeekday) &&\n\n \n \n \n Not active right now\n \n \n \n \n }\n\n \n\n );\n }\n )}\n \n \n );\n}\n\nfunction titleGen(item, userObj) {\n let retstring = '';\n if (item.first_name && item.last_name) {\n retstring += `${item.first_name} ${item.last_name} `;\n }\n else {\n retstring += item.username;\n }\n\n if (userObj?.status === 'busy') {\n retstring += 'is busy';\n }\n else if (userObj?.timestamp) {\n retstring += `\n last seen ${moment(userObj.timestamp).fromNow()}`;\n }\n else {\n retstring += `\n last seen over a week ago`;\n }\n\n return retstring;\n}\n\n\nconst SocialGroupRender = memo(({ users, avatarHeight, avatarWidth, isSmall, groupId, bulkData, isActive, isActiveWeekday, gridOneHidden, gridTwoHidden }) => {\n const navigate = useNavigate();\n const theme = useTheme();\n\n const groupObj = useMemo(() => {\n return bulkData?.social_groups.find(i => i.group_id === groupId)?.users;\n }, [groupId, bulkData]);\n\n\n return (\n groupObj\n ?\n [...users].sort((prev, next) => {\n const prevObj = groupObj.find(i => i.user_id === prev?.id);\n const nextObj = groupObj.find(i => i.user_id === next?.id);\n if (prevObj?.timestamp && nextObj?.timestamp) {\n const now = moment();\n const prevLast = moment.duration(now.diff(prevObj.timestamp)).asMinutes();\n const nextLast = moment.duration(now.diff(nextObj.timestamp)).asMinutes();\n if (prevLast <= 5 && nextLast <= 5) {\n return 0;\n }\n else if ((prevLast <= 10 && prevLast >= 5) && (nextLast <= 10 && nextLast >= 5)) {\n return 0;\n }\n else if (prevLast > 10 && nextLast > 10) {\n return 0;\n }\n else if (prevLast > nextLast) {\n return 1;\n }\n else return -1;\n }\n else if (prevObj?.timestamp && !nextObj?.timestamp) {\n return -1;\n }\n else if (!prevObj?.timestamp && nextObj?.timestamp) {\n return 1;\n }\n else if (!prevObj?.timestamp && !nextObj?.timestamp) {\n return 0;\n }\n else return 0;\n }).map(item => {\n const userObj = groupObj.find(i => i.user_id === item.id);\n const busy = userObj?.status === 'busy';\n const now = moment();\n const lastSeen = userObj?.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n return (\n isActive && isActiveWeekday ?\n \n navigate('profile/' + item.id)} sx={{ margin: isSmall && 0, display: \"flex\", flexDirection: \"column\" }}>\n {/* {isSmall &&\n \n {item.first_name ? item.first_name : item.username}\n \n } */}\n \n {titleGen(item, userObj)}\n {userObj?.layer_name &&\n <>\n
\n Location: {userObj.layer_name}\n }\n
\n }\n tooltipPlacement=\"bottom-end\"\n badgeOverlap=\"circular\"\n badgeAnchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n badgeVariant=\"dot\"\n badgeheight={15}\n badgewidth={15}\n badgeboxshadow={`0 0 0 1px ${theme.palette.background.paper}`}\n badgeSx={{\n width: avatarWidth,\n height: avatarHeight,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n }}\n avatarSx={{\n width: avatarWidth,\n height: avatarHeight,\n borderWidth: 5,\n borderStyle: \"solid\",\n borderColor: busy ? theme.palette.mlRed.main : lastseenminutes ? lastseenminutes <= 10 && lastseenminutes >= 5 ? theme.palette.mlYellow.main : lastseenminutes > -5 && lastseenminutes < 5 ? theme.palette.mlGreen.main : '#adadb8' : '#adadb8'\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={item.id}\n lastseenminutes={lastseenminutes}\n busy={busy}\n imageSize=\"_64\"\n />\n\n \n {item.first_name ? item.first_name : item.username}\n \n\n \n\n \n :\n null\n );\n })\n :\n null\n\n );\n});\n","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst TreeViewContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n TreeViewContext.displayName = 'TreeViewContext';\n}\n\nexport default TreeViewContext;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"element\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';\n/** Credit: https://github.com/reach/reach-ui/blob/86a046f54d53b6420e392b3fa56dd991d9d4e458/packages/descendants/README.md\n * Modified slightly to suit our purposes.\n */\n// To replace with .findIndex() once we stop IE11 support.\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction binaryFindElement(array, element) {\n let start = 0;\n let end = array.length - 1;\n\n while (start <= end) {\n const middle = Math.floor((start + end) / 2);\n\n if (array[middle].element === element) {\n return middle;\n } // eslint-disable-next-line no-bitwise\n\n\n if (array[middle].element.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_PRECEDING) {\n end = middle - 1;\n } else {\n start = middle + 1;\n }\n }\n\n return start;\n}\n\nconst DescendantContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n DescendantContext.displayName = 'DescendantContext';\n}\n\nfunction usePrevious(value) {\n const ref = React.useRef(null);\n React.useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nconst noop = () => {};\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation.\n */\n\n\nexport function useDescendant(descendant) {\n const [, forceUpdate] = React.useState();\n const {\n registerDescendant = noop,\n unregisterDescendant = noop,\n descendants = [],\n parentId = null\n } = React.useContext(DescendantContext); // This will initially return -1 because we haven't registered the descendant\n // on the first render. After we register, this will then return the correct\n // index on the following render and we will re-register descendants\n // so that everything is up-to-date before the user interacts with a\n // collection.\n\n const index = findIndex(descendants, item => item.element === descendant.element);\n const previousDescendants = usePrevious(descendants); // We also need to re-register descendants any time ANY of the other\n // descendants have changed. My brain was melting when I wrote this and it\n // feels a little off, but checking in render and using the result in the\n // effect's dependency array works well enough.\n\n const someDescendantsHaveChanged = descendants.some((newDescendant, position) => {\n return previousDescendants && previousDescendants[position] && previousDescendants[position].element !== newDescendant.element;\n }); // Prevent any flashing\n\n useEnhancedEffect(() => {\n if (descendant.element) {\n registerDescendant(_extends({}, descendant, {\n index\n }));\n return () => {\n unregisterDescendant(descendant.element);\n };\n }\n\n forceUpdate({});\n return undefined;\n }, [registerDescendant, unregisterDescendant, index, someDescendantsHaveChanged, descendant]);\n return {\n parentId,\n index\n };\n}\nexport function DescendantProvider(props) {\n const {\n children,\n id\n } = props;\n const [items, set] = React.useState([]);\n const registerDescendant = React.useCallback(_ref => {\n let {\n element\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n set(oldItems => {\n let newItems;\n\n if (oldItems.length === 0) {\n // If there are no items, register at index 0 and bail.\n return [_extends({}, other, {\n element,\n index: 0\n })];\n }\n\n const index = binaryFindElement(oldItems, element);\n\n if (oldItems[index] && oldItems[index].element === element) {\n // If the element is already registered, just use the same array\n newItems = oldItems;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n const newItem = _extends({}, other, {\n element,\n index\n }); // If an index is not found we will push the element to the end.\n\n\n newItems = oldItems.slice();\n newItems.splice(index, 0, newItem);\n }\n\n newItems.forEach((item, position) => {\n item.index = position;\n });\n return newItems;\n });\n }, []);\n const unregisterDescendant = React.useCallback(element => {\n set(oldItems => oldItems.filter(item => element !== item.element));\n }, []);\n const value = React.useMemo(() => ({\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n parentId: id\n }), [items, registerDescendant, unregisterDescendant, id]);\n return /*#__PURE__*/_jsx(DescendantContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DescendantProvider.propTypes = {\n children: PropTypes.node,\n id: PropTypes.string\n} : void 0;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTreeViewUtilityClass(slot) {\n return generateUtilityClass('MuiTreeView', slot);\n}\nconst treeViewClasses = generateUtilityClasses('MuiTreeView', ['root']);\nexport default treeViewClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"defaultCollapseIcon\", \"defaultEndIcon\", \"defaultExpanded\", \"defaultExpandIcon\", \"defaultParentIcon\", \"defaultSelected\", \"disabledItemsFocusable\", \"disableSelection\", \"expanded\", \"id\", \"multiSelect\", \"onBlur\", \"onFocus\", \"onKeyDown\", \"onNodeFocus\", \"onNodeSelect\", \"onNodeToggle\", \"selected\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { styled, useTheme, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { useControlled, useForkRef, ownerDocument, unstable_useId as useId } from '@mui/material/utils';\nimport TreeViewContext from './TreeViewContext';\nimport { DescendantProvider } from './descendants';\nimport { getTreeViewUtilityClass } from './treeViewClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTreeViewUtilityClass, classes);\n};\n\nconst TreeViewRoot = styled('ul', {\n name: 'MuiTreeView',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: 0,\n margin: 0,\n listStyle: 'none',\n outline: 0\n});\n\nfunction isPrintableCharacter(string) {\n return string && string.length === 1 && string.match(/\\S/);\n}\n\nfunction findNextFirstChar(firstChars, startIndex, char) {\n for (let i = startIndex; i < firstChars.length; i += 1) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction noopSelection() {\n return false;\n}\n\nconst defaultDefaultExpanded = [];\nconst defaultDefaultSelected = [];\nconst TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTreeView'\n });\n\n const {\n children,\n className,\n defaultCollapseIcon,\n defaultEndIcon,\n defaultExpanded = defaultDefaultExpanded,\n defaultExpandIcon,\n defaultParentIcon,\n defaultSelected = defaultDefaultSelected,\n disabledItemsFocusable = false,\n disableSelection = false,\n expanded: expandedProp,\n id: idProp,\n multiSelect = false,\n onBlur,\n onFocus,\n onKeyDown,\n onNodeFocus,\n onNodeSelect,\n onNodeToggle,\n selected: selectedProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n\n const ownerState = _extends({}, props, {\n defaultExpanded,\n defaultSelected,\n disabledItemsFocusable,\n disableSelection,\n multiSelect\n });\n\n const classes = useUtilityClasses(ownerState);\n const treeId = useId(idProp);\n const treeRef = React.useRef(null);\n const handleRef = useForkRef(treeRef, ref);\n const [focusedNodeId, setFocusedNodeId] = React.useState(null);\n const nodeMap = React.useRef({});\n const firstCharMap = React.useRef({});\n const [expanded, setExpandedState] = useControlled({\n controlled: expandedProp,\n default: defaultExpanded,\n name: 'TreeView',\n state: 'expanded'\n });\n const [selected, setSelectedState] = useControlled({\n controlled: selectedProp,\n default: defaultSelected,\n name: 'TreeView',\n state: 'selected'\n });\n /*\n * Status Helpers\n */\n\n const isExpanded = React.useCallback(id => Array.isArray(expanded) ? expanded.indexOf(id) !== -1 : false, [expanded]);\n const isExpandable = React.useCallback(id => nodeMap.current[id] && nodeMap.current[id].expandable, []);\n const isSelected = React.useCallback(id => Array.isArray(selected) ? selected.indexOf(id) !== -1 : selected === id, [selected]);\n const isDisabled = React.useCallback(id => {\n let node = nodeMap.current[id]; // This can be called before the node has been added to the node map.\n\n if (!node) {\n return false;\n }\n\n if (node.disabled) {\n return true;\n }\n\n while (node.parentId != null) {\n node = nodeMap.current[node.parentId];\n\n if (node.disabled) {\n return true;\n }\n }\n\n return false;\n }, []);\n\n const isFocused = id => focusedNodeId === id;\n /*\n * Child Helpers\n */\n // Using Object.keys -> .map to mimic Object.values we should replace with Object.values() once we stop IE11 support.\n\n\n const getChildrenIds = id => Object.keys(nodeMap.current).map(key => {\n return nodeMap.current[key];\n }).filter(node => node.parentId === id).sort((a, b) => a.index - b.index).map(child => child.id);\n\n const getNavigableChildrenIds = id => {\n let childrenIds = getChildrenIds(id);\n\n if (!disabledItemsFocusable) {\n childrenIds = childrenIds.filter(node => !isDisabled(node));\n }\n\n return childrenIds;\n };\n /*\n * Node Helpers\n */\n\n\n const getNextNode = id => {\n // If expanded get first child\n if (isExpanded(id) && getNavigableChildrenIds(id).length > 0) {\n return getNavigableChildrenIds(id)[0];\n }\n\n let node = nodeMap.current[id];\n\n while (node != null) {\n // Try to get next sibling\n const siblings = getNavigableChildrenIds(node.parentId);\n const nextSibling = siblings[siblings.indexOf(node.id) + 1];\n\n if (nextSibling) {\n return nextSibling;\n } // If the sibling does not exist, go up a level to the parent and try again.\n\n\n node = nodeMap.current[node.parentId];\n }\n\n return null;\n };\n\n const getPreviousNode = id => {\n const node = nodeMap.current[id];\n const siblings = getNavigableChildrenIds(node.parentId);\n const nodeIndex = siblings.indexOf(id);\n\n if (nodeIndex === 0) {\n return node.parentId;\n }\n\n let currentNode = siblings[nodeIndex - 1];\n\n while (isExpanded(currentNode) && getNavigableChildrenIds(currentNode).length > 0) {\n currentNode = getNavigableChildrenIds(currentNode).pop();\n }\n\n return currentNode;\n };\n\n const getLastNode = () => {\n let lastNode = getNavigableChildrenIds(null).pop();\n\n while (isExpanded(lastNode)) {\n lastNode = getNavigableChildrenIds(lastNode).pop();\n }\n\n return lastNode;\n };\n\n const getFirstNode = () => getNavigableChildrenIds(null)[0];\n\n const getParent = id => nodeMap.current[id].parentId;\n /**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' common ancestor using\n * a naive implementation of a lowest common ancestor algorithm\n * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).\n * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB\n * so we can compare their indexes to work out which node comes first in a depth first search.\n * (https://en.wikipedia.org/wiki/Depth-first_search)\n *\n * Another way to put it is which node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\n\n\n const findOrderInTremauxTree = (nodeAId, nodeBId) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = nodeMap.current[nodeAId];\n const nodeB = nodeMap.current[nodeBId];\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id ? [nodeA.id, nodeB.id] : [nodeB.id, nodeA.id];\n }\n\n const aFamily = [nodeA.id];\n const bFamily = [nodeB.id];\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n let continueA = true;\n let continueB = true;\n\n while (!bAncestorIsCommon && !aAncestorIsCommon) {\n if (continueA) {\n aFamily.push(aAncestor);\n aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n continueA = aAncestor !== null;\n\n if (!aAncestorIsCommon && continueA) {\n aAncestor = nodeMap.current[aAncestor].parentId;\n }\n }\n\n if (continueB && !aAncestorIsCommon) {\n bFamily.push(bAncestor);\n bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n continueB = bAncestor !== null;\n\n if (!bAncestorIsCommon && continueB) {\n bAncestor = nodeMap.current[bAncestor].parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = getChildrenIds(commonAncestor);\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide) ? [nodeAId, nodeBId] : [nodeBId, nodeAId];\n };\n\n const getNodesInRange = (nodeA, nodeB) => {\n const [first, last] = findOrderInTremauxTree(nodeA, nodeB);\n const nodes = [first];\n let current = first;\n\n while (current !== last) {\n current = getNextNode(current);\n nodes.push(current);\n }\n\n return nodes;\n };\n /*\n * Focus Helpers\n */\n\n\n const focus = (event, id) => {\n if (id) {\n setFocusedNodeId(id);\n\n if (onNodeFocus) {\n onNodeFocus(event, id);\n }\n }\n };\n\n const focusNextNode = (event, id) => focus(event, getNextNode(id));\n\n const focusPreviousNode = (event, id) => focus(event, getPreviousNode(id));\n\n const focusFirstNode = event => focus(event, getFirstNode());\n\n const focusLastNode = event => focus(event, getLastNode());\n\n const focusByFirstCharacter = (event, id, char) => {\n let start;\n let index;\n const lowercaseChar = char.toLowerCase();\n const firstCharIds = [];\n const firstChars = []; // This really only works since the ids are strings\n\n Object.keys(firstCharMap.current).forEach(nodeId => {\n const firstChar = firstCharMap.current[nodeId];\n const map = nodeMap.current[nodeId];\n const visible = map.parentId ? isExpanded(map.parentId) : true;\n const shouldBeSkipped = disabledItemsFocusable ? false : isDisabled(nodeId);\n\n if (visible && !shouldBeSkipped) {\n firstCharIds.push(nodeId);\n firstChars.push(firstChar);\n }\n }); // Get start index for search based on position of currentItem\n\n start = firstCharIds.indexOf(id) + 1;\n\n if (start >= firstCharIds.length) {\n start = 0;\n } // Check remaining slots in the menu\n\n\n index = findNextFirstChar(firstChars, start, lowercaseChar); // If not found in remaining slots, check from beginning\n\n if (index === -1) {\n index = findNextFirstChar(firstChars, 0, lowercaseChar);\n } // If match was found...\n\n\n if (index > -1) {\n focus(event, firstCharIds[index]);\n }\n };\n /*\n * Expansion Helpers\n */\n\n\n const toggleExpansion = (event, value = focusedNodeId) => {\n let newExpanded;\n\n if (expanded.indexOf(value) !== -1) {\n newExpanded = expanded.filter(id => id !== value);\n } else {\n newExpanded = [value].concat(expanded);\n }\n\n if (onNodeToggle) {\n onNodeToggle(event, newExpanded);\n }\n\n setExpandedState(newExpanded);\n };\n\n const expandAllSiblings = (event, id) => {\n const map = nodeMap.current[id];\n const siblings = getChildrenIds(map.parentId);\n const diff = siblings.filter(child => isExpandable(child) && !isExpanded(child));\n const newExpanded = expanded.concat(diff);\n\n if (diff.length > 0) {\n setExpandedState(newExpanded);\n\n if (onNodeToggle) {\n onNodeToggle(event, newExpanded);\n }\n }\n };\n /*\n * Selection Helpers\n */\n\n\n const lastSelectedNode = React.useRef(null);\n const lastSelectionWasRange = React.useRef(false);\n const currentRangeSelection = React.useRef([]);\n\n const handleRangeArrowSelect = (event, nodes) => {\n let base = selected.slice();\n const {\n start,\n next,\n current\n } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (currentRangeSelection.current.indexOf(current) === -1) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (currentRangeSelection.current.indexOf(next) !== -1) {\n base = base.filter(id => id === start || id !== current);\n currentRangeSelection.current = currentRangeSelection.current.filter(id => id === start || id !== current);\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n\n if (onNodeSelect) {\n onNodeSelect(event, base);\n }\n\n setSelectedState(base);\n };\n\n const handleRangeSelect = (event, nodes) => {\n let base = selected.slice();\n const {\n start,\n end\n } = nodes; // If last selection was a range selection ignore nodes that were selected.\n\n if (lastSelectionWasRange.current) {\n base = base.filter(id => currentRangeSelection.current.indexOf(id) === -1);\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter(node => !isDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);\n\n if (onNodeSelect) {\n onNodeSelect(event, newSelected);\n }\n\n setSelectedState(newSelected);\n };\n\n const handleMultipleSelect = (event, value) => {\n let newSelected;\n\n if (selected.indexOf(value) !== -1) {\n newSelected = selected.filter(id => id !== value);\n } else {\n newSelected = [value].concat(selected);\n }\n\n if (onNodeSelect) {\n onNodeSelect(event, newSelected);\n }\n\n setSelectedState(newSelected);\n };\n\n const handleSingleSelect = (event, value) => {\n const newSelected = multiSelect ? [value] : value;\n\n if (onNodeSelect) {\n onNodeSelect(event, newSelected);\n }\n\n setSelectedState(newSelected);\n };\n\n const selectNode = (event, id, multiple = false) => {\n if (id) {\n if (multiple) {\n handleMultipleSelect(event, id);\n } else {\n handleSingleSelect(event, id);\n }\n\n lastSelectedNode.current = id;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n return true;\n }\n\n return false;\n };\n\n const selectRange = (event, nodes, stacked = false) => {\n const {\n start = lastSelectedNode.current,\n end,\n current\n } = nodes;\n\n if (stacked) {\n handleRangeArrowSelect(event, {\n start,\n next: end,\n current\n });\n } else if (start != null && end != null) {\n handleRangeSelect(event, {\n start,\n end\n });\n }\n\n lastSelectionWasRange.current = true;\n };\n\n const rangeSelectToFirst = (event, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;\n selectRange(event, {\n start,\n end: getFirstNode()\n });\n };\n\n const rangeSelectToLast = (event, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;\n selectRange(event, {\n start,\n end: getLastNode()\n });\n };\n\n const selectNextNode = (event, id) => {\n if (!isDisabled(getNextNode(id))) {\n selectRange(event, {\n end: getNextNode(id),\n current: id\n }, true);\n }\n };\n\n const selectPreviousNode = (event, id) => {\n if (!isDisabled(getPreviousNode(id))) {\n selectRange(event, {\n end: getPreviousNode(id),\n current: id\n }, true);\n }\n };\n\n const selectAllNodes = event => {\n selectRange(event, {\n start: getFirstNode(),\n end: getLastNode()\n });\n };\n /*\n * Mapping Helpers\n */\n\n\n const registerNode = React.useCallback(node => {\n const {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled\n } = node;\n nodeMap.current[id] = {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled\n };\n }, []);\n const unregisterNode = React.useCallback(id => {\n const newMap = _extends({}, nodeMap.current);\n\n delete newMap[id];\n nodeMap.current = newMap;\n setFocusedNodeId(oldFocusedNodeId => {\n if (oldFocusedNodeId === id && treeRef.current === ownerDocument(treeRef.current).activeElement) {\n return getChildrenIds(null)[0];\n }\n\n return oldFocusedNodeId;\n });\n }, []);\n const mapFirstChar = React.useCallback((id, firstChar) => {\n firstCharMap.current[id] = firstChar;\n }, []);\n const unMapFirstChar = React.useCallback(id => {\n const newMap = _extends({}, firstCharMap.current);\n\n delete newMap[id];\n firstCharMap.current = newMap;\n }, []);\n /**\n * Event handlers and Navigation\n */\n\n const handleNextArrow = event => {\n if (isExpandable(focusedNodeId)) {\n if (isExpanded(focusedNodeId)) {\n focusNextNode(event, focusedNodeId);\n } else if (!isDisabled(focusedNodeId)) {\n toggleExpansion(event);\n }\n }\n\n return true;\n };\n\n const handlePreviousArrow = event => {\n if (isExpanded(focusedNodeId) && !isDisabled(focusedNodeId)) {\n toggleExpansion(event, focusedNodeId);\n return true;\n }\n\n const parent = getParent(focusedNodeId);\n\n if (parent) {\n focus(event, parent);\n return true;\n }\n\n return false;\n };\n\n const handleKeyDown = event => {\n let flag = false;\n const key = event.key; // If the tree is empty there will be no focused node\n\n if (event.altKey || event.currentTarget !== event.target || !focusedNodeId) {\n return;\n }\n\n const ctrlPressed = event.ctrlKey || event.metaKey;\n\n switch (key) {\n case ' ':\n if (!disableSelection && !isDisabled(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, {\n end: focusedNodeId\n });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n\n event.stopPropagation();\n break;\n\n case 'Enter':\n if (!isDisabled(focusedNodeId)) {\n if (isExpandable(focusedNodeId)) {\n toggleExpansion(event);\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n\n event.stopPropagation();\n break;\n\n case 'ArrowDown':\n if (multiSelect && event.shiftKey && !disableSelection) {\n selectNextNode(event, focusedNodeId);\n }\n\n focusNextNode(event, focusedNodeId);\n flag = true;\n break;\n\n case 'ArrowUp':\n if (multiSelect && event.shiftKey && !disableSelection) {\n selectPreviousNode(event, focusedNodeId);\n }\n\n focusPreviousNode(event, focusedNodeId);\n flag = true;\n break;\n\n case 'ArrowRight':\n if (isRtl) {\n flag = handlePreviousArrow(event);\n } else {\n flag = handleNextArrow(event);\n }\n\n break;\n\n case 'ArrowLeft':\n if (isRtl) {\n flag = handleNextArrow(event);\n } else {\n flag = handlePreviousArrow(event);\n }\n\n break;\n\n case 'Home':\n if (multiSelect && ctrlPressed && event.shiftKey && !disableSelection && !isDisabled(focusedNodeId)) {\n rangeSelectToFirst(event, focusedNodeId);\n }\n\n focusFirstNode(event);\n flag = true;\n break;\n\n case 'End':\n if (multiSelect && ctrlPressed && event.shiftKey && !disableSelection && !isDisabled(focusedNodeId)) {\n rangeSelectToLast(event, focusedNodeId);\n }\n\n focusLastNode(event);\n flag = true;\n break;\n\n default:\n if (key === '*') {\n expandAllSiblings(event, focusedNodeId);\n flag = true;\n } else if (multiSelect && ctrlPressed && key.toLowerCase() === 'a' && !disableSelection) {\n selectAllNodes(event);\n flag = true;\n } else if (!ctrlPressed && !event.shiftKey && isPrintableCharacter(key)) {\n focusByFirstCharacter(event, focusedNodeId, key);\n flag = true;\n }\n\n }\n\n if (flag) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n const handleFocus = event => {\n // if the event bubbled (which is React specific) we don't want to steal focus\n if (event.target === event.currentTarget) {\n const firstSelected = Array.isArray(selected) ? selected[0] : selected;\n focus(event, firstSelected || getNavigableChildrenIds(null)[0]);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur = event => {\n setFocusedNodeId(null);\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const activeDescendant = nodeMap.current[focusedNodeId] ? nodeMap.current[focusedNodeId].idAttribute : null;\n return /*#__PURE__*/_jsx(TreeViewContext.Provider, {\n value: {\n icons: {\n defaultCollapseIcon,\n defaultExpandIcon,\n defaultParentIcon,\n defaultEndIcon\n },\n focus,\n toggleExpansion,\n isExpanded,\n isExpandable,\n isFocused,\n isSelected,\n isDisabled,\n selectNode: disableSelection ? noopSelection : selectNode,\n selectRange: disableSelection ? noopSelection : selectRange,\n multiSelect,\n disabledItemsFocusable,\n mapFirstChar,\n unMapFirstChar,\n registerNode,\n unregisterNode,\n treeId\n },\n children: /*#__PURE__*/_jsx(DescendantProvider, {\n children: /*#__PURE__*/_jsx(TreeViewRoot, _extends({\n role: \"tree\",\n id: treeId,\n \"aria-activedescendant\": activeDescendant,\n \"aria-multiselectable\": multiSelect,\n className: clsx(classes.root, className),\n ref: handleRef,\n tabIndex: 0,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ownerState: ownerState\n }, other, {\n children: children\n }))\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TreeView.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 default icon used to collapse the node.\n */\n defaultCollapseIcon: PropTypes.node,\n\n /**\n * The default icon displayed next to a end node. This is applied to all\n * tree nodes and can be overridden by the TreeItem `icon` prop.\n */\n defaultEndIcon: PropTypes.node,\n\n /**\n * Expanded node ids. (Uncontrolled)\n * @default []\n */\n defaultExpanded: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * The default icon used to expand the node.\n */\n defaultExpandIcon: PropTypes.node,\n\n /**\n * The default icon displayed next to a parent node. This is applied to all\n * parent nodes and can be overridden by the TreeItem `icon` prop.\n */\n defaultParentIcon: PropTypes.node,\n\n /**\n * Selected node ids. (Uncontrolled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),\n\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n\n /**\n * If `true` selection is disabled.\n * @default false\n */\n disableSelection: PropTypes.bool,\n\n /**\n * Expanded node ids. (Controlled)\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide this prop. It falls back to a randomly generated id.\n */\n id: PropTypes.string,\n\n /**\n * If true `ctrl` and `shift` will trigger multiselect.\n * @default false\n */\n multiSelect: PropTypes.bool,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * Callback fired when tree items are focused.\n *\n * @param {React.SyntheticEvent} event The event source of the callback **Warning**: This is a generic event not a focus event.\n * @param {string} value of the focused node.\n */\n onNodeFocus: PropTypes.func,\n\n /**\n * Callback fired when tree items are selected/unselected.\n *\n * @param {React.SyntheticEvent} event The event source of the callback\n * @param {string[] | string} nodeIds Ids of the selected nodes. When `multiSelect` is true\n * this is an array of strings; when false (default) a string.\n */\n onNodeSelect: PropTypes.func,\n\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes.\n */\n onNodeToggle: PropTypes.func,\n\n /**\n * Selected node ids. (Controlled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), 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} : void 0;\nexport default TreeView;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"classes\", \"className\", \"displayIcon\", \"expansionIcon\", \"icon\", \"label\", \"nodeId\", \"onClick\", \"onMouseDown\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport useTreeItem from './useTreeItem';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TreeItemContent = /*#__PURE__*/React.forwardRef(function TreeItemContent(props, ref) {\n const {\n classes,\n className,\n displayIcon,\n expansionIcon,\n icon: iconProp,\n label,\n nodeId,\n onClick,\n onMouseDown\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n disabled,\n expanded,\n selected,\n focused,\n handleExpansion,\n handleSelection,\n preventSelection\n } = useTreeItem(nodeId);\n const icon = iconProp || expansionIcon || displayIcon;\n\n const handleMouseDown = event => {\n preventSelection(event);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n };\n\n const handleClick = event => {\n handleExpansion(event);\n handleSelection(event);\n\n if (onClick) {\n onClick(event);\n }\n };\n\n return (\n /*#__PURE__*/\n\n /* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions -- Key event is handled by the TreeView */\n _jsxs(\"div\", _extends({\n className: clsx(className, classes.root, expanded && classes.expanded, selected && classes.selected, focused && classes.focused, disabled && classes.disabled),\n onClick: handleClick,\n onMouseDown: handleMouseDown,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: classes.iconContainer,\n children: icon\n }), /*#__PURE__*/_jsx(\"div\", {\n className: classes.label,\n children: label\n })]\n }))\n );\n});\nprocess.env.NODE_ENV !== \"production\" ? TreeItemContent.propTypes = {\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 * 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 * className applied to the root element.\n */\n className: PropTypes.string,\n\n /**\n * The icon to display next to the tree node's label. Either a parent or end icon.\n */\n displayIcon: PropTypes.node,\n\n /**\n * The icon to display next to the tree node's label. Either an expansion or collapse icon.\n */\n expansionIcon: PropTypes.node,\n\n /**\n * The icon to display next to the tree node's label.\n */\n icon: PropTypes.node,\n\n /**\n * The tree node label.\n */\n label: PropTypes.node,\n\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func\n} : void 0;\nexport default TreeItemContent;","import * as React from 'react';\nimport TreeViewContext from '../TreeView/TreeViewContext';\nexport default function useTreeItem(nodeId) {\n const {\n focus,\n isExpanded,\n isExpandable,\n isFocused,\n isDisabled,\n isSelected,\n multiSelect,\n selectNode,\n selectRange,\n toggleExpansion\n } = React.useContext(TreeViewContext);\n const expandable = isExpandable ? isExpandable(nodeId) : false;\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n\n const handleExpansion = event => {\n if (!disabled) {\n if (!focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey); // If already expanded and trying to toggle selection don't close\n\n if (expandable && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n }\n };\n\n const handleSelection = event => {\n if (!disabled) {\n if (!focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n selectRange(event, {\n end: nodeId\n });\n } else {\n selectNode(event, nodeId, true);\n }\n } else {\n selectNode(event, nodeId);\n }\n }\n };\n\n const preventSelection = event => {\n if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {\n // Prevent text selection\n event.preventDefault();\n }\n };\n\n return {\n disabled,\n expanded,\n selected,\n focused,\n handleExpansion,\n handleSelection,\n preventSelection\n };\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTreeItemUtilityClass(slot) {\n return generateUtilityClass('MuiTreeItem', slot);\n}\nconst treeItemClasses = generateUtilityClasses('MuiTreeItem', ['root', 'group', 'content', 'expanded', 'selected', 'focused', 'disabled', 'iconContainer', 'label']);\nexport default treeItemClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"collapseIcon\", \"ContentComponent\", \"ContentProps\", \"endIcon\", \"expandIcon\", \"disabled\", \"icon\", \"id\", \"label\", \"nodeId\", \"onClick\", \"onMouseDown\", \"TransitionComponent\", \"TransitionProps\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { elementTypeAcceptingRef } from '@mui/utils';\nimport Collapse from '@mui/material/Collapse';\nimport { alpha, styled, useThemeProps } from '@mui/material/styles';\nimport { ownerDocument, useForkRef, unsupportedProp } from '@mui/material/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport TreeViewContext from '../TreeView/TreeViewContext';\nimport { DescendantProvider, useDescendant } from '../TreeView/descendants';\nimport TreeItemContent from './TreeItemContent';\nimport treeItemClasses, { getTreeItemUtilityClass } from './treeItemClasses';\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 } = ownerState;\n const slots = {\n root: ['root'],\n content: ['content'],\n expanded: ['expanded'],\n selected: ['selected'],\n focused: ['focused'],\n disabled: ['disabled'],\n iconContainer: ['iconContainer'],\n label: ['label'],\n group: ['group']\n };\n return composeClasses(slots, getTreeItemUtilityClass, classes);\n};\n\nconst TreeItemRoot = styled('li', {\n name: 'MuiTreeItem',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n outline: 0\n});\nconst StyledTreeItemContent = styled(TreeItemContent, {\n name: 'MuiTreeItem',\n slot: 'Content',\n overridesResolver: (props, styles) => {\n return [styles.content, styles.iconContainer && {\n [`& .${treeItemClasses.iconContainer}`]: styles.iconContainer\n }, styles.label && {\n [`& .${treeItemClasses.label}`]: styles.label\n }];\n }\n})(({\n theme\n}) => ({\n padding: '0 8px',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n WebkitTapHighlightColor: 'transparent',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${treeItemClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity,\n backgroundColor: 'transparent'\n },\n [`&.${treeItemClasses.focused}`]: {\n backgroundColor: theme.palette.action.focus\n },\n [`&.${treeItemClasses.selected}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n },\n [`&.${treeItemClasses.focused}`]: {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n },\n [`& .${treeItemClasses.iconContainer}`]: {\n marginRight: 4,\n width: 15,\n display: 'flex',\n flexShrink: 0,\n justifyContent: 'center',\n '& svg': {\n fontSize: 18\n }\n },\n [`& .${treeItemClasses.label}`]: _extends({\n width: '100%',\n // fixes overflow - see https://github.com/mui-org/material-ui/issues/27372\n minWidth: 0,\n paddingLeft: 4,\n position: 'relative'\n }, theme.typography.body1)\n}));\nconst TreeItemGroup = styled(Collapse, {\n name: 'MuiTreeItem',\n slot: 'Group',\n overridesResolver: (props, styles) => styles.group\n})({\n margin: 0,\n padding: 0,\n marginLeft: 17\n});\nconst TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTreeItem'\n });\n\n const {\n children,\n className,\n collapseIcon,\n ContentComponent = TreeItemContent,\n ContentProps,\n endIcon,\n expandIcon,\n disabled: disabledProp,\n icon,\n id: idProp,\n label,\n nodeId,\n onClick,\n onMouseDown,\n TransitionComponent = Collapse,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n icons: contextIcons = {},\n focus,\n isExpanded,\n isFocused,\n isSelected,\n isDisabled,\n multiSelect,\n disabledItemsFocusable,\n mapFirstChar,\n unMapFirstChar,\n registerNode,\n unregisterNode,\n treeId\n } = React.useContext(TreeViewContext);\n let id = null;\n\n if (idProp != null) {\n id = idProp;\n } else if (treeId && nodeId) {\n id = `${treeId}-${nodeId}`;\n }\n\n const [treeitemElement, setTreeitemElement] = React.useState(null);\n const contentRef = React.useRef(null);\n const handleRef = useForkRef(setTreeitemElement, ref);\n const descendant = React.useMemo(() => ({\n element: treeitemElement,\n id: nodeId\n }), [nodeId, treeitemElement]);\n const {\n index,\n parentId\n } = useDescendant(descendant);\n const expandable = Boolean(Array.isArray(children) ? children.length : children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const ownerState = _extends({}, props, {\n expanded,\n focused,\n selected,\n disabled\n });\n\n const classes = useUtilityClasses(ownerState);\n let displayIcon;\n let expansionIcon;\n\n if (expandable) {\n if (!expanded) {\n expansionIcon = expandIcon || contextIcons.defaultExpandIcon;\n } else {\n expansionIcon = collapseIcon || contextIcons.defaultCollapseIcon;\n }\n }\n\n if (expandable) {\n displayIcon = contextIcons.defaultParentIcon;\n } else {\n displayIcon = endIcon || contextIcons.defaultEndIcon;\n }\n\n React.useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n expandable,\n disabled: disabledProp\n });\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [registerNode, unregisterNode, parentId, index, nodeId, expandable, disabledProp, id]);\n React.useEffect(() => {\n if (mapFirstChar && unMapFirstChar && label) {\n mapFirstChar(nodeId, contentRef.current.textContent.substring(0, 1).toLowerCase());\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n let ariaSelected;\n\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n function handleFocus(event) {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n ownerDocument(event.target).getElementById(treeId).focus({\n preventScroll: true\n });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n\n if (!focused && event.currentTarget === event.target && !unfocusable) {\n focus(event, nodeId);\n }\n }\n\n return /*#__PURE__*/_jsxs(TreeItemRoot, _extends({\n className: clsx(classes.root, className),\n role: \"treeitem\",\n \"aria-expanded\": expandable ? expanded : null,\n \"aria-selected\": ariaSelected,\n \"aria-disabled\": disabled || null,\n ref: handleRef,\n id: id,\n tabIndex: -1\n }, other, {\n ownerState: ownerState,\n onFocus: handleFocus,\n children: [/*#__PURE__*/_jsx(StyledTreeItemContent, _extends({\n as: ContentComponent,\n ref: contentRef,\n classes: {\n root: classes.content,\n expanded: classes.expanded,\n selected: classes.selected,\n focused: classes.focused,\n disabled: classes.disabled,\n iconContainer: classes.iconContainer,\n label: classes.label\n },\n label: label,\n nodeId: nodeId,\n onClick: onClick,\n onMouseDown: onMouseDown,\n icon: icon,\n expansionIcon: expansionIcon,\n displayIcon: displayIcon,\n ownerState: ownerState\n }, ContentProps)), children && /*#__PURE__*/_jsx(DescendantProvider, {\n id: nodeId,\n children: /*#__PURE__*/_jsx(TreeItemGroup, _extends({\n as: TransitionComponent,\n unmountOnExit: true,\n className: classes.group,\n in: expanded,\n component: \"ul\",\n role: \"group\"\n }, TransitionProps, {\n children: children\n }))\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TreeItem.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 icon used to collapse the node.\n */\n collapseIcon: PropTypes.node,\n\n /**\n * The component used for the content node.\n * @default TreeItemContent\n */\n ContentComponent: elementTypeAcceptingRef,\n\n /**\n * Props applied to ContentComponent\n */\n ContentProps: PropTypes.object,\n\n /**\n * If `true`, the node is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The icon displayed next to a end node.\n */\n endIcon: PropTypes.node,\n\n /**\n * The icon used to expand the node.\n */\n expandIcon: PropTypes.node,\n\n /**\n * The icon to display next to the tree node's label.\n */\n icon: PropTypes.node,\n\n /**\n * @ignore\n */\n id: PropTypes.string,\n\n /**\n * The tree node label.\n */\n label: PropTypes.node,\n\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * This prop isn't supported.\n * Use the `onNodeFocus` callback on the tree if you need to monitor a node's focus.\n */\n onFocus: unsupportedProp,\n\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\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](/components/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 TreeItem;","import React, { useState, useEffect } from \"react\";\nimport { LayoutTemplate, LayoutTemplateMobile, useWsDataProvider } from 'kerberus-components';\nimport useSWR from 'swr';\nimport { useTheme, useMediaQuery } from \"@mui/material\";\n\nexport default function DashboardModalSocialGroup(props) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { data, getData, doUnsubscribe } = useWsDataProvider();\n const [groupChoices, setGroupChoices] = useState([]);\n const [currentGroup, setCurrentGroup] = useState(null);\n const [onlineData, setOnlineData] = useState(null);\n const [userList, setUserList] = useState([]);\n const { data: profileListData } = useSWR('users/profilelist/');\n const { data: socialGroupSelectData } = useSWR('users/socialgroupselect/');\n\n const [orientation, setOrientation] = useState(window.orientation);\n\n window.onresize = function (event) {\n applyOrientation();\n };\n\n function applyOrientation() {\n if (window.innerHeight > window.innerWidth) {\n setOrientation(\"portrait\");\n } else {\n setOrientation(\"landscape\");\n }\n }\n\n useEffect(() => {\n applyOrientation();\n }, []);\n\n useEffect(() => {\n if (profileListData) {\n setUserList(profileListData);\n }\n }, [profileListData]);\n\n\n useEffect(() => {\n if (userList.length > 0 && currentGroup?.id) {\n getData('socketLocation', 'lastFoundMany', {\n subscribe: true,\n filters: {\n social_group: currentGroup.id\n }\n });\n }\n return () => {\n doUnsubscribe();\n };\n }, [userList, getData, doUnsubscribe, currentGroup]);\n\n useEffect(() => {\n if (data) {\n setOnlineData(data);\n }\n }, [data]);\n\n useEffect(() => {\n if (socialGroupSelectData) {\n setGroupChoices(socialGroupSelectData);\n }\n }, [socialGroupSelectData]);\n\n useEffect(() => {\n if (groupChoices) {\n setCurrentGroup(groupChoices.find(item => item.id === props.item));\n }\n }, [groupChoices, props.item]);\n\n return (\n isSmall\n ?\n \n :\n \n );\n}","/**\n * Utils includes\n * - a handful of functional utilities inspired by or taken from the [Ramda library](https://ramdajs.com/);\n * - TypeScript crutches - the [[tup]] function.\n *\n * Use these for your convenience - they are here so that urx is zero-dependency package.\n *\n * @packageDocumentation\n */\n\n/** @internal */\nexport interface Proc {\n (): any\n}\n\n/**\n * Performs left to right composition of two functions.\n */\nexport function compose(a: (arg: A) => R, b: (arg: I) => A): (arg: I) => R {\n return (arg: I) => a(b(arg))\n}\n\n/**\n * Takes a value and applies a function to it.\n */\nexport function thrush(arg: I, proc: (arg: I) => K) {\n return proc(arg)\n}\n\n/**\n * Takes a 2 argument function and partially applies the first argument.\n */\nexport function curry2to1(proc: (arg1: T, arg2: K) => R, arg1: T): (arg2: K) => R {\n return arg2 => proc(arg1, arg2)\n}\n\n/**\n * Takes a 1 argument function and returns a function which when called, executes it with the provided argument.\n */\nexport function curry1to0(proc: (arg: T) => R, arg: T): () => R {\n return () => proc(arg)\n}\n\n/**\n * Returns a function which extracts the property from from the passed object.\n */\nexport function prop(property: string) {\n return (object: any) => object[property]\n}\n\n/**\n * Calls callback with the first argument, and returns it.\n */\nexport function tap(arg: T, proc: (arg: T) => any): T {\n proc(arg)\n return arg\n}\n\n/**\n * Utility function to help typescript figure out that what we pass is a tuple and not a generic array.\n * Taken from (this StackOverflow tread)[https://stackoverflow.com/questions/49729550/implicitly-create-a-tuple-in-typescript/52445008#52445008]\n */\nexport function tup>(...args: T): T {\n return args\n}\n\n/**\n * Calls the passed function.\n */\nexport function call(proc: Proc) {\n proc()\n}\n\n/**\n * returns a function which when called always returns the passed value\n */\nexport function always(value: T) {\n return () => value\n}\n\n/**\n * returns a function which calls all passed functions in the passed order.\n * joinProc does not pass arguments or collect return values.\n */\nexport function joinProc(...procs: Proc[]) {\n return () => {\n procs.map(call)\n }\n}\n\nexport function noop() {}\n","/**\n * urx Actions operate on streams - `publish` publishes data in a stream, and `subscribe` attaches a subscription to a stream.\n * @packageDocumentation\n */\nimport { PUBLISH, RESET, SUBSCRIBE, VALUE } from './constants'\nimport { curry2to1 } from './utils'\n\n/**\n * A Publisher is the **input end** of a Stream. The [[publish]] action publishes values in publishers.\n * @typeParam T the type of values to be published.\n */\nexport interface Publisher {\n /** @internal */\n (action: PUBLISH, value: T): void\n}\n\n/**\n * An Emitter is the **output end** of a Stream. The [[subscribe]] action binds {@link Subscription | subscriptions} to emitters.\n * @typeParam T the type of values that will be emitted.\n */\nexport interface Emitter {\n /** @internal */\n (action: SUBSCRIBE, subscription: Subscription): Unsubscribe\n /** @internal */\n (action: RESET): void\n}\n\n/**\n * Subscriptions are bound to Emitters with the [[subscribe]] action, and get called with the new values.\n * @typeParam T the Emitter value type.\n */\nexport interface Subscription {\n (value: T): any\n}\n\n/**\n * Subscribe-like actions return unsubscribe handles of the Unsubscribe type, which, when called, unbind the subscription.\n */\nexport interface Unsubscribe {\n (): void\n}\n\n/**\n * Streams present both the input and the output ends of a stream.\n * A single stream instance can be both subscribed to and published in.\n */\nexport interface Stream extends Publisher, Emitter {\n /** @internal */\n (action: SUBSCRIBE | PUBLISH | RESET): any // fix for bug with pipe + connect\n}\n\n/**\n * Just like {@link Stream | streams}, stateful streams present both input and output ends of a stream.\n * A single stream instance can be both subscribed to and published in.\n * Stateful Streams can also act like depots, preserving the last passed value and immediately publishing it to new subscriptions.\n * [[getValue]] can be used to extract value from stateful streams.\n */\nexport interface StatefulStream extends Publisher, Emitter {\n /** @internal */\n (action: SUBSCRIBE | PUBLISH | RESET | VALUE): any // fix for bug with pipe + connect\n // StatefulStream should extend rather then duplicate the signature, but this somehow causes a bug in TS\n}\n\n/**\n * Subscribes the specified [[Subscription]] to the updates from the Emitter.\n * The emitter calls the subscription with the new data each time new data is published into it.\n *\n * ```ts\n * const foo = stream();\n * subscribe(foo, (value) => console.log(value));\n * ```\n *\n * @returns an [[Unsubscribe]] handle - calling it will unbind the subscription from the emitter.\n *```ts\n * const foo = stream();\n * const unsub = subscribe(foo, (value) => console.log(value));\n * unsub();\n *```\n */\nexport function subscribe(emitter: Emitter, subscription: Subscription): Unsubscribe {\n return emitter(SUBSCRIBE, subscription)\n}\n\n/**\n * Publishes the value into the passed [[Publisher]].\n *\n * ```ts\n * const foo = stream();\n * publish(foo, 42);\n * ```\n */\nexport function publish(publisher: Publisher, value: T) {\n publisher(PUBLISH, value)\n}\n\n/**\n * Clears all subscriptions from the [[Emitter]].\n * ```ts\n * const foo = stream();\n * subscribe(foo, (value) => console.log(value));\n * reset(foo);\n * publish(foo, 42);\n * ```\n */\nexport function reset(emitter: Emitter) {\n emitter(RESET)\n}\n\n/**\n * Extracts the current value from a stateful stream. Use it only as an escape hatch, as it violates the concept of reactive programming.\n * ```ts\n * const foo = statefulStream(42);\n * console.log(getValue(foo));\n * ```\n */\nexport function getValue(depot: StatefulStream): T {\n return depot(VALUE)\n}\n\n/**\n * Connects two streams - any value emitted from the emitter will be published in the publisher.\n * ```ts\n * const foo = stream();\n * const bar = stream();\n * subscribe(bar, (value) => console.log(`Bar emitted ${value}`));\n *\n * connect(foo, bar);\n * publish(foo);\n * ```\n * @returns an [[Unsubscribe]] handle which will disconnect the two streams.\n */\nexport function connect(emitter: Emitter, publisher: Publisher) {\n return subscribe(emitter, curry2to1(publisher, PUBLISH))\n}\n\n/**\n * Executes the passed subscription at most once, for the next emit from the emitter.\n * ```ts\n * const foo = stream()\n * handleNext(foo, value => console.log(value)) // called once, with 42\n * publish(foo, 42)\n * publish(foo, 43)\n * ```\n * @returns an [[Unsubscribe]] handle to unbind the subscription if necessary.\n */\nexport function handleNext(emitter: Emitter, subscription: Subscription) {\n const unsub = emitter(SUBSCRIBE, value => {\n unsub()\n subscription(value)\n })\n return unsub\n}\n","export const PUBLISH = 0 as const\nexport type PUBLISH = typeof PUBLISH\n\nexport const SUBSCRIBE = 1 as const\nexport type SUBSCRIBE = typeof SUBSCRIBE\n\nexport const RESET = 2 as const\nexport type RESET = typeof RESET\n\nexport const VALUE = 4 as const\nexport type VALUE = typeof VALUE\n","/**\n * Streams are the basic building blocks of a reactive system. Think of them as the system permanent \"data tubes\".\n *\n * A stream acts as both an [[Emitter]] and [[Publisher]]. Each stream can have multiple {@link Subscription | Subscriptions}.\n *\n * urx streams are either **stateless** or **stateful**.\n * Stateless streams emit data to existing subscriptions when published, without keeping track of it.\n * Stateful streams remember the last published value and immediately publish it to new subscriptions.\n *\n * ```ts\n * import { stream, statefulStream, publish, subscribe } from \"@virtuoso.dev/urx\";\n *\n * // foo is a stateless stream\n * const foo = stream();\n *\n * publish(foo, 42);\n * // this subsription will not be called...\n * subscribe(foo, (value) => console.log(value));\n * // it will only catch published values after it\n * publish(foo, 43);\n *\n * // stateful streams always start with an initial value\n * const bar = statefulStream(42);\n *\n * // subscribing to a stateful stream\n * // immediately calls the subscription with the current value\n * subscribe(bar, (value) => console.log(value));\n *\n * // subsequent publishing works just like stateless streams\n * publish(bar, 43);\n * ```\n * @packageDocumentation\n */\n\nimport { Emitter, StatefulStream, Stream, Subscription, Unsubscribe, subscribe, connect } from './actions'\nimport { RESET, PUBLISH, SUBSCRIBE, VALUE } from './constants'\nimport { tap, noop } from './utils'\n\n/**\n * Constructs a new stateless stream.\n * ```ts\n * const foo = stream();\n * ```\n * @typeParam T the type of values to publish in the stream.\n * @returns a [[Stream]]\n */\nexport function stream(): Stream {\n const subscriptions = [] as Subscription[]\n\n return ((action: PUBLISH | SUBSCRIBE | RESET, arg: any) => {\n switch (action) {\n case RESET:\n subscriptions.splice(0, subscriptions.length)\n return\n case SUBSCRIBE:\n subscriptions.push(arg)\n return () => {\n const indexOf = subscriptions.indexOf(arg)\n if (indexOf > -1) {\n subscriptions.splice(indexOf, 1)\n }\n }\n case PUBLISH:\n subscriptions.slice().forEach(subscription => {\n subscription(arg as T)\n })\n return\n default:\n throw new Error(`unrecognized action ${action}`)\n }\n }) as Stream\n}\n\n/**\n * Constructs a new stateful stream.\n * ```ts\n * const foo = statefulStream(42);\n * ```\n * @param initial the initial value in the stream.\n * @typeParam T the type of values to publish in the stream. If omitted, the function infers it from the initial value.\n * @returns a [[StatefulStream]]\n */\nexport function statefulStream(initial: T): StatefulStream {\n let value: T = initial\n const innerSubject = stream()\n\n return ((action: PUBLISH | SUBSCRIBE | RESET | VALUE, arg: any) => {\n switch (action) {\n case SUBSCRIBE:\n const subscription = arg as Subscription\n subscription(value)\n break\n case PUBLISH:\n value = arg as T\n break\n case VALUE:\n return value\n }\n return innerSubject(action as any, arg)\n }) as StatefulStream\n}\n\n/**\n * Event handlers are special emitters which can have **at most one active subscription**.\n * Subscribing to an event handler unsubscribes the previous subscription, if present.\n * ```ts\n * const foo = stream();\n * const fooEvent = eventHandler(foo);\n *\n * // will be called once with 42\n * subscribe(fooEvent, (value) => console.log(`Sub 1 ${value}`));\n * publish(foo, 42);\n *\n * // unsubscribes sub 1\n * subscribe(fooEvent, (value) => console.log(`Sub 2 ${value}`));\n * publish(foo, 43);\n * ```\n * @param emitter the source emitter.\n * @returns the single-subscription emitter.\n */\nexport function eventHandler(emitter: Emitter) {\n let unsub: Unsubscribe | undefined\n let currentSubscription: any\n let cleanup = () => unsub && unsub()\n\n return function(action: SUBSCRIBE | RESET, subscription?: Subscription) {\n switch (action) {\n case SUBSCRIBE:\n if (subscription) {\n if (currentSubscription === subscription) {\n return\n }\n cleanup()\n currentSubscription = subscription\n unsub = subscribe(emitter, subscription!)\n return unsub\n } else {\n cleanup()\n return noop\n }\n case RESET:\n cleanup()\n currentSubscription = null\n return\n default:\n throw new Error(`unrecognized action ${action}`)\n }\n } as Emitter\n}\n\n/**\n * Creates and connects a \"junction\" stream to the specified emitter. Often used with [[pipe]], to avoid the multiple evaluation of operator sets.\n *\n * ```ts\n * const foo = stream();\n *\n * const fooX2 = pipe(\n * foo,\n * map((value) => {\n * console.log(`multiplying ${value}`);\n * return value * 2;\n * })\n * );\n *\n * subscribe(fooX2, (value) => console.log(value));\n * subscribe(fooX2, (value) => console.log(value));\n *\n * publish(foo, 42); // executes the map operator twice for each subscription.\n *\n * const sharedFooX2 = streamFromEmitter(pipe(\n * foo,\n * map((value) => {\n * console.log(`shared multiplying ${value}`);\n * return value * 2;\n * })\n * ));\n *\n * subscribe(sharedFooX2, (value) => console.log(value));\n * subscribe(sharedFooX2, (value) => console.log(value));\n *\n * publish(foo, 42);\n *```\n * @returns the resulting stream.\n */\nexport function streamFromEmitter(emitter: Emitter): Stream {\n return tap(stream(), stream => connect(emitter, stream))\n}\n\n/**\n * Creates and connects a \"junction\" stateful stream to the specified emitter. Often used with [[pipe]], to avoid the multiple evaluation of operator sets.\n *\n * ```ts\n * const foo = stream();\n *\n * const fooX2 = pipe(\n * foo,\n * map((value) => {\n * console.log(`multiplying ${value}`);\n * return value * 2;\n * })\n * );\n *\n * subscribe(fooX2, (value) => console.log(value));\n * subscribe(fooX2, (value) => console.log(value));\n *\n * publish(foo, 42); // executes the map operator twice for each subscription.\n *\n * const sharedFooX2 = statefulStreamFromEmitter(pipe(\n * foo,\n * map((value) => {\n * console.log(`shared multiplying ${value}`);\n * return value * 2;\n * })\n * ), 42);\n *\n * subscribe(sharedFooX2, (value) => console.log(value));\n * subscribe(sharedFooX2, (value) => console.log(value));\n *\n * publish(foo, 42);\n *```\n * @param initial the initial value in the stream.\n * @returns the resulting stateful stream.\n */\nexport function statefulStreamFromEmitter(emitter: Emitter, initial: T): StatefulStream {\n return tap(statefulStream(initial), stream => connect(emitter, stream))\n}\n","/**\n *\n * Stream values can be transformed and controlled by {@link pipe | **piping**} through **operators**.\n * urx includes several operators like [[map]], [[filter]], [[scan]], and [[throttleTime]].\n * The [[withLatestFrom]] operator allows the combination of values from other streams.\n *\n * ```ts\n * const foo = stream()\n *\n * // create an emitter that first adds 2 to the passed value, then multiplies it by * 2\n * const bar = pipe(foo, map(value => value + 2), map(value => value * 2))\n * subscribe(bar, value => console.log(value))\n * publish(foo, 2) // outputs 8\n * ```\n *\n * ### Implementing Custom Operators\n * To implement your own operators, implement the [[Operator]] interface.\n * @packageDocumentation\n */\nimport { compose, thrush } from './utils'\nimport { Emitter, subscribe, Subscription, reset } from './actions'\nimport { SUBSCRIBE, RESET } from './constants'\n\n/**\n * Operators can transform and control the flow of values.\n * [[pipe]] is used to transform one Emitter into another by stacking operators to its values.\n * To build your own operator that looks like the built-in ones,\n * create a function which returns an operator.\n * The following custom operator multiplies the passed value:\n *\n * ```ts\n * function multiplyBy(multiplier: number): Operator {\n * return done => value => done(value * multiplier)\n * }\n *\n * const foo = stream()\n * const multipliedFoo = pipe(foo, multiplyBy(3))\n * subscribe(multipliedFoo, value => console.log(value))\n * publish(foo, 42)\n * ```\n */\nexport interface Operator {\n (done: (value: Output) => void): (value: Input) => void\n}\n\n/** @internal */\ntype CombineOperatorsReturnType = (subscriber: (value: O) => void) => (value: I) => void\n\n/** @internal */\nfunction combineOperators(...operators: Operator[]): CombineOperatorsReturnType {\n return (subscriber: (value: any) => void) => {\n return operators.reduceRight(thrush, subscriber)\n }\n}\n\n/** @internal */\ntype O = Operator\n\n/**\n * Creates a new emitter from the passed one by piping its values through one or more operators.\n * Operators can perform various actions like filter values, pull values from other emitters, or compute new values.\n *\n * ```ts\n * const foo = stream()\n *\n * // create an emitter that first adds 2 to the passed value, then multiplies it by * 2\n * const bar = pipe(foo, map(value => value + 2), map(value => value * 2))\n * subscribe(bar, value => console.log(value))\n * publish(foo, 2) // outputs 8\n * ```\n * #### Sharing Subscription Calculations\n *\n * `pipe` acts as a proxy for the source emitter, and re-runs the operators for each subscription to the derived emitter.\n * Use [[streamFromEmitter]] or [[statefulStreamFromEmitter]] to avoid that.\n */\nexport function pipe(s: Emitter): Emitter // prettier-ignore\nexport function pipe(s: Emitter, o1: O): Emitter // prettier-ignore\nexport function pipe(s: Emitter, ...o: [O, O]): Emitter // prettier-ignore\nexport function pipe(s: Emitter, ...o: [O, O, O]): Emitter // prettier-ignore\nexport function pipe(s: Emitter, ...o: [O, O, O, O]): Emitter // prettier-ignore\nexport function pipe(s: Emitter, ...o: [O, O, O, O, O]): Emitter // prettier-ignore\nexport function pipe(s: Emitter, ...o: [O, O, O, O, O, O]): Emitter // prettier-ignore\nexport function pipe(s: Emitter, ...o: [O, O, O, O, O, O, O]): Emitter // prettier-ignore\nexport function pipe(source: Emitter, ...operators: O[]): Emitter {\n // prettier-ignore\n const project = combineOperators(...operators)\n return ((action: SUBSCRIBE | RESET, subscription: Subscription) => {\n switch (action) {\n case SUBSCRIBE:\n return subscribe(source, project(subscription))\n case RESET:\n reset(source)\n return\n default:\n throw new Error(`unrecognized action ${action}`)\n }\n }) as Emitter\n}\n\n/**\n * A function which determines if two values are equal.\n * Implement custom comparators when [[distinctUntilChanged]] needs to work on non-primitive objects.\n * @returns true if values should be considered equal.\n */\nexport interface Comparator {\n (previous: T, next: T): boolean\n}\n\n/**\n * The default [[Comparator]] for [[distinctUntilChanged]] and [[duc]].\n */\nexport function defaultComparator(previous: T, next: T) {\n return previous === next\n}\n\n/**\n * Filters out identical values. Pass an optional [[Comparator]] if you need to filter non-primitive values.\n * ```ts\n * const foo = stream()\n *\n * subscribe(\n * pipe(foo, distinctUntilChanged()),\n * console.log\n * ) // will be called only once\n *\n * publish(foo, 42)\n * publish(foo, 42)\n * ```\n */\nexport function distinctUntilChanged(comparator: Comparator = defaultComparator): Operator {\n let current: T\n return done => next => {\n if (!comparator(current, next)) {\n current = next\n done(next)\n }\n }\n}\n\n/**\n * Filters out values for which the predicator does not return `true`-ish.\n * ```ts\n * const foo = stream()\n *\n * subscribe(\n * pipe(foo, filter(value => value % 2 === 0)),\n * console.log\n * ) // will be called only with even values\n *\n * publish(foo, 2)\n * publish(foo, 3)\n * publish(foo, 4)\n * publish(foo, 5)\n * ```\n */\nexport function filter(predicate: (value: T) => boolean): Operator {\n return done => value => {\n predicate(value) && done(value)\n }\n}\n\n/**\n * Maps values using the provided project function.\n * ```ts\n * const foo = stream()\n *\n * subscribe(\n * pipe(foo, map(value => value * 2)),\n * console.log\n * ) // 4, 6\n *\n * publish(foo, 2)\n * publish(foo, 3)\n * ```\n */\nexport function map(project: (value: T) => K): Operator {\n return done => compose(done, project)\n}\n\n/**\n * Maps values to the hard-coded value.\n * ```ts\n * const foo = stream()\n *\n * subscribe(\n * pipe(foo, mapTo(3)),\n * console.log\n * ) // 3, 3\n *\n * publish(foo, 1)\n * publish(foo, 2)\n * ```\n */\nexport function mapTo(value: T): Operator {\n return done => () => done(value)\n}\n\n/**\n * Works like Array#reduce.\n * Applies an accumulator function on the emitter, and outputs intermediate result. Starts with the initial value.\n * ```ts\n * const foo = stream()\n *\n * subscribe(\n * pipe(foo, scan((acc, value) => acc + value, 2),\n * console.log\n * ) // 3, 5\n *\n * publish(foo, 1)\n * publish(foo, 2)\n * ```\n */\nexport function scan(scanner: (current: T, value: K) => T, initial: T): Operator {\n return done => value => done((initial = scanner(initial, value)))\n}\n\n/**\n * Skips the specified amount of values from the emitter.\n * ```ts\n * const foo = stream()\n *\n * subscribe(\n * pipe(foo, skip(2)),\n * console.log\n * ) // 3, 4\n *\n * publish(foo, 1) // skipped\n * publish(foo, 2) // skipped\n * publish(foo, 3)\n * publish(foo, 4)\n * ```\n */\nexport function skip(times: number): Operator {\n return done => value => {\n times > 0 ? times-- : done(value)\n }\n}\n\n/**\n * Throttles flowing values at the provided interval in milliseconds.\n * [Throttle VS Debounce in SO](https://stackoverflow.com/questions/25991367/difference-between-throttling-and-debouncing-a-function).\n *\n * ```ts\n * const foo = stream()\n * publish(foo, 1)\n *\n * setTimeout(() => publish(foo, 2), 20)\n * setTimeout(() => publish(foo, 3), 20)\n *\n * subscribe(pipe(foo, throttleTime(50)), val => {\n * console.log(value); // 3\n * })\n * ```\n */\nexport function throttleTime(interval: number): Operator {\n let currentValue: T | undefined\n let timeout: any\n\n return done => value => {\n currentValue = value\n\n if (timeout) {\n return\n }\n\n timeout = setTimeout(() => {\n timeout = undefined\n done(currentValue!)\n }, interval)\n }\n}\n\n/**\n * Debounces flowing values at the provided interval in milliseconds.\n * [Throttle VS Debounce in SO](https://stackoverflow.com/questions/25991367/difference-between-throttling-and-debouncing-a-function).\n *\n * ```ts\n * const foo = stream()\n * publish(foo, 1)\n *\n * setTimeout(() => publish(foo, 2), 20)\n * setTimeout(() => publish(foo, 3), 20)\n *\n * subscribe(pipe(foo, debounceTime(50)), val => {\n * console.log(value); // 3\n * })\n * ```\n */\nexport function debounceTime(interval: number): Operator {\n let currentValue: T | undefined\n let timeout: any\n\n return done => value => {\n currentValue = value\n if (timeout) {\n clearTimeout(timeout)\n }\n\n timeout = setTimeout(() => {\n done(currentValue!)\n }, interval)\n }\n}\n\n/**\n * Combines the source Emitter with the latest values from the specified Emitters into an array. Outputs only when the source Emitter emits.\n * See [[combineLatest]] for a transformer that outputs when any of the emitters emit.\n *\n * ```ts\n * const foo = stream()\n * const bar = stream()\n * subscribe(\n * pipe(\n * foo,\n * withLatestFrom(bar)\n * ),\n * (([foo, bar]) => console.log({ foo, bar }))\n * )\n *\n * publish(foo, 1) // nothing happens, bar has not emitted yet\n * publish(bar, 1) // still nothing\n * publish(foo, 2) // logs { foo: 2, bar: 1 }\n * publish(bar, 2)\n * publish(foo, 3) // logs { foo: 3, bar: 2 }\n * ```\n */\nexport function withLatestFrom(...s: [Emitter]): Operator // prettier-ignore\nexport function withLatestFrom(...s: [Emitter, Emitter]): Operator // prettier-ignore\nexport function withLatestFrom( ...s: [Emitter, Emitter, Emitter]): Operator // prettier-ignore\nexport function withLatestFrom( ...s: [Emitter, Emitter, Emitter, Emitter]): Operator // prettier-ignore\nexport function withLatestFrom( ...s: [Emitter, Emitter, Emitter, Emitter, Emitter]): Operator // prettier-ignore\nexport function withLatestFrom( ...s: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Operator // prettier-ignore\nexport function withLatestFrom( ...s: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Operator // prettier-ignore\nexport function withLatestFrom(...sources: Emitter[]): Operator {\n const values = new Array(sources.length)\n let called = 0\n let pendingCall: null | (() => void) = null\n const allCalled = Math.pow(2, sources.length) - 1\n\n sources.forEach((source, index) => {\n const bit = Math.pow(2, index)\n subscribe(source, value => {\n let prevCalled = called\n called = called | bit\n values[index] = value\n if (prevCalled !== allCalled && called === allCalled && pendingCall) {\n pendingCall()\n pendingCall = null\n }\n })\n })\n\n return done => value => {\n let call = () => done([value].concat(values))\n if (called === allCalled) {\n call()\n } else {\n pendingCall = call\n }\n }\n}\n","/**\n * Transformers change and combine streams, similar to operators.\n * urx comes with two combinators - [[combineLatest]] and [[merge]], and one convenience filter - [[duc]].\n *\n * @packageDocumentation\n */\nimport { Emitter, publish, reset, subscribe, Subscription } from './actions'\nimport { RESET, SUBSCRIBE } from './constants'\nimport { Comparator, defaultComparator, distinctUntilChanged, pipe } from './pipe'\nimport { stream } from './streams'\nimport { joinProc } from './utils'\n\n/**\n * Merges one or more emitters from the same type into a new Emitter which emits values from any of the source emitters.\n * ```ts\n * const foo = stream()\n * const bar = stream()\n *\n * subscribe(merge(foo, bar), (value) => console.log(value)) // 42, 43\n *\n * publish(foo, 42)\n * publish(bar, 43)\n * ```\n */\nexport function merge(...sources: Emitter[]): Emitter {\n return function(action: SUBSCRIBE | RESET, subscription?: Subscription) {\n switch (action) {\n case SUBSCRIBE:\n return joinProc(...sources.map(source => subscribe(source, subscription!)))\n case RESET:\n // do nothing, we are stateless\n return\n default:\n throw new Error(`unrecognized action ${action}`)\n }\n } as Emitter\n}\n\n/**\n * A convenience wrapper that emits only the distinct values from the passed Emitter. Wraps [[pipe]] and [[distinctUntilChanged]].\n *\n * ```ts\n * const foo = stream()\n *\n * // this line...\n * const a = duc(foo)\n *\n * // is equivalent to this\n * const b = pipe(distinctUntilChanged(foo))\n * ```\n *\n * @param source The source emitter.\n * @param comparator optional custom comparison function for the two values.\n *\n * @typeParam T the type of the value emitted by the source.\n *\n * @returns the resulting emitter.\n */\nexport function duc(source: Emitter, comparator: Comparator = defaultComparator): Emitter {\n return pipe(source, distinctUntilChanged(comparator))\n}\n\n/**\n * Creates an emitter with the latest values from all passed emitters as an array.\n *\n * `combineLatest` acts as a Depot. Using it on stateless streams persists the last emitted value of each [[Emitter]].\n * Provided that all emitters have emitted at least once, subscribing to the resulting emitter will immediately receive their combined latest values.\n *\n * ```ts\n * const foo = stream()\n * const bar = stream()\n *\n * subscribe(combineLatest(foo, bar), ([foo, bar]) => console.log({ foo, bar }))\n *\n * publish(foo, 42)\n * publish(bar, 43) // { foo: 42, bar: 43 }\n * publish(foo, 44) // { foo: 44, bar: 43 }\n * publish(bar, 45) // { foo: 44, bar: 45 }\n * ```\n */\nexport function combineLatest(...emitters: [Emitter, Emitter]): Emitter<[O1, O2]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9, O10]> // prettier-ignore\nexport function combineLatest( ...emitters: [Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter, Emitter]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11]> // prettier-ignore\nexport function combineLatest(...emitters: Emitter[]): Emitter {\n let innerSubject = stream()\n const values = new Array(emitters.length)\n let called = 0\n const allCalled = Math.pow(2, emitters.length) - 1\n\n emitters.forEach((source, index) => {\n const bit = Math.pow(2, index)\n subscribe(source, value => {\n values[index] = value\n called = called | bit\n if (called === allCalled) {\n publish(innerSubject, values)\n }\n })\n })\n\n return function(action: SUBSCRIBE | RESET, subscription?: Subscription) {\n switch (action) {\n case SUBSCRIBE:\n if (called === allCalled) {\n subscription!(values)\n }\n return subscribe(innerSubject, subscription!)\n case RESET:\n return reset(innerSubject)\n default:\n throw new Error(`unrecognized action ${action}`)\n }\n } as Emitter\n}\n","/**\n * ## Thinking in Systems\n * systems are a stateful **data-processing machines** which accept input through **input streams**,\n * init and maintain state in **depots** and, in certain conditions, emit values to subscriptions through **output streams**.\n * Systems can specify other systems as dependencies, and can act as singletons in the resulting dependency tree.\n *\n * ### Depots\n *\n * The first, and probably the most critical part to understand are **the depots**\n * mostly because they are somewhat implicit.\n * Unlike other state management paradigms, the depots are not kept in a single data structure.\n * Insted, depots are defined and maintained as stateful streams, stateful transfomers\n * like [[combineLatest]] or stateful operators like[ []withLatestFrom] or [[scan]].\n *\n * **Depots persist values over time**.\n * If it was not for them, the system had to re-receive its entire input state simultaneously in order to calculate the values for its output stream.\n *\n * Of course, strictly speaking, it is possible to implement a pure, stateless system as a form of a complex map/reduce. urx would not mind that ;).\n *\n * ### Input Streams\n *\n * The system receives updates from the rest of the world through values published in its input streams.\n * The streams used can be either stateless (acting as means to send **signals**) or stateful, where the initial stream state acts as the default value for that system parameter.\n *\n * The effects of the input streams are up to the system data-processing logic. It can change its depots' state, and/or emit values through its output streams.\n *\n * ### Data Processing\n *\n * The actual system behavior is exclusively implemented by **applying transformers and operators** to the input streams, producing the respective output streams.\n * In the final state the system streams are organized in a directed graph, where incoming data is routed through certain edges and nodes.\n * Simple systems like the one in [urx by example](https://urx.virtuoso.dev/docs/urx-by-example) can use a straightforward single-step transformation (in this case, `combineLatest` and `map`),\n * while complex ones can introduce multiple intermediate streams to model their logic.\n *\n * ### Output Streams\n *\n * The system publishes updates to its clients (other systems or an UI bound to it) by publishing data in its output streams.\n * State-reflecting output streams, like `sum` in the [urx by example](https://urx.virtuoso.dev/docs/urx-by-example) should use stateful streams as output streams.\n * Signal-like output should use regular, stateless streams. In general, stateless input streams tend to have a symmetrical stateless streams, and the opposite.\n *\n * @packageDocumentation\n */\nimport { Emitter } from './actions'\n\n/**\n * Systems are a dictionaries of streams. a [[SystemConstructor]] should return a System.\n */\nexport interface System {\n [key: string]: Emitter\n}\n\n/**\n * a SystemSpec is the result from a [[system]] call. To obtain the [[System]], pass the spec to [[init]].\n */\nexport interface SystemSpec> {\n id: string\n constructor: C\n dependencies: SS\n singleton: boolean\n}\n\n/** @internal **/\nexport type AnySystemSpec = SystemSpec\n\n/** @internal **/\nexport type SystemSpecs = AnySystemSpec[]\n\n/** @internal **/\nexport type SR> = R\n\n/** @internal **/\nexport type SpecResults = L extends 0\n ? []\n : L extends 1\n ? [SR]\n : L extends 2\n ? [SR, SR]\n : L extends 3\n ? [SR, SR, SR]\n : L extends 4\n ? [SR, SR, SR, SR]\n : L extends 5\n ? [SR, SR, SR, SR, SR]\n : L extends 6\n ? [SR, SR, SR, SR, SR, SR]\n : L extends 7\n ? [SR, SR, SR, SR, SR, SR, SR]\n : L extends 8\n ? [SR, SR, SR, SR, SR, SR, SR, SR]\n : L extends 9\n ? [SR, SR, SR, SR, SR, SR, SR, SR, SR]\n : L extends 10\n ? [SR, SR, SR, SR, SR, SR, SR, SR, SR, SR]\n : L extends 11\n ? [SR, SR, SR, SR, SR, SR, SR, SR, SR, SR, SR]\n : never\n\n/**\n * The system constructor is a function which initializes and connects streams and returns them as a [[System]].\n * If the [[system]] call specifies system dependencies, the constructor receives the dependencies as an array argument.\n */\nexport type SystemConstructor = (dependencies: SpecResults) => System\n\n/**\n * `system` defines a specification of a system - its constructor, dependencies and if it should act as a singleton in a system dependency tree.\n * When called, system returns a [[SystemSpec]], which is then initialized along with its dependencies by passing it to [[init]].\n *\n * ```ts\n * @import { subscribe, publish, system, init, tup, connect, map, pipe } from 'urx'\n *\n * // a simple system with two streams\n * const sys1 = system(() => {\n * const a = stream()\n * const b = stream()\n *\n * connect(pipe(a, map(value => value * 2)), b)\n * return { a, b }\n * })\n *\n * // a second system which depends on the streams from the first one\n * const sys2 = system(([ {a, b} ]) => {\n * const c = stream()\n * connect(pipe(b, map(value => value * 2)), c)\n * // re-export the `a` stream, keep `b` internal\n * return { a, c }\n * }, tup(sys1))\n *\n * // init will recursively initialize sys2 dependencies, in this case sys1\n * const { a, c } = init(sys2)\n * subscribe(c, c => console.log(`Value multiplied by 4`, c))\n * publish(a, 2)\n * ```\n *\n * #### Singletons in Dependency Tree\n *\n * By default, systems will be initialized only once if encountered multiple times in the dependency tree.\n * In the below dependency system tree, systems `b` and `c` will receive the same stream instances from system `a` when system `d` is initialized.\n * ```txt\n * a\n * / \\\n * b c\n * \\ /\n * d\n * ```\n * If `a` gets `{singleton: false}` as a last argument, `init` creates two separate instances - one for `b` and one for `c`.\n *\n * @param constructor the system constructor function. Initialize and connect the streams in its body.\n *\n * @param dependencies the system dependencies, which the constructor will receive as arguments.\n * Use the [[tup]] utility **For TypeScript type inference to work correctly**.\n * ```ts\n * const sys3 = system(() => { ... }, tup(sys2, sys1))\n * ```\n * @param __namedParameters Options\n * @param singleton determines if the system will act as a singleton in a system dependency tree. `true` by default.\n */\nexport function system, D extends SystemSpecs>(\n constructor: F,\n dependencies: D = ([] as unknown) as D,\n { singleton }: { singleton: boolean } = { singleton: true }\n): SystemSpec {\n return {\n id: id(),\n constructor,\n dependencies,\n singleton,\n }\n}\n\n/** @internal */\nconst id = () => (Symbol() as unknown) as string\n\n/**\n * Initializes a [[SystemSpec]] by recursively initializing its dependencies.\n *\n * ```ts\n * // a simple system with two streams\n * const sys1 = system(() => {\n * const a = stream()\n * const b = stream()\n *\n * connect(pipe(a, map(value => value * 2)), b)\n * return { a, b }\n * })\n *\n * const { a, b } = init(sys1)\n * subscribe(b, b => console.log(b))\n * publish(a, 2)\n * ```\n *\n * @returns the [[System]] constructed by the spec constructor.\n * @param systemSpec the system spec to initialize.\n */\nexport function init(systemSpec: SS): SR {\n const singletons = new Map()\n const _init = ({ id, constructor, dependencies, singleton }: SS) => {\n if (singleton && singletons.has(id)) {\n return singletons.get(id)! as SR\n }\n const system = constructor(dependencies.map((e: AnySystemSpec) => _init(e)))\n if (singleton) {\n singletons.set(id, system)\n }\n return system as any\n }\n return _init(systemSpec)\n}\n","/**\n * `@virtuoso.dev/react-urx` exports the [[systemToComponent]] function.\n * It wraps urx systems in to UI **logic provider components**,\n * mapping the system input and output streams to the component input / output points.\n *\n * ### Simple System wrapped as React Component\n *\n * ```tsx\n * const sys = system(() => {\n * const foo = statefulStream(42)\n * return { foo }\n * })\n *\n * const { Component: MyComponent, useEmitterValue } = systemToComponent(sys, {\n * required: { fooProp: 'foo' },\n * })\n *\n * const Child = () => {\n * const foo = useEmitterValue('foo')\n * return
{foo}
\n * }\n *\n * const App = () => {\n * return \n * }\n * ```\n *\n * @packageDocumentation\n */\nimport * as React from 'react'\nimport {\n ComponentType,\n createContext,\n createElement,\n forwardRef,\n ForwardRefExoticComponent,\n ReactNode,\n RefAttributes,\n useContext,\n useImperativeHandle,\n useState,\n useCallback,\n} from 'react'\nimport {\n AnySystemSpec,\n reset,\n curry1to0,\n curry2to1,\n Emitter,\n SR,\n eventHandler,\n getValue,\n publish,\n Publisher,\n init,\n StatefulStream,\n Stream,\n subscribe,\n always,\n tap,\n} from '@virtuoso.dev/urx'\n\n/** @internal */\ninterface Dict {\n [key: string]: T\n}\n\n/** @internal */\nfunction omit, K extends readonly string[]>(keys: K, obj: O): Omit {\n var result = {} as Dict\n var index = {} as Dict<1>\n var idx = 0\n var len = keys.length\n\n while (idx < len) {\n index[keys[idx]] = 1\n idx += 1\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop]\n }\n }\n\n return result as any\n}\n\nconst useIsomorphicLayoutEffect = typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\n/** @internal */\nexport type Observable = Emitter | Publisher\n\n/**\n * Describes the mapping between the system streams and the component properties.\n * Each property uses the keys as the names of the properties and the values as the corresponding stream names.\n * @typeParam SS the type of the system.\n */\nexport interface SystemPropsMap, D = { [key: string]: K }> {\n /**\n * Specifies the required component properties.\n */\n required?: D\n /**\n * Specifies the optional component properties.\n */\n optional?: D\n /**\n * Specifies the component methods, if any. Streams are converted to methods with a single argument.\n * When invoked, the method publishes the value of the argument to the specified stream.\n */\n methods?: D\n /**\n * Specifies the component \"event\" properties, if any.\n * Event properties accept callback functions which get executed when the stream emits a new value.\n */\n events?: D\n}\n\n/** @internal */\nexport type PropsFromPropMap> = {\n [K in Extract]: M['required'][K] extends string\n ? SR[M['required'][K]] extends Observable\n ? R\n : never\n : never\n} &\n {\n [K in Extract]?: M['optional'][K] extends string\n ? SR[M['optional'][K]] extends Observable\n ? R\n : never\n : never\n } &\n {\n [K in Extract]?: M['events'][K] extends string\n ? SR[M['events'][K]] extends Observable\n ? (value: R) => void\n : never\n : never\n }\n\n/** @internal */\nexport type MethodsFromPropMap> = {\n [K in Extract]: M['methods'][K] extends string\n ? SR[M['methods'][K]] extends Observable\n ? (value: R) => void\n : never\n : never\n}\n\n/**\n * Used to correctly specify type refs for system components\n *\n * ```tsx\n * const s = system(() => { return { a: statefulStream(0) } })\n * const { Component } = systemToComponent(s)\n *\n * const App = () => {\n * const ref = useRef>()\n * return \n * }\n * ```\n *\n * @typeParam T the type of the component\n */\nexport type RefHandle = T extends ForwardRefExoticComponent> ? Handle : never\n\n/**\n * Converts a system spec to React component by mapping the system streams to component properties, events and methods. Returns hooks for querying and modifying\n * the system streams from the component's child components.\n * @param systemSpec The return value from a [[system]] call.\n * @param map The streams to props / events / methods mapping Check [[SystemPropsMap]] for more details.\n * @param Root The optional React component to render. By default, the resulting component renders nothing, acting as a logical wrapper for its children.\n * @returns an object containing the following:\n * - `Component`: the React component.\n * - `useEmitterValue`: a hook that lets child components use values emitted from the specified output stream.\n * - `useEmitter`: a hook that calls the provided callback whenever the specified stream emits a value.\n * - `usePublisher`: a hook which lets child components publish values to the specified stream.\n *
\n */\nexport function systemToComponent, S extends SR, R>(\n systemSpec: SS,\n map: M,\n Root?: R\n) {\n const requiredPropNames = Object.keys(map.required || {})\n const optionalPropNames = Object.keys(map.optional || {})\n const methodNames = Object.keys(map.methods || {})\n const eventNames = Object.keys(map.events || {})\n const Context = createContext>(({} as unknown) as any)\n\n type RootCompProps = R extends ComponentType ? RP : { children?: ReactNode }\n\n type CompProps = PropsFromPropMap & RootCompProps\n\n type CompMethods = MethodsFromPropMap\n\n function applyPropsToSystem(system: ReturnType, props: any) {\n if (system['propsReady']) {\n publish(system['propsReady'], false)\n }\n\n for (const requiredPropName of requiredPropNames) {\n const stream = system[map.required![requiredPropName]]\n publish(stream, (props as any)[requiredPropName])\n }\n\n for (const optionalPropName of optionalPropNames) {\n if (optionalPropName in props) {\n const stream = system[map.optional![optionalPropName]]\n publish(stream, (props as any)[optionalPropName])\n }\n }\n\n if (system['propsReady']) {\n publish(system['propsReady'], true)\n }\n }\n\n function buildMethods(system: ReturnType) {\n return methodNames.reduce((acc, methodName) => {\n ;(acc as any)[methodName] = (value: any) => {\n const stream = system[map.methods![methodName]]\n publish(stream, value)\n }\n return acc\n }, {} as CompMethods)\n }\n\n function buildEventHandlers(system: ReturnType) {\n return eventNames.reduce((handlers, eventName) => {\n handlers[eventName] = eventHandler(system[map.events![eventName]])\n return handlers\n }, {} as { [key: string]: Emitter })\n }\n\n /**\n * A React component generated from an urx system\n */\n const Component = forwardRef((propsWithChildren, ref) => {\n const { children, ...props } = propsWithChildren as any\n\n const [system] = useState(() => {\n return tap(init(systemSpec), system => applyPropsToSystem(system, props))\n })\n\n const [handlers] = useState(curry1to0(buildEventHandlers, system))\n\n useIsomorphicLayoutEffect(() => {\n for (const eventName of eventNames) {\n if (eventName in props) {\n subscribe(handlers[eventName], props[eventName])\n }\n }\n return () => {\n Object.values(handlers).map(reset)\n }\n }, [props, handlers, system])\n\n useIsomorphicLayoutEffect(() => {\n applyPropsToSystem(system, props)\n })\n\n useImperativeHandle(ref, always(buildMethods(system)))\n\n return createElement(\n Context.Provider,\n { value: system },\n Root\n ? createElement(\n (Root as unknown) as ComponentType,\n omit([...requiredPropNames, ...optionalPropNames, ...eventNames], props),\n children\n )\n : children\n )\n })\n\n const usePublisher = (key: K) => {\n return useCallback(curry2to1(publish, React.useContext(Context)[key]), [key]) as (\n value: S[K] extends Stream ? R : never\n ) => void\n }\n\n /**\n * Returns the value emitted from the stream.\n */\n const useEmitterValue = ? R : never>(key: K) => {\n const context = useContext(Context)\n const source: StatefulStream = context[key]\n\n const [value, setValue] = useState(curry1to0(getValue, source))\n\n useIsomorphicLayoutEffect(\n () =>\n subscribe(source, (next: V) => {\n if (next !== value) {\n setValue(always(next))\n }\n }),\n [source, value]\n )\n\n return value\n }\n\n const useEmitter = ? R : never>(key: K, callback: (value: V) => void) => {\n const context = useContext(Context)\n const source: Stream = context[key]\n useIsomorphicLayoutEffect(() => subscribe(source, callback), [callback, source])\n }\n\n return {\n Component,\n usePublisher,\n useEmitterValue,\n useEmitter,\n }\n}\n","import { useEffect, useLayoutEffect } from 'react'\n\nconst useIsomorphicLayoutEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect\n\nexport default useIsomorphicLayoutEffect\n","import * as u from '@virtuoso.dev/urx'\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\ndeclare namespace globalThis {\n let VIRTUOSO_LOG_LEVEL: LogLevel | undefined\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\ndeclare namespace window {\n let VIRTUOSO_LOG_LEVEL: LogLevel | undefined\n}\n\nexport enum LogLevel {\n DEBUG,\n INFO,\n WARN,\n ERROR,\n}\nexport interface LogMessage {\n level: LogLevel\n message: any\n label: string\n}\n\nexport type Log = (label: string, message: any, level?: LogLevel) => void\n\nconst CONSOLE_METHOD_MAP = {\n [LogLevel.DEBUG]: 'debug',\n [LogLevel.INFO]: 'log',\n [LogLevel.WARN]: 'warn',\n [LogLevel.ERROR]: 'error',\n} as const\n\nconst getGlobalThis = () => (typeof globalThis === 'undefined' ? window : globalThis)\n\nexport const loggerSystem = u.system(\n () => {\n const logLevel = u.statefulStream(LogLevel.ERROR)\n const log = u.statefulStream((label: string, message: any, level: LogLevel = LogLevel.INFO) => {\n const currentLevel = getGlobalThis()['VIRTUOSO_LOG_LEVEL'] ?? u.getValue(logLevel)\n if (level >= currentLevel) {\n // eslint-disable-next-line no-console\n console[CONSOLE_METHOD_MAP[level]](\n '%creact-virtuoso: %c%s %o',\n 'color: #0253b3; font-weight: bold',\n 'color: initial',\n label,\n message\n )\n }\n })\n\n return {\n log,\n logLevel,\n }\n },\n [],\n { singleton: true }\n)\n","import { useRef } from 'react'\n\nexport type CallbackRefParam = HTMLElement | null\n\nexport function useSizeWithElRef(callback: (e: HTMLElement) => void, enabled = true) {\n const ref = useRef(null)\n\n let callbackRef = (_el: CallbackRefParam) => {\n void 0\n }\n\n if (typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n const element = entries[0].target as HTMLElement\n if (element.offsetParent !== null) {\n callback(element)\n }\n })\n\n callbackRef = (elRef: CallbackRefParam) => {\n if (elRef && enabled) {\n observer.observe(elRef)\n ref.current = elRef\n } else {\n if (ref.current) {\n observer.unobserve(ref.current)\n }\n ref.current = null\n }\n }\n }\n\n return { ref, callbackRef }\n}\n\nexport default function useSize(callback: (e: HTMLElement) => void, enabled = true) {\n return useSizeWithElRef(callback, enabled).callbackRef\n}\n","import { Log, LogLevel } from '../loggerSystem'\nimport { SizeFunction, SizeRange } from '../sizeSystem'\nimport useSize from './useSize'\n\nexport default function useChangedListContentsSizes(\n callback: (ranges: SizeRange[]) => void,\n itemSize: SizeFunction,\n enabled: boolean,\n scrollContainerStateCallback: (state: [number, number]) => void,\n log: Log,\n customScrollParent?: HTMLElement\n) {\n return useSize((el: HTMLElement) => {\n const ranges = getChangedChildSizes(el.children, itemSize, 'offsetHeight', log)\n let scrollableElement = el.parentElement!\n\n while (!scrollableElement.dataset['virtuosoScroller']) {\n scrollableElement = scrollableElement.parentElement!\n }\n\n const scrollTop = customScrollParent\n ? customScrollParent.scrollTop\n : // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (scrollableElement.firstElementChild! as HTMLDivElement).dataset['viewportType']! === 'window'\n ? window.pageYOffset || document.documentElement.scrollTop\n : scrollableElement.scrollTop\n\n customScrollParent\n ? scrollContainerStateCallback([Math.max(scrollTop, 0), customScrollParent.scrollHeight])\n : scrollContainerStateCallback([Math.max(scrollTop, 0), scrollableElement.scrollHeight])\n if (ranges !== null) {\n callback(ranges)\n }\n }, enabled)\n}\n\nfunction getChangedChildSizes(children: HTMLCollection, itemSize: SizeFunction, field: 'offsetHeight' | 'offsetWidth', log: Log) {\n const length = children.length\n\n if (length === 0) {\n return null\n }\n\n const results: SizeRange[] = []\n\n for (let i = 0; i < length; i++) {\n const child = children.item(i) as HTMLElement\n\n if (!child || child.dataset.index === undefined) {\n continue\n }\n\n const index = parseInt(child.dataset.index!)\n const knownSize = parseFloat(child.dataset.knownSize!)\n const size = itemSize(child, field)\n\n if (size === 0) {\n log('Zero-sized element, this should not happen', { child }, LogLevel.ERROR)\n }\n\n if (size === knownSize) {\n continue\n }\n\n const lastResult = results[results.length - 1]\n if (results.length === 0 || lastResult.size !== size || lastResult.endIndex !== index - 1) {\n results.push({ startIndex: index, endIndex: index, size })\n } else {\n results[results.length - 1].endIndex++\n }\n }\n\n return results\n}\n","export function correctItemSize(el: HTMLElement, dimension: 'height' | 'width') {\n return Math.round(el.getBoundingClientRect()[dimension])\n}\n","import { useRef, useCallback, useEffect } from 'react'\nimport * as u from '@virtuoso.dev/urx'\nimport { correctItemSize } from '../utils/correctItemSize'\n\nexport type ScrollerRef = Window | HTMLElement | null\n\nfunction approximatelyEqual(num1: number, num2: number) {\n return Math.abs(num1 - num2) < 1.01\n}\n\nexport default function useScrollTop(\n scrollContainerStateCallback: (state: [number, number]) => void,\n smoothScrollTargetReached: (yes: true) => void,\n scrollerElement: any,\n scrollerRefCallback: (ref: ScrollerRef) => void = u.noop,\n customScrollParent?: HTMLElement\n) {\n const scrollerRef = useRef(null)\n const scrollTopTarget = useRef(null)\n const timeoutRef = useRef(null)\n\n const handler = useCallback(\n (ev: Event) => {\n const el = ev.target as HTMLElement\n const scrollTop =\n (el as any) === window || (el as any) === document ? window.pageYOffset || document.documentElement.scrollTop : el.scrollTop\n const scrollHeight = (el as any) === window ? document.documentElement.scrollHeight : el.scrollHeight\n\n scrollContainerStateCallback([Math.max(scrollTop, 0), scrollHeight])\n\n if (scrollTopTarget.current !== null) {\n if (scrollTop === scrollTopTarget.current || scrollTop <= 0 || scrollTop === el.scrollHeight - correctItemSize(el, 'height')) {\n scrollTopTarget.current = null\n smoothScrollTargetReached(true)\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n timeoutRef.current = null\n }\n }\n }\n },\n [scrollContainerStateCallback, smoothScrollTargetReached]\n )\n\n useEffect(() => {\n const localRef = customScrollParent ? customScrollParent : scrollerRef.current!\n\n scrollerRefCallback(customScrollParent ? customScrollParent : scrollerRef.current)\n handler({ target: localRef } as unknown as Event)\n localRef.addEventListener('scroll', handler, { passive: true })\n\n return () => {\n scrollerRefCallback(null)\n localRef.removeEventListener('scroll', handler)\n }\n }, [scrollerRef, handler, scrollerElement, scrollerRefCallback, customScrollParent])\n\n function scrollToCallback(location: ScrollToOptions) {\n const scrollerElement = scrollerRef.current\n if (!scrollerElement || ('offsetHeight' in scrollerElement && scrollerElement.offsetHeight === 0)) {\n return\n }\n\n const isSmooth = location.behavior === 'smooth'\n\n let offsetHeight: number\n let scrollHeight: number\n let scrollTop: number\n\n if (scrollerElement === window) {\n // this is not a mistake\n scrollHeight = Math.max(correctItemSize(document.documentElement, 'height'), document.documentElement.scrollHeight)\n offsetHeight = window.innerHeight\n scrollTop = document.documentElement.scrollTop\n } else {\n scrollHeight = (scrollerElement as HTMLElement).scrollHeight\n offsetHeight = correctItemSize(scrollerElement as HTMLElement, 'height')\n scrollTop = (scrollerElement as HTMLElement).scrollTop\n }\n\n const maxScrollTop = scrollHeight - offsetHeight\n location.top = Math.ceil(Math.max(Math.min(maxScrollTop, location.top!), 0))\n\n // avoid system hanging because the DOM never called back\n // with the scrollTop\n // scroller is already at this location\n if (approximatelyEqual(offsetHeight, scrollHeight) || location.top === scrollTop) {\n scrollContainerStateCallback([scrollTop, scrollHeight])\n if (isSmooth) {\n smoothScrollTargetReached(true)\n }\n return\n }\n\n if (isSmooth) {\n scrollTopTarget.current = location.top\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n timeoutRef.current = setTimeout(() => {\n timeoutRef.current = null\n scrollTopTarget.current = null\n smoothScrollTargetReached(true)\n }, 1000)\n } else {\n scrollTopTarget.current = null\n }\n\n scrollerElement.scrollTo(location)\n }\n\n function scrollByCallback(location: ScrollToOptions) {\n if (scrollTopTarget.current === null) {\n scrollerRef.current!.scrollBy(location)\n }\n }\n\n return { scrollerRef, scrollByCallback, scrollToCallback }\n}\n","import * as u from '@virtuoso.dev/urx'\n\nexport const domIOSystem = u.system(\n () => {\n const scrollContainerState = u.stream<[number, number]>()\n const scrollTop = u.stream()\n const deviation = u.statefulStream(0)\n const smoothScrollTargetReached = u.stream()\n const statefulScrollTop = u.statefulStream(0)\n const viewportHeight = u.stream()\n const scrollHeight = u.stream()\n const headerHeight = u.statefulStream(0)\n const footerHeight = u.statefulStream(0)\n const scrollTo = u.stream()\n const scrollBy = u.stream()\n const scrollingInProgress = u.statefulStream(false)\n\n u.connect(\n u.pipe(\n scrollContainerState,\n u.map(([scrollTop]) => scrollTop)\n ),\n scrollTop\n )\n\n u.connect(\n u.pipe(\n scrollContainerState,\n u.map(([, scrollHeight]) => scrollHeight)\n ),\n scrollHeight\n )\n\n u.connect(scrollTop, statefulScrollTop)\n\n return {\n // input\n scrollContainerState,\n scrollTop,\n viewportHeight,\n headerHeight,\n footerHeight,\n scrollHeight,\n smoothScrollTargetReached,\n\n // signals\n scrollTo,\n scrollBy,\n\n // state\n statefulScrollTop,\n deviation,\n scrollingInProgress,\n }\n },\n [],\n { singleton: true }\n)\n","interface NilNode {\n lvl: 0\n}\n\nconst NIL_NODE: NilNode = { lvl: 0 }\n\ninterface NodeData {\n k: number\n v: T\n}\n\ninterface NonNilAANode {\n k: number\n v: T\n lvl: number\n l: NonNilAANode | NilNode\n r: NonNilAANode | NilNode\n}\n\nexport interface Range {\n start: number\n end: number\n value: T\n}\n\nexport type AANode = NilNode | NonNilAANode\n\nfunction newAANode(k: number, v: T, lvl: number, l: AANode = NIL_NODE, r: AANode = NIL_NODE): NonNilAANode {\n return { k, v, lvl, l, r }\n}\n\nexport function empty(node: AANode): node is NilNode {\n return node === NIL_NODE\n}\n\nexport function newTree(): AANode {\n return NIL_NODE\n}\n\nexport function remove(node: AANode, key: number): AANode {\n if (empty(node)) return NIL_NODE\n\n const { k, l, r } = node\n\n if (key === k) {\n if (empty(l)) {\n return r\n } else if (empty(r)) {\n return l\n } else {\n const [lastKey, lastValue] = last(l)\n return adjust(clone(node, { k: lastKey, v: lastValue, l: deleteLast(l) }))\n }\n } else if (key < k) {\n return adjust(clone(node, { l: remove(l, key) }))\n } else {\n return adjust(clone(node, { r: remove(r, key) }))\n }\n}\n\nexport function find(node: AANode, key: number): T | undefined {\n if (empty(node)) {\n return\n }\n\n if (key === node.k) {\n return node.v\n } else if (key < node.k) {\n return find(node.l, key)\n } else {\n return find(node.r, key)\n }\n}\n\nexport function findMaxKeyValue(node: AANode, value: number, field: 'k' | 'v' = 'k'): [number, T | undefined] {\n if (empty(node)) {\n return [-Infinity, undefined]\n }\n\n if (node[field] === value) {\n return [node.k, node.v]\n }\n\n if (node[field] < value) {\n const r = findMaxKeyValue(node.r, value, field)\n if (r[0] === -Infinity) {\n return [node.k, node.v]\n } else {\n return r\n }\n }\n\n return findMaxKeyValue(node.l, value, field)\n}\n\nexport function insert(node: AANode, k: number, v: T): NonNilAANode {\n if (empty(node)) {\n return newAANode(k, v, 1)\n }\n if (k === node.k) {\n return clone(node, { k, v })\n } else if (k < node.k) {\n return rebalance(clone(node, { l: insert(node.l, k, v) }))\n } else {\n return rebalance(clone(node, { r: insert(node.r, k, v) }))\n }\n}\n\nexport function walkWithin(node: AANode, start: number, end: number): NodeData[] {\n if (empty(node)) {\n return []\n }\n\n const { k, v, l, r } = node\n let result: NodeData[] = []\n if (k > start) {\n result = result.concat(walkWithin(l, start, end))\n }\n\n if (k >= start && k <= end) {\n result.push({ k, v })\n }\n\n if (k <= end) {\n result = result.concat(walkWithin(r, start, end))\n }\n\n return result\n}\n\nexport function walk(node: AANode): NodeData[] {\n if (empty(node)) {\n return []\n }\n\n return [...walk(node.l), { k: node.k, v: node.v }, ...walk(node.r)]\n}\n\nfunction last(node: NonNilAANode): [number, T] {\n return empty(node.r) ? [node.k, node.v] : last(node.r)\n}\n\nfunction deleteLast(node: NonNilAANode): AANode {\n return empty(node.r) ? node.l : adjust(clone(node, { r: deleteLast(node.r) }))\n}\n\nfunction clone(node: NonNilAANode, args: Partial>): NonNilAANode {\n return newAANode(\n args.k !== undefined ? args.k : node.k,\n args.v !== undefined ? args.v : node.v,\n args.lvl !== undefined ? args.lvl : node.lvl,\n args.l !== undefined ? args.l : node.l,\n args.r !== undefined ? args.r : node.r\n )\n}\n\nfunction isSingle(node: AANode) {\n return empty(node) || node.lvl > node.r.lvl\n}\n\nfunction rebalance(node: NonNilAANode): NonNilAANode {\n return split(skew(node))\n}\n\nfunction adjust(node: NonNilAANode): NonNilAANode {\n const { l, r, lvl } = node\n if (r.lvl >= lvl - 1 && l.lvl >= lvl - 1) {\n return node\n } else if (lvl > r.lvl + 1) {\n if (isSingle(l)) {\n return skew(clone(node, { lvl: lvl - 1 }))\n } else {\n if (!empty(l) && !empty(l.r)) {\n return clone(l.r, {\n l: clone(l, { r: l.r.l }),\n r: clone(node, {\n l: l.r.r,\n lvl: lvl - 1,\n }),\n lvl: lvl,\n })\n } else {\n throw new Error('Unexpected empty nodes')\n }\n }\n } else {\n if (isSingle(node)) {\n return split(clone(node, { lvl: lvl - 1 }))\n } else {\n if (!empty(r) && !empty(r.l)) {\n const rl = r.l\n const rlvl = isSingle(rl) ? r.lvl - 1 : r.lvl\n\n return clone(rl, {\n l: clone(node, {\n r: rl.l,\n lvl: lvl - 1,\n }),\n r: split(clone(r, { l: rl.r, lvl: rlvl })),\n lvl: rl.lvl + 1,\n })\n } else {\n throw new Error('Unexpected empty nodes')\n }\n }\n }\n}\n\nexport function keys(node: AANode): number[] {\n if (empty(node)) {\n return []\n }\n return [...keys(node.l), node.k, ...keys(node.r)]\n}\n\nexport function ranges(node: AANode): Range[] {\n return toRanges(walk(node))\n}\n\nexport function rangesWithin(node: AANode, startIndex: number, endIndex: number): Range[] {\n if (empty(node)) {\n return []\n }\n const adjustedStart = findMaxKeyValue(node, startIndex)[0]\n return toRanges(walkWithin(node, adjustedStart, endIndex))\n}\n\nexport function arrayToRanges(\n items: T[],\n parser: (item: T) => { index: number; value: V }\n): Array<{ start: number; end: number; value: V }> {\n const length = items.length\n if (length === 0) {\n return []\n }\n\n let { index: start, value } = parser(items[0])\n\n const result = []\n\n for (let i = 1; i < length; i++) {\n const { index: nextIndex, value: nextValue } = parser(items[i])\n result.push({ start, end: nextIndex - 1, value })\n\n start = nextIndex\n value = nextValue\n }\n\n result.push({ start, end: Infinity, value })\n return result\n}\n\nfunction toRanges(nodes: NodeData[]): Range[] {\n return arrayToRanges(nodes, ({ k: index, v: value }) => ({ index, value }))\n}\n\nfunction split(node: NonNilAANode): NonNilAANode {\n const { r, lvl } = node\n\n return !empty(r) && !empty(r.r) && r.lvl === lvl && r.r.lvl === lvl ? clone(r, { l: clone(node, { r: r.l }), lvl: lvl + 1 }) : node\n}\n\nfunction skew(node: NonNilAANode): NonNilAANode {\n const { l } = node\n\n return !empty(l) && l.lvl === node.lvl ? clone(l, { r: clone(node, { l: l.r }) }) : node\n}\n","export type Comparator = {\n (item: T, value: number): -1 | 0 | 1\n}\n\nexport function findIndexOfClosestSmallerOrEqual(items: T[], value: number, comparator: Comparator, start = 0): number {\n let end = items.length - 1\n\n while (start <= end) {\n const index = Math.floor((start + end) / 2)\n const item = items[index]\n const match = comparator(item, value)\n if (match === 0) {\n return index\n }\n\n if (match === -1) {\n if (end - start < 2) {\n return index - 1\n }\n end = index - 1\n } else {\n if (end === start) {\n return index\n }\n start = index + 1\n }\n }\n\n throw new Error(`Failed binary finding record in array - ${items.join(',')}, searched for ${value}`)\n}\n\nexport function findClosestSmallerOrEqual(items: T[], value: number, comparator: Comparator): T {\n return items[findIndexOfClosestSmallerOrEqual(items, value, comparator)]\n}\n\nexport function findRange(items: T[], startValue: number, endValue: number, comparator: Comparator): T[] {\n const startIndex = findIndexOfClosestSmallerOrEqual(items, startValue, comparator)\n const endIndex = findIndexOfClosestSmallerOrEqual(items, endValue, comparator, startIndex)\n return items.slice(startIndex, endIndex + 1)\n}\n","import * as u from '@virtuoso.dev/urx'\nimport { arrayToRanges, AANode, empty, findMaxKeyValue, insert, newTree, Range, rangesWithin, remove, walk } from './AATree'\nimport * as arrayBinarySearch from './utils/binaryArraySearch'\nimport { correctItemSize } from './utils/correctItemSize'\nimport { loggerSystem, Log, LogLevel } from './loggerSystem'\n\nexport interface SizeRange {\n startIndex: number\n endIndex: number\n size: number\n}\n\nexport type Data = readonly unknown[] | undefined\n\nfunction rangeIncludes(refRange: SizeRange) {\n const { size, startIndex, endIndex } = refRange\n return (range: Range) => {\n return range.start === startIndex && (range.end === endIndex || range.end === Infinity) && range.value === size\n }\n}\n\nexport function insertRanges(sizeTree: AANode, ranges: SizeRange[]) {\n let syncStart = empty(sizeTree) ? 0 : Infinity\n\n for (const range of ranges) {\n const { size, startIndex, endIndex } = range\n syncStart = Math.min(syncStart, startIndex)\n\n if (empty(sizeTree)) {\n sizeTree = insert(sizeTree, 0, size)\n continue\n }\n\n // extend the range in both directions, so that we can get adjacent neighbours.\n // if the previous / next ones have the same value as the one we are about to insert,\n // we 'merge' them.\n const overlappingRanges = rangesWithin(sizeTree, startIndex - 1, endIndex + 1)\n\n if (overlappingRanges.some(rangeIncludes(range))) {\n continue\n }\n\n let firstPassDone = false\n let shouldInsert = false\n for (const { start: rangeStart, end: rangeEnd, value: rangeValue } of overlappingRanges) {\n // previous range\n if (!firstPassDone) {\n shouldInsert = rangeValue !== size\n firstPassDone = true\n } else {\n // remove the range if it starts within the new range OR if\n // it has the same value as it, in order to perform a merge\n if (endIndex >= rangeStart || size === rangeValue) {\n sizeTree = remove(sizeTree, rangeStart)\n }\n }\n\n // next range\n if (rangeEnd > endIndex && endIndex >= rangeStart) {\n if (rangeValue !== size) {\n sizeTree = insert(sizeTree, endIndex + 1, rangeValue)\n }\n }\n }\n\n if (shouldInsert) {\n sizeTree = insert(sizeTree, startIndex, size)\n }\n }\n return [sizeTree, syncStart] as const\n}\n\nexport interface OffsetPoint {\n offset: number\n size: number\n index: number\n}\n\nexport interface SizeState {\n sizeTree: AANode\n offsetTree: Array\n groupOffsetTree: AANode\n lastIndex: number\n lastOffset: number\n lastSize: number\n groupIndices: number[]\n}\n\nexport function initialSizeState(): SizeState {\n return {\n offsetTree: [],\n sizeTree: newTree(),\n groupOffsetTree: newTree(),\n lastIndex: 0,\n lastOffset: 0,\n lastSize: 0,\n groupIndices: [],\n }\n}\n\nexport function indexComparator({ index: itemIndex }: OffsetPoint, index: number) {\n return index === itemIndex ? 0 : index < itemIndex ? -1 : 1\n}\n\nexport function offsetComparator({ offset: itemOffset }: OffsetPoint, offset: number) {\n return offset === itemOffset ? 0 : offset < itemOffset ? -1 : 1\n}\n\nfunction offsetPointParser(point: OffsetPoint) {\n return { index: point.index, value: point }\n}\n\nexport function rangesWithinOffsets(\n tree: Array,\n startOffset: number,\n endOffset: number,\n minStartIndex = 0\n): Array<{\n start: number\n end: number\n value: {\n size: number\n offset: number\n index: number\n }\n}> {\n if (minStartIndex > 0) {\n startOffset = Math.max(startOffset, arrayBinarySearch.findClosestSmallerOrEqual(tree, minStartIndex, indexComparator).offset)\n }\n\n return arrayToRanges(arrayBinarySearch.findRange(tree, startOffset, endOffset, offsetComparator), offsetPointParser)\n}\n\nfunction createOffsetTree(prevOffsetTree: OffsetPoint[], syncStart: number, sizeTree: AANode) {\n let offsetTree = prevOffsetTree\n let prevIndex = 0\n let prevSize = 0\n\n let prevOffset = 0\n let startIndex = 0\n\n if (syncStart !== 0) {\n startIndex = arrayBinarySearch.findIndexOfClosestSmallerOrEqual(offsetTree, syncStart - 1, indexComparator)\n const offsetInfo = offsetTree[startIndex]\n prevOffset = offsetInfo.offset\n const kv = findMaxKeyValue(sizeTree, syncStart - 1)\n prevIndex = kv[0]\n prevSize = kv[1]!\n\n if (offsetTree.length && offsetTree[startIndex].size === findMaxKeyValue(sizeTree, syncStart)[1]) {\n startIndex -= 1\n }\n\n offsetTree = offsetTree.slice(0, startIndex + 1)\n } else {\n offsetTree = []\n }\n\n for (const { start: startIndex, value } of rangesWithin(sizeTree, syncStart, Infinity)) {\n const aOffset = (startIndex - prevIndex) * prevSize + prevOffset\n offsetTree.push({\n offset: aOffset,\n size: value,\n index: startIndex,\n })\n prevIndex = startIndex\n prevOffset = aOffset\n prevSize = value\n }\n\n return {\n offsetTree,\n lastIndex: prevIndex,\n lastOffset: prevOffset,\n lastSize: prevSize,\n }\n}\n\nexport function sizeStateReducer(state: SizeState, [ranges, groupIndices, log]: [SizeRange[], number[], Log]) {\n if (ranges.length > 0) {\n log('received item sizes', ranges, LogLevel.DEBUG)\n }\n const sizeTree = state.sizeTree\n let newSizeTree: AANode = sizeTree\n let syncStart = 0\n\n // We receive probe item results from a group probe,\n // which should always pass an item and a group\n // the results contain two ranges, which we consider to mean that groups and items have different size\n if (groupIndices.length > 0 && empty(sizeTree) && ranges.length === 2) {\n const groupSize = ranges[0].size\n const itemSize = ranges[1].size\n newSizeTree = groupIndices.reduce((tree, groupIndex) => {\n return insert(insert(tree, groupIndex, groupSize), groupIndex + 1, itemSize)\n }, newSizeTree)\n } else {\n ;[newSizeTree, syncStart] = insertRanges(newSizeTree, ranges)\n }\n\n if (newSizeTree === sizeTree) {\n return state\n }\n\n const { offsetTree: newOffsetTree, lastIndex, lastSize, lastOffset } = createOffsetTree(state.offsetTree, syncStart, newSizeTree)\n\n return {\n sizeTree: newSizeTree,\n offsetTree: newOffsetTree,\n lastIndex,\n lastOffset,\n lastSize,\n groupOffsetTree: groupIndices.reduce((tree, index) => {\n return insert(tree, index, offsetOf(index, newOffsetTree))\n }, newTree()),\n groupIndices,\n }\n}\n\nexport function offsetOf(index: number, tree: Array) {\n if (tree.length === 0) {\n return 0\n }\n\n const { offset, index: startIndex, size } = arrayBinarySearch.findClosestSmallerOrEqual(tree, index, indexComparator)\n return size * (index - startIndex) + offset\n}\n\nexport function originalIndexFromItemIndex(itemIndex: number, sizes: SizeState) {\n if (!hasGroups(sizes)) {\n return itemIndex\n }\n\n let groupOffset = 0\n while (sizes.groupIndices[groupOffset] <= itemIndex + groupOffset) {\n groupOffset++\n }\n // we find the real item index, offsetting it by the number of group items before it\n return itemIndex + groupOffset\n}\n\nexport function hasGroups(sizes: SizeState) {\n return !empty(sizes.groupOffsetTree)\n}\n\ntype OptionalNumber = number | undefined\n\nconst SIZE_MAP = {\n offsetHeight: 'height',\n offsetWidth: 'width',\n} as const\n\n/** Calculates the height of `el`, which will be the `Item` element in the DOM. */\nexport type SizeFunction = (el: HTMLElement, field: 'offsetHeight' | 'offsetWidth') => number\n\nexport const sizeSystem = u.system(\n ([{ log }]) => {\n const sizeRanges = u.stream()\n const totalCount = u.stream()\n const statefulTotalCount = u.statefulStreamFromEmitter(totalCount, 0)\n const unshiftWith = u.stream()\n const shiftWith = u.stream()\n const firstItemIndex = u.statefulStream(0)\n const groupIndices = u.statefulStream([] as number[])\n const fixedItemSize = u.statefulStream(undefined)\n const defaultItemSize = u.statefulStream(undefined)\n const itemSize = u.statefulStream((el, field) => correctItemSize(el, SIZE_MAP[field]))\n const data = u.statefulStream(undefined)\n const initial = initialSizeState()\n\n const sizes = u.statefulStreamFromEmitter(\n u.pipe(sizeRanges, u.withLatestFrom(groupIndices, log), u.scan(sizeStateReducer, initial), u.distinctUntilChanged()),\n initial\n )\n\n u.connect(\n u.pipe(\n groupIndices,\n u.filter((indexes) => indexes.length > 0),\n u.withLatestFrom(sizes),\n u.map(([groupIndices, sizes]) => {\n const groupOffsetTree = groupIndices.reduce((tree, index, idx) => {\n return insert(tree, index, offsetOf(index, sizes.offsetTree) || idx)\n }, newTree())\n\n return {\n ...sizes,\n groupIndices,\n groupOffsetTree,\n }\n })\n ),\n sizes\n )\n\n // decreasing the total count should remove any existing entries\n // beyond the last index - do this by publishing the default size as a range over them.\n u.connect(\n u.pipe(\n totalCount,\n u.withLatestFrom(sizes),\n u.filter(([totalCount, { lastIndex }]) => {\n return totalCount < lastIndex\n }),\n u.map(([totalCount, { lastIndex, lastSize }]) => {\n return [\n {\n startIndex: totalCount,\n endIndex: lastIndex,\n size: lastSize,\n },\n ] as SizeRange[]\n })\n ),\n sizeRanges\n )\n\n u.connect(fixedItemSize, defaultItemSize)\n\n const trackItemSizes = u.statefulStreamFromEmitter(\n u.pipe(\n fixedItemSize,\n u.map((size) => size === undefined)\n ),\n true\n )\n\n u.connect(\n u.pipe(\n defaultItemSize,\n u.filter((value) => {\n return value !== undefined && empty(u.getValue(sizes).sizeTree)\n }),\n u.map((size) => [{ startIndex: 0, endIndex: 0, size }] as SizeRange[])\n ),\n sizeRanges\n )\n\n const listRefresh = u.streamFromEmitter(\n u.pipe(\n sizeRanges,\n u.withLatestFrom(sizes),\n u.scan(\n ({ sizes: oldSizes }, [_, newSizes]) => {\n return {\n changed: newSizes !== oldSizes,\n sizes: newSizes,\n }\n },\n { changed: false, sizes: initial }\n ),\n u.map((value) => value.changed)\n )\n )\n\n u.subscribe(\n u.pipe(\n firstItemIndex,\n u.scan(\n (prev, next) => {\n return { diff: prev.prev - next, prev: next }\n },\n { diff: 0, prev: 0 }\n ),\n u.map((val) => val.diff)\n ),\n (offset) => {\n if (offset > 0) {\n u.publish(unshiftWith, offset)\n } else if (offset < 0) {\n u.publish(shiftWith, offset)\n }\n }\n )\n\n u.subscribe(u.pipe(firstItemIndex, u.withLatestFrom(log)), ([index, log]) => {\n if (index < 0) {\n log(\n \"`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value\",\n { firstItemIndex },\n LogLevel.ERROR\n )\n }\n })\n\n // Capture the current list top item before the sizes get refreshed\n const beforeUnshiftWith = u.streamFromEmitter(unshiftWith)\n\n u.connect(\n u.pipe(\n unshiftWith,\n u.withLatestFrom(sizes),\n u.map(([unshiftWith, sizes]) => {\n if (sizes.groupIndices.length > 0) {\n throw new Error('Virtuoso: prepending items does not work with groups')\n }\n\n return walk(sizes.sizeTree).reduce(\n (acc, { k: index, v: size }) => {\n return {\n ranges: [...acc.ranges, { startIndex: acc.prevIndex, endIndex: index + unshiftWith - 1, size: acc.prevSize }],\n prevIndex: index + unshiftWith,\n prevSize: size,\n }\n },\n {\n ranges: [] as SizeRange[],\n prevIndex: 0,\n prevSize: sizes.lastSize,\n }\n ).ranges\n })\n ),\n sizeRanges\n )\n\n const shiftWithOffset = u.streamFromEmitter(\n u.pipe(\n shiftWith,\n u.withLatestFrom(sizes),\n u.map(([shiftWith, { offsetTree }]) => {\n const newFirstItemIndex = -shiftWith\n return offsetOf(newFirstItemIndex, offsetTree)\n })\n )\n )\n\n u.connect(\n u.pipe(\n shiftWith,\n u.withLatestFrom(sizes),\n u.map(([shiftWith, sizes]) => {\n if (sizes.groupIndices.length > 0) {\n throw new Error('Virtuoso: shifting items does not work with groups')\n }\n\n const newSizeTree = walk(sizes.sizeTree).reduce((acc, { k, v }) => {\n return insert(acc, Math.max(0, k + shiftWith), v)\n }, newTree())\n\n return {\n ...sizes,\n sizeTree: newSizeTree,\n ...createOffsetTree(sizes.offsetTree, 0, newSizeTree),\n }\n })\n ),\n sizes\n )\n\n return {\n // input\n data,\n totalCount,\n sizeRanges,\n groupIndices,\n defaultItemSize,\n fixedItemSize,\n unshiftWith,\n shiftWith,\n shiftWithOffset,\n beforeUnshiftWith,\n firstItemIndex,\n\n // output\n sizes,\n listRefresh,\n statefulTotalCount,\n trackItemSizes,\n itemSize,\n }\n },\n u.tup(loggerSystem),\n { singleton: true }\n)\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport * as u from '@virtuoso.dev/urx'\nimport { findMaxKeyValue } from './AATree'\nimport { domIOSystem } from './domIOSystem'\nimport { offsetOf, originalIndexFromItemIndex, sizeSystem } from './sizeSystem'\nimport { IndexLocationWithAlign } from './interfaces'\nimport { loggerSystem, LogLevel } from './loggerSystem'\n\nexport type IndexLocation = number | IndexLocationWithAlign\n\nconst SUPPORTS_SCROLL_TO_OPTIONS = typeof document !== 'undefined' && 'scrollBehavior' in document.documentElement.style\n\nexport function normalizeIndexLocation(location: IndexLocation) {\n const result: IndexLocationWithAlign = typeof location === 'number' ? { index: location } : location\n\n if (!result.align) {\n result.align = 'start'\n }\n if (!result.behavior || !SUPPORTS_SCROLL_TO_OPTIONS) {\n result.behavior = 'auto'\n }\n if (!result.offset) {\n result.offset = 0\n }\n return result as Required\n}\n\nexport const scrollToIndexSystem = u.system(\n ([\n { sizes, totalCount, listRefresh },\n { scrollingInProgress, viewportHeight, scrollTo, smoothScrollTargetReached, headerHeight, footerHeight },\n { log },\n ]) => {\n const scrollToIndex = u.stream()\n const topListHeight = u.statefulStream(0)\n\n let unsubscribeNextListRefresh: any = null\n let cleartTimeoutRef: any = null\n let unsubscribeListRefresh: any = null\n\n function cleanup() {\n if (unsubscribeNextListRefresh) {\n unsubscribeNextListRefresh()\n unsubscribeNextListRefresh = null\n }\n\n if (unsubscribeListRefresh) {\n unsubscribeListRefresh()\n unsubscribeListRefresh = null\n }\n\n if (cleartTimeoutRef) {\n clearTimeout(cleartTimeoutRef)\n cleartTimeoutRef = null\n }\n u.publish(scrollingInProgress, false)\n }\n\n u.connect(\n u.pipe(\n scrollToIndex,\n u.withLatestFrom(sizes, viewportHeight, totalCount, topListHeight, headerHeight, footerHeight, log),\n u.map(([location, sizes, viewportHeight, totalCount, topListHeight, headerHeight, footerHeight, log]) => {\n const normalLocation = normalizeIndexLocation(location)\n const { align, behavior, offset } = normalLocation\n const lastIndex = totalCount - 1\n let index = normalLocation.index\n if (index === 'LAST') {\n index = lastIndex\n }\n\n index = originalIndexFromItemIndex(index, sizes)\n\n index = Math.max(0, index, Math.min(lastIndex, index))\n\n let top = offsetOf(index, sizes.offsetTree) + headerHeight\n if (align === 'end') {\n top = top - viewportHeight + findMaxKeyValue(sizes.sizeTree, index)[1]!\n if (index === lastIndex) {\n top += footerHeight\n }\n } else if (align === 'center') {\n top = top - viewportHeight / 2 + findMaxKeyValue(sizes.sizeTree, index)[1]! / 2\n } else {\n top -= topListHeight\n }\n\n if (offset) {\n top += offset\n }\n\n const retry = (listChanged: boolean) => {\n cleanup()\n if (listChanged) {\n log('retrying to scroll to', { location }, LogLevel.DEBUG)\n u.publish(scrollToIndex, location)\n } else {\n log('list did not change, scroll successful', {}, LogLevel.DEBUG)\n }\n }\n\n cleanup()\n\n if (behavior === 'smooth') {\n let listChanged = false\n unsubscribeListRefresh = u.subscribe(listRefresh, (changed) => {\n listChanged = listChanged || changed\n })\n\n unsubscribeNextListRefresh = u.handleNext(smoothScrollTargetReached, () => {\n retry(listChanged)\n })\n } else {\n unsubscribeNextListRefresh = u.handleNext(u.pipe(listRefresh, watchChangesFor(50)), retry)\n }\n\n // if the scroll jump is too small, the list won't get rerendered.\n // clean this listener\n cleartTimeoutRef = setTimeout(() => {\n cleanup()\n }, 1200)\n\n u.publish(scrollingInProgress, true)\n log('scrolling from index to', { index, top, behavior }, LogLevel.DEBUG)\n return { top, behavior }\n })\n ),\n scrollTo\n )\n\n return {\n scrollToIndex,\n topListHeight,\n }\n },\n u.tup(sizeSystem, domIOSystem, loggerSystem),\n { singleton: true }\n)\n\nfunction watchChangesFor(limit: number): u.Operator {\n return (done) => {\n const timeoutRef = setTimeout(() => {\n done(false)\n }, limit)\n return (value) => {\n if (value) {\n done(true)\n clearTimeout(timeoutRef)\n }\n }\n }\n}\n","import * as u from '@virtuoso.dev/urx'\nimport { domIOSystem } from './domIOSystem'\n\nexport const UP = 'up' as const\nexport const DOWN = 'down' as const\nexport const NONE = 'none' as const\nexport type ScrollDirection = typeof UP | typeof DOWN | typeof NONE\n\nexport interface ListBottomInfo {\n bottom: number\n offsetBottom: number\n}\n\nexport interface AtBottomParams {\n offsetBottom: number\n scrollTop: number\n viewportHeight: number\n scrollHeight: number\n}\n\nexport type NotAtBottomReason =\n | 'SIZE_INCREASED'\n | 'NOT_SHOWING_LAST_ITEM'\n | 'VIEWPORT_HEIGHT_DECREASING'\n | 'SCROLLING_UPWARDS'\n | 'NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM'\n\nexport type AtBottomReason = 'SIZE_DECREASED' | 'SCROLLED_DOWN'\n\nexport type AtBottomState =\n | {\n atBottom: false\n notAtBottomBecause: NotAtBottomReason\n state: AtBottomParams\n }\n | {\n atBottom: true\n state: AtBottomParams\n atBottomBecause: AtBottomReason\n scrollTopDelta: number\n }\n\nconst INITIAL_BOTTOM_STATE = {\n atBottom: false,\n notAtBottomBecause: 'NOT_SHOWING_LAST_ITEM',\n state: {\n offsetBottom: 0,\n scrollTop: 0,\n viewportHeight: 0,\n scrollHeight: 0,\n },\n} as AtBottomState\n\nexport const stateFlagsSystem = u.system(([{ scrollContainerState, scrollTop, viewportHeight, headerHeight, footerHeight, scrollBy }]) => {\n const isAtBottom = u.statefulStream(false)\n const isAtTop = u.statefulStream(true)\n const atBottomStateChange = u.stream()\n const atTopStateChange = u.stream()\n const atBottomThreshold = u.statefulStream(4)\n\n // skip 1 to avoid an initial on/off flick\n const isScrolling = u.streamFromEmitter(\n u.pipe(\n u.merge(u.pipe(u.duc(scrollTop), u.skip(1), u.mapTo(true)), u.pipe(u.duc(scrollTop), u.skip(1), u.mapTo(false), u.debounceTime(100))),\n u.distinctUntilChanged()\n )\n )\n\n const isScrollingBy = u.statefulStreamFromEmitter(\n u.pipe(u.merge(u.pipe(scrollBy, u.mapTo(true)), u.pipe(scrollBy, u.mapTo(false), u.debounceTime(200))), u.distinctUntilChanged()),\n false\n )\n\n // u.subscribe(isScrollingBy, (isScrollingBy) => console.log({ isScrollingBy }))\n\n u.connect(\n u.pipe(\n u.duc(scrollTop),\n u.map((top) => top === 0),\n u.distinctUntilChanged()\n ),\n isAtTop\n )\n\n u.connect(isAtTop, atTopStateChange)\n\n const atBottomState = u.streamFromEmitter(\n u.pipe(\n u.combineLatest(scrollContainerState, u.duc(viewportHeight), u.duc(headerHeight), u.duc(footerHeight), u.duc(atBottomThreshold)),\n u.scan((current, [[scrollTop, scrollHeight], viewportHeight, _headerHeight, _footerHeight, atBottomThreshold]) => {\n const isAtBottom = scrollTop + viewportHeight - scrollHeight > -atBottomThreshold\n const state = {\n viewportHeight,\n scrollTop,\n scrollHeight,\n }\n\n if (isAtBottom) {\n let atBottomBecause: 'SIZE_DECREASED' | 'SCROLLED_DOWN'\n let scrollTopDelta: number\n if (scrollTop > current.state.scrollTop) {\n atBottomBecause = 'SCROLLED_DOWN'\n scrollTopDelta = current.state.scrollTop - scrollTop\n } else {\n atBottomBecause = 'SIZE_DECREASED'\n scrollTopDelta = current.state.scrollTop - scrollTop || (current as { scrollTopDelta: number }).scrollTopDelta\n }\n return {\n atBottom: true,\n state,\n atBottomBecause,\n scrollTopDelta,\n } as AtBottomState\n }\n\n let notAtBottomBecause: NotAtBottomReason\n\n if (state.scrollHeight > current.state.scrollHeight) {\n notAtBottomBecause = 'SIZE_INCREASED'\n } else if (viewportHeight < current.state.viewportHeight) {\n notAtBottomBecause = 'VIEWPORT_HEIGHT_DECREASING'\n } else if (scrollTop < current.state.scrollTop) {\n notAtBottomBecause = 'SCROLLING_UPWARDS'\n } else {\n notAtBottomBecause = 'NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM'\n }\n\n return {\n atBottom: false,\n notAtBottomBecause,\n state,\n } as AtBottomState\n }, INITIAL_BOTTOM_STATE),\n u.distinctUntilChanged((prev, next) => {\n return prev && prev.atBottom === next.atBottom\n })\n )\n )\n\n const lastJumpDueToItemResize = u.statefulStreamFromEmitter(\n u.pipe(\n scrollContainerState,\n u.scan(\n (current, [scrollTop, scrollHeight]) => {\n if (current.scrollHeight !== scrollHeight) {\n if (current.scrollTop !== scrollTop) {\n return {\n scrollHeight,\n scrollTop,\n jump: current.scrollTop - scrollTop,\n changed: true,\n }\n } else {\n return {\n scrollHeight,\n scrollTop,\n jump: 0,\n changed: true,\n }\n }\n } else {\n return {\n scrollTop,\n scrollHeight,\n jump: 0,\n changed: false,\n }\n }\n },\n { scrollHeight: 0, jump: 0, scrollTop: 0, changed: false }\n ),\n u.filter((value) => value.changed),\n u.map((value) => value.jump)\n ),\n 0\n )\n\n u.connect(\n u.pipe(\n atBottomState,\n u.map((state) => state.atBottom)\n ),\n isAtBottom\n )\n\n u.connect(u.pipe(isAtBottom, u.throttleTime(50)), atBottomStateChange)\n\n const scrollDirection = u.statefulStream(DOWN)\n\n u.connect(\n u.pipe(\n scrollContainerState,\n u.map(([scrollTop]) => scrollTop),\n u.distinctUntilChanged(),\n u.scan(\n (acc, scrollTop) => {\n // if things change while compensating for items, ignore,\n // but store the new scrollTop\n if (u.getValue(isScrollingBy)) {\n return { direction: acc.direction, prevScrollTop: scrollTop }\n }\n\n return { direction: scrollTop < acc.prevScrollTop ? UP : DOWN, prevScrollTop: scrollTop }\n },\n { direction: DOWN, prevScrollTop: 0 } as { direction: ScrollDirection; prevScrollTop: number }\n ),\n u.map((value) => value.direction)\n ),\n scrollDirection\n )\n\n u.connect(u.pipe(scrollContainerState, u.throttleTime(50), u.mapTo(NONE)), scrollDirection)\n\n const scrollVelocity = u.statefulStream(0)\n\n u.connect(\n u.pipe(\n isScrolling,\n u.filter((value) => !value),\n u.mapTo(0)\n ),\n scrollVelocity\n )\n\n u.connect(\n u.pipe(\n scrollTop,\n u.throttleTime(100),\n u.withLatestFrom(isScrolling),\n u.filter(([_, isScrolling]) => !!isScrolling),\n u.scan(([_, prev], [next]) => [prev, next], [0, 0]),\n u.map(([prev, next]) => next - prev)\n ),\n scrollVelocity\n )\n\n return {\n isScrolling,\n isAtTop,\n isAtBottom,\n atBottomState,\n atTopStateChange,\n atBottomStateChange,\n scrollDirection,\n atBottomThreshold,\n scrollVelocity,\n lastJumpDueToItemResize,\n }\n}, u.tup(domIOSystem))\n","import * as u from '@virtuoso.dev/urx'\nimport { getValue, tup } from '@virtuoso.dev/urx'\nimport { loggerSystem, LogLevel } from './loggerSystem'\n\nexport const propsReadySystem = u.system(\n ([{ log }]) => {\n const propsReady = u.statefulStream(false)\n\n const didMount = u.streamFromEmitter(\n u.pipe(\n propsReady,\n u.filter((ready) => ready),\n u.distinctUntilChanged()\n )\n )\n u.subscribe(propsReady, (value) => {\n value && getValue(log)('props updated', {}, LogLevel.DEBUG)\n })\n\n return { propsReady, didMount }\n },\n tup(loggerSystem),\n { singleton: true }\n)\n","import * as u from '@virtuoso.dev/urx'\nimport { empty } from './AATree'\nimport { sizeSystem } from './sizeSystem'\nimport { domIOSystem } from './domIOSystem'\nimport { IndexLocation, scrollToIndexSystem } from './scrollToIndexSystem'\nimport { propsReadySystem } from './propsReadySystem'\n\nexport function getInitialTopMostItemIndexNumber(location: IndexLocation, totalCount: number): number {\n const lastIndex = totalCount - 1\n const index = typeof location === 'number' ? location : location.index === 'LAST' ? lastIndex : location.index\n return index\n}\n\nexport const initialTopMostItemIndexSystem = u.system(\n ([{ sizes, listRefresh, defaultItemSize }, { scrollTop }, { scrollToIndex }, { didMount }]) => {\n const scrolledToInitialItem = u.statefulStream(true)\n const initialTopMostItemIndex = u.statefulStream(0)\n\n u.connect(\n u.pipe(\n didMount,\n u.withLatestFrom(initialTopMostItemIndex),\n u.filter(([_, location]) => !!location),\n u.mapTo(false)\n ),\n scrolledToInitialItem\n )\n\n u.subscribe(\n u.pipe(\n u.combineLatest(listRefresh, didMount),\n u.withLatestFrom(scrolledToInitialItem, sizes, defaultItemSize),\n u.filter(([[, didMount], scrolledToInitialItem, { sizeTree }, defaultItemSize]) => {\n return didMount && (!empty(sizeTree) || defaultItemSize !== undefined) && !scrolledToInitialItem\n }),\n u.withLatestFrom(initialTopMostItemIndex)\n ),\n ([, initialTopMostItemIndex]) => {\n setTimeout(() => {\n u.handleNext(scrollTop, () => {\n u.publish(scrolledToInitialItem, true)\n })\n u.publish(scrollToIndex, initialTopMostItemIndex)\n })\n }\n )\n\n return {\n scrolledToInitialItem,\n initialTopMostItemIndex,\n }\n },\n u.tup(sizeSystem, domIOSystem, scrollToIndexSystem, propsReadySystem),\n { singleton: true }\n)\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport * as u from '@virtuoso.dev/urx'\nimport { scrollToIndexSystem } from './scrollToIndexSystem'\nimport { sizeSystem } from './sizeSystem'\nimport { stateFlagsSystem } from './stateFlagsSystem'\nimport { initialTopMostItemIndexSystem } from './initialTopMostItemIndexSystem'\nimport { FollowOutput, FollowOutputScalarType } from './interfaces'\nimport { propsReadySystem } from './propsReadySystem'\nimport { loggerSystem, LogLevel } from './loggerSystem'\nimport { domIOSystem } from './domIOSystem'\n\nfunction normalizeFollowOutput(follow: FollowOutputScalarType): FollowOutputScalarType {\n if (!follow) {\n return false\n }\n return follow === 'smooth' ? 'smooth' : 'auto'\n}\n\nconst behaviorFromFollowOutput = (follow: FollowOutput, isAtBottom: boolean) => {\n if (typeof follow === 'function') {\n return normalizeFollowOutput(follow(isAtBottom))\n }\n return isAtBottom && normalizeFollowOutput(follow)\n}\n\nexport const followOutputSystem = u.system(\n ([\n { totalCount, listRefresh },\n { isAtBottom, atBottomState },\n { scrollToIndex },\n { scrolledToInitialItem },\n { propsReady, didMount },\n { log },\n { scrollingInProgress },\n ]) => {\n const followOutput = u.statefulStream(false)\n let pendingScrollHandle: any = null\n\n function scrollToBottom(followOutputBehavior: FollowOutputScalarType) {\n u.publish(scrollToIndex, {\n index: 'LAST',\n align: 'end',\n behavior: followOutputBehavior,\n })\n }\n\n u.subscribe(\n u.pipe(\n u.combineLatest(u.pipe(u.duc(totalCount), u.skip(1)), didMount),\n u.withLatestFrom(u.duc(followOutput), isAtBottom, scrolledToInitialItem, scrollingInProgress),\n u.map(([[totalCount, didMount], followOutput, isAtBottom, scrolledToInitialItem, scrollingInProgress]) => {\n let shouldFollow = didMount && scrolledToInitialItem\n let followOutputBehavior: FollowOutputScalarType = 'auto'\n\n if (shouldFollow) {\n // if scrolling to index is in progress,\n // assume that a previous followOutput response is going\n followOutputBehavior = behaviorFromFollowOutput(followOutput, isAtBottom || scrollingInProgress)\n shouldFollow = shouldFollow && !!followOutputBehavior\n }\n\n return { totalCount, shouldFollow, followOutputBehavior }\n }),\n u.filter(({ shouldFollow }) => shouldFollow)\n ),\n ({ totalCount, followOutputBehavior }) => {\n if (pendingScrollHandle) {\n pendingScrollHandle()\n pendingScrollHandle = null\n }\n\n pendingScrollHandle = u.handleNext(listRefresh, () => {\n u.getValue(log)('following output to ', { totalCount }, LogLevel.DEBUG)\n scrollToBottom(followOutputBehavior)\n pendingScrollHandle = null\n })\n }\n )\n\n u.subscribe(\n u.pipe(\n u.combineLatest(u.duc(followOutput), totalCount, propsReady),\n u.filter(([follow, , ready]) => follow && ready),\n u.scan(\n ({ value }, [, next]) => {\n return { refreshed: value === next, value: next }\n },\n { refreshed: false, value: 0 }\n ),\n u.filter(({ refreshed }) => refreshed),\n u.withLatestFrom(followOutput, totalCount)\n ),\n ([, followOutput]) => {\n const cancel = u.handleNext(atBottomState, (state) => {\n if (followOutput && !state.atBottom && state.notAtBottomBecause === 'SIZE_INCREASED' && !pendingScrollHandle) {\n u.getValue(log)('scrolling to bottom due to increased size', {}, LogLevel.DEBUG)\n scrollToBottom('auto')\n }\n })\n setTimeout(cancel, 100)\n }\n )\n\n u.subscribe(u.combineLatest(u.duc(followOutput), atBottomState), ([followOutput, state]) => {\n if (followOutput && !state.atBottom && state.notAtBottomBecause === 'VIEWPORT_HEIGHT_DECREASING') {\n scrollToBottom('auto')\n }\n })\n\n return { followOutput }\n },\n u.tup(sizeSystem, stateFlagsSystem, scrollToIndexSystem, initialTopMostItemIndexSystem, propsReadySystem, loggerSystem, domIOSystem)\n)\n","import {\n combineLatest,\n connect,\n distinctUntilChanged,\n system,\n filter,\n map,\n pipe,\n prop,\n stream,\n streamFromEmitter,\n tup,\n} from '@virtuoso.dev/urx'\nimport { findMaxKeyValue } from './AATree'\nimport { domIOSystem } from './domIOSystem'\nimport { sizeSystem, hasGroups } from './sizeSystem'\nexport interface GroupIndexesAndCount {\n totalCount: number\n groupIndices: number[]\n}\n\nexport function groupCountsToIndicesAndCount(counts: number[]) {\n return counts.reduce(\n (acc, groupCount) => {\n acc.groupIndices.push(acc.totalCount)\n acc.totalCount += groupCount + 1\n return acc\n },\n {\n totalCount: 0,\n groupIndices: [],\n } as GroupIndexesAndCount\n )\n}\n\nexport const groupedListSystem = system(([{ totalCount, groupIndices, sizes }, { scrollTop, headerHeight }]) => {\n const groupCounts = stream()\n const topItemsIndexes = stream<[number]>()\n const groupIndicesAndCount = streamFromEmitter(pipe(groupCounts, map(groupCountsToIndicesAndCount)))\n connect(pipe(groupIndicesAndCount, map(prop('totalCount'))), totalCount)\n connect(pipe(groupIndicesAndCount, map(prop('groupIndices'))), groupIndices)\n\n connect(\n pipe(\n combineLatest(scrollTop, sizes, headerHeight),\n filter(([_, sizes]) => hasGroups(sizes)),\n map(([scrollTop, state, headerHeight]) => findMaxKeyValue(state.groupOffsetTree, Math.max(scrollTop - headerHeight, 0), 'v')[0]),\n distinctUntilChanged(),\n map((index) => [index])\n ),\n topItemsIndexes\n )\n\n return { groupCounts, topItemsIndexes }\n}, tup(sizeSystem, domIOSystem))\n","import { ListRange } from './interfaces'\n\nexport function tupleComparator(prev: [any, any] | undefined, current: [any, any]) {\n return !!(prev && prev[0] === current[0] && prev[1] === current[1])\n}\n\nexport function rangeComparator(prev: ListRange | undefined, next: ListRange) {\n return !!(prev && prev.startIndex === next.startIndex && prev.endIndex === next.endIndex)\n}\n","import * as u from '@virtuoso.dev/urx'\nimport { domIOSystem } from './domIOSystem'\nimport { UP, DOWN, ScrollDirection } from './stateFlagsSystem'\nimport { tupleComparator } from './comparators'\n\nexport type NumberTuple = [number, number]\nexport type Overscan = number | { main: number; reverse: number }\nexport const TOP = 'top' as const\nexport const BOTTOM = 'bottom' as const\nexport const NONE = 'none' as const\nexport type ListEnd = typeof TOP | typeof BOTTOM\nexport type ViewportIncrease = number | { [k in ListEnd]?: number }\nexport type ChangeDirection = typeof UP | typeof DOWN | typeof NONE\n\nexport function getOverscan(overscan: Overscan, end: ListEnd, direction: ScrollDirection) {\n if (typeof overscan === 'number') {\n return (direction === UP && end === TOP) || (direction === DOWN && end === BOTTOM) ? overscan : 0\n } else {\n if (direction === UP) {\n return end === TOP ? overscan.main : overscan.reverse\n } else {\n return end === BOTTOM ? overscan.main : overscan.reverse\n }\n }\n}\n\nfunction getViewportIncrease(value: ViewportIncrease, end: ListEnd) {\n return typeof value === 'number' ? value : value[end] || 0\n}\n\nexport const sizeRangeSystem = u.system(\n ([{ scrollTop, viewportHeight, deviation, headerHeight }]) => {\n const listBoundary = u.stream()\n const topListHeight = u.statefulStream(0)\n const fixedHeaderHeight = u.statefulStream(0)\n const increaseViewportBy = u.statefulStream(0)\n const overscan = u.statefulStream(0)\n\n const visibleRange = u.statefulStreamFromEmitter(\n u.pipe(\n u.combineLatest(\n u.duc(scrollTop),\n u.duc(viewportHeight),\n u.duc(headerHeight),\n u.duc(listBoundary, tupleComparator),\n u.duc(overscan),\n u.duc(topListHeight),\n u.duc(fixedHeaderHeight),\n u.duc(deviation),\n u.duc(increaseViewportBy)\n ),\n u.map(\n ([\n scrollTop,\n viewportHeight,\n headerHeight,\n [listTop, listBottom],\n overscan,\n topListHeight,\n fixedHeaderHeight,\n deviation,\n increaseViewportBy,\n ]) => {\n const top = scrollTop - deviation\n const stickyHeaderHeight = topListHeight + fixedHeaderHeight\n const headerVisible = Math.max(headerHeight - top, 0)\n let direction: ChangeDirection = NONE\n const topViewportAddition = getViewportIncrease(increaseViewportBy, TOP)\n const bottomViewportAddition = getViewportIncrease(increaseViewportBy, BOTTOM)\n\n listTop -= deviation\n listTop += headerHeight + fixedHeaderHeight\n listBottom += headerHeight + fixedHeaderHeight\n listBottom -= deviation\n\n // console.log({ listTop, scrollTop, stickyHeaderHeight, topViewportAddition })\n if (listTop > scrollTop + stickyHeaderHeight - topViewportAddition) {\n direction = UP\n }\n\n if (listBottom < scrollTop - headerVisible + viewportHeight + bottomViewportAddition) {\n direction = DOWN\n }\n\n if (direction !== NONE) {\n return [\n Math.max(top - headerHeight - getOverscan(overscan, TOP, direction) - topViewportAddition, 0),\n top -\n headerVisible -\n fixedHeaderHeight +\n viewportHeight +\n getOverscan(overscan, BOTTOM, direction) +\n bottomViewportAddition,\n ] as NumberTuple\n }\n\n return null\n }\n ),\n u.filter((value) => value != null),\n u.distinctUntilChanged(tupleComparator as any)\n ),\n [0, 0]\n ) as unknown as u.StatefulStream\n\n return {\n // input\n listBoundary,\n overscan,\n topListHeight,\n fixedHeaderHeight,\n increaseViewportBy,\n\n // output\n visibleRange,\n }\n },\n u.tup(domIOSystem),\n { singleton: true }\n)\n","import * as u from '@virtuoso.dev/urx'\nimport { empty, findMaxKeyValue, Range, rangesWithin } from './AATree'\nimport { groupedListSystem } from './groupedListSystem'\nimport { getInitialTopMostItemIndexNumber, initialTopMostItemIndexSystem } from './initialTopMostItemIndexSystem'\nimport { Item, ListItem, ListRange } from './interfaces'\nimport { propsReadySystem } from './propsReadySystem'\nimport { scrollToIndexSystem } from './scrollToIndexSystem'\nimport { sizeRangeSystem } from './sizeRangeSystem'\nimport { Data, originalIndexFromItemIndex, SizeState, sizeSystem, hasGroups, rangesWithinOffsets } from './sizeSystem'\nimport { stateFlagsSystem } from './stateFlagsSystem'\nimport { rangeComparator, tupleComparator } from './comparators'\n\nexport type ListItems = ListItem[]\nexport interface TopListState {\n items: ListItems\n listHeight: number\n}\n\nexport interface ListState {\n items: ListItems\n topItems: ListItems\n topListHeight: number\n offsetTop: number\n offsetBottom: number\n top: number\n bottom: number\n totalCount: number\n}\n\nfunction probeItemSet(index: number, sizes: SizeState, data: Data) {\n if (hasGroups(sizes)) {\n const itemIndex = originalIndexFromItemIndex(index, sizes)\n const groupIndex = findMaxKeyValue(sizes.groupOffsetTree, itemIndex)[0]\n\n return [\n { index: groupIndex, size: 0, offset: 0 },\n { index: itemIndex, size: 0, offset: 0, data: data && data[0] },\n ]\n }\n return [{ index, size: 0, offset: 0, data: data && data[0] }]\n}\n\nconst EMPTY_LIST_STATE: ListState = {\n items: [] as ListItems,\n topItems: [] as ListItems,\n offsetTop: 0,\n offsetBottom: 0,\n top: 0,\n bottom: 0,\n topListHeight: 0,\n totalCount: 0,\n}\n\nfunction transposeItems(items: Item[], sizes: SizeState, firstItemIndex: number): ListItems {\n if (items.length === 0) {\n return []\n }\n\n if (!hasGroups(sizes)) {\n return items.map((item) => ({ ...item, index: item.index + firstItemIndex, originalIndex: item.index }))\n }\n\n const startIndex = items[0].index\n const endIndex = items[items.length - 1].index\n\n const transposedItems = [] as ListItems\n const groupRanges = rangesWithin(sizes.groupOffsetTree, startIndex, endIndex)\n let currentRange: Range | undefined = undefined\n let currentGroupIndex = 0\n\n for (const item of items) {\n if (!currentRange || currentRange.end < item.index) {\n currentRange = groupRanges.shift()!\n currentGroupIndex = sizes.groupIndices.indexOf(currentRange.start)\n }\n\n let transposedItem: { type: 'group'; index: number } | { index: number; groupIndex: number }\n\n if (item.index === currentRange.start) {\n transposedItem = {\n type: 'group' as const,\n index: currentGroupIndex,\n }\n } else {\n transposedItem = {\n index: item.index - (currentGroupIndex + 1) + firstItemIndex,\n groupIndex: currentGroupIndex,\n }\n }\n\n transposedItems.push({\n ...transposedItem,\n size: item.size,\n offset: item.offset,\n originalIndex: item.index,\n data: item.data,\n })\n }\n\n return transposedItems\n}\n\nexport function buildListState(\n items: Item[],\n topItems: Item[],\n totalCount: number,\n sizes: SizeState,\n firstItemIndex: number\n): ListState {\n const { lastSize, lastOffset, lastIndex } = sizes\n let offsetTop = 0\n let bottom = 0\n\n if (items.length > 0) {\n offsetTop = items[0].offset\n const lastItem = items[items.length - 1]\n bottom = lastItem.offset + lastItem.size\n }\n\n const total = lastOffset + (totalCount - lastIndex) * lastSize\n const top = offsetTop\n const offsetBottom = total - bottom\n\n return {\n items: transposeItems(items, sizes, firstItemIndex),\n topItems: transposeItems(topItems, sizes, firstItemIndex),\n topListHeight: topItems.reduce((height, item) => item.size + height, 0),\n offsetTop,\n offsetBottom,\n top,\n bottom,\n totalCount,\n }\n}\n\nexport const listStateSystem = u.system(\n ([\n { sizes, totalCount, data, firstItemIndex },\n groupedListSystem,\n { visibleRange, listBoundary, topListHeight: rangeTopListHeight },\n { scrolledToInitialItem, initialTopMostItemIndex },\n { topListHeight },\n stateFlags,\n { didMount },\n ]) => {\n const topItemsIndexes = u.statefulStream>([])\n const itemsRendered = u.stream()\n\n u.connect(groupedListSystem.topItemsIndexes, topItemsIndexes)\n\n const listState = u.statefulStreamFromEmitter(\n u.pipe(\n u.combineLatest(\n didMount,\n u.duc(visibleRange),\n u.duc(totalCount),\n u.duc(sizes),\n u.duc(initialTopMostItemIndex),\n scrolledToInitialItem,\n u.duc(topItemsIndexes),\n u.duc(firstItemIndex),\n data\n ),\n u.filter(([mount]) => mount),\n u.map(\n ([\n ,\n [startOffset, endOffset],\n totalCount,\n sizes,\n initialTopMostItemIndex,\n scrolledToInitialItem,\n topItemsIndexes,\n firstItemIndex,\n data,\n ]) => {\n const sizesValue = sizes\n const { sizeTree, offsetTree } = sizesValue\n\n if (totalCount === 0 || (startOffset === 0 && endOffset === 0)) {\n return EMPTY_LIST_STATE\n }\n\n if (empty(sizeTree)) {\n return buildListState(\n probeItemSet(getInitialTopMostItemIndexNumber(initialTopMostItemIndex, totalCount), sizesValue, data),\n [],\n totalCount,\n sizesValue,\n firstItemIndex\n )\n }\n\n const topItems = [] as Item[]\n\n if (topItemsIndexes.length > 0) {\n const startIndex = topItemsIndexes[0]\n const endIndex = topItemsIndexes[topItemsIndexes.length - 1]\n let offset = 0\n for (const range of rangesWithin(sizeTree, startIndex, endIndex)) {\n const size = range.value\n const rangeStartIndex = Math.max(range.start, startIndex)\n const rangeEndIndex = Math.min(range.end, endIndex)\n for (let i = rangeStartIndex; i <= rangeEndIndex; i++) {\n topItems.push({ index: i, size, offset: offset, data: data && data[i] })\n offset += size\n }\n }\n }\n\n // If the list hasn't scrolled to the initial item because the initial item was set,\n // render empty list.\n //\n // This is a condition to be evaluated past the probe check, do not merge\n // with the totalCount check above\n if (!scrolledToInitialItem) {\n return buildListState([], topItems, totalCount, sizesValue, firstItemIndex)\n }\n\n const minStartIndex = topItemsIndexes.length > 0 ? topItemsIndexes[topItemsIndexes.length - 1] + 1 : 0\n\n const offsetPointRanges = rangesWithinOffsets(offsetTree, startOffset, endOffset, minStartIndex)\n if (offsetPointRanges.length === 0) {\n return null\n }\n\n const maxIndex = totalCount - 1\n\n const items = u.tap([] as Item[], (result) => {\n for (const range of offsetPointRanges) {\n const point = range.value\n let offset = point.offset\n let rangeStartIndex = range.start\n const size = point.size\n\n if (point.offset < startOffset) {\n rangeStartIndex += Math.floor((startOffset - point.offset) / size)\n offset += (rangeStartIndex - range.start) * size\n }\n\n if (rangeStartIndex < minStartIndex) {\n offset += (minStartIndex - rangeStartIndex) * size\n rangeStartIndex = minStartIndex\n }\n\n const endIndex = Math.min(range.end, maxIndex)\n\n for (let i = rangeStartIndex; i <= endIndex; i++) {\n if (offset >= endOffset) {\n break\n }\n\n result.push({ index: i, size, offset: offset, data: data && data[i] })\n offset += size\n }\n }\n })\n\n return buildListState(items, topItems, totalCount, sizesValue, firstItemIndex)\n }\n ),\n //@ts-expect-error filter needs to be fixed\n u.filter((value) => value !== null),\n u.distinctUntilChanged()\n ),\n EMPTY_LIST_STATE\n )\n\n u.connect(\n u.pipe(\n data,\n u.filter((data) => data !== undefined),\n u.map((data) => data!.length)\n ),\n totalCount\n )\n\n u.connect(u.pipe(listState, u.map(u.prop('topListHeight'))), topListHeight)\n u.connect(topListHeight, rangeTopListHeight)\n\n u.connect(\n u.pipe(\n listState,\n u.map((state) => [state.top, state.bottom])\n ),\n listBoundary\n )\n\n u.connect(\n u.pipe(\n listState,\n u.map((state) => state.items)\n ),\n itemsRendered\n )\n\n const endReached = u.streamFromEmitter(\n u.pipe(\n listState,\n u.filter(({ items }) => items.length > 0),\n u.withLatestFrom(totalCount, data),\n u.filter(([{ items }, totalCount]) => items[items.length - 1].originalIndex === totalCount - 1),\n u.map(([, totalCount, data]) => [totalCount - 1, data] as [number, unknown[]]),\n u.distinctUntilChanged(tupleComparator),\n u.map(([count]) => count as number)\n )\n )\n\n const startReached = u.streamFromEmitter(\n u.pipe(\n listState,\n u.throttleTime(200),\n u.filter(({ items, topItems }) => {\n return items.length > 0 && items[0].originalIndex === topItems.length\n }),\n u.map(({ items }) => items[0].index),\n u.distinctUntilChanged()\n )\n )\n\n const rangeChanged = u.streamFromEmitter(\n u.pipe(\n listState,\n u.filter(({ items }) => items.length > 0),\n u.map(({ items }) => {\n return {\n startIndex: items[0].index,\n endIndex: items[items.length - 1].index,\n } as ListRange\n }),\n u.distinctUntilChanged(rangeComparator)\n )\n )\n\n return { listState, topItemsIndexes, endReached, startReached, rangeChanged, itemsRendered, ...stateFlags }\n },\n u.tup(\n sizeSystem,\n groupedListSystem,\n sizeRangeSystem,\n initialTopMostItemIndexSystem,\n scrollToIndexSystem,\n stateFlagsSystem,\n propsReadySystem\n ),\n { singleton: true }\n)\n","export function simpleMemoize any>(func: T): T {\n let called = false\n let result: unknown\n\n return (() => {\n if (!called) {\n called = true\n result = func()\n }\n return result\n }) as T\n}\n","import * as u from '@virtuoso.dev/urx'\nimport { listStateSystem, buildListState } from './listStateSystem'\nimport { sizeSystem } from './sizeSystem'\nimport { propsReadySystem } from './propsReadySystem'\n\nexport const initialItemCountSystem = u.system(\n ([{ sizes, firstItemIndex, data }, { listState }, { didMount }]) => {\n const initialItemCount = u.statefulStream(0)\n\n u.connect(\n u.pipe(\n didMount,\n u.withLatestFrom(initialItemCount),\n u.filter(([, count]) => count !== 0),\n u.withLatestFrom(sizes, firstItemIndex, data),\n u.map(([[, count], sizes, firstItemIndex, data = []]) => {\n let includedGroupsCount = 0\n if (sizes.groupIndices.length > 0) {\n for (const index of sizes.groupIndices) {\n if (index - includedGroupsCount >= count) {\n break\n }\n includedGroupsCount++\n }\n }\n const adjustedCount = count + includedGroupsCount\n const items = Array.from({ length: adjustedCount }).map((_, index) => ({ index, size: 0, offset: 0, data: data[index] }))\n return buildListState(items, [], adjustedCount, sizes, firstItemIndex)\n })\n ),\n listState\n )\n\n return { initialItemCount }\n },\n u.tup(sizeSystem, listStateSystem, propsReadySystem),\n { singleton: true }\n)\n","import * as u from '@virtuoso.dev/urx'\nimport { ListRange } from './interfaces'\nimport { stateFlagsSystem } from './stateFlagsSystem'\nimport { ScrollSeekConfiguration } from './interfaces'\n\nexport const scrollSeekSystem = u.system(\n ([{ scrollVelocity }]) => {\n const isSeeking = u.statefulStream(false)\n const rangeChanged = u.stream()\n const scrollSeekConfiguration = u.statefulStream(false)\n\n u.connect(\n u.pipe(\n scrollVelocity,\n u.withLatestFrom(scrollSeekConfiguration, isSeeking, rangeChanged),\n u.filter(([_, config]) => !!config),\n u.map(([speed, config, isSeeking, range]) => {\n const { exit, enter } = config as ScrollSeekConfiguration\n if (isSeeking) {\n if (exit(speed, range)) {\n return false\n }\n } else {\n if (enter(speed, range)) {\n return true\n }\n }\n return isSeeking\n }),\n u.distinctUntilChanged()\n ),\n isSeeking\n )\n\n u.subscribe(\n u.pipe(u.combineLatest(isSeeking, scrollVelocity, rangeChanged), u.withLatestFrom(scrollSeekConfiguration)),\n ([[isSeeking, velocity, range], config]) => isSeeking && config && config.change && config.change(velocity, range)\n )\n\n return { isSeeking, scrollSeekConfiguration, scrollVelocity, scrollSeekRangeChanged: rangeChanged }\n },\n u.tup(stateFlagsSystem),\n { singleton: true }\n)\n","import { connect, system, map, pipe, statefulStream, tup, filter } from '@virtuoso.dev/urx'\nimport { listStateSystem } from './listStateSystem'\n\nexport const topItemCountSystem = system(([{ topItemsIndexes }]) => {\n const topItemCount = statefulStream(0)\n\n connect(\n pipe(\n topItemCount,\n filter((length) => length > 0),\n map((length) => Array.from({ length }).map((_, index) => index))\n ),\n topItemsIndexes\n )\n return { topItemCount }\n}, tup(listStateSystem))\n","import * as u from '@virtuoso.dev/urx'\nimport { listStateSystem } from './listStateSystem'\nimport { domIOSystem } from './domIOSystem'\n\nexport const totalListHeightSystem = u.system(\n ([{ footerHeight, headerHeight }, { listState }]) => {\n const totalListHeightChanged = u.stream()\n const totalListHeight = u.statefulStreamFromEmitter(\n u.pipe(\n u.combineLatest(footerHeight, headerHeight, listState),\n u.map(([footerHeight, headerHeight, listState]) => {\n return footerHeight + headerHeight + listState.offsetBottom + listState.bottom\n })\n ),\n 0\n )\n\n u.connect(u.duc(totalListHeight), totalListHeightChanged)\n\n return { totalListHeight, totalListHeightChanged }\n },\n u.tup(domIOSystem, listStateSystem),\n { singleton: true }\n)\n","import * as u from '@virtuoso.dev/urx'\nimport { domIOSystem } from './domIOSystem'\nimport { listStateSystem } from './listStateSystem'\nimport { sizeSystem } from './sizeSystem'\nimport { UP, stateFlagsSystem } from './stateFlagsSystem'\nimport { ListItem } from './interfaces'\nimport { loggerSystem, LogLevel } from './loggerSystem'\n\n/**\n * Fixes upward scrolling by calculating and compensation from changed item heights, using scrollBy.\n */\nexport const upwardScrollFixSystem = u.system(\n ([\n { scrollBy, scrollTop, deviation, scrollingInProgress },\n { isScrolling, isAtBottom, atBottomState, scrollDirection, lastJumpDueToItemResize },\n { listState },\n { beforeUnshiftWith, shiftWithOffset, sizes },\n { log },\n ]) => {\n const deviationOffset = u.streamFromEmitter(\n u.pipe(\n listState,\n u.withLatestFrom(lastJumpDueToItemResize),\n u.scan(\n ([, prevItems, prevTotalCount], [{ items, totalCount }, lastJumpDueToItemResize]) => {\n let newDev = 0\n if (prevTotalCount === totalCount) {\n if (prevItems.length > 0 && items.length > 0) {\n const firstItemIndex = items[0].originalIndex\n const prevFirstItemIndex = prevItems[0].originalIndex\n const atStart = firstItemIndex === 0 && prevFirstItemIndex === 0\n const onlyItem = items.length === 1\n\n if (!atStart) {\n for (let index = items.length - 1; index >= 0; index--) {\n const item = items[index]\n\n const prevItem = prevItems.find((pItem) => pItem.originalIndex === item.originalIndex)\n\n if (!prevItem) {\n continue\n }\n\n if (item.offset !== prevItem.offset || onlyItem) {\n newDev = item.offset - prevItem.offset + item.size - prevItem.size\n break\n }\n }\n }\n }\n\n if (newDev !== 0) {\n newDev += lastJumpDueToItemResize\n }\n }\n\n return [newDev, items, totalCount] as [number, ListItem[], number]\n },\n [0, [], 0] as [number, ListItem[], number]\n ),\n u.filter(([amount]) => amount !== 0),\n u.withLatestFrom(scrollTop, scrollDirection, scrollingInProgress, log, isAtBottom, atBottomState),\n u.filter(([, scrollTop, scrollDirection, scrollingInProgress]) => {\n // console.log({ amount, scrollTop, scrollDirection, scrollingInProgress, isAtBottom, atBottomState })\n return !scrollingInProgress && scrollTop !== 0 && scrollDirection === UP // && (isAtBottom ? amount > 0 : true)\n }),\n u.map(([[amount], , , , log]) => {\n log('Upward scrolling compensation', { amount }, LogLevel.DEBUG)\n return amount\n })\n )\n )\n\n u.connect(\n u.pipe(\n deviationOffset,\n u.withLatestFrom(deviation),\n u.map(([amount, deviation]) => deviation - amount)\n ),\n deviation\n )\n\n // when the browser stops scrolling,\n // restore the position and reset the glitching\n u.subscribe(\n u.pipe(\n u.combineLatest(u.statefulStreamFromEmitter(isScrolling, false), deviation),\n u.filter(([is, deviation]) => !is && deviation !== 0),\n u.map(([_, deviation]) => deviation),\n u.throttleTime(1)\n ),\n (offset) => {\n if (offset > 0) {\n u.publish(scrollBy, { top: -offset, behavior: 'auto' })\n u.publish(deviation, 0)\n } else {\n u.publish(deviation, 0)\n u.publish(scrollBy, { top: -offset, behavior: 'auto' })\n }\n }\n )\n\n u.connect(\n u.pipe(\n shiftWithOffset,\n u.map((offset) => {\n return { top: -offset }\n })\n ),\n scrollBy\n )\n\n u.connect(\n u.pipe(\n beforeUnshiftWith,\n u.withLatestFrom(sizes),\n u.map(([offset, { lastSize }]) => offset * lastSize)\n ),\n deviationOffset\n )\n\n return { deviation }\n },\n u.tup(domIOSystem, stateFlagsSystem, listStateSystem, sizeSystem, loggerSystem)\n)\n","import * as u from '@virtuoso.dev/urx'\nimport { totalListHeightSystem } from './totalListHeightSystem'\nimport { propsReadySystem } from './propsReadySystem'\nimport { domIOSystem } from './domIOSystem'\n\nexport const initialScrollTopSystem = u.system(\n ([{ totalListHeight }, { didMount }, { scrollTo }]) => {\n const initialScrollTop = u.statefulStream(0)\n\n u.subscribe(\n u.pipe(\n didMount,\n u.withLatestFrom(initialScrollTop),\n u.filter(([, offset]) => offset !== 0),\n u.map(([, offset]) => ({ top: offset }))\n ),\n (location) => {\n u.handleNext(\n u.pipe(\n totalListHeight,\n u.filter((val) => val !== 0)\n ),\n () => {\n setTimeout(() => {\n u.publish(scrollTo, location)\n })\n }\n )\n }\n )\n\n return {\n initialScrollTop,\n }\n },\n u.tup(totalListHeightSystem, propsReadySystem, domIOSystem),\n { singleton: true }\n)\n","import * as u from '@virtuoso.dev/urx'\nimport { totalListHeightSystem } from './totalListHeightSystem'\nimport { domIOSystem } from './domIOSystem'\n\nexport const alignToBottomSystem = u.system(\n ([{ viewportHeight }, { totalListHeight }]) => {\n const alignToBottom = u.statefulStream(false)\n\n const paddingTopAddition = u.statefulStreamFromEmitter(\n u.pipe(\n u.combineLatest(alignToBottom, viewportHeight, totalListHeight),\n u.filter(([enabled]) => enabled),\n u.map(([, viewportHeight, totalListHeight]) => {\n return Math.max(0, viewportHeight - totalListHeight)\n }),\n u.distinctUntilChanged()\n ),\n 0\n )\n\n return { alignToBottom, paddingTopAddition }\n },\n u.tup(domIOSystem, totalListHeightSystem),\n { singleton: true }\n)\n","import * as u from '@virtuoso.dev/urx'\nimport { domIOSystem } from './domIOSystem'\nimport { WindowViewportInfo } from './interfaces'\n\nexport const windowScrollerSystem = u.system(([{ scrollTo, scrollContainerState }]) => {\n const windowScrollContainerState = u.stream<[number, number]>()\n const windowViewportRect = u.stream()\n const windowScrollTo = u.stream()\n const useWindowScroll = u.statefulStream(false)\n const customScrollParent = u.statefulStream(undefined)\n\n u.connect(\n u.pipe(\n u.combineLatest(windowScrollContainerState, windowViewportRect),\n u.map(([[windowScrollTop, scrollHeight], { offsetTop }]) => {\n return [Math.max(0, windowScrollTop - offsetTop), scrollHeight]\n })\n ),\n scrollContainerState\n )\n\n u.connect(\n u.pipe(\n scrollTo,\n u.withLatestFrom(windowViewportRect),\n u.map(([scrollTo, { offsetTop }]) => {\n return {\n ...scrollTo,\n top: scrollTo.top! + offsetTop,\n }\n })\n ),\n windowScrollTo\n )\n\n return {\n // config\n useWindowScroll,\n customScrollParent,\n\n // input\n windowScrollContainerState,\n windowViewportRect,\n\n // signals\n windowScrollTo,\n }\n}, u.tup(domIOSystem))\n","import * as u from '@virtuoso.dev/urx'\nimport { findMaxKeyValue } from './AATree'\nimport { domIOSystem } from './domIOSystem'\nimport { offsetOf, originalIndexFromItemIndex, sizeSystem } from './sizeSystem'\nimport { loggerSystem } from './loggerSystem'\nimport { scrollToIndexSystem } from './scrollToIndexSystem'\nimport { listStateSystem } from './listStateSystem'\nimport { ScrollIntoViewLocation } from './interfaces'\n\nexport const scrollIntoViewSystem = u.system(\n ([{ sizes, totalCount }, { scrollTop, viewportHeight, headerHeight, scrollingInProgress }, { scrollToIndex }]) => {\n const scrollIntoView = u.stream()\n\n u.connect(\n u.pipe(\n scrollIntoView,\n u.withLatestFrom(sizes, viewportHeight, totalCount, headerHeight, scrollTop),\n u.map(([{ index, behavior = 'auto', done }, sizes, viewportHeight, totalCount, headerHeight, scrollTop]) => {\n const lastIndex = totalCount - 1\n let location = null\n index = originalIndexFromItemIndex(index, sizes)\n index = Math.max(0, index, Math.min(lastIndex, index))\n\n const itemTop = offsetOf(index, sizes.offsetTree) + headerHeight\n if (itemTop < scrollTop) {\n location = { index, behavior, align: 'start' }\n } else {\n const itemBottom = itemTop + findMaxKeyValue(sizes.sizeTree, index)[1]!\n\n if (itemBottom > scrollTop + viewportHeight) {\n location = { index, behavior, align: 'end' }\n }\n }\n\n if (location) {\n done &&\n u.handleNext(\n u.pipe(\n scrollingInProgress,\n u.skip(1),\n u.filter((value) => value === false)\n ),\n done\n )\n } else {\n done && done()\n }\n\n return location\n }),\n u.filter((value) => value !== null)\n ),\n scrollToIndex\n )\n\n return {\n scrollIntoView,\n }\n },\n u.tup(sizeSystem, domIOSystem, scrollToIndexSystem, listStateSystem, loggerSystem),\n { singleton: true }\n)\n","import * as u from '@virtuoso.dev/urx'\nimport { domIOSystem } from './domIOSystem'\nimport { followOutputSystem } from './followOutputSystem'\nimport { groupedListSystem } from './groupedListSystem'\nimport { initialItemCountSystem } from './initialItemCountSystem'\nimport { initialTopMostItemIndexSystem } from './initialTopMostItemIndexSystem'\nimport { listStateSystem } from './listStateSystem'\nimport { propsReadySystem } from './propsReadySystem'\nimport { scrollSeekSystem } from './scrollSeekSystem'\nimport { scrollToIndexSystem } from './scrollToIndexSystem'\nimport { sizeRangeSystem } from './sizeRangeSystem'\nimport { sizeSystem } from './sizeSystem'\nimport { topItemCountSystem } from './topItemCountSystem'\nimport { totalListHeightSystem } from './totalListHeightSystem'\nimport { upwardScrollFixSystem } from './upwardScrollFixSystem'\nimport { initialScrollTopSystem } from './initialScrollTopSystem'\nimport { alignToBottomSystem } from './alignToBottomSystem'\nimport { windowScrollerSystem } from './windowScrollerSystem'\nimport { loggerSystem } from './loggerSystem'\nimport { scrollIntoViewSystem } from './scrollIntoViewSystem'\n\n// workaround the growing list of systems below\n// fix this with 4.1 recursive conditional types\nconst featureGroup1System = u.system(\n ([\n sizeRange,\n initialItemCount,\n propsReady,\n scrollSeek,\n totalListHeight,\n initialScrollTopSystem,\n alignToBottom,\n windowScroller,\n scrollIntoView,\n ]) => {\n return {\n ...sizeRange,\n ...initialItemCount,\n ...propsReady,\n ...scrollSeek,\n ...totalListHeight,\n ...initialScrollTopSystem,\n ...alignToBottom,\n ...windowScroller,\n ...scrollIntoView,\n }\n },\n u.tup(\n sizeRangeSystem,\n initialItemCountSystem,\n propsReadySystem,\n scrollSeekSystem,\n totalListHeightSystem,\n initialScrollTopSystem,\n alignToBottomSystem,\n windowScrollerSystem,\n scrollIntoViewSystem\n )\n)\n\nexport const listSystem = u.system(\n ([\n {\n totalCount,\n sizeRanges,\n fixedItemSize,\n defaultItemSize,\n trackItemSizes,\n itemSize,\n data,\n firstItemIndex,\n groupIndices,\n statefulTotalCount,\n },\n { initialTopMostItemIndex, scrolledToInitialItem },\n domIO,\n followOutput,\n { listState, topItemsIndexes, ...flags },\n { scrollToIndex },\n _,\n { topItemCount },\n { groupCounts },\n featureGroup1,\n log,\n ]) => {\n u.connect(flags.rangeChanged, featureGroup1.scrollSeekRangeChanged)\n u.connect(u.pipe(featureGroup1.windowViewportRect, u.map(u.prop('visibleHeight'))), domIO.viewportHeight)\n\n return {\n // input\n totalCount,\n data,\n firstItemIndex,\n sizeRanges,\n initialTopMostItemIndex,\n scrolledToInitialItem,\n topItemsIndexes,\n topItemCount,\n groupCounts,\n fixedItemHeight: fixedItemSize,\n defaultItemHeight: defaultItemSize,\n ...followOutput,\n\n // output\n statefulTotalCount,\n listState,\n scrollToIndex,\n trackItemSizes,\n itemSize,\n groupIndices,\n\n // exported from stateFlagsSystem\n ...flags,\n // the bag of IO from featureGroup1System\n ...featureGroup1,\n ...domIO,\n ...log,\n }\n },\n u.tup(\n sizeSystem,\n initialTopMostItemIndexSystem,\n domIOSystem,\n followOutputSystem,\n listStateSystem,\n scrollToIndexSystem,\n upwardScrollFixSystem,\n topItemCountSystem,\n groupedListSystem,\n featureGroup1System,\n loggerSystem\n )\n)\n","import { simpleMemoize } from './simpleMemoize'\n\nconst WEBKIT_STICKY = '-webkit-sticky'\nconst STICKY = 'sticky'\n\nexport const positionStickyCssValue = simpleMemoize(() => {\n if (typeof document === 'undefined') {\n return STICKY\n }\n const node = document.createElement('div')\n node.style.position = WEBKIT_STICKY\n return node.style.position === WEBKIT_STICKY ? WEBKIT_STICKY : STICKY\n})\n","import { useEffect, useRef, useCallback } from 'react'\nimport { useSizeWithElRef } from './useSize'\nimport { WindowViewportInfo } from '../interfaces'\n\nexport default function useWindowViewportRectRef(callback: (info: WindowViewportInfo) => void, customScrollParent?: HTMLElement) {\n const viewportInfo = useRef(null)\n\n const calculateInfo = useCallback(\n (element: HTMLElement | null) => {\n if (element === null) {\n return\n }\n const rect = element.getBoundingClientRect()\n const visibleWidth = rect.width\n let visibleHeight: number, offsetTop: number\n\n if (customScrollParent) {\n const customScrollParentRect = customScrollParent.getBoundingClientRect()\n const deltaTop = rect.top - customScrollParentRect.top\n\n visibleHeight = customScrollParentRect.height - Math.max(0, deltaTop)\n offsetTop = deltaTop + customScrollParent.scrollTop\n } else {\n visibleHeight = window.innerHeight - Math.max(0, rect.top)\n offsetTop = rect.top + window.pageYOffset\n }\n\n viewportInfo.current = {\n offsetTop,\n visibleHeight,\n visibleWidth,\n }\n\n callback(viewportInfo.current)\n },\n [callback, customScrollParent]\n )\n\n const { callbackRef, ref } = useSizeWithElRef(calculateInfo)\n\n const scrollAndResizeEventHandler = useCallback(() => {\n calculateInfo(ref.current)\n }, [calculateInfo, ref])\n\n useEffect(() => {\n if (customScrollParent) {\n customScrollParent.addEventListener('scroll', scrollAndResizeEventHandler)\n const observer = new ResizeObserver(scrollAndResizeEventHandler)\n observer.observe(customScrollParent)\n return () => {\n customScrollParent.removeEventListener('scroll', scrollAndResizeEventHandler)\n observer.unobserve(customScrollParent)\n }\n } else {\n window.addEventListener('scroll', scrollAndResizeEventHandler)\n window.addEventListener('resize', scrollAndResizeEventHandler)\n return () => {\n window.removeEventListener('scroll', scrollAndResizeEventHandler)\n window.removeEventListener('resize', scrollAndResizeEventHandler)\n }\n }\n }, [scrollAndResizeEventHandler, customScrollParent])\n\n return callbackRef\n}\n","import { RefHandle, systemToComponent } from '@virtuoso.dev/react-urx'\nimport {\n compose,\n connect,\n getValue,\n map,\n pipe,\n publish,\n statefulStream,\n stream,\n Stream,\n subscribe,\n system,\n tup,\n withLatestFrom,\n statefulStreamFromEmitter,\n distinctUntilChanged,\n noop,\n} from '@virtuoso.dev/urx'\nimport * as React from 'react'\nimport { ComponentType, createElement, CSSProperties, FC } from 'react'\nimport useIsomorphicLayoutEffect from './hooks/useIsomorphicLayoutEffect'\nimport useChangedListContentsSizes from './hooks/useChangedChildSizes'\nimport useScrollTop from './hooks/useScrollTop'\nimport useSize from './hooks/useSize'\nimport { Components, ComputeItemKey, GroupContent, GroupItemContent, ItemContent, ListRootProps } from './interfaces'\nimport { listSystem } from './listSystem'\nimport { positionStickyCssValue } from './utils/positionStickyCssValue'\nimport useWindowViewportRectRef from './hooks/useWindowViewportRect'\nimport { correctItemSize } from './utils/correctItemSize'\nimport { ScrollerProps } from '.'\n\nexport function identity(value: T) {\n return value\n}\n\nconst listComponentPropsSystem = system(() => {\n const itemContent = statefulStream | GroupItemContent>((index: number) => `Item ${index}`)\n const context = statefulStream(null)\n const groupContent = statefulStream((index: number) => `Group ${index}`)\n const components = statefulStream>({})\n const computeItemKey = statefulStream>(identity)\n const headerFooterTag = statefulStream('div')\n const scrollerRef = statefulStream<(ref: HTMLElement | Window | null) => void>(noop)\n\n const distinctProp = >(propName: K, defaultValue: Components[K] | null | 'div' = null) => {\n return statefulStreamFromEmitter(\n pipe(\n components,\n map((components) => components[propName]),\n distinctUntilChanged()\n ),\n defaultValue\n )\n }\n\n return {\n context,\n itemContent,\n groupContent,\n components,\n computeItemKey,\n headerFooterTag,\n scrollerRef,\n FooterComponent: distinctProp('Footer'),\n HeaderComponent: distinctProp('Header'),\n TopItemListComponent: distinctProp('TopItemList'),\n ListComponent: distinctProp('List', 'div'),\n ItemComponent: distinctProp('Item', 'div'),\n GroupComponent: distinctProp('Group', 'div'),\n ScrollerComponent: distinctProp('Scroller', 'div'),\n EmptyPlaceholder: distinctProp('EmptyPlaceholder'),\n ScrollSeekPlaceholder: distinctProp('ScrollSeekPlaceholder'),\n }\n})\n\nexport function addDeprecatedAlias(prop: Stream, message: string) {\n const alias = stream()\n subscribe(alias, () =>\n console.warn(`react-virtuoso: You are using a deprecated property. ${message}`, 'color: red;', 'color: inherit;', 'color: blue;')\n )\n connect(alias, prop)\n return alias\n}\n\nconst combinedSystem = system(([listSystem, propsSystem]) => {\n const deprecatedProps = {\n item: addDeprecatedAlias(propsSystem.itemContent, 'Rename the %citem%c prop to %citemContent.'),\n group: addDeprecatedAlias(propsSystem.groupContent, 'Rename the %cgroup%c prop to %cgroupContent.'),\n topItems: addDeprecatedAlias(listSystem.topItemCount, 'Rename the %ctopItems%c prop to %ctopItemCount.'),\n itemHeight: addDeprecatedAlias(listSystem.fixedItemHeight, 'Rename the %citemHeight%c prop to %cfixedItemHeight.'),\n scrollingStateChange: addDeprecatedAlias(listSystem.isScrolling, 'Rename the %cscrollingStateChange%c prop to %cisScrolling.'),\n adjustForPrependedItems: stream(),\n maxHeightCacheSize: stream(),\n footer: stream(),\n header: stream(),\n HeaderContainer: stream(),\n FooterContainer: stream(),\n ItemContainer: stream(),\n ScrollContainer: stream(),\n GroupContainer: stream(),\n ListContainer: stream(),\n emptyComponent: stream(),\n scrollSeek: stream(),\n }\n\n subscribe(deprecatedProps.adjustForPrependedItems, () => {\n console.warn(\n `react-virtuoso: adjustForPrependedItems is no longer supported. Use the firstItemIndex property instead - https://virtuoso.dev/prepend-items.`,\n 'color: red;',\n 'color: inherit;',\n 'color: blue;'\n )\n })\n\n subscribe(deprecatedProps.maxHeightCacheSize, () => {\n console.warn(`react-virtuoso: maxHeightCacheSize is no longer necessary. Setting it has no effect - remove it from your code.`)\n })\n\n subscribe(deprecatedProps.HeaderContainer, () => {\n console.warn(\n `react-virtuoso: HeaderContainer is deprecated. Use headerFooterTag if you want to change the wrapper of the header component and pass components.Header to change its contents.`\n )\n })\n\n subscribe(deprecatedProps.FooterContainer, () => {\n console.warn(\n `react-virtuoso: FooterContainer is deprecated. Use headerFooterTag if you want to change the wrapper of the footer component and pass components.Footer to change its contents.`\n )\n })\n\n function deprecateComponentProp(stream: Stream, componentName: string, propName: string) {\n connect(\n pipe(\n stream,\n withLatestFrom(propsSystem.components),\n map(([comp, components]) => {\n console.warn(`react-virtuoso: ${propName} property is deprecated. Pass components.${componentName} instead.`)\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n return { ...components, [componentName]: comp }\n })\n ),\n propsSystem.components\n )\n }\n\n subscribe(deprecatedProps.scrollSeek, ({ placeholder, ...config }) => {\n console.warn(\n `react-virtuoso: scrollSeek property is deprecated. Pass scrollSeekConfiguration and specify the placeholder in components.ScrollSeekPlaceholder instead.`\n )\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n publish(propsSystem.components, { ...getValue(propsSystem.components), ScrollSeekPlaceholder: placeholder })\n publish(listSystem.scrollSeekConfiguration, config)\n })\n\n deprecateComponentProp(deprecatedProps.footer, 'Footer', 'footer')\n deprecateComponentProp(deprecatedProps.header, 'Header', 'header')\n deprecateComponentProp(deprecatedProps.ItemContainer, 'Item', 'ItemContainer')\n deprecateComponentProp(deprecatedProps.ListContainer, 'List', 'ListContainer')\n deprecateComponentProp(deprecatedProps.ScrollContainer, 'Scroller', 'ScrollContainer')\n deprecateComponentProp(deprecatedProps.emptyComponent, 'EmptyPlaceholder', 'emptyComponent')\n deprecateComponentProp(deprecatedProps.GroupContainer, 'Group', 'GroupContainer')\n\n return { ...listSystem, ...propsSystem, ...deprecatedProps }\n}, tup(listSystem, listComponentPropsSystem))\n\nconst DefaultScrollSeekPlaceholder = ({ height }: { height: number }) =>
\n\nconst GROUP_STYLE = { position: positionStickyCssValue(), zIndex: 1, overflowAnchor: 'none' }\n\nexport const Items = React.memo(function VirtuosoItems({ showTopList = false }: { showTopList?: boolean }) {\n const listState = useEmitterValue('listState')\n const deviation = useEmitterValue('deviation')\n const sizeRanges = usePublisher('sizeRanges')\n const useWindowScroll = useEmitterValue('useWindowScroll')\n const customScrollParent = useEmitterValue('customScrollParent')\n const windowScrollContainerStateCallback = usePublisher('windowScrollContainerState')\n const _scrollContainerStateCallback = usePublisher('scrollContainerState')\n const scrollContainerStateCallback =\n customScrollParent || useWindowScroll ? windowScrollContainerStateCallback : _scrollContainerStateCallback\n const itemContent = useEmitterValue('itemContent')\n const context = useEmitterValue('context')\n const groupContent = useEmitterValue('groupContent')\n const trackItemSizes = useEmitterValue('trackItemSizes')\n const itemSize = useEmitterValue('itemSize')\n const log = useEmitterValue('log')\n\n const ref = useChangedListContentsSizes(\n sizeRanges,\n itemSize,\n trackItemSizes,\n showTopList ? noop : scrollContainerStateCallback,\n log,\n customScrollParent\n )\n const EmptyPlaceholder = useEmitterValue('EmptyPlaceholder')\n const ScrollSeekPlaceholder = useEmitterValue('ScrollSeekPlaceholder') || DefaultScrollSeekPlaceholder\n const ListComponent = useEmitterValue('ListComponent')!\n const ItemComponent = useEmitterValue('ItemComponent')!\n const GroupComponent = useEmitterValue('GroupComponent')!\n const computeItemKey = useEmitterValue('computeItemKey')\n const isSeeking = useEmitterValue('isSeeking')\n const hasGroups = useEmitterValue('groupIndices').length > 0\n const paddingTopAddition = useEmitterValue('paddingTopAddition')\n const firstItemIndex = useEmitterValue('firstItemIndex')\n const statefulTotalCount = useEmitterValue('statefulTotalCount')\n\n const containerStyle: CSSProperties = showTopList\n ? {}\n : {\n boxSizing: 'border-box',\n paddingTop: listState.offsetTop + paddingTopAddition,\n paddingBottom: listState.offsetBottom,\n marginTop: deviation,\n }\n\n if (!showTopList && statefulTotalCount === 0 && EmptyPlaceholder) {\n return createElement(EmptyPlaceholder, contextPropIfNotDomElement(EmptyPlaceholder, context))\n }\n\n return createElement(\n ListComponent,\n {\n ...contextPropIfNotDomElement(ListComponent, context),\n ref,\n style: containerStyle,\n 'data-test-id': showTopList ? 'virtuoso-top-item-list' : 'virtuoso-item-list',\n },\n (showTopList ? listState.topItems : listState.items).map((item) => {\n const index = item.originalIndex!\n const key = computeItemKey(index + firstItemIndex, item.data, context)\n\n if (isSeeking) {\n return createElement(ScrollSeekPlaceholder, {\n ...contextPropIfNotDomElement(ScrollSeekPlaceholder, context),\n key,\n index: item.index,\n height: item.size,\n type: item.type || 'item',\n ...(item.type === 'group' ? {} : { groupIndex: item.groupIndex }),\n })\n }\n\n if (item.type === 'group') {\n return createElement(\n GroupComponent,\n {\n ...contextPropIfNotDomElement(GroupComponent, context),\n key,\n 'data-index': index,\n 'data-known-size': item.size,\n 'data-item-index': item.index,\n style: GROUP_STYLE,\n } as any,\n groupContent(item.index)\n )\n } else {\n return createElement(\n ItemComponent,\n {\n ...contextPropIfNotDomElement(ItemComponent, context),\n key,\n 'data-index': index,\n 'data-known-size': item.size,\n 'data-item-index': item.index,\n 'data-item-group-index': item.groupIndex,\n style: { overflowAnchor: 'none' },\n } as any,\n hasGroups\n ? (itemContent as GroupItemContent)(item.index, item.groupIndex!, item.data, context)\n : (itemContent as ItemContent)(item.index, item.data, context)\n )\n }\n })\n )\n})\n\nexport const scrollerStyle: CSSProperties = {\n height: '100%',\n outline: 'none',\n overflowY: 'auto',\n position: 'relative',\n WebkitOverflowScrolling: 'touch',\n}\n\nexport const viewportStyle: CSSProperties = {\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n}\n\nconst topItemListStyle: CSSProperties = {\n width: '100%',\n position: positionStickyCssValue(),\n top: 0,\n}\n\nexport function contextPropIfNotDomElement(element: unknown, context: unknown) {\n if (typeof element === 'string') {\n return undefined\n }\n return { context }\n}\n\nconst Header: FC = React.memo(function VirtuosoHeader() {\n const Header = useEmitterValue('HeaderComponent')\n const headerHeight = usePublisher('headerHeight')\n const headerFooterTag = useEmitterValue('headerFooterTag')\n const ref = useSize((el) => headerHeight(correctItemSize(el, 'height')))\n const context = useEmitterValue('context')\n return Header ? createElement(headerFooterTag, { ref }, createElement(Header, contextPropIfNotDomElement(Header, context))) : null\n})\n\nconst Footer: FC = React.memo(function VirtuosoFooter() {\n const Footer = useEmitterValue('FooterComponent')\n const footerHeight = usePublisher('footerHeight')\n const headerFooterTag = useEmitterValue('headerFooterTag')\n const ref = useSize((el) => footerHeight(correctItemSize(el, 'height')))\n const context = useEmitterValue('context')\n return Footer ? createElement(headerFooterTag, { ref }, createElement(Footer, contextPropIfNotDomElement(Footer, context))) : null\n})\n\nexport interface Hooks {\n usePublisher: typeof usePublisher\n useEmitterValue: typeof useEmitterValue\n useEmitter: typeof useEmitter\n}\n\nexport function buildScroller({ usePublisher, useEmitter, useEmitterValue }: Hooks) {\n const Scroller: ComponentType = React.memo(function VirtuosoScroller({ style, children, ...props }) {\n const scrollContainerStateCallback = usePublisher('scrollContainerState')\n const ScrollerComponent = useEmitterValue('ScrollerComponent')!\n const smoothScrollTargetReached = usePublisher('smoothScrollTargetReached')\n const scrollerRefCallback = useEmitterValue('scrollerRef')\n const context = useEmitterValue('context')\n\n const { scrollerRef, scrollByCallback, scrollToCallback } = useScrollTop(\n scrollContainerStateCallback,\n smoothScrollTargetReached,\n ScrollerComponent,\n scrollerRefCallback\n )\n\n useEmitter('scrollTo', scrollToCallback)\n useEmitter('scrollBy', scrollByCallback)\n return createElement(\n ScrollerComponent,\n {\n ref: scrollerRef as React.MutableRefObject,\n style: { ...scrollerStyle, ...style },\n 'data-test-id': 'virtuoso-scroller',\n 'data-virtuoso-scroller': true,\n tabIndex: 0,\n ...props,\n ...contextPropIfNotDomElement(ScrollerComponent, context),\n },\n children\n )\n })\n return Scroller\n}\n\nexport function buildWindowScroller({ usePublisher, useEmitter, useEmitterValue }: Hooks) {\n const Scroller: Components['Scroller'] = React.memo(function VirtuosoWindowScroller({ style, children, ...props }) {\n const scrollContainerStateCallback = usePublisher('windowScrollContainerState')\n const ScrollerComponent = useEmitterValue('ScrollerComponent')!\n const smoothScrollTargetReached = usePublisher('smoothScrollTargetReached')\n const totalListHeight = useEmitterValue('totalListHeight')\n const deviation = useEmitterValue('deviation')\n const customScrollParent = useEmitterValue('customScrollParent')\n const context = useEmitterValue('context')\n const { scrollerRef, scrollByCallback, scrollToCallback } = useScrollTop(\n scrollContainerStateCallback,\n smoothScrollTargetReached,\n ScrollerComponent,\n noop,\n customScrollParent\n )\n\n useIsomorphicLayoutEffect(() => {\n scrollerRef.current = customScrollParent ? customScrollParent : window\n return () => {\n scrollerRef.current = null\n }\n }, [scrollerRef, customScrollParent])\n\n useEmitter('windowScrollTo', scrollToCallback)\n useEmitter('scrollBy', scrollByCallback)\n return createElement(\n ScrollerComponent,\n {\n style: { position: 'relative', ...style, ...(totalListHeight !== 0 ? { height: totalListHeight + deviation } : {}) },\n 'data-virtuoso-scroller': true,\n ...props,\n ...contextPropIfNotDomElement(ScrollerComponent, context),\n },\n children\n )\n })\n return Scroller\n}\n\nconst Viewport: FC = ({ children }) => {\n const viewportHeight = usePublisher('viewportHeight')\n const viewportRef = useSize(compose(viewportHeight, (el) => correctItemSize(el, 'height')))\n\n return (\n
\n {children}\n
\n )\n}\n\nconst WindowViewport: FC = ({ children }) => {\n const windowViewportRect = usePublisher('windowViewportRect')\n const customScrollParent = useEmitterValue('customScrollParent')\n const viewportRef = useWindowViewportRectRef(windowViewportRect, customScrollParent)\n\n return (\n
\n {children}\n
\n )\n}\n\nconst TopItemListContainer: FC = ({ children }) => {\n const TopItemList = useEmitterValue('TopItemListComponent')\n const headerHeight = useEmitterValue('headerHeight')\n const style = { ...topItemListStyle, marginTop: `${headerHeight}px` }\n const context = useEmitterValue('context')\n return createElement(TopItemList || 'div', { style, context }, children)\n}\n\nconst ListRoot: FC = React.memo(function VirtuosoRoot(props) {\n const useWindowScroll = useEmitterValue('useWindowScroll')\n const showTopList = useEmitterValue('topItemsIndexes').length > 0\n const customScrollParent = useEmitterValue('customScrollParent')\n const TheScroller = customScrollParent || useWindowScroll ? WindowScroller : Scroller\n const TheViewport = customScrollParent || useWindowScroll ? WindowViewport : Viewport\n return (\n \n \n
\n \n
\n \n {showTopList && (\n \n \n \n )}\n \n )\n})\n\nexport type ListHandle = RefHandle\n\nexport const {\n Component: List,\n usePublisher,\n useEmitterValue,\n useEmitter,\n} = systemToComponent(\n combinedSystem,\n {\n required: {},\n optional: {\n context: 'context',\n followOutput: 'followOutput',\n firstItemIndex: 'firstItemIndex',\n itemContent: 'itemContent',\n groupContent: 'groupContent',\n overscan: 'overscan',\n increaseViewportBy: 'increaseViewportBy',\n totalCount: 'totalCount',\n topItemCount: 'topItemCount',\n initialTopMostItemIndex: 'initialTopMostItemIndex',\n components: 'components',\n groupCounts: 'groupCounts',\n atBottomThreshold: 'atBottomThreshold',\n computeItemKey: 'computeItemKey',\n defaultItemHeight: 'defaultItemHeight',\n fixedItemHeight: 'fixedItemHeight',\n itemSize: 'itemSize',\n scrollSeekConfiguration: 'scrollSeekConfiguration',\n headerFooterTag: 'headerFooterTag',\n data: 'data',\n initialItemCount: 'initialItemCount',\n initialScrollTop: 'initialScrollTop',\n alignToBottom: 'alignToBottom',\n useWindowScroll: 'useWindowScroll',\n customScrollParent: 'customScrollParent',\n scrollerRef: 'scrollerRef',\n logLevel: 'logLevel',\n\n // deprecated\n item: 'item',\n group: 'group',\n topItems: 'topItems',\n itemHeight: 'itemHeight',\n scrollingStateChange: 'scrollingStateChange',\n maxHeightCacheSize: 'maxHeightCacheSize',\n footer: 'footer',\n header: 'header',\n ItemContainer: 'ItemContainer',\n ScrollContainer: 'ScrollContainer',\n ListContainer: 'ListContainer',\n GroupContainer: 'GroupContainer',\n emptyComponent: 'emptyComponent',\n HeaderContainer: 'HeaderContainer',\n FooterContainer: 'FooterContainer',\n scrollSeek: 'scrollSeek',\n },\n methods: {\n scrollToIndex: 'scrollToIndex',\n scrollIntoView: 'scrollIntoView',\n scrollTo: 'scrollTo',\n scrollBy: 'scrollBy',\n adjustForPrependedItems: 'adjustForPrependedItems',\n },\n events: {\n isScrolling: 'isScrolling',\n endReached: 'endReached',\n startReached: 'startReached',\n rangeChanged: 'rangeChanged',\n atBottomStateChange: 'atBottomStateChange',\n atTopStateChange: 'atTopStateChange',\n totalListHeightChanged: 'totalListHeightChanged',\n itemsRendered: 'itemsRendered',\n groupIndices: 'groupIndices',\n },\n },\n ListRoot\n)\n\nconst Scroller = buildScroller({ usePublisher, useEmitterValue, useEmitter })\nconst WindowScroller = buildWindowScroller({ usePublisher, useEmitterValue, useEmitter })\n","import * as u from '@virtuoso.dev/urx'\nimport { rangeComparator, tupleComparator } from './comparators'\nimport { domIOSystem } from './domIOSystem'\nimport { propsReadySystem } from './propsReadySystem'\nimport { scrollSeekSystem } from './scrollSeekSystem'\nimport { IndexLocation, normalizeIndexLocation } from './scrollToIndexSystem'\nimport { sizeRangeSystem } from './sizeRangeSystem'\nimport { stateFlagsSystem } from './stateFlagsSystem'\nimport { windowScrollerSystem } from './windowScrollerSystem'\n\nexport interface ElementDimensions {\n width: number\n height: number\n}\n\nexport interface GridItem {\n index: number\n}\n\nexport interface GridLayout {\n top: number\n bottom: number\n}\n\nexport interface GridState extends GridLayout {\n items: GridItem[]\n offsetTop: number\n offsetBottom: number\n itemHeight: number\n itemWidth: number\n}\n\nconst INITIAL_GRID_STATE: GridState = {\n items: [],\n offsetBottom: 0,\n offsetTop: 0,\n top: 0,\n bottom: 0,\n itemHeight: 0,\n itemWidth: 0,\n}\n\nconst PROBE_GRID_STATE: GridState = {\n items: [{ index: 0 }],\n offsetBottom: 0,\n offsetTop: 0,\n top: 0,\n bottom: 0,\n itemHeight: 0,\n itemWidth: 0,\n}\n\nconst { round, ceil, floor, min, max } = Math\n\nfunction buildItems(startIndex: number, endIndex: number) {\n return Array.from({ length: endIndex - startIndex + 1 }).map((_, i) => ({ index: i + startIndex } as GridItem))\n}\nexport const gridSystem = u.system(\n ([\n { overscan, visibleRange, listBoundary },\n { scrollTop, viewportHeight, scrollBy, scrollTo, smoothScrollTargetReached, scrollContainerState },\n stateFlags,\n scrollSeek,\n { propsReady, didMount },\n { windowViewportRect, windowScrollTo, useWindowScroll, customScrollParent, windowScrollContainerState },\n ]) => {\n const totalCount = u.statefulStream(0)\n const initialItemCount = u.statefulStream(0)\n const gridState = u.statefulStream(INITIAL_GRID_STATE)\n const viewportDimensions = u.statefulStream({ height: 0, width: 0 })\n const itemDimensions = u.statefulStream({ height: 0, width: 0 })\n const scrollToIndex = u.stream()\n const scrollHeight = u.stream()\n const deviation = u.statefulStream(0)\n\n u.connect(\n u.pipe(\n didMount,\n u.withLatestFrom(initialItemCount),\n u.filter(([, count]) => count !== 0),\n u.map(([, count]) => {\n return {\n items: buildItems(0, count - 1),\n top: 0,\n bottom: 0,\n offsetBottom: 0,\n offsetTop: 0,\n itemHeight: 0,\n itemWidth: 0,\n }\n })\n ),\n gridState\n )\n\n u.connect(\n u.pipe(\n u.combineLatest(\n u.duc(totalCount),\n visibleRange,\n u.duc(itemDimensions, (prev, next) => prev && prev.width === next.width && prev.height === next.height)\n ),\n u.withLatestFrom(viewportDimensions),\n u.map(([[totalCount, [startOffset, endOffset], item], viewport]) => {\n const { height: itemHeight, width: itemWidth } = item\n const { width: viewportWidth } = viewport\n\n if (totalCount === 0 || viewportWidth === 0) {\n return INITIAL_GRID_STATE\n }\n\n if (itemWidth === 0) {\n return PROBE_GRID_STATE\n }\n\n const perRow = itemsPerRow(viewportWidth, itemWidth)\n\n let startIndex = perRow * floor(startOffset / itemHeight)\n let endIndex = perRow * ceil(endOffset / itemHeight) - 1\n endIndex = min(totalCount - 1, endIndex)\n startIndex = min(endIndex, max(0, startIndex))\n\n const items = buildItems(startIndex, endIndex)\n const { top, bottom } = gridLayout(viewport, item, items)\n const totalHeight = ceil(totalCount / perRow) * itemHeight\n const offsetBottom = totalHeight - bottom\n\n return { items, offsetTop: top, offsetBottom, top, bottom, itemHeight, itemWidth } as GridState\n })\n ),\n gridState\n )\n\n u.connect(\n u.pipe(\n viewportDimensions,\n u.map(({ height }) => height)\n ),\n viewportHeight\n )\n\n u.connect(\n u.pipe(\n u.combineLatest(viewportDimensions, itemDimensions, gridState),\n u.map(([viewportDimensions, item, { items }]) => {\n const { top, bottom } = gridLayout(viewportDimensions, item, items)\n\n return [top, bottom] as [number, number]\n }),\n u.distinctUntilChanged(tupleComparator)\n ),\n listBoundary\n )\n\n const endReached = u.streamFromEmitter(\n u.pipe(\n u.duc(gridState),\n u.filter(({ items }) => items.length > 0),\n u.withLatestFrom(totalCount),\n u.filter(([{ items }, totalCount]) => items[items.length - 1].index === totalCount - 1),\n u.map(([, totalCount]) => totalCount - 1),\n u.distinctUntilChanged()\n )\n )\n\n const startReached = u.streamFromEmitter(\n u.pipe(\n u.duc(gridState),\n u.filter(({ items }) => {\n return items.length > 0 && items[0].index === 0\n }),\n u.mapTo(0),\n u.distinctUntilChanged()\n )\n )\n\n const rangeChanged = u.streamFromEmitter(\n u.pipe(\n u.duc(gridState),\n u.filter(({ items }) => items.length > 0),\n u.map(({ items }) => {\n return {\n startIndex: items[0].index,\n endIndex: items[items.length - 1].index,\n }\n }),\n u.distinctUntilChanged(rangeComparator)\n )\n )\n\n u.connect(rangeChanged, scrollSeek.scrollSeekRangeChanged)\n\n u.connect(\n u.pipe(\n scrollToIndex,\n u.withLatestFrom(viewportDimensions, itemDimensions, totalCount),\n u.map(([location, viewport, item, totalCount]) => {\n const normalLocation = normalizeIndexLocation(location)\n const { align, behavior, offset } = normalLocation\n let index = normalLocation.index\n if (index === 'LAST') {\n index = totalCount - 1\n }\n\n index = max(0, index, min(totalCount - 1, index))\n\n let top = itemTop(viewport, item, index)\n\n if (align === 'end') {\n top = round(top - viewport.height + item.height)\n } else if (align === 'center') {\n top = round(top - viewport.height / 2 + item.height / 2)\n }\n\n if (offset) {\n top += offset\n }\n\n return { top, behavior }\n })\n ),\n scrollTo\n )\n\n const totalListHeight = u.statefulStreamFromEmitter(\n u.pipe(\n gridState,\n u.map((gridState) => {\n return gridState.offsetBottom + gridState.bottom\n })\n ),\n 0\n )\n\n u.connect(\n u.pipe(\n windowViewportRect,\n u.map((viewportInfo) => ({ width: viewportInfo.visibleWidth, height: viewportInfo.visibleHeight }))\n ),\n viewportDimensions\n )\n\n return {\n // input\n totalCount,\n viewportDimensions,\n itemDimensions,\n scrollTop,\n scrollHeight,\n overscan,\n scrollBy,\n scrollTo,\n scrollToIndex,\n smoothScrollTargetReached,\n windowViewportRect,\n windowScrollTo,\n useWindowScroll,\n customScrollParent,\n windowScrollContainerState,\n deviation,\n scrollContainerState,\n initialItemCount,\n ...scrollSeek,\n\n // output\n gridState,\n totalListHeight,\n ...stateFlags,\n startReached,\n endReached,\n rangeChanged,\n propsReady,\n }\n },\n u.tup(sizeRangeSystem, domIOSystem, stateFlagsSystem, scrollSeekSystem, propsReadySystem, windowScrollerSystem)\n)\n\nfunction gridLayout(viewport: ElementDimensions, item: ElementDimensions, items: GridItem[]): GridLayout {\n const { height: itemHeight } = item\n if (itemHeight === undefined || items.length === 0) {\n return { top: 0, bottom: 0 }\n }\n\n const top = itemTop(viewport, item, items[0].index)\n const bottom = itemTop(viewport, item, items[items.length - 1].index) + itemHeight\n return { top, bottom }\n}\n\nfunction itemTop(viewport: ElementDimensions, item: ElementDimensions, index: number) {\n const perRow = itemsPerRow(viewport.width, item.width)\n return floor(index / perRow) * item.height\n}\n\nfunction itemsPerRow(viewportWidth: number, itemWidth: number) {\n return max(1, floor(viewportWidth / itemWidth))\n}\n","import { RefHandle, systemToComponent } from '@virtuoso.dev/react-urx'\n\nimport * as u from '@virtuoso.dev/urx'\nimport * as React from 'react'\nimport { createElement, FC } from 'react'\nimport { gridSystem } from './gridSystem'\nimport useSize from './hooks/useSize'\nimport useWindowViewportRectRef from './hooks/useWindowViewportRect'\nimport { GridComponents, GridComputeItemKey, GridItemContent, GridRootProps } from './interfaces'\nimport { addDeprecatedAlias, buildScroller, buildWindowScroller, contextPropIfNotDomElement, identity, viewportStyle } from './List'\n\nconst gridComponentPropsSystem = u.system(() => {\n const itemContent = u.statefulStream>((index) => `Item ${index}`)\n const components = u.statefulStream({})\n const context = u.statefulStream(null)\n const itemClassName = u.statefulStream('virtuoso-grid-item')\n const listClassName = u.statefulStream('virtuoso-grid-list')\n const computeItemKey = u.statefulStream(identity)\n const scrollerRef = u.statefulStream<(ref: HTMLElement | null) => void>(u.noop)\n\n const distinctProp = (propName: K, defaultValue: GridComponents[K] | null | 'div' = null) => {\n return u.statefulStreamFromEmitter(\n u.pipe(\n components,\n u.map((components) => components[propName]),\n u.distinctUntilChanged()\n ),\n defaultValue\n )\n }\n\n return {\n context,\n itemContent,\n components,\n computeItemKey,\n itemClassName,\n listClassName,\n scrollerRef,\n ListComponent: distinctProp('List', 'div'),\n ItemComponent: distinctProp('Item', 'div'),\n ScrollerComponent: distinctProp('Scroller', 'div'),\n ScrollSeekPlaceholder: distinctProp('ScrollSeekPlaceholder', 'div'),\n }\n})\n\nconst combinedSystem = u.system(([gridSystem, gridComponentPropsSystem]) => {\n const deprecatedProps = {\n item: addDeprecatedAlias(gridComponentPropsSystem.itemContent, 'Rename the %citem%c prop to %citemContent.'),\n ItemContainer: u.stream(),\n ScrollContainer: u.stream(),\n ListContainer: u.stream(),\n emptyComponent: u.stream(),\n scrollSeek: u.stream(),\n }\n\n function deprecateComponentProp(stream: u.Stream, componentName: string, propName: string) {\n u.connect(\n u.pipe(\n stream,\n u.withLatestFrom(gridComponentPropsSystem.components),\n u.map(([comp, components]) => {\n console.warn(`react-virtuoso: ${propName} property is deprecated. Pass components.${componentName} instead.`)\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n return { ...components, [componentName]: comp }\n })\n ),\n gridComponentPropsSystem.components\n )\n }\n\n u.subscribe(deprecatedProps.scrollSeek, ({ placeholder, ...config }) => {\n console.warn(\n `react-virtuoso: scrollSeek property is deprecated. Pass scrollSeekConfiguration and specify the placeholder in components.ScrollSeekPlaceholder instead.`\n )\n u.publish(gridComponentPropsSystem.components, {\n ...u.getValue(gridComponentPropsSystem.components),\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n ScrollSeekPlaceholder: placeholder,\n })\n u.publish(gridSystem.scrollSeekConfiguration, config)\n })\n\n deprecateComponentProp(deprecatedProps.ItemContainer, 'Item', 'ItemContainer')\n deprecateComponentProp(deprecatedProps.ListContainer, 'List', 'ListContainer')\n deprecateComponentProp(deprecatedProps.ScrollContainer, 'Scroller', 'ScrollContainer')\n\n return { ...gridSystem, ...gridComponentPropsSystem, ...deprecatedProps }\n}, u.tup(gridSystem, gridComponentPropsSystem))\n\nconst GridItems: FC = React.memo(function GridItems() {\n const gridState = useEmitterValue('gridState')\n const listClassName = useEmitterValue('listClassName')\n const itemClassName = useEmitterValue('itemClassName')\n const itemContent = useEmitterValue('itemContent')\n const computeItemKey = useEmitterValue('computeItemKey')\n const isSeeking = useEmitterValue('isSeeking')\n const scrollHeightCallback = usePublisher('scrollHeight')\n const ItemComponent = useEmitterValue('ItemComponent')!\n const ListComponent = useEmitterValue('ListComponent')!\n const ScrollSeekPlaceholder = useEmitterValue('ScrollSeekPlaceholder')!\n const context = useEmitterValue('context')\n const itemDimensions = usePublisher('itemDimensions')\n\n const listRef = useSize((el) => {\n const scrollHeight = el.parentElement!.parentElement!.scrollHeight\n scrollHeightCallback(scrollHeight)\n const firstItem = el.firstChild as HTMLElement\n if (firstItem) {\n itemDimensions(firstItem.getBoundingClientRect())\n }\n })\n\n return createElement(\n ListComponent,\n {\n ref: listRef,\n className: listClassName,\n ...contextPropIfNotDomElement(ListComponent, context),\n style: { paddingTop: gridState.offsetTop, paddingBottom: gridState.offsetBottom },\n },\n gridState.items.map((item) => {\n const key = computeItemKey(item.index)\n return isSeeking\n ? createElement(ScrollSeekPlaceholder, {\n key,\n ...contextPropIfNotDomElement(ScrollSeekPlaceholder, context),\n index: item.index,\n height: gridState.itemHeight,\n width: gridState.itemWidth,\n })\n : createElement(\n ItemComponent,\n { ...contextPropIfNotDomElement(ItemComponent, context), className: itemClassName, 'data-index': item.index, key },\n itemContent(item.index, context)\n )\n })\n )\n})\n\nconst Viewport: FC = ({ children }) => {\n const viewportDimensions = usePublisher('viewportDimensions')\n\n const viewportRef = useSize((el) => {\n viewportDimensions(el.getBoundingClientRect())\n })\n\n return (\n
\n {children}\n
\n )\n}\n\nconst WindowViewport: FC = ({ children }) => {\n const windowViewportRect = usePublisher('windowViewportRect')\n const customScrollParent = useEmitterValue('customScrollParent')\n const viewportRef = useWindowViewportRectRef(windowViewportRect, customScrollParent)\n\n return (\n
\n {children}\n
\n )\n}\n\nconst GridRoot: FC = React.memo(function GridRoot({ ...props }) {\n const useWindowScroll = useEmitterValue('useWindowScroll')\n const customScrollParent = useEmitterValue('customScrollParent')\n const TheScroller = customScrollParent || useWindowScroll ? WindowScroller : Scroller\n const TheViewport = customScrollParent || useWindowScroll ? WindowViewport : Viewport\n\n return (\n \n \n \n \n \n )\n})\n\nconst {\n Component: Grid,\n usePublisher,\n useEmitterValue,\n useEmitter,\n} = systemToComponent(\n combinedSystem,\n {\n optional: {\n totalCount: 'totalCount',\n overscan: 'overscan',\n itemContent: 'itemContent',\n components: 'components',\n computeItemKey: 'computeItemKey',\n initialItemCount: 'initialItemCount',\n scrollSeekConfiguration: 'scrollSeekConfiguration',\n listClassName: 'listClassName',\n itemClassName: 'itemClassName',\n useWindowScroll: 'useWindowScroll',\n customScrollParent: 'customScrollParent',\n scrollerRef: 'scrollerRef',\n\n // deprecated\n item: 'item',\n ItemContainer: 'ItemContainer',\n ScrollContainer: 'ScrollContainer',\n ListContainer: 'ListContainer',\n scrollSeek: 'scrollSeek',\n },\n methods: {\n scrollTo: 'scrollTo',\n scrollBy: 'scrollBy',\n scrollToIndex: 'scrollToIndex',\n },\n events: {\n isScrolling: 'isScrolling',\n endReached: 'endReached',\n startReached: 'startReached',\n rangeChanged: 'rangeChanged',\n atBottomStateChange: 'atBottomStateChange',\n atTopStateChange: 'atTopStateChange',\n },\n },\n GridRoot\n)\n\nexport type foo = T extends React.ForwardRefExoticComponent> ? Handle : never\n\nexport type GridHandle = RefHandle\nexport { Grid }\n\nconst Scroller = buildScroller({ usePublisher, useEmitterValue, useEmitter })\nconst WindowScroller = buildWindowScroller({ usePublisher, useEmitterValue, useEmitter })\n","import { systemToComponent } from '@virtuoso.dev/react-urx'\nimport { map, pipe, statefulStream, system, tup, statefulStreamFromEmitter, distinctUntilChanged, noop, compose } from '@virtuoso.dev/urx'\nimport * as React from 'react'\nimport { createElement, FC } from 'react'\nimport useChangedListContentsSizes from './hooks/useChangedChildSizes'\nimport { ComputeItemKey, ItemContent, FixedHeaderContent, TableComponents, TableRootProps } from './interfaces'\nimport { listSystem } from './listSystem'\nimport { identity, buildScroller, buildWindowScroller, viewportStyle, contextPropIfNotDomElement } from './List'\nimport useSize from './hooks/useSize'\nimport { correctItemSize } from './utils/correctItemSize'\nimport useWindowViewportRectRef from './hooks/useWindowViewportRect'\n\nconst tableComponentPropsSystem = system(() => {\n const itemContent = statefulStream>((index: number) => Item ${index})\n const context = statefulStream(null)\n const fixedHeaderContent = statefulStream(null)\n const components = statefulStream({})\n const computeItemKey = statefulStream>(identity)\n const scrollerRef = statefulStream<(ref: HTMLElement | Window | null) => void>(noop)\n\n const distinctProp = (\n propName: K,\n defaultValue: TableComponents[K] | null | 'thead' | 'table' | 'tbody' | 'tr' | 'div' = null\n ) => {\n return statefulStreamFromEmitter(\n pipe(\n components,\n map((components) => components[propName]),\n distinctUntilChanged()\n ),\n defaultValue\n )\n }\n\n return {\n context,\n itemContent,\n fixedHeaderContent,\n components,\n computeItemKey,\n scrollerRef,\n TableComponent: distinctProp('Table', 'table'),\n TableHeadComponent: distinctProp('TableHead', 'thead'),\n TableBodyComponent: distinctProp('TableBody', 'tbody'),\n TableRowComponent: distinctProp('TableRow', 'tr'),\n ScrollerComponent: distinctProp('Scroller', 'div'),\n EmptyPlaceholder: distinctProp('EmptyPlaceholder'),\n ScrollSeekPlaceholder: distinctProp('ScrollSeekPlaceholder'),\n }\n})\n\nconst combinedSystem = system(([listSystem, propsSystem]) => {\n return { ...listSystem, ...propsSystem }\n}, tup(listSystem, tableComponentPropsSystem))\n\nconst DefaultScrollSeekPlaceholder = ({ height }: { height: number }) => (\n \n \n \n)\n\nconst FillerRow = ({ height }: { height: number }) => (\n \n \n \n)\n\nexport const Items = React.memo(function VirtuosoItems() {\n const listState = useEmitterValue('listState')\n const deviation = useEmitterValue('deviation')\n const sizeRanges = usePublisher('sizeRanges')\n const useWindowScroll = useEmitterValue('useWindowScroll')\n const customScrollParent = useEmitterValue('customScrollParent')\n const windowScrollContainerStateCallback = usePublisher('windowScrollContainerState')\n const _scrollContainerStateCallback = usePublisher('scrollContainerState')\n const scrollContainerStateCallback =\n customScrollParent || useWindowScroll ? windowScrollContainerStateCallback : _scrollContainerStateCallback\n const itemContent = useEmitterValue('itemContent')\n const trackItemSizes = useEmitterValue('trackItemSizes')\n const itemSize = useEmitterValue('itemSize')\n const log = useEmitterValue('log')\n\n const ref = useChangedListContentsSizes(sizeRanges, itemSize, trackItemSizes, scrollContainerStateCallback, log, customScrollParent)\n const EmptyPlaceholder = useEmitterValue('EmptyPlaceholder')\n const ScrollSeekPlaceholder = useEmitterValue('ScrollSeekPlaceholder') || DefaultScrollSeekPlaceholder\n const TableBodyComponent = useEmitterValue('TableBodyComponent')!\n const TableRowComponent = useEmitterValue('TableRowComponent')!\n const computeItemKey = useEmitterValue('computeItemKey')\n const isSeeking = useEmitterValue('isSeeking')\n const paddingTopAddition = useEmitterValue('paddingTopAddition')\n const firstItemIndex = useEmitterValue('firstItemIndex')\n const statefulTotalCount = useEmitterValue('statefulTotalCount')\n const context = useEmitterValue('context')\n\n if (statefulTotalCount === 0 && EmptyPlaceholder) {\n return createElement(EmptyPlaceholder, contextPropIfNotDomElement(EmptyPlaceholder, context))\n }\n\n const paddingTop = listState.offsetTop + paddingTopAddition + deviation\n const paddingBottom = listState.offsetBottom\n\n const paddingTopEl = paddingTop > 0 ? : null\n\n const paddingBottomEl = paddingBottom > 0 ? : null\n\n const items = listState.items.map((item) => {\n const index = item.originalIndex!\n const key = computeItemKey(index + firstItemIndex, item.data, context)\n\n if (isSeeking) {\n return createElement(ScrollSeekPlaceholder, {\n ...contextPropIfNotDomElement(ScrollSeekPlaceholder, context),\n key,\n index: item.index,\n height: item.size,\n type: item.type || 'item',\n })\n }\n return createElement(\n TableRowComponent,\n {\n ...contextPropIfNotDomElement(TableRowComponent, context),\n key,\n 'data-index': index,\n 'data-known-size': item.size,\n 'data-item-index': item.index,\n style: { overflowAnchor: 'none' },\n } as any,\n itemContent(item.index, item.data, context)\n )\n })\n\n return createElement(\n TableBodyComponent,\n { ref, 'data-test-id': 'virtuoso-item-list', ...contextPropIfNotDomElement(TableBodyComponent, context) },\n [paddingTopEl, ...items, paddingBottomEl]\n )\n})\n\nexport interface Hooks {\n usePublisher: typeof usePublisher\n useEmitterValue: typeof useEmitterValue\n useEmitter: typeof useEmitter\n}\n\nconst Viewport: FC = ({ children }) => {\n const viewportHeight = usePublisher('viewportHeight')\n const viewportRef = useSize(compose(viewportHeight, (el) => correctItemSize(el, 'height')))\n\n return (\n
\n {children}\n
\n )\n}\n\nconst WindowViewport: FC = ({ children }) => {\n const windowViewportRect = usePublisher('windowViewportRect')\n const customScrollParent = useEmitterValue('customScrollParent')\n const viewportRef = useWindowViewportRectRef(windowViewportRect, customScrollParent)\n\n return (\n
\n {children}\n
\n )\n}\n\nconst TableRoot: FC = React.memo(function TableVirtuosoRoot(props) {\n const useWindowScroll = useEmitterValue('useWindowScroll')\n const customScrollParent = useEmitterValue('customScrollParent')\n const fixedHeaderHeight = usePublisher('fixedHeaderHeight')\n const fixedHeaderContent = useEmitterValue('fixedHeaderContent')\n const context = useEmitterValue('context')\n const theadRef = useSize(compose(fixedHeaderHeight, (el) => correctItemSize(el, 'height')))\n const TheScroller = customScrollParent || useWindowScroll ? WindowScroller : Scroller\n const TheViewport = customScrollParent || useWindowScroll ? WindowViewport : Viewport\n const TheTable = useEmitterValue('TableComponent')\n const TheTHead = useEmitterValue('TableHeadComponent')\n\n const theHead = fixedHeaderContent\n ? React.createElement(\n TheTHead!,\n {\n key: 'TableHead',\n style: { zIndex: 1, position: 'sticky', top: 0 },\n ref: theadRef,\n ...contextPropIfNotDomElement(TheTHead, context),\n } as any,\n fixedHeaderContent()\n )\n : null\n\n return (\n \n \n {React.createElement(TheTable!, { style: { borderSpacing: 0 }, ...contextPropIfNotDomElement(TheTable, context) } as any, [\n theHead,\n ,\n ])}\n \n \n )\n})\n\nexport const {\n Component: Table,\n usePublisher,\n useEmitterValue,\n useEmitter,\n} = systemToComponent(\n combinedSystem,\n {\n required: {},\n optional: {\n context: 'context',\n followOutput: 'followOutput',\n firstItemIndex: 'firstItemIndex',\n itemContent: 'itemContent',\n fixedHeaderContent: 'fixedHeaderContent',\n overscan: 'overscan',\n increaseViewportBy: 'increaseViewportBy',\n totalCount: 'totalCount',\n topItemCount: 'topItemCount',\n initialTopMostItemIndex: 'initialTopMostItemIndex',\n components: 'components',\n groupCounts: 'groupCounts',\n atBottomThreshold: 'atBottomThreshold',\n computeItemKey: 'computeItemKey',\n defaultItemHeight: 'defaultItemHeight',\n fixedItemHeight: 'fixedItemHeight',\n itemSize: 'itemSize',\n scrollSeekConfiguration: 'scrollSeekConfiguration',\n data: 'data',\n initialItemCount: 'initialItemCount',\n initialScrollTop: 'initialScrollTop',\n alignToBottom: 'alignToBottom',\n useWindowScroll: 'useWindowScroll',\n customScrollParent: 'customScrollParent',\n scrollerRef: 'scrollerRef',\n logLevel: 'logLevel',\n },\n methods: {\n scrollToIndex: 'scrollToIndex',\n scrollIntoView: 'scrollIntoView',\n scrollTo: 'scrollTo',\n scrollBy: 'scrollBy',\n },\n events: {\n isScrolling: 'isScrolling',\n endReached: 'endReached',\n startReached: 'startReached',\n rangeChanged: 'rangeChanged',\n atBottomStateChange: 'atBottomStateChange',\n atTopStateChange: 'atTopStateChange',\n totalListHeightChanged: 'totalListHeightChanged',\n itemsRendered: 'itemsRendered',\n groupIndices: 'groupIndices',\n },\n },\n TableRoot\n)\n\nconst Scroller = buildScroller({ usePublisher, useEmitterValue, useEmitter })\nconst WindowScroller = buildWindowScroller({ usePublisher, useEmitterValue, useEmitter })\n","import { ReactElement, Ref } from 'react'\n\nimport {\n Components,\n ComputeItemKey,\n FollowOutput,\n GridComponents,\n GridComputeItemKey,\n GridItemContent,\n GroupContent,\n GroupItemContent,\n IndexLocationWithAlign,\n ItemContent,\n ListItem,\n ListRange,\n ScrollSeekConfiguration,\n TableComponents,\n FixedHeaderContent,\n ScrollIntoViewLocation,\n ListRootProps,\n GridRootProps,\n} from './interfaces'\nimport { List } from './List'\nimport { Grid } from './Grid'\nimport { Table } from './Table'\n\nexport interface VirtuosoProps extends ListRootProps {\n /**\n * The total amount of items to be rendered.\n */\n totalCount?: number\n\n /**\n * The data items to be rendered. If data is set, the total count will be inferred from the length of the array.\n */\n data?: readonly D[]\n\n /**\n * Additional context available in the custom components and content callbacks\n */\n context?: C\n\n /**\n * *The property accepts pixel values.*\n *\n * Set the overscan property to make the component \"chunk\" the rendering of new items on scroll.\n * The property causes the component to render more items than the necessary, but reduces the re-renders on scroll.\n * Setting `{ main: number, reverse: number }` lets you extend the list in both the main and the reverse scrollable directions.\n * See the `increaseViewportBy` property for a similar behavior (equivalent to the `overscan` in react-window).\n *\n */\n overscan?: number | { main: number; reverse: number }\n\n /**\n *\n * *The property accepts pixel values.*\n *\n * Set the increaseViewportBy property to artificially increase the viewport size, causing items to be rendered before outside of the viewport.\n * The property causes the component to render more items than the necessary, but can help with slow loading content.\n * Using `{ top?: number, bottom?: number }` lets you set the increase for each end separately.\n *\n */\n increaseViewportBy?: number | { top: number; bottom: number }\n\n /**\n * Set the amount of items to remain fixed at the top of the list.\n *\n * For a header that scrolls away when scrolling, check the `components.Header` property.\n */\n topItemCount?: number\n\n /**\n * Set to a value between 0 and totalCount - 1 to make the list start scrolled to that item.\n * Pass in an object to achieve additional effects similar to `scrollToIndex`.\n */\n initialTopMostItemIndex?: number | IndexLocationWithAlign\n\n /**\n * Set this value to offset the initial location of the list.\n * Warning: using this property will still run a render cycle at the scrollTop: 0 list window.\n * If possible, avoid using it and stick to `initialTopMostItemIndex` instead.\n */\n initialScrollTop?: number\n\n /**\n * Use for server-side rendering - if set, the list will render the specified amount of items\n * regardless of the container / item size.\n */\n initialItemCount?: number\n\n /**\n * Use the `components` property for advanced customization of the elements rendered by the list.\n */\n components?: Components\n\n /**\n * Set the callback to specify the contents of the item.\n */\n itemContent?: ItemContent\n\n /**\n * If specified, the component will use the function to generate the `key` property for each list item.\n */\n computeItemKey?: ComputeItemKey\n\n /**\n * By default, the component assumes the default item height from the first rendered item (rendering it as a \"probe\").\n *\n * If the first item turns out to be an outlier (very short or tall), the rest of the rendering will be slower,\n * as multiple passes of rendering should happen for the list to fill the viewport.\n *\n * Setting `defaultItemHeight` causes the component to skip the \"probe\" rendering and use the property\n * value as default height instead.\n */\n defaultItemHeight?: number\n\n /**\n * Allows customizing the height/width calculation of `Item` elements.\n *\n * The default implementation reads `el.getBoundingClientRect().height` and `el.getBoundingClientRect().width`.\n */\n itemSize?: (el: HTMLElement, field: 'offsetHeight' | 'offsetWidth') => number\n\n /**\n * Can be used to improve performance if the rendered items are of known size.\n * Setting it causes the component to skip item measurements.\n */\n fixedItemHeight?: number\n\n /**\n * Use to display placeholders if the user scrolls fast through the list.\n *\n * Set `components.ScrollSeekPlaceholder` to change the placeholder content.\n */\n scrollSeekConfiguration?: ScrollSeekConfiguration | false\n\n /**\n * If set to `true`, the list automatically scrolls to bottom if the total count is changed.\n * Set to `\"smooth\"` for an animated scrolling.\n *\n * By default, `followOutput` scrolls down only if the list is already at the bottom.\n * To implement an arbitrary logic behind that, pass a function:\n *\n * ```tsx\n * {\n * if (expression) {\n * return 'smooth' // can be 'auto' or false to avoid scrolling\n * } else {\n * return false\n * }\n * }} />\n * ```\n */\n followOutput?: FollowOutput\n\n /**\n * Set to customize the wrapper tag for the header and footer components (default is `div`).\n */\n headerFooterTag?: string\n\n /**\n * Use when implementing inverse infinite scrolling - decrease the value this property\n * in combination with `data` or `totalCount` to prepend items to the top of the list.\n *\n * Warning: the firstItemIndex should **be a positive number**, based on the total amount of items to be displayed.\n */\n firstItemIndex?: number\n\n /**\n * Called when the list starts/stops scrolling.\n */\n isScrolling?: (isScrolling: boolean) => void\n\n /**\n * Gets called when the user scrolls to the end of the list.\n * Receives the last item index as an argument. Can be used to implement endless scrolling.\n */\n endReached?: (index: number) => void\n\n /**\n * Called when the user scrolls to the start of the list.\n */\n startReached?: (index: number) => void\n\n /**\n * Called with the new set of items each time the list items are rendered due to scrolling.\n */\n rangeChanged?: (range: ListRange) => void\n\n /**\n * Called with true / false when the list has reached the bottom / gets scrolled up.\n * Can be used to load newer items, like `tail -f`.\n */\n atBottomStateChange?: (atBottom: boolean) => void\n\n /**\n * Called with `true` / `false` when the list has reached the top / gets scrolled down.\n */\n atTopStateChange?: (atTop: boolean) => void\n\n /**\n * Called when the total list height is changed due to new items or viewport resize.\n */\n totalListHeightChanged?: (height: number) => void\n\n /**\n * Called with the new set of items each time the list items are rendered due to scrolling.\n */\n itemsRendered?: (items: ListItem[]) => void\n\n /**\n * Setting `alignToBottom` to `true` aligns the items to the bottom of the list if the list is shorter than the viewport.\n * Use `followOutput` property to keep the list aligned when new items are appended.\n */\n alignToBottom?: boolean\n\n /**\n * Uses the document scroller rather than wrapping the list in its own.\n */\n useWindowScroll?: boolean\n\n /**\n * Pass a reference to a scrollable parent element, so that the list won't wrap in its own.\n */\n customScrollParent?: HTMLElement\n\n /**\n * Provides access to the root DOM element\n */\n scrollerRef?: (ref: HTMLElement | Window | null) => any\n\n /**\n * By default `4`. Redefine to change how much away from the bottom the scroller can be before the list is not considered not at bottom.\n */\n atBottomThreshold?: number\n}\n\nexport interface GroupedVirtuosoProps extends Omit, 'totalCount' | 'itemContent'> {\n /**\n * Specifies the amount of items in each group (and, actually, how many groups are there).\n * For example, passing [20, 30] will display 2 groups with 20 and 30 items each.\n */\n groupCounts?: number[]\n\n /**\n * Specifies how each each group header gets rendered. The callback receives the zero-based index of the group.\n */\n groupContent?: GroupContent\n\n /**\n * Specifies how each each item gets rendered.\n */\n itemContent?: GroupItemContent\n}\n\nexport interface TableVirtuosoProps extends Omit, 'components' | 'headerFooterTag' | 'topItemCount'> {\n /**\n * Use the `components` property for advanced customization of the elements rendered by the table.\n */\n components?: TableComponents\n /**\n * Set the contents of the table header.\n */\n fixedHeaderContent?: FixedHeaderContent\n\n /**\n * The total amount of items to be rendered.\n */\n totalCount?: number\n\n /**\n * The data items to be rendered. If data is set, the total count will be inferred from the length of the array.\n */\n data?: readonly D[]\n\n /**\n * Set the overscan property to make the component \"chunk\" the rendering of new items on scroll.\n * The property causes the component to render more items than the necessary, but reduces the re-renders on scroll.\n * Setting `{ main: number, reverse: number }` lets you extend the list in both the main and the reverse scrollable directions.\n * See the `increaseViewportBy` property for a similar behavior (equivalent to the `overscan` in `react-window`).\n */\n overscan?: number | { main: number; reverse: number }\n\n /**\n * Set the increaseViewportBy property to artificially increase the viewport size, causing items to be rendered before outside of the viewport.\n * The property causes the component to render more items than the necessary, but can help with slow loading content.\n * Using `{ top?: number, bottom?: number }` lets you set the increase for each end separately.\n */\n increaseViewportBy?: number | { top: number; bottom: number }\n\n /**\n * Set to a value between 0 and totalCount - 1 to make the list start scrolled to that item.\n */\n initialTopMostItemIndex?: number\n\n /**\n * Set this value to offset the initial location of the list.\n * Warning: using this property will still run a render cycle at the scrollTop: 0 list window.\n * If possible, avoid using it and stick to `initialTopMostItemIndex` instead.\n */\n initialScrollTop?: number\n\n /**\n * Use for server-side rendering - if set, the list will render the specified amount of items\n * regardless of the container / item size.\n */\n initialItemCount?: number\n\n /**\n * Set the callback to specify the contents of the item.\n */\n itemContent?: ItemContent\n\n /**\n * If specified, the component will use the function to generate the `key` property for each list item.\n */\n computeItemKey?: ComputeItemKey\n\n /**\n * By default, the component assumes the default item height from the first rendered item (rendering it as a \"probe\").\n *\n * If the first item turns out to be an outlier (very short or tall), the rest of the rendering will be slower,\n * as multiple passes of rendering should happen for the list to fill the viewport.\n *\n * Setting `defaultItemHeight` causes the component to skip the \"probe\" rendering and use the property\n * value as default height instead.\n */\n defaultItemHeight?: number\n\n /**\n * Allows customizing the height/width calculation of `Item` elements.\n *\n * The default implementation reads `el.getBoundingClientRect().height` and `el.getBoundingClientRect().width`.\n */\n itemSize?: (el: HTMLElement, field: 'offsetHeight' | 'offsetWidth') => number\n\n /**\n * Can be used to improve performance if the rendered items are of known size.\n * Setting it causes the component to skip item measurements.\n */\n fixedItemHeight?: number\n\n /**\n * Use to display placeholders if the user scrolls fast through the list.\n *\n * Set `components.ScrollSeekPlaceholder` to change the placeholder content.\n */\n scrollSeekConfiguration?: ScrollSeekConfiguration | false\n\n /**\n * If set to `true`, the list automatically scrolls to bottom if the total count is changed.\n * Set to `\"smooth\"` for an animated scrolling.\n *\n * By default, `followOutput` scrolls down only if the list is already at the bottom.\n * To implement an arbitrary logic behind that, pass a function:\n *\n * ```tsx\n * {\n * if (expression) {\n * return 'smooth' // can be 'auto' or false to avoid scrolling\n * } else {\n * return false\n * }\n * }} />\n * ```\n */\n followOutput?: FollowOutput\n\n /**\n * Use when implementing inverse infinite scrolling - decrease the value this property\n * in combination with `data` or `totalCount` to prepend items to the top of the list.\n *\n * Warning: the firstItemIndex should **be a positive number**, based on the total amount of items to be displayed.\n */\n firstItemIndex?: number\n\n /**\n * Called when the list starts/stops scrolling.\n */\n isScrolling?: (isScrolling: boolean) => void\n\n /**\n * Gets called when the user scrolls to the end of the list.\n * Receives the last item index as an argument. Can be used to implement endless scrolling.\n */\n endReached?: (index: number) => void\n\n /**\n * Called when the user scrolls to the start of the list.\n */\n startReached?: (index: number) => void\n\n /**\n * Called with the new set of items each time the list items are rendered due to scrolling.\n */\n rangeChanged?: (range: ListRange) => void\n\n /**\n * Called with true / false when the list has reached the bottom / gets scrolled up.\n * Can be used to load newer items, like `tail -f`.\n */\n atBottomStateChange?: (atBottom: boolean) => void\n\n /**\n * Called with `true` / `false` when the list has reached the top / gets scrolled down.\n */\n atTopStateChange?: (atTop: boolean) => void\n\n /**\n * Called when the total list height is changed due to new items or viewport resize.\n */\n totalListHeightChanged?: (height: number) => void\n\n /**\n * Called with the new set of items each time the list items are rendered due to scrolling.\n */\n itemsRendered?: (items: ListItem[]) => void\n\n /**\n * Setting `alignToBottom` to `true` aligns the items to the bottom of the list if the list is shorter than the viewport.\n * Use `followOutput` property to keep the list aligned when new items are appended.\n */\n alignToBottom?: boolean\n\n /**\n * Uses the document scroller rather than wrapping the list in its own.\n */\n useWindowScroll?: boolean\n\n /**\n * Pass a reference to a scrollable parent element, so that the table won't wrap in its own.\n */\n customScrollParent?: HTMLElement\n\n /**\n * Provides access to the root DOM element\n */\n scrollerRef?: (ref: HTMLElement | Window | null) => any\n\n /**\n * By default `4`. Redefine to change how much away from the bottom the scroller can be before the list is not considered not at bottom.\n */\n atBottomThreshold?: number\n}\n\nexport interface VirtuosoGridProps extends GridRootProps {\n /**\n * The total amount of items to be rendered.\n */\n totalCount: number\n\n /**\n * Set the callback to specify the contents of the item.\n */\n itemContent?: GridItemContent\n\n /**\n * Use the `components` property for advanced customization of the elements rendered by the list.\n */\n components?: GridComponents\n\n /**\n * Set the overscan property to make the component \"chunk\" the rendering of new items on scroll.\n * The property causes the component to render more items than the necessary, but reduces the re-renders on scroll.\n * Setting `{ main: number, reverse: number }` lets you extend the list in both the main and the reverse scrollable directions.\n */\n overscan?: number | { main: number; reverse: number }\n\n /**\n * If specified, the component will use the function to generate the `key` property for each list item.\n */\n computeItemKey?: GridComputeItemKey\n\n /**\n * Use to display placeholders if the user scrolls fast through the list.\n *\n * Set `components.ScrollSeekPlaceholder` to change the placeholder content.\n */\n scrollSeekConfiguration?: ScrollSeekConfiguration | false\n\n /**\n * Called when the list starts/stops scrolling.\n */\n isScrolling?: (isScrolling: boolean) => void\n\n /**\n * Gets called when the user scrolls to the end of the list.\n * Receives the last item index as an argument. Can be used to implement endless scrolling.\n */\n endReached?: (index: number) => void\n\n /**\n * Called when the user scrolls to the start of the list.\n */\n startReached?: (index: number) => void\n\n /**\n * Called with the new set of items each time the list items are rendered due to scrolling.\n */\n rangeChanged?: (range: ListRange) => void\n\n /**\n * Called with true / false when the list has reached the bottom / gets scrolled up.\n * Can be used to load newer items, like `tail -f`.\n */\n atBottomStateChange?: (atBottom: boolean) => void\n\n /**\n * Called with `true` / `false` when the list has reached the top / gets scrolled down.\n */\n atTopStateChange?: (atTop: boolean) => void\n\n /**\n * Provides access to the root DOM element\n */\n scrollerRef?: (ref: HTMLElement | null) => any\n\n /**\n * Sets the className for the list DOM element\n */\n listClassName?: string\n\n /**\n * Sets the grid items' className\n */\n itemClassName?: string\n\n /**\n * Uses the document scroller rather than wrapping the grid in its own.\n */\n useWindowScroll?: boolean\n\n /**\n * Pass a reference to a scrollable parent element, so that the grid won't wrap in its own.\n */\n customScrollParent?: HTMLElement\n}\n\nexport interface VirtuosoHandle {\n /**\n * Scrolls the component to the specified item index. See {@link IndexLocationWithAlign} for more options.\n */\n scrollToIndex(location: number | IndexLocationWithAlign): void\n /**\n * Scrolls the item into view if necessary. See [the website example](http://virtuoso.dev/keyboard-navigation/) for an implementation.\n */\n scrollIntoView(location: ScrollIntoViewLocation): void\n /**\n * Scrolls the component to the specified location. See [ScrollToOptions (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/ScrollToOptions)\n */\n scrollTo(location: ScrollToOptions): void\n /**\n * Scrolls the component with the specified amount. See [ScrollToOptions (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/ScrollToOptions)\n */\n scrollBy(location: ScrollToOptions): void\n}\n\nexport interface GroupedVirtuosoHandle {\n scrollToIndex(location: number | IndexLocationWithAlign): void\n scrollTo(location: ScrollToOptions): void\n scrollBy(location: ScrollToOptions): void\n}\n\nexport interface VirtuosoGridHandle {\n scrollToIndex(location: number | IndexLocationWithAlign): void\n scrollTo(location: ScrollToOptions): void\n scrollBy(location: ScrollToOptions): void\n}\n\nexport interface TableVirtuosoHandle {\n scrollIntoView(location: ScrollIntoViewLocation): void\n scrollToIndex(location: number | IndexLocationWithAlign): void\n scrollTo(location: ScrollToOptions): void\n scrollBy(location: ScrollToOptions): void\n}\n\nexport const Virtuoso = List as (\n props: VirtuosoProps & { ref?: Ref }\n) => ReactElement\n\nexport const GroupedVirtuoso = List as (\n props: GroupedVirtuosoProps & { ref?: Ref }\n) => ReactElement\n\nexport const TableVirtuoso = Table as (\n props: TableVirtuosoProps & { ref?: Ref }\n) => ReactElement\n\nexport const VirtuosoGrid = Grid as (\n props: VirtuosoGridProps & { ref?: Ref }\n) => ReactElement\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Box from '@mui/material/Box';\nimport TreeView from '@mui/lab/TreeView';\nimport TreeItem, { treeItemClasses } from '@mui/lab/TreeItem';\nimport Typography from '@mui/material/Typography';\nimport Label from '@mui/icons-material/Label';\nimport ForumIcon from '@mui/icons-material/Forum';\nimport LocalOfferIcon from '@mui/icons-material/LocalOffer';\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport ArrowRightIcon from '@mui/icons-material/ArrowRight';\nimport { useTheme, Grid, Divider, Tooltip, Link as MuiLink, Button, Modal, IconButton, Checkbox, useMediaQuery, Menu, MenuItem, Avatar } from '@mui/material';\nimport ChatIcon from '@mui/icons-material/Chat';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemAvatar from '@mui/material/ListItemAvatar';\nimport ListItemText from '@mui/material/ListItemText';\nimport moment from 'moment';\nimport { useNavigate } from 'react-router-dom';\nimport { useState, useEffect, useContext } from 'react';\nimport { SmallAvatarWrapper, useFetchCloud, MainContext } from 'kerberus-components';\nimport DashboardIcon from '@mui/icons-material/Dashboard';\nimport DashboardModalCompany from './DashboardModalCompany.js';\nimport DashboardModalSocialGroup from './DashboardModalSocialGroup.js';\nimport MarkChatReadIcon from '@mui/icons-material/MarkChatRead';\nimport useSWR, { useSWRConfig } from 'swr';\nimport isEqual from 'lodash-es/isEqual';\nimport sortBy from 'lodash-es/sortBy';\nimport { toast } from \"react-toastify\";\nimport HistoryIcon from '@mui/icons-material/History';\nimport LibraryAddCheckIcon from '@mui/icons-material/LibraryAddCheck';\nimport ConfirmationDialog from './ConfirmationDialog.js';\nimport MoveDownIcon from '@mui/icons-material/MoveDown';\nimport { Virtuoso } from 'react-virtuoso';\nimport ApartmentIcon from '@mui/icons-material/Apartment';\nimport GroupIcon from '@mui/icons-material/Group';\nimport PersonIcon from '@mui/icons-material/Person';\nimport SupportAgentIcon from '@mui/icons-material/SupportAgent';\n\n/* import PendingIcon from '@mui/icons-material/Pending';\n\nconst ScrollSeekPlaceholder = () => (\n \n \n \n \n \n \n); */\n\nconst style = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: \"85%\",\n height: \"90%\",\n bgcolor: 'background.paper',\n border: '2px solid #000',\n boxShadow: 24,\n};\n\n/*\n# Valid types:\n# 1: User joined company\n# 2: User joined social group\n# 3: User alarm triggered\n# 4: Invited to social group\n# 5: Pending social group request\n# 6: Social group settings changed\n# 7: Social group dashboard changed\n# 8: Company dashboard changed\n# 9: Social group public state changed\n# 10: User left company\n# 11: Emoji message\n# 12: Respa message\n# 13: Custom Operator/Admin Message\n*/\n\nconst StyledTreeItemRoot = styled(TreeItem)(({ theme }) => ({\n color: theme.palette.text.secondary,\n [`& .${treeItemClasses.content}`]: {\n color: theme.palette.text.secondary,\n borderTopRightRadius: theme.spacing(2),\n borderBottomRightRadius: theme.spacing(2),\n paddingRight: theme.spacing(1),\n fontWeight: theme.typography.fontWeightMedium,\n '&.Mui-expanded': {\n fontWeight: theme.typography.fontWeightRegular,\n },\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n '&.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused': {\n backgroundColor: `var(--tree-view-bg-color, ${theme.palette.action.selected})`,\n color: 'var(--tree-view-color)',\n },\n [`& .${treeItemClasses.label}`]: {\n fontWeight: 'inherit',\n color: 'inherit',\n },\n },\n [`& .${treeItemClasses.group}`]: {\n marginLeft: 0,\n [`& .${treeItemClasses.content}`]: {\n paddingLeft: theme.spacing(0),\n },\n },\n}));\n\nfunction StyledTreeItem(props) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n /* const isMedium = useMediaQuery(theme.breakpoints.down('md'));\n const isXl = useMediaQuery(theme.breakpoints.down('xl')); */\n const isLarge = useMediaQuery(theme.breakpoints.down('lg'));\n\n\n const {\n bgColor,\n color,\n labelIcon: LabelIcon,\n labelInfo,\n labelText,\n ...other\n } = props;\n\n return (\n \n \n {!isSmall &&\n <>\n \n {labelText}\n \n {!isLarge &&\n \n {labelInfo}\n \n }\n \n }\n \n }\n style={{\n '--tree-view-color': color,\n '--tree-view-bg-color': bgColor,\n }}\n {...other}\n />\n );\n}\n\nStyledTreeItem.propTypes = {\n bgColor: PropTypes.string,\n color: PropTypes.string,\n labelIcon: PropTypes.elementType.isRequired,\n labelInfo: PropTypes.number,\n labelText: PropTypes.string.isRequired,\n};\n\n\nexport default function ActivityLog(props) {\n const { fetchCloud } = useFetchCloud();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const navigate = useNavigate();\n const [activityLog, setActivityLog] = useState([]);\n const [activeFilters, setActiveFilters] = useState([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]);\n const [openCompany, setOpenCompany] = useState(false);\n const [openGroup, setOpenGroup] = useState(false);\n const [dashboardContent, setDashboardContent] = useState(null);\n const { user } = useContext(MainContext);\n const newNotif = activityLog.length - activityLog.map(item => item.id).reduce((a, c) => a + user.read_logs.includes(c), 0);\n const { data: activitylogData } = useSWR(props.groupId ? `users/activitylog/?social_group=${props.groupId}` : 'users/activitylog/', {\n refreshInterval: 60000\n });\n const { mutate } = useSWRConfig();\n const [toHistory, setToHistory] = useState([]);\n const [openHistory, setOpenHistory] = useState(false);\n const [history, setHistory] = useState(false);\n\n const [openTypesMenu, setOpenTypesMenu] = useState(null);\n const openTypesMobile = Boolean(openTypesMenu);\n const handleClickTypes = (event) => {\n setOpenTypesMenu(event.currentTarget);\n };\n const handleCloseTypes = () => {\n setOpenTypesMenu(null);\n };\n\n const [openHistoryMenu, setOpenHistoryMenu] = useState(null);\n const openHistoryMobile = Boolean(openHistoryMenu);\n const handleClickHistory = (event) => {\n setOpenHistoryMenu(event.currentTarget);\n };\n const handleCloseHistory = () => {\n setOpenHistoryMenu(null);\n };\n\n useEffect(() => {\n if (activitylogData) {\n setActivityLog(activitylogData);\n }\n }, [activitylogData]);\n\n const handleGroupRequest = async (request_id, accept) => {\n try {\n await fetchCloud('users/handle_group_request', 'POST', {\n request_id: request_id,\n accept: accept\n });\n }\n catch (err) {\n console.error(err);\n }\n };\n\n const pushToHistory = (event) => {\n var historyList = [...toHistory];\n if (event.target.checked) {\n historyList = [...toHistory, parseInt(event.target.value)];\n } else {\n historyList.splice(toHistory.indexOf(parseInt(event.target.value)), 1);\n }\n setToHistory(historyList);\n };\n\n const pushAllToHistory = () => {\n var activeLogs = activityLog.length > 0 && activityLog.filter(item => !user.history_logs.includes(item.id) && activeFilters.includes(item.type)).map(item => item.id);\n setToHistory(activeLogs);\n };\n\n const handleRead = async (e) => {\n await fetchCloud('users/set_read_logs', 'POST', {\n one: e\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n const handleHistoryMany = async (e) => {\n await fetchCloud('users/set_history_logs', 'POST', {\n many: toHistory\n });\n handleReadMany();\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n const handleReadMany = async () => {\n await fetchCloud('users/set_read_logs', 'POST', {\n many: toHistory\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n const handleReadAll = async () => {\n await fetchCloud('users/set_read_logs', 'POST', {\n all: true\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n /* auto move single or all logs to history */\n\n /*\n const handleHistory = async (e) => {\n await fetchCloud('users/set_history_logs', 'POST', {\n one: e\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n const handleHistoryAll = async (e) => {\n await fetchCloud('users/set_history_logs', 'POST', {\n all: true\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }; */\n\n /* unread notfications & remove all from history */\n\n /* const handleUnread = async (e) => {\n await fetchCloud('users/set_read_logs', 'POST', {\n remove: e\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n const handleUnreadAll = async () => {\n await fetchCloud('users/set_read_logs', 'POST', {\n empty: true\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n const handleHistoryRemoveMany = async (e) => {\n await fetchCloud('users/set_history_logs', 'POST', {\n remove_many: user.history_logs\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n */\n\n const contentHistory = (\n <>\n \n \n Move to history\n \n \n Logs selected: {toHistory?.length}\n \n
\n \n \n All selected logs are moved to the history section on the left side of this activity log.\n You can then view them there and they will no longer appear here in the main view.\n However, you cannot move logs from history back to the main view.\n \n \n\n );\n\n const virtList = activityLog.filter(item => ((history && user.history_logs.includes(item.id)) || (!history && !user.history_logs.includes(item.id))) && activeFilters.includes(item.type));\n\n\n return (\n \n {!isSmall &&\n \n }\n defaultExpandIcon={}\n defaultEndIcon={
}\n sx={{ flexGrow: 1, maxWidth: 400, overflowY: 'auto' }}\n >\n\n !user.history_logs.includes(x.id) && x).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]); setHistory(false); }}\n />\n \n !user.history_logs.includes(x.id) && (x.type === 1 || x.type === 8)).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([1, 8, 10]); setHistory(false); }}\n />\n !user.history_logs.includes(x.id) && (x.type === 2 || x.type === 4 || x.type === 6 || x.type === 7 || x.type === 9)).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([2, 4, 6, 7, 9]); setHistory(false); }}\n />\n !user.history_logs.includes(x.id) && x.type === 3).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([3]); setHistory(false); }}\n />\n !user.history_logs.includes(x.id) && (x.type === 11 || x.type === 12 || x.type === 13)).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([11, 12, 13]); setHistory(false); }}\n />\n !user.history_logs.includes(x.id) && x.type === 5).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([5]); setHistory(false); }}\n />\n \n\n \n user.history_logs.includes(x.id) && x).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]); setHistory(true); }}\n />\n user.history_logs.includes(x.id) && (x.type === 1 || x.type === 8)).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([1, 8, 10]); setHistory(true); }}\n />\n user.history_logs.includes(x.id) && (x.type === 2 || x.type === 4 || x.type === 6 || x.type === 7 || x.type === 9)).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([2, 4, 6, 7, 9]); setHistory(true); }}\n />\n user.history_logs.includes(x.id) && x.type === 3).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([3]); setHistory(true); }}\n />\n user.history_logs.includes(x.id) && (x.type === 11 || x.type === 12 || x.type === 13)).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([11, 12, 13]); setHistory(true); }}\n />\n user.history_logs.includes(x.id) && x.type === 5).length}\n color={theme.palette.primary.main}\n bgColor=\"#e8f0fe\"\n onClick={() => { setActiveFilters([5]); setHistory(true); }}\n />\n \n \n \n }\n \n \n \n {!isSmall &&\n \n {newNotif > 0 ?\n You have {newNotif} new notification{newNotif !== 1 && 's'}\n :\n No new notifications\n }\n \n }\n \n {isSmall\n ?\n \n \n Read all\n \n :\n \n }\n\n \n \n {isSmall\n ?\n setOpenHistory(true)} >\n \n to history\n \n :\n \n }\n \n \n\n {isSmall\n ?\n \n \n Select all\n \n :\n \n }\n\n {/*\n \n */}\n \n \n \n {virtList.length > 0\n ?\n <>\n {\n const item = virtList[index];\n const data = item.data;\n let content = \"\";\n let companyIcon = \"\";\n let link = \"\";\n let avatarLink = \"\";\n let leftImg = \"\";\n let rightImg = \"\";\n let leftTooltip = \"\";\n let rightTooltip = \"\";\n switch (item.type) {\n case 1:\n content = data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has joined the company.` : data.username + \" has joined the company.\";\n companyIcon = ;\n link = `/profile/${data.user_id}`;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n rightTooltip = data.company_name;\n break;\n case 2:\n content = data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has joined ` + data.social_group_name + \".\" : data.username + \" has joined \" + data.social_group_name + \".\";\n link = `/profile/${data.user_id}`;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n rightImg = item.social_group;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n rightTooltip = data.social_group_name;\n break;\n case 3:\n content = data.online\n ?\n data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has come online` : data.username + \" has come online.\"\n :\n data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has gone offline` : data.username + \" has gone offline.\"\n ;\n link = `/profile/${data.user_id}`;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n break;\n case 4:\n content =
{data.inviter_first_name && data.inviter_last_name ? `${data.inviter_first_name} ${data.inviter_last_name}` : data.inviter_username} has invited you to the group {data.social_group_name}\n
\n \n
;\n link = `profile/${data.link}`;\n avatarLink = `/profile/${data.inviter}`;\n leftImg = data.inviter;\n rightImg = data.social_group;\n leftTooltip = data.inviter_first_name && data.inviter_last_name ? `${data.inviter_first_name} ${data.inviter_last_name}` : data.inviter_username;\n rightTooltip = data.social_group_name;\n break;\n case 5:\n content =\n
{data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username} has requested to join group\n {data.social_group_name}.\n
\n
\n \n \n
\n
;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n rightImg = data.social_group;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n rightTooltip = data.social_group_name;\n break;\n case 6:\n content =
\n {data.social_group_name} \n group's visibility time have been changed to {moment.utc().startOf('day').add(data.utc_start).local().format('HH:mm')}\n
\n {moment.utc().startOf('day').add(data.utc_end).local().format('HH:mm')}
on < span style={{ fontWeight: \"bold\" }\n }> {\n isEqual(sortBy(data.enable_days), [1, 2, 3, 4, 5, 6, 7])\n ?\n 'daily'\n :\n data.enable_days.map((item) => {\n switch (item) {\n case 1:\n return \"Mon\";\n case 2:\n return \"Tue\";\n case 3:\n return \"Wed\";\n case 4:\n return \"Thu\";\n case 5:\n return \"Fri\";\n case 6:\n return \"Sat\";\n case 7:\n return \"Sun\";\n default:\n return \"\";\n }\n }).join(', ')\n }.\n
;\n link = `groups/${item.social_group}`;\n avatarLink = `groups/${item.social_group}`;\n leftImg = item.social_group;\n leftTooltip = data.social_group_name;\n break;\n case 7: {\n content =
{data.social_group_name} group's dashboard has been changed.\n
\n \n
;\n avatarLink = `groups/${item.social_group}`;\n leftImg = item.social_group;\n leftTooltip = data.social_group_name;\n break;\n }\n case 8:\n content =
{data.company_name}'s dashboard has been changed.\n
\n \n
;\n avatarLink = `/company`;\n companyIcon = ;\n leftTooltip = data.company_name;\n break;\n case 9:\n content = data.public\n ?\n
{data.social_group_name} group has been changed to public.
\n :\n
{data.social_group_name} group has been changed to private.
\n ;\n link = `groups/${item.social_group}`;\n avatarLink = `groups/${item.social_group}`;\n leftImg = item.social_group;\n leftTooltip = data.social_group_name;\n break;\n case 10:\n content = data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has left the company.` : data.username + \" has left the company.\";\n companyIcon = ;\n link = `/profile/${data.user_id}`;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n rightTooltip = data.company_name;\n break;\n case 11:\n content = `${data.senderName} sent you: ${String.fromCodePoint(parseInt(data.emoji))}`;\n avatarLink = `/profile/${data.senderId}`;\n leftImg = data.senderId;\n leftTooltip = data.senderName;\n break;\n case 12:\n content = `Message from reception: ${data.message}`;\n companyIcon = \n \n ;\n break;\n case 13:\n content = data.message;\n companyIcon = ;\n avatarLink = `/company`;\n leftImg = data.user_id;\n break;\n default:\n content = \"😇 This should not be showing here, there must be lack of something in somewhere 😇\";\n break;\n }\n\n return (\n \n \n { navigate('/company'); !user.read_logs.includes(item.id) && handleRead(item.id); }} sx={isSmall ? {} : { position: \"relative\", left: 10, \"&:hover\": { cursor: \"pointer\" } }}>\n {companyIcon}\n \n \n {!history &&\n \n }\n
\n :\n (item.type === 2 || item.type === 4 || item.type === 5)\n ?\n \n \n { item.type !== 4 && navigate('/groups/' + (data.social_group || item.social_group)); !user.read_logs.includes(item.id) && handleRead(item.id); }} sx={{ position: \"relative\", left: 10, \"&:hover\": { cursor: \"pointer\" } }} >\n \n \n \n\n {!history &&\n \n }\n \n :\n \n \n { item.type !== 4 && navigate('/groups/' + (data.social_group || item.social_group)); !user.read_logs.includes(item.id) && handleRead(item.id); }} sx={{ position: \"relative\", left: 10, \"&:hover\": { cursor: \"pointer\" } }} >\n \n \n \n {!history &&\n \n }\n \n :\n !history &&\n \n }>\n\n {/* LEFT IMAGE */}\n < Tooltip title={leftTooltip} >\n { navigate(avatarLink); !user.read_logs.includes(item.id) && handleRead(item.id); }} sx={{ \"&:hover\": { cursor: \"pointer\" } }}>\n {(item.type === 8 || item.type === 12 || item.type === 13)\n ?\n companyIcon\n :\n (item.type === 6 || item.type === 7 || item.type === 9)\n ?\n \n :\n \n }\n \n \n\n {/* TEXT AND CONTENT INSIDE */}\n {\n item.type === 4\n ?\n \n \n \n :\n { link && navigate(link); !user.read_logs.includes(item.id) && handleRead(item.id); }}\n >\n \n \n }\n \n );\n }}\n >\n \n {isSmall &&\n \n \n Activity\n \n \n History\n \n \n }\n \n :\n !isSmall\n ?\n \n \n No new notifications\n \n \n :\n <>\n \n \n No new notifications\n \n \n \n \n Activity\n \n \n History\n \n \n \n }\n \n
\n\n {virtList.length > 0 && isSmall\n ?\n <>\n {\n const item = virtList[index];\n const data = item.data;\n let content = \"\";\n let companyIcon = \"\";\n let link = \"\";\n let avatarLink = \"\";\n let leftImg = \"\";\n let rightImg = \"\";\n let leftTooltip = \"\";\n let rightTooltip = \"\";\n switch (item.type) {\n case 1:\n content = data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has joined the company.` : data.username + \" has joined the company.\";\n companyIcon = ;\n link = `/profile/${data.user_id}`;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n rightTooltip = data.company_name;\n break;\n case 2:\n content = data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has joined ` + data.social_group_name + \".\" : data.username + \" has joined \" + data.social_group_name + \".\";\n link = `/profile/${data.user_id}`;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n rightImg = item.social_group;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n rightTooltip = data.social_group_name;\n break;\n case 3:\n content = data.online\n ?\n data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has come online` : data.username + \" has come online.\"\n :\n data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has gone offline` : data.username + \" has gone offline.\"\n ;\n link = `/profile/${data.user_id}`;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n break;\n case 4:\n content =
{data.inviter_first_name && data.inviter_last_name ? `${data.inviter_first_name} ${data.inviter_last_name}` : data.inviter_username} has invited you to the group {data.social_group_name}\n
\n \n
;\n link = `profile/${data.link}`;\n avatarLink = `/profile/${data.inviter}`;\n leftImg = data.inviter;\n rightImg = data.social_group;\n leftTooltip = data.inviter_first_name && data.inviter_last_name ? `${data.inviter_first_name} ${data.inviter_last_name}` : data.inviter_username;\n rightTooltip = data.social_group_name;\n break;\n case 5:\n content =\n
{data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username} has requested to join group\n {data.social_group_name}.\n
\n
\n \n \n
\n
;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n rightImg = data.social_group;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n rightTooltip = data.social_group_name;\n break;\n case 6:\n content =
\n {data.social_group_name} \n group's visibility time have been changed to {moment.utc().startOf('day').add(data.utc_start).local().format('HH:mm')}\n
\n {moment.utc().startOf('day').add(data.utc_end).local().format('HH:mm')}
on < span style={{ fontWeight: \"bold\" }\n }> {\n isEqual(sortBy(data.enable_days), [1, 2, 3, 4, 5, 6, 7])\n ?\n 'daily'\n :\n data.enable_days.map((item) => {\n switch (item) {\n case 1:\n return \"Mon\";\n case 2:\n return \"Tue\";\n case 3:\n return \"Wed\";\n case 4:\n return \"Thu\";\n case 5:\n return \"Fri\";\n case 6:\n return \"Sat\";\n case 7:\n return \"Sun\";\n default:\n return \"\";\n }\n }).join(', ')\n }.\n
;\n link = `groups/${item.social_group}`;\n avatarLink = `groups/${item.social_group}`;\n leftImg = item.social_group;\n leftTooltip = data.social_group_name;\n break;\n case 7: {\n content =
{data.social_group_name} group's dashboard has been changed.\n
\n \n
;\n avatarLink = `groups/${item.social_group}`;\n leftImg = item.social_group;\n leftTooltip = data.social_group_name;\n break;\n }\n case 8:\n content =
{data.company_name}'s dashboard has been changed.\n
\n \n
;\n avatarLink = `/company`;\n companyIcon = ;\n leftTooltip = data.company_name;\n break;\n case 9:\n content = data.public\n ?\n
{data.social_group_name} group has been changed to public.
\n :\n
{data.social_group_name} group has been changed to private.
\n ;\n link = `groups/${item.social_group}`;\n avatarLink = `groups/${item.social_group}`;\n leftImg = item.social_group;\n leftTooltip = data.social_group_name;\n break;\n case 10:\n content = data.first_name && data.last_name ? `${data.first_name} ${data.last_name} has left the company.` : data.username + \" has left the company.\";\n companyIcon = ;\n link = `/profile/${data.user_id}`;\n avatarLink = `/profile/${data.user_id}`;\n leftImg = data.user_id;\n leftTooltip = data.first_name && data.last_name ? `${data.first_name} ${data.last_name}` : data.username;\n rightTooltip = data.company_name;\n break;\n case 11:\n content = `${data.senderName} sent you: ${String.fromCodePoint(parseInt(data.emoji))}`;\n avatarLink = `/profile/${data.senderId}`;\n leftImg = data.senderId;\n leftTooltip = data.senderName;\n break;\n case 12:\n content = `Message from reception: ${data.message}`;\n companyIcon = \n \n ;\n break;\n case 13:\n content = data.message;\n companyIcon = ;\n avatarLink = `/company`;\n leftImg = data.user_id;\n break;\n default:\n content = \"😇 This should not be showing here, there must be lack of something in somewhere 😇\";\n break;\n }\n\n return (\n \n \n { navigate('/company'); !user.read_logs.includes(item.id) && handleRead(item.id); }} sx={isSmall ? {} : { position: \"relative\", left: 10, \"&:hover\": { cursor: \"pointer\" } }}>\n {companyIcon}\n \n \n {!history &&\n \n }\n \n :\n (item.type === 2 || item.type === 4 || item.type === 5)\n ?\n \n \n { item.type !== 4 && navigate('/groups/' + (data.social_group || item.social_group)); !user.read_logs.includes(item.id) && handleRead(item.id); }} sx={{ position: \"relative\", left: 10, \"&:hover\": { cursor: \"pointer\" } }} >\n \n \n \n\n {!history &&\n \n }\n \n :\n \n \n { item.type !== 4 && navigate('/groups/' + (data.social_group || item.social_group)); !user.read_logs.includes(item.id) && handleRead(item.id); }} sx={{ position: \"relative\", left: 10, \"&:hover\": { cursor: \"pointer\" } }} >\n \n \n \n {!history &&\n \n }\n \n :\n !history &&\n \n }>\n\n {/* LEFT IMAGE */}\n < Tooltip title={leftTooltip} >\n { navigate(avatarLink); !user.read_logs.includes(item.id) && handleRead(item.id); }} sx={{ \"&:hover\": { cursor: \"pointer\" } }}>\n {(item.type === 8 || item.type === 12 || item.type === 13)\n ?\n companyIcon\n :\n (item.type === 6 || item.type === 7 || item.type === 9)\n ?\n \n :\n \n }\n \n \n\n {/* TEXT AND CONTENT INSIDE */}\n {\n item.type === 4\n ?\n \n \n \n :\n { link && navigate(link); !user.read_logs.includes(item.id) && handleRead(item.id); }}\n >\n \n \n }\n \n );\n }}\n >\n \n {isSmall &&\n \n \n Activity\n \n \n History\n \n \n }\n \n :\n !isSmall\n ?\n \n \n No new notifications\n \n \n :\n <>\n \n \n No new notifications\n \n \n \n \n Activity\n \n \n History\n \n \n \n }\n\n\n
\n handleHistoryMany(e)}\n handle\n name={\"all selected logs\"}\n open={openHistory}\n setOpen={setOpenHistory}\n content={contentHistory}\n />\n {\n openGroup && dashboardContent &&\n setOpenGroup(false)}\n aria-labelledby=\"modal-modal-title\"\n aria-describedby=\"modal-modal-description\"\n >\n \n \n \n \n }\n\n {\n openCompany &&\n setOpenCompany(false)}\n aria-labelledby=\"modal-modal-title2\"\n aria-describedby=\"modal-modal-description2\"\n BackdropProps={{ style: { opacity: 0.2 } }}\n >\n \n \n \n \n }\n\n \n { setActiveFilters([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]); setHistory(false); handleCloseTypes(); }}>All\n { setActiveFilters([1, 8, 10]); setHistory(false); handleCloseTypes(); }}>Company\n { setActiveFilters([2, 4, 6, 7, 9]); setHistory(false); handleCloseTypes(); }}>Groups\n { setActiveFilters([3]); setHistory(false); handleCloseTypes(); }}>Users\n { setActiveFilters([11, 12, 13]); setHistory(true); handleCloseHistory(); }}>Messages\n { setActiveFilters([5]); setHistory(false); handleCloseTypes(); }}>Invites\n \n \n { setActiveFilters([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]); setHistory(true); handleCloseHistory(); }}>All\n { setActiveFilters([1, 8, 10]); setHistory(true); handleCloseHistory(); }}>Company\n { setActiveFilters([2, 4, 6, 7, 9]); setHistory(true); handleCloseHistory(); }}>Groups\n { setActiveFilters([3]); setHistory(true); handleCloseHistory(); }}>Users\n { setActiveFilters([11, 12, 13]); setHistory(true); handleCloseHistory(); }}>Messages\n { setActiveFilters([5]); setHistory(true); handleCloseHistory(); }}>Invites\n \n \n\n );\n}\n","import { MainContext } from 'kerberus-components';\nimport { useContext, useMemo } from 'react';\n\nexport default function LastWeekOnlineHours({site}) {\n const { bulkData } = useContext(MainContext);\n\n const filteredData = bulkData.user.prev_online_minutes.filter(item => item.site_name === site)\n const weekData = useMemo(() => {\n return filteredData.filter(i => i.online_minutes > 0).map(i => {\n return {\n site_name: i.site_name,\n hours: Math.floor(i.online_minutes / 60),\n minutes: i.online_minutes % 60\n };\n });\n }, [filteredData]);\n return (\n weekData?.length > 0\n ?\n `${weekData[0].hours}h ${weekData[0].minutes}min last week`\n :\n \"0h 0min last week\"\n\n );\n}","import { MainContext } from 'kerberus-components';\nimport { useContext, useMemo } from 'react';\n\nexport default function LastWeekOfflineHours({site}) {\n const { bulkData } = useContext(MainContext);\n\n const filteredData = bulkData.user.prev_online_minutes.filter(item => item.site_name === site)\n const weekData = useMemo(() => {\n return filteredData.filter(i => i.online_minutes > 0).map(i => {\n const minsSinceStart = 10080 - i.online_minutes;\n return {\n site_name: i.site_name,\n hours: Math.floor(minsSinceStart / 60),\n minutes: minsSinceStart % 60\n };\n });\n }, [filteredData]);\n\n return (\n weekData?.length > 0\n ?\n `${weekData[0].hours}h ${weekData[0].minutes}min last week`\n :\n `168h 0min last week`\n\n );\n}","import { Card, Typography, Box } from \"@mui/material\";\nimport OnlineHours from \"../Views/Profile/OnlineHours\";\nimport OfflineHours from \"../Views/Profile/OfflineHours\";\nimport WorkHistoryIcon from '@mui/icons-material/WorkHistory';\nimport WorkOffIcon from '@mui/icons-material/WorkOff';\nimport LastWeekOnlineHours from \"../Views/Profile/LastWeekOnlineHours\";\nimport LastWeekOfflineHours from \"../Views/Profile/LastWeekOfflineHours\";\n\nexport default function OfficeHoursCard({ disableIcon, online, site, ...props }) {\n const disabled = disableIcon\n\n return (\n \n \n {online\n ?\n <>\n \n \n Weekly office hours\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n :\n <>\n \n \n Weekly offline hours\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n \n \n );\n}","import React, { useEffect, useState } from 'react';\nimport { Card, Typography, Box, useTheme, useMediaQuery, FormControl, InputLabel, MenuItem, Select } from \"@mui/material\";\nimport LocationOnIcon from '@mui/icons-material/LocationOn';\nimport { Clock } from 'kerberus-components';\nimport moment from 'moment';\n\nexport default function LocationCard({ data, user, site, setSite, ...props }) {\n const theme = useTheme();\n const isLarge = useMediaQuery(theme.breakpoints.down('lg'));\n const [sites, setSites] = useState([]);\n\n var duration = moment.duration(moment().diff(data?.user.timestamp));\n var minutes = duration.asMinutes();\n\n useEffect(() => {\n var sitesArray = [];\n data?.user.online_minutes.forEach(function (obj) {\n sitesArray.push(obj.site_name);\n })\n setSites(sitesArray)\n }, [data?.user.online_minutes])\n\n const handleChange = (event) => {\n setSite(event.target.value);\n };\n\n return (\n \n \n \n {/* {data.user.timestamp && minutes < 10\n ? */}\n \n \n Location \n \n \n Site\n \n {sites.map(item =>\n {item}\n )}\n \n \n \n {/* :\n \n Location\n */}\n \n \n \n {data?.user.timestamp && minutes < 10\n ?\n \n {data.user.layer_name ?? \"Disabled\"}\n \n :\n \n Offline\n \n }\n \n \n {!isLarge &&\n \n }\n \n \n \n\n {user?.location_enabled\n ?\n \n Location share on\n \n :\n \n Location share off\n \n }\n \n\n \n \n \n );\n}","import * as React from \"react\";\nimport { useContext, useState, useRef, useEffect } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Grid from \"@mui/material/Grid\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme, Paper } from \"@mui/material\";\nimport { MainContext } from \"kerberus-components\";\nimport ProfileList from \"./ProfileList\";\nimport SocialGroupList from \"./SocialGroupList\";\nimport SettingsIcon from \"@mui/icons-material/Settings\";\nimport { useNavigate } from \"react-router-dom\";\nimport ActivityLog from \"../Components/ActivityLog\";\nimport OfficeHoursCard from \"../Components/OfficeHoursCard\";\nimport LocationCard from \"../Components/LocationCard\";\n\nexport default function Dashboard(props) {\n const { bulkData, user } = useContext(MainContext);\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isSmaller = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const navigate = useNavigate();\n const [height, setHeight] = useState(0);\n const ref = useRef(null);\n\n const [site, setSite] = useState(\"\");\n\n useEffect(() => {\n if (bulkData.user.site_name) {\n setSite(bulkData.user.site_name)\n }\n }, [bulkData.user.site_name])\n\n useEffect(() => {\n setHeight(ref?.current?.clientHeight);\n }, [\n ref?.current?.clientHeight,\n props.gridOneHidden,\n props.gridTwoHidden,\n props.gridThreeHidden,\n ]);\n\n return (\n \n {/* Lowers the page by amount of appBar */}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {user.user_company && (\n \n )}\n \n \n \n\n \n navigate(\n `/profile/${user.id}/settings/`\n )\n }\n sx={{\n height: `calc((100vh - ${theme.mixins.toolbar.minHeight}px - 0.6*${theme.mixins.toolbar.minHeight}px) * 0.05)`,\n display: props.gridThreeHidden\n ? \"none\"\n : \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: 0,\n borderBottomRightRadius: 16,\n borderBottomLeftRadius: 16,\n \"&:hover\": {\n backgroundColor: \"#80808095\",\n cursor: \"pointer\",\n },\n }}\n >\n \n \n \n \n \n \n \n \n );\n}\n","import { useState, useEffect, useMemo, useCallback, memo } from 'react';\nimport { Calendar, momentLocalizer } from \"react-big-calendar\";\nimport moment from \"moment\";\nimport 'moment/locale/en-gb';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport \"react-big-calendar/lib/css/react-big-calendar.css\";\nimport CalendarToolbar from '../../Components/CalendarToolbar';\nimport { useTheme } from '@mui/material/styles';\nimport PhoneAndroidIcon from '@mui/icons-material/PhoneAndroid';\nimport OnlineHours from '../Profile/OnlineHours';\nimport OfflineHours from '../Profile/OfflineHours';\nimport { Paper, Typography, Box, Modal, Grid, IconButton, Card } from '@mui/material';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport { useNavigate } from 'react-router-dom';\n\nconst style = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: 400,\n bgcolor: 'background.paper',\n borderWidth: 3,\n borderStyle: 'solid',\n borderColor: '#1C4E71',\n boxShadow: 24,\n p: 4,\n paddingBottom: 6\n};\n\nconst mobileStyle = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: \"90%\",\n bgcolor: 'background.paper',\n borderWidth: 3,\n borderStyle: 'solid',\n borderColor: '#1C4E71',\n boxShadow: 24,\n p: 4,\n paddingBottom: 6\n};\n\nconst localizer = momentLocalizer(moment);\nconst dayFormat = (date, culture, localizer) => localizer.format(date, 'D', culture);\n\nfunction EventComponentday({ title }) {\n return {title};\n\n}\n\nfunction EventComponentweek({ title }) {\n return {title};\n\n}\n\nexport default memo(function DeviceCalendar({ devGroup, providerData, calDate, setCalDate }) {\n const [events, setEvents] = useState([]);\n const theme = useTheme();\n const isMedium = useMediaQuery(theme.breakpoints.down('md'));\n const navigate = useNavigate();\n const [calView, setCalView] = useState('day');\n const [open, setOpen] = useState(false);\n const handleOpen = (e) => {\n setCurrentEvent(e);\n setOpen(true);\n };\n const handleClose = () => setOpen(false);\n const [currentEvent, setCurrentEvent] = useState();\n const handleTime = useMemo(() => {\n let curr = moment(calDate).toDate();\n let minus = moment(calDate).subtract(2, 'hours').toDate();\n return curr.getDate() === minus.getDate() ? minus : curr;\n\n }, [calDate]);\n\n const navigateFunction = (date) => {\n setCalDate(date);\n };\n\n const parseEvents = useCallback((data) => {\n const events = [];\n\n for (const site of data) {\n for (const item of site.online_data) {\n const date = new Date(item.time);\n if (events.length > 0 && events[events.length - 1].title === site.site_name && events[events.length - 1].end.getTime() === date.getTime() && events[events.length - 1].start.getDay() === date.getDay()) {\n events[events.length - 1].end = new Date(events[events.length - 1].end.getTime() + 30 * 60000);\n }\n else {\n events.push({\n title: site.site_name,\n start: date,\n end: new Date(date.getTime() + 30 * 60000),\n item: item.act\n });\n }\n }\n }\n\n setEvents(events);\n }, []);\n\n const deviceHours = providerData?.map(item => item.online_data).flat().length * 30\n\n useEffect(() => {\n if (providerData) {\n parseEvents(providerData);\n }\n }, [providerData, parseEvents]);\n\n useEffect(() => {\n isMedium ? setCalView('day') : setCalView('week');\n }, [isMedium]);\n\n return (\n \n\n navigate(-1)}>\n \n \n \n\n \n \n \n \n {devGroup.group_name}\n \n \n \n \n \n \n \n Weekly online hours:\n \n \n \n \n\n \n \n \n {devGroup.group_name}\n \n \n\n \n \n \n Weekly offline hours:\n \n \n \n \n\n \n\n \n \n \n {currentEvent && currentEvent.title === \"Hidden\" ? \"Hidden\" : \"Devices:\"}\n \n {currentEvent && currentEvent.item.map((item, idx) => {\n return (\n \n \n MAC: {item}\n \n \n );\n })}\n \n {currentEvent && moment.duration(moment(currentEvent.end).diff(moment(currentEvent.start))).asMinutes()} min\n \n \n During: {currentEvent && moment(currentEvent.start).format('H:mm')} - {currentEvent && moment(currentEvent.end).format('H:mm')}\n \n \n \n\n setCalView(e)}\n view={calView}\n views={['day', 'week']}\n startAccessor=\"start\"\n endAccessor={({ end }) => new Date(end.getTime() - 1)}\n events={events}\n tooltipAccessor={(e) => e.title === \"Hidden\" ? \"Hidden\" : `Devices: ${e.title}`}\n localizer={localizer}\n resizable\n scrollToTime={handleTime}\n onSelectEvent={handleOpen}\n timeslots={1}\n style={{\n height: \"65vh\", width: \"100%\"\n }}\n formats={{\n dayFormat,\n eventTimeRangeFormat: (e) => { return \"\"; }\n }}\n components={{\n toolbar: isMedium ? CalendarToolbar : null,\n day: { event: EventComponentday },\n week: { event: EventComponentweek }\n }}\n dayLayoutAlgorithm=\"no-overlap\"\n onNavigate={navigateFunction}\n eventPropGetter={\n (event, start, end, isSelected) => {\n let newStyle = {\n backgroundColor: event.title === 'Hidden' ? '#808080' : '#8DBF30',\n color: event.title === 'Hidden' ? '#808080' : '#FFFFFF',\n borderRadius: 10,\n border: \"none\",\n textAlign: \"center\",\n marginLeft: 5,\n paddingLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n return {\n className: \"\",\n style: newStyle\n };\n }\n }\n />\n\n \n );\n})\n","import * as React from 'react';\nimport { useState, useEffect, useContext } from 'react';\nimport { DataGrid } from '@mui/x-data-grid';\nimport { Box, Button, Typography, IconButton, useTheme, useMediaQuery, Checkbox, Grid, FormControlLabel } from '@mui/material';\nimport moment from 'moment';\nimport SearchBar from '../MyConnections/SearchBar';\nimport ConfirmationDialog from '../ConfirmationDialog';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport HelperIcon from '../HelperIcon';\nimport { MaskedTextFieldWrapper, useFetchCloud, MainContext } from 'kerberus-components';\nimport { Link, useParams } from \"react-router-dom\";\nimport { useSWRConfig } from 'swr';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\nimport BluetoothIcon from '@mui/icons-material/Bluetooth';\nimport SignalWifi3BarIcon from '@mui/icons-material/SignalWifi3Bar';\n\nfunction escapeRegExp(value) {\n return value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nconst disabledContent =
This will disable mac address
;\nconst deleteContent =
This will delete mac address
;\nconst restoreContent =
This will restore mac address
;\n\nconst statusHelperIcon = (\n <>\n
This indicates if address is active at the moment
\n \n);\n\nconst bluetoothHelperIcon = (\n <>\n
This selection determines if it is a bluetooth mac address.
\n \n);\n\nexport default React.memo(function DataGridMacAddress({ macAddresses, activeMacAddresses }) {\n const { user } = useContext(MainContext);\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { deviceId } = useParams();\n const [visibilityDialog, setVisibilityDialog] = useState(false);\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [openAdd, setOpenAdd] = useState(false);\n const [valueAdd, setValueAdd] = useState(false);\n const [isDisabled, setIsDisabled] = useState(true);\n const [newMacAddress, setNewMacAddress] = useState(\"\");\n const [addrBluetooth, setAddrBluetooth] = useState(false);\n const { fetchCloud } = useFetchCloud();\n const { mutate } = useSWRConfig();\n const macAddressAlreadyTaken = user.device_groups.findIndex(i => i.addresses.some(addr => addr.address.toLowerCase() === newMacAddress.toLowerCase())) !== -1\n\n const handleAddressAdd = async () => {\n await fetchCloud(`devices/addaddressdevgroup`, 'POST', {\n address: [{\n address: newMacAddress,\n bluetooth: addrBluetooth\n }],\n device_group: deviceId\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setNewMacAddress(\"\")\n };\n\n const handleAddressVisibility = async () => {\n await fetchCloud(`devices/addaddressdevgroup`, 'POST', {\n address: [{\n address: visibilityDialog.address,\n visible: !visibilityDialog.visible\n }],\n device_group: deviceId\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n const handleAddressRemove = async () => {\n await fetchCloud(`devices/removeaddressdevgroup`, 'DELETE', {\n\n address: [deleteDialog],\n device_group: deviceId\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n const today = moment();\n\n const columns = [\n {\n field: 'icon', headerName: 'Type', width: 30, renderCell: (e) =>\n e.row.bluetooth\n ?\n \n :\n \n },\n { field: 'address', headerName: 'Mac Address', width: 160 },\n {\n field: 'timestamp', headerName: 'Last seen', flex: 0.5, renderCell: (e) => {\n const rowActiveAddresses = activeMacAddresses.filter(item => item.wlan_sa === e.row.address)\n const lastseen = rowActiveAddresses.length > 0 && rowActiveAddresses.reduce((a, b) => today - moment(a.timestamp) < today - moment(b.timestamp) ? a : b);\n\n return (\n lastseen ? lastseen.timestamp ? moment(lastseen.timestamp).fromNow() : '> 1 week' : 'Long time ago'\n )\n }\n },\n {\n field: 'site_name', headerName: 'Location', flex: 0.5, renderCell: (e) => {\n const rowActiveAddresses = activeMacAddresses.filter(item => item.wlan_sa === e.row.address)\n const lastseen = rowActiveAddresses.length > 0 && rowActiveAddresses.reduce((a, b) => today - moment(a.timestamp) < today - moment(b.timestamp) ? a : b);\n\n return (\n lastseen.site_name ?? \"Unknown\"\n )\n }\n },\n {\n field: 'status', flex: 0.5, renderHeader: () =>\n \n \n Status\n \n \n ,\n renderCell: (e) => {\n\n const rowActiveAddresses = activeMacAddresses.filter(item => item.wlan_sa === e.row.address)\n const lastseen = rowActiveAddresses.length > 0 && rowActiveAddresses.reduce((a, b) => today - moment(a.timestamp) < today - moment(b.timestamp) ? a : b);\n const lastseenminutes = moment.duration(today.diff(lastseen.timestamp)).asMinutes();\n\n return (\n e.row.visible ?\n lastseen && lastseenminutes <= 10\n ?\n = 5 ? { color: theme.palette.mlYellow.main } : { color: theme.palette.mlGreen.main }}>Active\n :\n Inactive\n :\n Disabled\n )\n }\n },\n {\n field: '', headerName: 'Visibility', display: \"flex\", align: \"center\", headerAlign: \"center\", renderCell: (e) =>\n e.row.visible\n ?\n setVisibilityDialog(e.row)}>\n \n \n :\n setVisibilityDialog(e.row)}>\n \n \n },\n {\n field: 'Delete', headerName: 'Delete', display: \"flex\", align: \"center\", headerAlign: \"center\", renderCell: (e) =>\n setDeleteDialog(e.row.address)}>\n \n \n }\n ];\n\n const contentAdd = (\n \n By adding\n {newMacAddress ? \" \" + newMacAddress + \"\" : \" Device\"}\n , you confirm that you own and/or hold this mac address and have the legal right to track and share it's location data.\n
\n
\n
\n \n I understand\n setIsDisabled(isDisabled => !isDisabled)} />\n \n\n
\n If you would like further information on this matter you can review our\n \n Terms & Conditions\n \n {\" again.\"}\n
\n\n {isSmall &&
}\n
\n );\n\n const [searchText, setSearchText] = useState('');\n const [rows, setRows] = useState(macAddresses);\n\n useEffect(() => {\n if (macAddresses) {\n setRows(macAddresses)\n }\n }, [macAddresses])\n\n const requestSearch = (searchValue) => {\n setSearchText(searchValue);\n const searchRegex = new RegExp(escapeRegExp(searchValue), 'i');\n const filteredRows = macAddresses.filter((row) => {\n return Object.keys(row).some((field) => {\n return row[field] ? searchRegex.test(row[field].toString()) : null;\n });\n });\n setRows(filteredRows);\n };\n\n return (\n <>\n \n \n \n Bluetooth\n \n }\n labelPlacement=\"bottom\"\n control={\n setAddrBluetooth(e.target.checked)}\n />}\n />\n setNewMacAddress(e)}\n />\n\n { setValueAdd(newMacAddress); setOpenAdd(true); }}\n sx={{ ml: 2 }}\n >\n Add\n \n\n\n \n\n \n requestSearch(event.target.value)}\n clearSearch={() => requestSearch('')}\n />\n \n \n \n !params.row.visible && `disabled-row`}\n />\n \n\n\n \n\n \n\n \n \n );\n}) \n","import * as React from 'react';\nimport PhoneAndroidIcon from '@mui/icons-material/PhoneAndroid';\nimport PhoneIphoneIcon from '@mui/icons-material/PhoneIphone';\nimport WatchIcon from '@mui/icons-material/Watch';\nimport TabletIcon from '@mui/icons-material/Tablet';\nimport ComputerIcon from '@mui/icons-material/Computer';\nimport DesktopMacIcon from '@mui/icons-material/DesktopMac';\nimport RouterIcon from '@mui/icons-material/Router';\nimport TvIcon from '@mui/icons-material/Tv';\nimport DeviceUnknownIcon from '@mui/icons-material/DeviceUnknown';\nimport TabletAndroidIcon from '@mui/icons-material/TabletAndroid';\nimport DevicesOtherIcon from '@mui/icons-material/DevicesOther';\nimport HeadphonesIcon from '@mui/icons-material/Headphones';\n\nconst style = { width: \"100%\", height: \"100%\" }\n\nconst DeviceIcons = [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n];\n\n\nexport default DeviceIcons;","import { Tooltip, Badge, Avatar, useTheme } from '@mui/material';\nimport * as React from 'react';\nimport DeviceIcons from '../Icons/DeviceIcons';\nimport BluetoothIcon from '@mui/icons-material/Bluetooth';\nimport SignalWifi3BarIcon from '@mui/icons-material/SignalWifi3Bar';\n\nexport default React.memo(function GetDeviceIcon({ value, badgeScale, tooltipPlacement, badgeOpacity, customTooltip, ...props }) {\n const theme = useTheme();\n const hasBluetooth = value?.addresses.some((item) => item.bluetooth);\n const hasWifi = value?.addresses.some((item) => !item.bluetooth);\n let tooltip = \"\";\n switch (value?.type) {\n case 0:\n tooltip = \"Unknown\";\n break;\n case 1:\n tooltip = \"Android\";\n break;\n case 2:\n tooltip = \"Iphone\";\n break;\n case 3:\n tooltip = \"Android Tablet\";\n break;\n case 4:\n tooltip = \"Ipad\";\n break;\n case 5:\n tooltip = \"Laptop\";\n break;\n case 6:\n tooltip = \"Desktop\";\n break;\n case 7:\n tooltip = \"Tv\";\n break;\n case 8:\n tooltip = \"Headphones\";\n break;\n case 9:\n tooltip = \"Watch\";\n break;\n case 10:\n tooltip = \"Router\";\n break;\n case 11:\n tooltip = \"Iot Device\";\n break;\n default:\n tooltip = \"Iot Device\";\n }\n return (\n \n 0 || !hasWifi}\n overlap=\"circular\"\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"left\" }}\n badgeContent={\n \n }\n >\n 0 || !hasBluetooth}\n overlap=\"circular\"\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\n badgeContent={\n \n }\n >\n {DeviceIcons[value?.type]}\n \n \n \n );\n});\n","import * as React from 'react';\nimport { useEffect, useContext, useState, memo } from 'react';\nimport { useParams } from 'react-router-dom';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { MainContext, useWsDataProvider, useFetchCloud } from 'kerberus-components';\nimport moment from 'moment';\nimport { Card, Tooltip, useTheme, Box, Typography, Grid, IconButton, Popover, TextField, Button } from '@mui/material';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport LocationOnIcon from '@mui/icons-material/LocationOn';\nimport LocationOffIcon from '@mui/icons-material/LocationOff';\nimport DataGridMacAddress from '../../Components/Device/DatagridMacAddress';\nimport GetDeviceIcon from '../../Components/Device/GetDeviceIcon';\nimport EditIcon from '@mui/icons-material/Edit';\nimport { useSWRConfig } from 'swr';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport { useNavigate } from 'react-router-dom';\n\nexport default memo(function DeviceView() {\n const theme = useTheme();\n const { user } = useContext(MainContext);\n const { deviceId } = useParams();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const isLarge = useMediaQuery(theme.breakpoints.down('lg'));\n const [onlineDevs, setOnlineDevs] = useState([]);\n const navigate = useNavigate();\n\n const { mutate } = useSWRConfig();\n const { fetchCloud } = useFetchCloud();\n\n // eslint-disable-next-line eqeqeq\n const deviceData = user.device_groups.find(item => item.id == deviceId);\n const macAddresses = deviceData.addresses;\n\n const [nameEdit, setNameEdit] = useState(null);\n const [devName, setDevName] = useState(deviceData?.group_name);\n\n const handleEditName = (event) => {\n setNameEdit(event.currentTarget);\n };\n\n const closeEditName = () => {\n setNameEdit(null);\n };\n\n /* Change device name*/\n const handleDeviceName = async () => {\n try {\n await fetchCloud(`devices/devicegroup/${deviceId}/`, 'PATCH', {\n group_name: devName\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n alert(err);\n }\n };\n\n /* Get online Address data */\n const { getData, data, doUnsubscribe } = useWsDataProvider();\n\n useEffect(() => {\n getData('socketLocation', 'onlineAddr', {\n subscribe: true\n });\n\n return () => doUnsubscribe();\n }, [getData, doUnsubscribe]);\n\n\n /* Get device vendorInfo data */\n const { getData: getDataVendorInfo, data: dataVendorInfo } = useWsDataProvider();\n\n /* Set array index */\n const [addressIndex, setAddressIndex] = useState(0);\n\n /* Keep Looking for device with vendorInfo, stops when one is found */\n useEffect(() => {\n if (macAddresses[addressIndex]?.address && !dataVendorInfo?.vendorInfo) {\n getDataVendorInfo('socketMac', 'vendorInfo', {\n filters: {\n mac: macAddresses[addressIndex]?.address?.toUpperCase()\n }\n });\n setAddressIndex(prev => prev !== macAddresses.length - 1 ? prev + 1 : prev);\n }\n }, [addressIndex, dataVendorInfo?.vendorInfo, getDataVendorInfo, macAddresses]);\n\n useEffect(() => {\n if (data) {\n setOnlineDevs(data);\n }\n }, [data]);\n\n const today = moment();\n const activeMacAddresses = onlineDevs?.filter(addr => macAddresses.some(item => addr.wlan_sa === item.address));\n const lastseen = activeMacAddresses.length > 0 && activeMacAddresses.reduce((a, b) => today - moment(a.timestamp) < today - moment(b.timestamp) ? a : b);\n const lastseenminutes = moment.duration(today.diff(lastseen.timestamp)).asMinutes();\n\n return (\n\n <>\n \n navigate(-1)}>\n \n \n \n = 5 ? \"#FCC041\" : lastseenminutes > 0 && lastseenminutes < 5 ? \"#8DBF30\" : '#adadb8' : '#adadb8',\n borderWidth: 7,\n bgcolor: theme.palette.primary.main + 50,\n color: theme.palette.primary.main,\n }}\n />\n = 5 ? \"#FCC041\" : lastseenminutes > 0 && lastseenminutes < 5 ? \"#8DBF30\" : '#adadb8' : '#adadb8' }}>\n {lastseenminutes ? lastseenminutes <= 10 ? \"Active\" : \"Inactive\" : \"Inactive\"}\n \n \n \n \n\n \n \n {deviceData?.visible\n ?\n \n :\n \n }\n \n \n {deviceData?.location\n ?\n \n :\n \n }\n \n \n\n\n \n\n \n \n Name:\n \n \n \n \n {deviceData?.group_name}\n \n \n \n \n \n setDevName(e.target.value)}\n />\n \n \n \n \n \n\n \n \n Manufacturer:\n \n \n \n \n {dataVendorInfo?.vendorInfo?.name ?? \"Unknown\"}\n \n \n\n \n \n Country:\n \n \n \n \n {dataVendorInfo?.vendorInfo?.country ?? \"Unknown\"}\n \n \n\n {/* Display device's OUI */}\n {/*\n \n Oui:\n \n \n \n \n {dataVendorInfo?.vendorInfo?.oui ?? \"Unknown\"}\n \n */}\n\n \n \n Latest location:\n \n \n \n \n {lastseen?.site_name ?? \"Unknown\"}\n \n \n\n \n \n Last seen:\n \n \n \n \n {lastseen ? lastseen.timestamp ? moment(lastseen.timestamp).fromNow() : '> 1 week' : 'Long time ago'}\n \n \n\n \n \n \n \n \n \n );\n});\n","// Source from https://github.com/alitaheri/normalize-scroll-left\nlet cachedType;\n/**\n * Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\n *\n * Types of scrollLeft, assuming scrollWidth=100 and direction is rtl.\n *\n * Type | <- Most Left | Most Right -> | Initial\n * ---------------- | ------------ | ------------- | -------\n * default | 0 | 100 | 100\n * negative (spec*) | -100 | 0 | 0\n * reverse | 100 | 0 | 0\n *\n * Edge 85: default\n * Safari 14: negative\n * Chrome 85: negative\n * Firefox 81: negative\n * IE11: reverse\n *\n * spec* https://drafts.csswg.org/cssom-view/#dom-window-scroll\n */\n\nexport function detectScrollType() {\n if (cachedType) {\n return cachedType;\n }\n\n const dummy = document.createElement('div');\n const container = document.createElement('div');\n container.style.width = '10px';\n container.style.height = '1px';\n dummy.appendChild(container);\n dummy.dir = 'rtl';\n dummy.style.fontSize = '14px';\n dummy.style.width = '4px';\n dummy.style.height = '1px';\n dummy.style.position = 'absolute';\n dummy.style.top = '-1000px';\n dummy.style.overflow = 'scroll';\n document.body.appendChild(dummy);\n cachedType = 'reverse';\n\n if (dummy.scrollLeft > 0) {\n cachedType = 'default';\n } else {\n dummy.scrollLeft = 1;\n\n if (dummy.scrollLeft === 0) {\n cachedType = 'negative';\n }\n }\n\n document.body.removeChild(dummy);\n return cachedType;\n} // Based on https://stackoverflow.com/a/24394376\n\nexport function getNormalizedScrollLeft(element, direction) {\n const scrollLeft = element.scrollLeft; // Perform the calculations only when direction is rtl to avoid messing up the ltr behavior\n\n if (direction !== 'rtl') {\n return scrollLeft;\n }\n\n const type = detectScrollType();\n\n switch (type) {\n case 'negative':\n return element.scrollWidth - element.clientWidth + scrollLeft;\n\n case 'reverse':\n return element.scrollWidth - element.clientWidth - scrollLeft;\n\n default:\n return scrollLeft;\n }\n}","function easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\n\nexport default function animate(property, element, to, options = {}, cb = () => {}) {\n const {\n ease = easeInOutSin,\n duration = 300 // standard\n\n } = options;\n let start = null;\n const from = element[property];\n let cancelled = false;\n\n const cancel = () => {\n cancelled = true;\n };\n\n const step = timestamp => {\n if (cancelled) {\n cb(new Error('Animation cancelled'));\n return;\n }\n\n if (start === null) {\n start = timestamp;\n }\n\n const time = Math.min(1, (timestamp - start) / duration);\n element[property] = ease(time) * (to - from) + from;\n\n if (time >= 1) {\n requestAnimationFrame(() => {\n cb(null);\n });\n return;\n }\n\n requestAnimationFrame(step);\n };\n\n if (from === to) {\n cb(new Error('Element already at target position'));\n return cancel;\n }\n\n requestAnimationFrame(step);\n return cancel;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from '../utils/debounce';\nimport { ownerWindow } from '../utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n width: 99,\n height: 99,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll'\n};\n/**\n * @ignore - internal component.\n * The component originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\n\nexport default function ScrollbarSize(props) {\n const {\n onChange\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const scrollbarHeight = React.useRef();\n const nodeRef = React.useRef(null);\n\n const setMeasurements = () => {\n scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;\n };\n\n React.useEffect(() => {\n const handleResize = debounce(() => {\n const prevHeight = scrollbarHeight.current;\n setMeasurements();\n\n if (prevHeight !== scrollbarHeight.current) {\n onChange(scrollbarHeight.current);\n }\n });\n const containerWindow = ownerWindow(nodeRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [onChange]);\n React.useEffect(() => {\n setMeasurements();\n onChange(scrollbarHeight.current);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n style: styles,\n ref: nodeRef\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? ScrollbarSize.propTypes = {\n onChange: PropTypes.func.isRequired\n} : void 0;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabScrollButtonUtilityClass(slot) {\n return generateUtilityClass('MuiTabScrollButton', slot);\n}\nconst tabScrollButtonClasses = generateUtilityClasses('MuiTabScrollButton', ['root', 'vertical', 'horizontal', 'disabled']);\nexport default tabScrollButtonClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _KeyboardArrowLeft, _KeyboardArrowRight;\n\nconst _excluded = [\"className\", \"direction\", \"orientation\", \"disabled\"];\n\n/* eslint-disable jsx-a11y/aria-role */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport KeyboardArrowLeft from '../internal/svg-icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '../internal/svg-icons/KeyboardArrowRight';\nimport ButtonBase from '../ButtonBase';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport tabScrollButtonClasses, { getTabScrollButtonUtilityClass } from './tabScrollButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, disabled && 'disabled']\n };\n return composeClasses(slots, getTabScrollButtonUtilityClass, classes);\n};\n\nconst TabScrollButtonRoot = styled(ButtonBase, {\n name: 'MuiTabScrollButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.orientation && styles[ownerState.orientation]];\n }\n})(({\n ownerState\n}) => _extends({\n width: 40,\n flexShrink: 0,\n opacity: 0.8,\n [`&.${tabScrollButtonClasses.disabled}`]: {\n opacity: 0\n }\n}, ownerState.orientation === 'vertical' && {\n width: '100%',\n height: 40,\n '& svg': {\n transform: `rotate(${ownerState.isRtl ? -90 : 90}deg)`\n }\n}));\nconst TabScrollButton = /*#__PURE__*/React.forwardRef(function TabScrollButton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabScrollButton'\n });\n\n const {\n className,\n direction\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n\n const ownerState = _extends({\n isRtl\n }, props);\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TabScrollButtonRoot, _extends({\n component: \"div\",\n className: clsx(classes.root, className),\n ref: ref,\n role: null,\n ownerState: ownerState,\n tabIndex: null\n }, other, {\n children: direction === 'left' ? _KeyboardArrowLeft || (_KeyboardArrowLeft = /*#__PURE__*/_jsx(KeyboardArrowLeft, {\n fontSize: \"small\"\n })) : _KeyboardArrowRight || (_KeyboardArrowRight = /*#__PURE__*/_jsx(KeyboardArrowRight, {\n fontSize: \"small\"\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabScrollButton.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 direction the button should indicate.\n */\n direction: PropTypes.oneOf(['left', 'right']).isRequired,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The component orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\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} : void 0;\nexport default TabScrollButton;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabsUtilityClass(slot) {\n return generateUtilityClass('MuiTabs', slot);\n}\nconst tabsClasses = generateUtilityClasses('MuiTabs', ['root', 'vertical', 'flexContainer', 'flexContainerVertical', 'centered', 'scroller', 'fixed', 'scrollableX', 'scrollableY', 'hideScrollbar', 'scrollButtons', 'scrollButtonsHideMobile', 'indicator']);\nexport default tabsClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-label\", \"aria-labelledby\", \"action\", \"centered\", \"children\", \"className\", \"component\", \"allowScrollButtonsMobile\", \"indicatorColor\", \"onChange\", \"orientation\", \"ScrollButtonComponent\", \"scrollButtons\", \"selectionFollowsFocus\", \"TabIndicatorProps\", \"TabScrollButtonProps\", \"textColor\", \"value\", \"variant\", \"visibleScrollbar\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport debounce from '../utils/debounce';\nimport { getNormalizedScrollLeft, detectScrollType } from '../utils/scrollLeft';\nimport animate from '../internal/animate';\nimport ScrollbarSize from './ScrollbarSize';\nimport TabScrollButton from '../TabScrollButton';\nimport useEventCallback from '../utils/useEventCallback';\nimport tabsClasses, { getTabsUtilityClass } from './tabsClasses';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst nextItem = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n\n return list.firstChild;\n};\n\nconst previousItem = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n\n return list.lastChild;\n};\n\nconst moveFocus = (list, currentFocus, traversalFunction) => {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus);\n\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n\n wrappedOnce = true;\n } // Same logic as useAutocomplete.js\n\n\n const nextFocusDisabled = nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n\n if (!nextFocus.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus);\n } else {\n nextFocus.focus();\n return;\n }\n }\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n vertical,\n fixed,\n hideScrollbar,\n scrollableX,\n scrollableY,\n centered,\n scrollButtonsHideMobile,\n classes\n } = ownerState;\n const slots = {\n root: ['root', vertical && 'vertical'],\n scroller: ['scroller', fixed && 'fixed', hideScrollbar && 'hideScrollbar', scrollableX && 'scrollableX', scrollableY && 'scrollableY'],\n flexContainer: ['flexContainer', vertical && 'flexContainerVertical', centered && 'centered'],\n indicator: ['indicator'],\n scrollButtons: ['scrollButtons', scrollButtonsHideMobile && 'scrollButtonsHideMobile'],\n scrollableX: [scrollableX && 'scrollableX'],\n hideScrollbar: [hideScrollbar && 'hideScrollbar']\n };\n return composeClasses(slots, getTabsUtilityClass, classes);\n};\n\nconst TabsRoot = styled('div', {\n name: 'MuiTabs',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${tabsClasses.scrollButtons}`]: styles.scrollButtons\n }, {\n [`& .${tabsClasses.scrollButtons}`]: ownerState.scrollButtonsHideMobile && styles.scrollButtonsHideMobile\n }, styles.root, ownerState.vertical && styles.vertical];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n overflow: 'hidden',\n minHeight: 48,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n display: 'flex'\n}, ownerState.vertical && {\n flexDirection: 'column'\n}, ownerState.scrollButtonsHideMobile && {\n [`& .${tabsClasses.scrollButtons}`]: {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n }\n}));\nconst TabsScroller = styled('div', {\n name: 'MuiTabs',\n slot: 'Scroller',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.scroller, ownerState.fixed && styles.fixed, ownerState.hideScrollbar && styles.hideScrollbar, ownerState.scrollableX && styles.scrollableX, ownerState.scrollableY && styles.scrollableY];\n }\n})(({\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'inline-block',\n flex: '1 1 auto',\n whiteSpace: 'nowrap'\n}, ownerState.fixed && {\n overflowX: 'hidden',\n width: '100%'\n}, ownerState.hideScrollbar && {\n // Hide dimensionless scrollbar on MacOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n\n }\n}, ownerState.scrollableX && {\n overflowX: 'auto',\n overflowY: 'hidden'\n}, ownerState.scrollableY && {\n overflowY: 'auto',\n overflowX: 'hidden'\n}));\nconst FlexContainer = styled('div', {\n name: 'MuiTabs',\n slot: 'FlexContainer',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.flexContainer, ownerState.vertical && styles.flexContainerVertical, ownerState.centered && styles.centered];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex'\n}, ownerState.vertical && {\n flexDirection: 'column'\n}, ownerState.centered && {\n justifyContent: 'center'\n}));\nconst TabsIndicator = styled('span', {\n name: 'MuiTabs',\n slot: 'Indicator',\n overridesResolver: (props, styles) => styles.indicator\n})(({\n ownerState,\n theme\n}) => _extends({\n position: 'absolute',\n height: 2,\n bottom: 0,\n width: '100%',\n transition: theme.transitions.create()\n}, ownerState.indicatorColor === 'primary' && {\n backgroundColor: theme.palette.primary.main\n}, ownerState.indicatorColor === 'secondary' && {\n backgroundColor: theme.palette.secondary.main\n}, ownerState.vertical && {\n height: '100%',\n width: 2,\n right: 0\n}));\nconst TabsScrollbarSize = styled(ScrollbarSize, {\n name: 'MuiTabs',\n slot: 'ScrollbarSize'\n})({\n overflowX: 'auto',\n overflowY: 'hidden',\n // Hide dimensionless scrollbar on MacOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n\n }\n});\nconst defaultIndicatorStyle = {};\nlet warnedOnceTabPresent = false;\nconst Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabs'\n });\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n action,\n centered = false,\n children: childrenProp,\n className,\n component = 'div',\n allowScrollButtonsMobile = false,\n indicatorColor = 'primary',\n onChange,\n orientation = 'horizontal',\n ScrollButtonComponent = TabScrollButton,\n scrollButtons = 'auto',\n selectionFollowsFocus,\n TabIndicatorProps = {},\n TabScrollButtonProps = {},\n textColor = 'primary',\n value,\n variant = 'standard',\n visibleScrollbar = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const scrollable = variant === 'scrollable';\n const vertical = orientation === 'vertical';\n const scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n const start = vertical ? 'top' : 'left';\n const end = vertical ? 'bottom' : 'right';\n const clientSize = vertical ? 'clientHeight' : 'clientWidth';\n const size = vertical ? 'height' : 'width';\n\n const ownerState = _extends({}, props, {\n component,\n allowScrollButtonsMobile,\n indicatorColor,\n orientation,\n vertical,\n scrollButtons,\n textColor,\n variant,\n visibleScrollbar,\n fixed: !scrollable,\n hideScrollbar: scrollable && !visibleScrollbar,\n scrollableX: scrollable && !vertical,\n scrollableY: scrollable && vertical,\n centered: centered && !scrollable,\n scrollButtonsHideMobile: !allowScrollButtonsMobile\n });\n\n const classes = useUtilityClasses(ownerState);\n\n if (process.env.NODE_ENV !== 'production') {\n if (centered && scrollable) {\n console.error('MUI: You can not use the `centered={true}` and `variant=\"scrollable\"` properties ' + 'at the same time on a `Tabs` component.');\n }\n }\n\n const [mounted, setMounted] = React.useState(false);\n const [indicatorStyle, setIndicatorStyle] = React.useState(defaultIndicatorStyle);\n const [displayScroll, setDisplayScroll] = React.useState({\n start: false,\n end: false\n });\n const [scrollerStyle, setScrollerStyle] = React.useState({\n overflow: 'hidden',\n scrollbarWidth: 0\n });\n const valueToIndex = new Map();\n const tabsRef = React.useRef(null);\n const tabListRef = React.useRef(null);\n\n const getTabsMeta = () => {\n const tabsNode = tabsRef.current;\n let tabsMeta;\n\n if (tabsNode) {\n const rect = tabsNode.getBoundingClientRect(); // create a new object with ClientRect class props + scrollLeft\n\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollLeftNormalized: getNormalizedScrollLeft(tabsNode, theme.direction),\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right\n };\n }\n\n let tabMeta;\n\n if (tabsNode && value !== false) {\n const children = tabListRef.current.children;\n\n if (children.length > 0) {\n const tab = children[valueToIndex.get(value)];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!tab) {\n console.error([`MUI: The \\`value\\` provided to the Tabs component is invalid.`, `None of the Tabs' children match with \"${value}\".`, valueToIndex.keys ? `You can provide one of the following values: ${Array.from(valueToIndex.keys()).join(', ')}.` : null].join('\\n'));\n }\n }\n\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (process.env.NODE_ENV !== 'test' && !warnedOnceTabPresent && tabMeta && tabMeta.width === 0 && tabMeta.height === 0) {\n tabsMeta = null;\n console.error(['MUI: The `value` provided to the Tabs component is invalid.', `The Tab with this \\`value\\` (\"${value}\") is not part of the document layout.`, \"Make sure the tab item is present in the document or that it's not `display: none`.\"].join('\\n'));\n warnedOnceTabPresent = true;\n }\n }\n }\n }\n\n return {\n tabsMeta,\n tabMeta\n };\n };\n\n const updateIndicatorState = useEventCallback(() => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n let startValue = 0;\n let startIndicator;\n\n if (vertical) {\n startIndicator = 'top';\n\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;\n }\n } else {\n startIndicator = isRtl ? 'right' : 'left';\n\n if (tabMeta && tabsMeta) {\n const correction = isRtl ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft;\n startValue = (isRtl ? -1 : 1) * (tabMeta[startIndicator] - tabsMeta[startIndicator] + correction);\n }\n }\n\n const newIndicatorStyle = {\n [startIndicator]: startValue,\n // May be wrong until the font is loaded.\n [size]: tabMeta ? tabMeta[size] : 0\n }; // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n\n if (isNaN(indicatorStyle[startIndicator]) || isNaN(indicatorStyle[size])) {\n setIndicatorStyle(newIndicatorStyle);\n } else {\n const dStart = Math.abs(indicatorStyle[startIndicator] - newIndicatorStyle[startIndicator]);\n const dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);\n\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(newIndicatorStyle);\n }\n }\n });\n\n const scroll = (scrollValue, {\n animation = true\n } = {}) => {\n if (animation) {\n animate(scrollStart, tabsRef.current, scrollValue, {\n duration: theme.transitions.duration.standard\n });\n } else {\n tabsRef.current[scrollStart] = scrollValue;\n }\n };\n\n const moveTabsScroll = delta => {\n let scrollValue = tabsRef.current[scrollStart];\n\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1); // Fix for Edge\n\n scrollValue *= isRtl && detectScrollType() === 'reverse' ? -1 : 1;\n }\n\n scroll(scrollValue);\n };\n\n const getScrollSize = () => {\n const containerSize = tabsRef.current[clientSize];\n let totalSize = 0;\n const children = Array.from(tabListRef.current.children);\n\n for (let i = 0; i < children.length; i += 1) {\n const tab = children[i];\n\n if (totalSize + tab[clientSize] > containerSize) {\n break;\n }\n\n totalSize += tab[clientSize];\n }\n\n return totalSize;\n };\n\n const handleStartScrollClick = () => {\n moveTabsScroll(-1 * getScrollSize());\n };\n\n const handleEndScrollClick = () => {\n moveTabsScroll(getScrollSize());\n }; // TODO Remove as browser support for hidding the scrollbar\n // with CSS improves.\n\n\n const handleScrollbarSizeChange = React.useCallback(scrollbarWidth => {\n setScrollerStyle({\n overflow: null,\n scrollbarWidth\n });\n }, []);\n\n const getConditionalElements = () => {\n const conditionalElements = {};\n conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/_jsx(TabsScrollbarSize, {\n onChange: handleScrollbarSizeChange,\n className: clsx(classes.scrollableX, classes.hideScrollbar)\n }) : null;\n const scrollButtonsActive = displayScroll.start || displayScroll.end;\n const showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === true);\n conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, _extends({\n orientation: orientation,\n direction: isRtl ? 'right' : 'left',\n onClick: handleStartScrollClick,\n disabled: !displayScroll.start\n }, TabScrollButtonProps, {\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n })) : null;\n conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, _extends({\n orientation: orientation,\n direction: isRtl ? 'left' : 'right',\n onClick: handleEndScrollClick,\n disabled: !displayScroll.end\n }, TabScrollButtonProps, {\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n })) : null;\n return conditionalElements;\n };\n\n const scrollSelectedIntoView = useEventCallback(animation => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n\n if (!tabMeta || !tabsMeta) {\n return;\n }\n\n if (tabMeta[start] < tabsMeta[start]) {\n // left side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);\n scroll(nextScrollStart, {\n animation\n });\n } else if (tabMeta[end] > tabsMeta[end]) {\n // right side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);\n scroll(nextScrollStart, {\n animation\n });\n }\n });\n const updateScrollButtonState = useEventCallback(() => {\n if (scrollable && scrollButtons !== false) {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollWidth,\n clientWidth\n } = tabsRef.current;\n let showStartScroll;\n let showEndScroll;\n\n if (vertical) {\n showStartScroll = scrollTop > 1;\n showEndScroll = scrollTop < scrollHeight - clientHeight - 1;\n } else {\n const scrollLeft = getNormalizedScrollLeft(tabsRef.current, theme.direction); // use 1 for the potential rounding error with browser zooms.\n\n showStartScroll = isRtl ? scrollLeft < scrollWidth - clientWidth - 1 : scrollLeft > 1;\n showEndScroll = !isRtl ? scrollLeft < scrollWidth - clientWidth - 1 : scrollLeft > 1;\n }\n\n if (showStartScroll !== displayScroll.start || showEndScroll !== displayScroll.end) {\n setDisplayScroll({\n start: showStartScroll,\n end: showEndScroll\n });\n }\n }\n });\n React.useEffect(() => {\n const handleResize = debounce(() => {\n updateIndicatorState();\n updateScrollButtonState();\n });\n const win = ownerWindow(tabsRef.current);\n win.addEventListener('resize', handleResize);\n let resizeObserver;\n\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize);\n Array.from(tabListRef.current.children).forEach(child => {\n resizeObserver.observe(child);\n });\n }\n\n return () => {\n handleResize.clear();\n win.removeEventListener('resize', handleResize);\n\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [updateIndicatorState, updateScrollButtonState]);\n const handleTabsScroll = React.useMemo(() => debounce(() => {\n updateScrollButtonState();\n }), [updateScrollButtonState]);\n React.useEffect(() => {\n return () => {\n handleTabsScroll.clear();\n };\n }, [handleTabsScroll]);\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n updateIndicatorState();\n updateScrollButtonState();\n });\n React.useEffect(() => {\n // Don't animate on the first render.\n scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);\n }, [scrollSelectedIntoView, indicatorStyle]);\n React.useImperativeHandle(action, () => ({\n updateIndicator: updateIndicatorState,\n updateScrollButtons: updateScrollButtonState\n }), [updateIndicatorState, updateScrollButtonState]);\n\n const indicator = /*#__PURE__*/_jsx(TabsIndicator, _extends({}, TabIndicatorProps, {\n className: clsx(classes.indicator, TabIndicatorProps.className),\n ownerState: ownerState,\n style: _extends({}, indicatorStyle, TabIndicatorProps.style)\n }));\n\n let childIndex = 0;\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n const childValue = child.props.value === undefined ? childIndex : child.props.value;\n valueToIndex.set(childValue, childIndex);\n const selected = childValue === value;\n childIndex += 1;\n return /*#__PURE__*/React.cloneElement(child, _extends({\n fullWidth: variant === 'fullWidth',\n indicator: selected && !mounted && indicator,\n selected,\n selectionFollowsFocus,\n onChange,\n textColor,\n value: childValue\n }, childIndex === 1 && value === false && !child.props.tabIndex ? {\n tabIndex: 0\n } : {}));\n });\n\n const handleKeyDown = event => {\n const list = tabListRef.current;\n const currentFocus = ownerDocument(list).activeElement; // Keyboard navigation assumes that [role=\"tab\"] are siblings\n // though we might warn in the future about nested, interactive elements\n // as a a11y violation\n\n const role = currentFocus.getAttribute('role');\n\n if (role !== 'tab') {\n return;\n }\n\n let previousItemKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n\n if (orientation === 'horizontal' && isRtl) {\n // swap previousItemKey with nextItemKey\n previousItemKey = 'ArrowRight';\n nextItemKey = 'ArrowLeft';\n }\n\n switch (event.key) {\n case previousItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n break;\n\n case nextItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n break;\n\n case 'Home':\n event.preventDefault();\n moveFocus(list, null, nextItem);\n break;\n\n case 'End':\n event.preventDefault();\n moveFocus(list, null, previousItem);\n break;\n\n default:\n break;\n }\n };\n\n const conditionalElements = getConditionalElements();\n return /*#__PURE__*/_jsxs(TabsRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n as: component\n }, other, {\n children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/_jsxs(TabsScroller, {\n className: classes.scroller,\n ownerState: ownerState,\n style: {\n overflow: scrollerStyle.overflow,\n [vertical ? `margin${isRtl ? 'Left' : 'Right'}` : 'marginBottom']: visibleScrollbar ? undefined : -scrollerStyle.scrollbarWidth\n },\n ref: tabsRef,\n onScroll: handleTabsScroll,\n children: [/*#__PURE__*/_jsx(FlexContainer, {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-orientation\": orientation === 'vertical' ? 'vertical' : null,\n className: classes.flexContainer,\n ownerState: ownerState,\n onKeyDown: handleKeyDown,\n ref: tabListRef,\n role: \"tablist\",\n children: children\n }), mounted && indicator]\n }), conditionalElements.scrollButtonEnd]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.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 * Callback fired when the component mounts.\n * This is useful when you want to trigger an action programmatically.\n * It supports two actions: `updateIndicator()` and `updateScrollButtons()`\n *\n * @param {object} actions This object contains all possible actions\n * that can be triggered programmatically.\n */\n action: refType,\n\n /**\n * If `true`, the scroll buttons aren't forced hidden on mobile.\n * By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.\n * @default false\n */\n allowScrollButtonsMobile: PropTypes.bool,\n\n /**\n * The label for the Tabs as a string.\n */\n 'aria-label': PropTypes.string,\n\n /**\n * An id or list of ids separated by a space that label the Tabs.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * If `true`, the tabs are centered.\n * This prop is intended for large views.\n * @default false\n */\n centered: PropTypes.bool,\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 * Determines the color of the indicator.\n * @default 'primary'\n */\n indicatorColor: PropTypes.oneOf(['primary', 'secondary']),\n\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {any} value We default to the index of the child (number)\n */\n onChange: PropTypes.func,\n\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * The component used to render the scroll buttons.\n * @default TabScrollButton\n */\n ScrollButtonComponent: PropTypes.elementType,\n\n /**\n * Determine behavior of scroll buttons when tabs are set to scroll:\n *\n * - `auto` will only present them when not all the items are visible.\n * - `true` will always present them.\n * - `false` will never present them.\n *\n * By default the scroll buttons are hidden on mobile.\n * This behavior can be disabled with `allowScrollButtonsMobile`.\n * @default 'auto'\n */\n scrollButtons: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOf(['auto', false, true]),\n\n /**\n * If `true` the selected tab changes on focus. Otherwise it only\n * changes on activation.\n */\n selectionFollowsFocus: 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 * Props applied to the tab indicator element.\n * @default {}\n */\n TabIndicatorProps: PropTypes.object,\n\n /**\n * Props applied to the [`TabScrollButton`](/api/tab-scroll-button/) element.\n * @default {}\n */\n TabScrollButtonProps: PropTypes.object,\n\n /**\n * Determines the color of the `Tab`.\n * @default 'primary'\n */\n textColor: PropTypes.oneOf(['inherit', 'primary', 'secondary']),\n\n /**\n * The value of the currently selected `Tab`.\n * If you don't want any selected `Tab`, you can set this prop to `false`.\n */\n value: PropTypes.any,\n\n /**\n * Determines additional display behavior of the tabs:\n *\n * - `scrollable` will invoke scrolling properties and allow for horizontally\n * scrolling (or swiping) of the tab bar.\n * -`fullWidth` will make the tabs grow to use all the available space,\n * which should be used for small views, like on mobile.\n * - `standard` will render the default state.\n * @default 'standard'\n */\n variant: PropTypes.oneOf(['fullWidth', 'scrollable', 'standard']),\n\n /**\n * If `true`, the scrollbar is visible. It can be useful when displaying\n * a long vertical list of tabs.\n * @default false\n */\n visibleScrollbar: PropTypes.bool\n} : void 0;\nexport default Tabs;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabUtilityClass(slot) {\n return generateUtilityClass('MuiTab', slot);\n}\nconst tabClasses = generateUtilityClasses('MuiTab', ['root', 'labelIcon', 'textColorInherit', 'textColorPrimary', 'textColorSecondary', 'selected', 'disabled', 'fullWidth', 'wrapped', 'iconWrapper']);\nexport default tabClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"disableFocusRipple\", \"fullWidth\", \"icon\", \"iconPosition\", \"indicator\", \"label\", \"onChange\", \"onClick\", \"onFocus\", \"selected\", \"selectionFollowsFocus\", \"textColor\", \"value\", \"wrapped\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport unsupportedProp from '../utils/unsupportedProp';\nimport tabClasses, { getTabUtilityClass } from './tabClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n textColor,\n fullWidth,\n wrapped,\n icon,\n label,\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', icon && label && 'labelIcon', `textColor${capitalize(textColor)}`, fullWidth && 'fullWidth', wrapped && 'wrapped', selected && 'selected', disabled && 'disabled'],\n iconWrapper: ['iconWrapper']\n };\n return composeClasses(slots, getTabUtilityClass, classes);\n};\n\nconst TabRoot = styled(ButtonBase, {\n name: 'MuiTab',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.label && ownerState.icon && styles.labelIcon, styles[`textColor${capitalize(ownerState.textColor)}`], ownerState.fullWidth && styles.fullWidth, ownerState.wrapped && styles.wrapped];\n }\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.button, {\n maxWidth: 360,\n minWidth: 90,\n position: 'relative',\n minHeight: 48,\n flexShrink: 0,\n padding: '12px 16px',\n overflow: 'hidden',\n whiteSpace: 'normal',\n textAlign: 'center'\n}, ownerState.label && {\n flexDirection: ownerState.iconPosition === 'top' || ownerState.iconPosition === 'bottom' ? 'column' : 'row'\n}, {\n lineHeight: 1.25\n}, ownerState.icon && ownerState.label && {\n minHeight: 72,\n paddingTop: 9,\n paddingBottom: 9,\n [`& > .${tabClasses.iconWrapper}`]: _extends({}, ownerState.iconPosition === 'top' && {\n marginBottom: 6\n }, ownerState.iconPosition === 'bottom' && {\n marginTop: 6\n }, ownerState.iconPosition === 'start' && {\n marginRight: theme.spacing(1)\n }, ownerState.iconPosition === 'end' && {\n marginLeft: theme.spacing(1)\n })\n}, ownerState.textColor === 'inherit' && {\n color: 'inherit',\n opacity: 0.6,\n // same opacity as theme.palette.text.secondary\n [`&.${tabClasses.selected}`]: {\n opacity: 1\n },\n [`&.${tabClasses.disabled}`]: {\n opacity: theme.palette.action.disabledOpacity\n }\n}, ownerState.textColor === 'primary' && {\n color: theme.palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: theme.palette.primary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: theme.palette.text.disabled\n }\n}, ownerState.textColor === 'secondary' && {\n color: theme.palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: theme.palette.secondary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: theme.palette.text.disabled\n }\n}, ownerState.fullWidth && {\n flexShrink: 1,\n flexGrow: 1,\n flexBasis: 0,\n maxWidth: 'none'\n}, ownerState.wrapped && {\n fontSize: theme.typography.pxToRem(12)\n}));\nconst Tab = /*#__PURE__*/React.forwardRef(function Tab(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTab'\n });\n\n const {\n className,\n disabled = false,\n disableFocusRipple = false,\n // eslint-disable-next-line react/prop-types\n fullWidth,\n icon: iconProp,\n iconPosition = 'top',\n // eslint-disable-next-line react/prop-types\n indicator,\n label,\n onChange,\n onClick,\n onFocus,\n // eslint-disable-next-line react/prop-types\n selected,\n // eslint-disable-next-line react/prop-types\n selectionFollowsFocus,\n // eslint-disable-next-line react/prop-types\n textColor = 'inherit',\n value,\n wrapped = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n disabled,\n disableFocusRipple,\n selected,\n icon: !!iconProp,\n iconPosition,\n label: !!label,\n fullWidth,\n textColor,\n wrapped\n });\n\n const classes = useUtilityClasses(ownerState);\n const icon = iconProp && label && /*#__PURE__*/React.isValidElement(iconProp) ? /*#__PURE__*/React.cloneElement(iconProp, {\n className: clsx(classes.iconWrapper, iconProp.props.className)\n }) : iconProp;\n\n const handleClick = event => {\n if (!selected && onChange) {\n onChange(event, value);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const handleFocus = event => {\n if (selectionFollowsFocus && !selected && onChange) {\n onChange(event, value);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n return /*#__PURE__*/_jsxs(TabRoot, _extends({\n focusRipple: !disableFocusRipple,\n className: clsx(classes.root, className),\n ref: ref,\n role: \"tab\",\n \"aria-selected\": selected,\n disabled: disabled,\n onClick: handleClick,\n onFocus: handleFocus,\n ownerState: ownerState,\n tabIndex: selected ? 0 : -1\n }, other, {\n children: [iconPosition === 'top' || iconPosition === 'start' ? /*#__PURE__*/_jsxs(React.Fragment, {\n children: [icon, label]\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [label, icon]\n }), indicator]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tab.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 * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\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`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display.\n */\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n\n /**\n * The position of the icon relative to the label.\n * @default 'top'\n */\n iconPosition: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n\n /**\n * The label element.\n */\n label: PropTypes.node,\n\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\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 * You can provide your own value. Otherwise, we fallback to the child position index.\n */\n value: PropTypes.any,\n\n /**\n * Tab labels appear in a single row.\n * They can use a second line if needed.\n * @default false\n */\n wrapped: PropTypes.bool\n} : void 0;\nexport default Tab;","import { useEffect, useState, useMemo, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport SwipeableViews from 'react-swipeable-views';\nimport { Link as RouterLink, useLocation, useParams } from 'react-router-dom';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport CalendarTodayIcon from '@mui/icons-material/CalendarToday';\nimport DeviceCalendar from './DeviceCalendar';\nimport DeviceView from './DeviceView';\nimport LayoutPaper from '../../Components/LayoutPaper';\nimport PermDeviceInformationIcon from '@mui/icons-material/PermDeviceInformation';\nimport { useTheme, Box, Typography, Tab, Tabs } from '@mui/material';\nimport { MainContext, useWsDataProvider } from 'kerberus-components';\nimport moment from 'moment';\n\nfunction TabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n
\n );\n}\n\nTabPanel.propTypes = {\n children: PropTypes.node,\n index: PropTypes.number.isRequired,\n value: PropTypes.number.isRequired,\n};\n\nfunction a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n}\n\nconst parseLocation = (location) => {\n var split = location.split('/');\n switch (split[split.length - 1]) {\n case ('device'): return 0;\n case ('calendar'): return 1;\n default: return 0;\n }\n};\n\n\nexport default function DeviceRoutes() {\n const { user } = useContext(MainContext);\n const { userId, deviceId } = useParams();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const location = useLocation();\n const [value, setValue] = useState(0);\n const [calDate, setCalDate] = useState(new Date());\n\n const { getData, data: providerData } = useWsDataProvider();\n\n const handleChangeIndex = (index) => {\n setValue(index);\n };\n\n const devGroup = useMemo(() => user.device_groups.find(i => i.id === deviceId), [deviceId, user.device_groups]);\n\n const macAddress = useMemo(() => {\n if (devGroup) {\n return devGroup.addresses.map(i => i.address);\n }\n return null;\n }, [devGroup]);\n\n useEffect(() => {\n if (macAddress && calDate) {\n getData('socketLocation', 'devtrackingAddresses', {\n filters: {\n mac_array: macAddress, start_time: moment(calDate).startOf('week'), end_time: moment(calDate).endOf('week')\n }\n });\n }\n }, [calDate, getData, macAddress]);\n\n\n\n useEffect(() => { setValue(parseLocation(location.pathname)); }, [location]);\n\n return (\n \n \n \n } label={isSmall ? \"\" : \"Device\"} component={RouterLink} {...a11yProps(0)} to={`/profile/${userId}/device/${deviceId}`} replace />\n } label={isSmall ? \"\" : \"Calendar\"} component={RouterLink} {...a11yProps(1)} to={`/profile/${userId}/device/${deviceId}/calendar`} replace />\n \n \n \n \n \n \n \n \n \n \n \n );\n\n}","import React from 'react';\nimport {\n Typography, Box, IconButton, useTheme, useMediaQuery\n} from '@mui/material';\nimport InfoIcon from '@mui/icons-material/Info';\nimport { SmallAvatarWrapper } from 'kerberus-components';\nimport { Circle } from '../../Components/Icons/Shapes';\n\nexport default React.memo(function SocialGroupHeader({ socialGroup, modal, count, isActive, isActiveWeekday }) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n\n return (\n <>\n \n \n modal.setModalOpen(true)}\n userId={socialGroup.id} imageType=\"socialgrouppic\" imageSize=\"_64\" />\n {socialGroup.name}\n \n \n\n {!isSmall &&\n \n {count}/{socialGroup.users.length}\n \n }\n {!isSmall &&\n modal.setModalOpen(true)}\n sx={isSmall ? { position: \"relative\", bottom: 30, right: 0 } : { paddingY: 1, marginBottom: 0.5, paddingX: 1 }}\n >\n \n \n }\n {(!isActive || !isActiveWeekday) &&\n \n Not active right now\n \n }\n \n );\n});","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCardMediaUtilityClass(slot) {\n return generateUtilityClass('MuiCardMedia', slot);\n}\nconst cardMediaClasses = generateUtilityClasses('MuiCardMedia', ['root', 'media', 'img']);\nexport default cardMediaClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"image\", \"src\", \"style\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getCardMediaUtilityClass } from './cardMediaClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n isMediaComponent,\n isImageComponent\n } = ownerState;\n const slots = {\n root: ['root', isMediaComponent && 'media', isImageComponent && 'img']\n };\n return composeClasses(slots, getCardMediaUtilityClass, classes);\n};\n\nconst CardMediaRoot = styled('div', {\n name: 'MuiCardMedia',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n isMediaComponent,\n isImageComponent\n } = ownerState;\n return [styles.root, isMediaComponent && styles.media, isImageComponent && styles.img];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'block',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n}, ownerState.isMediaComponent && {\n width: '100%'\n}, ownerState.isImageComponent && {\n // ⚠️ object-fit is not supported by IE11.\n objectFit: 'cover'\n}));\nconst MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img'];\nconst IMAGE_COMPONENTS = ['picture', 'img'];\nconst CardMedia = /*#__PURE__*/React.forwardRef(function CardMedia(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCardMedia'\n });\n\n const {\n children,\n className,\n component = 'div',\n image,\n src,\n style\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isMediaComponent = MEDIA_COMPONENTS.indexOf(component) !== -1;\n const composedStyle = !isMediaComponent && image ? _extends({\n backgroundImage: `url(\"${image}\")`\n }, style) : style;\n\n const ownerState = _extends({}, props, {\n component,\n isMediaComponent,\n isImageComponent: IMAGE_COMPONENTS.indexOf(component) !== -1\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardMediaRoot, _extends({\n className: clsx(classes.root, className),\n as: component,\n role: !isMediaComponent && image ? 'img' : undefined,\n ref: ref,\n style: composedStyle,\n ownerState: ownerState,\n src: isMediaComponent ? image || src : undefined\n }, other, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardMedia.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, props => {\n if (!props.children && !props.image && !props.src && !props.component) {\n return new Error('MUI: Either `children`, `image`, `src` or `component` prop must be specified.');\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 * 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 * Image to be displayed as a background image.\n * Either `image` or `src` prop must be specified.\n * Note that caller must specify height otherwise the image will not be visible.\n */\n image: PropTypes.string,\n\n /**\n * An alias for `image` property.\n * Available only with media components.\n * Media components: `video`, `audio`, `picture`, `iframe`, `img`.\n */\n src: PropTypes.string,\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} : void 0;\nexport default CardMedia;","import {\n Typography, Box, Card, CardContent, IconButton, Modal, Button, CardMedia, Grid, useMediaQuery, useTheme\n} from '@mui/material';\nimport ActivityLog from '../ActivityLog';\nimport BallotIcon from '@mui/icons-material/Ballot';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport ClearIcon from '@mui/icons-material/Clear';\n\n\n\n\nexport default function SocialGroupModal({ modal, groupId, socialGroup }) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n\n\n const modalStyleMobile = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n bgcolor: 'background.paper',\n border: '1px solid #000',\n boxShadow: 24,\n p: modal.activityLogOn ? 1 : 4,\n pr: modal.activityLogOn ? 6 : 4,\n borderRadius: 4,\n display: \"flex\",\n width: \"90vw\",\n height: modal.activityLogOn ? \"75%\" : undefined,\n };\n\n return (\n\n modal.setModalOpen(false)}\n aria-labelledby=\"img-modal-title\"\n aria-describedby=\"img-modal-description\"\n /* keepMounted */\n >\n {isSmall\n ?\n \n {modal.activityLogOn\n ?\n <>\n modal.setActivyLogOn(false)}\n sx={{ position: \"absolute\", right: 8, top: 8 }}\n >\n \n \n\n \n \n \n \n :\n \n modal.setModalOpen(false)}\n sx={{ position: \"absolute\", right: 8, top: 8 }}\n >\n \n \n\n \n \n \n\n\n \n \n \n \n {socialGroup.name}\n \n \n {socialGroup.description}\n \n \n \n \n \n }\n \n :\n \n {modal.activityLogOn\n ?\n <>\n modal.setActivyLogOn(false)}\n sx={{ position: \"absolute\", right: 8, top: 8 }}\n >\n \n \n\n \n \n \n \n :\n <>\n modal.setModalOpen(false)}\n sx={{ position: \"absolute\", right: 8, top: 8 }}\n >\n \n \n\n \n\n \n \n \n {socialGroup.name}\n \n \n {socialGroup.description}\n \n \n \n \n \n \n \n }\n \n }\n\n \n );\n}","import AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings';\nimport CalendarMonthIcon from '@mui/icons-material/CalendarMonth';\nimport HelpIcon from '@mui/icons-material/Help';\nimport LanguageIcon from '@mui/icons-material/Language';\nimport LinkedInIcon from '@mui/icons-material/LinkedIn';\nimport TwitterIcon from '@mui/icons-material/Twitter';\nimport WhatsAppIcon from '@mui/icons-material/WhatsApp';\nimport AdapterMoment from '@mui/lab/AdapterMoment';\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\nimport TimePicker from '@mui/lab/TimePicker';\nimport { Autocomplete, Box, Button, Checkbox, Divider, FormControlLabel, FormGroup, Grid, IconButton, InputAdornment, SvgIcon, TextField, Tooltip, Typography } from \"@mui/material\";\nimport * as React from 'react';\nimport { useState } from \"react\";\nimport { Controller } from \"react-hook-form\";\nimport { Link } from 'react-router-dom';\nimport { ReactComponent as SlackLogo } from '../../Assets/Images/Slack_Mark.svg';\nimport ConfirmationDialog from '../../Components/ConfirmationDialog';\nimport HelperIcon from '../../Components/HelperIcon';\n\nfunction SlackIcon(props) {\n return (\n \n \n \n \n \n );\n}\n\nexport default React.memo(function SocialGroupSettingsAdmin({\n handleSubmit,\n onSubmit,\n control,\n formState,\n register,\n watch,\n isSmall,\n socialGroup,\n user,\n handleChangeGroup,\n setValue,\n dayOptions\n}) {\n const [openCreatorDialog, setOpenCreatorDialog] = useState(false);\n const [isDisabled, setIsDisabled,] = useState(true);\n const [socialLinkDialog, setSocialLinkDialog] = useState();\n\n const contentSocialLinks = (\n \n Promote {openCreatorDialog.first_name && openCreatorDialog.last_name ? openCreatorDialog.first_name + \" \" + openCreatorDialog.last_name : openCreatorDialog.username} to the manager of the group.\n
\n
\n Please ensure that you understand that you will be giving your manager role to this person and you will lose your permissions as the group manager.\n
\n
\n The changes take effect when you press the Save button located at the bottom of the group data sharing settings.\n
\n
\n \n I understand\n setIsDisabled(isDisabled => !isDisabled)} />\n \n
\n
\n );\n\n return (\n
\n\n \n \n \n \n }\n />\n \n \n \n\n \n \n \n \n Public\n \n \n \n \n \n \n \n }\n label={\n
\n \n
\n }\n labelPlacement=\"start\"\n />\n }\n />\n
\n \n \n Make the group public.\n \n \n
\n
\n
\n
\n\n \n\n {socialGroup.creator === user.id &&\n <>\n \n \n \n \n \n option.first_name && option.last_name ? option.first_name + \" \" + option.last_name : option.username}\n fullWidth\n sx={{ marginLeft: 1 }}\n value={socialGroup?.users[socialGroup?.users.findIndex(item => item.id === field.value)]}\n onChange={(e, newVal) => newVal !== null && setOpenCreatorDialog(newVal)}\n renderInput={(params) => }\n />\n }\n />\n \n \n \n }\n\n\n \n \n Social Group Links\n \n\n \n\n \n\n \n\n \n {isSmall &&\n Slack\n }\n \n \n \n \n \n \n \n \n \n )\n }}\n\n\n />\n \n \n }\n />\n\n \n\n \n \n Member Social Links\n \n \n \n \n\n \n \n \n \n \n }\n label={}\n labelPlacement=\"top\"\n />\n \n }\n />\n\n \n \n \n \n \n }\n label={}\n labelPlacement=\"top\"\n />\n \n }\n />\n \n \n \n \n \n }\n label={}\n labelPlacement=\"top\"\n />\n \n }\n />\n \n \n \n \n \n }\n label={}\n labelPlacement=\"top\"\n />\n \n }\n />\n \n \n \n \n \n }\n label={}\n labelPlacement=\"top\"\n />\n \n }\n />\n \n \n\n \n\n \n \n Visibility time\n \n \n \n \n \n } label=\"Always active\" labelPlacement=\"top\"\n />\n }\n />\n\n \n\n \n \n \n Starting Time\n \n\n \n }\n disabled={watch(\"alwaysActive\")}\n />\n }\n />\n \n\n \n\n \n \n Ending Time\n \n \n }\n disabled={watch(\"alwaysActive\")}\n />\n }\n />\n \n \n\n \n\n \n \n (\n <>\n {dayOptions.map((day) => (\n existingValue == day.value\n )}\n onChange={(event, checked) => {\n if (checked) {\n field.onChange([\n ...field.value,\n event.target.value\n ]);\n } else {\n field.onChange(\n field.value.filter(\n (value) => value !== event.target.value\n )\n );\n }\n }}\n />\n }\n />\n ))}\n \n )}\n />\n \n \n\n \n \n \n\n setValue('creator', openCreatorDialog.id)}\n isDisabled={isDisabled}\n name={openCreatorDialog.first_name && openCreatorDialog.last_name ? openCreatorDialog.first_name + \" \" + openCreatorDialog.last_name : openCreatorDialog.username}\n open={openCreatorDialog}\n setOpen={setOpenCreatorDialog}\n content={contentSocialLinks}\n stringTitle\n />\n\n\n \n\n\n
\n\n
\n );\n});","import AdapterMoment from '@mui/lab/AdapterMoment';\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\nimport TimePicker from '@mui/lab/TimePicker';\nimport { Button, Checkbox, Divider, FormControlLabel, FormGroup, Grid, TextField, Tooltip, Typography, useMediaQuery, useTheme } from \"@mui/material\";\nimport * as React from 'react';\nimport { Controller } from \"react-hook-form\";\n\nconst contentPublic = (<>
Allow profile usage in info dashboard
);\nconst contentPublicSocialsGroup = (<>
Allow profile visibility in your group's social list
);\nconst contentPublicCalendar = (<>
Allow other users to see your calendar
);\n\nexport default React.memo(function SocialGroupSettingsUser({\n handleSubmit,\n onSubmit,\n control,\n watch,\n formState,\n dayOptions\n}) {\n\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n\n return (\n
\n \n\n \n \n \n \n \n \n }\n label={\n
\n Public\n
\n Social\n
\n }\n labelPlacement=\"top\"\n />\n }\n />\n
\n\n \n \n \n \n \n }\n label={\n
\n Public\n
\n Dashboard\n
\n }\n labelPlacement=\"top\"\n />\n }\n />\n
\n\n \n \n \n \n \n }\n label={\n
\n Public\n
\n Calendar\n
\n }\n labelPlacement=\"top\"\n />\n }\n />\n
\n
\n\n \n\n \n \n Visibility time\n \n \n \n \n \n }\n label={\n
\n Always active\n
\n }\n labelPlacement=\"top\"\n />\n }\n />\n
\n\n \n \n \n Starting Time\n \n \n }\n disabled={watch(\"alwaysActive\")}\n />\n }\n />\n \n \n \n Ending Time\n \n \n }\n disabled={watch(\"alwaysActive\")}\n />\n }\n />\n \n \n\n \n \n (\n <>\n {dayOptions.map((day) => (\n existingValue == day.value\n )}\n onChange={(event, checked) => {\n if (checked) {\n field.onChange([\n ...field.value,\n event.target.value\n ]);\n } else {\n field.onChange(\n field.value.filter(\n (value) => value !== event.target.value\n )\n );\n }\n }}\n />\n }\n />\n ))}\n \n )}\n />\n \n \n\n \n \n \n\n
\n
\n );\n});","import AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings';\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport GroupAddIcon from '@mui/icons-material/GroupAdd';\nimport { Avatar, Badge, Button, Dialog, DialogContent, DialogTitle, Divider, Grid, IconButton, InputAdornment, TextField, Tooltip, Typography, useMediaQuery, useTheme } from \"@mui/material\";\nimport { MainContext, SmallAvatarWrapper, useFetchCloud } from 'kerberus-components';\nimport moment from 'moment';\nimport * as React from 'react';\nimport { useCallback, useContext, useEffect, useState } from \"react\";\nimport { useDropzone } from 'react-dropzone';\nimport { useForm } from \"react-hook-form\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useSWRConfig } from 'swr';\nimport ConfirmationDialog from '../../Components/ConfirmationDialog';\nimport ActiveTime from '../../Components/Groups/ActiveTime';\nimport SocialGroupHeader from '../../Components/Groups/SocialGroupHeader';\nimport SocialGroupModal from '../../Components/Groups/SocialGroupModal';\nimport SocialGroupSettingsAdmin from '../../Components/Groups/SocialGroupSettingsAdmin';\nimport SocialGroupSettingsUser from '../../Components/Groups/SocialGroupSettingsUser';\nimport LayoutPaper from '../../Components/LayoutPaper';\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\n\nconst contentLeaveGroup = (\n \n Are you sure you want to leave this group?\n \n);\n\nconst toastDataShareGroup = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"Group data sharing settings saved!\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nconst toastError = {\n open: true,\n type: \"error\",\n title: \"Error\",\n message: `Something went wrong!`,\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nconst copyToast = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"Dashboard URL copied to clipboard successfully\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nexport default function GroupSettings({ socialGroup, grouprequestsData, modal, count, isActive, isActiveWeekday }) {\n const { setOpen, user } = useContext(MainContext);\n const [openLeaveGroup, setOpenLeaveGroup] = useState(false);\n const [valueLeaveGroup, setValueLeaveGroup] = useState(false);\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const navigate = useNavigate();\n const { groupId } = useParams();\n const { mutate } = useSWRConfig();\n\n /* Image things */\n const [uploadDialogOpen, setUploadDialogOpen] = useState(false);\n const [uploadDisabled, setUploadDisabled] = useState(false);\n const [loading, setLoading] = useState('');\n const [file, setFile] = useState(null);\n const [image, setImage] = useState();\n\n const [userGroupId, setUserGroupId] = useState(user.social_groups.findIndex(i => i.id === groupId));\n\n const [url, setUrl] = useState('');\n const [urlDialog, setUrlDialog] = useState(false);\n const [dialogShown, setDialogShown] = useState(false);\n const { setOpen: setOpenToast } = useContext(MainContext);\n\n const handleLayoutUrl = async (e) => {\n const res = await fetchCloud(`users/generate_dashboard`, 'post', {\n dashboard_type: \"socialgroup\",\n social_group: groupId,\n });\n setUrl(res.data);\n };\n\n useEffect(() => {\n setUserGroupId(user.social_groups.findIndex(i => i.id === groupId));\n }, [groupId, user.social_groups]);\n\n const { handleSubmit, control, formState, register, watch } = useForm({\n defaultValues: {\n publicSocialUser: user?.social_groups[userGroupId]?.permissions?.public_social,\n publicDashboardUser: user?.social_groups[userGroupId]?.permissions?.public_dashboard,\n publicCalendarUser: user?.social_groups[userGroupId]?.permissions?.public_calendar,\n alwaysActive: user?.social_groups[userGroupId]?.permissions?.utc_start === \"00:00:00\" && user?.social_groups[userGroupId]?.permissions?.utc_end === \"1 00:00:00\",\n startTimeUser: moment.utc().startOf('day').add(user?.social_groups[userGroupId]?.permissions?.utc_start).local(),\n endTimeUser: moment.utc().startOf('day').add(user?.social_groups[userGroupId]?.permissions?.utc_end).local(),\n daysEnabledUser: user?.social_groups[userGroupId]?.permissions?.enable_days.map(number => String(number))\n },\n mode: \"onChange\"\n });\n\n const onSubmit = data => handleChangeUser(data);\n\n const { handleSubmit: handleSubmitGroup, control: controlGroup, formState: formStateGroup, register: registerGroup, watch: watchGroup, setValue: setValueGroup } = useForm({\n defaultValues: {\n description: socialGroup.description,\n creator: socialGroup.creator,\n public: socialGroup.public,\n slack: socialGroup?.links?.slack,\n calendlyHide: !socialGroup.links.calendlyHide,\n company_pageHide: !socialGroup.links.company_pageHide,\n linkedinHide: !socialGroup.links.linkedinHide,\n twitterHide: !socialGroup.links.twitterHide,\n whatsappHide: !socialGroup.links.whatsappHide,\n alwaysActive: socialGroup.utc_start === \"00:00:00\" && socialGroup.utc_end === \"1 00:00:00\",\n startTime: moment.utc().startOf('day').add(socialGroup.utc_start).local(),\n endTime: moment.utc().startOf('day').add(socialGroup.utc_end).local(),\n daysEnabled: socialGroup.enable_days.map(number => String(number))\n\n },\n mode: \"onChange\"\n });\n\n const onSubmitGroup = data => handleChangeGroup(data);\n\n const dayOptions = [\n {\n label: \"Mon\",\n value: 1\n },\n {\n label: \"Tue\",\n value: 2\n },\n {\n label: \"Wed\",\n value: 3\n },\n {\n label: \"Thu\",\n value: 4\n },\n {\n label: \"Fri\",\n value: 5\n },\n {\n label: \"Sat\",\n value: 6\n },\n {\n label: \"Sun\",\n value: 7\n }\n ];\n\n const { fetchCloud } = useFetchCloud();\n\n const handleLeaveGroup = async () => {\n try {\n await fetchCloud(`users/leave_social`, 'POST', {\n social_group: groupId\n });\n }\n catch (err) {\n console.error(err);\n }\n window.location.href = '/';\n };\n\n const handleChangeUser = async (e) => {\n console.log(e);\n let startDiff = null;\n let endDiff = null;\n\n if (!e.alwaysActive) {\n let startUtc = moment.utc(e.startTimeUser).set(\"second\", 0);\n let startUtcMid = startUtc.clone().startOf('day');\n startDiff = startUtc.diff(startUtcMid, 'seconds');\n let endUtc = moment.utc(e.endTimeUser).set(\"second\", 0);\n let endUtcMid = endUtc.clone().startOf('day');\n endDiff = endUtc.diff(endUtcMid, 'seconds');\n }\n\n try {\n await fetchCloud(`users/update_social_group_perm`, 'post', {\n social_group: groupId,\n public_social: e.publicSocialUser,\n public_dashboard: e.publicDashboardUser,\n public_calendar: e.publicCalendarUser,\n utc_start: !e.alwaysActive ? startDiff : 0,\n utc_end: !e.alwaysActive ? endDiff : 86400,\n enable_days: e.daysEnabledUser.sort().map(string => Number(string))\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastDataShareGroup);\n }\n catch (err) {\n setOpen(toastError);\n }\n };\n\n const handleChangeGroup = async (e) => {\n console.log(e);\n let startDiff = null;\n let endDiff = null;\n\n if (!e.alwaysActiveGroup) {\n let startUtc = moment.utc(e.startTime).set(\"second\", 0);\n let startUtcMid = startUtc.clone().startOf('day');\n startDiff = startUtc.diff(startUtcMid, 'seconds');\n let endUtc = moment.utc(e.endTime).set(\"second\", 0);\n let endUtcMid = endUtc.clone().startOf('day');\n endDiff = endUtc.diff(endUtcMid, 'seconds');\n }\n\n try {\n await fetchCloud(`users/socialgroupselect/${groupId}/`, 'PATCH', {\n public: e.public,\n description: e.description,\n utc_start: !e.alwaysActive ? startDiff : 0,\n utc_end: !e.alwaysActive ? endDiff : 86400,\n enable_days: e.daysEnabled.sort().map(string => Number(string)),\n links: {\n slack: e.slack,\n calendlyHide: !e.calendlyHide,\n company_pageHide: !e.company_pageHide,\n linkedinHide: !e.linkedinHide,\n twitterHide: !e.twitterHide,\n whatsappHide: !e.whatsappHide,\n },\n creator: e.creator,\n });\n mutate('users/socialgrouplist/');\n setOpen(toastDataShareGroup);\n }\n catch (err) {\n console.log(err)\n setOpen(toastError);\n }\n };\n\n const onDrop = useCallback(acceptedFiles => {\n setUploadDisabled(true);\n const imageUrl = URL.createObjectURL(acceptedFiles[0]);\n setImage(imageUrl);\n setFile(acceptedFiles[0]);\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop, multiple: false, disabled: uploadDisabled });\n\n const handleUpload = async () => {\n try {\n setLoading('Loading...');\n await fetchCloud(`upload/socialgroup`, 'post', {\n file: file,\n social_group: groupId\n }, true, true);\n window.location.reload();\n }\n catch (err) {\n setLoading('Failed upload');\n console.error(err);\n }\n };\n\n const copyToClipboardGroup = async () => {\n await navigator.clipboard.writeText(url);\n setOpenToast(copyToast);\n };\n\n const handleGetUrl = () => {\n if(!dialogShown) {\n setUrlDialog(true);\n /* setDialogShown(true); */\n } else {\n handleLayoutUrl()\n }\n }\n\n return (\n \n \n\n \n \n {!isSmall &&\n \n }\n \n\n \n navigate(-1)} >\n \n \n \n\n \n \n \n\n {(socialGroup.creator === user.id || user.perm_level === \"superuser\") &&\n \n item.social_group === groupId && item).length}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n componentsProps={{\n backgroundColor: \"red\",\n marginLeft: 10,\n position: \"relative\", left: 100\n }}\n color=\"error\">\n \n \n \n }\n\n {/* {(socialGroup.creator === user.id || user.perm_level === \"superuser\") &&\n \n \n \n \n \n \n \n \n )\n }}\n />\n \n } */}\n\n \n\n \n {/* User data share settings */}\n \n\n \n \n My data share settings in {socialGroup.name}\n \n \n \n \n\n {/* Group data share settings SUPERUSER/CREATOR */}\n {(socialGroup.creator === user.id || user.perm_level === \"superuser\") &&\n \n\n \n \n Group data share settings\n {!isSmall &&\n \n \n \n }\n \n \n \n \n \n \n \n \n \n \n )\n }}\n />\n \n \n {isSmall\n &&\n \n \n \n }\n \n {isSmall\n ?\n setUploadDialogOpen(true)} alt=\"GroupIconEdit\" userId={groupId} imageType=\"socialgrouppic\" imageSize=\"_128\" sx={{ height: 100, width: 100 }} />\n :\n\n \n }\n\n {!isSmall &&\n <>\n \n\n {/* COMMENTED OUT BECAUSE NOT DELETE METHOD NOT IN USE\n { setValuePic(groupId); setOpenPic(true); }} sx={{ marginLeft: 1 }}>\n \n \n */}\n \n }\n \n \n \n \n \n \n \n )\n }}\n />\n \n\n \n\n \n\n \n }\n \n\n {isSmall &&\n \n \n \n }\n\n setUploadDialogOpen(false)}\n >\n \n \n Upload Group Picture\n \n \n\n \n {!file &&\n
\n \n {\n uploadDisabled ?

File selected

:\n isDragActive ?\n

Drop the files here ...

:\n

{isSmall ? 'Press to select file' : 'Drag and drop some files here, or click to select files'}

\n }\n
}\n {file && \n \n {file.name}\n \n \n \n \n }\n
\n {image && }\n
\n
\n \n {loading}\n
\n
\n \n\n \n\n {handleLayoutUrl(); setDialogShown(true)}}\n name=\"dashboard URL\"\n open={urlDialog}\n setOpen={setUrlDialog}\n content={
\n By fetching this url and sharing this dashboard you have agreed and are aware that you will be sharing group information, images and location data to where the dashboard will be displayed.\n

\n Note that your responsibility is to make sure that there is no third-party access to the URL in order to prevent unauthorized copy and use.\n
}\n />\n\n \n\n
\n
\n );\n}\n\n","import {\n Box, Card, Modal, IconButton\n} from '@mui/material';\nimport ActivityLog from '../ActivityLog';\nimport ClearIcon from '@mui/icons-material/Clear';\n\n\nexport default function SocialGroupActivityLogModal({ modal, groupId }) {\n\n const modalStyleMobile = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n bgcolor: 'background.paper',\n border: '1px solid #000',\n boxShadow: 24,\n p: 1,\n pr: 6,\n borderRadius: 4,\n display: \"flex\",\n width: \"90vw\",\n height: \"75%\",\n };\n\n return (\n\n modal.setActivityLogModal(false)}\n aria-labelledby=\"img-modal-activity-title\"\n aria-describedby=\"img-modal-activity-description\"\n >\n \n modal.setActivityLogModal(false)}\n sx={{ position: \"absolute\", right: 8, top: 8 }}\n >\n \n \n \n \n \n \n \n );\n}","import { StyledBadgeAvatar } from 'kerberus-components';\nimport SocialIcons from '../SocialIcons';\nimport ProfileMenu from '../Profile/ProfileMenu';\nimport moment from 'moment';\nimport GetOnlineData from '../GetOnlineData';\nimport GetUserData from '../GetUserData';\n\nconst DatagridColumns = [\n {\n field: 'id', headerName: '', flex: 0.1, align: \"center\", renderCell: (e) => (\n = 5\n ?\n \"#FCC041\"\n :\n GetOnlineData(e.row).lastseenminutes > -5 && GetOnlineData(e.row).lastseenminutes < 5\n ?\n \"#8DBF30\"\n :\n '#adadb8'\n :\n '#adadb8'\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={e.row.id}\n lastseenminutes={GetOnlineData(e.row).lastseenminutes}\n busy={GetOnlineData(e.row).busy}\n imageSize=\"_32\"\n />\n )\n },\n {\n field: 'first_name', headerName: 'Name', flex: 0.65, renderCell: (e) => (\n
\n {e.row.first_name || e.row.last_name ? e.row.first_name + \" \" + e.row.last_name : e.row.username}\n
\n )\n },\n {\n field: 'links', headerName: 'Social Links', flex: 1, renderCell: (e) => (\n \n )\n },\n {\n field: '', headerName: 'Last seen', flex: 1, renderCell: (e) =>\n
\n {\n GetOnlineData(e.row).timestamp\n ?\n GetOnlineData(e.row).lastseenminutes <= 10 && GetOnlineData(e.row).lastseenminutes >= 5\n ?\n moment(GetOnlineData(e.row).timestamp).from(moment().add(30, 'seconds'))\n :\n GetOnlineData(e.row).lastseenminutes >= 10\n ?\n moment(GetOnlineData(e.row).timestamp).from(moment().add(30, 'seconds'))\n :\n GetOnlineData(e.row).layer_name\n ?\n GetOnlineData(e.row).layer_name\n :\n moment(GetOnlineData(e.row).timestamp).from(moment().add(30, 'seconds'))\n :\n 'Long time ago'\n }\n
\n },\n {\n field: 'Menu', headerName: '', flex: 0.2, renderCell: (e) => (\n \n )\n },\n];\n\n\nexport default DatagridColumns;","import React from 'react';\nimport { Typography, Box } from '@mui/material';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nconst DatagridColumnsMobile = [\n {\n field: 'username', flex: 1, headerName: 'Users',\n renderCell: (e) =>\n \n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n\n >\n \n \n {e.row.first_name && e.row.last_name ? `${e.row.first_name} ${e.row.last_name}` : e.row.username}\n \n \n \n\n \n {e.row.first_name &&\n <>\n \n First name\n \n \n {e.row.first_name}\n \n \n }\n\n {e.row.last_name &&\n <>\n \n Last Name\n \n \n {e.row.last_name}\n \n \n }\n \n Title\n \n \n {e.row.title}\n \n \n Company\n \n \n {e.row.company_name}\n \n\n \n \n \n },\n]\n\nexport default DatagridColumnsMobile;","import * as React from 'react';\nimport { useState } from 'react';\nimport {\n useTheme, IconButton, useMediaQuery, Tooltip, Link as MuiLink, Modal, Box\n} from '@mui/material';\nimport { useNavigate } from 'react-router-dom';\nimport SettingsIcon from '@mui/icons-material/Settings';\nimport InfoIcon from '@mui/icons-material/Info';\nimport GraphModal from '../../Components/Groups/GraphModal';\nimport BallotIcon from '@mui/icons-material/Ballot';\nimport { SlackIcon, SlackIconBlack } from '../../Components/Icons/Slack';\nimport DashboardIcon from '@mui/icons-material/Dashboard';\nimport DashboardModalSocialGroup from '../../Components/DashboardModalSocialGroup';\n\nconst style = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: \"85%\",\n height: \"90%\",\n bgcolor: 'background.paper',\n border: '2px solid #000',\n boxShadow: 24,\n};\n\nexport default React.memo(function SocialGroupToolbar({ socialGroup, modal, setActivityLogModal, activityData, setInterval, setDuration, interval, duration, chartType, setChartType, date, setDate }) {\n const navigate = useNavigate();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const [openGroup, setOpenGroup] = useState(false);\n\n return (\n <>\n {isSmall &&\n \n modal.setModalOpen(true)}\n >\n \n \n \n }\n \n setOpenGroup(true)}>\n \n \n \n \n \n {!socialGroup.links.slack\n ?\n \n :\n \n }\n \n \n {!isSmall &&\n \n setActivityLogModal(true)} sx={{ mr: 1 }}>\n \n \n \n }\n \n\n \n navigate('./settings')}>\n \n \n \n\n\n setOpenGroup(false)}\n aria-labelledby=\"modal-modal-title\"\n aria-describedby=\"modal-modal-description\"\n >\n \n \n \n \n \n );\n});","import * as React from 'react';\nimport { useContext, useState, useMemo, useEffect, useRef, useCallback } from 'react';\nimport {\n Grid, useTheme, useMediaQuery, Divider, Button, Badge\n} from '@mui/material';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport LayoutPaper from '../../Components/LayoutPaper';\nimport { MainContext } from 'kerberus-components';\nimport GroupAddIcon from '@mui/icons-material/GroupAdd';\nimport SocialGroupModal from '../../Components/Groups/SocialGroupModal';\n/* import GraphModal from '../../Components/Groups/GraphModal'; */\nimport SocialGroupActivityLogModal from '../../Components/Groups/SocialGroupActivityLogModal';\nimport UserList from '../../Components/UserList';\nimport DatagridColumns from '../../Components/Groups/DatagridColumns';\nimport ActiveTime from '../../Components/Groups/ActiveTime';\nimport DatagridColumnsMobile from '../../Components/Groups/DatagridColumnsMobile';\nimport SocialGroupHeader from '../../Components/Groups/SocialGroupHeader';\nimport SocialGroupToolbar from '../../Components/Groups/SocialGroupToolbar';\nimport moment from 'moment';\nimport { useWsDataProvider } from 'kerberus-components';\n\n\nexport default React.memo(function GroupView({ count, socialGroup, grouprequestsData, modal, isActive, isActiveWeekday }) {\n const navigate = useNavigate();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { user } = useContext(MainContext);\n const { groupId } = useParams(); const [activityLogModal, setActivityLogModal] = useState(false);\n\n const { bulkData } = useContext(MainContext);\n\n const gridColumnsMobile = useMemo(() => (\n DatagridColumnsMobile\n ), []);\n\n const onlineData = useMemo(() => {\n return bulkData?.social_groups.find(i => i.group_id === groupId)?.users;\n }, [groupId, bulkData]);\n\n const [date, setDate] = useState(moment());\n const [interval, setInterval] = useState(60);\n const [duration, setDuration] = useState(\"day\");\n const [chartType, setChartType] = useState(\"bar\");\n\n const { data, getData } = useWsDataProvider();\n\n const cacheMap = useRef(new Map());\n\n const [graphData, setGraphData] = useState();\n\n const dataProviderParams = useRef();\n\n useEffect(() => {\n if (data) {\n cacheMap.current.set(\n moment(dataProviderParams.current.date).startOf(dataProviderParams.current.duration).toJSON()\n +\n moment(dataProviderParams.current.date).endOf(dataProviderParams.current.duration).toJSON(), data);\n setGraphData(data);\n }\n }, [data]);\n\n const getDataProviderData = useCallback(() => {\n getData('socketLocation', 'ucountGraph', {\n filters: {\n start_time: moment(date).startOf(duration),\n end_time: moment(date).endOf(duration),\n interval: interval,\n social_group: groupId,\n }\n });\n dataProviderParams.current = {\n date: date,\n duration: duration\n };\n }, [date, duration, getData, groupId, interval]);\n\n useEffect(() => {\n const cacheObj = cacheMap.current.get(moment(date).startOf(duration).toJSON() + moment(date).endOf(duration).toJSON());\n if (cacheObj) {\n setGraphData(cacheObj);\n }\n else {\n getDataProviderData();\n }\n }, [date, duration, getData, getDataProviderData, interval, groupId]);\n\n useEffect(() => {\n if (duration === \"day\") {\n setInterval(60);\n }\n else if (duration === \"week\") {\n setInterval(120);\n }\n else {\n setInterval(240);\n }\n }, [date, duration, getData, interval, groupId]);\n\n\n return user.social_groups.some(group => group['id'] === groupId) ? (\n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n {(socialGroup.creator === user.id || user.perm_level === \"superuser\") &&\n item.social_group === groupId && item).length}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n color=\"error\">\n \n \n }\n \n \n\n \n \n \n\n \n\n \n\n \n \n )\n :\n null;\n\n});","import * as React from 'react';\nimport { useState, useEffect } from \"react\";\nimport {\n Button, Typography\n} from '@mui/material';\nimport { DataGrid } from '@mui/x-data-grid';\nimport { useFetchCloud, SmallAvatarWrapper } from 'kerberus-components';\nimport Toast from \"../../Components/Toast\";\nimport ConfirmationDialog from \"../../Components/ConfirmationDialog\";\nimport SearchToolbar from '../../Components/SearchToolbar';\n\nfunction escapeRegExp(value) {\n return value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nexport default React.memo(function SocialGroupInviteDatagrid({ data, sx, groupId }) {\n const { fetchCloud } = useFetchCloud();\n const [openEmailSuccess, setOpenEmailSuccess] = useState(false);\n const [openEmailError, setOpenEmailError] = useState(false);\n const [inviteProfile, setInviteProfile] = useState();\n const [openInvite, setOpenInvite] = useState(false);\n\n const contentInvite = (\n \n Are you sure you want to invite\n {inviteProfile?.row.first_name && inviteProfile?.row.last_name ? \" \" + inviteProfile?.row.first_name + \" \" + inviteProfile?.row.last_name : \" \" + inviteProfile?.row.username + \"?\"}\n \n );\n\n const gridColumns = [\n {\n field: 'id', headerName: '', flex: 0.25, align: \"center\", renderCell: (e) => (\n \n )\n },\n {\n field: 'first_name', headerName: 'First Name', flex: 2\n },\n {\n field: 'last_name', headerName: 'Last Name', flex: 2\n },\n {\n field: 'username', headerName: 'Username', flex: 2\n },\n {\n field: 'invite', headerName: '', flex: 1, align: \"center\", renderCell: (e) => ()\n },\n ];\n\n const handleInvite = async () => {\n try {\n await fetchCloud('users/create_social_invite', 'POST', {\n username: inviteProfile.row.username,\n social_group: groupId\n });\n setOpenEmailSuccess(true);\n }\n catch (err) {\n setOpenEmailError(true);\n }\n };\n\n const [searchText, setSearchText] = useState('');\n const [rows, setRows] = useState(data);\n\n const requestSearch = (searchValue) => {\n setSearchText(searchValue);\n const searchRegex = new RegExp(escapeRegExp(searchValue), 'i');\n const filteredRows = data.filter((row) => {\n return Object.keys(row).some((field) => {\n return row[field] ? searchRegex.test(row[field].toString()) : null;\n });\n });\n setRows(filteredRows);\n };\n\n useEffect(() => {\n setRows(data);\n }, [data]);\n\n return (\n <>\n\n requestSearch(event.target.value),\n clearSearch: () => requestSearch(''),\n },\n }}\n rows={rows}\n columns={gridColumns}\n disableSelectionOnClick\n isCellEditable={() => false}\n sx={sx}\n />\n\n handleInvite(e)}\n info\n handle\n name={\"to social group\"}\n open={openInvite}\n setOpen={setOpenInvite}\n content={contentInvite}\n />\n\n setOpenEmailSuccess(false)}\n autoHideDuration={50000}\n />\n setOpenEmailError(false)}\n autoHideDuration={50000}\n />\n\n \n );\n});","import LayoutPaper from \"../../Components/LayoutPaper\";\nimport { useState, useEffect } from \"react\";\nimport {\n Grid, Box, Typography, Button, useTheme, IconButton, Divider, useMediaQuery,\n TextField\n} from \"@mui/material\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport { useFetchCloud } from 'kerberus-components';\nimport SocialGroupRequests from \"../Admin/SocialGroupRequests\";\nimport Toast from \"../../Components/Toast\";\nimport SocialGroupModal from \"../../Components/Groups/SocialGroupModal\";\nimport SocialGroupInviteDatagrid from \"../../Components/Groups/SocialGroupInviteDatagrid\";\nimport useSWR from 'swr';\nimport ActiveTime from \"../../Components/Groups/ActiveTime\";\nimport SocialGroupHeader from \"../../Components/Groups/SocialGroupHeader\";\n\nexport default function GroupInvitations({ count, socialGroup, grouprequestsData, modal, isActive, isActiveWeekday }) {\n const { fetchCloud } = useFetchCloud();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const navigate = useNavigate();\n const [email, setEmail] = useState('');\n const [openEmailSuccess, setOpenEmailSuccess] = useState(false);\n const [openEmailError, setOpenEmailError] = useState(false);\n const { groupId } = useParams();\n const [profiles, setProfiles] = useState([]);\n const { data: myConnectionsData } = useSWR('users/user_connections');\n\n useEffect(() => {\n if (myConnectionsData) {\n setProfiles(myConnectionsData.map(users => users).filter(user => !socialGroup.users.map(members => members.id).includes(user.id)));\n }\n }, [myConnectionsData, socialGroup.users]);\n\n const handleInvite = async () => {\n try {\n await fetchCloud('users/create_social_invite', 'POST', {\n email: email,\n social_group: groupId\n });\n setOpenEmailSuccess(true);\n }\n catch (err) {\n setOpenEmailError(true);\n }\n };\n\n\n return (\n \n \n\n \n \n \n\n \n navigate(-1)}>\n \n \n \n \n \n \n \n\n \n\n\n {/* Invitations */}\n \n\n \n \n \n Invite my connections to social groups\n \n \n\n \n \n \n \n\n \n \n \n Invite to social group\n \n \n\n \n Email to send the invite to\n \n\n \n setEmail(e.target.value)}\n />\n \n\n \n \n \n \n\n {/* Requests */}\n \n\n \n \n Social Group join requests\n \n \n\n \n item.social_group === groupId && item)} filtered />\n \n\n \n\n\n \n\n\n\n \n\n setOpenEmailSuccess(false)}\n autoHideDuration={50000}\n />\n setOpenEmailError(false)}\n autoHideDuration={50000}\n />\n\n \n\n \n \n );\n}","import * as React from 'react';\nimport { useEffect, useState, useContext, useMemo } from \"react\";\nimport { MainContext } from 'kerberus-components';\nimport moment from 'moment';\nimport { useParams, Routes, Route } from \"react-router-dom\";\nimport GroupSettings from './GroupSettings';\nimport GroupView from './GroupView';\nimport useSWR from 'swr';\nimport GroupInvitations from './GroupInvitations';\n\nfunction getActiveState(utc_start, utc_end) {\n let [hoursEnd, minsEnd] = utc_end && utc_end.split(':');\n let [hours, mins] = utc_start.split(':');\n let yesterday = moment.utc().startOf('day').subtract(1, 'day');\n let today = moment.utc().startOf('day');\n let tomorrow = moment.utc().startOf('day').add(1, 'day');\n\n\n if (hours > hoursEnd || (hours === hoursEnd && mins > minsEnd)) {\n let isBetween1 = moment().isBetween(yesterday.utc().set('hour', hours).set('minute', mins).local(), today.utc().set('hour', hoursEnd).set('minute', minsEnd).local());\n let isBetween2 = moment().isBetween(today.utc().set('hour', hours).set('minute', mins).local(), tomorrow.utc().set('hour', hoursEnd).set('minute', minsEnd).local());\n return (isBetween1 || isBetween2);\n }\n else {\n return (moment().isBetween(moment.utc().startOf('day').add(utc_start).local(), moment.utc().startOf('day').add(utc_end).local()));\n }\n}\n\nexport default function GroupRoutes() {\n const { bulkData, user } = useContext(MainContext);\n const { groupId } = useParams();\n const [socialGroups, setSocialGroups] = useState([]);\n const [count, setCount] = useState(0);\n const { data: groupListData } = useSWR('users/socialgrouplist/');\n const { data: grouprequestsData } = useSWR('users/grouprequests/');\n\n const [activityLogOn, setActivyLogOn] = useState(false);\n const [modalOpen, setModalOpen] = useState(false);\n\n const cloudGroup = useMemo(() => {\n return socialGroups.find(i => i.id === groupId);\n }, [groupId, socialGroups]);\n\n const bulkGroup = useMemo(() => {\n return bulkData?.social_groups.find(i => i.group_id === groupId);\n }, [bulkData, groupId]);\n\n const isActive = cloudGroup && (getActiveState(cloudGroup.utc_start, cloudGroup.utc_end) || cloudGroup.utc_start === cloudGroup.utc_end);\n const isActiveWeekday = cloudGroup && (cloudGroup.enable_days.includes(moment().isoWeekday()) || cloudGroup.enable_days === undefined);\n\n useEffect(() => {\n if (groupListData) {\n setSocialGroups(groupListData.map(item => ({ ...item, open: false })));\n }\n }, [groupListData]);\n\n useEffect(() => {\n if (bulkGroup) {\n let tempNum = 0;\n for (let userObj of bulkGroup.users) {\n const now = moment();\n const lastSeen = userObj?.timestamp ? moment(userObj.timestamp) : null;\n const duration = lastSeen ? moment.duration(now.diff(lastSeen)) : null;\n const lastseenminutes = lastSeen ? duration.asMinutes() : null;\n if (cloudGroup?.users.some(i => i.id === userObj.user_id) && lastSeen && lastseenminutes <= 10) {\n tempNum++;\n }\n }\n setCount(tempNum);\n }\n }, [cloudGroup, bulkGroup]);\n\n const modalStyle = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n bgcolor: 'background.paper',\n border: '1px solid #000',\n boxShadow: 24,\n p: activityLogOn ? 1 : 4,\n pr: activityLogOn ? 6 : 4,\n borderRadius: 4,\n display: \"flex\",\n width: \"65vw\",\n height: activityLogOn ? \"75%\" : undefined,\n };\n\n return socialGroups.length > 0 ? (\n \n \n } />\n \n } />\n {(cloudGroup?.creator === user.id || user.perm_level === \"superuser\") &&\n \n } />\n }\n \n\n )\n :\n null;\n}\n\n","import { useEffect, useState, useContext, useMemo } from \"react\";\nimport { Grid, Box, Typography, Button, useTheme, useMediaQuery, styled, Divider } from \"@mui/material\";\nimport { useFetchCloud, MainContext, SmallAvatarWrapper } from \"kerberus-components\";\nimport { DataGrid } from \"@mui/x-data-grid\";\nimport SearchToolbar from '../../Components/SearchToolbar';\nimport ConfirmationDialog from \"../../Components/ConfirmationDialog\";\nimport LayoutPaper from \"../../Components/LayoutPaper\";\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { useNavigate } from \"react-router-dom\";\nimport useSWR, { useSWRConfig } from 'swr';\n\nconst DataGridNoHeader = styled(DataGrid)(({ theme }) => ({\n \"& .MuiDataGrid-columnHeaders\": { display: \"none\" },\n \"& .MuiDataGrid-virtualScroller\": { marginTop: \"0!important\", height: \"49vh!important\" },\n}));\n\nconst toastRequestSent = {\n open: true,\n type: \"success\",\n title: \"Request sent!\",\n message: \"Your request has been sent to the group's admin.\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nfunction escapeRegExp(value) {\n return value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nexport default function GroupsList(props) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { user, setOpen } = useContext(MainContext);\n const { fetchCloud } = useFetchCloud();\n const [socialGroups, setSocialGroups] = useState([]);\n const userGroups = user.social_groups.map(item => item.id);\n const [content, setContent] = useState({});\n const [openReq, setOpenReq] = useState(false);\n const [emailNotif, setEmailNotif] = useState(false);\n const navigate = useNavigate();\n const { data: socialgrouppublicData } = useSWR('users/socialgrouppublic/');\n const { mutate } = useSWRConfig();\n\n useEffect(() => {\n if (socialgrouppublicData) {\n setSocialGroups(socialgrouppublicData);\n }\n }, [socialgrouppublicData]);\n\n const handleRequestSend = async (e) => {\n await fetchCloud(`users/send_group_request`, 'post', {\n social_group: e\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastRequestSent);\n };\n\n const [searchText, setSearchText] = useState('');\n const [rows, setRows] = useState(socialGroups);\n\n const requestSearch = (searchValue) => {\n setSearchText(searchValue);\n const searchRegex = new RegExp(escapeRegExp(searchValue), 'i');\n const filteredRows = socialGroups.filter((row) => {\n return Object.keys(row).some((field) => {\n return row[field] ? searchRegex.test(row[field].toString()) : null;\n });\n });\n setRows(filteredRows);\n };\n\n useEffect(() => {\n setRows(socialGroups);\n }, [socialGroups]);\n\n const contentDialog = (\n <>\n \n \n {content.name}\n \n \n {content.description}\n \n
\n \n \n Group request will be sent to the group's admin who will either accept or reject your request.\n When the admin accepts your request you will receive an email on how to join the group with the options you choose.\n \n \n\n );\n\n const contentEmailNotif = (\n <>\n \n \n You haven't set up email yet.\n
\n You can add email to your account {\"\"}\n navigate('/profile/' + user.id + '/settings')}>\n here\n \n
\n \n\n );\n\n const gridColumns = useMemo(() => ([\n\n {\n field: 'groupImg', flex: 0.3, headerName: '', align: \"center\",\n renderCell: (e) =>\n \n },\n {\n field: 'name', flex: 1, headerName: 'Name',\n renderCell: (e) => {e.value}\n },\n {\n field: 'description', flex: 3, headerName: 'Description',\n renderCell: (e) => {e.value}\n },\n {\n field: 'joined', flex: 1, headerName: '', headerAlign: \"center\", align: \"center\",\n renderCell: (e) =>\n <>\n {userGroups.includes(e.id)\n ?\n \n Joined\n \n :\n user.requests.includes(e.id)\n ?\n \n :\n \n }\n\n \n },\n\n ]), [theme.palette.success.main, user.email, user.requests, userGroups]);\n\n const gridColumnsMobile = useMemo(() => ([\n\n {\n field: 'name', flex: 1, headerName: 'Groups',\n renderCell: (e) =>\n \n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n\n >\n \n {userGroups.includes(e.id)\n ?\n \n Joined\n \n :\n user.requests.includes(e.id)\n ?\n \n Request sent\n \n :\n null\n }\n \n \n {e.value}\n \n \n \n\n \n \n Description\n
\n {e.row.description}\n
\n\n \n {userGroups.includes(e.id)\n ?\n \n Joined\n \n :\n user.requests.includes(e.id)\n ?\n \n :\n \n }\n \n
\n
\n
\n\n },\n\n ]), [theme.palette.success.main, theme.palette.warning.main, user.requests, userGroups]);\n\n return (\n \n Public Groups\n \n {isSmall\n ?\n requestSearch(event.target.value),\n clearSearch: () => requestSearch(''),\n },\n }}\n rows={rows}\n columns={isSmall ? gridColumnsMobile : gridColumns}\n disableSelectionOnClick\n isCellEditable={() => false}\n /* onRowClick={handleRowClick} */\n sx={{\n height: \"68vh\",\n overflowX: \"hidden\",\n '& .MuiDataGrid-renderingZone': {\n maxHeight: 'none !important'\n },\n '& .MuiDataGrid-cell': {\n lineHeight: 'unset !important',\n maxHeight: 'none !important',\n whiteSpace: 'normal',\n wordWrap: 'break-word'\n },\n '& .MuiDataGrid-row': {\n maxHeight: 'none !important'\n }\n }}\n />\n :\n requestSearch(event.target.value),\n clearSearch: () => requestSearch(''),\n },\n }}\n rows={rows}\n columns={isSmall ? gridColumnsMobile : gridColumns}\n disableSelectionOnClick\n isCellEditable={() => false}\n /* onRowClick={handleRowClick} */\n sx={{\n height: \"78vh\",\n '& .MuiDataGrid-renderingZone': {\n maxHeight: 'none !important',\n },\n '& .MuiDataGrid-cell': {\n lineHeight: 'unset !important',\n maxHeight: 'none !important',\n whiteSpace: 'normal',\n },\n '& .MuiDataGrid-row': {\n maxHeight: 'none !important',\n },\n\n }}\n />\n }\n\n handleRequestSend(content.id)}\n handle\n name={\"join request to the group\"}\n open={openReq}\n setOpen={setOpenReq}\n content={contentDialog}\n />\n\n \n \n \n );\n}\n\n","import React from 'react';\nimport { StyledBadgeAvatar } from 'kerberus-components';\nimport SocialIcons from '../SocialIcons';\nimport ProfileMenu from '../Profile/ProfileMenu';\nimport moment from 'moment';\nimport GetOnlineData from '../GetOnlineData';\nimport GetUserData from '../GetUserData';\n\nconst DatagridColumns = [\n {\n field: 'id', headerName: '', flex: 0.1, align: \"center\", renderCell: (e) => (\n = 5\n ?\n \"#FCC041\"\n :\n GetOnlineData(e.row).lastseenminutes > -5 && GetOnlineData(e.row).lastseenminutes < 5\n ?\n \"#8DBF30\"\n :\n '#adadb8'\n :\n '#adadb8'\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={e.row.id}\n lastseenminutes={GetOnlineData(e.row).lastseenminutes}\n busy={GetOnlineData(e.row).busy}\n imageSize=\"_32\"\n />\n )\n },\n {\n field: 'first_name', headerName: 'Name', flex: 0.65, renderCell: (e) => (\n
\n {e.row.first_name || e.row.last_name ? e.row.first_name + \" \" + e.row.last_name : e.row.username}\n
\n )\n },\n {\n field: 'links', headerName: 'Social Links', flex: 1, renderCell: (e) => (\n \n )\n },\n {\n field: '', headerName: 'Last seen', flex: 1, renderCell: (e) =>\n
\n {\n GetOnlineData(e.row).timestamp\n ?\n GetOnlineData(e.row).lastseenminutes <= 10 && GetOnlineData(e.row).lastseenminutes >= 5\n ?\n moment(GetOnlineData(e.row).timestamp).from(moment().add(30, 'seconds'))\n :\n GetOnlineData(e.row).lastseenminutes >= 10\n ?\n moment(GetOnlineData(e.row).timestamp).from(moment().add(30, 'seconds'))\n :\n GetOnlineData(e.row).layer_name\n ?\n GetOnlineData(e.row).layer_name\n :\n moment(GetOnlineData(e.row).timestamp).from(moment().add(30, 'seconds'))\n :\n 'Long time ago'\n }\n
\n },\n {\n field: 'Menu', headerName: '', flex: 0.2, renderCell: (e) => (\n \n )\n },\n];\n\nexport default DatagridColumns;","import { Typography, Box, Accordion, AccordionSummary, AccordionDetails } from \"@mui/material\";\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nconst DatagridColumnsMobile = [\n {\n field: 'username', flex: 1, headerName: 'Users',\n renderCell: (e) =>\n \n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n\n >\n \n \n {e.row.first_name && e.row.last_name ? `${e.row.first_name} ${e.row.last_name}` : e.row.username}\n \n \n \n\n \n {e.row.first_name &&\n <>\n \n First name\n \n \n {e.row.first_name}\n \n \n }\n\n {e.row.last_name &&\n <>\n \n Last Name\n \n \n {e.row.last_name}\n \n \n }\n \n Title\n \n \n {e.row.title}\n \n \n Company\n \n \n {e.row.company_name}\n \n\n \n \n \n }\n]\n\nexport default DatagridColumnsMobile;","import React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { Grid, Typography, Divider, useMediaQuery, useTheme } from \"@mui/material\";\nimport LayoutPaper from \"../../Components/LayoutPaper\";\nimport { MainContext } from 'kerberus-components';\nimport moment from 'moment';\nimport useSWR from 'swr';\nimport GroupsIcon from '@mui/icons-material/Groups';\nimport UserList from '../../Components/UserList';\nimport DatagridColumns from '../../Components/MyConnections/DatagridColumns';\nimport DatagridColumnsMobile from '../../Components/MyConnections/DatagridColumnsMobile';\n\n\nexport default React.memo(function MyConnectionsView() {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { bulkData } = useContext(MainContext);\n const { data: profiles = [] } = useSWR('users/user_connections');\n\n const onlineData = useMemo(() => {\n const userMap = new Map();\n if (bulkData) {\n for (const user of bulkData.company) {\n userMap.set(user.user_id, user);\n }\n for (const group of bulkData.social_groups) {\n for (const user of group.users) {\n const oldUser = userMap.get(user.user_id);\n\n if (!oldUser?.timestamp) {\n userMap.set(user.user_id, user);\n }\n else if (oldUser.timestamp && user.timestamp) {\n if (new Date(user.timestamp) > new Date(oldUser.timestamp)) {\n userMap.set(user.user_id, user);\n }\n }\n }\n }\n }\n\n return [...userMap.values()];\n }, [bulkData]);\n\n const onlineMembers = useMemo(() => {\n let tempNum = 0;\n const now = moment();\n\n for (const user of onlineData) {\n if (user.timestamp) {\n const lastSeen = moment(user.timestamp);\n const duration = moment.duration(now.diff(lastSeen));\n const lastseenminutes = duration.asMinutes();\n if (lastseenminutes <= 10) {\n tempNum++;\n }\n }\n }\n return tempNum;\n }, [onlineData]);\n\n return (\n \n \n\n \n\n \n \n My Connections\n \n {!isSmall &&\n \n {onlineMembers}/{profiles.length}\n \n }\n\n \n\n \n \n \n\n \n \n \n \n \n );\n});","import * as React from 'react';\nimport { StyledBadgeAvatar } from 'kerberus-components';\nimport { useTheme } from '@mui/material';\n\nexport default function ProfileIcon({ avatarWidth, avatarHeight, isSmall, userId, lastseenminutes, onlineData }) {\n const theme = useTheme();\n const statusColor = onlineData?.status === 'busy'\n ? theme.palette.mlRed.main\n : onlineData?.status === 'hidden'\n ? '#adadb8'\n : lastseenminutes <= 10 && lastseenminutes >= 5\n ? theme.palette.mlYellow.main\n : lastseenminutes > 0 && lastseenminutes < 5\n ? theme.palette.mlGreen.main\n : '#adadb8';\n const statusText = onlineData?.status === 'busy'\n ? 'Busy'\n : onlineData?.status === 'hidden'\n ? 'Hidden'\n : lastseenminutes <= 10 && lastseenminutes >= 5\n ? 'Away'\n : lastseenminutes && lastseenminutes > -5 && lastseenminutes < 5\n ? 'Active'\n : 'Offline';\n return (\n -5 && lastseenminutes < 5 : false}\n badgeboxshadow={`0 0 0 2px ${theme.palette.background.paper}`}\n badgeSx={{\n width: avatarWidth,\n height: avatarHeight,\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\"\n }}\n avatarSx={{\n width: avatarWidth,\n height: avatarHeight,\n borderWidth: 7,\n borderStyle: \"solid\",\n borderColor: statusColor\n }}\n avatarVariant=\"circular\"\n alt=\"ProfileIcon\"\n imgSrc={userId}\n lastseenminutes={lastseenminutes}\n busy={onlineData?.status === 'busy'}\n imageSize=\"_256\"\n />\n );\n}","import * as React from 'react';\nimport { useContext } from 'react';\nimport Card from '@mui/material/Card';\nimport Grid from '@mui/material/Grid';\nimport moment from 'moment';\nimport { Typography, useTheme, useMediaQuery, Box } from '@mui/material';\nimport SocialIcons from '../../Components/SocialIcons';\nimport ProfileMenu from '../../Components/Profile/ProfileMenu';\nimport { useParams } from \"react-router-dom\";\nimport { MainContext } from 'kerberus-components';\n\nexport default function ProfileText({ userData, onlineData, lastseenminutes }) {\n const { userId } = useParams();\n const { first_name, last_name, username, title } = userData;\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { user } = useContext(MainContext);\n\n return (\n \n\n\n \n\n \n \n \n\n {userId !== user.id &&\n \n }\n\n \n \n Name:\n \n \n \n \n {first_name && last_name ? `${first_name} ${last_name}` : username}\n \n \n {title &&\n <>\n \n \n Title:\n \n \n \n \n {title}\n \n \n \n }\n \n \n Status:\n \n \n = 5\n ? theme.palette.mlYellow.main\n : lastseenminutes > 0 && lastseenminutes < 5\n ? theme.palette.mlGreen.main\n : '#adadb8',\n fontWeight: \"bold\"\n }}>\n \n {onlineData?.status === 'busy'\n ? 'Busy'\n : onlineData?.status === 'hidden'\n ? 'Hidden'\n : lastseenminutes <= 10 && lastseenminutes >= 5\n ? 'Away'\n : lastseenminutes && lastseenminutes > -5 && lastseenminutes < 5\n ? 'Active'\n : 'Offline'}\n \n \n \n \n Site:\n \n \n \n \n {onlineData?.site_name ? onlineData.site_name : \"Unknown\"}\n \n \n \n \n Last seen:\n \n \n \n \n {onlineData ? onlineData?.timestamp ? moment(onlineData.timestamp).fromNow() : '> 1 week' : 'Long time ago'}\n \n \n {onlineData?.layer_name && onlineData.layer_name !== \"Null\" &&\n <>\n \n \n Location:\n \n \n \n \n {onlineData.layer_name}\n \n \n \n }\n \n \n );\n}","import {\n useState,\n useEffect,\n useContext,\n useMemo,\n useRef,\n useCallback,\n} from \"react\";\nimport { Calendar, momentLocalizer } from \"react-big-calendar\";\nimport moment from \"moment\";\nimport \"moment/locale/en-gb\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport \"react-big-calendar/lib/css/react-big-calendar.css\";\nimport \"./react-big-calendar.css\";\nimport CalendarToolbar from \"../../Components/CalendarToolbar\";\nimport { useTheme } from \"@mui/material/styles\";\nimport {\n MainContext,\n useWsDataProvider,\n SmallAvatarWrapper,\n} from \"kerberus-components\";\nimport Modal from \"@mui/material/Modal\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { Grid, IconButton, Paper, Tooltip, Badge } from \"@mui/material\";\nimport { useParams } from \"react-router-dom\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport GetDeviceIcon from \"../../Components/Device/GetDeviceIcon\";\nimport PlaceIcon from '@mui/icons-material/Place';\n\nconst style = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: 400,\n bgcolor: \"background.paper\",\n borderWidth: 3,\n borderStyle: \"solid\",\n borderColor: \"#1C4E71\",\n boxShadow: 24,\n p: 4,\n paddingBottom: 6,\n};\nconst localizer = momentLocalizer(moment);\nconst dayFormat = (date, culture, localizer) =>\n localizer.format(date, \"D\", culture);\nfunction EventComponentday(props) {\n return (\n \n {props.event.busy !== \"busy\" ? (\n props.title !== \"Hidden\" ? (\n props.title\n ) : (\n \n )\n ) : (\n \"Busy\"\n )}\n \n );\n}\nfunction EventComponentweek(props) {\n return (\n \n {props.event.busy !== \"busy\" ? (\n props.title !== \"Hidden\" ? (\n props.title\n ) : (\n \n )\n ) : (\n \"Busy\"\n )}\n \n );\n}\nexport default function ProfileCalendar({ devgroup, userData, swrSiteData }) {\n const { user } = useContext(MainContext);\n const { userId } = useParams();\n const [events, setEvents] = useState([]);\n const [calDate, setCalDate] = useState(new Date());\n const [showAddress, setShowAddress] = useState(\n JSON.parse(localStorage.getItem(\"device\")) ?? []\n );\n const [showSite, setShowSite] = useState(\n JSON.parse(localStorage.getItem(\"site\")) ?? []\n );\n const { getData, data: providerData } = useWsDataProvider();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const [calView, setCalView] = useState(\"day\");\n const [open, setOpen] = useState(false);\n const handleOpen = (e) => {\n setCurrentEvent(e);\n setOpen(true);\n };\n const handleClose = () => setOpen(false);\n const [currentEvent, setCurrentEvent] = useState();\n const handleTime = useMemo(() => {\n let curr = moment(calDate).toDate();\n let minus = moment(calDate).subtract(2, \"hours\").toDate();\n return curr.getDate() === minus.getDate() ? minus : curr;\n }, [calDate]);\n const fetchedWeek = useRef(null);\n const fetchedUser = useRef(null);\n // eslint-disable-next-line eqeqeq\n\n useEffect(() => {\n if (\n fetchedUser.current !== userId ||\n (calDate && moment(calDate).week() !== fetchedWeek.current)\n ) {\n fetchedWeek.current = moment(calDate).week();\n fetchedUser.current = userId;\n getData(\"socketLocation\", \"devtracking\", {\n filters: {\n user_id: userId,\n start_time: moment(calDate).startOf(\"week\"),\n end_time: moment(calDate).endOf(\"week\"),\n },\n });\n }\n }, [calDate, getData, userId]);\n const navigateFunction = (date) => {\n setCalDate(date);\n };\n const parseEvents = useCallback(\n (data) => {\n const events = [];\n\n if (userId === user.id) {\n for (const hiddenDate of user.user_hidden) {\n events.push({\n title: \"Hidden\",\n start: new Date(hiddenDate.start),\n end: moment(hiddenDate.start)\n .add(moment.duration(hiddenDate.duration))\n .toDate(),\n busy: !hiddenDate.hidden,\n });\n }\n for (const site of data) {\n if (!showSite?.includes(site.site_id)) {\n for (const item of site.online_data) {\n const date = new Date(item.time);\n if (!showAddress.some((macAddresses) => item.act?.includes(macAddresses))) {\n if (\n events.length > 0 &&\n events[events.length - 1].title !== \"Hidden\" &&\n events[events.length - 1].title ===\n site.site_name &&\n ((events[events.length - 1].deviceSet.size ===\n 1 &&\n item.act.length === 1) ||\n (events[events.length - 1].deviceSet.size >\n 1 &&\n item.act.length > 1)) &&\n events[events.length - 1].end.getTime() ===\n date.getTime() &&\n events[events.length - 1].start.getDay() ===\n date.getDay()\n ) {\n events[events.length - 1].end = new Date(\n events[events.length - 1].end.getTime() +\n 30 * 60000\n );\n events[events.length - 1].deviceSet = new Set([\n ...events[events.length - 1].deviceSet,\n ...item.act,\n ]);\n } else {\n events.push({\n title: site.site_name,\n start: date,\n end: new Date(date.getTime() + 30 * 60000),\n deviceSet: new Set(item.act),\n });\n }\n }\n }\n }\n }\n } else {\n for (const site of data) {\n for (const item of site.online_data) {\n const date = new Date(item.time);\n if (\n events.length > 0 &&\n events[events.length - 1].title !== \"Hidden\" &&\n events[events.length - 1].title ===\n site.site_name &&\n events[events.length - 1].end.getTime() ===\n date.getTime() &&\n events[events.length - 1].start.getDay() ===\n date.getDay()\n ) {\n events[events.length - 1].end = new Date(\n events[events.length - 1].end.getTime() +\n 30 * 60000\n );\n } else {\n events.push({\n title: site.site_name,\n start: date,\n end: new Date(date.getTime() + 30 * 60000),\n });\n }\n }\n }\n }\n setEvents(events);\n },\n [user, userId, showAddress, showSite]\n );\n useEffect(() => {\n if (providerData) {\n parseEvents(providerData);\n }\n }, [providerData, parseEvents]);\n useEffect(() => {\n isSmall ? setCalView(\"day\") : setCalView(\"week\");\n }, [isSmall]);\n return (\n
\n {user && user.id !== userId && (\n \n \n \n \n {userData?.first_name || userData?.username}'s\n \n \n calendar\n \n \n \n )}\n \n \n \n \n !item.visible) && \"none\" }}>\n Filter by devices\n \n \n \n \n Week\n \n \n {fetchedWeek.current}\n \n \n \n \n Filter by sites\n \n \n \n \n \n \n {user.device_groups.filter(item => item.visible).map((item, id) => (\n {\n if (\n !showAddress.some((macAddresses) =>\n item.addresses\n .map((item) => item.address)\n .includes(macAddresses)\n )\n ) {\n localStorage.setItem(\n `device`,\n JSON.stringify([\n ...new Set([\n ...showAddress,\n ...item.addresses.map(\n (item) => item.address\n ),\n ]),\n ])\n );\n setShowAddress([\n ...new Set([\n ...showAddress,\n ...item.addresses.map(\n (item) => item.address\n ),\n ]),\n ]);\n } else {\n localStorage.setItem(\n `device`,\n JSON.stringify(\n showAddress.filter(function (e) {\n return (\n item.addresses\n .map(\n (item) =>\n item.address\n )\n .indexOf(e) < 0\n );\n })\n )\n );\n setShowAddress(\n showAddress.filter(function (e) {\n return (\n item.addresses\n .map((item) => item.address)\n .indexOf(e) < 0\n );\n })\n );\n }\n }}\n >\n \n item.addresses\n .map((item) => item.address)\n .includes(macAddresses)\n )\n ? \"1\"\n : \"0.3\"\n }\n sx={{\n height: 50,\n width: 50,\n p: 0.75,\n borderStyle: \"solid\",\n borderColor: \"#adadb8\",\n borderWidth: 3,\n bgcolor: theme.palette.primary.main + 50,\n color: theme.palette.primary.main,\n opacity: !showAddress.some((macAddresses) =>\n item.addresses\n .map((item) => item.address)\n .includes(macAddresses)\n )\n ? \"1\"\n : \"0.3\",\n }}\n />\n \n )\n )}\n item.visible) && \"none\", color: theme.palette.warning.main }}>\n You are not tracking any devices\n \n \n \n {swrSiteData?.map(item => (\n \n \n {\n if (\n !showSite.some((data) => item.id.includes(data))\n ) {\n localStorage.setItem(\n `site`,\n JSON.stringify([\n ...new Set([\n ...showSite,\n item.id,\n ]),\n ])\n );\n setShowSite([\n ...new Set([\n ...showSite,\n item.id,\n ]),\n ]);\n } else {\n localStorage.setItem(\n `site`,\n JSON.stringify(\n showSite.filter(function (e) {\n return (\n item.id.indexOf(e) < 0\n );\n })\n )\n );\n setShowSite(\n showSite.filter(function (e) {\n return (\n item.id.indexOf(e) < 0\n );\n })\n );\n }\n }}\n >\n \n \n \n\n \n )\n )}\n \n \n {user.id === userId && (\n \n \n \n {currentEvent && currentEvent.title === \"Hidden\"\n ? \"Hidden\"\n : \"Devices:\"}\n \n {currentEvent &&\n currentEvent.title !== \"Hidden\" &&\n [...currentEvent.deviceSet].map((item) => {\n const findDevgroup =\n user.device_groups.find((i) =>\n i.addresses.some(\n (addr) => addr.address === item\n )\n );\n return (\n \n Name: {findDevgroup?.group_name}{\" \"}\n
\n MAC: {item}\n \n );\n })}\n \n {currentEvent &&\n moment\n .duration(\n moment(currentEvent.end).diff(\n moment(currentEvent.start)\n )\n )\n .asMinutes()}{\" \"}\n min\n \n \n During:{\" \"}\n {currentEvent &&\n moment(currentEvent.start).format(\n \"H:mm\"\n )}{\" \"}\n -{\" \"}\n {currentEvent &&\n moment(currentEvent.end).format(\"H:mm\")}\n \n
\n \n )}\n \n setCalView(e)}\n view={calView}\n views={[\"day\", \"week\"]}\n startAccessor=\"start\"\n endAccessor={({ end }) => new Date(end.getTime() - 1)}\n events={events}\n tooltipAccessor={false}\n localizer={localizer}\n resizable\n scrollToTime={handleTime}\n onSelectEvent={user.id === userId && handleOpen}\n timeslots={1}\n style={{\n height: \"62vh\",\n width: \"100%\",\n marginTop: \"10px\",\n }}\n formats={{\n dayFormat,\n eventTimeRangeFormat: (e) => {\n return \"\";\n },\n }}\n components={{\n toolbar: isSmall ? CalendarToolbar : null,\n day: { event: EventComponentday },\n week: { event: EventComponentweek },\n }}\n dayLayoutAlgorithm=\"no-overlap\"\n onNavigate={navigateFunction}\n eventPropGetter={(event, start, end, isSelected) => {\n let newStyle = {\n backgroundColor: event.title === \"Hidden\" ? event.busy ? theme.palette.mlRed.main : \"#808080\" : event.deviceSet?.size > 1 ? theme.palette.green.main : theme.palette.mlGreen.main,\n /* color: isSmall ? event.title === 'Hidden' ? '#808080' : theme.palette.mlGreen.main : event.title === 'Hidden' ? '#808080' : '#FFFFFF', */\n borderRadius: event.title !== \"Hidden\" && 10,\n border: \"none\",\n textAlign: \"center\",\n marginLeft: 5,\n paddingLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: user.id !== userId && \"default\",\n };\n return {\n className: \"\",\n style: newStyle,\n };\n }}\n />\n \n \n
\n );\n}\n","import React, { useState } from 'react';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemText from '@mui/material/ListItemText';\nimport Avatar from '@mui/material/Avatar';\nimport IconButton from '@mui/material/IconButton';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport PermDeviceInformationIcon from '@mui/icons-material/PermDeviceInformation';\nimport DeviceUnknownIcon from '@mui/icons-material/DeviceUnknown';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { Box, Button, Tooltip, useTheme } from '@mui/material';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport { Link } from 'react-router-dom';\nimport Checkbox from '@mui/material/Checkbox';\nimport HelperIcon from './HelperIcon';\nimport ConfirmationDialog from './ConfirmationDialog';\nimport sortBy from 'lodash-es/sortBy';\nimport moment from 'moment';\nimport CalendarMonthIcon from '@mui/icons-material/CalendarMonth';\nimport ReportIcon from '@mui/icons-material/Report';\nimport GetDeviceIcon from './Device/GetDeviceIcon';\n\nconst contentHelperIcon = (\n <>\n
This selection determines if device is used in status and calendar view.
\n
\n
Changes may take several minutes to reflect.
\n \n);\n\nconst locationHelperIcon = (\n <>\n
This selection determines which device is used for showing location data.
\n
\n
Changes may take several minutes to reflect.
\n \n);\n\nconst statusHelperIcon = (\n <>\n
This indicates if device is active at the moment
\n \n);\n\nexport default function InteractiveDeviceList({ devgroup, isSmall, handleDeviceRemove, handleDeviceVisibility, handleDeviceLocation, onlineDevs, handleDeleteDevGroup }) {\n const theme = useTheme();\n const [openTrack, setOpenTrack] = useState(false);\n const [valueTrack, setValueTrack] = useState(false);\n const [openDelete, setOpenDelete] = useState(false);\n const [valueDelete, setValueDelete] = useState(false);\n\n const [openLocation, setOpenLocation] = useState(false);\n const [valueLocation, setValueLocation] = useState(false);\n\n function everyCheckboxIsFalse(element) {\n return element.every(element => element === false);\n };\n\n const checkboxBooleansArray = devgroup.map((value) => {\n return value.visible;\n });\n\n const checkHowManyBooleansAreTrue = checkboxBooleansArray.filter(Boolean).length;\n\n const contentTrack = (\n <>\n \n This selection determines if\n {\" \" + valueTrack.group_name + \" \"}\n is used in status and calendar view. Changes to tracking may take several minutes to reflect.\n \n \n Warning! 2 weeks of inactivity will take away your rights to see other people!\n \n \n\n );\n\n const contentLocationTrack = (\n \n This selection determines if\n {\" \" + valueLocation.group_name + \" \"}\n is used for showing location data. Changes to location usage may take several minutes to reflect.\n \n\n );\n\n const contentDelete = (\n \n Are you sure you want to delete\n {\" \" + valueDelete.group_name + \"? \"}\n This will remove device from the list and stop tracking.\n \n );\n\n const today = moment();\n\n return (\n \n \n Connected devices\n \n \n You are not tracking any devices!\n \n <>\n {devgroup && devgroup.length > 0 ?\n \n\n {!isSmall &&\n \n \n \n Name\n \n \n \n \n Device info\n \n \n \n \n Status\n \n \n\n \n \n \n Location\n \n \n \n Track\n \n \n You are not tracking any devices!\n \n \n \n \n\n \n \n }\n {sortBy(devgroup, [\"id\"]).map((value, id) => {\n const activeAddresses = onlineDevs.length > 0 && onlineDevs.filter(addr => value.addresses.some(item => addr.wlan_sa === item.address))\n const lastseen = activeAddresses.length > 0 && activeAddresses.reduce((a, b) => today - moment(a.timestamp) < today - moment(b.timestamp) ? a : b);\n const lastseenminutes = moment.duration(today.diff(lastseen.timestamp)).asMinutes();\n\n return (\n \n {isSmall\n ?\n \n \n \n = 5 ? \"#FCC041\" : lastseenminutes > 0 && lastseenminutes < 5 ? \"#8DBF30\" : '#adadb8' : '#adadb8',\n borderWidth: 3,\n bgcolor: theme.palette.primary.main + 50,\n color: theme.palette.primary.main,\n }}\n />\n
\n \n
\n \n
\n \n \n Use for location\n \n { setValueLocation(value); setOpenLocation(true); }} />\n \n \n \n Track\n \n { setValueTrack(value); setOpenTrack(true); }} />\n \n \n \n \n\n
\n :\n \n\n \n\n \n {value.addresses.length <= 0 &&\n \n \n \n \n \n }\n = 5 ? \"#FCC041\" : lastseenminutes > 0 && lastseenminutes < 5 ? \"#8DBF30\" : '#adadb8' : '#adadb8',\n borderWidth: 3,\n bgcolor: theme.palette.primary.main + 50,\n color: theme.palette.primary.main,\n }}\n />\n
\n \n
\n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n {lastseen && lastseenminutes <= 10\n ?\n = 5 ? { color: theme.palette.mlYellow.main } : { color: theme.palette.mlGreen.main }}>Active\n :\n Inactive}\n \n \n\n \n { setValueLocation(value); setOpenLocation(true); }} />\n { setValueTrack(value); setOpenTrack(true); }} />\n \n\n \n { setValueDelete(value); setOpenDelete(true); }}>\n \n \n \n\n\n
\n }\n \n )\n }\n )}\n
\n :\n
\n \n \n \n \n No devices found\n \n \n Please add device to populate the list :)\n \n
\n }\n \n\n \n\n \n\n \n\n
\n );\n}","import React, { useEffect } from \"react\";\nimport { TextField, Button } from \"@mui/material\";\nimport InputMask from \"react-input-mask\";\n\n\nexport default function TagsInput2({ selectedItem, setSelectedItem, inputValue, setInputValue, selectedTags, placeholder, tags, macAddressAlreadyTaken, addrBluetooth, setAddrBluetooth, ...props }) {\n\n useEffect(() => {\n setSelectedItem(tags);\n }, [setSelectedItem, tags]);\n\n useEffect(() => {\n selectedTags(selectedItem);\n }, [selectedItem, selectedTags]);\n\n function addAddress() {\n const newSelectedItem = [...selectedItem];\n\n if (newSelectedItem.length > 0 && newSelectedItem.find(object => object.address === inputValue)) {\n setInputValue(\"\");\n return;\n }\n\n else {\n setSelectedItem([...selectedItem, { address: inputValue, bluetooth: addrBluetooth }]);\n setInputValue(\"\");\n setAddrBluetooth(false)\n }\n }\n\n function handleInputChange(event) {\n setInputValue(event.target.value);\n }\n\n return (\n \n {() =>\n {\n if (e.key === 'Enter' && inputValue.length === 17 && !macAddressAlreadyTaken) {\n addAddress()\n }\n }}\n InputProps={{\n endAdornment: (\n \n Add\n \n )\n }}\n {...props}\n />}\n \n );\n}\n","import React, { } from 'react';\nimport { IconButton, Avatar, Tooltip, Badge, Grid, useTheme } from '@mui/material';\nimport DeviceIcons from '../../Components/Icons/DeviceIcons';\n\n\nexport default React.memo(function DisplayDeviceIcons({ setDeviceType, handleClose, isSmall }) {\n const theme = useTheme();\n\n return (\n DeviceIcons.map((item, index) => {\n let tooltip = \"\"\n switch (index) {\n case 0:\n tooltip = \"Unknown\"\n break;\n case 1:\n tooltip = \"Android\"\n break;\n case 2:\n tooltip = \"Iphone\"\n break;\n case 3:\n tooltip = \"Android Tablet\"\n break;\n case 4:\n tooltip = \"Ipad\"\n break;\n case 5:\n tooltip = \"Laptop\"\n break;\n case 6:\n tooltip = \"Desktop\"\n break;\n case 7:\n tooltip = \"Tv\"\n break;\n case 8:\n tooltip = \"Headphones\"\n break;\n case 9:\n tooltip = \"Watch\"\n break;\n case 10:\n tooltip = \"Router\"\n break;\n case 11:\n tooltip = \"Iot Device\"\n break;\n default:\n tooltip = \"Iot Device\"\n }\n\n return (\n \n \n { setDeviceType({ type: index, component: DeviceIcons[index] }); handleClose() }}>\n \n \n \n {item}\n \n \n \n \n \n \n )\n }\n )\n )\n})","import React, { useState, useEffect } from 'react';\nimport Card from '@mui/material/Card';\nimport Grid from '@mui/material/Grid';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport Button from '@mui/material/Button';\nimport HelperIcon from '../../Components/HelperIcon';\nimport InteractiveDeviceList from '../../Components/InteractiveDeviceList';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport { IconButton, useTheme, Checkbox, Popover, Box, Avatar, Chip, FormControlLabel } from '@mui/material';\nimport { useFetchCloud, useWsDataProvider } from 'kerberus-components';\nimport ConfirmationDialog from '../../Components/ConfirmationDialog';\nimport { Link } from \"react-router-dom\";\nimport { useSWRConfig } from 'swr';\nimport MacTagsInput from '../../Components/MacTagsInput';\nimport DeviceIcons from '../../Components/Icons/DeviceIcons';\nimport BluetoothIcon from '@mui/icons-material/Bluetooth';\nimport DisplayDeviceIcons from '../../Components/Device/DisplayDeviceIcons';\nimport SignalWifi3BarIcon from '@mui/icons-material/SignalWifi3Bar';\n\nconst contentHelperIcon = (\n <>\n
This selection determines if device is used in status and calendar view.
\n \n);\n\nconst locationHelperIcon = (\n <>\n
This selection determines which device is used for showing location data.
\n \n);\n\nconst bluetoothHelperIcon = (\n <>\n
This selection determines if it is a bluetooth mac address.
\n \n);\n\nconst content = (<>
Add MAC address of the device to add it to the list.

List displays all the devices which you are connected to.
);\n\nexport default React.memo(function ProfileDevice({ devgroup, isSmall, isMedium, isLarge }) {\n const theme = useTheme();\n const [openAdd, setOpenAdd] = useState(false);\n const [valueAdd, setValueAdd] = useState(false);\n const [isDisabled, setIsDisabled] = useState(true);\n\n const [devGroupName, setDevGroupName] = useState('');\n const [devLocation, setDevLocation] = useState(false);\n const [devVisible, setDevVisible] = useState(true);\n const [addrBluetooth, setAddrBluetooth] = useState(false);\n const [deviceType, setDeviceType] = useState({ type: 0, component: DeviceIcons[0] })\n const [inputValue, setInputValue] = useState(\"\");\n\n const { getData, data, doUnsubscribe } = useWsDataProvider();\n const [onlineDevs, setOnlineDevs] = useState([]);\n const { mutate } = useSWRConfig();\n\n const [macAddresses, setMacAddresses] = useState([]);\n\n function handleMacAddresses(items) {\n setMacAddresses(items);\n }\n\n useEffect(() => {\n getData('socketLocation', 'onlineAddr', {\n subscribe: true\n });\n\n return () => doUnsubscribe();\n }, [getData, doUnsubscribe]);\n\n useEffect(() => {\n if (data) {\n setOnlineDevs(data);\n }\n }, [data]);\n\n const { fetchCloud } = useFetchCloud();\n\n /* Create device group */\n const handleCreateDevGroup = async () => {\n try {\n await fetchCloud(`devices/devicegroup/`, 'POST', {\n group_name: devGroupName,\n description: null,\n type: deviceType.type,\n visible: devVisible,\n location: devLocation,\n }).then((res) => {\n fetchCloud(`devices/addaddressdevgroup`, 'POST', {\n address: macAddresses.length > 0 ? macAddresses : null,\n device_group: res.id\n });\n }\n );\n setDevGroupName(\"\");\n setMacAddresses([])\n setDeviceType({ type: 0, component: DeviceIcons[0] })\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n alert(err);\n }\n };\n\n /* Change device Tracking/Visibility */\n const handleDeviceVisibility = async (e) => {\n try {\n await fetchCloud(`devices/devicegroup/${e.id}/`, 'PATCH', {\n visible: !e.visible\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n alert(err);\n }\n };\n\n /* Change device Location track*/\n const handleDeviceLocation = async (e) => {\n try {\n await fetchCloud(`devices/devicegroup/${e.id}/`, 'PATCH', {\n location: !e.location\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n alert(err);\n }\n };\n\n /* Delete device group */\n const handleDeleteDevGroup = async (e) => {\n try {\n await fetchCloud(`devices/devicegroup/${e.id}/`, 'DELETE')\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n alert(err);\n }\n };\n\n const contentAdd = (\n \n By adding\n {devGroupName.length > 0 ? \" \" + devGroupName + \"\" : \" Device\"}\n , you confirm that you own and/or hold this device and have the legal right to track and share it's location data.\n
\n
\n
\n \n I understand\n setIsDisabled(isDisabled => !isDisabled)} />\n \n\n
\n If you would like further information on this matter you can review our\n \n Terms & Conditions\n \n {\" again.\"}\n
\n\n {isMedium &&
}\n
\n );\n\n /* Icon popover */\n const [popover, setPopover] = useState(null);\n const handleClick = (event) => {\n setPopover(event.currentTarget);\n };\n const handleClose = () => {\n setPopover(null);\n };\n\n const open = Boolean(popover);\n const id = open ? 'simple-popover' : undefined;\n\n /* Delete mac address chips */\n const handleDelete = item => () => {\n const newMacAddresses = [...macAddresses];\n newMacAddresses.splice(newMacAddresses.indexOf(item), 1);\n setMacAddresses(newMacAddresses);\n };\n\n const groupNameAlreadyTaken = devgroup.findIndex((obj) => obj.group_name.toLowerCase() === devGroupName.toLowerCase()) !== -1\n const macAddressAlreadyTaken = devgroup.findIndex(i => i.addresses.some(addr => addr.address.toLowerCase() === inputValue.toLowerCase())) !== -1\n\n return (\n \n \n \n \n Create Device\n \n \n \n\n \n \n \n {deviceType.component}\n \n \n Device type\n \n \n \n Choose a device type\n \n \n \n \n \n \n\n \n \n Location\n \n }\n labelPlacement=\"bottom\"\n control={\n setDevLocation(e.target.checked)}\n />\n }\n />\n \n Track\n \n }\n labelPlacement=\"bottom\"\n control={\n setDevVisible(e.target.checked)}\n />}\n />\n \n\n\n \n setDevGroupName(e.target.value)}\n helperText={groupNameAlreadyTaken ? \"Name already in use\" : \"The display name of the device\"}\n error={groupNameAlreadyTaken}\n InputProps={{\n endAdornment: (\n setDevGroupName(\"\")}\n >\n \n \n )\n }}\n />\n \n\n\n \n \n\n \n Bluetooth\n \n }\n labelPlacement=\"bottom\"\n control={\n setAddrBluetooth(e.target.checked)}\n />}\n />\n \n \n \n { setValueAdd(devGroupName); setOpenAdd(true); }}\n sx={{ display: isLarge && \"none\" }}\n >\n Create\n \n \n\n\n \n\n \n { setValueAdd(devGroupName); setOpenAdd(true); }}\n sx={{}}\n >\n Create\n \n \n\n\n\n \n {macAddresses?.length > 0 &&\n <>\n \n Mac addresses to add to {deviceType.component}{devGroupName.length > 0 ? {devGroupName} : \"Device\"}:\n \n \n {macAddresses.map((item, index) => (\n \n {item.bluetooth ? : }{item.address}}\n onDelete={handleDelete(item)}\n sx={{ bgcolor: theme.palette.primary.main + 50, color: theme.palette.primary.main }}\n />\n \n ))}\n \n \n }\n\n \n \n \n\n \n \n \n );\n})\n","import React, { useContext, useState } from 'react';\nimport { useForm, Controller } from \"react-hook-form\";\nimport { TextField, InputAdornment, IconButton, Tooltip, Box, Button, useMediaQuery, useTheme, Typography, Checkbox } from \"@mui/material\";\nimport LinkedInIcon from '@mui/icons-material/LinkedIn';\nimport WhatsAppIcon from '@mui/icons-material/WhatsApp';\nimport HelpIcon from '@mui/icons-material/Help';\nimport { Link } from 'react-router-dom';\nimport { MainContext, useFetchCloud } from 'kerberus-components';\nimport { useSWRConfig } from 'swr';\nimport PhoneInput from 'react-phone-input-2';\nimport 'react-phone-input-2/lib/material.css';\nimport ConfirmationDialog from '../ConfirmationDialog';\nimport CalendarMonthIcon from '@mui/icons-material/CalendarMonth';\nimport TwitterIcon from '@mui/icons-material/Twitter';\n\nconst toastError = {\n open: true,\n type: \"error\",\n title: \"Error\",\n message: `Something went wrong!`,\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nconst toastInfo = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"Personal information saved!\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nexport default function SocialLinks() {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const [socialLinkDialog, setSocialLinkDialog] = useState();\n const [isDisabled, setIsDisabled,] = useState(true);\n const { user, setOpen } = useContext(MainContext);\n const { fetchCloud } = useFetchCloud();\n const { mutate } = useSWRConfig();\n const { handleSubmit, control, formState: { errors }, register } = useForm({\n defaultValues: {\n linkedin: user?.links?.linkedin,\n twitter: user?.links?.twitter,\n whatsapp: user?.links?.whatsapp,\n calendly: user?.links?.calendly\n },\n mode: \"onChange\"\n });\n const onSubmit = data => { handleSocialLinksSave(data); console.log(data); };\n\n const handleSocialLinksSave = async (e) => {\n try {\n await fetchCloud(`users/timetableprofile/`, 'post', {\n links: e\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastInfo);\n }\n catch (err) {\n setOpen(toastError);\n };\n };\n\n const contentSocialLinks = (\n \n You are about to add your personal data to the system.\n
\n Some of the information you provide may be subject to GDPR legislation.\n
\n Therefore the system has all the necessary settings to control the visibility of this information to other users.\n
\n
\n Please ensure that you understand that you are personally responsible for the accuracy of the provided information you share and its visibility and use.\n
\n \n I understand\n setIsDisabled(isDisabled => !isDisabled)} />\n \n
\n {!isSmall &&
}\n
\n If you would like further information on this matter you can review our\n \n Terms & Conditions\n \n {\" again.\"}\n
\n
\n );\n\n return (\n
\n\n \n \n \n\n \n \n \n \n {isSmall &&\n LinkedIn\n }\n \n \n \n \n \n \n \n \n \n )\n }}\n\n\n />\n \n \n }\n />\n \n \n\n \n \n \n \n {isSmall &&\n Twitter\n }\n \n \n \n \n {/* */}\n \n {/* */}\n \n \n )\n }}\n\n\n />\n \n \n }\n />\n \n\n \n\n \n \n \n \n {isSmall &&\n Calendly\n }\n \n \n \n \n \n \n \n \n \n )\n }}\n\n\n />\n \n \n }\n />\n \n\n \n\n \n \n \n \n {isSmall &&\n WhatsApp\n }\n \n \n e.length > 0 ? onChange('https://wa.me/' + e) : onChange(e)}\n value={value}\n placeholder=\"+358 12 345 67 89\"\n inputStyle={{ width: \"100%\" }}\n preferredCountries={[\"fi\", \"gb\", \"se\"]}\n country=\"fi\"\n />\n \n \n }\n />\n \n \n \n \n\n \n \n\n );\n\n}","import React, { useContext, useState } from 'react';\nimport { Typography, Grid, Checkbox, useTheme, useMediaQuery, Divider, Autocomplete, TextField, Button, Tooltip } from '@mui/material';\nimport ConfirmationDialog from '../ConfirmationDialog';\nimport { MainContext } from 'kerberus-components';\nimport { Link } from 'react-router-dom';\n/* import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '@mui/icons-material/CheckBox'; */\nimport { useSWRConfig } from 'swr';\nimport { useFetchCloud } from 'kerberus-components';\n\n/* const icon = ;\nconst checkedIcon = ; */\n\nconst contentLocation = (\n <>\n
Allow your location to be shown to other users instead of last seen time.
\n \n);\nconst contentPublic = (\n <>\n
Allow profile usage in info dashboard.
\n \n);\nconst contentPublicSocials = (\n <>\n
Allow profile visibility in your company's social list.
\n \n);\nconst contentPublicCalendar = (\n <>\n
Allow other users to see your calendar.
\n \n);\nconst contentPushNotification = (\n <>\n
Enable to receive push notifications. You need to have notifications enabled on the device you want to receive them on.
\n \n);\nconst contentAllowTracking = (\n <>\n
\n Allow users to track your online activity.\n
Other users can setup one time notifications.\n
\n \n);\n\nconst updateToast = {\n open: true,\n type: 'success',\n title: 'Success',\n message: 'Device location settings were updated!',\n verticalPos: 'bottom',\n horizontalPos: 'center',\n autoHideDuration: 5000,\n};\n\nexport default React.memo(function ProfilePermissions({ isDisabled, setIsDisabled, handleChangeLocation, handleChangeNotification, handleChangePublicSocials, handleChangePublic, handleChangeCalendar, handleChangeTracking }) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n /* const isMedium = useMediaQuery(theme.breakpoints.down('md')); */\n const { user, setOpen: setOpenToast } = useContext(MainContext);\n\n const [dialog, setDialog] = useState('');\n const [dialogOpen, setDialogOpen] = useState(false);\n\n const { mutate } = useSWRConfig();\n const { fetchCloud } = useFetchCloud();\n\n const [value, setValue] = useState(user.device_groups);\n\n /* const [locationChecked, setLocationChecked] = useState(user.device_groups.map((item) => item.location))\n\n console.log(user.device_groups.map((item) => item.location)) */\n\n /* const handleDeviceLocation = async (e) => {\n e.forEach(element => \n { try {\n fetchCloud(`devices/devicegroup/${element.id}/`, 'PATCH', {\n location: !element.location\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n alert(err);\n }\n }\n )\n }; */\n\n const handleDeviceLocationMany = async (e) => {\n try {\n fetchCloud(`devices/devicegrouplocation`, 'POST', {\n device_groups: e,\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpenToast(updateToast);\n } catch (err) {\n alert(err);\n }\n };\n\n const handleContent = (e) => {\n let content = '';\n let name = '';\n let handle = '';\n\n switch (e) {\n case 1:\n content = contentLocation;\n name = 'share location';\n handle = handleChangeLocation;\n break;\n case 2:\n content = contentPushNotification;\n name = 'push notification';\n handle = handleChangeNotification;\n break;\n case 3:\n content = contentPublicSocials;\n name = 'profile visibility';\n handle = handleChangePublicSocials;\n break;\n case 4:\n content = contentPublic;\n name = 'dashboard visibility';\n handle = handleChangePublic;\n break;\n case 5:\n content = contentPublicCalendar;\n name = 'calendar visibility';\n handle = handleChangeCalendar;\n break;\n case 6:\n content = contentAllowTracking;\n name = 'profile tracking';\n handle = handleChangeTracking;\n break;\n default:\n content = 'Something went wrong, please close modal, refresh page and try again.';\n break;\n }\n\n const contentSocialLinks = (\n \n {content}\n
\n Please ensure that you understand that you are personally responsible for the accuracy of the provided information you share and its visibility and use.\n
\n \n I understand\n setIsDisabled((isDisabled) => !isDisabled)} />\n \n
\n {!isSmall &&
}\n
\n If you would like further information on this matter you can review our\n \n Terms & Conditions\n \n {' again.'}\n
\n
\n );\n\n return ;\n };\n\n return (\n \n \n \n \n \n \n Devices with location enabled\n \n \n \n user.group_name}\n onChange={(e, newVal, status, option) =>\n /* console.log(e, newVal, joku, option) */\n setValue(\n value.map((obj) => {\n if (obj.id === option.option.id) {\n return { ...obj, location: !obj.location };\n }\n\n return obj;\n })\n )\n }\n value={value.filter((item) => item.location)}\n asd={console.log(value)}\n renderOption={(props, item) => (\n
  • \n device.id === item.id)?.location}\n /* asd={console.log(value)} */\n />\n {item.group_name}\n
  • \n )}\n style={{ width: 500 }}\n renderInput={(params) => }\n />\n \n
    \n \n \n \n \n \n Share Location\n \n \n \n \n \n item.location).length === 0 ? 'You must enable device location first' : ''}>\n \n item.location).length === 0}\n checked={user.location_enabled}\n onChange={\n user.location_enabled\n ? () => handleChangeLocation()\n : () => {\n setDialogOpen(true);\n setDialog(1);\n }\n }\n />\n \n \n \n \n \n Allow your location to be shown to other users instead of last seen time.\n \n \n \n \n
    \n
    \n \n \n \n \n \n Push Notifications\n \n \n \n \n \n handleChangeNotification()\n : () => {\n setDialogOpen(true);\n setDialog(2);\n }\n }\n />\n \n \n \n Enable to receive push notifications. You need to have notifications enabled on the device you want to receive them on.\n \n \n \n \n \n \n \n \n \n \n \n Public Social\n \n \n \n \n \n handleChangePublicSocials()\n : () => {\n setDialogOpen(true);\n setDialog(3);\n }\n }\n />\n \n \n \n Allow profile visibility in your company's social list.\n \n \n \n \n \n \n \n \n \n \n \n Public Dashboard\n \n \n \n \n \n handleChangePublic()\n : () => {\n setDialogOpen(true);\n setDialog(4);\n }\n }\n sx={{ marginTop: !isSmall && 2 }}\n />\n \n \n \n Allow profile usage in info dashboard.\n \n \n \n \n \n \n \n \n \n \n \n Public Calendar\n \n \n \n \n \n handleChangeCalendar()\n : () => {\n setDialogOpen(true);\n setDialog(5);\n }\n }\n />\n \n \n \n Allow other users to see your calendar.\n \n \n \n \n \n \n \n \n \n \n \n Allow one-time tracking\n \n \n \n \n \n handleChangeTracking()\n : () => {\n setDialogOpen(true);\n setDialog(6);\n }\n }\n />\n \n \n \n Allow users to track your online activity. Other users can setup one time notifications.\n \n \n \n \n \n \n\n {handleContent(dialog)}\n
    \n );\n});\n","import React, { useContext, useEffect } from 'react';\nimport Card from '@mui/material/Card';\nimport Grid from '@mui/material/Grid';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport Button from '@mui/material/Button';\nimport { useTheme } from '@emotion/react';\nimport { Accordion, AccordionDetails, AccordionSummary, Avatar, Box, Checkbox, Tab, Tabs } from '@mui/material';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport IconButton from '@mui/material/IconButton';\nimport { useMediaQuery } from '@mui/material';\nimport Divider from '@mui/material/Divider';\nimport { Dialog, DialogContent, DialogTitle, Autocomplete } from '@mui/material';\nimport { MainContext, useFetchCloud, SmallAvatarWrapper, timezones } from 'kerberus-components';\nimport { useCallback, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { useParams } from 'react-router-dom';\nimport ConfirmationDialog from '../../Components/ConfirmationDialog';\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\nimport AdapterMoment from '@mui/lab/AdapterMoment';\nimport TimePicker from '@mui/lab/TimePicker';\nimport moment from 'moment';\nimport DayEnabledCheckbox from '../../Components/DayEnabledCheckbox';\nimport { useSWRConfig } from 'swr';\nimport SocialLinks from '../../Components/Profile/SocialLinks';\nimport HelperIcon from '../../Components/HelperIcon';\nimport { StyledBadgeAvatar } from 'kerberus-components';\nimport ProfilePermissions from '../../Components/Profile/ProfilePermissions';\nimport GroupIcon from '@mui/icons-material/Group';\nimport SettingsIcon from '@mui/icons-material/Settings';\nimport PropTypes from 'prop-types';\nimport SearchBar from '../../Components/MyConnections/SearchBar';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport ApartmentIcon from '@mui/icons-material/Apartment';\n\nconst contentPic = (\n \n Are you sure you want to delete your profile picture?\n \n);\n\nconst contentPublic = (<>
    Allow profile usage in info dashboard
    );\nconst contentPublicSocialsGroup = (<>
    Allow profile visibility in your group's social list
    );\nconst contentPublicCalendar = (<>
    Allow other users to see your calendar
    );\n\nconst toastError = {\n open: true,\n type: \"error\",\n title: \"Error\",\n message: `Something went wrong!`,\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nconst toastInfo = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"Personal information saved!\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nconst toastDataShareUser = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"User data sharing settings saved!\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\n\nconst toastDataShareGroup = {\n open: true,\n type: \"success\",\n title: \"Success\",\n message: \"Group data sharing settings saved!\",\n verticalPos: \"bottom\",\n horizontalPos: \"center\",\n autoHideDuration: 5000\n};\nfunction TabPanel(props) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { children, value, index, ...other } = props;\n\n return (\n
    \n );\n}\n\nTabPanel.propTypes = {\n children: PropTypes.node,\n index: PropTypes.number.isRequired,\n value: PropTypes.number.isRequired,\n};\n\nfunction escapeRegExp(value) {\n return value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nexport default function ProfileSettings() {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const isMedium = useMediaQuery(theme.breakpoints.down('md'));\n const { user, setOpen } = useContext(MainContext);\n const [openPic, setOpenPic] = useState(false);\n const [valuePic, setValuePic] = useState(false);\n const { userId } = useParams();\n const [uploadDialogOpen, setUploadDialogOpen] = useState(false);\n const [uploadDisabled, setUploadDisabled] = useState(false);\n const [loading, setLoading] = useState('');\n const [file, setFile] = useState(null);\n const { fetchCloud } = useFetchCloud();\n const [firstName, setFirstName] = useState(user.first_name);\n const [lastName, setLastName] = useState(user.last_name);\n const [email, setEmail] = useState(user.email);\n const [tz, setTz] = useState(user.tz);\n const [title, setTitle] = useState(user.title);\n const [image, setImage] = useState();\n const [startTime, setStartTime] = useState(moment.utc().startOf('day').add(user.utc_start).local());\n const [endTime, setEndTime] = useState(moment.utc().startOf('day').add(user.utc_end).local());\n const [daysEnabled, setDaysEnabled] = useState(new Set(user.enable_days));\n const [isDisabled, setIsDisabled,] = useState(true);\n const [alwaysActive, setAlwaysActive] = useState(user.utc_start === \"00:00:00\" && user.utc_end === \"1 00:00:00\");\n const { mutate } = useSWRConfig();\n\n const onDrop = useCallback(async acceptedFiles => {\n setUploadDisabled(true);\n const imageUrl = URL.createObjectURL(acceptedFiles[0]);\n setImage(imageUrl);\n setFile(acceptedFiles[0]);\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop, multiple: false, disabled: uploadDisabled });\n\n const handleUpload = async () => {\n try {\n setLoading('Loading...');\n await fetchCloud('upload/profile', 'post', {\n file: file,\n }, true, true);\n window.location.reload();\n }\n catch (err) {\n setLoading('Failed upload');\n console.error(err);\n }\n };\n\n const handleDelete = async () => {\n try {\n await fetchCloud(`delete/profile`, 'delete', null, false, true);\n window.location.reload();\n }\n catch (err) {\n console.error(err);\n }\n };\n\n const handleProfileSave = async () => {\n try {\n await fetchCloud(`users/timetableprofile/`, 'post', {\n first_name: firstName,\n last_name: lastName,\n email: email,\n title: title,\n tz: tz,\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastInfo);\n }\n catch (err) {\n setOpen(toastError);\n };\n };\n\n const handleChange = async () => {\n let startDiff = null;\n let endDiff = null;\n\n if (!alwaysActive) {\n let startUtc = moment.utc(startTime).set(\"second\", 0);\n let startUtcMid = startUtc.clone().startOf('day');\n startDiff = startUtc.diff(startUtcMid, 'seconds');\n let endUtc = moment.utc(endTime).set(\"second\", 0);\n let endUtcMid = endUtc.clone().startOf('day');\n endDiff = endUtc.diff(endUtcMid, 'seconds');\n }\n\n try {\n await fetchCloud('users/timetableprofile/', 'post', {\n utc_start: !alwaysActive ? startDiff : 0,\n utc_end: !alwaysActive ? endDiff : 86400,\n enable_days: Array.from(daysEnabled).sort()\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastDataShareUser);\n }\n catch (err) {\n setOpen(toastError);\n }\n };\n\n const handleChangeLocation = async () => {\n try {\n await fetchCloud('users/timetableprofile/', 'post', {\n location_enabled: !user.location_enabled,\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastDataShareUser);\n }\n catch (err) {\n setOpen(toastError);\n }\n setIsDisabled(true);\n };\n const handleChangeNotification = async () => {\n try {\n await fetchCloud('users/timetableprofile/', 'post', {\n push_enabled: !user.push_enabled,\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastDataShareUser);\n }\n catch (err) {\n setOpen(toastError);\n }\n setIsDisabled(true);\n };\n const handleChangePublicSocials = async () => {\n try {\n await fetchCloud('users/timetableprofile/', 'post', {\n public_social: !user.public_social,\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastDataShareUser);\n }\n catch (err) {\n setOpen(toastError);\n }\n setIsDisabled(true);\n };\n const handleChangePublic = async () => {\n try {\n await fetchCloud('users/timetableprofile/', 'post', {\n public: !user.public,\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastDataShareUser);\n }\n catch (err) {\n setOpen(toastError);\n }\n setIsDisabled(true);\n };\n const handleChangeCalendar = async () => {\n try {\n await fetchCloud('users/timetableprofile/', 'post', {\n public_calendar: !user.public_calendar,\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastDataShareUser);\n }\n catch (err) {\n setOpen(toastError);\n }\n setIsDisabled(true);\n };\n const handleChangeTracking = async () => {\n try {\n await fetchCloud('users/timetableprofile/', 'post', {\n allow_tracking: !user.allow_tracking,\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n setOpen(toastDataShareUser);\n }\n catch (err) {\n setOpen(toastError);\n }\n setIsDisabled(true);\n };\n\n const [value, setValue] = React.useState(0);\n\n const handleChangeTabs = (event, newValue) => {\n setValue(newValue);\n };\n\n const [searchText, setSearchText] = useState('');\n const [rows, setRows] = useState(user.social_groups);\n\n const requestSearch = (searchValue) => {\n setSearchText(searchValue);\n const searchRegex = new RegExp(escapeRegExp(searchValue), 'i');\n const filteredRows = user.social_groups.filter((row) => {\n return Object.keys(row).some((field) => {\n return row[field] ? searchRegex.test(row[field].toString()) : null;\n });\n });\n setRows(filteredRows);\n };\n\n useEffect(() => {\n setRows(user.social_groups);\n }, [user.social_groups]);\n\n return (\n <>\n setUploadDialogOpen(false)}\n >\n \n \n Upload Profile Picture\n \n \n \n {!file &&\n
    \n \n {\n uploadDisabled ?

    File selected

    :\n isDragActive ?\n

    Drop the files here ...

    :\n

    {isSmall ? 'Press to select file' : 'Drag and drop some files here, or click to select files'}

    \n }\n
    }\n {file && \n \n {file.name}\n \n \n \n\n \n }\n
    \n {image && }\n
    \n
    \n \n {loading}\n
    \n
    \n \n\n \n \n } label={!isSmall ? \"General\" : null} />\n } label={!isSmall ? \"Company Communications\" : null} />\n } label={!isSmall ? \"Group Communications\" : null} />\n \n \n\n {/* TAB GENERAL */}\n \n\n \n\n {/* PROFILE PICTURE */}\n \n \n Profile Picture\n \n \n \n\n {!isSmall &&\n \n \n Social Links\n \n \n \n }\n\n \n \n \n \n \n \n \n { setValuePic(userId); setOpenPic(true); }} sx={{ marginLeft: 1, display: isMedium && \"none\" }}>\n \n \n \n \n {/* \n \n \n { setValuePic(userId); setOpenPic(true); }} sx={{ marginLeft: 1, display: isSmall && \"none\" }}>\n \n \n \n */}\n {isSmall &&\n \n \n Social links\n \n \n \n }\n \n \n \n \n \n \n\n {/* PROFILE SETTINGS */}\n \n \n Profile Settings\n \n \n Change personal information for your account\n \n \n\n \n \n\n \n \n \n First Name\n \n \n \n setFirstName(e.target.value)} id=\"FirstNameInput\" label=\"First Name\" variant=\"outlined\" helperText=\"You can update your first name\" fullWidth />\n \n \n\n \n\n \n \n \n Last Name\n \n \n \n setLastName(e.target.value)} id=\"LastNameInput\" label=\"Last Name\" variant=\"outlined\" helperText=\"You can update your last name\" fullWidth />\n \n \n\n \n\n \n \n \n Title\n \n \n \n setTitle(e.target.value)} id=\"TitleInput\" label=\"Title\" variant=\"outlined\" helperText=\"You can update your title\" fullWidth />\n \n \n\n \n\n \n \n \n Email\n \n \n \n setEmail(e.target.value)} id=\"EmailInput\" label=\"Email\" variant=\"outlined\" helperText=\"You can update your email\" fullWidth />\n \n \n\n \n\n \n \n \n Timezone\n \n \n \n setTz(newVal)}\n renderInput={(params) => }\n />\n \n \n\n \n \n \n \n \n\n \n\n \n\n \n\n \n\n {/* TAB COMPANY COMMUNICATIONS */}\n \n <>\n \n\n \n\n \n \n \n Company communication\n \n \n {/* Permission CheckBoxes Component */}\n \n\n \n\n \n \n \n Visibility time\n \n \n \n \n \n \n \n Always active\n \n \n \n \n \n {\n setAlwaysActive(!alwaysActive);\n }}\n />\n \n \n \n This choice only affects time\n \n \n \n \n \n \n \n \n \n \n Active time\n \n \n \n \n \n \n setStartTime(e)}\n renderInput={(params) => }\n disabled={alwaysActive}\n views={['hours']}\n />\n \n \n \n \n setEndTime(e)}\n renderInput={(params) => }\n disabled={alwaysActive}\n views={['hours']}\n readOnly\n />\n \n \n \n \n \n \n \n \n \n \n Active days\n \n \n \n {['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'].map((item, idx) => (\n \n \n \n ))}\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n \n\n \n \n \n\n {/* GROUP COMMUNICATIONS */}\n \n \n\n \n \n \n Groups\n \n requestSearch(event.target.value)}\n clearSearch={() => requestSearch('')}\n />\n \n \n {rows.length > 0\n ?\n rows.sort((a, b) => a.name > b.name ? 1 : -1).map(item => (\n \n \n }\n aria-controls=\"group-content\"\n id=\"group-header\"\n sx={{ '&:hover': { backgroundColor: theme.palette.primary.main + 80 }, cursor: \"pointer\" }}\n >\n \n {item.name}\n \n \n \n {/* */}\n \n \n \n \n )\n )\n :\n \n \n \n You have not joined any group yet.\n \n \n \n }\n \n \n \n \n \n );\n}\n\n\nfunction SocialGroupPermissionCheck({ item, setOpen }) {\n const [publicSocial, setPublicSocial] = useState(item.permissions.public_social);\n const [publicDashboard, setPublicDashboard] = useState(item.permissions.public_dashboard);\n const [publicCalendar, setPublicCalendar] = useState(item.permissions.public_calendar);\n const [startTime, setStartTime] = useState(moment.utc().startOf('day').add(item.permissions.utc_start).local());\n const [endTime, setEndTime] = useState(moment.utc().startOf('day').add(item.permissions.utc_end).local());\n const [daysEnabled, setDaysEnabled] = useState(new Set(item.permissions.enable_days));\n const { fetchCloud } = useFetchCloud();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const [alwaysActive, setAlwaysActive] = useState(item.permissions.utc_start === \"00:00:00\" && item.permissions.utc_end === \"1 00:00:00\");\n const { mutate } = useSWRConfig();\n\n const handleChange = async () => {\n let startDiff = null;\n let endDiff = null;\n\n if (!alwaysActive) {\n let startUtc = moment.utc(startTime).set(\"second\", 0);\n let startUtcMid = startUtc.clone().startOf('day');\n startDiff = startUtc.diff(startUtcMid, 'seconds');\n let endUtc = moment.utc(endTime).set(\"second\", 0);\n let endUtcMid = endUtc.clone().startOf('day');\n endDiff = endUtc.diff(endUtcMid, 'seconds');\n }\n\n try {\n await fetchCloud(`users/update_social_group_perm`, 'post', {\n social_group: item.id,\n public_social: publicSocial,\n public_dashboard: publicDashboard,\n public_calendar: publicCalendar,\n utc_start: !alwaysActive ? startDiff : 0,\n utc_end: !alwaysActive ? endDiff : 86400,\n enable_days: Array.from(daysEnabled).sort()\n });\n setOpen(toastDataShareGroup);\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n setOpen(toastError);\n console.log(err)\n }\n };\n\n useEffect(() => {\n setPublicSocial(item.permissions.public_social);\n setPublicDashboard(item.permissions.public_dashboard);\n setPublicCalendar(item.permissions.public_calendar);\n setStartTime(moment.utc().startOf('day').add(item.permissions.utc_start).local());\n setEndTime(moment.utc().startOf('day').add(item.permissions.utc_end).local());\n setDaysEnabled(new Set(item.permissions.enable_days));\n }, [item]);\n\n return (\n\n \n \n \n \n \n Public social\n \n \n \n \n \n setPublicSocial(prev => !prev)} />\n \n \n \n {contentPublicSocialsGroup}\n \n \n \n \n \n \n \n \n \n \n Public dashboard\n \n \n \n \n \n setPublicDashboard(prev => !prev)} />\n \n \n \n {contentPublic}\n \n \n \n \n \n \n \n \n \n \n Public calendar\n \n \n \n \n \n setPublicCalendar(prev => !prev)} />\n \n \n \n {contentPublicCalendar}\n \n \n \n \n \n \n \n \n \n \n Visibility time\n \n \n \n \n \n \n Always active\n \n \n \n \n \n {\n setAlwaysActive(!alwaysActive);\n }}\n />\n \n \n \n This choice only affects time\n \n \n \n \n \n \n \n \n \n \n Active time\n \n \n \n \n \n \n setStartTime(e)}\n renderInput={(params) => }\n disabled={alwaysActive}\n />\n \n \n \n \n setEndTime(e)}\n renderInput={(params) => }\n disabled={alwaysActive}\n />\n \n \n \n \n \n \n \n \n \n \n Active days\n \n \n \n {['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'].map((item, idx) => (\n \n \n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import { Grid, Typography, Card, Tooltip, ListItemAvatar, useMediaQuery } from \"@mui/material\";\nimport { SmallAvatarWrapper } from \"kerberus-components\";\nimport { Link } from \"react-router-dom\";\nimport { useTheme } from \"@emotion/react\";\n\nexport default function ProfileMutualSocialGroups({ socialGroups, userId, userPersonalId, userData }) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('md'));\n\n /* Filter own socials groups with target's socials groups */\n const mutualSocialGroups = socialGroups.filter((group) => {\n return userData.social_groups.includes(group.id);\n });\n\n return (\n \n \n Mutual Social Groups\n \n \n {mutualSocialGroups.length > 0 ? mutualSocialGroups.map((socialGroupsData) => {\n return (\n \n \n \n \n \n \n \n {socialGroupsData.name}\n \n \n );\n })\n :\n \n No mutual social groups\n \n }\n \n \n );\n}\n","import * as React from 'react';\nimport { useEffect, useContext, useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport SwipeableViews from 'react-swipeable-views';\nimport Tabs from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport ProfileIcon from './ProfileIcon';\nimport ProfileText from './ProfileText';\nimport { Link as RouterLink, useLocation, useParams } from 'react-router-dom';\nimport ProfileCalendar from '../Profile/ProfileCalendar';\nimport { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport DevicesOtherIcon from '@mui/icons-material/DevicesOther';\nimport SettingsIcon from '@mui/icons-material/Settings';\nimport PersonIcon from '@mui/icons-material/Person';\nimport CalendarTodayIcon from '@mui/icons-material/CalendarToday';\nimport ProfileDevice from '../Profile/ProfileDevices';\nimport { MainContext, useFetchCloud, useWsDataProvider } from 'kerberus-components';\nimport ProfileSettings from './ProfileSettings';\nimport moment from 'moment';\nimport { Checkbox, FormControlLabel, FormGroup } from '@mui/material';\nimport LayoutPaper from '../../Components/LayoutPaper';\nimport useSWR, { useSWRConfig } from 'swr';\nimport ProfileMutualSocialGroups from '../../Components/Profile/ProfileMutualSocialGroups';\n\nfunction TabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n
    \n );\n}\n\nTabPanel.propTypes = {\n children: PropTypes.node,\n index: PropTypes.number.isRequired,\n value: PropTypes.number.isRequired,\n};\n\nfunction a11yProps(index) {\n return {\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n };\n}\n\nconst parseLocation = (location) => {\n var split = location.split('/');\n switch (split[split.length - 1]) {\n case ('calendar'): return 1;\n case ('device'): return 2;\n case ('settings'): return 3;\n default: return 0;\n }\n};\n\nexport default React.memo(function ProfileView() {\n const { user, bulkData } = useContext(MainContext);\n const [userData, setUserData] = useState(null);\n const { userId } = useParams();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const isMedium = useMediaQuery(theme.breakpoints.down('md'));\n const isLarge= useMediaQuery(theme.breakpoints.down('lg'));\n const location = useLocation();\n const [value, setValue] = useState(0);\n const { getData, data, doUnsubscribe } = useWsDataProvider();\n const [onlineData, setOnlineData] = useState(null);\n const { fetchCloud } = useFetchCloud();\n const [onEnterChecked, setOnEnterChecked] = useState(() => {\n if (userId === user.id) return false;\n else {\n const alarmObj = user.alarms.find(i => i.target === userId);\n return alarmObj ? alarmObj.on_enter : false;\n }\n });\n const [onExitChecked, setOnExitChecked] = useState(() => {\n if (userId === user.id) return false;\n else {\n const alarmObj = user.alarms.find(i => i.target === userId);\n return alarmObj ? alarmObj.on_exit : false;\n }\n });\n const { data: swrUserData } = useSWR(user.id !== userId ? `users/timetableprofile/${userId}/` : null);\n const { data: swrSiteData } = useSWR(user.id === userId ? `users/usersites` : null);\n const { mutate } = useSWRConfig();\n useEffect(() => {\n if (userId !== user.id) {\n const alarmObj = user.alarms.find(item => item.target === userId);\n if (alarmObj) {\n setOnEnterChecked(alarmObj.on_enter);\n setOnExitChecked(alarmObj.on_exit);\n }\n }\n }, [user.alarms, user.id, userId]);\n\n const lastseenminutes = useMemo(() => {\n if (onlineData?.timestamp) {\n const now = moment();\n const lastSeen = moment(onlineData.timestamp);\n const duration = moment.duration(now.diff(lastSeen));\n return duration.asMinutes();\n }\n else return null;\n }, [onlineData]);\n\n useEffect(() => { setValue(parseLocation(location.pathname)); }, [location]);\n\n useEffect(() => {\n if (swrUserData) {\n setUserData(swrUserData);\n }\n }, [swrUserData]);\n\n useEffect(() => {\n if (user.id === userId && bulkData) {\n setUserData(user);\n setOnlineData(bulkData.user);\n }\n }, [user, userId, bulkData]);\n\n useEffect(() => {\n if (user.id !== userId) {\n getData('socketLocation', 'lastFoundOther', {\n filters: {\n id: userId\n },\n subscribe: true\n });\n }\n return () => doUnsubscribe();\n }, [getData, doUnsubscribe, user.id, userId]);\n\n useEffect(() => {\n if (user.id !== userId) {\n setOnlineData(data);\n }\n }, [data, user.id, userId]);\n\n const handleChangeIndex = (index) => {\n setValue(index);\n };\n\n const handleEnterAlarmCheck = async () => {\n await fetchCloud(`alarms/create_user_alarm`, 'post', {\n target: userId,\n on_enter: !onEnterChecked,\n on_exit: onExitChecked\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n\n const handleExitAlarmCheck = async () => {\n await fetchCloud(`alarms/create_user_alarm`, 'post', {\n target: userId,\n on_enter: onEnterChecked,\n on_exit: !onExitChecked\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n };\n return userData ? (\n \n \n \n } label={isSmall ? \"\" : \"Profile\"} component={RouterLink} {...a11yProps(0)} to={`/profile/${userId}`} replace />\n {(user.id === userId || userData.public_calendar) &&\n } label={isSmall ? \"\" : \"Calendar\"} component={RouterLink} {...a11yProps(1)} to={`/profile/${userId}/calendar`} replace />\n }\n {user.id === userId &&\n } label={isSmall ? \"\" : \"Device\"} component={RouterLink} {...a11yProps(2)} to={`/profile/${userId}/device`} replace />\n }\n {user.id === userId &&\n } label={isSmall ? \"\" : \"Settings\"} component={RouterLink} {...a11yProps(3)} to={`/profile/${userId}/settings`} replace />\n }\n {/* */}\n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n {/* {!user.next &&\n\n user.id === userId &&\n \n \n \n \n \n\n } */}\n {user.id !== userId && userData?.allow_tracking &&\n \n \n \n }\n label=\"Notify me when this person is present next time\" />\n }\n label=\"Notify me when this person leaves\" />\n \n \n \n } \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : null;\n})\n","import { Button, Checkbox, FormControlLabel, FormGroup, Grid, TextField, Typography, useMediaQuery, Tooltip, Divider, Box } from '@mui/material';\nimport { useCallback, useContext, useEffect, useLayoutEffect, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport jwt_decode from 'jwt-decode';\nimport { useTheme } from '@mui/material/styles';\nimport { MainContext, useFetchCloud, SmallAvatarWrapper } from 'kerberus-components';\nimport TimePicker from '@mui/lab/TimePicker';\nimport moment from 'moment';\nimport AdapterMoment from '@mui/lab/AdapterMoment';\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\nimport DayEnabledCheckbox from '../Components/DayEnabledCheckbox';\nimport LayoutPaper from '../Components/LayoutPaper';\nimport { useSWRConfig } from 'swr';\nimport ActiveTime from '../Components/Groups/ActiveTime';\n\nexport default function SocialGroupInvite(props) {\n const { fetchCloud } = useFetchCloud();\n const { user } = useContext(MainContext);\n const theme = useTheme();\n const { token } = useParams();\n const [validToken, setValidToken] = useState(null);\n const [groupData, setGroupData] = useState(null);\n const [duplicateGroup, setDuplicateGroup] = useState(false);\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const [publicDashboardCheck, setPublicDashboardCheck] = useState(true);\n const [publicSocialCheck, setPublicSocialCheck] = useState(true);\n const [publicCalendarCheck, setPublicCalendarCheck] = useState(false);\n const [startTime, setStartTime] = useState(moment().startOf('day'));\n const [endTime, setEndTime] = useState(moment().endOf('day'));\n const [daysEnabled, setDaysEnabled] = useState(new Set([1, 2, 3, 4, 5, 6, 7]));\n const [alwaysActive, setAlwaysActive] = useState(true);\n const { mutate } = useSWRConfig();\n\n const navigate = useNavigate();\n\n const getGroupInfo = useCallback((groupId) => {\n fetchCloud(`users/socialgroupinfo/${groupId}/`, 'get')\n .then((res) => {\n setGroupData(res);\n })\n .catch(console.error);\n }, [fetchCloud]);\n\n\n\n useLayoutEffect(() => {\n if (token) {\n try {\n var decoded = jwt_decode(token);\n var tokenTest = decoded.exp * 1000;\n if (new Date(tokenTest) > new Date()) {\n if (user?.social_groups.map(item => item.id).includes(decoded.social_group)) {\n setDuplicateGroup(true);\n getGroupInfo(decoded.social_group);\n }\n else {\n getGroupInfo(decoded.social_group);\n }\n setValidToken(true);\n }\n else setValidToken(false);\n }\n catch (e) {\n setValidToken(false);\n }\n }\n }, [token, user.social_groups, getGroupInfo]);\n\n const handleJoin = async () => {\n let startDiff = null;\n let endDiff = null;\n\n if (!alwaysActive) {\n let startUtc = moment.utc(startTime).set(\"second\", 0);;\n let startUtcMid = startUtc.clone().startOf('day');\n startDiff = startUtc.diff(startUtcMid, 'seconds');\n let endUtc = moment.utc(endTime).set(\"second\", 0);;\n let endUtcMid = endUtc.clone().startOf('day');\n endDiff = endUtc.diff(endUtcMid, 'seconds');\n }\n\n try {\n await fetchCloud('users/join_social', 'POST', {\n token: token,\n public_dashboard: publicDashboardCheck,\n public_social: publicSocialCheck,\n public_calendar: publicCalendarCheck,\n utc_start: !alwaysActive ? startDiff : 0,\n utc_end: !alwaysActive ? endDiff : 86400,\n enable_days: Array.from(daysEnabled).sort()\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n navigate('/');\n }\n catch (err) {\n alert(err.data);\n }\n };\n\n useEffect(() => {\n if(duplicateGroup && groupData) {\n navigate(`/groups/${groupData?.id}`)\n }\n },[duplicateGroup, groupData, navigate]);\n\n return (\n \n {validToken ?\n !duplicateGroup ?\n groupData &&\n \n \n \n Group Invitation\n \n \n \n You have been invited to join the social group {groupData.name}.\n\n \n \n
    \n \n
    \n
    \n
    \n \n {groupData.description}\n \n \n Select settings you want to join the group with.\n \n
    \n \n \n setPublicDashboardCheck(prev => !prev)} />}\n label=\"Allow profile usage in dashboards\" />\n setPublicSocialCheck(prev => !prev)} />}\n label=\"Allow profile usage in socials list\" />\n setPublicCalendarCheck(prev => !prev)} />}\n label=\"Allow users in social group to view your calendar\" />\n \n \n{/* \n \n \n Social Links\n \n \n \n */}\n \n \n \n Visibility Hours\n \n \n {\n setAlwaysActive(!alwaysActive);\n }}\n />\n \n } label=\"Always active\" labelPlacement=\"top\"\n />\n \n Starting Time\n \n\n \n setStartTime(e)}\n renderInput={(params) => }\n disabled={alwaysActive}\n />\n \n\n \n Ending Time\n \n \n setEndTime(e)}\n renderInput={(params) => }\n disabled={alwaysActive}\n />\n \n \n \n {['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'].map((item, idx) => (\n \n ))}\n \n \n \n \n
    \n :\n null\n :\n \n Link is invalid or expired.\n \n }\n
    \n );\n};\n","import defaultMoment from 'moment';\n\nvar defaultFormats = {\n normalDateWithWeekday: \"ddd, MMM D\",\n normalDate: \"D MMMM\",\n shortDate: \"MMM D\",\n monthAndDate: \"MMMM D\",\n dayOfMonth: \"D\",\n year: \"YYYY\",\n month: \"MMMM\",\n monthShort: \"MMM\",\n monthAndYear: \"MMMM YYYY\",\n weekday: \"dddd\",\n weekdayShort: \"ddd\",\n minutes: \"mm\",\n hours12h: \"hh\",\n hours24h: \"HH\",\n seconds: \"ss\",\n fullTime: \"LT\",\n fullTime12h: \"hh:mm A\",\n fullTime24h: \"HH:mm\",\n fullDate: \"ll\",\n fullDateWithWeekday: \"dddd, LL\",\n fullDateTime: \"lll\",\n fullDateTime12h: \"ll hh:mm A\",\n fullDateTime24h: \"ll HH:mm\",\n keyboardDate: \"L\",\n keyboardDateTime: \"L LT\",\n keyboardDateTime12h: \"L hh:mm A\",\n keyboardDateTime24h: \"L HH:mm\",\n};\nvar MomentUtils = /** @class */ (function () {\n function MomentUtils(_a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, locale = _b.locale, formats = _b.formats, instance = _b.instance;\n this.lib = \"moment\";\n this.is12HourCycleInCurrentLocale = function () {\n return /A|a/.test(_this.moment().localeData().longDateFormat(\"LT\"));\n };\n this.getFormatHelperText = function (format) {\n // @see https://github.com/moment/moment/blob/develop/src/lib/format/format.js#L6\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})|./g;\n return format\n .match(localFormattingTokens)\n .map(function (token) {\n var firstCharacter = token[0];\n if (firstCharacter === \"L\" || firstCharacter === \";\") {\n return _this.moment.localeData().longDateFormat(token);\n }\n return token;\n })\n .join(\"\")\n .replace(/a/gi, \"(a|p)m\")\n .toLocaleLowerCase();\n };\n this.getCurrentLocaleCode = function () {\n return _this.locale || _this.moment.locale();\n };\n this.parseISO = function (isoString) {\n return _this.moment(isoString, true);\n };\n this.toISO = function (value) {\n return value.toISOString();\n };\n this.parse = function (value, format) {\n if (value === \"\") {\n return null;\n }\n if (_this.locale) {\n return _this.moment(value, format, _this.locale, true);\n }\n return _this.moment(value, format, true);\n };\n this.date = function (value) {\n if (value === null) {\n return null;\n }\n var moment = _this.moment(value);\n moment.locale(_this.locale);\n return moment;\n };\n this.toJsDate = function (value) {\n return value.toDate();\n };\n this.isValid = function (value) {\n return _this.moment(value).isValid();\n };\n this.isNull = function (date) {\n return date === null;\n };\n this.getDiff = function (date, comparing, unit) {\n return date.diff(comparing, unit);\n };\n this.isAfter = function (date, value) {\n return date.isAfter(value);\n };\n this.isBefore = function (date, value) {\n return date.isBefore(value);\n };\n this.isAfterDay = function (date, value) {\n return date.isAfter(value, \"day\");\n };\n this.isBeforeDay = function (date, value) {\n return date.isBefore(value, \"day\");\n };\n this.isBeforeYear = function (date, value) {\n return date.isBefore(value, \"year\");\n };\n this.isAfterYear = function (date, value) {\n return date.isAfter(value, \"year\");\n };\n this.startOfDay = function (date) {\n return date.clone().startOf(\"day\");\n };\n this.endOfDay = function (date) {\n return date.clone().endOf(\"day\");\n };\n this.format = function (date, formatKey) {\n return _this.formatByString(date, _this.formats[formatKey]);\n };\n this.formatByString = function (date, formatString) {\n var clonedDate = date.clone();\n clonedDate.locale(_this.locale);\n return clonedDate.format(formatString);\n };\n this.formatNumber = function (numberToFormat) {\n return numberToFormat;\n };\n this.getHours = function (date) {\n return date.get(\"hours\");\n };\n this.addSeconds = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"seconds\")\n : date.clone().add(count, \"seconds\");\n };\n this.addMinutes = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"minutes\")\n : date.clone().add(count, \"minutes\");\n };\n this.addHours = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"hours\")\n : date.clone().add(count, \"hours\");\n };\n this.addDays = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"days\")\n : date.clone().add(count, \"days\");\n };\n this.addWeeks = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"weeks\")\n : date.clone().add(count, \"weeks\");\n };\n this.addMonths = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"months\")\n : date.clone().add(count, \"months\");\n };\n this.setHours = function (date, count) {\n return date.clone().hours(count);\n };\n this.getMinutes = function (date) {\n return date.get(\"minutes\");\n };\n this.setMinutes = function (date, count) {\n return date.clone().minutes(count);\n };\n this.getSeconds = function (date) {\n return date.get(\"seconds\");\n };\n this.setSeconds = function (date, count) {\n return date.clone().seconds(count);\n };\n this.getMonth = function (date) {\n return date.get(\"month\");\n };\n this.getDaysInMonth = function (date) {\n return date.daysInMonth();\n };\n this.isSameDay = function (date, comparing) {\n return date.isSame(comparing, \"day\");\n };\n this.isSameMonth = function (date, comparing) {\n return date.isSame(comparing, \"month\");\n };\n this.isSameYear = function (date, comparing) {\n return date.isSame(comparing, \"year\");\n };\n this.isSameHour = function (date, comparing) {\n return date.isSame(comparing, \"hour\");\n };\n this.setMonth = function (date, count) {\n return date.clone().month(count);\n };\n this.getMeridiemText = function (ampm) {\n if (_this.is12HourCycleInCurrentLocale()) {\n // AM/PM translation only possible in those who have 12 hour cycle in locale.\n return _this.moment.localeData().meridiem(ampm === \"am\" ? 0 : 13, 0, false);\n }\n return ampm === \"am\" ? \"AM\" : \"PM\"; // fallback for de, ru, ...etc\n };\n this.startOfYear = function (date) {\n return date.clone().startOf(\"year\");\n };\n this.endOfYear = function (date) {\n return date.clone().endOf(\"year\");\n };\n this.startOfMonth = function (date) {\n return date.clone().startOf(\"month\");\n };\n this.endOfMonth = function (date) {\n return date.clone().endOf(\"month\");\n };\n this.startOfWeek = function (date) {\n return date.clone().startOf(\"week\");\n };\n this.endOfWeek = function (date) {\n return date.clone().endOf(\"week\");\n };\n this.getNextMonth = function (date) {\n return date.clone().add(1, \"month\");\n };\n this.getPreviousMonth = function (date) {\n return date.clone().subtract(1, \"month\");\n };\n this.getMonthArray = function (date) {\n var firstMonth = date.clone().startOf(\"year\");\n var monthArray = [firstMonth];\n while (monthArray.length < 12) {\n var prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(_this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n this.getYear = function (date) {\n return date.get(\"year\");\n };\n this.setYear = function (date, year) {\n return date.clone().set(\"year\", year);\n };\n this.mergeDateAndTime = function (date, time) {\n return date.hour(time.hour()).minute(time.minute()).second(time.second());\n };\n this.getWeekdays = function () {\n return _this.moment.weekdaysShort(true);\n };\n this.isEqual = function (value, comparing) {\n if (value === null && comparing === null) {\n return true;\n }\n return _this.moment(value).isSame(comparing);\n };\n this.getWeekArray = function (date) {\n var start = date.clone().startOf(\"month\").startOf(\"week\");\n var end = date.clone().endOf(\"month\").endOf(\"week\");\n var count = 0;\n var current = start;\n var nestedWeeks = [];\n while (current.isBefore(end)) {\n var weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n return nestedWeeks;\n };\n this.getYearRange = function (start, end) {\n var startDate = _this.moment(start).startOf(\"year\");\n var endDate = _this.moment(end).endOf(\"year\");\n var years = [];\n var current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.clone().add(1, \"year\");\n }\n return years;\n };\n this.isWithinRange = function (date, _a) {\n var start = _a[0], end = _a[1];\n return date.isBetween(start, end, null, \"[]\");\n };\n this.moment = instance || defaultMoment;\n this.locale = locale;\n this.formats = Object.assign({}, defaultFormats, formats);\n }\n return MomentUtils;\n}());\n\nexport { MomentUtils as default };\n","import { useCallback, useEffect, useReducer, useState } from 'react';\nimport { SmallAvatarWrapper, useDataProvider, useWsDataProvider } from 'kerberus-components';\nimport { Autocomplete, Button, MenuItem, Modal, Select, TextField, Typography, Grid, Card, Box, useTheme, IconButton, Tooltip } from '@mui/material';\nimport useSWR from 'swr';\nimport Toast from '../Toast';\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\nimport OutlinedInput from '@mui/material/OutlinedInput';\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport Chip from '@mui/material/Chip';\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n};\n\nconst modalStyle = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n bgcolor: 'background.paper',\n border: '1px solid #000',\n borderRadius: 4,\n minHeight: 300,\n minWidth: 350\n};\n\nconst boxStyle = {\n p: 4\n};\n\nconst permissions = [\n { id: 0, name: \"Every permission\" },\n { id: 1, name: \"Can view current online users\" },\n { id: 2, name: \"Can get last seen online timestamps for users\" },\n { id: 3, name: \"Query with public_social filters\" },\n]\n\nexport default function CreateToken() {\n const theme = useTheme();\n const { getData: wsSetter } = useDataProvider();\n const { getData: getOrganizationList, data: organizationListData } = useWsDataProvider();\n const [organizationList, setOrganizationList] = useState([]);\n const [activeOrg, setActiveOrg] = useState();\n const [selectedSocial, setSelectedSocial] = useState(false);\n const [selectedCompany, setSelectedCompany] = useState(false);\n const [selectedSites, setSelectedSites] = useState([]);\n const { data: socialGroupSelectData = [] } = useSWR('users/socialgroupselect/');\n const { data: companySelectData = [] } = useSWR('users/companyselect/');\n const { data: siteSelectData = [] } = useSWR('devices/siteselect/');\n const [groupPerms, setGroupPerms] = useState([]);\n const [companyPerms, setCompanyPerms] = useState([]);\n const [socialsToAdd, setSocialsToAdd] = useState(new Map());\n const [companiesToAdd, setCompaniesToAdd] = useState(new Map());\n const [socialGroupModalOpen, toggleSocialGroupModal] = useReducer(prev => !prev, false);\n const [companyModalOpen, toggleCompanyModal] = useReducer(prev => !prev, false);\n const [createSuccess, setCreateSuccess] = useState(false);\n const [createError, setCreateError] = useState(false);\n const [copyToken, setCopyToken] = useState(false);\n const [newToken, setNewToken] = useState();\n\n useEffect(() => {\n getOrganizationList('socketToken', 'listOrganizations');\n }, [getOrganizationList]);\n\n useEffect(() => {\n if (organizationListData?.data) {\n setOrganizationList(organizationListData.data);\n }\n }, [organizationListData]);\n\n const handleCreateToken = useCallback(async () => {\n try {\n const res = await wsSetter({ serial: 'socketToken' }, 'set', 'createToken', {\n filters: {\n social_groups: socialsToAdd.size > 0 ? [...socialsToAdd].map(([key, value]) => ({ id: key, permissions: value.permissions })) : undefined,\n companies: companiesToAdd.size > 0 ? [...companiesToAdd].map(([key, value]) => ({ id: key, permissions: value.permissions })) : undefined,\n sites: selectedSites.map(i => i.id),\n organization: activeOrg && activeOrg.id\n }\n });\n if (!res.data.error) {\n setNewToken(res.data.data);\n }\n else {\n alert(res.data.error);\n }\n }\n catch (err) {\n console.error(err);\n }\n }, [activeOrg, companiesToAdd, socialsToAdd, wsSetter, selectedSites]);\n\n const copyToClipboard = async () => {\n await navigator.clipboard.writeText(newToken);\n setCopyToken(true);\n };\n\n return (\n \n Create token\n\n \n \n \n Social Groups to add:\n \n \n \n\n {[...socialsToAdd].map(([key, value]) => (\n \n Permissions\n {value.permissions.join(', ')}\n \n {value.name}\n \n ))}\n\n \n\n \n \n \n Companies to add:\n \n \n \n\n {[...companiesToAdd].map(([key, value]) => (\n \n Permissions\n {value.permissions.join(', ')}\n \n {value.name}\n \n ))}\n\n\n \n\n \n \n Organization:\n \n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setActiveOrg(value)}\n sx={{ my: 1 }}\n />\n \n Sites:\n \n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setSelectedSites(value)}\n sx={{ my: 1, mb: 2 }}\n />\n \n\n \n \n \n \n New token: {newToken}\n \n \n \n \n \n \n \n \n\n { toggleSocialGroupModal(); setSelectedSocial(false); }}\n >\n \n \n \n Add Social Groups\n \n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setSelectedSocial(value)}\n sx={{ width: 300, mb: 2 }}\n />\n {selectedSocial &&\n \n \n \n }\n\n \n Add permissions\n setGroupPerms(e.target.value)}\n input={}\n renderValue={(selected) => (\n \n {selected.map((value) => (\n \n ))}\n \n )}\n MenuProps={MenuProps}\n >\n {permissions.map((perm) =>\n {perm.name}\n )}\n \n \n \n \n \n \n\n { toggleCompanyModal();; setSelectedCompany(false); }}\n >\n \n \n \n Add Companies\n \n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setSelectedCompany(value)}\n sx={{ width: 300, mb: 2 }}\n />\n {selectedCompany &&\n \n \n \n }\n\n \n Add permissions\n setCompanyPerms(e.target.value)}\n input={}\n renderValue={(selected) => (\n \n {selected.map((value) => (\n \n ))}\n \n )}\n MenuProps={MenuProps}\n >\n {permissions.map((perm) =>\n {perm.name}\n )}\n \n \n\n \n \n \n \n\n setCreateSuccess(false)}\n autoHideDuration={50000}\n />\n\n setCreateError(false)}\n autoHideDuration={50000}\n />\n\n setCopyToken(false)}\n autoHideDuration={50000}\n />\n\n \n );\n}\n\n","import { useCallback, useReducer, useState } from 'react';\nimport { useDataProvider, } from 'kerberus-components';\nimport { Autocomplete, Button, MenuItem, Modal, Select, TextField, Typography, Card, Grid, IconButton } from '@mui/material';\nimport useSWR from 'swr';\nimport ClearIcon from '@mui/icons-material/Clear';\nimport Toast from '../Toast';\n\nconst modalStyle = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n bgcolor: 'background.paper',\n border: '1px solid #000',\n boxShadow: 24,\n p: 1,\n pr: 6,\n borderRadius: 4,\n width: \"90vw\",\n height: \"75%\",\n};\n\nexport default function ModifyToken() {\n const { getData: wsSetter } = useDataProvider();\n const [currentToken, setCurrentToken] = useState(\"\");\n const [deleteSuccess, setDeleteSuccess] = useState(false);\n const [deleteError, setDeleteError] = useState(false);\n const [selectedSocialAdd, setSelectedSocialAdd] = useState([]);\n const [selectedSocialRemove, setSelectedSocialRemove] = useState([]);\n const [selectedCompany, setSelectedCompany] = useState([]);\n const [selectedCompanyRemove, setSelectedCompanyRemove] = useState([]);\n const [selectedSites, setSelectedSites] = useState([]);\n const { data: socialGroupSelectData = [] } = useSWR('users/socialgroupselect/');\n const { data: companySelectData = [] } = useSWR('users/companyselect/');\n const { data: siteSelectData = [] } = useSWR('devices/siteselect/');\n const [addPerms, setAddPerms] = useState([]);\n const [socialsToAdd, setSocialsToAdd] = useState(new Map());\n const [companiesToAdd, setCompaniesToAdd] = useState(new Map());\n const [addModalOpen, toggleAddModal] = useReducer(prev => !prev, false);\n const [removeModalOpen, toggleRemoveModal] = useReducer(prev => !prev, false);\n const [siteAddModalOpen, toggleSiteAddModal] = useReducer(prev => !prev, false);\n const [siteRemoveModalOpen, toggleSiteRemoveModal] = useReducer(prev => !prev, false);\n\n const handleAddToToken = useCallback(async () => {\n if (!currentToken || (socialsToAdd.size === 0 && companiesToAdd.size === 0)) return;\n\n try {\n const res = await wsSetter({ serial: 'socketToken' }, 'set', 'addToToken', {\n filters: {\n token: currentToken,\n social_groups: socialsToAdd.size > 0 ? [...socialsToAdd].map(([key, value]) => ({ id: key, permissions: value.permissions })) : undefined,\n companies: companiesToAdd.size > 0 ? [...companiesToAdd].map(([key, value]) => ({ id: key, permissions: value.permissions })) : undefined,\n }\n });\n alert(res.data);\n }\n catch (err) {\n console.error(err);\n }\n }, [companiesToAdd, currentToken, socialsToAdd, wsSetter]);\n\n const handleRemoveFromToken = useCallback(async () => {\n if (!currentToken || (selectedSocialRemove.length === 0 && selectedCompanyRemove.length === 0)) return;\n\n try {\n const res = await wsSetter({ serial: 'socketToken' }, 'set', 'removeFromToken', {\n filters: {\n token: currentToken,\n social_groups: selectedSocialRemove,\n companies: selectedCompanyRemove,\n }\n });\n alert(res.data);\n }\n catch (err) {\n console.error(err);\n }\n }, [currentToken, selectedCompanyRemove, selectedSocialRemove, wsSetter]);\n\n\n const handleAddSites = useCallback(async () => {\n if (!currentToken || selectedSites.length === 0) return;\n\n try {\n const res = await wsSetter({ serial: 'socketToken' }, 'set', 'addSites', {\n filters: {\n token: currentToken,\n sites: selectedSites.map(i => i.id)\n }\n });\n alert(res.data);\n }\n catch (err) {\n console.error(err);\n }\n }, [currentToken, selectedSites, wsSetter]);\n\n\n const handleRemoveSites = useCallback(async () => {\n if (!currentToken || selectedSites.length === 0) return;\n\n try {\n const res = await wsSetter({ serial: 'socketToken' }, 'set', 'removeSites', {\n filters: {\n token: currentToken,\n sites: selectedSites.map(i => i.id)\n }\n });\n alert(res.data);\n }\n catch (err) {\n console.error(err);\n }\n }, [currentToken, selectedSites, wsSetter]);\n\n const handleDeleteToken = useCallback(async () => {\n if (!currentToken) return;\n\n try {\n const res = await wsSetter({ serial: 'socketToken' }, 'set', 'deleteToken', {\n filters: {\n token: currentToken.trim()\n }\n });\n if (!res.data.error) {\n setDeleteSuccess(res.data.data);\n }\n else {\n setDeleteError(res.data.error);\n }\n }\n catch (err) {\n console.error(err);\n }\n }, [currentToken, wsSetter]);\n \n\n return (\n \n\n \n Modify token\n setCurrentToken(e.target.value)}\n sx={{ width: 300 }}\n InputProps={{\n endAdornment: (\n setCurrentToken(\"\")}\n >\n \n \n )\n }}\n />\n \n\n \n \n {/* \n MUUT LISÄTOIMINNOT MUOKKAAMAAN TOKENIA \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n */}\n\n
    \n toggleAddModal()}\n >\n \n
    \n Social Groups to add:\n {[...socialsToAdd].map(([key, value]) => (\n {value.name} {value.permissions.join(', ')}\n ))}\n
    \n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setSelectedSocialAdd(value)}\n />\n setAddPerms(e.target.value)}\n label=\"Permissions\"\n >\n Every permission\n Can view current online userss\n Can get last seen online timestamps for users\n Query with \"public_social\" filters\n \n \n Companies to add:\n {[...companiesToAdd].map(([key, value]) => (\n {value.name} {value.permissions.join(', ')}\n ))}\n
    \n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setSelectedCompany(value)}\n />\n setAddPerms(e.target.value)}\n label=\"Permissions\"\n >\n Every permission\n Can view current online userss\n Can get last seen online timestamps for users\n Query with \"public_social\" filters\n \n \n \n
    \n \n\n toggleRemoveModal()}\n >\n \n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setSelectedSocialRemove(value)}\n />\n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setSelectedCompanyRemove(value)}\n />\n \n \n \n\n toggleSiteAddModal()}\n >\n \n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setSelectedSites(value)}\n />\n \n \n \n\n toggleSiteRemoveModal()}\n >\n \n option.name}\n renderInput={(params) => }\n onChange={(e, value) => setSelectedSites(value)}\n />\n \n \n \n\n setDeleteSuccess(false)}\n autoHideDuration={50000}\n />\n setDeleteError(false)}\n autoHideDuration={50000}\n />\n
    \n );\n}\n","import { memo } from 'react';\nimport { Divider } from '@mui/material';\nimport CreateToken from '../../Components/Admin/CreateToken'\nimport ModifyToken from '../../Components/Admin/ModifyToken'\nimport LayoutPaper from '../../Components/LayoutPaper';\n\nexport default memo(function AdminTokens() {\n return (\n \n \n \n \n \n );\n});\n\n","import { version as uuidVersion } from 'uuid';\nimport { validate as uuidValidate } from 'uuid';\n\nexport function validV4(uuid) {\n return uuidValidate(uuid) && uuidVersion(uuid) === 4;\n}\n","import validate from './validate.js';\n\nfunction version(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","import { memo, useState, useCallback, useEffect, useContext } from 'react';\nimport { Button } from '@mui/material';\nimport { MainContext, useDataProvider, useWsDataProvider, validV4 } from 'kerberus-components';\nimport LayoutPaper from '../Components/LayoutPaper';\nimport { useParams } from 'react-router-dom';\nimport { useSWRConfig } from 'swr';\n\nconst OrganizationShare = memo(() => {\n const { user } = useContext(MainContext);\n const { getData: wsSetter } = useDataProvider();\n const { getData: getOrg, data: orgData } = useWsDataProvider();\n const [organizationData, setOrganizationData] = useState([]);\n const { orgId } = useParams();\n const [validId, setValidId] = useState(() => validV4(orgId));\n const [shared, setShared] = useState(() => user.org_shared.includes(orgId));\n const { mutate } = useSWRConfig();\n\n useEffect(() => {\n if (orgData?.data) {\n setOrganizationData(orgData.data);\n }\n }, [orgData]);\n\n useEffect(() => {\n setValidId(validV4(orgId));\n }, [orgId]);\n\n useEffect(() => {\n setShared(user.org_shared.includes(orgId));\n }, [orgId, user.org_shared]);\n\n useEffect(() => {\n if (validId) {\n getOrg('socketToken', 'previewOrganization', {\n filters: {\n organization: orgId\n }\n });\n }\n }, [getOrg, orgId, validId]);\n\n const handleShareOrg = useCallback(async () => {\n if (!validId || !organizationData) return;\n try {\n await wsSetter({ serial: 'socketToken' }, 'set', 'addUserToOrganization', {\n filters: {\n user: user.id,\n organization: orgId\n }\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n console.error(err);\n }\n }, [validId, organizationData, wsSetter, user.id, orgId, mutate]);\n\n const handleRevokeOrg = useCallback(async () => {\n if (!validId || !organizationData) return;\n try {\n await wsSetter({ serial: 'socketToken' }, 'set', 'removeUserFromOrganization', {\n filters: {\n user: user.id,\n organization: orgId\n }\n });\n mutate(['users/timetableprofile/', localStorage.getItem('userId')]);\n }\n catch (err) {\n console.error(err);\n }\n }, [validId, organizationData, wsSetter, user.id, orgId, mutate]);\n\n\n return (\n \n {organizationData\n ? (\n organizationData?.name ?\n <>\n Organization: {organizationData.name}\n
    \n {shared ? \"You have shared your info with this organization.\" : \"You have not shared your info with this organization.\"}\n
    \n \n
    \n \n
    \n \n :\n \"Invalid url\"\n )\n :\n !validId\n ? \"Invalid url\"\n :\n \"Loading\"\n }\n\n
    \n );\n});\n\nexport default OrganizationShare;\n","import * as React from 'react';\nimport { useContext, useState, useEffect } from \"react\";\nimport Box from '@mui/material/Box';\nimport Grid from '@mui/material/Grid';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useTheme, Paper } from '@mui/material';\nimport { MainContext } from 'kerberus-components';\nimport ProfileList from './ProfileList';\nimport SocialGroupList from './SocialGroupList';\nimport SettingsIcon from '@mui/icons-material/Settings';\nimport { useNavigate } from 'react-router-dom';\nimport ActivityLog from '../Components/ActivityLog';\nimport OfficeHoursCard from '../Components/OfficeHoursCard';\nimport LocationCard from '../Components/LocationCard';\n\nexport default function Dashboard(props) {\n const { bulkData, user } = useContext(MainContext);\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('md'));\n /* const isSmaller = useMediaQuery(theme.breakpoints.down('sm')); */\n const navigate = useNavigate();\n\n const [site, setSite] = useState(\"\");\n\n useEffect(() => {\n if (bulkData.user.site_name) {\n setSite(bulkData.user.site_name)\n }\n }, [bulkData.user.site_name])\n\n\n return (\n \n {/* Lowers the page by amount of appBar */}\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n {user.user_company &&\n \n }\n \n \n\n \n\n navigate(`/profile/${user.id}/settings/`)}\n sx={{\n height: `calc((100vh - ${theme.mixins.toolbar.minHeight}px - 0.6*${theme.mixins.toolbar.minHeight}px) * 0.05)`,\n display: props.gridThreeHidden ? \"none\" : \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: 0,\n borderBottomRightRadius: 16,\n borderBottomLeftRadius: 16,\n '&:hover': {\n backgroundColor: \"#80808095\",\n cursor: \"pointer\",\n },\n }}\n >\n \n \n \n\n \n\n \n \n );\n}\n","import { Box, CssBaseline } from '@mui/material';\nimport { createTheme, responsiveFontSizes, ThemeProvider } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { MainContext } from 'kerberus-components';\nimport moment from 'moment';\nimport { useContext, useEffect, useMemo, useState } from 'react';\nimport { Navigate, Route, Routes, useLocation } from \"react-router-dom\";\nimport AppBar from './Components/Layout/AppBar';\nimport Drawer from './Components/Layout/Drawer';\nimport DrawerMobile from './Components/Layout/DrawerMobile';\nimport AdminCalendar from './Views/Admin/AdminCalendar';\nimport AdminDashboardMaker from './Views/Admin/AdminDashboardMaker';\nimport AdminSocialGroup from './Views/Admin/AdminSocialGroup';\nimport AdminUsers from './Views/Admin/AdminUsers';\nimport CompanySettings from './Views/Company/CompanySettings';\nimport CompanyView from './Views/Company/CompanyView';\nimport Dashboard from './Views/Dashboard';\nimport DeviceRoutes from './Views/Device/DeviceRoutes';\nimport GroupRoutes from './Views/Groups/GroupRoutes';\nimport GroupsList from './Views/Groups/GroupsList';\nimport MyConnectionsView from './Views/MyConnections/MyConnectionsView';\nimport ProfileView from './Views/Profile/ProfileView';\nimport SocialGroupInvite from './Views/SocialGroupInvite';\nimport { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport AdminTokens from './Views/Admin/AdminTokens';\nimport OrganizationShare from './Views/OrganizationShare';\nimport DashboardMobile from './Views/DashboardMobile';\n\nlet theme = createTheme({\n palette: {\n primary: {\n main: \"#1C4E71\"\n },\n mlBlue: {\n main: \"#4EC1ED\"\n },\n mlGreen: {\n main: \"#8DBF30\"\n },\n mlRed: {\n main: \"#E72D50\"\n },\n mlYellow: {\n main: \"#FCC041\"\n },\n // Old darker green\n green: {\n main: \"#44b700\"\n },\n darkBlue: {\n main: \"#081627\"\n },\n bgWhite: {\n main: \"#F9FAFC\"\n },\n }\n});\n\ntheme = responsiveFontSizes(theme);\n\nfunction App() {\n const isSmall = useMediaQuery(theme.breakpoints.down('lg'));\n const isMedium = useMediaQuery(theme.breakpoints.down('md'));\n const [open, setOpen] = useState(!isSmall ? true : false);\n\n useEffect(() => {\n if (!isSmall) {\n setOpen(true);\n }\n else {\n setOpen(false);\n }\n }, [isSmall]);\n\n\n const toggleDrawer = () => {\n setOpen(!open);\n };\n\n const { user, bulkData } = useContext(MainContext);\n\n const lastseenminutes = useMemo(() => {\n if (bulkData && bulkData.user?.timestamp) {\n const now = moment(new Date());\n const lastSeen = moment(bulkData.user?.timestamp);\n const duration = moment.duration(now.diff(lastSeen));\n return duration.asMinutes();\n }\n else return null;\n }, [bulkData]);\n\n const location = useLocation();\n const profileId = useMemo(() => location.pathname.split(\"/\"), [location.pathname]);\n const titles = useMemo(() => (\n {\n \"/\": \"Home\",\n [`/profile/${profileId[2]}`]: \"Profile\",\n [`/profile/${profileId[2]}/calendar`]: \"Calendar\",\n [`/profile/${profileId[2]}/device`]: \"Devices\",\n [`/profile/${profileId[2]}/settings`]: \"Settings\",\n [`/profile/${profileId[2]}/device/${profileId[4]}`]: \"Device's calendar\",\n \"/admin/calendar\": \"Device calendar\",\n \"/admin/users\": \"User list\",\n \"/admin/dashboard\": \"Dashboard maker\",\n \"/admin/socialgroup\": \"Social groups\",\n \"/termsconditions\": \"Terms & Conditions\",\n [`/groups/${profileId[2]}`]: \"Social group\",\n [`/groups/${profileId[2]}/settings`]: \"Social group settings\",\n [`/groups/${profileId[2]}/invitations`]: \"Social group invitations\",\n \"/groups/discover\": \"Discover groups\",\n \"/group_invitation\": \"Discover groups\",\n \"/company\": \"Company\",\n \"/company/settings\": \"Company Settings\",\n \"/myconnections\": \"My Connections\",\n }\n ), [profileId]);\n\n const [title, setTitle] = useState(titles[\"/\"]);\n\n useEffect(() => {\n const newTitle = titles[location.pathname];\n setTitle(newTitle);\n document.title = newTitle || \"Web timetable\";\n }, [location.pathname, titles]);\n\n const [gridOneHidden, setGridOneHidden] = useState(JSON.parse(localStorage.getItem('gridOneHidden')));\n const [gridTwoHidden, setGridTwoHidden] = useState(JSON.parse(localStorage.getItem('gridTwoHidden')));\n const [gridThreeHidden, setGridThreeHidden] = useState(JSON.parse(localStorage.getItem('gridThreeHidden')));\n\n useEffect(() => {\n localStorage.setItem('gridOneHidden', JSON.stringify(gridOneHidden));\n },[gridOneHidden]);\n\n useEffect(() => {\n localStorage.setItem('gridTwoHidden', JSON.stringify(gridTwoHidden));\n },[gridTwoHidden]);\n\n useEffect(() => {\n localStorage.setItem('gridThreeHidden', JSON.stringify(gridThreeHidden));\n },[gridThreeHidden]);\n\n /* useEffect(() => {\n const gridOneHidden = JSON.parse(localStorage.getItem('gridOneHidden'));\n if(gridOneHidden) {\n setGridOneHidden(gridOneHidden);\n }\n }, []);\n\n useEffect(() => {\n const gridTwoHidden = JSON.parse(localStorage.getItem('gridTwoHidden'));\n if(gridTwoHidden) {\n setGridTwoHidden(gridTwoHidden);\n }\n }, []);\n\n useEffect(() => {\n const gridThreeHidden = JSON.parse(localStorage.getItem('gridThreeHidden'));\n if(gridThreeHidden) {\n setGridThreeHidden(gridThreeHidden);\n }\n }, []); */\n\n return (\n \n \n \n \n \n {!isSmall ?\n \n :\n \n }\n \n {!isMedium ? \n } />\n :\n } />\n }\n \n {/* } /> */}\n } />\n } />\n {user.id === profileId[2] &&\n } />\n }\n {user.id === profileId[2] &&\n } />\n }\n } />\n } />\n \n \n } />\n {(user.perm_level === \"superuser\" || user.perm_level === \"admin\") &&\n } />\n }\n \n \n } />\n } />\n \n } />\n {user && (user.perm_level === \"superuser\" || user.perm_level === \"admin\") &&\n \n {user.perm_level === \"superuser\" &&\n } />\n }\n } />\n {!isSmall &&\n } />\n }\n } />\n {user?.next && } />}\n \n }\n } />\n {user?.next && } />}\n } />\n \n \n \n \n );\n}\n\nexport default App;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nimport { isUnitless, convertLength, responsiveProperty, alignProperty, fontGrid } from './cssUtils';\nexport default function responsiveFontSizes(themeInput, options = {}) {\n const {\n breakpoints = ['sm', 'md', 'lg'],\n disableAlign = false,\n factor = 2,\n variants = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'caption', 'button', 'overline']\n } = options;\n\n const theme = _extends({}, themeInput);\n\n theme.typography = _extends({}, theme.typography);\n const typography = theme.typography; // Convert between CSS lengths e.g. em->px or px->rem\n // Set the baseFontSize for your project. Defaults to 16px (also the browser default).\n\n const convert = convertLength(typography.htmlFontSize);\n const breakpointValues = breakpoints.map(x => theme.breakpoints.values[x]);\n variants.forEach(variant => {\n const style = typography[variant];\n const remFontSize = parseFloat(convert(style.fontSize, 'rem'));\n\n if (remFontSize <= 1) {\n return;\n }\n\n const maxFontSize = remFontSize;\n const minFontSize = 1 + (maxFontSize - 1) / factor;\n let {\n lineHeight\n } = style;\n\n if (!isUnitless(lineHeight) && !disableAlign) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported non-unitless line height with grid alignment.\nUse unitless line heights instead.` : _formatMuiErrorMessage(6));\n }\n\n if (!isUnitless(lineHeight)) {\n // make it unitless\n lineHeight = parseFloat(convert(lineHeight, 'rem')) / parseFloat(remFontSize);\n }\n\n let transform = null;\n\n if (!disableAlign) {\n transform = value => alignProperty({\n size: value,\n grid: fontGrid({\n pixels: 4,\n lineHeight,\n htmlFontSize: typography.htmlFontSize\n })\n });\n }\n\n typography[variant] = _extends({}, style, responsiveProperty({\n cssProperty: 'fontSize',\n min: minFontSize,\n max: maxFontSize,\n unit: 'rem',\n breakpoints: breakpointValues,\n transform\n }));\n });\n return theme;\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getStepperUtilityClass(slot) {\n return generateUtilityClass('MuiStepper', slot);\n}\nconst stepperClasses = generateUtilityClasses('MuiStepper', ['root', 'horizontal', 'vertical', 'alternativeLabel']);\nexport default stepperClasses;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst StepperContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n StepperContext.displayName = 'StepperContext';\n}\n\nexport default StepperContext;","import * as React from 'react';\n\n/**\n * Provides information about the current step in Stepper.\n */\nconst StepContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n StepContext.displayName = 'StepContext';\n}\n/**\n * Returns the current StepContext or an empty object if no StepContext\n * has been defined in the component tree.\n */\n\n\nexport function useStepContext() {\n return React.useContext(StepContext);\n}\nexport default StepContext;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getStepConnectorUtilityClass(slot) {\n return generateUtilityClass('MuiStepConnector', slot);\n}\nconst stepConnectorClasses = generateUtilityClasses('MuiStepConnector', ['root', 'horizontal', 'vertical', 'alternativeLabel', 'active', 'completed', 'disabled', 'line', 'lineHorizontal', 'lineVertical']);\nexport default stepConnectorClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"];\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 styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport StepperContext from '../Stepper/StepperContext';\nimport StepContext from '../Step/StepContext';\nimport { getStepConnectorUtilityClass } from './stepConnectorClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n alternativeLabel,\n active,\n completed,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, alternativeLabel && 'alternativeLabel', active && 'active', completed && 'completed', disabled && 'disabled'],\n line: ['line', `line${capitalize(orientation)}`]\n };\n return composeClasses(slots, getStepConnectorUtilityClass, classes);\n};\n\nconst StepConnectorRoot = styled('div', {\n name: 'MuiStepConnector',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.alternativeLabel && styles.alternativeLabel, ownerState.completed && styles.completed];\n }\n})(({\n ownerState\n}) => _extends({\n flex: '1 1 auto'\n}, ownerState.orientation === 'vertical' && {\n marginLeft: 12 // half icon\n\n}, ownerState.alternativeLabel && {\n position: 'absolute',\n top: 8 + 4,\n left: 'calc(-50% + 20px)',\n right: 'calc(50% + 20px)'\n}));\nconst StepConnectorLine = styled('span', {\n name: 'MuiStepConnector',\n slot: 'Line',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.line, styles[`line${capitalize(ownerState.orientation)}`]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n display: 'block',\n borderColor: theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n}, ownerState.orientation === 'horizontal' && {\n borderTopStyle: 'solid',\n borderTopWidth: 1\n}, ownerState.orientation === 'vertical' && {\n borderLeftStyle: 'solid',\n borderLeftWidth: 1,\n minHeight: 24\n}));\nconst StepConnector = /*#__PURE__*/React.forwardRef(function StepConnector(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiStepConnector'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n alternativeLabel,\n orientation = 'horizontal'\n } = React.useContext(StepperContext);\n const {\n active,\n disabled,\n completed\n } = React.useContext(StepContext);\n\n const ownerState = _extends({}, props, {\n alternativeLabel,\n orientation,\n active,\n completed,\n disabled\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(StepConnectorRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(StepConnectorLine, {\n className: classes.line,\n ownerState: ownerState\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StepConnector.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 * 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 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} : void 0;\nexport default StepConnector;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"activeStep\", \"alternativeLabel\", \"children\", \"className\", \"connector\", \"nonLinear\", \"orientation\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getStepperUtilityClass } from './stepperClasses';\nimport StepConnector from '../StepConnector';\nimport StepperContext from './StepperContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n orientation,\n alternativeLabel,\n classes\n } = ownerState;\n const slots = {\n root: ['root', orientation, alternativeLabel && 'alternativeLabel']\n };\n return composeClasses(slots, getStepperUtilityClass, classes);\n};\n\nconst StepperRoot = styled('div', {\n name: 'MuiStepper',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.alternativeLabel && styles.alternativeLabel];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex'\n}, ownerState.orientation === 'horizontal' && {\n flexDirection: 'row',\n alignItems: 'center'\n}, ownerState.orientation === 'vertical' && {\n flexDirection: 'column'\n}, ownerState.alternativeLabel && {\n alignItems: 'flex-start'\n}));\n\nconst defaultConnector = /*#__PURE__*/_jsx(StepConnector, {});\n\nconst Stepper = /*#__PURE__*/React.forwardRef(function Stepper(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiStepper'\n });\n\n const {\n activeStep = 0,\n alternativeLabel = false,\n children,\n className,\n connector = defaultConnector,\n nonLinear = false,\n orientation = 'horizontal'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n alternativeLabel,\n orientation\n });\n\n const classes = useUtilityClasses(ownerState);\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n const steps = childrenArray.map((step, index) => {\n return /*#__PURE__*/React.cloneElement(step, _extends({\n index,\n last: index + 1 === childrenArray.length\n }, step.props));\n });\n const contextValue = React.useMemo(() => ({\n activeStep,\n alternativeLabel,\n connector,\n nonLinear,\n orientation\n }), [activeStep, alternativeLabel, connector, nonLinear, orientation]);\n return /*#__PURE__*/_jsx(StepperContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(StepperRoot, _extends({\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: steps\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Stepper.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 * Set the active step (zero based index).\n * Set to -1 to disable all the steps.\n * @default 0\n */\n activeStep: integerPropType,\n\n /**\n * If set to 'true' and orientation is horizontal,\n * then the step label will be positioned under the icon.\n * @default false\n */\n alternativeLabel: PropTypes.bool,\n\n /**\n * Two or more `` components.\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 * An element to be placed between each step.\n * @default \n */\n connector: PropTypes.element,\n\n /**\n * If set the `Stepper` will not assist in controlling steps for linear flow.\n * @default false\n */\n nonLinear: PropTypes.bool,\n\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\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} : void 0;\nexport default Stepper;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getStepUtilityClass(slot) {\n return generateUtilityClass('MuiStep', slot);\n}\nconst stepClasses = generateUtilityClasses('MuiStep', ['root', 'horizontal', 'vertical', 'alternativeLabel', 'completed']);\nexport default stepClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"active\", \"children\", \"className\", \"completed\", \"disabled\", \"expanded\", \"index\", \"last\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport StepperContext from '../Stepper/StepperContext';\nimport StepContext from './StepContext';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getStepUtilityClass } from './stepClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n alternativeLabel,\n completed\n } = ownerState;\n const slots = {\n root: ['root', orientation, alternativeLabel && 'alternativeLabel', completed && 'completed']\n };\n return composeClasses(slots, getStepUtilityClass, classes);\n};\n\nconst StepRoot = styled('div', {\n name: 'MuiStep',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.alternativeLabel && styles.alternativeLabel, ownerState.completed && styles.completed];\n }\n})(({\n ownerState\n}) => _extends({}, ownerState.orientation === 'horizontal' && {\n paddingLeft: 8,\n paddingRight: 8\n}, ownerState.alternativeLabel && {\n flex: 1,\n position: 'relative'\n}));\nconst Step = /*#__PURE__*/React.forwardRef(function Step(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiStep'\n });\n\n const {\n active: activeProp,\n children,\n className,\n completed: completedProp,\n disabled: disabledProp,\n expanded = false,\n index,\n last\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n activeStep,\n connector,\n alternativeLabel,\n orientation,\n nonLinear\n } = React.useContext(StepperContext);\n let [active = false, completed = false, disabled = false] = [activeProp, completedProp, disabledProp];\n\n if (activeStep === index) {\n active = activeProp !== undefined ? activeProp : true;\n } else if (!nonLinear && activeStep > index) {\n completed = completedProp !== undefined ? completedProp : true;\n } else if (!nonLinear && activeStep < index) {\n disabled = disabledProp !== undefined ? disabledProp : true;\n }\n\n const contextValue = React.useMemo(() => ({\n index,\n last,\n expanded,\n icon: index + 1,\n active,\n completed,\n disabled\n }), [index, last, expanded, active, completed, disabled]);\n\n const ownerState = _extends({}, props, {\n active,\n orientation,\n alternativeLabel,\n completed,\n disabled,\n expanded\n });\n\n const classes = useUtilityClasses(ownerState);\n\n const newChildren = /*#__PURE__*/_jsxs(StepRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [connector && alternativeLabel && index !== 0 ? connector : null, children]\n }));\n\n return /*#__PURE__*/_jsx(StepContext.Provider, {\n value: contextValue,\n children: connector && !alternativeLabel && index !== 0 ? /*#__PURE__*/_jsxs(React.Fragment, {\n children: [connector, newChildren]\n }) : newChildren\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Step.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 * Sets the step as active. Is passed to child components.\n */\n active: PropTypes.bool,\n\n /**\n * Should be `Step` sub-components such as `StepLabel`, `StepContent`.\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 * Mark the step as completed. Is passed to child components.\n */\n completed: PropTypes.bool,\n\n /**\n * If `true`, the step is disabled, will also disable the button if\n * `StepButton` is a child of `Step`. Is passed to child components.\n */\n disabled: PropTypes.bool,\n\n /**\n * Expand the step.\n * @default false\n */\n expanded: PropTypes.bool,\n\n /**\n * The position of the step.\n * The prop defaults to the value inherited from the parent Stepper component.\n */\n index: integerPropType,\n\n /**\n * If `true`, the Step is displayed as rendered last.\n * The prop defaults to the value inherited from the parent Stepper component.\n */\n last: 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} : void 0;\nexport default Step;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z\"\n}), 'CheckCircle');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getStepIconUtilityClass(slot) {\n return generateUtilityClass('MuiStepIcon', slot);\n}\nconst stepIconClasses = generateUtilityClasses('MuiStepIcon', ['root', 'active', 'completed', 'error', 'text']);\nexport default stepIconClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nvar _circle;\n\nconst _excluded = [\"active\", \"className\", \"completed\", \"error\", \"icon\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport CheckCircle from '../internal/svg-icons/CheckCircle';\nimport Warning from '../internal/svg-icons/Warning';\nimport SvgIcon from '../SvgIcon';\nimport stepIconClasses, { getStepIconUtilityClass } from './stepIconClasses';\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 active,\n completed,\n error\n } = ownerState;\n const slots = {\n root: ['root', active && 'active', completed && 'completed', error && 'error'],\n text: ['text']\n };\n return composeClasses(slots, getStepIconUtilityClass, classes);\n};\n\nconst StepIconRoot = styled(SvgIcon, {\n name: 'MuiStepIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n display: 'block',\n transition: theme.transitions.create('color', {\n duration: theme.transitions.duration.shortest\n }),\n color: theme.palette.text.disabled,\n [`&.${stepIconClasses.completed}`]: {\n color: theme.palette.primary.main\n },\n [`&.${stepIconClasses.active}`]: {\n color: theme.palette.primary.main\n },\n [`&.${stepIconClasses.error}`]: {\n color: theme.palette.error.main\n }\n}));\nconst StepIconText = styled('text', {\n name: 'MuiStepIcon',\n slot: 'Text',\n overridesResolver: (props, styles) => styles.text\n})(({\n theme\n}) => ({\n fill: theme.palette.primary.contrastText,\n fontSize: theme.typography.caption.fontSize,\n fontFamily: theme.typography.fontFamily\n}));\nconst StepIcon = /*#__PURE__*/React.forwardRef(function StepIcon(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiStepIcon'\n });\n\n const {\n active = false,\n className: classNameProp,\n completed = false,\n error = false,\n icon\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n active,\n completed,\n error\n });\n\n const classes = useUtilityClasses(ownerState);\n\n if (typeof icon === 'number' || typeof icon === 'string') {\n const className = clsx(classNameProp, classes.root);\n\n if (error) {\n return /*#__PURE__*/_jsx(StepIconRoot, _extends({\n as: Warning,\n className: className,\n ref: ref,\n ownerState: ownerState\n }, other));\n }\n\n if (completed) {\n return /*#__PURE__*/_jsx(StepIconRoot, _extends({\n as: CheckCircle,\n className: className,\n ref: ref,\n ownerState: ownerState\n }, other));\n }\n\n return /*#__PURE__*/_jsxs(StepIconRoot, _extends({\n className: className,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [_circle || (_circle = /*#__PURE__*/_jsx(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"12\"\n })), /*#__PURE__*/_jsx(StepIconText, {\n className: classes.text,\n x: \"12\",\n y: \"16\",\n textAnchor: \"middle\",\n ownerState: ownerState,\n children: icon\n })]\n }));\n }\n\n return icon;\n});\nprocess.env.NODE_ENV !== \"production\" ? StepIcon.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 * Whether this step is active.\n * @default false\n */\n active: PropTypes.bool,\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 * Mark the step as completed. Is passed to child components.\n * @default false\n */\n completed: PropTypes.bool,\n\n /**\n * If `true`, the step is marked as failed.\n * @default false\n */\n error: PropTypes.bool,\n\n /**\n * The label displayed in the step icon.\n */\n icon: PropTypes.node,\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} : void 0;\nexport default StepIcon;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getStepLabelUtilityClass(slot) {\n return generateUtilityClass('MuiStepLabel', slot);\n}\nconst stepLabelClasses = generateUtilityClasses('MuiStepLabel', ['root', 'horizontal', 'vertical', 'label', 'active', 'completed', 'error', 'disabled', 'iconContainer', 'alternativeLabel', 'labelContainer']);\nexport default stepLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"componentsProps\", \"error\", \"icon\", \"optional\", \"StepIconComponent\", \"StepIconProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport StepIcon from '../StepIcon';\nimport StepperContext from '../Stepper/StepperContext';\nimport StepContext from '../Step/StepContext';\nimport stepLabelClasses, { getStepLabelUtilityClass } from './stepLabelClasses';\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 orientation,\n active,\n completed,\n error,\n disabled,\n alternativeLabel\n } = ownerState;\n const slots = {\n root: ['root', orientation, error && 'error', disabled && 'disabled', alternativeLabel && 'alternativeLabel'],\n label: ['label', active && 'active', completed && 'completed', error && 'error', disabled && 'disabled', alternativeLabel && 'alternativeLabel'],\n iconContainer: ['iconContainer', alternativeLabel && 'alternativeLabel'],\n labelContainer: ['labelContainer']\n };\n return composeClasses(slots, getStepLabelUtilityClass, classes);\n};\n\nconst StepLabelRoot = styled('span', {\n name: 'MuiStepLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation]];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n alignItems: 'center',\n [`&.${stepLabelClasses.alternativeLabel}`]: {\n flexDirection: 'column'\n },\n [`&.${stepLabelClasses.disabled}`]: {\n cursor: 'default'\n }\n}, ownerState.orientation === 'vertical' && {\n textAlign: 'left',\n padding: '8px 0'\n}));\nconst StepLabelLabel = styled('span', {\n name: 'MuiStepLabel',\n slot: 'Label',\n overridesResolver: (props, styles) => styles.label\n})(({\n theme\n}) => _extends({}, theme.typography.body2, {\n display: 'block',\n transition: theme.transitions.create('color', {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${stepLabelClasses.active}`]: {\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n [`&.${stepLabelClasses.completed}`]: {\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n [`&.${stepLabelClasses.alternativeLabel}`]: {\n textAlign: 'center',\n marginTop: 16\n },\n [`&.${stepLabelClasses.error}`]: {\n color: theme.palette.error.main\n }\n}));\nconst StepLabelIconContainer = styled('span', {\n name: 'MuiStepLabel',\n slot: 'IconContainer',\n overridesResolver: (props, styles) => styles.iconContainer\n})(() => ({\n flexShrink: 0,\n // Fix IE11 issue\n display: 'flex',\n paddingRight: 8,\n [`&.${stepLabelClasses.alternativeLabel}`]: {\n paddingRight: 0\n }\n}));\nconst StepLabelLabelContainer = styled('span', {\n name: 'MuiStepLabel',\n slot: 'LabelContainer',\n overridesResolver: (props, styles) => styles.labelContainer\n})(({\n theme\n}) => ({\n width: '100%',\n color: theme.palette.text.secondary\n}));\nconst StepLabel = /*#__PURE__*/React.forwardRef(function StepLabel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiStepLabel'\n });\n\n const {\n children,\n className,\n componentsProps = {},\n error = false,\n icon: iconProp,\n optional,\n StepIconComponent: StepIconComponentProp,\n StepIconProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n alternativeLabel,\n orientation\n } = React.useContext(StepperContext);\n const {\n active,\n disabled,\n completed,\n icon: iconContext\n } = React.useContext(StepContext);\n const icon = iconProp || iconContext;\n let StepIconComponent = StepIconComponentProp;\n\n if (icon && !StepIconComponent) {\n StepIconComponent = StepIcon;\n }\n\n const ownerState = _extends({}, props, {\n active,\n alternativeLabel,\n completed,\n disabled,\n error,\n orientation\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(StepLabelRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [icon || StepIconComponent ? /*#__PURE__*/_jsx(StepLabelIconContainer, {\n className: classes.iconContainer,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(StepIconComponent, _extends({\n completed: completed,\n active: active,\n error: error,\n icon: icon\n }, StepIconProps))\n }) : null, /*#__PURE__*/_jsxs(StepLabelLabelContainer, {\n className: classes.labelContainer,\n ownerState: ownerState,\n children: [children ? /*#__PURE__*/_jsx(StepLabelLabel, _extends({\n className: classes.label,\n ownerState: ownerState\n }, componentsProps.label, {\n children: children\n })) : null, optional]\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StepLabel.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 * In most cases will simply be a string containing a title for the label.\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 props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n label: PropTypes.object\n }),\n\n /**\n * If `true`, the step is marked as failed.\n * @default false\n */\n error: PropTypes.bool,\n\n /**\n * Override the default label of the step icon.\n */\n icon: PropTypes.node,\n\n /**\n * The optional node to display.\n */\n optional: PropTypes.node,\n\n /**\n * The component to render in place of the [`StepIcon`](/api/step-icon/).\n */\n StepIconComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`StepIcon`](/api/step-icon/) element.\n */\n StepIconProps: 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} : void 0;\nStepLabel.muiName = 'StepLabel';\nexport default StepLabel;","import React from 'react';\nimport { TextField, Autocomplete, Typography } from '@mui/material';\nimport { timezones } from 'kerberus-components';\n\n\n\nexport default React.memo(function ProfileSettings({\n isSmall,\n first_name,\n last_name,\n setFirst_name,\n setLast_name,\n title, \n setTitle,\n tz,\n setTz\n}) {\n\n return (\n <>\n \n Enter profile details\n \n setFirst_name(e.target.value)}\n />\n setLast_name(e.target.value)}\n />\n setTitle(e.target.value)}\n />\n setTz(newVal)}\n renderInput={(params) => }\n sx={{ width: isSmall ? \"100%\" : \"80%\", mt: 1 }}\n />\n\n \n )\n})\n","import React from 'react';\nimport { TextField, Typography } from '@mui/material';\n\n\n\nexport default React.memo(function AccountSettings({\n isSmall,\n username,\n setUsername,\n usernameValidation,\n newPassword,\n setNewPassword,\n repeatPassword,\n setRepeatPassword,\n}) {\n\n return (\n <>\n \n Enter account details\n \n setUsername(e.target.value)}\n error={usernameValidation(username)}\n helperText={usernameValidation(username) && \"No whitespaces allowed\"}\n />\n setNewPassword(e.target.value)}\n error={usernameValidation(newPassword)}\n helperText={usernameValidation(newPassword) && \"No whitespaces allowed\"}\n />\n setRepeatPassword(e.target.value)}\n error={usernameValidation(repeatPassword)}\n helperText={usernameValidation(repeatPassword) && \"No whitespaces allowed\"}\n />\n\n \n )\n})\n","import React from 'react';\nimport { Typography, Box, FormControlLabel, Checkbox, FormHelperText, FormGroup, Tooltip } from '@mui/material';\n\n\n\nexport default React.memo(function DataSharing({\n isSmall,\n location_enabled,\n setLocation_enabled,\n contentLocation,\n push_enabled,\n setPush_enabled,\n contentPushNotification,\n public_social,\n setPublic_social,\n contentPublicSocial,\n public_dashboard,\n setPublic_dashboard,\n contentPublic,\n public_calendar,\n setPublic_calendar,\n contentPublicCalendar,\n allow_tracking,\n setAllow_tracking,\n contentAllowTracking,\n termsValid,\n setTermsValid\n}) {\n\n return (\n <>\n \n Enter data sharing details\n \n \n Hover over the sections below for more information\n \n \n\n {isSmall ?\n \n\n\n \n setLocation_enabled(e.target.checked)}\n />\n } />\n {contentLocation}\n \n\n\n\n\n \n setPush_enabled(e.target.checked)}\n />\n } />\n {contentPushNotification}\n \n\n\n \n setPublic_social(e.target.checked)}\n />\n } />\n {contentPublicSocial}\n \n\n \n setPublic_dashboard(e.target.checked)}\n />\n } />\n {contentPublic}\n \n\n\n \n setPublic_calendar(e.target.checked)}\n />\n } />\n {contentPublicCalendar}\n \n\n \n setAllow_tracking(e.target.checked)}\n />\n } />\n {contentAllowTracking}\n \n\n \n :\n \n \n setLocation_enabled(e.target.checked)}\n />\n } />\n \n \n setPush_enabled(e.target.checked)}\n />\n } />\n \n \n setPublic_social(e.target.checked)}\n />\n } />\n \n \n setPublic_dashboard(e.target.checked)}\n />\n } />\n \n \n setPublic_calendar(e.target.checked)}\n />\n } />\n \n \n setAllow_tracking(e.target.checked)}\n />\n } />\n \n\n\n \n }\n\n\n \n \n I agree to the terms and conditions\n \n setTermsValid((prev) => !prev)}\n />\n \n \n\n \n )\n})\n","import React, { useState } from 'react';\nimport { Box, Button, Typography, Divider, Step, Stepper, StepLabel, Grid} from '@mui/material';\nimport Toast from '../Toast';\nimport { useNavigate } from 'react-router-dom';\nimport ProfileSettings from './ProfileSettings';\nimport AccountSettings from './AccountSettings';\nimport DataSharing from './DataSharing';\n\nconst contentLocation = <>
    Allow your location to be shown to other users instead of last seen time.
    ;\nconst contentPublic = <>
    Allow profile usage in info dashboard.
    ;\nconst contentPublicSocial = <>
    Allow profile visibility in your company's social list.
    ;\nconst contentPublicCalendar = <>
    Allow other users to see your calendar.
    ;\nconst contentPushNotification = <>
    Enable to receive push notifications. You need to have notifications enabled on the device you want to receive them on.
    ;\nconst contentAllowTracking = <>
    Allow users to track your online activity.
    Other users can setup one time notifications.
    ;\n\nconst steps = ['Account settings', 'Profile settings', 'Data sharing'];\n\nfunction usernameValidation(val) {\n return /\\s/g.test(val);\n};\n\nexport default function AccountCreateStepper({\n isSmall,\n token\n}) {\n const navigate = useNavigate();\n const [error, setError] = useState();\n const [success, setSuccess] = useState();\n const [username, setUsername] = useState('');\n const [newPassword, setNewPassword] = useState('');\n const [repeatPassword, setRepeatPassword] = useState('');\n const [first_name, setFirst_name] = useState('');\n const [last_name, setLast_name] = useState('');\n const [title, setTitle] = useState('');\n const [tz, setTz] = useState(Intl.DateTimeFormat().resolvedOptions().timeZone);\n const [location_enabled, setLocation_enabled] = useState(false);\n const [push_enabled, setPush_enabled] = useState(false);\n const [public_social, setPublic_social] = useState(false);\n const [public_dashboard, setPublic_dashboard] = useState(false);\n const [public_calendar, setPublic_calendar] = useState(false);\n const [allow_tracking, setAllow_tracking] = useState(false);\n const [termsValid, setTermsValid] = useState(false);\n\n const [activeStep, setActiveStep] = React.useState(0);\n const [skipped, setSkipped] = React.useState(new Set());\n\n\n const isStepOptional = (step) => {\n return step === null;\n };\n\n const isStepSkipped = (step) => {\n return skipped.has(step);\n };\n\n const handleNext = () => {\n let newSkipped = skipped;\n if (isStepSkipped(activeStep)) {\n newSkipped = new Set(newSkipped.values());\n newSkipped.delete(activeStep);\n }\n\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\n setSkipped(newSkipped);\n };\n\n const handleBack = () => {\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\n };\n\n /* const handleSkip = () => {\n if (!isStepOptional(activeStep)) {\n // You probably want to guard against something like this,\n // it should never occur unless someone's actively trying to break something.\n throw new Error(\"You can't skip a step that isn't optional.\");\n }\n \n setActiveStep((prevActiveStep) => prevActiveStep + 1);\n setSkipped((prevSkipped) => {\n const newSkipped = new Set(prevSkipped.values());\n newSkipped.add(activeStep);\n return newSkipped;\n });\n };\n \n const handleReset = () => {\n setActiveStep(0);\n }; */\n\n const handleSubmit = async (e) => {\n e.stopPropagation();\n e.preventDefault();\n try {\n var response = await fetch(process.env.REACT_APP_AUTH_HOST + '/api/users/create_user', {\n method: 'POST',\n body: JSON.stringify({\n username: username,\n password: newPassword,\n first_name: first_name,\n last_name: last_name,\n title: title,\n tz: tz,\n location_enabled: location_enabled,\n push_enabled: push_enabled,\n public_social: public_social,\n public: public_dashboard,\n public_calendar: public_calendar,\n allow_tracking: allow_tracking,\n terms_accepted: termsValid,\n token: token\n }),\n headers: new Headers({\n 'Content-Type': 'application/json'\n }),\n });\n if (response.ok) {\n localStorage.removeItem('access');\n localStorage.removeItem('refresh');\n localStorage.removeItem('userId');\n handleNext();\n setSuccess(true);\n }\n else {\n const text = await response.json();\n setError(text);\n }\n }\n catch (e) {\n console.error(e);\n }\n };\n\n const AccountValid = ((!newPassword || !repeatPassword || !username) || (newPassword !== repeatPassword)\n || usernameValidation(username) || usernameValidation(newPassword) || usernameValidation(repeatPassword));\n\n const ProfileValid = ((!first_name || !last_name));\n\n return (\n \n \n {steps.map((label, index) => {\n const stepProps = {};\n const labelProps = {};\n if (isStepOptional(index)) {\n labelProps.optional = (\n Optional\n );\n }\n if (isStepSkipped(index)) {\n stepProps.completed = false;\n }\n return (\n \n {label}\n \n );\n })}\n \n \n \n Create account\n \n \n {activeStep === steps.length ?\n (\n <>\n \n All steps completed - Account has been created\n \n \n )\n :\n activeStep === 1 ?\n (\n \n )\n :\n activeStep === 2 ?\n (\n \n )\n :\n (\n \n )\n }\n \n\n {activeStep === steps.length ?\n \n \n \n :\n\n <>\n \n Back\n \n\n {activeStep === steps.length - 1\n ?\n \n :\n activeStep === 1 ?\n \n :\n \n }\n \n }\n \n \n\n setError(false)}\n autoHideDuration={5000}\n />\n\n setSuccess(false)}\n autoHideDuration={5000}\n />\n\n \n );\n}","import { Box, Button, Grid, Typography, Paper, Container } from '@mui/material';\nimport { useLayoutEffect, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport Copyright from '../Components/Copyright';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport MissingLinkLogo from '../Assets/Images/missingLinkLogo.svg';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useTheme } from '@mui/material/styles';\nimport jwt_decode from 'jwt-decode';\nimport AccountCreateStepper from '../Components/AccountCreate/AccountCreateStepper';\n\nexport default function AccountCreate(props) {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n const { token } = useParams();\n const [validToken, setValidToken] = useState(null);\n const navigate = useNavigate();\n\n useLayoutEffect(() => {\n if (token) {\n try {\n var tokenTest = jwt_decode(token).exp * 1000;\n if (new Date(tokenTest) > new Date()) {\n setValidToken(true);\n }\n else setValidToken(false);\n }\n catch (e) {\n setValidToken(false);\n }\n }\n }, [token]);\n\n return (\n \n {validToken !== null &&\n \n \n \n \n \"MissingLinlogo\"\n\n {validToken\n ?\n \n \n \n :\n \n \n Link is invalid or expired.\n \n \n \n }\n \n\n \n\n \n\n \n }\n \n );\n}","import React, { } from 'react';\nimport { Box, Typography, useTheme, useMediaQuery } from '@mui/material';\nimport MissingLinkLogo from '../Assets/Images/missingLinkLogo.svg';\n\nexport default function TermsConditions() {\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n return (\n \n \n \"MissingLinlogo\"\n \n AGREEMENT\n \n \n Terms & Conditions\n \n \n Wifi-WiSe system in general:\n \n \n This application is part of the WiSe System of Missing-Link Oy. The system scans wireless networks in exactly the same way as any wireless base station. The system does not store or process encrypted data, and therefore does not know anything about the payload data being transmitted in the area. The system is therefore fully legal and complies with both Finnish and EU legislation.\n\n The system continuously collects more data from its environment, which can be used for general statistical purposes. It can be used many wonderful things like an example: To improve the coverage of wireless networks, calculate their utilisation rates, interferences and find out the number of visitors and mass movements in the area without creating a so-called “personal data record.”\n \n \n a few words about GDPR:\n \n \n This application and the information entered by the User about his/her own devices is the only link to the User's profile, picture, devices, and other similar data with the data collected by the Wifi-Wise System. Without the information controlled by the User's own profile, the information collected by the System cannot be attributed to an individual. Thus, the user becomes the owner of the data collected from the devices when he or she has confirmed that he or she is the legal owner and/or user of that device. Once the owner of the collected data is identified, he/she has the right to control how and in what context the data collected from his/her devices is used.\n \n \n Control of collected data:\n \n \n The individual therefore has the right to decide how their data is used. For this purpose, there is always a choice of features in the system that allow the individual to limit the amount of information that is visible to others than him/her or to prevent its use, for example in external communications.\n\n These features are always available in the required number as the system is extended, and there are currently three features available:\n \n \n 1. Dashboard:\n \n \n The Dasboard tab contains a \"Data Share\" section from which the user can choose his visibility. For example, this means that you can directly influence whether you want to appear on the Info screen.\n \n \n 2. Go busy:\n \n \n This option can be found in the top right corner by clicking on the profile picture. From the drop-down menu, the user can choose to be present but busy/busy at the time of their choice. When this function is enabled, the user can select the \"Go Busy\" option from the drop-down menu. The system will indicate that you do not want to be disturbed during this time.\n \n \n 3. Go hidden:\n \n \n This option can also be found in the drop-down menu in the top right corner. If desired, the user can specify to be “away” and present at desired time. When this function is enabled, the system will show that you are “away.”\n\n We are constantly improving our system and your customer experience is important to us and safeguarding your privacy is our top priority. We welcome your feedback on how our system should be improved to make it the best possible tool for your daily use.\n \n \n Deletion of personal data from the system:\n \n \n As mentioned in previous chapters, the only link between personal data and the WiSe system is through this application and user's own user profile. If you do not want your name, picture, or other information to be linked to your devices through the system, you have the right, at any time, to disconnect this link if necessary. This is done by deleting your registered devices and data from the system.\n \n \n Permission to use the data collected throught the application:\n \n \n By accepting this document, the user grants access to the data collected from his/her devices and link to their profiles for the purpose of developing the system.\n \n \n Updating the terms of use:\n \n \n These terms of use will no doubt be revised several times in the future and will certainly take on the characteristics of legal jargon. However, we hope to keep it as human-oriented and clear for as long as possible.\n\n Unfortunately, each update to the Terms of Use will also lead to a new request for approval, so we will endeavour to prepare them carefully before bothering you with them.\n\n We apologise for any inconvenience or inconvenience this process may cause and hope that you will help us to make our system the best in the world.\n \n \n Contact details:\n \n \n If you have any suggestions for improvements or are concerned about how your data is stored or used, please contact our customer service team at Support@Missing-Link.fi or visit our offices at Åkerlundinkatu 8, 33100 Tampere.\n \n \n \n );\n}\n\n\n","import { Route, Routes } from \"react-router-dom\";\nimport LoginScreen from \"../../Views/Login\";\nimport PasswordReset from \"../../Views/PasswordReset\";\nimport LoginProvider from \"./LoginProvider\";\nimport { Navigate } from 'react-router-dom';\nimport SocketProvider from \"./SocketProvider\";\nimport App from \"../../App\";\nimport AccountCreate from \"../../Views/AccountCreate\";\nimport TermsConditions from \"../TermsConditions\";\n\nexport default function RootRoute() {\n return (\n \n \n \n \n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n );\n};","import React from 'react';\nimport * as ReactDOMClient from 'react-dom/client';\nimport './index.css';\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\nimport reportWebVitals from './reportWebVitals';\nimport { BrowserRouter } from \"react-router-dom\";\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport RootRoute from './Components/Backend/RootRoute';\n\nconst container = ReactDOMClient.createRoot(document.getElementById('root'));\ncontainer.render(\n \n \n \n \n);\n\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.register(toast);\n\n// If service workers are supported...\nif ('serviceWorker' in navigator) {\n // Check to see if the page is currently controlled.\n let isControlled = Boolean(navigator.serviceWorker.controller);\n\n // Listen for a change to the current controller...\n navigator.serviceWorker.addEventListener('controllerchange', () => {\n if (isControlled) {\n // ...and if the page was previosly controlled, reload the page.\n window.location.reload();\n } else {\n // ...otherwise, set the flag for future updates, but don't reload.\n isControlled = true;\n }\n });\n\n navigator.serviceWorker.getRegistration()\n .then((registration) => {\n if (registration?.waiting?.postMessage) {\n registration.waiting.postMessage({ type: 'SKIP_WAITING' });\n }\n });\n}\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["module","exports","obj","__esModule","default","self","ReferenceError","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","_extends","assign","arguments","source","hasOwnProperty","call","apply","this","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","create","constructor","value","newObj","desc","getOwnPropertyDescriptor","get","set","objectWithoutPropertiesLoose","excluded","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","_typeof","assertThisInitialized","_setPrototypeOf","p","_typeof2","Symbol","iterator","abs","Math","String","fromCharCode","trim","replace","pattern","replacement","indexof","search","index","charCodeAt","begin","end","slice","array","push","line","column","position","character","characters","node","root","parent","type","children","return","copy","prev","next","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","MS","MOZ","WEBKIT","COMMENT","DECLARATION","KEYFRAMES","serialize","callback","output","stringify","element","join","prefix","hash","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","k","x","y","z","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","WeakMap","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","map","exec","match","options","ssrStyles","document","querySelectorAll","Array","forEach","getAttribute","head","appendChild","setAttribute","stylisPlugins","container","_insert","inserted","nodesToHydrate","attrib","split","currentSheet","finalizingPlugins","insert","serializer","collection","middleware","concat","selector","serialized","sheet","shouldCache","styles","cache","name","nonce","speedy","prepend","insertionPoint","registered","hydrate","fn","arg","undefined","EmotionCacheContext","createContext","HTMLElement","Provider","withEmotionCache","func","forwardRef","ref","useContext","ThemeContext","useTheme","str","h","len","toString","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","toLowerCase","processStyleValue","p1","p2","cursor","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","string","isArray","_key","interpolated","_i","createStringFromObject","previousCursor","result","cached","labelPattern","serializeStyles","args","stringMode","strings","raw","lastIndex","identifierName","StyleSheet","_this","_insertTag","tag","before","tags","nextSibling","firstChild","insertBefore","isSpeedy","ctr","_proto","nodes","createElement","createTextNode","createStyleElement","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","e","flush","parentNode","removeChild","getRegisteredStyles","registeredStyles","classNames","rawClassName","className","insertStyles","isStringTag","current","_react","_react2","_ref","_ref$fill","fill","_ref$width","width","_ref$height","height","_ref$style","style","_objectWithoutProperties","viewBox","d","_interopRequireDefault","_createSvgIcon","_jsxRuntime","_default","jsx","fillRule","React","nodeInterop","_getRequireWildcardCache","has","hasPropertyDescriptor","_interopRequireWildcard","cacheBabelInterop","cacheNodeInterop","jsxs","Fragment","cx","cy","r","_utils","createSvgIcon","getSvgIconUtilityClass","slot","generateUtilityClass","_excluded","SvgIconRoot","styled","overridesResolver","ownerState","color","capitalize","fontSize","theme","_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","userSelect","display","transition","transitions","duration","shorter","inherit","small","typography","pxToRem","medium","large","palette","main","action","active","disabled","SvgIcon","inProps","useThemeProps","component","htmlColor","inheritViewBox","titleAccess","other","instanceFontSize","more","classes","slots","composeClasses","useUtilityClasses","as","focusable","role","muiName","defaultGenerator","componentName","ClassNameGenerator","generate","configure","generator","reset","createClassNameGenerator","getUtilityClass","reduce","acc","globalStateClassesMapping","checked","completed","error","expanded","focused","focusVisible","required","selected","generateUtilityClasses","reactPropsRegex","prop","test","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","Noop","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","Styled","w","finalTag","classInterpolations","T","finalShouldForwardProp","newProps","ele","possiblyStyleElement","displayName","defaultProps","withComponent","nextTag","nextOptions","newStyled","tagName","values","xs","sm","md","lg","xl","defaultBreakpoints","up","handleBreakpoints","propValue","styleFromPropValue","themeBreakpoints","breakpoints","item","breakpoint","cssKey","createEmptyBreakpointObject","breakpointsInput","_breakpointsInput$key","removeUnusedBreakpoints","breakpointKeys","breakpointOutput","resolveBreakpointValues","breakpointValues","base","customBase","breakpointsKeys","computeBreakpointsBase","clamp","min","max","decomposeColor","charAt","substr","re","RegExp","colors","n","parseInt","round","hexToRgb","marker","substring","Error","colorSpace","shift","parseFloat","recomposeColor","getLuminance","rgb","s","l","a","f","hslToRgb","val","Number","toFixed","getContrastRatio","foreground","background","lumA","lumB","alpha","darken","coefficient","lighten","emphasize","createBreakpoints","unit","step","sortedValues","breakpointsAsArray","sort","breakpoint1","breakpoint2","sortBreakpointsValues","down","between","start","endIndex","only","not","keyIndex","borderRadius","paletteInput","spacing","spacingInput","shape","shapeInput","mui","transform","argsInput","argument","createSpacing","muiTheme","deepmerge","direction","components","mode","handlers","filterProps","merge","propTypes","getBorder","border","themeKey","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","transformer","cssProperty","gap","columnGap","rowGap","maxWidth","_props$theme","_props$theme$breakpoi","_props$theme$breakpoi2","minWidth","maxHeight","minHeight","fontFamily","fontStyle","letterSpacing","textTransform","textAlign","filterPropsMapping","borders","flexbox","grid","positions","shadows","sizing","styleFunctionMapping","propToStyleFunction","styleFnName","clone","properties","m","directions","t","b","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","memoize","dir","marginKeys","paddingKeys","spacingKeys","createUnaryUnit","defaultValue","themeSpacing","createUnarySpacing","getValue","transformed","resolveCssProperty","cssProperties","getStyleFromPropValue","margin","padding","getPath","path","themeMapping","propValueFinal","userValue","styleFunctionSx","getThemeValue","inputProps","styleFunction","sx","traverse","sxInput","sxObject","emptyBreakpoints","css","styleKey","maybeFn","breakpointsValues","objects","allKeys","object","union","Set","every","objectsHaveSameKeys","unstable_createStyleFunctionSx","systemDefaultTheme","defaultTheme","getThemeProps","params","contextTheme","black","white","A100","A200","A400","A700","light","text","primary","secondary","divider","paper","hover","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","createPalette","contrastThreshold","getDefaultPrimary","getDefaultSecondary","getDefaultError","info","getDefaultInfo","success","getDefaultSuccess","warning","getDefaultWarning","getContrastText","augmentColor","mainShade","lightShade","darkShade","JSON","contrastText","modes","common","grey","caseAllCaps","defaultFontFamily","createTypography","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem2","coef","buildVariant","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","createShadow","px","mobileStepper","fab","speedDial","appBar","drawer","modal","snackbar","tooltip","mixins","mixinsInput","transitionsInput","typographyInput","systemTheme","toolbar","createTransitions","easing","easeInOut","easeOut","easeIn","sharp","shortest","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","getAutoHeightDuration","constant","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","delay","animatedProp","isEmpty","propsToClassKey","variant","classKey","_excluded2","_excluded3","createTheme","rootShouldForwardProp","slotShouldForwardProp","input","inputOptions","componentSlot","skipVariantsResolver","inputSkipVariantsResolver","skipSx","inputSkipSx","shouldForwardPropOption","defaultStyledResolver","muiStyledResolver","styleArg","expressions","expressionsWithDefaultTheme","stylesArg","themeInput","transformedStyleArg","styleOverrides","getStyleOverrides","resolvedStyleOverrides","entries","slotKey","slotStyle","_theme$components","_theme$components$nam","variantsStyles","themeVariants","themeVariant","isMatch","variantsResolver","definition","getVariantStyles","numOfCustomFnsApplied","placeholders","_ref2","withConfig","Component","validator","reason","componentNameInError","location","propFullName","unstable_ClassNameGenerator","console","warn","muiNames","toUpperCase","createChainedFunction","funcs","debounce","wait","timeout","debounced","clearTimeout","setTimeout","clear","isPlainObject","formatMuiErrorMessage","code","url","encodeURIComponent","ownerDocument","ownerWindow","defaultView","window","resolveProps","setRef","useControlled","controlled","defaultProp","state","isControlled","valueState","setValue","newValue","useEnhancedEffect","useEventCallback","useForkRef","refA","refB","refValue","globalId","maybeReactUseId","useId","idOverride","reactId","defaultId","setDefaultId","id","useGlobalId","hadFocusVisibleRecentlyTimeout","hadKeyboardEvent","hadFocusVisibleRecently","inputTypesWhitelist","tel","email","password","number","date","month","week","time","datetime","handleKeyDown","event","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","matches","readOnly","isContentEditable","focusTriggersKeyboardModality","useIsFocusVisible","doc","addEventListener","isFocusVisibleRef","onFocus","onBlur","file","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","some","validType","endsWith","hasOwn","argType","inner","toVal","mix","tmp","conversions","PI","sourceUnit","targetUnit","precision","converted","pow","globalScope","ONE","MAX_DIGITS","Decimal","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","floor","mathpow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","P","add","carry","xd","yd","Ctor","pr","ceil","reverse","unshift","pop","checkInt32","digitsToString","ws","indexOfLastWord","getZeroString","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","div","divide","dividedToIntegerBy","idiv","equals","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","log","wpr","ln","minus","sub","subtract","modulo","mod","q","times","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","squareRoot","sqrt","toExponential","mul","rL","toDecimalPlaces","todp","rm","toInteger","toint","toNumber","toPower","sign","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","valueOf","toJSON","multiplyInteger","temp","compare","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c","c0","numerator","x2","parseDecimal","rd","doRound","xdi","xe","xLTy","isExp","arr","config","v","ps","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","Events","EE","context","once","addListener","emitter","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","names","listeners","ee","listenerCount","emit","a1","a2","a3","a4","a5","removeListener","on","removeAllListeners","off","prefixed","HAS_WEAKSET_SUPPORT","WeakSet","sameValueZeroEqual","isPromiseLike","then","isReactElement","$$typeof","getNewCacheFallback","getNewCache","createCircularEqualCreator","isEqual","comparator","_comparator","isCacheableA","isCacheableB","hasA","hasB","areArraysEqual","meta","areMapsEqual","isValueEqual","aValue","aKey","bValue","bKey","OWNER","Function","bind","areObjectsEqual","keysA","reactElementA","reactElementB","areRegExpsEqual","global","ignoreCase","multiline","unicode","sticky","areSetsEqual","HAS_MAP_SUPPORT","Map","HAS_SET_SUPPORT","createComparator","createIsEqual","aShape","bShape","Date","getTime","deepEqual","shallowEqual","circularDeepEqual","circularShallowEqual","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","for","g","u","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","condition","format","argIndex","framesToPop","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectToString","nativeMax","nativeMin","now","isObject","isObjectLike","isSymbol","isBinary","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","isInvoking","cancel","FUNC_ERROR_TEXT","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Promise","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","data","Uint8Array","iteratee","predicate","resIndex","baseIndexOf","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseAssignValue","objValue","copyObject","keysIn","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","stack","isDeep","isFlat","isFull","isFunc","stacked","subValue","objectCreate","baseCreate","proto","baseForOwn","baseEach","createBaseEach","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","nativeKeysIn","isProto","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","iteratees","orders","nativeCeil","overRest","setToString","baseSetToString","comparer","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","includes","isCommon","seen","outer","seenIndex","stringToPath","baseSlice","arrayBuffer","byteLength","freeExports","nodeType","freeModule","Buffer","allocUnsafe","buffer","cloneArrayBuffer","dataView","byteOffset","reFlags","regexp","symbolValueOf","symbol","typedArray","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","isNew","getSymbols","getSymbolsIn","coreJsData","eachFunc","iterable","castSlice","hasUnicode","stringToArray","methodName","strSymbols","chr","findIndexFunc","baseRange","isIterateeCall","toFinite","noop","arraySome","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","message","convert","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","isKeyable","baseIsNative","getPrototype","overArg","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","resolve","ctorString","hasFunc","reHasUnicode","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","assocIndexOf","splice","getMapData","freeProcess","process","nodeUtil","types","require","binding","otherArgs","shortOut","nativeNow","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","quote","subString","reWhitespace","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","CLONE_DEEP_FLAG","timeWaiting","arrayEvery","baseEvery","guard","find","createFind","castFunction","baseHasIn","hasPath","baseIsArguments","stubFalse","baseIsMap","nodeIsMap","isNumber","objectCtorString","baseIsSet","nodeIsSet","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseKeysIn","baseExtremum","baseGt","resolver","memoized","Cache","baseLt","baseProperty","basePropertyDeep","range","createRange","baseSome","baseOrderBy","baseRest","sortBy","INFINITY","remainder","baseTrim","baseUniq","upperFirst","createCaseFirst","tz","load","factory","moment","version","cachedGuess","zones","links","countries","guesses","logError","momentVersion","major","minor","charCodeToInt","charCode","unpackBase60","parts","whole","fractional","multiplier","out","arrayToInt","mapIndices","indices","unpack","offsets","untils","Infinity","intToUntil","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","at","timeString","toTimeString","abbr","getTimezoneOffset","ZoneScore","zone","offsetScore","abbrScore","findChange","low","high","mid","diff","sortZoneScores","localeCompare","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","normalizeName","zoneScore","change","startYear","getFullYear","last","userOffsets","zoneScores","getZone","scoreOffsetAt","addZone","packed","normalized","link","addLink","alias","normal0","normal1","needsOffset","isUnixTimestamp","_f","_a","_tzm","utc","isMoment","unpacked","_index","timestamp","zone_name","filter","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","mom","utcOffset","offsetAt","dataVersion","_zones","_links","_names","_countries","country_zones","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","country","with_offset","old","abbrWrap","_z","resetZoneWrap","defaultZone","updateOffset","keepTime","_isUTC","_d","zoneName","zoneAbbr","local","setDefault","momentProperties","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","isUndefined","isDate","res","arrLen","extend","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","updateInProgress","copyConfig","to","from","momentPropertiesLen","_isAMomentObject","_l","_offset","_locale","Moment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","hh","dd","ww","M","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","set$1","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","getParseRegexForToken","unescapeFormat","regexEscape","matched","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","quarter","weeks","isoWeek","days","_milliseconds","_days","_data","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","offsetFromString","chunkOffset","matcher","cloneWithOffset","model","setTime","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","suffix","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","dates","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","performance","hrtime","getNanoSeconds","nodeLoadTime","moduleLoadTime","hr","upTime","uptime","loadTime","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","secret","err","getShim","isRequired","ReactPropTypes","bigint","bool","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","vendors","raf","caf","queue","_now","cp","cancelled","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","la","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","pa","qa","ra","na","oa","ma","removeAttribute","setAttributeNS","xlinkHref","sa","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ta","ua","va","wa","xa","ya","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","prepareStackTrace","Reflect","construct","Na","Oa","_context","_payload","_init","Pa","Qa","Ra","nodeName","Ta","_valueTracker","stopTracking","Sa","Ua","Va","activeElement","body","Wa","defaultChecked","_wrapperState","initialChecked","Xa","initialValue","Ya","Za","$a","ab","bb","cb","defaultSelected","db","dangerouslySetInnerHTML","eb","fb","gb","textContent","hb","ib","jb","kb","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","lb","lastChild","nodeValue","mb","aspectRatio","gridArea","lineClamp","nb","ob","pb","setProperty","qb","menuitem","area","br","col","embed","img","keygen","param","track","wbr","rb","sb","is","tb","ub","srcElement","correspondingUseElement","vb","wb","xb","yb","zb","stateNode","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","removeEventListener","Kb","onError","Lb","Mb","Nb","Ob","Pb","Qb","Sb","alternate","Tb","memoizedState","dehydrated","Ub","Wb","child","sibling","Vb","Xb","Yb","unstable_scheduleCallback","Zb","unstable_cancelCallback","$b","unstable_shouldYield","ac","unstable_requestPaint","D","unstable_now","bc","unstable_getCurrentPriorityLevel","cc","unstable_ImmediatePriority","dc","unstable_UserBlockingPriority","ec","unstable_NormalPriority","fc","unstable_LowPriority","gc","unstable_IdlePriority","hc","ic","lc","clz32","mc","nc","LN2","oc","pc","qc","rc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","sc","uc","vc","wc","eventTimes","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","delete","pointerId","Pc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Rc","Sc","isDehydrated","containerInfo","Tc","Uc","dispatchEvent","Vc","Wc","Xc","Yc","Zc","ReactCurrentBatchConfig","$c","ad","bd","cd","Qc","stopPropagation","ed","fd","gd","hd","jd","keyCode","kd","ld","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","td","nd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","od","pd","view","detail","vd","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","getModifierState","ud","buttons","relatedTarget","fromElement","toElement","movementX","movementY","wd","dataTransfer","Ad","Cd","animationName","elapsedTime","pseudoElement","Dd","clipboardData","Ed","Gd","Hd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Id","Jd","Alt","Control","Meta","Shift","Kd","Ld","repeat","which","Md","Od","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Qd","touches","targetTouches","changedTouches","Sd","Td","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Ud","Vd","Wd","Xd","documentMode","Yd","Zd","$d","ae","be","ce","de","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","se","te","ue","oninput","ve","detachEvent","we","attachEvent","ye","ze","Ae","Ce","De","Ee","Fe","Ge","contains","compareDocumentPosition","He","HTMLIFrameElement","contentWindow","href","Ie","contentEditable","Je","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","animationend","animationiteration","animationstart","transitionend","Se","Te","Ue","animation","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","ff","gf","hf","Rb","F","jf","kf","lf","mf","random","nf","capture","passive","C","B","of","pf","parentWindow","qf","rf","O","za","char","fe","sf","tf","uf","vf","wf","xf","yf","__html","zf","Af","Bf","Df","queueMicrotask","catch","Cf","Ef","Ff","Gf","previousSibling","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","G","H","Pf","I","Qf","Rf","Sf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Tf","Uf","Vf","Wf","getChildContext","Xf","__reactInternalMemoizedMergedChildContext","Yf","Zf","$f","ag","bg","dg","eg","fg","hg","ig","jg","kg","_currentValue","mg","childLanes","ng","dependencies","firstContext","lanes","og","pg","memoizedValue","qg","rg","sg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","interleaved","effects","tg","ug","eventTime","lane","payload","vg","J","K","wg","xg","yg","zg","Ag","Bg","refs","Cg","Fg","isMounted","_reactInternals","enqueueSetState","Dg","Eg","enqueueReplaceState","enqueueForceUpdate","Gg","shouldComponentUpdate","isPureReactComponent","Hg","updater","Ig","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Jg","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","N","Zg","$g","ah","deletions","bh","pendingProps","treeContext","retryLane","ch","dh","eh","fh","memoizedProps","gh","ih","_owner","_stringRef","jh","kh","lh","mh","nh","oh","implementation","ph","qh","done","rh","sh","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","Q","R","S","Ih","Jh","Kh","Lh","U","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","destroy","deps","hi","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","yi","readContext","useCallback","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","unstable_isNewReconciler","identifierPrefix","zi","Ai","Li","Ni","Oi","Bi","Ci","Di","Ei","Fi","componentDidCatch","Gi","componentStack","Hi","pingCache","Ii","Ji","Ki","Pi","tailMode","tail","V","subtreeFlags","Qi","pendingContext","Ri","wasMultiple","multiple","onClick","onclick","createElementNS","autoFocus","Si","rendering","Ti","renderingStartTime","isBackwards","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","ej","fj","gj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","hj","ij","jj","kj","lj","mj","fallback","nj","oj","pj","qj","_reactRetry","rj","sj","tj","uj","vj","xj","yj","zj","Aj","X","Bj","Cj","Dj","Ej","Gj","Hj","Ij","Jj","onCommitFiberUnmount","componentWillUnmount","Kj","Lj","Mj","Nj","Oj","Pj","Qj","_reactRootContainer","Rj","Sj","Tj","Xj","Yj","Zj","ak","__reactInternalSnapshotBeforeUpdate","src","Wj","Lk","bk","ck","dk","ek","Y","Z","fk","gk","hk","ik","jk","Vj","kk","lk","mk","nk","ok","pk","qk","rk","sk","tk","callbackNode","expirationTimes","expiredLanes","tc","callbackPriority","cg","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","finishedWork","finishedLanes","Fk","timeoutHandle","Gk","Hk","Ik","Jk","Kk","mutableReadLanes","xc","Fj","Uj","onCommitFiberRoot","jc","onRecoverableError","Mk","onPostCommitFiberRoot","Nk","Ok","Qk","isReactComponent","pendingChildren","Rk","mutableSourceEagerHydrationData","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","wj","Pk","al","reportError","bl","_internalRoot","cl","dl","el","fl","hl","gl","unmount","unstable_scheduleHydration","form","il","usingClientEntryPoint","jl","findFiberByHostInstance","bundleType","rendererPackageName","kl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","ll","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","reactDom","_inheritsLoose","_defaults2","_assertThisInitialized","invariant_1","setInputSelection","createTextRange","collapse","moveStart","moveEnd","select","defaultFormatChars","parseMask","maskChar","formatChars","mask","lastEditablePosition","permanents","isPermanentCharacter","isAllowedCharacter","getFilledLength","isFilled","formatValue","insertString","getRightEditablePosition","getStringValue","processChange","getInsertStringLength","getLeftEditablePosition","clearRange","enteredString","selection","getCancelAnimationFrame","webkitCancelRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","defer","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelDefer","InputElement","mounted","previousSelection","selectionDeferId","saveSelectionLoopDeferId","saveSelectionLoop","runSaveSelectionLoop","stopSaveSelectionLoop","getInputDOMNode","querySelector","getInputValue","setInputValue","setCursorToEnd","maskOptions","setCursorPosition","setSelection","isFocused","deferred","parentElement","getInputSelection","getCursorPosition","getBeforeMaskedValueChangeConfig","alwaysShowMask","isInputAutofilled","onChange","beforePasteState","beforeMaskedValueChange","isWindowsPhoneBrowser","onMouseDown","mouseDownX","mouseDownY","mouseDownTime","onPaste","handleRef","inputRef","navigator","userAgent","forceUpdate","_objectWithoutPropertiesLoose","cloneElement","setState","nextProps","prevState","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","_","$","_e","Be","webpackPolyfill","paths","padEnd","regions","iso2","countryCode","dialCode","isAreaCode","areaCodeLength","mainCode","hasAreaCodes","findIndex","filterRegions","sortTerritories","getFilteredCountryList","localizeCountries","localName","getCustomAreas","excludeCountries","onlyCountries","preferredCountries","hiddenAreaCodes","getProbableCandidate","guessSelectedCountry","enableAreaCodes","updateCountry","selectedCountry","formattedNumber","disableCountryCode","formatNumber","scrollTo","dropdownRef","offsetHeight","getBoundingClientRect","enableSearch","scrollToTop","enableAreaCodeStretch","enableLongNumbers","autoFormat","remainingText","formattedText","cursorToEnd","numberInputRef","setSelectionRange","getElement","getCountryData","handleFlagDropdownClick","showDropdown","concatPreferredCountries","highlightCountryIndex","handleInput","freezeSelection","countryCodeEditable","disableCountryGuess","handleInputClick","handleDoubleClick","handleFlagItemClick","searchValue","handleInputFocus","jumpCursorToEnd","placeholder","handleInputBlur","handleInputCopy","copyNumbersOnly","setData","getHighlightCountryIndex","getSearchFilteredCountries","searchCountry","queryString","handleKeydown","ENTER","ESC","blur","UP","DOWN","TAB","SPACE","debouncedQueryStingSearcher","handleInputKeyDown","onEnterKeyPress","onKeyDown","handleClickOutside","dropdownContainerRef","handleSearchChange","getDropdownCountryName","getCountryDropdownList","disableDropdown","searchNotFound","disableSearchIcon","searchClass","searchStyle","searchPlaceholder","autocompleteSearch","preferred","highlight","tabIndex","hide","dropdownClass","dropdownStyle","autoComplete","enableTerritories","preserveOrder","masks","areaCodes","localization","defaultMask","alwaysDefaultMask","disableInitialCountryGuess","enableClickOutside","onMount","updateFormattedNumber","renderStringAsFlag","defaultErrorMessage","specialLabel","containerClass","arrow","open","inputClass","buttonClass","containerStyle","inputStyle","onDoubleClick","onCopy","buttonStyle","title","flagsImagePath","RIGHT","LEFT","PLUS","extendStatics","__extends","__","__assign","__rest","patchResizeHandler","resizeCallback","refreshMode","refreshRate","refreshOptions","throttle","isSSR","isDOMElement","HTMLDocument","createNotifier","onResize","setSize","handleWidth","handleHeight","cancelHandler","resizeHandler","attachObserver","targetRef","observerOptions","observableElement","resizeObserver","observe","targetDomEl","currentElement","getRenderType","createResizeHandler","notifyResize","contentRect","skipOnMount","isValidElement","createRef","window.ResizeObserver","disconnect","typedChildren","WrapperTag","childProps","nativeProps","PureComponent","classList","_hasClass","baseVal","replaceClassName","origClass","classToRemove","remove","_addClass","_removeClass","_Transition","addClass","removeClass","CSSTransition","_React$Component","_len","onEnter","appearing","getClassNames","removeClasses","onEntering","activeClassName","reflowAndAddClass","onEntered","appearClassName","doneClassName","enterClassName","onExit","onExiting","onExited","isStringClassNames","_this$getClassNames6","_reactDom","_TransitionGroup","ReplaceTransition","_args","handleEnter","_len2","_key2","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","handleExited","_len7","_key7","handler","idx","originalArgs","_child$props","Children","_this$props","inProp","in","_React$Children$toArr","first","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","_reactLifecyclesCompat","Transition","initialStatus","parentGroup","transitionGroup","appear","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","_this2","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","_propTypes","_ChildMapping","TransitionGroup","firstRender","appeared","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","_CSSTransition","_ReplaceTransition","mergeChildMappings","getProp","nextChildMapping","hasPrev","hasNext","prevChild","isLeaving","mapFn","mapper","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","classNamesShape","timeoutsShape","newStartX","startIndex","startX","viewLength","resistance","indexMax","_constant","RESISTANCE_COEF","UNCERTAINTY_THRESHOLD","displaySameSlide","getChildrenKey","oldKey","_checkIndexBounds","_computeIndex","_getDisplaySameSlide","_mod","getDomTreeShapes","findNativeHandler","SwipeableViewsContext","_extends2","_objectWithoutProperties2","_classCallCheck2","_createClass2","_possibleConstructorReturn2","_getPrototypeOf2","_inherits2","_reactSwipeableViewsCore","willChange","WebkitFlexShrink","axisProperties","overflowX","overflowY","flexDirection","translate","rotationMatrix","scrollPosition","scrollLength","clientLength","createTransition","easeFunction","applyRotationMatrix","touch","axis","adaptMouse","rootNode","domTreeShapes","hasAttribute","getComputedStyle","getPropertyValue","clientWidth","scrollWidth","clientHeight","scrollHeight","nodeWhoClaimedTheScroll","goingForward","areNotAtStart","areNotAtEnd","SwipeableViews","containerNode","ignoreNextScrollEvents","lastX","vx","startY","isSwiping","started","transitionListener","touchMoveListener","activeSlide","indexCurrent","firstRenderTimeout","setRootNode","setContainerNode","setActiveSlide","updateHeight","handleSwipeStart","computedStyle","transformValues","rootStyle","tranformNormalized","paddingLeft","paddingRight","handleSwipeMove","ignoreNativeScroll","onSwitching","dx","dy","computeIndex","setIndexCurrent","isDragging","handleTouchStart","handleSwipeEnd","indexNew","indexLatest","delta","hysteresis","onChangeIndex","handleTransitionEnd","onTouchStart","handleTouchEnd","onTouchEnd","handleMouseDown","handleMouseUp","onMouseUp","handleMouseLeave","onMouseLeave","handleMouseMove","onMouseMove","handleScroll","onScroll","heightLatest","renderOnlyActive","disableLazyLoading","getDisplaySameSlide","slideUpdateHeight","animateTransitions","WebkitTransform","WebkitTransition","_this$props2","animateHeight","containerStyleProp","enableMouseEvents","slideStyleProp","slideStyle","slideClassName","springConfig","_this$state","touchEvents","mouseEvents","additionalTranstion","WebkitFlexDirection","getSwipeableViewsContext","indexChild","hidden","_SwipeableViews","useWebSocket","attachListeners","webSocketInstance","setters","optionsRef","reconnect","reconnectCount","sendMessage","interval","cancelReconnectOnClose","cancelReconnectOnError","setLastMessage","setReadyState","fromSocketIO","setUpSocketIOPing","onmessage","onMessage","bindMessageHandler","onopen","onOpen","ReadyState","OPEN","bindOpenHandler","isEventSourceSupported","EventSource","assertIsWebSocket","onclose","onClose","CLOSED","shouldReconnect","reconnectAttempts","DEFAULT_RECONNECT_LIMIT","reconnectTimeout","reconnectInterval","DEFAULT_RECONNECT_INTERVAL_MS","onReconnectStop","bindCloseHandler","onerror","wasClean","close","retryOnError","bindErrorHandler","CLOSING","clearInterval","attachSharedListeners","getSubscribers","subscriber","WebSocket","sharedWebSockets","DEFAULT_OPTIONS","EMPTY_EVENT_HANDLERS","DEFAULT_EVENT_SOURCE_OPTIONS","withCredentials","SOCKET_IO_PING_INTERVAL","SOCKET_IO_PATH","SOCKET_IO_PING_CODE","UNPARSABLE_JSON_OBJECT","isReactNative","product","globalThis","eventSourceSupported","createOrJoinSocket","webSocketRef","startRef","eventSourceOptions","share","clearSocketIoPingInterval","protocols","CONNECTING","readyState","addSubscriber","removeSubscriber","hasSubscribers","socketLike","cleanSubscribers","getUrl","convertedUrl","parsedUrl","parseSocketIOUrl","queryParams","appendQueryParams","subscribers","EMPTY_LIST","websocketWrapper","webSocket","Proxy","protocol","port","hostname","setInterval","useEventSource","connect","optionsWithEventSource","eventsRef","lastMessage","getWebSocket","lastEvent","getEventSource","emptyEvent","useSocketIO","optionsWithSocketIO","sendJsonMessage","socketIOLastMessage","getSocketData","lastJsonMessage","messageQueue","webSocketProxy","optionsCache","readyStateFromUrl","UNINSTANTIATED","stringifiedQueryParams","keep","send","protectedSetLastMessage","protectedSetReadyState","__self","__source","escape","_status","_result","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","createFactory","lazy","memo","startTransition","unstable_act","autoprefix","_forOwn2","_forOwn3","transforms","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","boxShadow","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","WebkitTouchCallout","KhtmlUserSelect","MozUserSelect","msUserSelect","WebkitUserSelect","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","flexBasis","WebkitFlexBasis","justifyContent","WebkitJustifyContent","msTransition","MozTransition","OTransition","msTransform","MozTransform","OTransform","absolute","right","bottom","otherElementStyles","otherStyle","elements","_classCallCheck","_possibleConstructorReturn","_inherits","Span","Active","_temp","Hover","handleMouseOver","handleMouseOut","onMouseOver","onMouseOut","flattenNames","_isString3","_isPlainObject3","_map3","things","thing","_flattenNames2","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","ReactCSS","activations","activeNames","merged","setProp","mergeClasses","_cloneDeep3","toMerge","_postcssValueParser2","_parser","_reducer2","_stringifier2","MATCH_CALC","walk","contents","ast","parser","reducedAst","_cssUnitConverter","_cssUnitConverter2","convertAbsoluteLength","flip","_convert","_convert2","operator","convertMathExpression","_node","op","flipValue","isValueType","reduceAddSubExpression","reduceDivisionExpression","reduceMultiplicationExpression","reduceMathExpression","calc","_reducer","prec","JisonParserError","stacktrace","exception","ex2","captureStackTrace","rv","trace","hasPartialLrUpgradeOnConflict","errorRecoveryTokenDiscardCount","symbols_","terminals_","TERROR","EOF","originalQuoteName","originalParseError","cleanupAfterParse","constructParseErrorInfo","yyMergeLocationInfo","__reentrant_call_depth","__error_infos","__error_recovery_infos","quoteName","id_str","getSymbolName","describeSymbol","terminal_descriptions_","collect_expected_token_set","do_not_describe","tokenset","check","state_descriptions_","table","productions_","bp","performAction","yystate","yysp","yyvstack","lexer","goto","bt","defaultActions","bda","parseError","ExceptionClass","recoverable","sstack","vstack","sp","NO_ACTION","__lexer__","sharedState_yy","pre_parse","post_parse","pre_lex","post_lex","fastLex","assert","yyGetSharedState","dst","shallow_copy_noclobber","resultValue","invoke_post_methods","do_not_nuke_errorinfos","cleanupAfterLex","ex","expected","pei","errStr","yytext","token_id","yylineno","new_state","newState","symbol_stack","state_stack","value_stack","stack_pointer","rec","yyrulelen","this_production","lex","yyval","_$","retval","setInput","canIUse","errSymbolDescr","showPosition","ntsymbol","JisonLexerError","ERROR","__currentRuleSet__","__decompressed","_backtrack","_input","_more","_signaled_error_token","conditionStack","yyleng","yylloc","constructLexErrorInfo","show_input_position","prettyPrintRange","pos_str","loc","yyerror","lineno_msg","lexerErrorsAreRecoverable","extra_error_attributes","last_column","first_line","first_column","last_line","rule_re","conditions","spec","rule_ids","rule_regexes","rule_new_ids","__rule_regexes","__rule_count","editRemainingInput","cpsArg","slice_len","lines","ch2","unput","pre","pre_lines","reject","backtrack_lexer","less","pastInput","maxSize","maxLines","upcomingInput","maxPrefix","maxPostfix","deriveLocationInfo","actual","preceding","following","context_loc","context_loc2","l0","l1","lineno_display_width","log10","ws_prefix","nonempty_line_indexes","lno","errpfx","clip_start","MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT","clip_end","intermediate_line","describeYYLLOC","display_range_too","l2","c1","c2","r1","r2","test_match","indexed_rule","backup","match_str","match_str_len","tempMatch","_currentRules","trackPosition","topState","pendingInput","activeCondition","conditionStackDepth","pushState","popState","stateStackSize","yyrulenumber","YY_START","simpleCaseActionClusters","inclusive","Parser","ValueParser","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","slash","comma","colon","star","escapePos","whitespacePos","balanced","after","sourceIndex","unclosed","stringifyNode","custom","buf","customResult","dot","EXP","dotted","sciPos","containsNumber","MapShim","getIndex","class_1","__entries__","ctx","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","method","sortIndex","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","opts","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","hsvToRgb","hue2rgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","brighten","toRgb","spin","hue","complement","triad","tetrad","splitcomplement","analogous","results","slices","part","monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","_applyCombination","fromRatio","newColor","color1","color2","rgb1","rgb2","readability","isReadable","wcag2","wcag2Parms","parms","level","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","leafPrototypes","getProto","ns","def","chunkId","all","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","charset","onScriptComplete","onload","doneFns","nmd","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","isNum","isBool","isStr","isFn","parseClassName","isToastIdValid","toastId","canUseDom","canBeRendered","content","POSITION","TOP_LEFT","TOP_RIGHT","TOP_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","TYPE","INFO","SUCCESS","WARNING","DEFAULT","cssTransition","appendPosition","collapseDuration","preventExitTransition","nodeRef","isIn","exitClassName","baseClassName","animationStep","collapseToast","eventManager","list","emitQueue","cancelEmit","timers","timer","useKeeper","reducer","staleId","useToastContainer","toast","containerRef","toastCount","toastKey","displayedToast","containerId","isToastActive","getToast","clearWaitingQueue","removeToast","dequeueToast","appendToast","toastContent","toastProps","buildToast","updateId","enableMultiContainer","isNotValid","closeToast","isNotAnUpdate","toastAutoClose","containerAutoClose","isLoading","closeButton","rtl","toastClassName","bodyClassName","toastStyle","bodyStyle","pauseOnHover","pauseOnFocusLoss","draggable","draggablePercent","draggableDirection","closeOnClick","progressClassName","progressStyle","autoClose","hideProgressBar","progress","deleteToast","queueLen","freeSlot","toDequeue","removeFromCollection","getToastToRender","toastToRender","toastList","newestOnTop","getX","getY","useToast","isRunning","setIsRunning","setPreventExitTransition","toastRef","drag","removalDistance","canCloseOnClick","canDrag","boundingRect","syncProps","onDragStart","offsetWidth","onDragTransitionEnd","pauseToast","playToast","onDragMove","onDragEnd","hasFocus","bindFocusEvents","eventHandlers","onMouseEnter","CloseButton","ariaLabel","ProgressBar","userStyle","controlledProgress","animationDuration","animationPlayState","defaultClassName","animationEvent","Svg","rest","Icons","spinner","Toast","cssClasses","isProgressControlled","maybeIcon","iconProps","Icon","renderCloseButton","Bounce","ToastContainer","getClassName","pointerEvents","latestInstance","containerDomNode","containerConfig","containers","generateToastId","getToastId","dispatchToast","mergeOptions","createToastByType","loading","resetParams","baseParams","update","dismiss","oldOptions","oldContent","containerInstance","isLocalhost","Boolean","registerValidSW","swUrl","serviceWorker","register","registration","debug","onupdatefound","installingWorker","installing","onstatechange","waiting","UpdateIcon","onUpdate","DownloadingIcon","onSuccess","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","invariant","cond","NavigationContext","LocationContext","RouteContext","outlet","Navigate","useInRouterContext","navigate","useNavigate","Outlet","React.createElement","OutletContext","useOutlet","Route","_props","Router","basename","basenameProp","locationProp","navigationType","NavigationType","static","staticProp","normalizePathname","navigationContext","parsePath","pathname","trailingPathname","stripBasename","Routes","routes","locationArg","parentMatches","routeMatch","parentParams","parentPathnameBase","pathnameBase","route","locationFromContext","useLocation","parsedLocationArg","startsWith","remainingPathname","branches","flattenRoutes","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","matchRoutes","_renderMatches","joinPaths","useRoutes","createRoutesFromChildren","useHref","useResolvedPath","joinedPathname","toPathname","getToPathname","endsWithSlash","createHref","locationPathname","routePathnamesJson","activeRef","go","resolveTo","useParams","caseSensitive","parentsMeta","parentPath","relativePath","computeScore","paramRe","isSplat","segments","initialScore","segment","branch","matchedParams","matchedPathname","matchPath","reduceRight","paramNames","regexpSource","paramName","compilePath","captureGroups","splatValue","decodeURIComponent","safelyDecodeURIComponent","toArg","routePathnames","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","BrowserRouter","historyRef","createBrowserHistory","history","listen","Link","reloadDocument","internalOnClick","replaceProp","isModifiedEvent","createPath","useLinkClickHandler","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","extendSxProp","inSx","systemProps","otherProps","splitProps","finalSx","getGridUtilityClass","GRID_SIZES","wrap","getOffset","resolveSpacingClasses","GridRoot","zeroMinWidth","flexWrap","directionValues","rowSpacing","rowSpacingValues","marginTop","paddingTop","columnSpacing","columnSpacingValues","marginLeft","globalStyles","columnsBreakpointValues","columnValue","fullWidth","Grid","columnsProp","columnSpacingProp","rowSpacingProp","columnsContext","getPaperUtilityClass","getOverlayAlpha","elevation","alphaValue","PaperRoot","square","rounded","backgroundColor","backgroundImage","Paper","getTypographyUtilityClass","TypographyRoot","align","noWrap","gutterBottom","paragraph","textOverflow","whiteSpace","marginBottom","defaultVariantMapping","colorTransformations","textPrimary","textSecondary","Typography","themeProps","transformDeprecatedColors","variantMapping","getDividerUtilityClass","DividerRoot","orientation","vertical","flexItem","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","borderWidth","borderStyle","borderBottomWidth","marginRight","borderRightWidth","alignSelf","DividerWrapper","wrapper","wrapperVertical","paddingBottom","Divider","getStyleValue","visibility","TextareaAutosize","maxRows","minRows","shadowRef","renders","syncHeight","inputShallow","innerHeight","singleRowHeight","outerHeight","outerHeightStyle","handleResize","containerWindow","rows","formControlState","states","muiFormControl","useFormControl","Global","sheetRef","rehydrating","sheetRefCurrent","nextElementSibling","keyframes","insertable","GlobalStyles","hasValue","SSR","getInputBaseUtilityClass","rootOverridesResolver","formControl","startAdornment","adornedStart","endAdornment","adornedEnd","sizeSmall","hiddenLabel","inputOverridesResolver","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel","InputBaseRoot","alignItems","InputBaseComponent","placeholderHidden","placeholderVisible","font","WebkitTapHighlightColor","outline","WebkitAppearance","WebkitTextFillColor","resize","MozAppearance","inputGlobalStyles","InputBase","ariaDescribedby","componentsProps","disableInjectingGlobalStyles","inputComponent","inputPropsProp","inputRefProp","onKeyUp","renderSuffix","valueProp","handleInputRefWarning","handleInputPropsRefProp","handleInputRefProp","handleInputRef","setFocused","fcs","onFilled","onEmpty","checkDirty","InputComponent","setAdornedStart","Root","rootProps","Input","onAnimationStart","getInputUtilityClass","InputRoot","disableUnderline","underline","bottomLineColor","borderBottomStyle","InputInput","componentsPropsProp","composedClasses","inputComponentsProps","getFilledInputUtilityClass","FilledInputRoot","borderTopLeftRadius","borderTopRightRadius","FilledInputInput","caretColor","FilledInput","filledInputComponentsProps","_span","NotchedOutlineRoot","NotchedOutlineLegend","float","withLabel","notched","getOutlinedInputUtilityClass","OutlinedInputRoot","notchedOutline","OutlinedInputInput","OutlinedInput","_React$Fragment","filled","getFormLabelUtilityClasses","FormLabelRoot","colorSecondary","AsteriskComponent","asterisk","FormLabel","getInputLabelUtilityClasses","InputLabelRoot","shrink","disableAnimation","animated","transformOrigin","InputLabel","shrinkProp","getFormControlUtilityClasses","FormControlRoot","verticalAlign","FormControl","visuallyFocused","initialAdornedStart","isMuiElement","setFilled","initialFilled","focusedState","childContext","registerEffect","getFormHelperTextUtilityClasses","FormHelperTextRoot","contained","FormHelperText","getListUtilityClass","ListRoot","disablePadding","dense","subheader","listStyle","List","getScrollbarSize","documentWidth","innerWidth","nextItem","disableListWrap","previousItem","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","innerText","repeating","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","MenuList","actions","autoFocusItem","listRef","textCriteriaRef","previousKeyMatched","lastTime","adjustStyleForScrollbar","containerElement","noExplicitWidth","scrollbarSize","activeItemIndex","items","newChildProps","lowerKey","currTime","keepFocusOnCurrent","maybeNode","maybeAppearing","_ref3","maybeNextCallback","TransitionGroupContext","reflow","getTransitionProps","_style$transitionDura","_style$transitionTimi","transitionDuration","transitionTimingFunction","transitionDelay","getScale","entering","entered","Grow","TransitionComponent","autoTimeout","foreignRef","normalizedTransitionCallback","maybeIsAppearing","isAppearing","muiSupportAuto","disablePortal","mountNode","setMountNode","getContainer","ariaHidden","show","getPaddingRight","ariaHiddenSiblings","mountElement","elementsToExclude","blacklistTagNames","findIndexOf","handleContainer","restoreStyle","disableScrollLock","isOverflowing","scrollContainer","removeProperty","candidatesSelector","defaultGetTabbable","regularTabNodes","orderedTabNodes","nodeTabIndex","tabindexAttr","getTabIndex","getRadio","roving","isNonTabbableRadio","isNodeMatchingSelectorFocusable","documentOrder","defaultIsEnabled","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","getTabbable","isEnabled","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","reactFocusEventTarget","activated","rootRef","lastKeydown","contain","rootElement","tabbable","_lastKeydown$current","_lastKeydown$current2","isShiftTab","focusNext","focusPrevious","loopFocus","handleFocusSentinel","childrenPropsHandler","getModalUtilityClass","defaultManager","modals","modalIndex","modalRef","hiddenSiblings","getHiddenSiblings","mount","containerIndex","restore","nextTop","isTopModal","ModalUnstyled","BackdropComponent","BackdropProps","classesProp","closeAfterTransition","disableEscapeKeyDown","hideBackdrop","keepMounted","manager","onBackdropClick","onTransitionEnter","onTransitionExited","exited","setExited","mountNodeRef","hasTransition","getHasTransition","getModal","handleMounted","handleOpen","resolvedContainer","handlePortalRef","handleClose","getBackdropUtilityClass","BackdropUnstyled","invisible","Fade","defaultTimeout","transitionProps","webkitTransition","BackdropRoot","Backdrop","_componentsProps$root","extendUtilityClasses","ModalRoot","ModalBackdrop","backdrop","Modal","commonProps","getPopoverUtilityClass","getOffsetTop","getOffsetLeft","horizontal","getTransformOriginValue","resolveAnchorEl","anchorEl","PopoverRoot","PopoverPaper","Popover","anchorOrigin","anchorPosition","anchorReference","containerProp","marginThreshold","PaperProps","transitionDurationProp","TransitionProps","paperRef","handlePaperRef","getAnchorOffset","resolvedAnchorEl","anchorRect","getTransformOrigin","elemRect","getPositioningStyle","elemTransformOrigin","heightThreshold","widthThreshold","setPositioningStyles","positioning","updatePosition","getMenuUtilityClass","RTL_ORIGIN","LTR_ORIGIN","MenuRoot","MenuPaper","WebkitOverflowScrolling","MenuMenuList","disableAutoFocusItem","MenuListProps","PopoverClasses","isRtl","menuListActionsRef","getNativeSelectUtilityClasses","nativeSelectSelectStyles","NativeSelectSelect","nativeSelectIconStyles","NativeSelectIcon","iconOpen","NativeSelectInput","IconComponent","getSelectUtilityClasses","SelectSelect","SelectIcon","SelectNativeInput","nativeInput","areEqualValues","SelectInput","autoWidth","defaultOpen","displayEmpty","labelId","MenuProps","openProp","renderValue","SelectDisplayProps","tabIndexProp","setValueState","openState","setOpenState","displayRef","displayNode","setDisplayNode","isOpenControlled","menuMinWidthState","setMenuMinWidthState","handleDisplayRef","getElementById","isCollapsed","childrenArray","handleItemClick","itemIndex","clonedEvent","displaySingle","displayMultiple","computeDisplay","foundMatch","menuMinWidth","buttonId","_StyledInput","_StyledFilledInput","styledRootConfig","StyledInput","StyledOutlinedInput","StyledFilledInput","Select","ArrowDropDown","native","variantProp","outlined","inputComponentRef","getTextFieldUtilityClass","variantComponent","TextFieldRoot","TextField","FormHelperTextProps","helperText","InputLabelProps","InputProps","SelectProps","InputMore","helperTextId","inputLabelId","htmlFor","contextValue","pulsate","rippleX","rippleY","rippleSize","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","timeoutId","_t","_t2","_t3","_t4","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","TouchRippleRipple","TouchRipple","center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","fakeElement","sizeX","sizeY","stop","getButtonBaseUtilityClass","ButtonBaseRoot","textDecoration","colorAdjust","ButtonBase","centerRipple","disableRipple","disableTouchRipple","focusRipple","LinkComponent","onContextMenu","onDragLeave","onFocusVisible","onTouchMove","TouchRippleProps","touchRippleRef","buttonRef","rippleRef","handleRippleRef","handleFocusVisible","handleBlurVisible","focusVisibleRef","setFocusVisible","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleContextMenu","handleDragLeave","handleTouchMove","handleBlur","handleFocus","isNonNativeButton","keydownRef","handleKeyUp","ComponentProp","buttonProps","handleOwnRef","mountedState","setMountedState","enableTouchRipple","focusVisibleClassName","getButtonUtilityClass","commonIconStyles","ButtonRoot","colorInherit","disableElevation","ButtonStartIcon","startIcon","ButtonEndIcon","endIcon","Button","contextProps","resolvedProps","disableFocusRipple","endIconProp","startIconProp","getIconButtonUtilityClass","IconButtonRoot","edge","IconButton","InvalidCharacterError","atob","bs","InvalidTokenError","header","base64_url_decode","html","enableColorScheme","WebkitFontSmoothing","MozOsxFontSmoothing","WebkitTextSizeAdjust","colorScheme","_theme$components$Mui","defaultStyles","themeOverrides","MuiCssBaseline","Box","generateClassName","BoxRoot","_extendSxProp","createBox","getContainerUtilityClass","ContainerRoot","fixed","disableGutters","Container","_defineProperty","_objectSpread","ownKeys","sym","mapEventPropToEvent","eventProp","disableReactTree","mouseEvent","onClickAway","touchEvent","movedRef","activatedRef","syntheticEventRef","handleClickAway","insideReactTree","clickedRootScrollbar","insideDOM","composedPath","createHandleSynthetic","handlerName","childrenProps","mappedTouchEvent","mappedMouseEvent","getSnackbarContentUtilityClass","SnackbarContentRoot","emphasis","SnackbarContentMessage","SnackbarContentAction","SnackbarContent","getSnackbarUtilityClass","SnackbarRoot","Snackbar","defaultTransitionDuration","autoHideDuration","ClickAwayListenerProps","ContentProps","disableWindowBlurListener","resumeHideDuration","timerAutoHide","setAutoHideTimer","autoHideDurationParam","handlePause","handleResume","getAlertUtilityClass","_CloseIcon","AlertRoot","severity","getColor","getBackgroundColor","AlertIcon","AlertMessage","AlertAction","defaultIconMapping","SuccessOutlined","ReportProblemOutlined","ErrorOutline","InfoOutlined","Alert","closeText","iconMapping","Close","getAlertTitleUtilityClass","AlertTitleRoot","AlertTitle","MuiAlert","verticalPos","horizontalPos","message2","getLinkUtilityClass","LinkRoot","textDecorationColor","TypographyClasses","handlerRef","Copyright","useMediaQueryOld","query","defaultMatches","matchMedia","ssrMatchMedia","noSsr","supportMatchMedia","setMatch","queryList","updateMatch","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","subscribe","mediaQueryList","notify","useMediaQuery","queryInput","LoginScreen","isSmall","username","setUsername","setPassword","setEmail","setOpen","openEmailError","setOpenEmailError","openEmailSuccess","setOpenEmailSuccess","emailSent","setEmailSent","forgotPassword","setForgotPassword","checkLogin","localStorage","getItem","jwt_decode","response","fetch","credentials","headers","Headers","json","setItem","access","removeItem","handleSubmit","doLogin","toRoot","backgroundPosition","backgroundSize","backgroundRepeat","onSubmit","noValidate","CssBaseline","MissingLinkLogo","alt","mt","KeyboardBackspaceIcon","PasswordReset","newPassword","setNewPassword","repeatPassword","setRepeatPassword","validToken","setValidToken","setError","setSuccess","tokenTest","hint","getCached","b64","btoa","stored","populateCache","device","setDevice","handleAuthentication","reload","useFetchCloud","accessToken","setAccessToken","tokenType","user","MainContext","accessRef","rawRes","setRawRes","cloudData","setCloudData","bodyUsed","ev","fetchCloud","endpoint","fileUpload","imageUpload","contentType","fetchBody","FormData","append","statusText","fetchCloudWithCache","async","tokenString","requestVar","Request","caches","cacheRes","auth","bearerFetchRes","tokenFetchRes","localTheme","outerTheme","mergeOuterLocalTheme","nested","InnerThemeProvider","__awaiter","_arguments","fulfilled","rejected","adopt","__generator","sent","trys","ops","verb","hook","UNDEFINED","OBJECT","mergeObjects","STR_UNDEFINED","hasWindow","counter","stableHash","online","hasWin","hasDoc","onWindowEvent","onDocumentEvent","offWindowEvent","offDocumentEvent","preset","isOnline","isVisible","defaultConfigOptions","initFocus","initReconnect","onOnline","onOffline","IS_SERVER","rAF","useIsomorphicLayoutEffect","navigatorConnection","connection","slowConnection","effectiveType","saveData","SWRGlobalState","broadcastState","isValidating","revalidate","broadcast","EVENT_REVALIDATORS","STATE_UPDATERS","FETCH","revalidators","updaters","__timestamp","getTimestamp","internalMutate","_opts","rollbackOnError","optimisticData","keyInfo","MUTATION","beforeMutationTs","hasOptimisticData","rollbackData","_c","revalidateAllKeys","initCache","provider","mutate","releaseFocus_1","releaseReconnect_1","defaultConfig","onLoadingSlow","onErrorRetry","maxRetryCount","errorRetryCount","currentRetryCount","retryCount","errorRetryInterval","onDiscarded","revalidateOnFocus","revalidateOnReconnect","revalidateIfStale","shouldRetryOnError","focusThrottleInterval","dedupingInterval","loadingTimeout","currentData","newData","isPaused","u1","use","f1","u2","f2","SWRConfigContext","normalize","useSWRConfig","subscribeCallback","callbacks","keyedRevalidators","WITH_DEDUPE","dedupe","SWRConfig","extendedConfig","cacheContext","useSWR","fetcher","fallbackData","suspense","revalidateOnMount","refreshInterval","refreshWhenHidden","refreshWhenOffline","fnArgs","initialMountedRef","unmountedRef","keyRef","fetcherRef","configRef","getConfig","patchFetchInfo","isInitialMount","shouldRevalidate","rerender","stateRef","stateDependenciesRef","shouldRerender","currentState","useStateWithDeps","stateDependencies","revalidateOpts","currentFetcher","startAt","shouldStartNewRequest","isCurrentKeyMounted","cleanupState","finishRequestAndUpdateState","mutationInfo","err_1","requestInfo","boundMutate","keyChanged","softRevalidate","nextFocusRevalidatedAt","unsubUpdate","updatedData","updatedError","updatedIsValidating","unsubEvents","execute","fallbackConfig","SWRFetcher","LoginProvider","userId","bulkData","setBulkData","online_minutes","prev_online_minutes","company","social_groups","pushSubscribed","bulkCacheLoaded","cachedVal","filters","push_enabled","getRegistration","Notification","requestPermission","perm","MainContextVal","ThemeProvider","init","getRandomValues","$L","$u","$x","$offset","$y","$M","$D","$W","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","$locale","weekStart","$set","YY","YYYY","MMM","MMMM","DD","ddd","dddd","HH","SSS","toUTCString","isDayjs","en","Ls","getUTCHours","getUTCSeconds","getUTCMilliseconds","$localOffset","timeZoneName","hour12","formatToParts","toLocaleString","$timezone","offsetName","$l","negative","parseFromMilliseconds","calMilliseconds","afternoon","SS","Do","ZZ","customParseFormat","fromToBase","dayjs","timezone","rnds8","rng","crypto","msCrypto","validate","uuid","REGEX","byteToHex","v4","rnds","useWsDataProvider","wsInstance","socketContext","SocketContext","requestData","setRequestData","setLoaded","clientRef","cacheParams","subscribedRef","deviceRef","client","getData","multi","clientUuid","uuidv4","today","dest","rpc","command","doUnsubscribe","unsubscribe","SocketProvider","setConnect","closeEvent","refreshSocket","isUnitless","toUnitless","convertLength","baseFontSize","toUnit","fromUnit","pxLength","outputLength","fontGrid","pixels","getAppBarUtilityClass","AppBarRoot","backgroundColorDefault","enableColorOnDark","AppBar","getBadgeUtilityClass","appendOwnerState","existingProps","BadgeUnstyled","anchorOriginProp","maxProp","showZero","badgeContent","displayValue","badgeContentProp","invisibleProp","useBadge","badge","Badge","badgeProps","Slot","badgeClasses","BadgeRoot","BadgeBadge","overlap","alignContent","RADIUS_STANDARD","RADIUS_DOT","_componentsProps$badg","overlapProp","colorProp","getToolbarUtilityClass","ToolbarRoot","gutters","Toolbar","getListItemIconUtilityClass","getListItemTextUtilityClass","getMenuItemUtilityClass","MenuItemRoot","backgroundClip","MenuItem","menuItemRef","getCollapseUtilityClass","CollapseRoot","collapsedSize","CollapseWrapper","CollapseWrapperInner","wrapperInner","Collapse","collapsedSizeProp","wrapperRef","autoTransitionDuration","isHorizontal","getWrapperSize","wrapperSize","duration2","getAccordionUtilityClass","AccordionRoot","region","overflowAnchor","borderBottomLeftRadius","borderBottomRightRadius","Accordion","childrenProp","defaultExpanded","expandedProp","setExpandedState","handleChange","summary","toggle","getAccordionSummaryUtilityClass","AccordionSummaryRoot","AccordionSummaryContent","AccordionSummaryExpandIconWrapper","expandIconWrapper","AccordionSummary","expandIcon","getAccordionDetailsUtilityClass","AccordionDetailsRoot","AccordionDetails","getWindow","isHTMLElement","isShadowRoot","ShadowRoot","includeScale","scaleX","scaleY","getWindowScroll","win","pageXOffset","pageYOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","getNodeScroll","clientLeft","clientTop","getLayoutRect","clientRect","offsetLeft","offsetTop","getParentNode","assignedSlot","host","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","perspective","getContainingBlock","auto","basePlacements","viewport","popper","variationPlacements","placement","modifierPhases","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","existing","mergeByName","enabled","_ref3$options","effect","cleanupFn","noopFn","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","_options","onFirstUpdate","_options$scroll","_options$resize","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","popperOffsets","initialStyles","attribute","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","getOppositePlacement","getOppositeVariationPlacement","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","_loop","fittingPlacement","within","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","eventListeners","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","defaultPopperOptions","PopperTooltip","initialPlacement","popperOptions","popperRef","popperRefProp","tooltipRef","ownRef","handlePopperRef","handlePopperRefRef","rtlPlacement","flipPlacement","setPlacement","popperModifiers","PopperUnstyled","PopperRoot","Popper","getTooltipUtilityClass","TooltipPopper","disableInteractive","popperInteractive","popperArrow","popperClose","TooltipTooltip","tooltipArrow","wordWrap","TooltipArrow","hystersisOpen","hystersisTimer","composeEventHandler","eventHandler","Tooltip","_components$Popper","_components$Transitio","_components$Tooltip","_components$Arrow","_componentsProps$popp","describeChild","disableFocusListener","disableHoverListener","disableInteractiveProp","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","followCursor","idProp","leaveDelay","leaveTouchDelay","PopperComponent","PopperComponentProp","PopperProps","TransitionComponentProp","childNode","setChildNode","arrowRef","setArrowRef","ignoreNonTouchEvents","closeTimer","enterTimer","leaveTimer","touchTimer","prevUserSelect","stopTouchInteraction","handleLeave","setChildIsFocusVisible","detectTouchStart","handleUseRef","handleFocusRef","positionRef","nameOrDescProps","titleIsString","interactiveWrapperListeners","_PopperProps$popperOp","tooltipModifiers","TooltipComponent","ArrowComponent","Arrow","popperProps","tooltipProps","tooltipArrowProps","TransitionPropsInner","_componentsProps$tool","_componentsProps$arro","getAvatarUtilityClass","AvatarRoot","colorDefault","AvatarImg","objectFit","textIndent","AvatarFallback","Person","Avatar","imgProps","sizes","srcSet","crossOrigin","referrerPolicy","image","Image","srcset","useLoaded","hasImg","hasImgNotFailing","SmallAvatarWrapper","skipCookie","tooltipContent","hasTooltip","imageSize","imageType","imgSrc","setImgSrc","getImage","imageData","setImageData","authstr","cacheBlob","blob","URL","createObjectURL","fetchBlob","useImageProvider","_jsx","HelperIcon","setAnchorEl","handlePopoverClose","HelpIcon","aria-owns","aria-haspopup","mlBlue","getSliderUtilityClass","circle","useValueLabelClasses","clip","asc","findClosest","currentValue","_values$reduce","closestIndex","trackFinger","touchId","valueToPercent","roundValueToStep","nearest","num","matissaDecimalPart","decimalPart","getDecimalPrecision","setValueIndex","focusThumb","sliderRef","activeIndex","setActive","_sliderRef$current","_doc$activeElement","_sliderRef$current2","axisProps","percent","leap","Identity","cachedSupportsTouchActionNone","doesSupportTouchActionNone","CSS","supports","useSlider","ariaLabelledby","disableSwap","marks","marksProp","onChangeCommitted","scale","dragging","setDragging","moveCount","valueDerived","thumbIndex","marksValues","mark","createHandleHiddenInputFocus","otherHandlers","_otherHandlers$onFocu","createHandleHiddenInputBlur","_otherHandlers$onBlur","_document$activeEleme","createHandleHiddenInputChange","_otherHandlers$onChan","marksIndex","valueAsNumber","currentMarkIndex","previousValue","previousIndex","getFingerNewValue","finger","move","values2","slider","percentToValue","stopListening","createHandleMouseDown","_otherHandlers$onMous","trackOffset","trackLeap","createHandleMouseOver","_otherHandlers$onMous2","createHandleMouseLeave","_otherHandlers$onMous3","getRootProps","ownEventHandlers","mergedEventHandlers","getHiddenInputProps","getThumbProps","Forward","SliderUnstyled","_components$Rail","_components$Track","_components$Thumb","_components$ValueLabe","_components$Mark","_components$MarkLabel","ariaValuetext","getAriaLabel","getAriaValueText","valueLabelDisplay","valueLabelFormat","marked","Rail","railProps","rail","Track","trackProps","trackStyle","Thumb","thumbProps","thumb","ValueLabel","valueLabelProps","valueLabel","Mark","markProps","MarkLabel","markLabelProps","markLabel","hiddenInputProps","markActive","markLabelActive","ValueLabelComponent","sliderClasses","SliderRoot","trackInverted","trackFalse","touchAction","SliderRail","SliderTrack","SliderThumb","SliderValueLabel","valueLabelOpen","SliderMark","SliderMarkLabel","Slider","_componentsProps$thum","_componentsProps$trac","_componentsProps$valu","HiddenTimeSlider","handleStatus","modalStyle","bgcolor","InfoModal","openModal","setOpenModal","handleCloseModal","aria-label","aria-controls","InfoIcon","aria-labelledby","aria-describedby","ClearIcon","webkitBoxShadow","scrollbarColor","scrollbarWidth","CircleIcon","rel","ArrowForwardIosIcon","ml","ShowOfflineStatus","showText","setShowText","setOnline","onLine","statusOnline","statusOffline","justifySelf","SignalWifiBadIcon","mr","contentHidden","MuiAppBar","MuiAppBarComponent","StyledBadge","lastseenminutes","userOnlineData","mlRed","mlYellow","mlGreen","toggleDrawer","gridOneHidden","setGridOneHidden","gridTwoHidden","setGridTwoHidden","gridThreeHidden","setGridThreeHidden","first_name","last_name","hiddenTime","setHiddenTime","busyTime","setBusyTime","nowHidden","setNowHidden","hideDuration","setHideDuration","setStatus","busyExpanded","setBusyExpanded","hiddenExpanded","setHiddenExpanded","handleStatusHidden","handleStatusBusy","handleStatusCancel","handleLogout","currDate","hideInterval","user_hidden","MenuIcon","WorkHistoryIcon","borderLeftWidth","ArticleIcon","GroupIcon","GavelIcon","ExpandMoreIcon","DoNotDisturbOnTotalSilenceIcon","VisibilityOffIcon","LogoutIcon","setTranslateValue","containerPropProp","containerRect","fakeTransform","offsetX","offsetY","getTranslateValue","webkitTransform","defaultEasing","easingProp","childrenRef","handleRefIntermediary","getDrawerUtilityClass","docked","DrawerRoot","DrawerDockedRoot","DrawerPaper","oppositeDirection","getAnchor","Drawer","anchorProp","ModalProps","BackdropPropsProp","SlideProps","anchorInvariant","slidingDrawer","getListItemUtilityClass","getListItemButtonUtilityClass","getListItemSecondaryActionClassesUtilityClass","ListItemSecondaryActionRoot","ListItemSecondaryAction","ListItemRoot","alignItemsFlexStart","hasSecondaryAction","secondaryAction","ListItemContainer","ListItem","componentProp","ContainerComponent","ContainerProps","ContainerClassName","listItemRef","componentProps","ListItemIconRoot","ListItemIcon","ListItemTextRoot","inset","ListItemText","disableTypography","primaryProp","primaryTypographyProps","secondaryProp","secondaryTypographyProps","ListItemButtonRoot","ListItemButton","badgewidth","badgeheight","badgeboxshadow","badgeanimation","busy","StyledBadgeAvatar","tooltipPlacement","badgeOverlap","badgeAnchorOrigin","badgeVariant","badgeSx","avatarSx","avatarVariant","akey","noTooltip","hasHiddenBadge","VisibilityOff","getListItemAvatarUtilityClass","ListItemAvatarRoot","ListItemAvatar","itemGroup","pl","subtitle","itemCategory","py","subHeader","getActiveState","utc_start","utc_end","hoursEnd","minsEnd","mins","yesterday","tomorrow","isBetween1","isBetween2","ListItems","drawerOpen","userdata","onlineData","user_company","isLarge","socialGroups","setSocialGroups","setHidden","onlineMembers","setOnlineMembers","profiles","setProfiles","groupListData","profileListData","grouprequestsData","listCollapseLS","listCollapseProfile","listCollapse1","listCollapseGroups","listCollapse2","listCollapseAdmin","listCollapse3","listCollapseMyGroups","listCollapse4","openProfile","setOpenProfile","openGroups","setOpenGroups","openMyGroups","setOpenMyGroups","openAdmin","setOpenAdmin","tempNum","userObj","lastSeen","HomeIcon","darkBlue","ChevronRightIcon","ExpandMore","PersonIcon","CalendarTodayIcon","DevicesOtherIcon","SettingsIcon","GroupAddIcon","GroupsIcon","my","PeopleIcon","group","groupObj","group_id","users","user_id","isActiveWeekday","enable_days","social_group","perm_level","DateRangeIcon","DashboardCustomizeIcon","TokenIcon","MuiDrawer","MuiDrawerComponent","SwipeAreaRoot","SwipeArea","claimedSwipeInstance","calculateCurrentX","calculateCurrentY","getMaxTranslate","horizontalSwipe","paperInstance","getTranslate","currentTranslate","startLocation","maxTranslate","iOS","SwipeableDrawer","transitionDurationDefault","disableBackdropTransition","disableDiscovery","disableSwipeToOpen","minFlingVelocity","SwipeAreaProps","swipeAreaWidth","ModalPropsProp","maybeSwiping","setMaybeSwiping","swipeInstance","swipeAreaRef","backdropRef","touchDetected","calculatedDurationRef","setPosition","changeTransition","anchorRtl","rtlTranslateMultiplier","drawerStyle","backdropStyle","handleBodyTouchEnd","translateRatio","velocity","handleBodyTouchMove","currentX","currentY","hasNativeHandler","computeHasNativeHandler","definitelySwiping","paperHit","lastTranslate","handleBodyTouchStart","defaultMuiPrevented","ChevronLeftIcon","isProp","defaultKey","MILI","SECONDS","MINUTES","HOURS","DAY","DECADE","CENTURY","multiplierMilli","multiplierMonth","daysInFeb","nextDate","currentOffset","nextOffset","solveDST","addMillis","totalMonths","nextYear","trunc","nextMonth","daysOf","setDate","addMonths","firstOfWeek","firstDay","setHours","createComparer","neq","inRange","createAccessor","hourLength","dateOut","psuedoElement","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","isTransform","cssText","isWindow","DOCUMENT_NODE","getscrollAccessor","box","docElem","parentOffset","cancelMethod","rafImpl","curr","getKey","vendor","canUseDOM","rafMethod","useCallbackRef","toFnRef","mergeRefs","useMounted","initialPopperStyles","disabledApplyStylesModifier","ariaDescribedByModifier","ids","_popper$getAttribute","_state$elements2","EMPTY_MODIFIERS","referenceElement","popperElement","_ref3$enabled","_ref3$placement","_ref3$strategy","_ref3$modifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","_useSafeState","popperState","updateModifier","optionsSupported","onceSupported","eventName","wrappedHandler","__once","onceHandler","componentOrElement","safeFindDOMNode","getRefTarget","onRootClose","_ref$clickTrigger","clickTrigger","preventMouseRootCloseRef","handleMouseCapture","isLeftClickEvent","handleMouse","currentEvent","removeMouseCaptureListener","removeMouseListener","removeKeyupListener","mobileSafariHackListeners","resolveContainerRef","useWaitForDOMRef","onResolved","_useState","resolvedRef","earlyRef","nextRef","toModifierArray","mergeOptionsWithPopperConfig","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","enableEvents","containerPadding","_ref$popperConfig","popperConfig","toModifierMap","Overlay","outerRef","_props$containerPaddi","_props$popperConfig","_useCallbackRef","attachRef","_useCallbackRef2","attachArrowRef","mergedRef","_usePopper","mountOverlay","onHide","rootClose","rootCloseDisabled","rootCloseEvent","arrowProps","_PropTypes$func","matchesImpl","qsa","nativeMatch","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","safeIsNaN","areInputsEqual","newInputs","lastInputs","resultFn","lastResult","calledOnce","newArgs","getWidth","recalc","scrollDiv","hasClass","omit","sources","propsIndex","propsLength","accumulator","isArrLike","NoopWrapper","views","WORK_WEEK","AGENDA","viewNames","isBuiltinView","MILLI","firstVisibleDay","localizer","firstOfMonth","startOfWeek","lastVisibleDay","endOfMonth","visibleDays","isJustDate","dateA","dateB","localePropType","formatter","culture","getSlotDate","dt","minutesFromMidnight","getDstOffset","getTotalMin","getMinutesFromMidnight","daystart","continuesPrior","continuesAfter","sortEvents","_ref$evtA","evtA","aStart","aEnd","aAllDay","allDay","_ref$evtB","evtB","bStart","bEnd","bAllDay","startSort","durA","durB","inEventRange","_ref2$event","_ref2$range","rangeStart","rangeEnd","eStart","startsBeforeEnd","endsAfterStart","isSameDate","date1","date2","startAndEndAreDateOnly","DateLocalizer","propType","segmentOffset","browserTZOffset","mergeWithDefaults","formatOverrides","messages","_format2","defaultMessages","work_week","agenda","noEventsInRange","showMore","EventCell","isAllDay","onSelect","_onDoubleClick","_onKeyPress","onKeyPress","accessors","getters","_this$props$component","Event","EventWrapper","eventWrapper","slotStart","slotEnd","resizable","showAsAllDay","userProps","isSelected","slotWidth","rowBox","getSlotAtX","cellWidth","Popup","topOffset","leftOffset","_this$props$popupOffs","popupOffset","_getOffset","viewBottom","viewRight","handleDragStart","Popup$1","getEventNodeFromPoint","stopAt","closest","nextNode","ELEMENT_NODE","elementFromPoint","isEvent","bounds","getEventCoordinates","Selection","_ref2$global","_ref2$longPressThresh","longPressThreshold","isDetached","globalMouse","_listeners","_handleInitialEvent","_handleMoveEvent","_handleTerminatingEvent","_keyListener","_dropFromOutsideListener","_dragOverFromOutsideListener","_removeTouchMoveWindowListener","_removeKeyDownListener","_removeKeyUpListener","_removeDropFromOutsideListener","_removeDragOverFromOutsideListener","_addInitialEventListener","teardown","_removeInitialEventListener","_removeEndListener","_onEscListener","_removeMoveListener","_selectRect","selecting","objectsCollide","getBoundsForNode","_addLongPressListener","initialEvent","removeTouchMoveListener","removeTouchEndListener","cleanup","removeTouchStartListener","removeMouseDownListener","_getEventCoordinates","_getEventCoordinates2","_getEventCoordinates3","isOverContainer","_normalizeDistance","normalizeDistance","_initialEventData","isTouch","_getEventCoordinates4","inRoot","click","isClick","_handleClickEvent","_getEventCoordinates5","_lastClickData","_this$_initialEventDa","_getEventCoordinates6","ctrl","_this$_initialEventDa2","nodeA","nodeB","tolerance","_getBoundsForNode","aTop","aLeft","_getBoundsForNode$rig","aRight","_getBoundsForNode$bot","aBottom","_getBoundsForNode2","bTop","bLeft","_getBoundsForNode2$ri","bRight","_getBoundsForNode2$bo","pageOffset","BackgroundCells","selectable","_selectable","_teardownSelectable","getNow","Wrapper","dateCellWrapper","startIdx","endIdx","_getters$dayProp","dayProp","_selector","selectorClicksHandler","point","actionType","_this2$props","pointInBox","currentCell","_selectSlot","_initial","_this2$props2","onSelectStart","nodeBox","_dateCellSelection","lastSlotIdx","currentSlot","isCurrentRow","isStartRow","isAboveStart","isBelowStart","dateCellSelection","onSelectEnd","onSelectSlot","resourceId","EventRowMixin","slotMetrics","per","EventRow","lastEnd","row","span","endOfRange","dateRange","_ref$unit","eventLevels","rowSegments","seg","levels","extra","segsOverlap","otherSegs","otherSeg","sortEvents$1","eventA","eventB","isSegmentInSlot","eventsInSlot","EventEndingRow","canRenderSlotEvent","renderShowMore","onShowMore","ScrollableWeekWrapper","getSlotMetrics","_endOfRange","eventSegments","_eventLevels","metrics","getDateForSlot","slotNumber","getSlotForDate","getEventsForSlot","isSegmentInSlot$1","DateContentRow","handleSelectSlot","handleShowMore","cell","createHeadingRef","headingRow","createEventRef","eventRow","renderHeadingCell","_this$props3","renderHeader","renderDummy","_this$props4","showAllEvents","getRowLimit","eventHeight","headingHeight","eventSpace","_this$props5","renderForMeasure","ScrollableWeekComponent","WeekWrapper","weekWrapper","eventRowProps","segs","Header","DateHeader","drilldownView","onDrillDown","eventsForWeek","evts","MonthView","renderWeek","weekIdx","needLimitMeasure","rowLimit","weeksEvents","slotRowRef","readerDateHeading","handleSelectEvent","handleDoubleClickEvent","handleKeyPressEvent","getDrilldownView","isOffRange","isCurrent","DateHeaderComponent","dateHeader","handleHeadingClick","slotInfo","_pendingSelection","_selectTimer","selectDates","clearSelection","onSelectEvent","onDoubleClickEvent","onKeyPressEvent","popup","doShowMoreDrillDown","overlay","overlayDisplay","_bgRows","propsDate","running","measureRowLimit","_resizeListener","_weekCount","renderHeaders","renderOverlay","_this$props6","HeaderComponent","_this$props7","_ref6","getSlotMetrics$1","timeslots","totalMin","numGroups","numSlots","groups","grp","slotIdx","minFromStart","lastSlotMinFromStart","positionFromDate","dateIsInGroup","groupIndex","nextGroup","nextSlot","closestSlotToPosition","closestSlotFromPoint","boundaryRect","closestSlotFromDate","diffMins","startsBeforeDay","startsAfterDay","startsBefore","startsAfter","getRange","ignoreMin","ignoreMax","rangeStartMin","rangeEndMin","startDate","endDate","getCurrentTimePosition","_slotMetrics$getRange","startMs","endMs","leaves","availableWidth","_width","noOverlap","_this$row","xOffset","onSameRow","minimumStartDifference","getStyledEvents","eventsInRenderOrder","sortedByTime","sorted","_event","sortByRender","containerEvents","getMaxIdxDFS","maxIdx","friends","newIdx","DefaultAlgorithms","styledEvents","se1","y1","y2","se2","y3","y4","_i2","bitmap","_j","_j2","_i3","allFriends","_j3","_i4","_maxIdx","_j4","getStyledEvents$1","dayLayoutAlgorithm","algorithm","TimeSlotGroup","_Component","renderSlot","resource","_this$props$component2","timeSlotWrapper","groupProps","slotGroupProp","slotProps","slotProp","stringifyPercent","TimeGridEvent","_extends3","isBackgroundEvent","_props$components","eventStyle","DayColumnWrapper","_excluded$2","DayColumn","timeIndicatorPosition","intervalTriggered","renderEvents","_select","_doubleClick","_keyPress","maybeSelect","onSelecting","selectionState","_initialSlot","initialSlot","selectRange","_selectionState","isNow","setTimeIndicatorPositionUpdateInterval","clearTimeIndicatorInterval","getNowChanged","positionTimeIndicator","_timeIndicatorTimeout","_this$props5$getters","_this$props5$componen","EventContainer","eventContainerWrapper","_dayProp","DayColumnWrapperComponent","dayColumnWrapper","backgroundEvents","adjustForDST","dragThroughEvents","TimeGutter","_localizer","_adjustForDST","_adjustForDST2","ResourceHeader","TimeGridHeader","handleHeaderClick","renderRow","eventsToDisplay","renderHeaderCells","_this$props2$componen","resources","scrollRef","_this$props3$componen","TimeGutterHeader","timeGutterHeader","_this$props3$componen2","resourceHeader","ResourceHeaderComponent","groupedEvents","groupEvents","resourceTitle","NONE","TimeGrid","rafHandle","gutterRef","gutter","handleSelectAlldayEvent","handleSelectAllDaySlot","_updatingOverflow","contentRef","memoizedResources","eventsByResource","resourceEvents","Resources","gutterWidth","_scrollRatio","calculateScroll","measureGutter","applyScroll","measureGutterAnimationFrameRequest","scrollToTime","groupedBackgroundEvents","daysEvents","daysBackgroundEvents","showMultiDayTimes","allDayEvents","rangeEvents","rangeBackgroundEvents","eEnd","diffMillis","totalMillis","_excluded$3","Day","_this$props$min","_this$props$max","_this$props$scrollToT","eventOffset","_excluded$4","Week","_Week$range","_excluded$5","workWeekRange","_VIEWS","WorkWeek","Agenda","headerRef","dateColRef","timeColRef","tbodyRef","_adjustHeader","timeRangeLabel","labelClass","TimeComponent","firstRow","_widths","widths","dayKey","AgendaDate","dateLabel","rowSpan","renderDay","_workWeekRange","_ref2$length","_ref3$length","_ref4$length","VIEWS","_excluded$6","moveDate","View","onNavigate","onView","viewNamesGroup","wrapAccessor","accessor$1","_excluded$7","_excluded2$1","viewNames$1","_views","isValidView","Calendar","getViews","getView","handleRangeChange","viewComponent","onRangeChange","handleNavigate","newDate","ViewComponent","handleViewChange","handleDrillDown","getContext","startAccessor","endAccessor","allDayAccessor","tooltipAccessor","titleAccessor","resourceAccessor","resourceIdAccessor","resourceTitleAccessor","eventPropGetter","backgroundEventPropGetter","slotPropGetter","slotGroupPropGetter","dayPropGetter","_ref2$messages","messages$1","_ref2$components","_ref2$formats","msgs","backgroundEventProp","backgroundEventWrapper","_this$props4$backgrou","elementProps","_this$state$context","CalToolbar","Calendar$1","uncontrollable","controlledValues","methods","canAcceptRef","controlledProps","PROPS_TO_OMIT","UncontrolledComponent","_notifying","unmounted","innerRef","_this$inner","WrappedComponent","lineNumber","ControlledComponent","deferControlTo","newComponent","additions","nextMethods","timeRangeFormat","dayFormat","weekdayFormat","selectRangeFormat","eventTimeRangeFormat","eventTimeRangeStartFormat","eventTimeRangeEndFormat","timeGutterFormat","monthHeaderFormat","dayHeaderFormat","dayRangeHeaderFormat","agendaHeaderFormat","agendaDateFormat","agendaTimeFormat","agendaTimeRangeFormat","fixUnit","datePart","_st$_z$name","_st$_z","st","tzName","defineComparators","_defineComparators","dtA","dtB","_defineComparators5","adder","_defineComparators3","_defineComparators2","_defineComparators4","tm","mDay","mMin","mMax","dayStart","getDayStartDstOffset","mStart","mFirst","mEnd","mLast","_ref6$evtA","_ref6$evtB","_ref7","_ref7$event","_ref7$range","startOfDay","rStart","rEnd","dt2","dtOffset","viewState","setViewState","today5","mx","mDate","ArrowBackIcon","setYear","ArrowForwardIcon","_interopDefault","require$$0","MaskedTextFieldWrapper","timeoutref","textfieldvalue","hasClear","InputMask","Clear","getCardUtilityClass","CardRoot","Card","raised","stripDiacritics","createFilterOptions","ignoreAccents","matchFrom","inputValue","getOptionLabel","filteredOptions","option","candidate","comp","defaultFilterOptions","useAutocomplete","autoHighlight","autoSelect","blurOnSelect","disabledProp","clearOnBlur","freeSolo","clearOnEscape","disableClearable","disableCloseOnSelect","filterOptions","filterSelectedOptions","getOptionDisabled","getOptionLabelProp","_option$label","isOptionEqualToValue","groupBy","handleHomeEndKeys","includeInputInList","inputValueProp","onHighlightChange","onInputChange","openOnFocus","selectOnFocus","optionLabel","ignoreFocus","firstFocus","listboxRef","focusedTag","setFocusedTag","defaultHighlighted","highlightedIndexRef","setInputValueState","resetInputValue","newInputValue","prevValue","valueChange","inputPristine","setInputPristine","inputValueIsSelectedValue","popupOpen","value2","listboxAvailable","focusTag","tagToFocus","setHighlightedIndex","listboxNode","scrollBottom","elementBottom","changeHighlightedIndex","nextIndex","validOptionIndex","maxIndex","newIndex","getNextIndex","syncHighlightedIndex","valueItem","currentOption","optionItem","handleListboxRef","handleValue","details","selectNewValue","reasonProp","origin","handleFocusTag","validTagIndex","handleClear","handleInputChange","handleOptionMouseOver","handleOptionTouchStart","handleOptionClick","handleTagDelete","handlePopupIndicator","handleClick","handleInputMouseDown","dirty","groupedOptions","getInputLabelProps","getInputProps","autoCapitalize","spellCheck","getClearProps","getPopupIndicatorProps","getTagProps","onDelete","getListboxProps","getOptionProps","getListSubheaderUtilityClass","ListSubheaderRoot","disableSticky","ListSubheader","getChipUtilityClass","ChipRoot","clickable","avatar","deleteIcon","deletable","deleteIconColor","ChipLabel","isDeleteKeyboardEvent","keyboardEvent","Chip","avatarProp","clickableProp","deleteIconProp","iconProp","chipRef","handleDeleteIconClick","moreProps","customClasses","deleteIconSmall","Cancel","getAutocompleteUtilityClass","_ClearIcon","_ArrowDropDownIcon","AutocompleteRoot","hasClearIcon","hasPopupIcon","inputFocused","inputRoot","AutocompleteEndAdornment","AutocompleteClearIndicator","clearIndicator","AutocompletePopupIndicator","popupIndicator","popupIndicatorOpen","AutocompletePopper","popperDisablePortal","AutocompletePaper","AutocompleteLoading","AutocompleteNoOptions","noOptions","AutocompleteListbox","listbox","AutocompleteGroupLabel","groupLabel","AutocompleteGroupUl","groupUl","Autocomplete","_componentsProps$clea","_componentsProps$pape","ChipProps","clearIcon","clearText","forcePopupIcon","getLimitTagsText","limitTags","ListboxComponent","ListboxProps","loadingText","noOptionsText","openText","PaperComponent","popupIcon","renderGroup","renderGroupProp","renderInput","renderOption","renderOptionProp","renderTags","getCustomizedTagProps","props2","renderListOption","optionProps","option2","index2","LayoutPaper","paperStyle","hideoverflowy","paperStyleMobile","OnlineHours","deviceHours","isMedium","site","filteredData","site_name","totalTimeMinutes","minutesDevice","hoursDevice","WeeklyHours","minsSinceStart","momentLocalizer","EventComponentday","EventComponentweek","AdminCalendar","devgroup","setEvents","calDate","setCalDate","providerData","userGetData","userProviderData","calView","setCalView","macAddressInput","setMacAddressInput","macAddress","setMacAddress","userChoice","setUserChoice","setCurrentEvent","handleTime","profilelistSocialData","online_data","flat","mac_array","start_time","end_time","parseEvents","deviceSet","act","OfflineHours","newVal","defaultDate","CalendarToolbar","Clock","textColor","showTz","updateTime","inter","_jsxs","badgecolor","StatusBadges","badgeWidth","badgeHeight","getLinearProgressUtilityClass","_t5","_t6","indeterminate1Keyframe","indeterminate2Keyframe","bufferKeyframe","getColorShade","LinearProgressRoot","LinearProgressDashed","dashed","LinearProgressBar1","bar","bar1Indeterminate","bar1Determinate","bar1Buffer","LinearProgressBar2","bar2Indeterminate","bar2Buffer","LinearProgress","valueBuffer","bar1","bar2","inlineStyles","LinearLoading","setProgress","timerRef","GridLarge","avatarWidth","avatarHeight","_Fragment","hasUserTitle","subheaderColor","hasLocation","layer_name","GridSmall","areObjectsEqualShallow","objectA","objectB","objectKey","sortAndMapPluginToOptions","plugins","plugin","Alignment","viewSize","predefined","measure","mathSign","deltaAbs","valueB","valueA","arrayGroup","arrayKeys","arrayLast","arrayLastIndex","Limit","reachedMin","reachedMax","reachedAny","constrain","removeOffset","Counter","loop","loopEnd","withinLimit","EventStore","removeAll","Vector1D","vector","readNumber","DragHandler","dragFree","dragTracker","scrollBody","scrollTarget","skipSnaps","crossAxis","cross","focusNodes","dragStartPoint","activationEvents","interactionEvents","snapForceBoost","mouse","freeForceBoost","baseSpeed","startScroll","startCross","pointerIsDown","preventScroll","preventClick","isMouse","isMoving","clearPreventClick","isNotFocusNode","isFocusNode","pointerDown","useBaseMass","useSpeed","addInteractionEvents","readPoint","lastScroll","lastCross","diffScroll","diffCross","pointerMove","targetChanged","byDistance","rawForce","pointerUp","force","isEdge","baseForce","byIndex","allowedForce","forceFactor","factorAbs","isVigorous","isBelowThreshold","speed","mass","useMass","addActivationEvents","clickAllowed","removeAllEvents","ScrollBody","baseMass","roundToTwoDecimals","decimalPoints","roundToDecimals","acceleration","attraction","attractionDirection","seek","magnitude","iStart","iStop","oStart","oStop","settle","hasSettled","useBaseSpeed","ScrollBounds","diffToEdge","diffToTarget","friction","toggleActive","ScrollContain","contentSize","snaps","snapsAligned","containScroll","scrollBounds","snapsBounded","snapsContained","startSnap","endSnap","lastIndexOf","findDuplicates","measureContained","ScrollLooper","pxToPercent","vectors","shouldLoop","loopDistance","ScrollProgress","ScrollSnap","alignment","slideRects","slidesToScroll","startEdge","endEdge","snap","groupedSnaps","alignments","measureAligned","ScrollTarget","scrollSnaps","targetVector","minDistance","d1","d2","shortcut","t1","t2","t3","ascDiffsToSnaps","scrollSnap","diffToSnap","findTargetSnap","targetSnapDistance","reachedBound","SlideLooper","slideSizesWithGaps","slidesInView","scrollLocation","slides","ascItems","descItems","loopPoints","findLoopPoints","slidesInGap","startPoints","endPoints","removeSlideSizes","indexes","isStartEdge","slideBounds","findSlideBounds","initial","altered","getTarget","canLoop","otherIndexes","loopPoint","Translate","Engine","scrollAxis","contentDirection","inViewThreshold","slide","Direction","measureSize","Axis","viewInPx","totalPercent","PxToPercent","sizesInPx","slideSizes","isLast","endGap","SlideSizes","measureLimit","ScrollLimit","indexPrevious","slideIndexes","animationFrame","ifAnimating","proceed","Animation","engine","dragHandler","settled","scrollLooper","slideLooper","distanceDiff","indexDiff","targetIndex","ScrollTo","cachedThreshold","cachedOffsets","cachedBounds","slideOffsets","slideThreshold","limitedLocation","slideBound","SlidesInView","startEvent","isTouchEvent","TouchEvent","readTime","evtAxis","coord","expired","diffDrag","diffTime","DragTracker","eventStore","scrollProgress","EmblaCarousel","userOptions","userPlugins","optionsPseudo","getListeners","debouncedResize","rootSize","reActivate","reInit","optionsBase","globalOptions","setupElements","providedContainer","providedSlides","pseudoString","OptionsPseudo","activate","withOptions","withPlugins","deActivate","selectedScrollSnap","newOptions","jump","canScrollNext","canScrollPrev","internalEngine","previousScrollSnap","scrollNext","scrollPrev","scrollSnapList","slideNodes","slidesNotInView","inView","useEmblaCarousel","embla","setEmbla","setViewport","storedOptions","storedPlugins","activeOptions","activePlugins","pluginsA","pluginsB","optionsA","optionsB","optionA","arePluginsEqual","newEmbla_1","playOnInit","stopOnInteraction","stopOnMouseEnter","stopOnLastSnap","Autoplay","userNode","carousel","interaction","play","emblaRoot","persisted","gridItem","gridItemGreen","gridItemYellow","gridItemRed","profilepic","autoplay","SocialsDashboard","emblaRef","emblaApi","slicedArray","numberOfGroups","perGroup","createArrays","numberOfSlides","gridSize","avatarSize","LayoutTemplate","socialsData","gridFlexNumber","badgeSize","titleFontSize","icons","BatteryCharging20Icon","BatteryCharging30Icon","BatteryCharging60Icon","BatteryCharging90Icon","currentIndex","setCurrentIndex","intervalId","socials","company_dashboard","dashboard","userCountTotal","timeInter","setIsActive","onlineTime","endTime","shouldRender","showWeekDay","hasSecondLogo","companylogo","companylogoSize","companylogo2","companylogo2Size","gridItem1","titleColor","gridClock","clockColor","gridContent","BatteryCharging20","BatteryCharging30","BatteryCharging60","BatteryCharging90","gridFooter","poweredBlack","gridBottombar","layoutGrid","gridLogo","gridPicture","gridPoweredBy","getInputAdornmentUtilityClass","InputAdornmentRoot","disablePointerEvents","InputAdornment","getSwitchBaseUtilityClass","SwitchBaseRoot","SwitchBaseInput","SwitchBase","checkedProp","checkedIcon","setCheckedState","hasLabelFor","newChecked","getCheckboxUtilityClass","CheckboxRoot","indeterminate","defaultCheckedIcon","CheckBox","defaultIcon","CheckBoxOutlineBlank","defaultIndeterminateIcon","IndeterminateCheckBox","Checkbox","_icon$props$fontSize","_indeterminateIcon$pr","indeterminateIcon","indeterminateIconProp","getFormControlLabelUtilityClasses","FormControlLabelRoot","labelPlacement","FormControlLabel","control","controlProps","getSwitchUtilityClass","SwitchRoot","SwitchSwitchBase","switchBase","SwitchTrack","SwitchThumb","Switch","getFormGroupUtilityClass","FormGroupRoot","FormGroup","calculateChange","initialA","containerWidth","containerHeight","checkboardCache","serverCanvas","checkboard","canvas","fillStyle","fillRect","toDataURL","Checkboard","renderers","defineProperties","Alpha","unbindEventListeners","radius","gradient","shadow","pointer","overwrite","VALID_KEY_CODES","idCounter","EditableInput","blurValue","setUpdatedValue","getNumberValue","getArrowOffset","updatedValue","handleDrag","dragLabel","dragMax","getValueObjectWithLabel","inputId","arrowOffset","onChangeValue","hideLabel","_h","Hue","_props$direction","srcIndex","mergeFunc","isTyped","baseMerge","assigner","Raised","zDepth","_ref$styles","passedStyles","Saturation","_container$getBoundin","saturation","bright","renderWindow","getContainerRenderWindow","simpleCheckForValidColor","passed","letter","toState","oldHue","isValidHex","getContrastingColor","isvalidColorString","stringWithoutDegree","Picker","ColorPicker","onChangeComplete","handleSwatchHover","onSwatchHover","optionalEvents","Focus","_ref$onClick","onHover","_ref$title","_ref$focusStyle","focusStyle","transparent","swatch","picker","AlphaPicker","_ref$className","swatches","Block","triangle","hexCode","card","deepPurple","lightBlue","lightGreen","amber","deepOrange","blueGrey","CircleSwatch","circleSize","circleSpacing","Swatch","ChromeFields","toggleViews","showHighlight","hideHighlight","fields","iconHighlight","svg","UnfoldMoreHorizontalIcon","Chrome","disableAlpha","controls","toggles","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Compact","compact","hoverSwatch","Github","triangleShadow","HuePicker","HuePointer","material","Hex","third","fieldSymbols","triangleBorder","Extend","leftInside","rightInside","currentColor","new","Photoshop","_props$styles","_props$className","previews","PhotoshopPointer","onAccept","onCancel","PhotoshopFields","single","double","SketchPresetColors","swatchWrap","colorObjOrString","Sketch","presetColors","sliders","activeColor","epsilon","CheckIcon","Swatches","Twitter","hexcode","GooglePointerCircle","GooglePointer","_values","_values2","hsvValue","input2","label2","rgbValue","hslValue","Google","defaultFormats","normalDateWithWeekday","normalDate","shortDate","monthAndDate","monthShort","monthAndYear","weekdayShort","hours12h","hours24h","fullTime","fullTime12h","fullTime24h","fullDate","fullDateWithWeekday","fullDateTime","fullDateTime12h","fullDateTime24h","keyboardDate","keyboardDateTime","keyboardDateTime12h","keyboardDateTime24h","MomentUtils","lib","is12HourCycleInCurrentLocale","getFormatHelperText","firstCharacter","getCurrentLocaleCode","parseISO","isoString","toISO","toJsDate","isNull","getDiff","comparing","isAfterDay","isBeforeDay","isBeforeYear","isAfterYear","endOfDay","formatKey","formatByString","formatString","clonedDate","numberToFormat","addSeconds","addMinutes","addHours","addDays","addWeeks","setMinutes","setSeconds","isSameDay","isSameMonth","isSameYear","isSameHour","getMeridiemText","ampm","startOfMonth","endOfWeek","getNextMonth","getPreviousMonth","getMonthArray","monthArray","prevMonth","getYear","mergeDateAndTime","getWeekdays","getWeekArray","nestedWeeks","weekNumber","getYearRange","isWithinRange","MuiPickersAdapterContext","dateAdapter","Utils","dateFormats","dateLibInstance","utils","defaultDates","minDate","maxDate","getTextFieldAriaText","rawValue","getDisplayDate","inputFormat","pick12hOr24hFormat","userFormat","localized","useLocalizationContext","useUtils","useNow","useTimePickerDefaultizedProps","openTo","willUseAmPm","acceptRegex","disableMaskedInput","getOpenDialogAriaText","OpenPickerIcon","PickersToolbarTextRoot","PickersToolbarText","PickersToolbarButtonRoot","PickersToolbarButton","typographyClassName","_ClockIcon","_CalendarIcon","_PenIcon","PickersToolbarRoot","isLandscape","PickersToolbarGrid","getViewTypeIcon","viewType","defaultGetKeyboardInputSwitchingButtonText","isKeyboardInputOpen","getMobileKeyboardInputViewButtonText","isMobileKeyboardViewOpen","landscapeDirection","penIconClassName","toggleMobileKeyboardView","toolbarTitle","dateTitleContainer","Pen","itemOrItems","onSpaceOrEnter","innerFn","pipe","fns","prevFn","nextFn","createDelegatedEventHandler","onEvent","convertValueToMeridiem","getSecondsInDay","createIsAfterIgnoreDatePart","disableIgnoringDatePartForTimeValidation","dateLeft","dateRight","validateTime","minTime","maxTime","shouldDisableTime","isAfterComparingFn","useMeridiemMode","meridiemMode","getMeridiem","handleMeridiemChange","timeWithMeridiem","newHoursAmount","convertToMeridiem","getTimePickerToolbarUtilityClass","timePickerToolbarClasses","TimePickerToolbarRoot","penIconLandscape","TimePickerToolbarSeparator","TimePickerToolbarHourMinuteLabel","TimePickerToolbarAmPmSelection","ampmLabel","ampmInClock","openView","setOpenView","showAmPmControl","hourMinuteLabel","ampmSelection","formatHours","WrapperVariantContext","PickersPopperRoot","PickersPopperPaper","TrapFocusProps","lastFocusedElementRef","clickAwayRef","onPaperClick","onPaperTouchStart","armClickAwayListener","handleSynthetic","useClickAwayListener","onPaperClickProp","onPaperTouchStartProp","otherPaperProps","DateInputProps","KeyboardDateInputComponent","onDismiss","ownInputRef","useViews","onViewChange","_views2","previousView","nextView","changeView","newView","openNext","handleChangeAndOpenNext","currentViewSelectionState","isSelectionFinishedOnCurrentView","globalSelectionState","CLOCK_WIDTH","CLOCK_HOUR_WIDTH","clockCenter","getAngleValue","atan","atan2","deg","ClockPointerRoot","toAnimateTransform","ClockPointerThumb","hasSelected","ClockPointer","super","previousType","isInner","angle","getAngleStyle","_ClockPin","_Typography","_Typography2","ClockRoot","ClockClock","ClockSquareMask","ClockPin","ClockAmButton","ClockPmButton","getClockLabelText","isTimeDisabled","minutesStep","selectedId","wrapperVariant","isSelectedTimeDisabled","isPointerInner","handleValueChange","isFinish","newSelectedValue","angleStep","keyboardControlStep","ClockNumberRoot","cos","sin","getHourNumbers","getClockNumberText","currentHours","hourNumbers","endHour","getMinutesNumbers","numberValue","PickersArrowSwitcherRoot","PickersArrowSwitcherSpacer","PickersArrowSwitcherButton","PickersArrowSwitcher","isLeftDisabled","isLeftHidden","isRightDisabled","isRightHidden","leftArrowButtonText","onLeftClick","onRightClick","rightArrowButtonText","leftArrowButtonProps","leftArrowButton","LeftArrowIcon","ArrowLeft","rightArrowButtonProps","rightArrowButton","RightArrowIcon","ArrowRight","LeftArrowButton","RightArrowButton","getClockPickerUtilityClass","ClockPickerArrowSwitcher","arrowSwitcher","defaultGetClockLabelText","adapter","defaultGetMinutesClockNumberText","defaultGetHoursClockNumberText","defaultGetSecondsClockNumberText","getHoursClockNumberText","getMinutesClockNumberText","getSecondsClockNumberText","nextViewAvailable","openNextView","openPreviousView","previousViewAvailable","showViewSwitcher","midnight","dateOrMidnight","validateTimeValue","getRequestedTimePoint","hoursWithMeridiem","when","dateWithHours","dateWithMinutes","viewProps","handleHoursChange","valueWithMeridiem","minutesValue","handleMinutesChange","secondsValue","handleSecondsChange","PickersMonthRoot","handleSelection","getMonthPickerUtilityClass","MonthPickerRoot","MonthPicker","disableFuture","disablePast","onMonthChange","currentMonth","shouldDisableMonth","firstEnabledMonth","lastEnabledMonth","isBeforeFirstEnabled","isAfterLastEnabled","onMonthSelect","monthNumber","monthText","findClosestEnabledDate","shouldDisableDate","forward","backward","parsePickerInputValue","parsedValue","useCalendarState","defaultCalendarMonth","disableSwitchToMonthOnDayFocus","reduceAnimations","reducerFn","slideDirection","newMonth","isMonthSwitchingAnimating","focusedDay","needMonthSwitch","createCalendarStateReducer","calendarState","handleChangeMonth","changeMonth","newDateRequested","isDateDisabled","onMonthSwitchingAnimationEnd","changeFocusedDay","newFocusedDate","PickersFadeTransitionGroupRoot","transKey","getPickersDayUtilityClass","pickersDayClasses","disableMargin","outsideCurrentMonth","showDaysOutsideCurrentMonth","disableHighlightToday","dayWithMargin","dayOutsideMonth","hiddenDaySpacingFiller","PickersDayRoot","PickersDayFiller","PickersDay","forwardedRef","allowSameDateSelection","isAnimating","onDayFocus","onDaySelect","isToday","areDayPropsEqual","appliedClasses","_this$resolveArgument","resolveArguments","_this$resolveArgument2","_this$resolveArgument3","_this$appliedClasses$","PickersSlideTransitionRoot","slideTransition","slideEnterActive","slideExit","transitionClasses","enterActive","exitActive","PickersCalendarDayHeader","PickersCalendarWeekDayLabel","PickersCalendarLoadingContainer","PickersCalendarSlideTransition","PickersCalendarWeekContainer","PickersCalendarWeek","onFocusedDayChange","renderLoading","handleDaySelect","finalDate","currentMonthNumber","selectedDates","selectedDateItem","transitionKey","slideNodeRef","pickersDayProps","selectedDate","PickersCalendarHeaderRoot","PickersCalendarHeaderLabel","PickersCalendarHeaderLabelItem","PickersCalendarHeaderSwitchViewButton","PickersCalendarHeaderSwitchView","getSwitchingViewAriaText","getViewSwitchingButtonText","currentView","switchViewButtonProps","switchViewButton","isNextMonthDisabled","useNextMonthDisabled","isPreviousMonthDisabled","usePreviousMonthDisabled","nextIndexToOpen","SwitchViewButton","SwitchViewIcon","getPickersYearUtilityClass","pickersYearClasses","PickersYearRoot","PickersYearButton","PickersYear","refHandle","yearButton","getYearPickerUtilityClass","YearPickerRoot","YearPicker","onYearChange","shouldDisableYear","currentYear","selectedYearRef","focusedYear","setFocusedYear","handleYearSelection","submitDate","focusYear","yearsInRow","yearNumber","getCalendarPickerUtilityClass","CalendarPickerRoot","CalendarPickerViewTransitionContainer","viewTransitionContainer","defaultReduceAnimations","CalendarPicker","maxDateProp","minDateProp","closestEnabledDate","monthPickerProps","useRifm","valueRef","isDeleleteButtonDownRef","eventValue","isSizeIncreaseOperation","isDeleleteButtonDown","isNoOperation","deleteWasNoOp","acceptedCharIndexAfterDelete","accept","charsToSkipAfterDelete","clean","valueBeforeSelectionStart","cleanPos","newPos","newCleanPos","formattedValue","replacedValue","useMaskedInput","ignoreInvalidInputs","rifmFormatter","TextFieldProps","validationError","setIsFocused","formatHelperText","shouldUseMaskedInput","inferredFormatPatternWith1Digits","isMaskValid","checkMaskIsValidForCurrentFormat","acceptRegexp","nextMaskChar","acceptedChar","formattedChar","maskedDateFormatter","currentInputValue","innerInputValue","setInnerInputValue","previousInputValueRef","notTyping","valueChanged","finalString","rifmProps","KeyboardDateInput","disableOpenPicker","InputAdornmentProps","openPicker","OpenPickerButtonProps","textFieldProps","adornmentPosition","getOrientation","screen","useIsLandscape","customOrientation","setOrientation","MobileKeyboardInputView","PickerRoot","MobileKeyboardTextFieldProps","isDatePickerView","onDateChange","showToolbar","ToolbarComponent","toolbarFormat","toolbarPlaceholder","toShowToolbar","handleDateChange","isSameDateOrTimeError","useValidation","isSameError","previousValidationErrorRef","useTimeValidation","useOpenState","isControllingOpenProp","setIsOpenState","isOpen","setIsOpen","newIsOpen","usePickerState","valueManager","initDraftableDate","committed","draft","parsedDateValue","parseInput","draftState","areValuesEqual","setMobileKeyboardViewOpen","acceptDate","acceptedDate","needClosePicker","wrapperProps","onClear","emptyValue","onSetToday","pickerProps","pickerState","MuiPickerState","pickerDraft","getDialogActionsUtilityClass","DialogActionsRoot","disableSpacing","DialogActions","getDialogContentUtilityClass","getDialogTitleUtilityClass","DialogContentRoot","dividers","DialogContent","getDialogUtilityClass","DialogBackdrop","overrides","DialogRoot","DialogContainer","DialogPaper","paperFullWidth","fullScreen","paperFullScreen","Dialog","ariaLabelledbyProp","backdropClick","dialogContextValue","titleId","PickersModalDialogRoot","PickersModalDialogContent","PickersModalDialogActions","clearable","showTodayButton","cancelText","DialogProps","okText","todayText","PureDateInputComponent","PureDateInput","PureDateInputProps","desktopModeMediaQuery","DialogTitleRoot","DialogTitle","getDialogContentTextUtilityClass","DialogContentTextRoot","DialogContentText","ConfirmationDialog","handleDevice","address","checkValue","noAction","stringTitle","themeCheckbox","disableColor","contentDashboard","copyToast","dashboardToast","AdminDashboardMaker","layout","setOpenToast","socialsCompany","setChecked","setLayout","setDashboard","openTrack","setOpenTrack","valueTrack","setValueTrack","urlDialog","setUrlDialog","setUrl","urlGroup","setUrlGroup","groupChoices","setGroupChoices","selectedGroup","setSelectedGroup","userList","setUserList","setOnlineData","alwaysActive","setAlwaysActive","socialgroupselectData","setStartTime","setEndTime","displayColorPicker","setDisplayColorPicker","displayColorPicker2","setDisplayColorPicker2","displayColorPicker3","setDisplayColorPicker3","displayColorPicker4","setDisplayColorPicker4","displayColorPicker5","setDisplayColorPicker5","handleModalClose","escFunction","handleLayoutSave","dashboard_type","handleLayoutUrl","resGroup","copyToClipboard","clipboard","writeText","copyToClipboardGroup","gridContainer","gridItemLayoutUrl","textFieldUrl","copyIcon","gridItemLayoutContent","fullscreenIcon","gridItemLayoutSettings","settingsSubheader","settingsIcon","inputTitle","inputTitleColor","bgColor","ContentCopyIcon","FullscreenIcon","FullscreenExitIcon","AddBoxIcon","AddPhotoAlternateIcon","picture1","picture1Size","PaletteIcon","BlockPicker","AccessTimeIcon","LocalizationProvider","AdapterMoment","timezones","TimePicker","weekDays","getAvatarGroupUtilityClass","AvatarGroupRoot","AvatarGroupAvatar","AvatarGroup","_componentsProps$addi","_componentsProps$addi2","clampedMax","totalAvatars","maxAvatars","extraAvatars","additionalAvatar","DayEnabledCheckbox","setList","getDataGridUtilityClass","GridRootStyles","autoHeight","editBooleanCell","cellContent","cellCheckbox","checkboxInput","columnHeader","columnHeaderCheckbox","columnHeaderDraggableContainer","columnHeaderTitleContainer","columnSeparator","filterIcon","iconSeparator","menuIcon","menuIconButton","menuOpen","menuList","sortIcon","withBorder","treeDataGroupingCell","treeDataGroupingCellToggle","detailPanelToggleCell","outlineWidth","outlineOffset","breakInside","gridGap","NOT_FOUND","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","resultEqualityCheck","createCacheKeyComparator","put","getEntries","createSingletonCache","cacheIndex","createLruCache","matchingEntry","clearCache","getDependencies","dependencyTypes","createSelectorCreator","memoizeOptionsFromArgs","createSelector","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption","_directlyPassedOption2","finalMemoizeOptions","memoizedResultFunc","recomputations","resetRecomputations","buildWarning","gravity","alreadyWarned","cleanMessage","wrapWithWarningOnCall","selectorArgs","stateOrApiRef","instanceId","isApiRef","cacheKey","newSelector","gridColumnsSelector","gridColumnFieldsSelector","columnsState","gridColumnLookupSelector","lookup","gridColumnDefinitionsSelector","allFields","gridColumnVisibilityModelSelector","columnVisibilityModel","gridVisibleColumnDefinitionsSelector","gridColumnPositionsSelector","visibleColumns","currentPosition","computedWidth","gridColumnsTotalWidthSelector","colCount","gridFilterableColumnDefinitionsSelector","filterable","gridFilterableColumnLookupSelector","gridColumnsMetaSelector","totalWidth","useGridSelector","apiRef","isOutputSelector","GridApiContext","useGridApiContext","GridRootPropsContext","useGridRootProps","gridRowsStateSelector","gridRowCountSelector","totalRowCount","gridTopLevelRowCountSelector","totalTopLevelRowCount","gridRowsLookupSelector","idRowsLookup","gridRowTreeSelector","tree","gridRowGroupingNameSelector","groupingName","gridRowTreeDepthSelector","treeDepth","gridRowIdsSelector","_rootProps$classes","rootContainerRef","rootElementRef","disableMultipleSelection","useGridLogger","logger","newLogger","getLogger","GridMainContainerRoot","GridMainContainer","ErrorBoundary","hasError","errorInfo","api","showError","GridErrorHandler","errorProps","_rootProps$components","ErrorOverlay","errorOverlay","GridHeaderPlaceholder","GridEvents","createDetectElementResize","hostWindow","resetTriggers","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollListener","__resizeRAF__","__resizeLast__","checkTriggers","__resizeListeners__","keyframeprefix","animationstartevent","domPrefixes","startEvents","elm","animationKeyframes","animationStyle","addResizeListener","elementStyle","styleSheet","createStyles","__animationListener__","removeResizeListener","GridAutoSizer","defaultHeight","defaultWidth","disableHeight","disableWidth","newHeight","newWidth","_parentElement$curren","detectElementResize","outerStyle","childParams","gridSortingStateSelector","sorting","gridSortedRowIdsSelector","sortingState","sortedRows","gridSortedRowEntriesSelector","sortedIds","gridSortModelSelector","sortModel","gridSortColumnLookupSelector","sortItem","sortDirection","gridFilterStateSelector","gridFilterModelSelector","filterState","filterModel","gridVisibleRowsLookupSelector","visibleRowsLookup","gridFilteredRowsLookupSelector","filteredRowsLookup","gridVisibleSortedRowEntriesSelector","filteredDescendantCountLookup","gridVisibleSortedRowIdsSelector","visibleSortedRowEntries","gridFilteredSortedRowEntriesSelector","gridFilteredSortedRowIdsSelector","filteredSortedRowEntries","gridVisibleSortedTopLevelRowEntriesSelector","visibleSortedRows","rowTree","rowTreeDepth","_rowTree$row$id","gridVisibleRowCountSelector","gridVisibleTopLevelRowCountSelector","visibleSortedTopLevelRows","gridFilterActiveItemsSelector","columnLookup","_filterModel$items","_column$filterOperato","_item$value","columnField","filterOperators","filterOperator","operatorValue","gridFilterActiveItemsLookupSelector","activeFilters","filterItem","gridDensitySelector","density","gridDensityValueSelector","gridDensityRowHeightSelector","rowHeight","gridDensityHeaderHeightSelector","headerHeight","gridDensityFactorSelector","factor","GridOverlayWrapper","_viewportInnerSize$he","_viewportInnerSize$wi","viewportInnerSize","setViewportInnerSize","_apiRef$current$getRo","_apiRef$current$getRo2","getRootDimensions","handleViewportSizeChange","_apiRef$current$getRo3","_apiRef$current$getRo4","subscribeEvent","viewportInnerSizeChange","GridOverlays","visibleRowCount","showNoRowsOverlay","showNoResultsOverlay","_rootProps$components2","_rootProps$components3","NoRowsOverlay","noRowsOverlay","NoResultsOverlay","noResultsOverlay","LoadingOverlay","loadingOverlay","GridBody","VirtualScrollerComponent","ColumnHeadersComponent","isVirtualizationDisabled","setIsVirtualizationDisabled","disableVirtualization","enableVirtualization","unstable_disableVirtualization","unstable_enableVirtualization","columnHeadersRef","columnsContainerRef","windowRef","renderingZoneRef","columnHeadersContainerElementRef","columnHeadersElementRef","publishEvent","GridFooterPlaceholder","footerRef","hideFooter","Footer","footer","GridContextProvider","localStorageAvailable","escapeRegExp","isDeepEqual","entriesA","entryA","isView","forceDebug","noopLogger","LOG_LEVELS","getAppender","logLevel","appender","minLogLevelIdx","loggerObj","useGridApiMethod","apiMethods","apiName","apiMethodsRef","apiMethodsNames","installMethods","GridSignature","ObjectToBeRetainedByReact","registry","FinalizationRegistry","unregisterToken","unregister","cleanupTimeout","cleanupToken","useGridApiEventHandler","cleanupTokensCounter","objectRetainedByReact","subscription","cleanupTokenRef","enhancedHandler","_handlerRef$current","_subscription$current","_handlerRef$current2","_subscription$current2","createUseGridApiEventHandler","optionsSubscriberOptions","isFirst","useGridApiOptionHandler","EventManager","maxListeners","warnOnce","highPriority","regular","highPriorityListeners","regularListeners","oneTimeListener","prim","toPrimitive","GRID_DEFAULT_STRATEGY","GRID_STRATEGIES_PROCESSORS","rowTreeCreation","filtering","useGridInitialization","inputApiRef","unstable_eventManager","isSyntheticEvent","signature","DataGridPro","componentError","useGridApiInitialization","useGridLoggerFactory","handleError","useGridErrorHandler","controlStateMapRef","rawForceUpdate","updateControlState","controlStateItem","stateId","others","ignoreSetState","updatedControlStateIds","controlState","oldSubState","stateSelector","newSubState","hasPropChanged","propModel","stateChange","propOnChange","changeEvent","unstable_updateControlState","useGridStateInitialization","preProcessorsRef","registerPreProcessor","preProcessors","preProcessorRegister","otherProcessors","preProcessorUnregister","applyPreProcessors","preProcessor","unstable_registerPreProcessor","unstable_applyPreProcessors","useGridPreProcessing","availableStrategies","strategiesCache","registerStrategyProcessor","strategyName","processorName","processor","groupPreProcessors","previousProcessor","unstable_getActiveStrategy","activeStrategyProcessorChange","applyStrategyProcessor","activeStrategy","groupCache","getActiveStrategy","strategyGroup","_availableStrategyEnt","availableStrategyEntry","isAvailable","setStrategyAvailability","strategyAvailabilityChange","unstable_registerStrategyProcessor","unstable_applyStrategyProcessor","unstable_setStrategyAvailability","useGridStrategyProcessing","getLocaleText","localeText","useGridLocaleText","useGridInitializeState","initializer","isInitialized","useGridNativeEventListener","added","setAdded","wrapHandler","targetElement","boundElem","writeToClipboardPolyfill","selectNode","execCommand","gridColumnMenuSelector","columnMenu","columnMenuStateInitializer","useFirstRender","isFirstRender","useGridRegisterPreProcessor","GridArrowUpwardIcon","GridArrowDownwardIcon","GridKeyboardArrowRight","GridExpandMoreIcon","GridFilterListIcon","GridFilterAltIcon","GridColumnIcon","GridSeparatorIcon","GridViewHeadlineIcon","GridTableRowsIcon","GridViewStreamIcon","GridTripleDotsVerticalIcon","GridCloseIcon","GridAddIcon","GridRemoveIcon","GridLoadIcon","GridDragIcon","GridSaveAltIcon","GridCheckIcon","GridMoreVertIcon","getValueFromOption","getValueFromValueOptions","valueOptions","optionValue","renderSingleSelectOptions","valueFormatter","SUBMIT_FILTER_STROKE_TIME","GridFilterInputValue","applyValue","focusElementRef","filterTimeout","filterValueState","setFilterValueState","applying","setIsApplying","singleSelectProps","getColumn","onFilterChange","columnValueOptions","_item$value2","itemValue","BaseTextField","baseTextField","GridEditInputCellRoot","editInputCell","GridEditInputCell","_rootProps$experiment","colDef","debounceMs","experimentalFeatures","newEditingApi","isProcessingProps","setEditCellValue","sortModelDisableMultiColumnsSortingWarning","sanitizeSortModel","disableMultipleColumnsSorting","mergeStateWithSortModel","getNextGridSortDirection","sortingOrder","currentIdx","gridNillComparator","v1","v2","collator","Collator","gridNumberComparator","value1","nillResult","gridDateComparator","GridFilterInputMultipleValue","GRID_STRING_COL_DEF","hideable","sortable","groupable","pinnable","editable","sortComparator","getApplyFilterFn","filterRegex","sensitivity","usage","filterValue","renderEditCell","parseNumericValue","getGridNumericOperators","InputComponentProps","GRID_NUMERIC_COL_DEF","headerAlign","valueParser","GridFilterInputDate","dateRegex","dateTimeRegex","buildApplyFilterFn","compareFn","showTime","keepHours","valueAsDate","timeToCompare","getGridDateOperators","GridEditDateCell","isDateTime","valueTransformed","parsedDate","formattedDate","formatted","newFormattedDate","newParsedDate","_valueTransformed$par","_state$parsed","renderEditDateCell","GRID_DATE_COL_DEF","toLocaleDateString","GRID_DATETIME_COL_DEF","GridBooleanCell","BooleanCellTrueIcon","BooleanCellFalseIcon","GridEditBooleanCell","BaseCheckbox","baseCheckbox","GridFilterInputBoolean","GRID_BOOLEAN_COL_DEF","renderCell","rowNode","isAutoGenerated","valueAsBoolean","isEscapeKey","isEnterKey","isTabKey","isSpaceKey","isDeleteKeys","printableCharRegex","isPrintableKey","GRID_CELL_EXIT_EDIT_MODE_KEYS","GRID_CELL_EDIT_COMMIT_KEYS","isCellEditCommitKeys","isNavigationKey","isHomeOrEndKeys","isArrowKeys","isPageKeys","isKeyboardEvent","isHideMenuKey","GridEditModes","GridCellModes","GridRowModes","GridEditSingleSelectCell","editMode","valueOptionsFormatted","BaseSelect","Row","commitCellChange","setCellMode","getCellParams","cellNavigationKeyDown","_rootProps$experiment2","stopCellEditMode","ignoreModifications","baseSelect","GridFilterInputSingleSelect","currentColumn","currentValueOptions","_itemValue","GridFilterInputMultipleSingleSelect","resolvedColumn","resolvedValueOptions","resolvedFormattedValueOptions","filterValueOptionFormatter","filterValues","formattedElement","formatedOption","parseObjectValue","GRID_SINGLE_SELECT_COL_DEF","filterItemValues","GridMenuRoot","menu","GridMenu","prevTarget","prevOpen","BasePopper","basePopper","popperOnExited","GridActionsCell","touchRippleRefs","menuId","getActions","hasActions","hideMenu","getRowParams","iconButtons","showInMenu","menuButtons","handleTouchRippleRef","MoreActionsIcon","GRID_ACTIONS_COLUMN_TYPE","GRID_ACTIONS_COL_DEF","headerName","disableColumnMenu","disableExport","DEFAULT_GRID_COL_TYPE_KEY","COLUMNS_DIMENSION_PROPERTIES","computeColumnTypes","customColumnTypes","mergedColumnTypes","dateTime","boolean","singleSelect","colType","colTypeDef","extendType","hydrateColumnsWidth","rawState","viewportInnerWidth","columnsLookup","totalFlexUnits","widthAllocatedBeforeFlex","flexColumns","newColumn","initialFreeSpace","computedColumnWidths","flexColumnsLookup","frozenFields","freeze","frozen","loopOverFlexItems","violationsLookup","remainingFreeSpace","flexUnits","totalViolation","computeFlexColumnsWidth","createColumnsState","columnsToUpsert","initialState","columnsTypes","currentColumnVisibilityModel","shouldRegenColumnVisibilityModelFromColumns","keepOnlyColumnsToUpsert","_apiRef$current","isInsideStateInitializer","columnsStateWithoutColumnVisibilityModel","columnsToUpsertLookup","columnTypes","mergedColumn","hasBeenResized","columnsLookupBeforePreProcessing","columnsStateWithPreProcessing","hasModelChanged","newColumnVisibilityModel","isVisibleBefore","isVisibleAfter","columnsStateWithPortableColumns","orderedFields","dimensions","columnsWithUpdatedDimensions","orderedFieldsLookup","cleanOrderedFields","newOrderedFields","newColumnLookup","applyInitialState","mergeColumnsState","GridPreferencePanelsValue","columnsStateInitializer","_props$initialState","_props$initialState$c","_props$initialState2","_props$columnVisibili","_props$initialState3","_props$initialState3$","isUsingColumnVisibilityModel","GridDensityTypes","getUpdatedDensityState","newDensity","newHeaderHeight","newRowHeight","Comfortable","densityStateInitializer","useGridDensity","setDensity","currentDensityState","newDensityState","GridCellCheckboxForwardRef","isChecked","checkboxElement","getCellElement","_checkboxElement$curr","isSelectable","isRowSelectable","rowSelectionCheckboxChange","GridCellCheckboxRenderer","gridFocusStateSelector","gridFocusCellSelector","focusState","gridFocusColumnHeaderSelector","gridTabIndexStateSelector","gridTabIndexCellSelector","gridTabIndexColumnHeaderSelector","gridSelectionStateSelector","selectedGridRowsCountSelector","selectedGridRowsSelector","selectedRows","rowsLookup","selectedIdsLookupSelector","rowId","gridPaginationSelector","pagination","gridPageSelector","page","gridPageSizeSelector","pageSize","gridPaginationRowRangeSelector","pageCount","visibleSortedTopLevelRowEntries","visibleTopLevelRowCount","topLevelFirstRowIndex","topLevelLastRowIndex","firstRowIndex","lastRowIndex","topLevelFirstRow","topLevelRowsInCurrentPageCount","topLevelRowAdded","gridPaginatedVisibleSortedGridRowEntriesSelector","paginationRange","gridPaginatedVisibleSortedGridRowIdsSelector","visibleSortedRowIds","GridHeaderCheckbox","tabIndexState","visibleRowIds","paginatedVisibleRowIds","filteredSelection","getRow","selectionCandidates","checkboxSelectionVisibleOnly","currentSelectionSize","isIndeterminate","getColumnHeaderElement","headerSelectionCheckboxChange","columnHeaderNavigationKeyDown","handleSelectionChange","selectionChange","GRID_CHECKBOX_SELECTION_COL_DEF","disableReorder","valueGetter","serialiseCellValue","delimiterCharacter","buildCSV","rowIds","includeHeaders","CSVBody","cellParams","serialiseRow","getColumnsToExport","allColumns","defaultGetRowsToExport","filteredSortedRowIds","getSelectedRows","useGridCsvExport","getDataAsCsv","_options$getRowsToExp","_options$includeHeade","getRowsToExport","exportDataAsCsv","csv","extension","filename","fullName","HTMLAnchorElement","download","revokeObjectURL","exportAs","Blob","utf8WithBom","gridRowsMetaSelector","rowsMeta","GridFeatureModeConstant","GridLinkOperator","getDefaultGridFilterModel","linkOperator","And","useGridRegisterStrategyProcessor","filterModelDisableMultiColumnsFilteringWarning","filterModelMissingItemIdWarning","filterModelMissingItemOperatorWarning","sanitizeFilterModel","disableMultipleColumnsFiltering","hasSeveralItems","hasItemsWithoutIds","hasItemWithoutOperator","cleanItem","cleanFilterItem","mergeStateWithFilterModel","filterStateInitializer","_props$filterModel","_props$initialState$f","useGridFilter","_props$componentsProp2","onFilterModelChange","filterModelChange","applyFilters","isRowMatchingFilters","filterMode","appliers","_filterItem$value","newFilterItem","applyFilterOnRow","shouldApplyFilter","filteredAppliers","applier","buildAggregatedFilterApplier","filteringResult","visibleRowsSet","upsertFilterItem","setFilterModel","deleteFilterItem","itemToDelete","showFilterPanel","targetColumnField","filterItemsWithValue","newFilterItems","filterItemOnTarget","showPreferences","hideFilterPanel","hidePreferences","setFilterLinkOperator","unstable_applyFilters","getVisibleRowModels","stateExportPreProcessing","filterModelToExport","stateRestorePreProcessing","_context$stateToResto","stateToRestore","preferencePanelPreProcessing","_props$componentsProp","FilterPanel","filterPanel","flatFilteringMethod","handleColumnsChange","filterableColumnsLookup","handleStrategyProcessorChange","rowsSet","rowExpansionChange","columnsChange","getVisibleRows","paginationMode","useGridVisibleRows","focusStateInitializer","findParentElementFromClassName","elem","escapeOperandAttributeSelector","operand","getGridRowElement","defaultPageSize","autoPageSize","mergeStateWithPageSize","getPageCount","rowCount","applyValidPage","paginationState","mergeStateWithPage","paginationStateInitializer","_props$initialState$p","_props$page","_props$initialState2$","_props$rowCount","_props$rowCount2","useGridPagination","onPageSizeChange","pageSizeChange","setPageSize","pageSizeToExport","handleUpdateAutoPageSize","maximumPageSizeWithoutScrollBar","useGridPageSize","onPageChange","pageChange","setPage","pageToExport","_context$stateToResto2","useGridPage","gridPreferencePanelStateSelector","preferencePanel","preferencePanelStateInitializer","gridEditRowsStateSelector","editRows","isPromise","useCellEditing","_props$experimentalFe2","buildCallback","Cell","getCellMode","newEditRowsState","Edit","getCellValue","cellModeChange","editRowsState","_props$experimentalFe","unstable_runPendingEditCellValueMutation","getEditRowsModel","editCellProps","preventCommitWhileValidating","cellProps","commitParams","preProcessEditCellProps","newEditCellProps","unstable_setEditCellProps","cellEditCommit","setCellEditingEditCellValue","unstable_parseValue","newEditCellPropsProcessed","unstable_setCellEditingEditCellValue","handleCellKeyDown","cellMode","isEditable","isEditMode","isModifierKeyPressed","cellEditStart","cellEditStop","isCellExitEditModeKeys","handleCellDoubleClick","commitPropsAndExit","handleCellFocusOut","handleColumnHeaderDragStart","handleCellEditStart","handleCellEditStop","setCellFocus","handleCellEditCommit","rowUpdate","valueSetter","updateRows","handleEditCellPropsChange","cellKeyDown","cellDoubleClick","cellFocusOut","columnHeaderDragStart","editCellPropsChange","onCellEditCommit","onCellEditStart","onCellEditStop","editingStateInitializer","_props$experimentalFe4","focusTimeout","nextFocusedCell","setRowMode","getRowMode","commitRowChange","editRowProps","hasFieldWithError","fieldsWithValidator","validatorErrors","errors","rowEditCommit","setRowEditingEditCellValue","editRow","unstable_setRowEditingEditCellValue","rowParams","_props$experimentalFe3","rowEditStop","rowEditStart","handleRowEditStart","handleRowEditStop","handleRowEditCommit","handleCellFocusIn","_nextFocusedCell$curr","cellFocusIn","onRowEditCommit","onRowEditStart","onRowEditStop","useGridRowEditing","debounceMap","editRowsModel","onEditRowsModelChange","editRowsModelChange","isCellEditable","runPendingEditCellValueMutation","debouncedField","maybeDebounce","newParams","parseValue","setEditCellProps","editProps","setEditRowsModel","preventTextSelection","isMoreThanOneClick","cellMouseDown","onEditCellPropsChange","GridCellEditStartReasons","GridCellEditStopReasons","GridRowEditStartReasons","GridRowEditStopReasons","processRowUpdate","runIfEditModeIsCell","throwIfNotEditable","throwIfNotInMode","escapeKeyDown","enterKeyDown","shiftTabKeyDown","tabKeyDown","printableKeyDown","deleteKeyDown","startCellEditMode","cellToFocusAfter","editingState","updateOrDeleteFieldState","newEditingState","updateFocusedCellIfNeeded","unstable_moveFocusToRelativeCell","finalRowUpdate","hasChanged","useGridCellEditing","runIfEditModeIsRow","rowFocusOut","columnFields","startRowEditMode","fieldToFocus","fieldProps","stopRowEditMode","updateOrDeleteRowState","focusedField","otherFieldsProps","processedProps","thisField","fieldColumn","isCellEditableProp","debounces","runCallback","setEditCellValueToCall","getGridRowId","rowModel","getRowId","detailErrorMessage","checkGridRowIdIsValid","convertGridRowsPropToState","rowsBeforePartialUpdates","getRowsStateFromCache","rowsCache","previousTree","rowCountProp","groupingResponse","dataTopLevelRowCount","rowsStateInitializer","lastUpdateMs","flatRowTreeCreationMethod","groupingKey","groupingField","useGridParamsApi","getColumnHeaderParams","getCellValueWithDeprecationWarning","getAllColumns","getBaseCellParams","getRowNode","cellFocus","cellTabIndex","getGridColumnHeaderElement","getRowElement","getGridCellElement","getSelectionModelPropValue","selectionModelProp","prevSelectionModel","selectionStateInitializer","_getSelectionModelPro","selectionModel","useGridSelection","propSelectionModel","lastRowToggled","onSelectionModelChange","checkboxSelection","disableSelectionOnClick","canHaveMultipleSelection","expandRowRangeSelection","_lastRowToggled$curre","endId","startId","isRowSelected","selectRowRange","setSelectionModel","selectRow","resetSelection","newSelection","selectRows","selectableIds","selectionLookup","rowsBetweenStartAndEnd","removeOutdatedSelection","currentSelection","handleSingleRowSelection","hasCtrlKey","isMultipleSelectionDisabled","handleCellClick","preventSelectionOnShift","_window$getSelection","handleRowSelectionCheckboxChange","handleHeaderSelectionCheckboxChange","rowsToBeSelected","getAllRowIds","cellClick","isStateControlled","currentPageRows","currentPageRowsLookup","firstSelectableRow","useGridSelectionPreProcessors","updateSelectionColumn","selectionColumn","cellClassName","headerClassName","shouldHaveSelectionColumn","haveSelectionColumn","sortingStateInitializer","_props$sortModel","_props$initialState$s","scrollIntoView","rowsMetaStateInitializer","currentPageTotalHeight","useDataGridComponent","useGridRowsPreProcessors","_props$initialState4","_props$initialState4$","onColumnVisibilityModelChange","columnVisibilityModelChange","setGridColumnsState","getVisibleColumns","getColumnsMeta","getColumnIndex","useVisibleColumns","getColumnPosition","setColumnVisibilityModel","updateColumns","updateColumn","setColumnVisibility","_columnVisibilityMode","newModel","columnVisibilityChange","setColumnIndex","targetIndexPosition","oldIndexPosition","updatedColumns","oldIndex","columnOrderChange","setColumnWidth","columnWidthChange","columnsStateToExport","columnVisibilityModelToExport","hasHiddenColumns","colDefDimensions","columnVisibilityModelToImport","ColumnsPanel","columnsPanel","handlePreProcessorRegister","prevInnerWidth","onColumnVisibilityChange","useGridColumns","currentPage","_gridRowsLookupSelect","throttledRowsChange","run","throttleRemainingTimeMs","throttleRowsMs","setRows","updates","DataGrid","uniqUpdates","deletedRowIds","newStateValue","partialRow","_action","getRowModels","allRows","getRowsCount","getRowIndexRelativeToVisibleRows","setRowChildrenExpansion","isExpanded","newNode","childrenExpanded","_gridRowTreeSelector$","rowApi","groupRows","handleStrategyActivityChange","useGridRows","lastClickedCell","focusedCell","setColumnHeaderFocus","moveFocusToRelativeCell","columnIndexToFocus","rowIndexToFocus","rowToFocus","columnToFocus","handleColumnHeaderFocus","handleCellMouseUp","handleDocumentClick","cellElement","handleCellModeChange","columnHeaderBlur","cellMouseUp","columnHeaderFocus","useGridFocus","onSortModelChange","sortModelChange","upsertSortModel","existingIdx","newSortModel","createSortItem","directionOverride","_col$sortingOrder2","_col$sortingOrder","nextSort","applySorting","sortingMode","sortRowList","comparatorList","getSortCellParams","parseSortItem","rowList","compareRows","parsedSortItems","row1Params","row2Params","sortCellParams1","sortCellParams2","buildAggregatedSortingApplier","setSortModel","sortColumn","allowMultipleSorting","getSortModel","getSortedRows","getSortedRowIds","getRowIndex","getRowIdFromRowIndex","sortModelToExport","flatSortingMethod","handleColumnHeaderClick","handleColumnHeaderKeyDown","latestColumns","columnHeaderClick","columnHeaderKeyDown","useGridSorting","hideTimeout","immediateTimeout","doNotHidePanel","hidePreferencesDelayed","openedPanelValue","preferencePanelToExport","useGridPreferencesPanel","getRowHeight","getRowSpacing","rowsHeightLookup","hydrateRowsMeta","densityFactor","currentRowHeight","baseRowHeight","isResized","_getRowHeight","initialHeights","_spacing$top","_spacing$bottom","isFirstVisible","isLastVisible","spacingTop","spacingBottom","finalRowHeight","acc2","setRowHeight","unstable_getRowHeight","_rowsHeightLookup$cur","unstable_getRowInternalSizes","_rowsHeightLookup$cur2","unstable_setRowHeight","useGridRowsMeta","colRef","scrollToIndexes","rowIndex","colIndex","scrollCoordinates","columnPositions","elementIndex","targetOffsetHeight","getScrollPosition","_apiRef$current$rende","_apiRef$current$rende2","useGridScroll","showColumnMenu","hideColumnMenu","toggleColumnMenu","columnResizeStart","rowsScroll","useGridColumnMenu","expandSelection","focusCell","rowEl","startRowIndex","useGridKeyboard","goToCell","goToHeader","handleCellNavigationKeyDown","viewportPageSize","unstable_getViewportPageSize","colIndexBefore","rowIndexBefore","firstRowIndexInPage","lastRowIndexInPage","lastColIndex","shouldPreventDefault","nextRowIndex","_currentPage$range$fi","_currentPage$range","_currentPage$range$la","_currentPage$range2","headerTitleNode","useGridKeyboardNavigation","previousGridState","previousColumnVisibility","updateGridColumnsForPrint","exportedColumnFields","buildPrintWindow","iframeEl","handlePrintWindowLoad","printWindow","_printWindow$contentW","_querySelector","_querySelector2","normalizeOptions","copyStyles","hideToolbar","printDoc","contentDocument","gridRootElement","gridClone","cloneNode","gridCloneViewport","gridToolbarElementHeight","gridFooterElementHeight","_gridClone$querySelec","_gridClone$querySelec2","defaultPageStyle","pageStyle","styleElement","headStyleElements","newHeadStyleElements","styleCSS","attr","print","handlePrintWindowAfterPrint","_previousGridState$cu","_previousGridState$cu2","restoreState","exportDataAsPrint","exportState","onafterprint","useGridPrintExport","copySelectedRowsToClipboard","unstable_copySelectedRowsToClipboard","useGridClipboard","warningShown","rootDimensionsRef","fullDimensionsRef","updateGridDimensionsRef","_apiRef$current$rootE","columnsTotalWidth","scrollBarSize","viewportOuterSize","hasScrollX","hasScrollY","hasScrollXIfNoYScrollBar","hasScrollYIfNoXScrollBar","hasScroll","newFullDimensions","prevDimensions","getViewportPageSize","renderContext","unstable_getRenderContext","debounceResize","isFirstSizing","isJSDOM","useGridDimensions","onColumnHeaderClick","columnHeaderDoubleClick","onColumnHeaderDoubleClick","columnHeaderOver","onColumnHeaderOver","columnHeaderOut","onColumnHeaderOut","columnHeaderEnter","onColumnHeaderEnter","columnHeaderLeave","onColumnHeaderLeave","onColumnOrderChange","onCellClick","onCellDoubleClick","onCellKeyDown","onCellFocusOut","rowDoubleClick","onRowDoubleClick","rowClick","onRowClick","onStateChange","useGridEvents","useGridStatePersistence","GRID_DEFAULT_LOCALE_TEXT","noRowsLabel","noResultsOverlayLabel","errorOverlayDefaultLabel","toolbarDensity","toolbarDensityLabel","toolbarDensityCompact","toolbarDensityStandard","toolbarDensityComfortable","toolbarColumns","toolbarColumnsLabel","toolbarFilters","toolbarFiltersLabel","toolbarFiltersTooltipHide","toolbarFiltersTooltipShow","toolbarFiltersTooltipActive","toolbarExport","toolbarExportLabel","toolbarExportCSV","toolbarExportPrint","columnsPanelTextFieldLabel","columnsPanelTextFieldPlaceholder","columnsPanelDragIconLabel","columnsPanelShowAllButton","columnsPanelHideAllButton","filterPanelAddFilter","filterPanelDeleteIconLabel","filterPanelLinkOperator","filterPanelOperators","filterPanelOperatorAnd","filterPanelOperatorOr","filterPanelColumns","filterPanelInputLabel","filterPanelInputPlaceholder","filterOperatorContains","filterOperatorEquals","filterOperatorStartsWith","filterOperatorEndsWith","filterOperatorIs","filterOperatorNot","filterOperatorAfter","filterOperatorOnOrAfter","filterOperatorBefore","filterOperatorOnOrBefore","filterOperatorIsEmpty","filterOperatorIsNotEmpty","filterOperatorIsAnyOf","filterValueAny","filterValueTrue","filterValueFalse","columnMenuLabel","columnMenuShowColumns","columnMenuFilter","columnMenuHideColumn","columnMenuUnsort","columnMenuSortAsc","columnMenuSortDesc","columnHeaderFiltersTooltipActive","columnHeaderFiltersLabel","columnHeaderSortIconLabel","footerRowSelected","footerTotalRows","footerTotalVisibleRows","visibleCount","totalCount","checkboxSelectionHeaderName","checkboxSelectionSelectAllRows","checkboxSelectionUnselectAllRows","checkboxSelectionSelectRow","checkboxSelectionUnselectRow","booleanCellTrueLabel","booleanCellFalseLabel","actionsCellMore","pinToLeft","pinToRight","unpin","treeDataGroupingHeaderName","treeDataExpand","treeDataCollapse","groupingColumnHeaderName","groupColumn","unGroupColumn","expandDetailPanel","collapseDetailPanel","MuiTablePagination","cachedSupportsPreventScroll","GridColumnMenuContainer","labelledby","handleListKeyDown","GridColumnsMenuItem","showColumns","disableColumnSelector","GridFilterMenuItem","showFilter","disableColumnFilter","HideGridColMenuItem","timeoutRef","toggleColumn","SortGridMenuItems","onSortMenuItemClick","GridColumnMenu","defaultButtons","preProcessedButtons","GridRowCountRoot","GridRowCount","GridSelectedRowCountRoot","selectedRowCount","GridSelectedRowCount","rowSelectedText","GridFooterContainerRoot","footerContainer","GridFooterContainer","GridFooter","selectedRowCountElement","hideFooterSelectedRowCount","rowCountElement","hideFooterRowCount","paginationElement","hideFooterPagination","Pagination","GridHeader","PreferencesPanel","preferencesPanel","GridPreferencesPanel","_preferencePanelState","preferencePanelState","panelContent","Panel","panel","getCircularProgressUtilityClass","SIZE","circularRotateKeyframe","circularDashKeyframe","CircularProgressRoot","CircularProgressSVG","CircularProgressCircle","disableShrink","circleDisableShrink","stroke","CircularProgress","thickness","circleStyle","circumference","GridOverlayRoot","GridOverlay","GridLoadingOverlay","GridNoRowsOverlay","getTableCellUtilityClass","TableCellRoot","stickyHeader","TableCell","paddingProp","scope","scopeProp","sizeProp","tablelvl2","isHeadCell","ariaSort","_LastPageIcon","_FirstPageIcon","_KeyboardArrowRight","_KeyboardArrowLeft","_KeyboardArrowLeft2","_KeyboardArrowRight2","_FirstPageIcon2","_LastPageIcon2","TablePaginationActions","backIconButtonProps","getItemAriaLabel","nextIconButtonProps","rowsPerPage","showFirstButton","showLastButton","LastPage","FirstPage","KeyboardArrowRight","KeyboardArrowLeft","getTablePaginationUtilityClass","_InputBase","TablePaginationRoot","TablePaginationToolbar","TablePaginationSpacer","spacer","TablePaginationSelectLabel","selectLabel","TablePaginationSelect","selectIcon","selectRoot","textAlignLast","TablePaginationMenuItem","menuItem","TablePaginationDisplayedRows","displayedRows","defaultLabelDisplayedRows","defaultGetAriaLabel","TablePagination","ActionsComponent","colSpan","colSpanProp","labelDisplayedRows","labelRowsPerPage","onRowsPerPageChange","rowsPerPageOptions","MenuItemComponent","selectId","rowsPerPageOption","GridPaginationRoot","GridPagination","_rootProps$rowsPerPag","lastPage","handlePageSizeChange","newPageSize","handlePageChange","GridPanelContentRoot","GridPanelContent","GridPanelFooterRoot","panelFooter","GridPanelFooter","GridPanelWrapperRoot","panelWrapper","GridPanelWrapper","GridFilterFormRoot","filterForm","FilterFormDeleteIcon","filterFormDeleteIcon","FilterFormLinkOperatorInput","filterFormLinkOperatorInput","FilterFormColumnInput","filterFormColumnInput","FilterFormOperatorInput","filterFormOperatorInput","FilterFormValueInput","filterFormValueInput","getLinkOperatorLocaleKey","Or","getColumnLabel","GridFilterForm","_rootProps$components4","_currentColumn$filter2","hasMultipleFilters","deleteFilter","applyFilterChanges","multiFilterOperator","showMultiFilterOperators","disableMultiFilterOperator","applyMultiFilterOperatorChanges","linkOperators","columnsSort","deleteIconProps","linkOperatorInputProps","operatorInputProps","columnInputProps","valueInputProps","filterableColumns","columnSelectId","columnSelectLabelId","operatorSelectId","operatorSelectLabelId","linkOperatorInput","columnInput","operatorInput","valueInput","filterSelectorRef","hasLinkOperatorColumn","baseFormControlProps","baseFormControl","sortedFilterableColumns","currentOperator","_currentColumn$filter","changeColumn","newOperator","eraseItemValue","changeOperator","changeLinkOperator","_valueRef$current","BaseFormControl","FilterPanelDeleteIcon","GridPanelHeaderRoot","panelHeader","GridPanelHeader","experimentalEnabled","GRID_EXPERIMENTAL_ENABLED","GridColumnsPanelRoot","GridColumnsPanelRowRoot","columnsPanelRow","GridIconButtonRoot","gridPanelClasses","GridPanelRoot","GridPaperRoot","GridPanel","_apiRef$current$colum","isPlaced","setIsPlaced","EmptyCell","GridColumnUnsortedIcon","nextSortDirection","ColumnSortedAscendingIcon","ColumnSortedDescendingIcon","defaultLabel","GridNoResultsOverlay","DEFAULT_GRID_ICON_SLOTS_COMPONENTS","ColumnMenuIcon","OpenFilterButtonIcon","ColumnFilteredIcon","ColumnSelectorIcon","ColumnUnsortedIcon","ColumnResizeIcon","DensityCompactIcon","DensityStandardIcon","DensityComfortableIcon","ExportIcon","TreeDataCollapseIcon","TreeDataExpandIcon","GroupingCriteriaCollapseIcon","GroupingCriteriaExpandIcon","DetailPanelExpandIcon","DetailPanelCollapseIcon","DATA_GRID_DEFAULT_SLOTS_COMPONENTS","BaseSwitch","BaseButton","BaseTooltip","showRightBorder","onDragEnter","onDragOver","valueToRender","cellRef","publishMouseUp","publish","propHandler","elementToFocus","cellDragEnter","cellDragOver","ColumnMenu","lastFilterRef","filterFormProps","applyFilter","applyFilterLinkOperator","getDefaultItem","firstColumnWithOperator","_colDef$filterOperato","defaultItem","shouldCloseFilterPanel","baseButton","searchInputRef","setSearchValue","toggleAllColumns","handleSearchValueChange","currentColumns","searchValueToCheck","baseSwitch","disableColumnReorder","styleProp","renderedColumns","firstColumnToRender","ariaRowIndex","editing","publishClick","rowSpacingType","rowClassName","getRowClassName","indexRelativeToCurrentPage","cells","indexRelativeToAllColumns","isLastColumn","removeLastBorderRight","disableExtendRowFullWidth","showCellRightBorder","editCellState","_rootProps$classes2","getCellClassName","emptyCellWidth","rowMouseEnter","rowMouseLeave","DATA_GRID_FORCED_PROPS","disableColumnResize","DATA_GRID_PROPS_DEFAULT_VALUES","columnBuffer","rowBuffer","columnThreshold","rowThreshold","Standard","disableDensitySelector","showColumnRightBorder","VirtualScrollerRoot","virtualScroller","GridVirtualScroller","VirtualScrollerContentRoot","virtualScrollerContent","GridVirtualScrollerContent","overflowedContent","VirtualScrollerRenderZoneRoot","virtualScrollerRenderZone","GridVirtualScrollerRenderZone","getIndexFromScroll","sliceStart","sliceEnd","pivot","DataGridVirtualScroller","getContentProps","getRenderZoneProps","getRows","onRenderZonePositioning","renderZoneMinColumnIndex","renderZoneMaxColumnIndex","getRowProps","selectedRowsLookup","renderZoneRef","setRenderContext","prevRenderContext","setContainerWidth","prevTotalWidth","computeRenderContext","firstColumnIndex","lastColumnIndex","getRenderableIndexes","firstIndex","minFirstIndex","maxLastIndex","updateRenderZonePosition","nextRenderContext","firstRowToRender","updateRenderContext","initialRenderContext","topRowsScrolledSincePreviousRender","bottomRowsScrolledSincePreviousRender","topColumnsScrolledSincePreviousRender","bottomColumnsScrolledSincePreviousRender","shouldSetState","needsHorizontalScrollbar","shouldExtendContent","virtualScrollerContentSizeChange","getRenderContext","minFirstColumn","maxLastColumn","availableSpace","lastRowToRender","lastColumnToRender","renderedRows","lastVisibleRowIndex","targetRowHeight","useGridVirtualScroller","GridIconButtonContainerRoot","iconButtonContainer","GridIconButtonContainer","GridColumnHeaderSortIconRaw","iconElement","getIcon","iconButton","GridColumnHeaderSortIcon","GridColumnHeaderTitleRoot","columnHeaderTitle","ColumnHeaderInnerTitle","GridColumnHeaderTitle","description","columnWidth","titleRef","setTooltip","isOver","baseTooltip","GridColumnHeaderSeparatorSides","GridColumnHeaderSeparatorRaw","resizing","stopClick","GridColumnHeaderSeparator","ColumnHeaderMenuIcon","columnMenuId","columnMenuButtonId","iconButtonRef","handleMenuIconClick","ColumnHeaderFilterIcon","toggleFilter","GridColumnHeaderMenu","ContentComponent","contentComponentProps","GridColumnHeaderItem","_column$sortingOrder","_column$headerName","columnMenuOpen","isResizing","filterItemsCounter","extendRowFullWidth","separatorSide","headerCellRef","showColumnMenuIcon","setShowColumnMenuIcon","headerComponent","mouseEventsHandlers","draggableEventHandlers","columnHeaderDragEnter","columnHeaderDragOver","columnHeaderDragEnd","isColumnSorted","isColumnFiltered","isColumnNumeric","draggableContainer","titleContainer","titleContainerContent","columnMenuIconButton","columnTitleIconButtons","hideSortIcons","columnMenuState","focusableElement","columnSeparatorMouseDown","GridScrollAreaRawRoot","scrollArea","GridScrollAreaRaw","scrollDirection","handleScrolling","newScrollPosition","handleDragOver","toggleDragging","prevDragging","GridScrollArea","GridColumnHeadersRoot","columnHeaders","GridColumnHeaders","GridColumnHeadersInnerRoot","columnHeaderDropZone","columnHeadersInner","GridColumnHeadersInner","DataGridColumnHeaders","getInnerProps","getColumns","innerRefProp","minColumnIndex","dragCol","setDragCol","resizeCol","setResizeCol","cellTabIndexState","filterColumnLookup","sortColumnLookup","handleInnerRef","prevScrollLeft","updateInnerPosition","_prevRenderContext$cu","_prevRenderContext$cu2","handleColumnResizeStart","handleColumnResizeStop","handleColumnReorderStart","handleColumnReorderStop","columnResizeStop","columnIndex","isFirstColumn","hasTabbableElement","useGridColumnHeaders","DataGridRaw","themedProps","mergedComponents","defaultComponent","useDataGridProps","warnIfFocusStateIsNotSynced","getDetailPanelContent","GridToolbarContainerRoot","toolbarContainer","GridToolbarContainer","GridToolbarColumnsButton","GridToolbarDensitySelector","densityValue","densityButtonId","densityMenuId","densityOptions","handleDensitySelectorClose","densityElements","handleDensityUpdate","GridToolbarFilterListRoot","toolbarFilterList","GridToolbarFilterButton","tooltipContentNode","getOperatorLabel","_buttonProps$onClick","GridToolbarExportContainer","handleMenuClose","GridCsvExportMenuItem","disableToolbarButton","GridPrintExportMenuItem","GridToolbarExport","csvOptions","printOptions","GridToolbar","SocialGroupRequests","requests","setRequests","handleRequest","request_id","gridColumns","filtered","AdminSocialGroup","groupName","setGroupName","groupDescription","setGroupDescription","groupPublic","setGroupPublic","openGroupCreated","setOpenGroupCreated","daysEnabled","setDaysEnabled","socialGroupSelectData","handleInvite","handleCreate","startUtc","startUtcMid","endUtc","endUtcMid","public","alert","maxLength","alignItem","isValueSelected","getToggleButtonGroupUtilityClass","ToggleButtonGroupRoot","grouped","ToggleButtonGroup","exclusive","buttonValue","handleExclusiveChange","getToggleButtonUtilityClass","ToggleButtonRoot","selectedColor","ToggleButton","getCardContentUtilityClass","CardContentRoot","CardContent","SocialIcons","linkedinHide","twitterHide","company_pageHide","whatsappHide","calendlyHide","linkedin","MuiLink","LinkedInIcon","twitter","TwitterIcon","company_page","LanguageIcon","whatsapp","WhatsAppIcon","calendly","CalendarMonthIcon","getIconUtilityClass","IconRoot","uses","withMiddleware","useSWRNext","useDataProvider","senderId","setSenderId","rej","serial","toastError","toastInfo","toastSuccess","allGroups","wsSetter","groupId","selectedUser","setSelectedUser","dialog","setDialog","socialGroupListData","filteredGroups","group2","filteredGroupUsers","emoji","setEmoji","emojiPopover","setEmojiPopover","openEmojiPopover","MuiToggleButton","handleSendMessage","receiver","EmojiEmotionsIcon","MoreVertIcon","newAlignment","fromCodePoint","ul","bull","socialGroup","hideLinks","userInfo","creator","AdminPanelSettingsIcon","ProfileMenu","smallArea","prevObj","nextObj","prevLast","nextLast","ProfileCard","SearchToolbar","clearSearch","hideSearch","SearchIcon","DataGridNoHeader","gridColumnsMobile","datagridHeight","SearchBar","setView","searchText","setSearchText","requestSearch","searchRegex","filteredRows","noCard","ViewListIcon","ViewModuleIcon","UserDatagrid","UserCardList","DatagridColumns","CheckCircleIcon","CancelIcon","selectedSocialGroup","setSelectedSocialGroup","selectedUserEmail","setSelectedUserEmail","inputValueGroup","setInputValueGroup","createEmailSuccess","setCreateEmailSuccess","createEmailError","setCreateEmailError","handleEmailCreate","DatagridColumnsMobile","company_name","public_calendar","public_social","terms_accepted","UserList","UserCreation","__read","ar","COMMON_MIME_TYPES","toFileWithPath","ext","withMimeType","webkitRelativePath","FILES_TO_IGNORE","isDragEvt","getInputFiles","files","isInput","fromList","getDataTransferFiles","kind","toFilePromises","noIgnoredFiles","webkitGetAsEntry","fromDataTransferItem","isDirectory","fromDirEntry","getAsFile","fwp","fromEntry","fromFileEntry","reader","createReader","readEntries","batch","fullPath","_slicedToArray","_arrayWithHoles","_s","_arr","_n","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","messageSuffix","getTooLargeRejectionErr","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","fileMatchSize","isDefined","allFilesAccepted","maxFiles","accepted","sizeMatch","isEvtWithFiles","onDocumentDragOver","isIe","isIeOrEdge","composeEventHandlers","_excluded4","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","enumerableOnly","symbols","getOwnPropertyDescriptors","Dropzone","_useDropzone","useDropzone","getFilesFromEvent","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","onFileDialogCancel","onDrop","onDropAccepted","onDropRejected","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","fileRejections","_defaultProps$options","_useReducer","_useReducer2","openFileDialog","onWindowFocus","onKeyDownCb","isEqualNode","onFocusCb","onBlurCb","onClickCb","dragTargetsRef","onDocumentDrop","onDragEnterCb","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","onDropCb","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","customErrors","composeHandler","composeKeyboardHandler","composeDragHandler","_ref2$refKey","refKey","onInputElementClick","_ref3$refKey","fileCount","isObjectType","isNullOrUndefined","isDateObject","isCheckBoxInput","getNodeParentName","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","formState","_proxyFormState","localProxyFormState","isRoot","formStateData","isEmptyObject","signalName","convertToArrayPayload","currentName","useSubscribe","subject","tearDown","formValues","isGlobal","watch","fieldName","watchAll","useController","shouldUnregister","isArrayField","isNameInFieldArray","_name","shouldSubscribeByName","fieldValues","generateWatchOutput","_formValues","updateValue","objectHasFunction","_subjects","_getWatch","_removeUnmounted","useWatch","_defaultValues","updateFormState","_formState","_localProxyFormState","isDirty","dirtyFields","touchedFields","_mounted","shouldRenderFormState","getProxyFormState","useFormState","_registerProps","updateMounted","_fields","_shouldUnregisterField","_stateFlags","getEventValue","setCustomValidity","reportValidity","fieldState","getFieldState","Controller","validateAllFieldCriteria","tempPath","focusFieldBy","fieldsNames","currentField","isBlurEvent","watchName","cloneObject","createSubject","_observers","object1","object2","isPrimitive","keys1","keys2","val1","val2","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isConnected","unset","updatePath","childObject","previousObjRef","objectRef","currentPaths","currentPathsLength","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","defaultValues","defaultResult","validResult","setValueAs","defaultReturn","getFieldValue","isFileInput","isRadioInput","getRadioValue","isMultipleSelect","selectedOptions","isCheckBox","getCheckboxValue","getFieldValueAs","isRegex","schemaErrorLookup","foundError","getValidateError","isMessage","isBoolean","validationData","shouldUseNativeValidation","minLength","isRadio","isRadioOrCheckbox","appendErrorsCurry","appendErrors","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","getValueAndMessage","exceedMin","maxOutput","minOutput","valueDate","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","reValidateMode","shouldFocusError","createFormControl","delayErrorCallback","isSubmitted","submitCount","isSubmitting","isSubmitSuccessful","unMount","validateFields","validationModeBeforeSubmit","getValidationModes","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","criteriaMode","_updateValid","shouldSkipRender","_executeSchema","executeBuildInValidation","updateErrors","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","isFieldDirty","isPreviousFieldTouched","isPreviousFormDirty","_getDirty","isPreviousFieldDirty","shouldRenderByError","previousFieldError","shouldUpdateValid","delayError","updatedFormState","getResolverOptions","shouldOnlyCheckValid","valid","fieldReference","fieldError","validateField","getValues","isWeb","selectRef","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","isFieldArray","cloneValue","getDirtyFields","isWatched","shouldSkipValidation","hasValidation","isTouched","skipValidation","watched","previousErrorLookupResult","errorLookupResult","fieldNames","executeSchemaAndUpdateState","shouldFocus","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","disabledIsDefined","getRuleValue","fieldRef","radioOrCheckbox","live","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","unsetEmptyArray","_getFieldArray","onValid","onInvalid","hasNoPromiseError","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","keepSubmitCount","keepIsSubmitted","keepErrors","resetField","clearErrors","inputName","setFocus","shouldSelect","useForm","_formControl","_style","SvgSlackMark","svgRef","xmlns","xmlnsXlink","enableBackground","xmlSpace","SvgSlackMarkBlack","SlackIcon","SlackLogo","SlackIconBlack","SlackLogoBlack","CompanyLinks","socialLinkDialog","setSocialLinkDialog","setIsDisabled","slack","isEdited","handleSocialLinksSave","contentSocialLinks","overflowWrap","comnponent","CompanySettings","uploadDialogOpen","setUploadDialogOpen","uploadDisabled","setUploadDisabled","setLoading","setFile","setImage","dialogShown","setDialogShown","imageUrl","handleUpload","DashboardIcon","marginInline","GetOnlineData","GetUserData","isPercent","isNumOrStr","uniqueId","totalValue","getAnyElementOfObject","interpolateNumber","numberA","numberB","findEntryInArray","ary","specifiedKey","specifiedValue","ResponsiveContainer","aspect","_ref$debounce","_useState2","setSizes","_useState4","setMounted","getContainerSize","updateDimensionsImmediate","newSize","oldWidth","oldHeight","calculatedWidth","calculatedHeight","renderChart","SVGContainerPropKeys","SVGElementPropKeys","EventKeys","includeEvents","isSvg","adaptEventHandlers","newHandler","adaptEventsOfChild","originalHandler","getEventHandlerOfChild","Surface","svgView","layerClass","Layer","setRafTimeout","shouldUpdate","_toArray","createAnimateManager","shouldStop","setStyle","_styles","restStyles","_handleChange","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","mapObject","translateStyle","isTransition","camelName","styleVal","generatePrefixStyle","getTransitionVal","ACCURACY","cubicBezierFactor","multyTime","cubicBezier","derivativeCubicBezier","configBezier","x1","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","evalT","derVal","isStepper","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","stepper","currX","destX","currV","newV","newX","needContinue","calStepperVals","preVals","steps","nextStepVals","_easing2","preObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","cafId","currStyle","finalStyle","_createSuper","Derived","hasNativeReflectConstruct","sham","_isNativeReflectConstruct","Super","NewTarget","Animate","_PureComponent","_super","handleStyleChange","changeStyle","canBegin","runAnimation","shouldReAnimate","isTriggered","stopJSAnimation","_newState","unSubscribe","onAnimationEnd","startAnimation","configUpdate","configEasing","_steps$","initialStyle","_steps$$duration","initialTime","sequence","_nextItem$easing","nextProperties","preItem","runJSAnimation","newStyle","propsTo","runStepAnimation","onAnimationReStart","stateStyle","cloneContainer","_container$props","_container$props$styl","parseDurationOfSingleTransition","AnimateGroupChild","appearOptions","enterOptions","handleStyleActive","leaveOptions","parseTimeout","AnimateGroup","leave","defaultFormatter","DefaultTooltipContent","itemStyle","itemSorter","finalItemStyle","finalFormatter","_formatted","wrapperClassName","contentStyle","labelClassName","labelStyle","labelFormatter","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","renderContent","isSsr","CLS_PREFIX","defaultUniqBy","dataKey","boxWidth","boxHeight","wrapperNode","tooltipDimension","viewBoxDimension","allowEscapeViewBox","coordinate","restricted","unrestricted","updateBBox","_classNames","translateX","translateY","isAnimationActive","animationEasing","filterNull","finalPayload","getUniqPayload","payloadUniqBy","hasPayload","wrapperStyle","_this$state2","useTranslate3d","cls","cursorStyle","tau","draw","moveTo","arc","lineTo","closePath","tan30","tan30_2","kr","kx","ky","sqrt3","x0","y0","tauEpsilon","Path","_x0","_y0","_x1","_y1","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","a0","ccw","cw","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","Symbols","sizeType","symbolFactory","getSymbolFactory","calculateAreaSize","registerSymbol","DefaultLegendContent","inactiveColor","halfSize","sixthSize","thirdSize","inactive","legendIcon","iconSize","svgStyle","renderIcon","renderItems","Legend","hPos","vPos","chartWidth","chartHeight","getBBoxSnapshot","onBBoxUpdate","_box3","getDefaultPosition","Basis","BasisClosed","BasisOpen","LinearClosed","Linear","slope3","h0","s0","s1","slope2","t0","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","Step","areaStart","_line","areaEnd","lineStart","_point","lineEnd","_x2","_x3","_x4","_y2","_y3","_y4","_t0","_x","_y","i0","i1","defined","curve","defined0","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveLinear","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","Curve","lineFunction","baseLine","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","pathRef","realPath","Cross","radianToDegree","angleInRadian","polarToCartesian","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startAngle","endAngle","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","_formatAngleOfSector","formatAngleOfSector","formatAngle","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","circleTangency","lineTangency","getSectorPath","getDeltaAngle","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","Sector","forceCornerRadius","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","Dot","getRectanglePath","maxRadius","ySign","xSign","clockWise","newRadius","_newRadius","isInRectangle","minX","maxX","minY","maxY","Rectangle","totalLength","getTotalLength","animationBegin","isUpdateAnimationActive","currWidth","currHeight","currY","REACT_BROWSER_EVENT_MAP","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","getDisplayName","Comp","lastChildren","findAllByType","childType","findChildByType","validateWidthHeight","_el$props","SVG_TAGS","isSvgElement","isChildrenEqual","nextChildren","prevChildren","isSingleChildEqual","nextChild","renderByOrder","renderMap","record","stringCache","widthCache","cacheCount","SPAN_STYLE","STYLE_LIST","MEASUREMENT_SPAN_ID","getStyleString","autoCompleteStyle","getStringSize","styleString","measurementSpan","measurementSpanStyle","BREAKING_SPACES","calculateWordWidths","words","breakAll","wordsWithComputedWidth","word","spaceWidth","getWordsWithoutCalculate","getWordsByLines","needCalculate","scaleToFit","wordWidths","initialWordsWithComputedWith","lineWidth","shouldLimitLines","calculate","currentLine","newLine","originalResult","trimmedResult","tempText","doesOverflow","findLongestLine","iterations","middle","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","Text","textAnchor","verticalAnchor","capHeight","textProps","wordsByLines","startDy","prevWidth","prevScaleToFit","prevStyle","prevBreakAll","renderRadialLabel","labelProps","attrs","labelAngle","deltaAngle","startPoint","endPoint","dominantBaseline","Label","textBreakAll","getLabel","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","_polarToCartesian2","getAttrsOfPolarLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","getAttrsOfCartesianLabel","parseViewBox","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","CartesianAxis","restProps","viewBoxOld","restPropsOld","tx","ty","tickSize","mirror","tickMargin","finalTickSize","tickCoord","tick","axisLine","needHeight","needWidth","ticks","tickLine","tickFormatter","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","customTickProps","tickLineProps","_this$getTickLineCoor","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","ticksGenerator","_this$props8","noTicksProps","renderAxisLine","renderTicks","minTickGap","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","sizeKey","unitSize","tailContent","tailSize","tailGap","isShow","initRange","domain","initInterpolator","interpolator","implicit","unknown","band","bandwidth","ordinalRange","r0","paddingInner","paddingOuter","rescale","rangeRound","pointish","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","curry","firstFn","tailsFn","newA","uninterpolateNumber","uninterpolateTruncation","rangeStep","getDigitCount","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","digitCountValue","stepRatio","stepRatioScale","formatStep","getTickOfSingleValue","tickCount","absVal","middleIndex","calculateStep","tickMin","tickMax","belowCount","upCount","scaleCount","getNiceTickValues","_getValidInterval","_getValidInterval2","cormin","cormax","_calculateStep","getTickValuesFixedDomain","_getValidInterval3","_getValidInterval4","_ref8","_getValidInterval5","_getValidInterval6","e10","e5","e2","tickIncrement","power","tickStep","step0","step1","lo","ascending","ascendingComparator","ascendingBisect","bisector","bisectRight","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","m1","m2","v0","v3","channels","displayable","formatHsl","gamma","nogamma","exponential","rgbGamma","rgbSpline","spline","genericArray","reA","reB","am","bm","one","zero","bimap","interpolate","d0","polymap","bisect","untransform","piecewise","clamper","invert","continuous","prefixExponent","formatSpecifier","specifier","FormatSpecifier","formatDecimalParts","formatRounded","formatPrefix","prefixes","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","nan","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","unsquare","radial","squared","valueof","quickselect","swap","quantile","Float64Array","numbers","value0","subarray","quantileSorted","invertExtent","quantiles","quantize","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","newInterval","floori","offseti","sunday","monday","tuesday","wednesday","thursday","friday","saturday","utcMinute","setUTCSeconds","utcHour","utcDay","setUTCHours","setUTCDate","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","setUTCMonth","utcYear","ticker","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","utcTime","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","series","stackValue","stackSeries","getValueByDataKey","getDomainOfDataByKey","filterNil","flattenData","locale_dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","utcFormats","parses","parseSpecifier","newParse","utcParse","formatLocale","getMainColorOfGraphicItem","_item$props","getLegendProps","legendData","formattedGraphicalItems","legendWidth","legendContent","legendItem","sectors","iconType","legendType","_item$props2","getWithHeight","getDomainOfErrorBars","axisType","errorBars","errorBarChild","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","getDomainOfItemsWithSameAxis","domains","isCategoricalAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","duplicateDomain","niceTicks","scaleContent","isCategorical","categoricalDomain","combineEventHandlers","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","STACK_OFFSET_MAP","positive","none","silhouette","wiggle","s2","sij0","s3","getStackedData","stackItems","offsetType","dataKeys","oz","sz","realScaleType","originalDomain","scaleType","tickValues","calculateDomainOfTicks","_domain","getCateCoordinateOfLine","bandSize","allowDuplicatedCategory","matchedTick","getCateCoordinateOfBar","getDomainOfStackGroups","stackGroups","stackId","stackedData","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","cur","parseDomainOfCategoryAxis","calculatedDomain","axisChild","getTooltipItem","graphicalItem","_graphicalItem$props","tooltipType","chartType","Brush","travellerDragStartHandlers","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleDragEnd","detachDragEndListener","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","attachDragEndListener","handleTravellerDragStart","endX","scaleValues","minIndex","getIndexInRange","travellerWidth","movingTravellerId","brushMoveStartX","_this$setState","isFullGap","chartElement","travellerX","traveller","travellerProps","renderTraveller","_this$props9","_this$state3","getTextOfTick","_this$props10","alwaysShowText","_this$state4","isPanoramic","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","lineY","renderDefaultTraveller","prevData","prevUpdateId","prevTravellerWidth","prevX","createScale","ifOverflowMatches","alwaysShow","ifOverflow","axisMap","chartName","leftMirror","rightMirror","topMirror","bottomMirror","hasBar","calculatedPadding","needSpace","_axis$padding","reversed","offsetKey","smallestDistanceBetweenValues","smallestDistanceInPercent","rangeWidth","barCategoryGap","halfBand","_parseScale","finalAxis","rectWithPoints","ScaleHelper","bandAware","_offset2","EPS","createLabeledScales","scales","isInRange","ReferenceDot","clipPathId","isX","isY","xAxis","yAxis","getCoordinate","dotProps","clipPath","renderDot","isFront","xAxisId","yAxisId","ReferenceLine","fixedX","fixedY","isFixedX","isFixedY","isSegment","_props$viewBox","yCoord","xCoord","_orientation","_coord","_points","_points2","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","rectWithCoords","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","rangeMin","rangeMax","getRect","renderRect","detectReferenceElementsDomain","axisId","specifiedTicks","dots","areas","idKey","valueKey","finalDomain","key1","key2","eventCenter","setMaxListeners","SYNC_EVENT","ORIENT_MAP","originCoordinate","isFinit","deferClear","clearImmediate","getDisplayedData","graphicalItems","dataStartIndex","dataEndIndex","itemsData","itemData","getTooltipContent","chartData","activeLabel","tooltipAxis","displayedData","getTooltipData","rangeObj","rangeData","chartX","chartY","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","_ticks$length","unsortedTicks","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","calculateActiveTickIndex","activePayload","activeCoordinate","_angle","_radius","getActiveCoordinate","activeTooltipIndex","getAxisMapByAxes","axes","axisIdKey","stackOffset","duplicate","hasDuplicate","errorBarsDomain","parseErrorBarsOfAxis","hasStack","axisDomain","getAxisMap","_ref4$axisType","AxisComp","getAxisMapByItems","createDefaultState","defaultShowTooltip","brushItem","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","offsetH","offsetV","brushBottom","legendBox","legendProps","newOffset","appendOffsetOfLegend","generateCategoricalChart","_class","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","formatAxisMap","getFormatItems","barSize","barGap","globalMaxBarSize","maxBarSize","_getAxisNameByLayout","hasGraphicalBarItem","sizeList","globalSize","_ref5$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","selfSize","cateId","stackList","getBarSizeList","formattedItems","childMaxBarSize","numericAxisId","axisObj","_objectSpread6","cateAxis","cateTicks","getStackedDataOfItem","itemIsBar","barPosition","_getBandSizeOfAxis","barBandSize","_ref6$sizeList","realBarGap","useFull","fullBarSize","newRes","originalSize","getBarPosition","_objectSpread7","composedFn","getComposedData","childIndex","updateStateOfAxisMapsOffsetAndStackGroups","reverseStackOrder","_getAxisNameByLayout2","_items","_item$props3","childGroup","getStackGroupsByAxisId","legendBBox","ticksObj","tooltipAxisBandSize","tooltipTicksGenerator","CategoricalChartWrapper","uniqueChartId","legendInstance","deferId","clearDeferId","handleLegendBBoxUpdate","handleReceiveSyncEvent","cId","chartId","syncId","applySyncEvent","handleBrushChange","_ref9","triggerSyncEvent","handleMouseEnter","getMouseInfo","_nextState","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","cancelThrottledTriggerAfterMouseMove","handleOuterEvent","getReactEventByType","_nextState2","verticalCoordinatesGenerator","_ref10","horizontalCoordinatesGenerator","_ref11","axesTicksGenerator","renderCursor","tooltipEventType","getTooltipEventType","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","cursorProps","payloadIndex","renderPolarAxis","axisOption","renderXAxis","renderAxis","renderYAxis","renderGrid","renderPolarGrid","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","renderLegend","legend","renderTooltip","tooltipItem","_this$state5","renderBrush","_this$state6","renderReferenceElement","_this$state7","_element$props2","renderActivePoints","_ref12","activePoint","basePoint","isRange","_item$item$props","activeDot","renderActiveDot","renderGraphicChild","filterFormatItem","_this$state8","_item$item$props2","itemEvents","onCLick","renderCustomized","throttleDelay","eventType","containerOffset","calculateChartCoordinate","_this$state9","xScale","yScale","xValue","yValue","toolTipData","_this$state10","_this$state11","_cx","_cy","innerPoint","outerPoint","_this$state12","tooltipEvents","_maxListeners","syncMethod","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","_activeBarItem","CartesianGrid","XAxis","YAxis","Bar","Line","Area","Radar","RadialBar","Scatter","Pie","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","renderClipPath","parseEventsOfWrapper","defaultState","prevHeight","prevLayout","prevStackOffset","prevMargin","_defaultState","keepFromPrevState","updatesToState","newUpdateId","ErrorBar","dataPointFormatter","svgProps","_dataPointFormatter","errorVal","lowBound","highBound","lineCoordinates","_errorVal","yMid","yMin","yMax","xMin","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","valueAccessor","LabelList","idProps","parseLabelList","ckeckPropsLabel","explicitChilren","implicitLabelList","isAnimationFinished","handleAnimationEnd","handleAnimationStart","baseProps","renderRectangle","animationId","stepData","interpolatorX","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","renderRectanglesStatically","renderRectanglesWithAnimation","backgroundProps","errorBarItems","dataPoint","needClip","renderRectangles","renderErrorBar","prevAnimationId","curData","minPointSize","xAxisTicks","yAxisTicks","findPositionOfBar","numericAxis","stackedDomain","baseValue","getBaseValueOfBar","truncateByDomain","BarChart","horizontalPoints","renderLineItem","verticalPoints","verticalFill","verticalPointsUpdated","colorIndex","horizontalFill","horizontalPointsUpdated","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","lineItem","areaProps","customDotProps","renderDotItem","dotsProps","endY","renderVerticalRect","renderHorizontalRect","prevPoints","prevBaseLine","stepBaseLine","prevPointsDiffFactor","stepPoints","prevPointIndex","_interpolator","renderAreaStatically","renderClipRect","renderAreaWithAnimation","hasSinglePoint","renderArea","renderDots","curPoints","curBaseLine","getBaseValue","originalValue","isBreakPoint","AreaChart","Circle","Square","enUSPickers","previousMonth","cancelButtonLabel","clearButtonLabel","okButtonLabel","todayButtonLabel","DEFAULT_LOCALE","adapterLocale","useLocaleText","isYearOnlyView","isYearAndMonthViews","useDatePickerDefaultizedProps","_themeProps$views","getFormatAndMaskByViews","datePickerValueManager","getTodayValue","pickersToolbarClasses","PickersToolbarContent","PickersToolbarPenIconButton","penIconButton","penIconButtonLandscape","datePickerToolbarClasses","DatePickerToolbarRoot","DatePickerToolbarTitle","DatePickerToolbar","dateText","PickersActionBar","actionsArray","_components$ActionBar","ActionBar","actionBar","PickerViewRoot","ClockPickerRoot","deprecatedPropsWarning","leftArrowButtonTextProp","rightArrowButtonTextProp","containsValidTime","isValidValue","dateWithNewHours","dateWithNewMinutes","dateWithNewSeconds","isMonthDisabled","isSameDateError","PickersDayRaw","DayPicker","selectedDays","onSelectedDaysChange","validSelectedDays","selectedDay","isYearDisabled","dateToValidate","onSelectedDayChange","minDateWithDisabled","maxDateWithDisabled","outputCharIndex","inputCharIndex","CalendarOrClockPicker","closeOnSelect","lastValidDateValue","setLastValidDateValue","dateState","setDateState","resetFallback","skipOnChangeCall","newParsedValue","keyboardInputValue","cleanParsedValue","valueReducer","DesktopDatePicker","AllDateInputProps","MobileDatePicker","ActivityGraph","setDuration","setChartType","setAlignment","EqualizerIcon","defs","linearGradient","stopColor","styleMobile","GraphModal","SocialsDashboardLandscape","setCount","memberAmount","setMemberAmount","oldCount","GridSmallMobile","SocialsDashboardPortrait","DashboardModalCompany","applyOrientation","onresize","LayoutTemplateMobile","openCompany","setOpenCompany","cacheMap","graphData","setGraphData","dataProviderParams","getDataProviderData","cacheObj","titleGen","retstring","ProfileList","SocialGroupList","SocialGroupRender","ActiveTime","DescendantContext","useDescendant","descendant","registerDescendant","unregisterDescendant","descendants","parentId","previousDescendants","usePrevious","someDescendantsHaveChanged","newDescendant","DescendantProvider","oldItems","newItems","Node","DOCUMENT_POSITION_PRECEDING","binaryFindElement","newItem","getTreeViewUtilityClass","TreeViewRoot","findNextFirstChar","firstChars","noopSelection","defaultDefaultExpanded","defaultDefaultSelected","TreeView","defaultCollapseIcon","defaultEndIcon","defaultExpandIcon","defaultParentIcon","disableSelection","multiSelect","onNodeFocus","onNodeSelect","onNodeToggle","selectedProp","treeId","treeRef","focusedNodeId","setFocusedNodeId","nodeMap","firstCharMap","setSelectedState","isExpandable","expandable","getChildrenIds","getNavigableChildrenIds","childrenIds","getNextNode","getPreviousNode","nodeIndex","getLastNode","lastNode","getFirstNode","getNodesInRange","nodeAId","nodeBId","aFamily","bFamily","aAncestor","bAncestor","aAncestorIsCommon","bAncestorIsCommon","continueA","continueB","commonAncestor","ancestorFamily","aSide","bSide","findOrderInTremauxTree","focusNextNode","toggleExpansion","newExpanded","lastSelectedNode","lastSelectionWasRange","currentRangeSelection","newSelected","handleMultipleSelect","handleSingleSelect","handleRangeArrowSelect","handleRangeSelect","registerNode","idAttribute","unregisterNode","newMap","oldFocusedNodeId","mapFirstChar","firstChar","unMapFirstChar","handleNextArrow","handlePreviousArrow","getParent","activeDescendant","flag","ctrlPressed","selectNextNode","selectPreviousNode","focusPreviousNode","rangeSelectToFirst","focusFirstNode","rangeSelectToLast","focusLastNode","expandAllSiblings","selectAllNodes","isPrintableCharacter","lowercaseChar","firstCharIds","nodeId","visible","shouldBeSkipped","focusByFirstCharacter","firstSelected","TreeItemContent","displayIcon","expansionIcon","handleExpansion","preventSelection","useTreeItem","iconContainer","getTreeItemUtilityClass","TreeItemRoot","StyledTreeItemContent","TreeItemGroup","TreeItem","collapseIcon","contextIcons","treeitemElement","setTreeitemElement","ariaSelected","unfocusable","DashboardModalSocialGroup","currentGroup","setCurrentGroup","compose","thrush","proc","curry2to1","curry1to0","tap","tup","always","joinProc","procs","publisher","depot","handleNext","unsub","stream","subscriptions","statefulStream","innerSubject","streamFromEmitter","statefulStreamFromEmitter","combineOperators","operators","project","defaultComparator","distinctUntilChanged","mapTo","scan","scanner","skip","throttleTime","debounceTime","withLatestFrom","called","pendingCall","allCalled","bit","prevCalled","duc","combineLatest","emitters","system","singleton","systemToComponent","systemSpec","requiredPropNames","optionalPropNames","optional","methodNames","Context","applyPropsToSystem","requiredPropName","optionalPropName","buildEventHandlers","currentSubscription","propsWithChildren","singletons","buildMethods","usePublisher","useEmitterValue","useEmitter","LogLevel","DEBUG","WARN","CONSOLE_METHOD_MAP","_CONSOLE_METHOD_MAP","loggerSystem","_getGlobalThis$VIRTUO","useSizeWithElRef","callbackRef","_el","elRef","useSize","useChangedListContentsSizes","itemSize","scrollContainerStateCallback","customScrollParent","ranges","dataset","knownSize","scrollableElement","correctItemSize","dimension","useScrollTop","smoothScrollTargetReached","scrollerElement","scrollerRefCallback","scrollerRef","scrollTopTarget","localRef","scrollByCallback","scrollBy","scrollToCallback","isSmooth","behavior","domIOSystem","scrollContainerState","deviation","statefulScrollTop","viewportHeight","footerHeight","scrollingInProgress","NIL_NODE","lvl","newAANode","newTree","adjust","_last","deleteLast","findMaxKeyValue","skew","walkWithin","isSingle","rl","rlvl","rangesWithin","arrayToRanges","nextValue","_parser2","findIndexOfClosestSmallerOrEqual","findClosestSmallerOrEqual","rangeIncludes","refRange","indexComparator","offsetComparator","itemOffset","offsetPointParser","createOffsetTree","prevOffsetTree","syncStart","sizeTree","offsetTree","prevIndex","prevSize","prevOffset","arrayBinarySearch","kv","_step3","_iterator3","_createForOfIteratorHelperLoose","aOffset","lastOffset","lastSize","sizeStateReducer","groupIndices","newSizeTree","groupSize","insertRanges","_step","_iterator","overlappingRanges","_step2","firstPassDone","shouldInsert","_iterator2","_step2$value","newOffsetTree","_createOffsetTree","groupOffsetTree","offsetOf","_arrayBinarySearch$fi","originalIndexFromItemIndex","hasGroups","groupOffset","SIZE_MAP","sizeSystem","sizeRanges","statefulTotalCount","unshiftWith","shiftWith","firstItemIndex","fixedItemSize","defaultItemSize","trackItemSizes","listRefresh","oldSizes","newSizes","changed","beforeUnshiftWith","shiftWithOffset","SUPPORTS_SCROLL_TO_OPTIONS","normalizeIndexLocation","scrollToIndexSystem","_ref$","_ref$2","scrollToIndex","topListHeight","unsubscribeNextListRefresh","cleartTimeoutRef","unsubscribeListRefresh","normalLocation","retry","listChanged","INITIAL_BOTTOM_STATE","atBottom","notAtBottomBecause","offsetBottom","stateFlagsSystem","isAtBottom","isAtTop","atBottomStateChange","atTopStateChange","atBottomThreshold","isScrolling","isScrollingBy","atBottomState","atBottomBecause","scrollTopDelta","_ref2$","_headerHeight","lastJumpDueToItemResize","prevScrollTop","scrollVelocity","propsReadySystem","propsReady","didMount","ready","initialTopMostItemIndexSystem","scrolledToInitialItem","initialTopMostItemIndex","normalizeFollowOutput","follow","followOutputSystem","_ref$3","followOutput","pendingScrollHandle","scrollToBottom","followOutputBehavior","shouldFollow","refreshed","groupCountsToIndicesAndCount","counts","groupCount","groupedListSystem","groupCounts","topItemsIndexes","groupIndicesAndCount","tupleComparator","rangeComparator","getOverscan","overscan","getViewportIncrease","sizeRangeSystem","listBoundary","fixedHeaderHeight","increaseViewportBy","visibleRange","listTop","listBottom","stickyHeaderHeight","headerVisible","topViewportAddition","bottomViewportAddition","EMPTY_LIST_STATE","topItems","transposeItems","originalIndex","transposedItems","groupRanges","currentRange","currentGroupIndex","buildListState","lastItem","listStateSystem","rangeTopListHeight","stateFlags","itemsRendered","listState","_ref3$","startOffset","endOffset","sizesValue","rangeStartIndex","rangeEndIndex","minStartIndex","offsetPointRanges","endValue","findRange","endReached","startReached","rangeChanged","initialItemCountSystem","initialItemCount","_ref3$2","includedGroupsCount","adjustedCount","scrollSeekSystem","isSeeking","scrollSeekConfiguration","scrollSeekRangeChanged","topItemCountSystem","topItemCount","totalListHeightSystem","totalListHeightChanged","totalListHeight","upwardScrollFixSystem","deviationOffset","prevItems","newDev","onlyItem","prevItem","pItem","_ret","initialScrollTopSystem","initialScrollTop","alignToBottomSystem","alignToBottom","paddingTopAddition","windowScrollerSystem","windowScrollContainerState","windowViewportRect","windowScrollTo","useWindowScroll","scrollIntoViewSystem","_ref2$$behavior","itemTop","featureGroup1System","listSystem","_ref2$2","domIO","_ref2$3","featureGroup1","fixedItemHeight","defaultItemHeight","positionStickyCssValue","useWindowViewportRectRef","viewportInfo","calculateInfo","visibleHeight","visibleWidth","customScrollParentRect","deltaTop","_useSizeWithElRef","scrollAndResizeEventHandler","listComponentPropsSystem","itemContent","groupContent","computeItemKey","headerFooterTag","distinctProp","FooterComponent","TopItemListComponent","ListComponent","ItemComponent","GroupComponent","ScrollerComponent","EmptyPlaceholder","ScrollSeekPlaceholder","addDeprecatedAlias","combinedSystem","propsSystem","deprecatedProps","itemHeight","scrollingStateChange","adjustForPrependedItems","maxHeightCacheSize","HeaderContainer","FooterContainer","ItemContainer","ScrollContainer","GroupContainer","ListContainer","emptyComponent","scrollSeek","deprecateComponentProp","DefaultScrollSeekPlaceholder","GROUP_STYLE","Items","showTopList","_ref5$showTopList","windowScrollContainerStateCallback","_scrollContainerStateCallback","contextPropIfNotDomElement","scrollerStyle","viewportStyle","topItemListStyle","buildScroller","_useScrollTop","buildWindowScroller","_useScrollTop2","Viewport","viewportRef","WindowViewport","TopItemListContainer","TopItemList","TheViewport","WindowScroller","Scroller","_systemToComponent","INITIAL_GRID_STATE","itemWidth","PROBE_GRID_STATE","buildItems","gridSystem","_ref$4","gridState","viewportDimensions","itemDimensions","_ref4$","_ref4$$","viewportWidth","perRow","itemsPerRow","_gridLayout","gridLayout","gridComponentPropsSystem","itemClassName","listClassName","GridItems","scrollHeightCallback","firstItem","tableComponentPropsSystem","fixedHeaderContent","TableComponent","TableHeadComponent","TableBodyComponent","TableRowComponent","FillerRow","paddingTopEl","paddingBottomEl","theadRef","TheScroller","TheTable","TheTHead","theHead","borderSpacing","Virtuoso","StyledTreeItemRoot","treeItemClasses","StyledTreeItem","labelIcon","LabelIcon","labelInfo","labelText","ActivityLog","activityLog","setActivityLog","setActiveFilters","openGroup","setOpenGroup","dashboardContent","setDashboardContent","newNotif","read_logs","activitylogData","toHistory","setToHistory","openHistory","setOpenHistory","setHistory","openTypesMenu","setOpenTypesMenu","openTypesMobile","handleClickTypes","handleCloseTypes","openHistoryMenu","setOpenHistoryMenu","openHistoryMobile","handleClickHistory","handleCloseHistory","handleGroupRequest","pushToHistory","historyList","pushAllToHistory","activeLogs","history_logs","handleRead","handleHistoryMany","many","handleReadMany","handleReadAll","contentHistory","virtList","borderRightStyle","ArrowDropDownIcon","ArrowRightIcon","ChatIcon","ApartmentIcon","ForumIcon","LocalOfferIcon","HistoryIcon","MarkChatReadIcon","MoveDownIcon","LibraryAddCheckIcon","companyIcon","avatarLink","leftImg","rightImg","leftTooltip","rightTooltip","social_group_name","inviter_first_name","inviter_last_name","inviter_username","inviter","senderName","SupportAgentIcon","aria-expanded","LastWeekOnlineHours","weekData","LastWeekOfflineHours","OfficeHoursCard","disableIcon","WorkOffIcon","LocationCard","setSite","sites","setSites","sitesArray","LocationOnIcon","location_enabled","Dashboard","isSmaller","setHeight","pt","mobileStyle","devGroup","PhoneAndroidIcon","group_name","disabledContent","deleteContent","restoreContent","statusHelperIcon","bluetoothHelperIcon","macAddresses","activeMacAddresses","deviceId","visibilityDialog","setVisibilityDialog","deleteDialog","setDeleteDialog","openAdd","setOpenAdd","valueAdd","setValueAdd","newMacAddress","setNewMacAddress","addrBluetooth","setAddrBluetooth","macAddressAlreadyTaken","device_groups","addresses","addr","handleAddressAdd","bluetooth","device_group","handleAddressVisibility","handleAddressRemove","BluetoothIcon","SignalWifi3BarIcon","rowActiveAddresses","wlan_sa","lastseen","VisibilityIcon","DeleteIcon","contentAdd","DeviceUnknownIcon","PhoneIphoneIcon","TabletAndroidIcon","TabletIcon","ComputerIcon","DesktopMacIcon","TvIcon","HeadphonesIcon","WatchIcon","RouterIcon","badgeScale","badgeOpacity","customTooltip","hasBluetooth","hasWifi","DeviceIcons","dataVendorInfo","onlineDevs","setOnlineDevs","deviceData","nameEdit","setNameEdit","devName","setDevName","closeEditName","handleDeviceName","getDataVendorInfo","addressIndex","setAddressIndex","vendorInfo","mac","GetDeviceIcon","LocationOffIcon","EditIcon","DataGridMacAddress","cachedType","detectScrollType","dummy","getNormalizedScrollLeft","easeInOutSin","getTabScrollButtonUtilityClass","TabScrollButtonRoot","TabScrollButton","getTabsUtilityClass","TabsRoot","scrollButtons","scrollButtonsHideMobile","TabsScroller","scroller","hideScrollbar","scrollableX","scrollableY","FlexContainer","flexContainer","flexContainerVertical","centered","TabsIndicator","indicator","indicatorColor","TabsScrollbarSize","scrollbarHeight","setMeasurements","defaultIndicatorStyle","Tabs","ariaLabelledBy","allowScrollButtonsMobile","ScrollButtonComponent","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","visibleScrollbar","scrollable","scrollStart","indicatorStyle","setIndicatorStyle","displayScroll","setDisplayScroll","setScrollerStyle","valueToIndex","tabsRef","tabListRef","getTabsMeta","tabsNode","tabsMeta","tabMeta","scrollLeftNormalized","tab","updateIndicatorState","startIndicator","startValue","correction","newIndicatorStyle","dStart","dSize","scrollValue","ease","animate","moveTabsScroll","getScrollSize","containerSize","totalSize","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","nextScrollStart","updateScrollButtonState","showStartScroll","showEndScroll","handleTabsScroll","updateIndicator","updateScrollButtons","childValue","conditionalElements","scrollbarSizeListener","scrollButtonsActive","showScrollButtons","scrollButtonStart","scrollButtonEnd","getConditionalElements","previousItemKey","nextItemKey","getTabUtilityClass","TabRoot","wrapped","iconPosition","Tab","iconWrapper","TabPanel","a11yProps","DeviceRoutes","parseLocation","PermDeviceInformationIcon","RouterLink","DeviceView","DeviceCalendar","setModalOpen","getCardMediaUtilityClass","CardMediaRoot","isMediaComponent","isImageComponent","media","MEDIA_COMPONENTS","IMAGE_COMPONENTS","CardMedia","composedStyle","SocialGroupModal","modalStyleMobile","activityLogOn","modalOpen","setActivyLogOn","BallotIcon","handleChangeGroup","dayOptions","openCreatorDialog","setOpenCreatorDialog","existingValue","contentPublic","contentPublicSocialsGroup","contentPublicCalendar","contentLeaveGroup","toastDataShareGroup","GroupSettings","openLeaveGroup","setOpenLeaveGroup","valueLeaveGroup","setValueLeaveGroup","userGroupId","setUserGroupId","publicSocialUser","permissions","publicDashboardUser","public_dashboard","publicCalendarUser","startTimeUser","endTimeUser","daysEnabledUser","handleSubmitGroup","controlGroup","formStateGroup","registerGroup","watchGroup","setValueGroup","handleLeaveGroup","handleChangeUser","alwaysActiveGroup","handleGetUrl","SocialGroupHeader","SocialGroupSettingsUser","SocialGroupSettingsAdmin","SocialGroupActivityLogModal","activityLogModal","setActivityLogModal","activityData","SocialGroupToolbar","inviteProfile","setInviteProfile","openInvite","setOpenInvite","contentInvite","GroupInvitations","myConnectionsData","members","SocialGroupInviteDatagrid","GroupRoutes","cloudGroup","bulkGroup","GroupView","toastRequestSent","GroupsList","userGroups","setContent","openReq","setOpenReq","emailNotif","setEmailNotif","socialgrouppublicData","handleRequestSend","contentDialog","contentEmailNotif","userMap","oldUser","ProfileIcon","statusColor","badgeAnimation","ProfileText","userData","ProfileCalendar","swrSiteData","showAddress","setShowAddress","showSite","setShowSite","fetchedWeek","fetchedUser","hiddenDate","site_id","PlaceIcon","findDevgroup","contentHelperIcon","locationHelperIcon","InteractiveDeviceList","handleDeviceRemove","handleDeviceVisibility","handleDeviceLocation","handleDeleteDevGroup","openDelete","setOpenDelete","valueDelete","setValueDelete","openLocation","setOpenLocation","valueLocation","setValueLocation","everyCheckboxIsFalse","checkboxBooleansArray","checkHowManyBooleansAreTrue","contentTrack","contentLocationTrack","contentDelete","activeAddresses","ReportIcon","TagsInput2","selectedItem","setSelectedItem","selectedTags","addAddress","newSelectedItem","setDeviceType","devGroupName","setDevGroupName","devLocation","setDevLocation","devVisible","setDevVisible","deviceType","setMacAddresses","handleCreateDevGroup","popover","setPopover","handleDelete","newMacAddresses","groupNameAlreadyTaken","DisplayDeviceIcons","MacTagsInput","SocialLinks","PhoneInput","contentLocation","contentPublicSocials","contentPushNotification","contentAllowTracking","updateToast","handleChangeLocation","handleChangeNotification","handleChangePublicSocials","handleChangePublic","handleChangeCalendar","handleChangeTracking","dialogOpen","setDialogOpen","handleDeviceLocationMany","asd","allow_tracking","handleContent","contentPic","toastDataShareUser","ProfileSettings","openPic","setOpenPic","valuePic","setValuePic","firstName","setFirstName","lastName","setLastName","setTz","setTitle","handleProfileSave","ProfilePermissions","SocialGroupPermissionCheck","publicSocial","setPublicSocial","publicDashboard","setPublicDashboard","publicCalendar","setPublicCalendar","ProfileMutualSocialGroups","userPersonalId","mutualSocialGroups","socialGroupsData","setUserData","onEnterChecked","setOnEnterChecked","alarmObj","alarms","on_enter","onExitChecked","setOnExitChecked","on_exit","swrUserData","handleEnterAlarmCheck","handleExitAlarmCheck","ProfileDevice","SocialGroupInvite","groupData","setGroupData","duplicateGroup","setDuplicateGroup","publicDashboardCheck","setPublicDashboardCheck","publicSocialCheck","setPublicSocialCheck","publicCalendarCheck","setPublicCalendarCheck","getGroupInfo","decoded","handleJoin","startOfYear","endOfYear","ITEM_HEIGHT","boxStyle","CreateToken","getOrganizationList","organizationListData","organizationList","setOrganizationList","activeOrg","setActiveOrg","selectedSocial","setSelectedSocial","selectedCompany","setSelectedCompany","selectedSites","setSelectedSites","companySelectData","siteSelectData","groupPerms","setGroupPerms","companyPerms","setCompanyPerms","socialsToAdd","setSocialsToAdd","companiesToAdd","setCompaniesToAdd","socialGroupModalOpen","toggleSocialGroupModal","companyModalOpen","toggleCompanyModal","createSuccess","setCreateSuccess","createError","setCreateError","copyToken","setCopyToken","newToken","setNewToken","handleCreateToken","companies","organization","ModifyToken","currentToken","setCurrentToken","deleteSuccess","setDeleteSuccess","deleteError","setDeleteError","selectedSocialAdd","setSelectedSocialAdd","selectedSocialRemove","setSelectedSocialRemove","selectedCompanyRemove","setSelectedCompanyRemove","addPerms","setAddPerms","addModalOpen","toggleAddModal","removeModalOpen","toggleRemoveModal","siteAddModalOpen","toggleSiteAddModal","siteRemoveModalOpen","toggleSiteRemoveModal","handleAddToToken","handleRemoveFromToken","handleAddSites","handleRemoveSites","handleDeleteToken","validV4","uuidValidate","uuidVersion","OrganizationShare","getOrg","orgData","organizationData","setOrganizationData","orgId","validId","setValidId","setShared","org_shared","handleShareOrg","handleRevokeOrg","bgWhite","disableAlign","remFontSize","maxFontSize","minFontSize","sizeBelow","sizeAbove","alignProperty","responsiveProperty","responsiveFontSizes","profileId","titles","newTitle","DrawerMobile","DashboardMobile","ProfileView","CompanyView","MyConnectionsView","AdminUsers","AdminTokens","getStepperUtilityClass","StepContext","getStepConnectorUtilityClass","StepConnectorRoot","alternativeLabel","StepConnectorLine","borderTopStyle","borderTopWidth","borderLeftStyle","StepConnector","StepperRoot","defaultConnector","Stepper","activeStep","connector","nonLinear","getStepUtilityClass","StepRoot","activeProp","completedProp","newChildren","getStepIconUtilityClass","_circle","StepIconRoot","StepIconText","StepIcon","classNameProp","getStepLabelUtilityClass","StepLabelRoot","StepLabelLabel","StepLabelIconContainer","StepLabelLabelContainer","labelContainer","StepLabel","StepIconComponent","StepIconComponentProp","StepIconProps","iconContext","setFirst_name","setLast_name","usernameValidation","setLocation_enabled","setPush_enabled","setPublic_social","contentPublicSocial","setPublic_dashboard","setPublic_calendar","setAllow_tracking","termsValid","setTermsValid","AccountCreateStepper","setActiveStep","setSkipped","isStepSkipped","newSkipped","prevActiveStep","AccountValid","ProfileValid","stepProps","isStepOptional","DataSharing","AccountSettings","AccountCreate","TermsConditions","RootRoute","App","ReactDOMClient","SignalWifiConnectedNoInternet4Icon","checkValidServiceWorker","serviceWorkerRegistration","reportWebVitals"],"sourceRoot":""}