{"version":3,"sources":["../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../modules/HistoryContext.js","../../modules/createNameContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/jss/dist/jss.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/@material-ui/core/esm/styles/createBreakpoints.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/react-dom/index.js","../node_modules/@material-ui/core/esm/styles/colorManipulator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@material-ui/core/esm/utils/useEventCallback.js","../node_modules/is-in-browser/dist/module.js","../node_modules/@material-ui/core/esm/styles/useTheme.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/cookie/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@material-ui/core/esm/colors/common.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/redactEmail.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@material-ui/core/esm/utils/useForkRef.js","../node_modules/react-is/index.js","../node_modules/@material-ui/core/esm/styles/defaultTheme.js","../node_modules/@material-ui/system/esm/merge.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/redux/es/redux.js","../node_modules/@material-ui/core/esm/colors/grey.js","../node_modules/@material-ui/core/esm/colors/indigo.js","../node_modules/@material-ui/core/esm/colors/pink.js","../node_modules/@material-ui/core/esm/colors/red.js","../node_modules/@material-ui/core/esm/colors/orange.js","../node_modules/@material-ui/core/esm/colors/blue.js","../node_modules/@material-ui/core/esm/colors/green.js","../node_modules/universal-cookie/es6/utils.js","../node_modules/universal-cookie/es6/Cookies.js","../node_modules/universal-cookie/es6/index.js","../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","../node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","../node_modules/react-cookie/es6/Cookies.js","../node_modules/react-cookie/es6/CookiesContext.js","../node_modules/@material-ui/styles/esm/useTheme/useTheme.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/@material-ui/icons/Close.js","../node_modules/@material-ui/core/esm/utils/setRef.js","../microsoftTeams/webpack/universalModuleDefinition","../microsoftTeams/node_modules/debug/node_modules/ms/index.js","../microsoftTeams/node_modules/debug/src/browser.js","../microsoftTeams/node_modules/debug/src/common.js","../microsoftTeams/node_modules/uuid/index.js","../microsoftTeams/node_modules/uuid/lib/bytesToUuid.js","../microsoftTeams/node_modules/uuid/lib/rng-browser.js","../microsoftTeams/node_modules/uuid/v1.js","../microsoftTeams/node_modules/uuid/v4.js","../microsoftTeams/webpack/bootstrap","../webpack:/microsoftTeams/webpack/runtime/define property getters","../webpack:/microsoftTeams/webpack/runtime/hasOwnProperty shorthand","../webpack:/microsoftTeams/webpack/runtime/make namespace object","../microsoftTeams/src/internal/constants.ts","../microsoftTeams/src/internal/globalVars.ts","../microsoftTeams/src/internal/telemetry.ts","../microsoftTeams/src/public/interfaces.ts","../microsoftTeams/src/public/constants.ts","../microsoftTeams/src/internal/utils.ts","../microsoftTeams/src/public/runtime.ts","../microsoftTeams/src/public/authentication.ts","../microsoftTeams/src/public/dialog.ts","../microsoftTeams/src/public/menus.ts","../microsoftTeams/src/public/teamsAPIs.ts","../microsoftTeams/src/public/app.ts","../microsoftTeams/src/public/pages.ts","../microsoftTeams/src/public/version.ts","../microsoftTeams/src/internal/internalAPIs.ts","../microsoftTeams/src/internal/handlers.ts","../microsoftTeams/src/internal/communication.ts","../microsoftTeams/src/private/logs.ts","../microsoftTeams/src/private/interfaces.ts","../microsoftTeams/src/private/conversations.ts","../microsoftTeams/src/public/appInstallDialog.ts","../microsoftTeams/src/private/privateAPIs.ts","../microsoftTeams/src/internal/deepLinkUtilities.ts","../microsoftTeams/src/internal/deepLinkConstants.ts","../microsoftTeams/src/public/media.ts","../microsoftTeams/src/public/barCode.ts","../microsoftTeams/src/public/chat.ts","../microsoftTeams/src/public/geoLocation.ts","../microsoftTeams/src/internal/mediaUtil.ts","../microsoftTeams/src/public/adaptiveCards.ts","../microsoftTeams/src/public/appWindow.ts","../microsoftTeams/src/public/location.ts","../microsoftTeams/src/public/meeting.ts","../microsoftTeams/src/public/monetization.ts","../microsoftTeams/src/public/calendar.ts","../microsoftTeams/src/public/mail.ts","../microsoftTeams/src/public/people.ts","../microsoftTeams/src/public/profile.ts","../microsoftTeams/src/public/video.ts","../microsoftTeams/src/public/search.ts","../microsoftTeams/src/public/sharing.ts","../microsoftTeams/src/public/stageView.ts","../microsoftTeams/src/public/webStorage.ts","../microsoftTeams/src/public/call.ts","../microsoftTeams/src/public/appInitialization.ts","../microsoftTeams/src/public/settings.ts","../microsoftTeams/src/public/tasks.ts","../microsoftTeams/src/public/liveShareHost.ts","../microsoftTeams/src/public/publicAPIs.ts","../microsoftTeams/src/public/navigation.ts","../microsoftTeams/src/internal/profileUtil.ts","../microsoftTeams/src/private/files.ts","../microsoftTeams/src/private/meetingRoom.ts","../microsoftTeams/src/private/notifications.ts","../microsoftTeams/src/private/remoteCamera.ts","../microsoftTeams/src/private/appEntity.ts","../microsoftTeams/src/private/teams.ts","../microsoftTeams/src/private/videoEx.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/symbol-observable/es/index.js","../node_modules/hyphenate-style-name/index.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/webpack/buildin/global.js","../node_modules/@material-ui/core/esm/styles/transitions.js","../node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@material-ui/system/esm/breakpoints.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/object-assign/index.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@material-ui/core/esm/styles/createMixins.js","../node_modules/@material-ui/core/esm/styles/createPalette.js","../node_modules/@material-ui/core/esm/styles/createTypography.js","../node_modules/@material-ui/core/esm/styles/shadows.js","../node_modules/@material-ui/core/esm/styles/shape.js","../node_modules/@material-ui/core/esm/styles/createSpacing.js","../node_modules/@material-ui/core/esm/styles/createMuiTheme.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","../node_modules/@material-ui/core/esm/styles/zIndex.js","../node_modules/@material-ui/core/esm/IconButton/IconButton.js","../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@material-ui/core/esm/Hidden/HiddenJs.js","../node_modules/@material-ui/core/esm/Hidden/HiddenCss.js","../node_modules/@material-ui/core/esm/Hidden/Hidden.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/@material-ui/core/colors/purple.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/@material-ui/core/esm/SvgIcon/index.js","../node_modules/process/browser.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@material-ui/utils/esm/deepmerge.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","../node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","../node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","../node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","../node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","../node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","../node_modules/@material-ui/core/esm/ButtonBase/Ripple.js","../node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js","../node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js","../node_modules/react-cookie/es6/useCookies.js","../node_modules/react-cookie/es6/utils.js","../node_modules/@material-ui/core/esm/withWidth/withWidth.js","../node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","../node_modules/@material-ui/system/esm/spacing.js","../node_modules/@material-ui/system/esm/memoize.js","../node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","../node_modules/react-cookie/es6/CookiesProvider.js","../node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/bytesToUuid.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js"],"names":["module","exports","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","getOwnPropertyDescriptors","defineProperties","defineProperty","_extends","assign","prototype","hasOwnProperty","call","this","_objectWithoutProperties","excluded","sourceSymbolKeys","indexOf","propertyIsEnumerable","historyContext","name","context","createContext","createNamedContext","Router","location","props","computeRootMatch","path","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","unlisten","render","RouterContext","value","history","state","match","staticContext","HistoryContext","children","React","Component","Lifecycle","onMount","componentDidUpdate","onUpdate","prevProps","onUnmount","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","to","method","createLocation","prevLocation","locationsAreEqual","matchPath","options","Array","exact","strict","sensitive","concat","matched","cacheKey","pathCache","result","regexp","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","element","useContext","useHistory","useLocation","_objectWithoutPropertiesLoose","sourceKeys","_inheritsLoose","subClass","superClass","create","constructor","__proto__","plainObjectConstrurctor","cloneStyle","style","isArray","map","newStyle","createRule","decl","jss","declCopy","rule","plugins","onCreateRule","join","by","toCssValue","ignoreImportant","cssValue","indentStr","str","indent","index","toCss","selector","_options$indent","fallbacks","fallback","prop","_prop","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","escape","replace","BaseStyleRule","type","isProcessed","renderer","renderable","sheet","Renderer","undefined","force","newValue","process","onChangeValue","isEmpty","isDefined","remove","removeProperty","setProperty","attached","StyleRule","_BaseStyleRule","_this","selectorText","id","scoped","generateId","_assertThisInitialized","_proto2","applyTo","json","toJSON","toString","opts","link","_createClass","set","setSelector","replaceRule","get","pluginStyleRule","parent","defaultToStringOptions","atRegExp","ConditionalRule","styles","at","query","rules","atMatch","RuleList","add","_proto","getRule","addRule","onProcessRule","keyRegExp","pluginConditionalRule","test","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","val","keyframes","replaceRef","refKeyframe","plugin","onProcessStyle","KeyframeRule","_len","args","_key","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","defaultUpdateOptions","forceUpdateOptions","raw","counter","classes","ruleOptions","_this$options","register","splice","unregister","slice","update","data","updateOne","_this$options2","styleRule","nextValue","_nextValue","_prevValue","css","StyleSheet","deployed","queue","attach","deploy","detach","insertRule","addRules","added","deleteRule","_this$rules","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","reduce","SheetsRegistry","reset","_temp","_ref","globalThis$1","globalThis","window","Math","self","Function","ns","moduleId","createGenerateId","ruleCounter","jssId","prefix","classNamePrefix","String","minify","memoize","fn","getPropertyValue","cssRule","attributeStyleMap","err","delete","getHead","document","querySelector","findPrevNode","registry$1","insertionPoint","findHigherSheet","parentNode","node","findHighestSheet","nextSibling","comment","text","head","childNodes","nodeType","nodeValue","trim","findCommentNode","getNonce","getAttribute","_insertRule","container","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","meta","el","createElement","textContent","createStyle","setAttribute","nonce","nextNode","insertBefore","insertionPointElement","appendChild","insertStyle","Boolean","removeChild","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","version","isInBrowser","setup","createStyleSheet","removeStyleSheet","getDynamicStyles","extracted","hasCSSTOMSupport","_toConsumableArray","arr","arrayLikeToArray","iterableToArray","unsupportedIterableToArray","TypeError","condition","message","Error","isAbsolute","charAt","spliceOne","list","k","n","pop","resolvePathname","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","substr","valueOf","obj","valueEqual","a","b","every","item","aValue","bValue","stripLeadingSlash","toLowerCase","hasBasename","stripTrailingSlash","search","hash","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","e","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","isActive","listener","notifyListeners","canUseDOM","getConfirmation","confirm","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","random","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","lastIndexOf","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","canGo","toVal","mix","y","tmp","x","createBreakpoints","breakpoints","_breakpoints$values","xs","sm","md","lg","xl","_breakpoints$unit","unit","_breakpoints$step","step","other","between","start","endIndex","down","upperbound","only","width","withStyles","stylesOrCreator","withStylesWithoutDefault","defaultTheme","capitalize","string","_formatMuiErrorMessage","toUpperCase","_defineProperty","configurable","writable","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","getOwnPropertyNames","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","warning","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","error","hexToRgb","color","re","RegExp","colors","parseInt","round","rgbToHex","decomposeColor","int","hex","intToHex","hslToRgb","h","s","l","f","rgb","recomposeColor","marker","parseFloat","getContrastRatio","foreground","background","lumA","getLuminance","lumB","pow","Number","toFixed","emphasize","coefficient","darken","lighten","fade","_slicedToArray","arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","nonIterableRest","useEnhancedEffect","useEventCallback","ref","current","_typeof","isBrowser","useTheme","useThemeWithoutDefault","_unsupportedIterableToArray","o","minLen","parse","opt","pairs","pairSplitRegExp","dec","decode","pair","eq_idx","tryDecode","serialize","enc","encode","fieldContentRegExp","maxAge","isNaN","floor","domain","expires","toUTCString","httpOnly","secure","sameSite","decodeURIComponent","encodeURIComponent","common","black","white","ReferenceError","warn","_objectSpread","_classCallCheck","instance","Constructor","_defineProperties","_setPrototypeOf","p","setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","OutboundLink","_Component","_inherits","protoProps","staticProps","_super","_this$props","eventLabel","onClick","trackerNames","eventMeta","label","sameTarget","normalClick","ctrlKey","shiftKey","metaKey","button","preventDefault","trackLink","_this$props2","handleClick","rel","PropTypes","isRequired","func","arrayOf","redactEmail","smallWords","toTitleCase","title","log","info","gaCalls","calls","ga","resetCalls","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","len","arr2","_isNotBrowser","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","_redactEmail","internalGa","_window","TestModeAPI","_format","titleCase","redactingEmail","_str","format","_gaCommand","command","_initialize","gaTrackingID","debug","useExistingGa","gaOptions","addTrackers","configsOrTrackingId","config","trackingId","initialize","testMode","standardImplementation","g","r","m","gaAddress","q","getElementsByTagName","async","src","loadGA","alwaysSendToDefaultTracker","_len2","_key2","JSON","stringify","fieldsObject","send","fieldObject","pageview","rawPath","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","timing","category","variable","timingCategory","timingVar","timingValue","timingLabel","_ref2","nonInteraction","transport","eventCategory","eventAction","eventValue","exception","_ref3","description","fatal","exDescription","exFatal","rawName","trackerName","requireString","execute","pluginName","payload","actionType","_len3","_key3","outboundLink","hitCallback","safetyCallbackCalled","t","setTimeout","clearTimeout","testModeAPI","UnboundOutboundLink","origTrackLink","Defaults","useForkRef","refA","refB","refValue","setRef","createMuiTheme","merge","acc","deepmerge","clone","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","getState","subscribe","isSubscribed","dispatch","replaceReducer","nextReducer","observable","outerSubscribe","observer","observeState","unsubscribe","$$observable","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","compose","funcs","arg","applyMiddleware","middlewares","store","_dispatch","middlewareAPI","chain","middleware","grey","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","indigo","pink","red","orange","blue","green","readCookie","cleanValue","cleanupCookieValue","doNotParse","isParsingCookie","__assign","Cookies","cookies","changeListeners","HAS_DOCUMENT_COOKIE","cookie","parseCookies","Promise","catch","_updateBrowserValues","parseOptions","_emitChange","getAll","name_1","_a","finalOptions","addChangeListener","removeChangeListener","idx","ThemeContext","hasSymbol","for","CookiesContext","Provider","Consumer","_interopRequireDefault","default","_react","_default","d","exec","fmtShort","ms","msAbs","abs","fmtLong","plural","isPlural","isFinite","long","formatArgs","useColors","namespace","humanize","diff","c","lastC","save","namespaces","storage","setItem","removeItem","load","getItem","DEBUG","__nwjs","documentElement","WebkitAppearance","firebug","table","$1","localStorage","destroy","warned","j","v","env","createDebug","prevTime","namespacesCache","enabledCache","enableOverride","enabled","curr","prev","coerce","formatter","formatters","selectColor","extend","init","delimiter","newDebug","toNamespace","stack","disable","names","skips","enable","charCodeAt","v1","v4","uuid","byteToHex","buf","offset","bth","getRandomValues","crypto","bind","msCrypto","rnds8","Uint8Array","rnds","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","msecs","getTime","nsecs","dt","tl","tmh","ii","__webpack_module_cache__","__webpack_require__","cachedModule","__webpack_modules__","definition","toStringTag","defaultSDKVersionForCompatCheck","nonFullScreenVideoModeAPISupportVersion","locationAPIsRequiredVersion","mediaAPISupportVersion","validOrigins","userOriginUrlValidationRegExp","teamsDeepLinkProtocol","teamsDeepLinkHost","errorLibraryNotInitialized","initializeCalled","initializeCompleted","additionalValidOrigins","isFramelessWindow","printCapabilityEnabled","topLevelLogger","getLogger","FileOpenPreference","ActionObjectType","SecondaryM365ContentIdName","ErrorCode","DevicePermission","HostClientType","HostName","FrameContexts","TeamType","UserTeamRole","DialogDimension","Inline","Desktop","Web","M365Content","DriveId","GroupId","SiteId","UserId","NOT_SUPPORTED_ON_PLATFORM","INTERNAL_ERROR","NOT_SUPPORTED_IN_CURRENT_CONTEXT","PERMISSION_DENIED","NETWORK_ERROR","NO_HW_SUPPORT","INVALID_ARGUMENTS","UNAUTHORIZED_USER_OPERATION","INSUFFICIENT_RESOURCES","THROTTLE","USER_ABORT","OPERATION_TIMED_OUT","OLD_PLATFORM","FILE_NOT_FOUND","SIZE_EXCEEDED","GeoLocation","Media","desktop","web","android","ios","ipados","rigel","surfaceHub","teamsRoomsWindows","teamsRoomsAndroid","teamsPhones","teamsDisplays","office","outlook","outlookWin32","teams","teamsModern","settings","content","authentication","task","sidePanel","stage","meetingStage","Standard","Edu","Class","Plc","Staff","Admin","User","Guest","Large","Medium","Small","ChannelType","TaskModuleDimension","Regular","Private","Shared","errorNotSupportedOnPlatform","errorCode","minAdaptiveCardVersion","validateHostAgainstPattern","pattern","host","suffix","getGenericOnCompleteHandler","errorMessage","success","reason","compareSDKVersions","v2","NaN","v1parts","v2parts","isValidPart","callCallbackWithSdkErrorFromPromiseAndReturnPromise","funcHelper","then","isHostAdaptiveCardSchemaVersionUnsupported","hostAdaptiveCardSchemaVersion","majorVersion","minorVersion","runtimeLogger","isLatestRuntimeVersion","runtime","apiVersion","isRuntimeInitialized","supports","teamsRuntimeConfig","appInstallDialog","appEntity","chat","conversations","dialog","bot","logs","meetingRoom","menus","monetization","notifications","pages","appButton","tabs","backStack","fullTrust","remoteCamera","sharing","stageView","teamsCore","video","v1HostClientTypes","upgradeChain","versionToUpgradeFrom","upgradeToNextVersion","previousVersionRuntime","hostVersionsInfo","isLegacyTeams","card","versionConstants","capability","hostClientTypes","people","joinedTeams","webStorage","generateBackCompatRuntimeConfigLogger","applyRuntimeConfigLogger","applyRuntimeConfig","runtimeConfig","ffRuntimeConfig","outdatedRuntime","upgrade","fastForwardRuntime","freeze","app","internalLogger","ensureInitializeCalledLogger","ensureInitializedLogger","ensureInitializeCalled","GlobalVars","ensureInitialized","expectedFrameContexts","found","frameContext","isCurrentSDKVersionAtLeast","requiredVersion","clientSupportedSDKVersion","throwExceptionIfMobileApiIsNotSupported","hostClientType","authHandlers","authWindowMonitor","authParams","authenticateHelper","authenticateParameters","resolve","reject","sendMessageToParentAsync","height","isExternal","response","fail","closeAuthenticationWindow","Communication","currentWindow","outerWidth","outerHeight","left","screenLeft","screenX","top","screenTop","screenY","childWindow","open","startAuthenticationWindowMonitor","handleFailure","openAuthenticationWindow","stopAuthenticationWindowMonitor","close","childOrigin","clearInterval","removeHandler","setInterval","closed","savedChildOrigin","sendMessageEventToChild","registerHandler","handleSuccess","redirectIfWin32Outlook","callbackUrl","updateUrlParameter","uri","registerAuthenticationHandlers","authenticate","isDifferentParamsInCall","authenticateParams","successCallback","failureCallback","getAuthToken","authTokenRequest","resources","claims","silent","getAuthTokenHelper","getUser","userRequest","notifySuccess","sendMessageToParent","waitForMessageQueue","parentWindow","notifyFailure","DataResidency","Public","EUDB","Other","storedMessages","handleDialogMessage","isSupported","getDialogInfoFromUrlDialogInfo","urlDialogInfo","size","fallbackUrl","getDialogInfoFromBotUrlDialogInfo","botUrlDialogInfo","dialogInfo","completionBotId","submitHandler","messageFromChildHandler","submit","appIds","sendMessageToParentFromDialog","sendMessageToDialog","registerOnMessageFromParent","reverse","resize","dimensions","adaptiveCard","isAdaptiveCardVersionSupported","adaptiveCardSchemaVersion","getDialogInfoFromAdaptiveCardDialogInfo","adaptiveCardDialogInfo","getDialogInfoFromBotAdaptiveCardDialogInfo","botAdaptiveCardDialogInfo","getAdaptiveCardDialogInfoFromTaskInfo","taskInfo","getBotAdaptiveCardDialogInfoFromTaskInfo","DisplayMode","ifRoom","overflowOnly","navBarMenuItemPressHandler","actionMenuItemPressHandler","viewConfigItemPressHandler","selected","handleViewConfigItemPress","handleNavBarMenuItemPress","handleActionMenuItemPress","MenuItem","MenuListType","dropDown","popOver","setUpViews","viewConfig","handler","setNavBarMenu","items","showActionMenu","print","registerOnLoadHandlerHelper","versionSpecificHelper","HandlersPrivate","loadHandler","registerBeforeUnloadHandlerHelper","beforeUnloadHandler","enablePrintCapability","keyCode","cancelBubble","stopImmediatePropagation","registerOnLoadHandler","registerBeforeUnloadHandler","appLogger","Messages","AppLoaded","Success","Failure","ExpectedFailure","FailedReason","AuthFailed","Timeout","ExpectedFailureReason","PermissionError","NotFound","Throttling","Offline","isInitialized","getFrameContext","validMessageOrigins","timeoutInMs","timeoutError","timeoutHandle","runWithTimeout","initializeHelperLogger","initializeHelper","handlers","handleThemeChange","handleLoad","handleBeforeUnload","initializePromise","CommunicationPrivate","messageListener","evt","messageSource","originalEvent","messageOrigin","origin","protocol","messageOriginHost","some","domainOrPattern","validateOrigin","URL","shouldProcessMessage","parentOrigin","flushMessageQueue","updateRelationships","handleParentMessage","callHandler","called","sendMessageResponseToChild","handleChildMessage","opener","extendedWindow","nativeInterface","onNativeMessage","clientType","initializeCommunication","givenRuntimeConfig","SyntaxError","highestSupportedVersion","newSupports","versionNumber","capabilityReqs","includes","backCompatRuntimeConfig","generateBackCompatRuntimeConfig","combinedOriginUrls","_origin","dedupUrls","_originUrl","processAdditionalValidOrigins","registerOnThemeChangeHandler","themeChangeHandler","hostWindow","_uninitialize","registerBackButtonHandler","registerFullScreenHandler","registerGetLogHandler","registerOnSaveHandler","registerOnRemoveHandler","parentMessageQueue","childMessageQueue","nextMessageId","callbacks","promiseCallbacks","getContext","sendAndUnwrap","legacyContext","actionInfo","locale","sessionId","appSessionId","theme","iconPositionVertical","appIconPosition","osLocaleInfo","parentMessageId","userClickTime","userFileOpenPreference","hostName","ringId","appLaunchId","entityId","subPageId","subEntityId","isFullScreen","isMultiWindow","sourceOrigin","user","userObjectId","userDisplayName","isCallingAllowed","isPSTNCallingAllowed","licenseType","userLicenseType","loginHint","userPrincipalName","tenant","tid","teamsSku","tenantSKU","channel","channelId","channelName","relativeUrl","channelRelativeUrl","membershipType","channelType","defaultOneNoteSectionId","ownerGroupId","hostTeamGroupId","ownerTenantId","hostTeamTenantId","chatId","meeting","meetingId","sharepoint","team","teamId","internalId","teamName","teamType","groupId","templateId","teamTemplateId","isArchived","isTeamArchived","userRole","userTeamRole","sharePointSite","teamSiteUrl","teamSiteDomain","teamSitePath","mySitePath","mySiteDomain","teamSiteId","notifyAppLoaded","appInitializationFailedRequest","notifyExpectedFailure","expectedFailureRequest","openLink","deepLink","setCurrentFrame","frameInfo","returnFocus","navigateForward","registerFocusEnterHandler","registerHandlerHelper","initializeWithFrameContext","getConfig","navigateCrossDomain","navigateToApp","appId","pageId","webUrl","searchParams","append","createTeamsAppLink","shareDeepLink","deepLinkParameters","subPageLabel","subPageWebUrl","navigateToTab","tabInstance","getTabInstances","tabInstanceParameters","getMruTabInstances","saveHandler","registerOnSaveHandlerHelper","registerOnRemoveHandlerHelper","handleSave","saveEvent","SaveEventImpl","handleRemove","setValidityState","validityState","setConfig","instanceConfig","registerChangeConfigHandler","notified","ensureNotNotified","removeEvent","RemoveEventImpl","backButtonPressHandler","navigateBack","registerBackButtonHandlerHelper","handleBackButtonPress","enterFullscreen","exitFullscreen","onHoverEnter","onHoverLeave","currentApp","navigateTo","sendAndHandleSdkError","navigateToDefaultPage","handlersLogger","callHandlerLogger","sendMessage","contexts","registrationHelper","readyToUnload","communicationLogger","actionName","sendAndHandleStatusAndReason","status","sendAndHandleStatusAndReasonWithDefaultError","defaultError","requestId","waitForResponse","sendMessageToParentHelper","argsOrCallback","request","sendMessageToParentHelperLogger","logger","targetWindow","timestamp","now","createMessageRequest","framelessPostMessage","targetOrigin","getTargetOrigin","postMessage","getTargetMessageQueue","handleParentMessageLogger","isPartialResponse","promiseCallback","NotificationTypes","ViewerActionTypes","UserSettingTypes","flushMessageQueueLogger","targetMessageQueue","shift","messageQueueMonitor","createMessageResponse","customEvent","createMessageEvent","uploadCustomApp","manifestBlob","onComplete","sendCustomMessage","sendCustomEvent","registerCustomHandler","customHandler","registerUserSettingsChangeHandler","settingTypes","openFilePreview","filePreviewParameters","objectUrl","downloadUrl","webPreviewUrl","webEditUrl","baseUrl","editFile","viewerAction","fileOpenPreference","conversationId","createTeamsDeepLinkForChat","users","topic","usersSearchParameter","topicSearchParameter","messageSearchParameter","fileDownloadStart","fileDownloadComplete","view","edit","editNew","openConversation","openConversationRequest","sendPromise","onStartConversation","onCloseConversation","closeConversation","getChatMembers","openAppInstallDialog","openAPPInstallDialogParams","createTeamsDeepLinkForAppInstallDialog","barCode","geoLocation","createFile","assembleAttachment","mimeType","file","sequence","sort","Blob","decodeAttachment","attachment","decoded","atob","chunk","byteNumbers","byteArray","blob","chunkSequence","throwExceptionIfMediaCallIsNotSupportedOnMobile","mediaInputs","mediaType","MediaType","VideoAndImage","videoAndImageProps","isMediaCallForVideoAndImageInputs","Video","videoProps","isFullScreenMode","isMediaCallForNonFullScreenVideoMode","Image","imageProps","imageOutputFormats","isMediaCallForImageOutputFormats","validateScanBarCodeInput","barCodeConfig","timeOutIntervalInSec","getAdaptiveCardSchemaVersion","FileFormat","Base64","ID","File","captureImage","that","preview","getMedia","validateGetMediaInputs","getMediaViaCallback","getMediaViaHandler","helper","mediaMimeType","mediaResult","mediaChunk","assemble","MediaControllerEvent","getMediaType","notifyEventToApp","mediaEvent","controllerCallback","StartRecording","onRecordingStarted","notifyEventToHost","mediaControllerEvent","stop","StopRecording","VideoController","CameraStartMode","Photo","Document","Whiteboard","BusinessCard","Source","Camera","Gallery","Audio","ImageUriType","ImageOutputFormats","IMAGE","PDF","selectMedia","maxMediaCount","validateSelectMediaInputs","localAttachments","videoController","isVideoControllerRegistered","mediaArray","invalidInput","oldPlatformError","viewImages","uriList","validateViewImagesInput","scanBarCode","permissions","hasPermission","requestPermission","openChat","openChatRequest","members","openGroupChat","getCurrentLocation","allowChooseLocation","showMap","chooseLocation","showLocation","calendar","mail","profile","appInitialization","tasks","UserMeetingRole","ContainerState","_instance","registerAppButtonClickHandler","registerAppButtonHoverEnterHandler","registerAppButtonHoverLeaveHandler","registerChangeSettingsHandler","tabInfo","subEntityLabel","subEntityWebUrl","executeDeepLink","setFrameContext","getLocation","MicStateChangeReason","startAppAudioHandling","requestAppAudioHandlingParams","isAppHandlingAudio","isHostAudioless","micState","micMuteStateChangedCallback","newMicState","micStateDidUpdate","isMicMuted","setMicStateWithReason","HostInitiated","AppDeclinedToChange","AppFailedToChange","stopAppAudioHandling","doesHandlerExist","AppInitiated","MeetingReactionType","like","heart","laugh","surprised","applause","MeetingType","Unknown","Adhoc","Scheduled","Recurring","Broadcast","MeetNow","CallType","OneOnOneCall","GroupCall","getIncomingClientAudioState","toggleIncomingClientAudio","getMeetingDetails","getAuthenticationTokenForAnonymousUser","getLiveStreamState","requestStartLiveStreaming","streamUrl","streamKey","requestStopLiveStreaming","registerLiveStreamChangedHandler","shareAppContentToStage","appContentUrl","getAppContentStageSharingCapabilities","stopSharingAppContentToStage","getAppContentStageSharingState","registerSpeakingStateChangeHandler","registerRaiseHandStateChangedHandler","registerMeetingReactionReceivedHandler","appShareButton","setOptions","shareInformation","contentUrl","requestAppAudioHandling","updateMicState","openPurchaseExperience","param1","param2","planInfo","callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise","openCalendarItem","openCalendarItemParams","itemId","composeMeeting","composeMeetingParams","attendees","startTime","endTime","subject","attendeeSearchParameter","attendee","startTimeSearchParameter","endTimeSearchParameter","subjectSearchParameter","contentSearchParameter","createTeamsDeepLinkForCalendar","openMailItem","openMailItemParams","composeMail","composeMailParams","ComposeMailType","New","Reply","ReplyAll","Forward","selectPeopleHelper","peoplePickerInputs","setSelected","openOrgWideSearchInChatOrChannel","singleSelect","validatePeoplePickerInput","selectPeople","callCallbackWithErrorOrResultFromPromiseAndReturnPromise","showProfile","showProfileRequest","modality","targetElementBoundingRect","triggerType","persona","identifiers","AadObjectId","Smtp","Upn","validatePersona","validateShowProfileRequest","isValid","targetRectangle","EffectFailureReason","notifyError","VideoFrameFormat","NV12","EffectChangeType","EffectChanged","EffectDisabled","InvalidEffectId","InitializationFailure","registerForVideoFrame","frameCallback","videoFrame","notifyVideoFrameProcessed","notifySelectedVideoEffectChanged","effectChangeType","effectId","registerForVideoEffect","validReason","onChangeHandlerName","onClosedHandlerName","onExecutedHandlerName","registerHandlers","onClosedHandler","onExecuteHandler","onChangeHandler","unregisterHandlers","shareWebContentHelper","shareWebContentRequest","SharingAPIMessages","shareWebContent","shareRequest","validateNonEmptyContent","validateTypeConsistency","validateContentForSupportedTypes","stageViewParams","isWebStorageClearedOnUserLogOut","CallModalities","VideoBasedScreenSharing","Data","startCall","startCallParams","targets","withVideo","withVideoSearchParameter","sourceSearchParameter","createTeamsDeepLinkForCall","requestedModalities","getSettings","setSettings","instanceSettings","getDefaultSizeIfNotProvided","startTask","dialogSubmitHandler","sdkResponse","getBotUrlDialogInfoFromTaskInfo","getUrlDialogInfoFromTaskInfo","ChildAppWindow","updateTask","extra","submitTask","guest","presenter","organizer","alreadyExists","conflict","notFound","files","videoEx","getFluidTenantInfo","getFluidToken","containerId","getFluidContainerId","setFluidContainerId","getNtpTime","registerClientId","clientId","getClientRoles","LiveShareHost","getSdkError","CloudStorageProvider","Dropbox","Box","Sharefile","GoogleDrive","Egnyte","SharePoint","CloudStorageProviderType","Sharepoint","WopiIntegration","Google","OneDrive","Recent","Aggregate","FileSystem","Search","AllFiles","SharedWithMe","SpecialDocumentLibraryType","ClassMaterials","DocumentLibraryAccessType","Readonly","FileDownloadStatus","Downloaded","Downloading","Failed","CloudStorageProviderFileAction","Download","Upload","Delete","getCloudStorageFolders","addCloudStorageFolder","deleteCloudStorageFolder","folderToDelete","getCloudStorageFolderContents","folder","providerCode","isSubdirectory","openCloudStorageFile","getExternalProviders","excludeAddedProviders","copyMoveFiles","selectedFiles","destinationFolder","destinationProviderCode","isMove","getFileDownloads","openDownloadFolder","fileObjectId","addCloudStorageProvider","removeCloudStorageProvider","logoutRequest","addCloudStorageProviderFile","addNewFileRequest","renameCloudStorageProviderFile","renameFileRequest","deleteCloudStorageProviderFile","deleteFileRequest","itemList","downloadCloudStorageProviderFile","downloadFileRequest","uploadCloudStorageProviderFile","uploadFileRequest","registerCloudStorageProviderListChangeHandler","registerCloudStorageProviderContentChangeHandler","getPairedMeetingRoomInfo","sendCommandToPairedMeetingRoom","commandName","registerMeetingRoomCapabilitiesUpdateHandler","capabilities","registerMeetingRoomStatesUpdateHandler","states","showNotification","showNotificationParameters","ControlCommand","Reset","ZoomIn","ZoomOut","PanLeft","PanRight","TiltUp","TiltDown","ErrorReason","CommandResetError","CommandZoomInError","CommandZoomOutError","CommandPanLeftError","CommandPanRightError","CommandTiltUpError","CommandTiltDownError","SendDataError","SessionTerminatedReason","None","ControlDenied","ControlNoResponse","ControlBusy","AckTimeout","ControlTerminated","ControllerTerminated","DataChannelError","ControllerCancelled","ControlDisabled","ControlTerminatedToAllowOtherController","getCapableParticipants","requestControl","participant","sendControlCommand","terminateSession","registerOnCapableParticipantsChangeHandler","registerOnErrorHandler","registerOnDeviceStateChangeHandler","registerOnSessionStatusChangeHandler","selectAppEntity","threadId","categories","getTeamChannels","refreshSiteUrl","getUserJoinedTeams","teamInstanceParameters","getConfigSetting","ErrorLevel","errorLevel","Warn","Fatal","effectParam","updatePersonalizedEffects","effects","notifyFatalError","root","global","ponyfill","uppercasePattern","msPattern","toHyphenLower","hyphenateStyleName","hName","commonjsGlobal","createEventEmitter","on","off","changedBits","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","emitter","getChildContext","componentWillReceiveProps","nextProps","oldValue","_Component2","_this2","getValue","observedBits","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","res","tokens","defaultDelimiter","escaped","capture","group","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","matches","flags","token","segment","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","getThemeProps","propName","__esModule","ReactReduxContext","batch","nullListeners","notify","createListenerCollection","first","clear","Subscription","parentSub","handleChangeWrapper","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","tryUnsubscribe","contextValue","useMemo","subscription","previousState","useEffect","Context","useIsomorphicLayoutEffect","useLayoutEffect","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2$getDisplayName","getDisplayName","_ref2$methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","WrappedComponent","wrappedComponentName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","isContextConsumer","didStoreComeFromProps","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","useReducer","previousStateUpdateResult","useRef","renderedWrappedComponent","Connect","forwarded","hoistStatics","is","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextOwnProps","propsChanged","stateChanged","nextStateProps","statePropsChanged","handleNewState","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","createConnect","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","defaultMapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","defaultMapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","defaultMergePropsFactories","_ref$selectorFactory","defaultSelectorFactory","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","useReduxContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","useDispatch","refEquality","createSelectorHook","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","latestSubscriptionCallbackError","latestSelector","latestSelectedState","storeState","newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","easing","easeInOut","easeOut","easeIn","sharp","duration","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","_options$duration","durationOption","_options$easing","easingOption","_options$delay","delay","animatedProp","getAutoHeightDuration","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","tel","email","password","number","date","month","week","time","datetime","handleKeyDown","altKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","tagName","readOnly","isContentEditable","focusTriggersKeyboardModality","handleBlurVisible","useIsFocusVisible","onBlurVisible","doc","ReactDOM","ownerDocument","possibleConstructorReturn","_createForOfIteratorHelper","F","it","normalCompletion","didErr","_e2","defaultBreakpoints","handleBreakpoints","propValue","styleFromPropValue","themeBreakpoints","_themeBreakpoints","breakpoint","styleFunction","newStyleFunction","extended","filterProps","_arrayWithHoles","_nonIterableRest","propIsEnumerable","toObject","test1","test2","fromCharCode","test3","letter","shouldUseNative","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","C","LinkAnchor","innerRef","navigate","rest","ex","isModifiedEvent","forwardedRef","Link","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","createMixins","spacing","_toolbar","gutters","paddingLeft","paddingRight","toolbar","minHeight","light","primary","secondary","disabled","hint","divider","paper","active","hover","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","direction","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","main","createPalette","palette","_palette$primary","_palette$secondary","_palette$error","_palette$warning","_palette$info","_palette$success","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","augmentColor","mainShade","lightShade","darkShade","contrastText","types","caseAllCaps","textTransform","createTypography","typography","_ref$fontFamily","fontFamily","_ref$fontSize","fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","fontWeight","lineHeight","letterSpacing","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","createShadow","shadows","shape","borderRadius","createSpacing","spacingInput","mui","transform","createUnarySpacing","argument","output","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","_options$typography","typographyInput","muiTheme","overrides","transitions","zIndex","formatMuiErrorMessage","code","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","IconButton","_props$edge","edge","_props$color","_props$disabled","_props$disableFocusRi","disableFocusRipple","_props$size","ButtonBase","clsx","edgeStart","edgeEnd","centerRipple","focusRipple","textAlign","flex","padding","overflow","transition","backgroundColor","marginLeft","marginRight","colorInherit","colorPrimary","colorSecondary","sizeSmall","display","alignItems","justifyContent","SvgIcon","_props$component","_props$fontSize","htmlColor","titleAccess","_props$viewBox","viewBox","focusable","role","muiName","userSelect","fill","flexShrink","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","HiddenJs","visible","_breakpoint","breakpointUp","breakpointDown","isWidthUp","isWidthDown","implementation","oneOf","initialWidth","lgDown","bool","lgUp","mdDown","mdUp","oneOfType","smDown","smUp","xlDown","xlUp","xsDown","xsUp","withWidth","hidden","Hidden","_props$implementation","_props$lgDown","_props$lgUp","_props$mdDown","_props$mdUp","_props$smDown","_props$smUp","_props$xlDown","_props$xlUp","_props$xsDown","_props$xsUp","HiddenCss","assertThisInitialized","symbolObservablePonyfill","fnValuesNs","fnRuleNs","functionPlugin","fnValues","fnRule","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","scope","jssGlobal","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","jssNested","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","convertCase","converted","hyphenate","camelCase","hyphenatedProp","px","percent","addCamelCasedVersion","regExp","newObj","units","border","margin","bottom","right","inset","motion","outline","perspective","gap","grid","iterate","innerProp","_innerProp","defaultUnit","camelCasedOptions","js","vendor","browser","isTouch","jsCssMap","Moz","O","Webkit","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","camelize","pascalize","mask","textOrientation","writingMode","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","order","flex2012","propMap$1","propKeys","prefixCss","multiple","propertyDetectors","computed","getComputedStyle","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","p1","p2","prefixedValue","supportedValue","property","jssVendorPrefixer","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","jssPropsSort","prop0","prop1","jssPreset","functions","vendorPrefixer","propsSort","_SvgIcon","_extends2","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","runClearTimeout","Item","array","nextTick","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","arrayWithoutHoles","nonIterableSpread","u","w","z","A","B","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","K","L","__self","__source","M","$$typeof","_owner","P","Q","R","keyPrefix","count","S","V","T","U","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useImperativeHandle","useState","onError","da","ea","fa","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttributeNS","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","tag","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","nodeName","xb","_valueTracker","setValue","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","activeElement","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","firstChild","Rb","lastChild","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","Xb","Yb","Zb","$b","ac","bc","WeakMap","Map","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","has","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","opacity","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","nd","menuitem","area","br","col","embed","hr","img","input","keygen","param","track","wbr","od","pd","qd","rd","sd","td","body","ud","vd","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","stopPropagation","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","detail","se","ve","which","te","char","ue","we","range","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","clientX","clientY","pageX","pageY","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","mode","elementType","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","hi","pendingContext","ni","pi","qi","retryTime","ji","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","onclick","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","ceil","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","contains","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","vb","Uj","Vj","Wj","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","querySelectorAll","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","skipTempReset","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","originalModule","webpackPolyfill","useMediaQuery","queryInput","supportMatchMedia","matchMedia","_props$options","_props$options$defaul","defaultMatches","_props$options$matchM","_props$options$noSsr","noSsr","_props$options$ssrMat","ssrMatchMedia","_React$useState","setMatch","queryList","updateMatch","_options$withTheme","withTheme","stylesOptions","useStyles","makeStyles","WithStyles","more","pseudoClasses","createGenerateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seed","seedPrefix","getNextCounterId","styleSheet","multiKeyStore","key1","key2","subCache","indexCounter","increment","getStylesCreator","themingEnabled","stylesWithOverrides","noopTheme","getClasses","disableGeneration","cacheClasses","lastProp","lastJSS","generate","mergeClasses","baseClasses","newClasses","stylesCreator","sheetManager","sheetsManager","staticSheet","dynamicStyles","flip","serverGenerateClassName","generateClassName","sheetsRegistry","sheetsCache","dynamicSheet","_ref4","useSynchronousEffect","currentKey","classNamePrefixOption","_options$defaultTheme","stylesOptions2","StylesContext","shouldUpdate","Ripple","_props$pulsate","pulsate","rippleX","rippleY","rippleSize","inProp","in","_props$onExited","onExited","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","handleExited","timeoutId","TouchRipple","_props$center","center","centerProp","ripples","setRipples","nextKey","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","_options$pulsate","_options$center","_options$fakeElement","fakeElement","rect","getBoundingClientRect","sqrt","sizeX","clientWidth","sizeY","clientHeight","TransitionGroup","exit","pointerEvents","position","animationDuration","buttonRefProp","buttonRef","_props$centerRipple","_props$disableRipple","disableRipple","_props$disableTouchRi","disableTouchRipple","_props$focusRipple","focusVisibleClassName","onBlur","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","_props$tabIndex","tabIndex","TouchRippleProps","_props$type","rippleRef","focusVisible","setFocusVisible","_useIsFocusVisible","focusVisibleRef","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","isNonNativeButton","keydownRef","handleKeyUp","ComponentProp","buttonProps","handleUserRef","handleOwnRef","handleRef","_React$useState2","mountedState","setMountedState","enableTouchRipple","WebkitTapHighlightColor","cursor","verticalAlign","textDecoration","borderStyle","useCookies","initialCookies","allCookies","setCookies","previousCookiesRef","onChange","newCookies","oldCookies","dependency","inclusive","breakpointKeys","withThemeOption","_options$noSSR","noSSR","initialWidthOption","WithWidth","contextTheme","_getThemeProps","widthComputed","injectFirstNode","defaultOptions","StylesProvider","_props$injectFirst","injectFirst","_props$disableGenerat","localOptions","outerOptions","createComment","properties","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","_prop$split","_prop$split2","spacingKeys","themeSpacing","getStyleFromPropValue","cssProperties","transformer","cssProperty","transformed","nextClasses","CookiesProvider","ThemeProvider","localTheme","outerTheme","mergeOuterLocalTheme","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","enter","_React$Component","isMounting","firstRender","mounted","appear","currentChildMapping","childFactory","TransitionGroupContext"],"mappings":"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","file":"static/js/29.bc706479.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","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 * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n <RouterContext.Provider\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n >\n <HistoryContext.Provider\n children={this.props.children || null}\n value={this.props.history}\n />\n </RouterContext.Provider>\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Redirect> outside a <Router>\");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n <Lifecycle\n onMount={() => {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n\n/**\n * Converts array values to string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\nvar toCssValue = function toCssValue(value, ignoreImportant) {\n if (ignoreImportant === void 0) {\n ignoreImportant = false;\n }\n\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += '\\n';\n result += \"\" + indentStr(prop + \": \" + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += '\\n';\n result += \"\" + indentStr(_prop + \": \" + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += '\\n';\n result += \"\" + indentStr(_prop2 + \": \" + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\\n\" + result + \"\\n\";\n return indentStr(selector + \" {\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.key = void 0;\n this.isProcessed = false;\n this.style = void 0;\n this.renderer = void 0;\n this.renderable = void 0;\n this.options = void 0;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n _this.selectorText = void 0;\n _this.id = void 0;\n _this.renderable = void 0;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(name, style, options) {\n if (name[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(name, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.at = void 0;\n this.key = void 0;\n this.query = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\\n\" + children + \"\\n}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.key = void 0;\n this.name = void 0;\n this.id = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\\n\" + children + \"\\n\";\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar plugin = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\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 = _BaseStyleRule.call.apply(_BaseStyleRule, [this].concat(args)) || this;\n _this.renderable = void 0;\n return _this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.key = void 0;\n this.value = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, plugin, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Get a rule.\n */\n ;\n\n _proto.get = function get(name) {\n return this.map[name];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe[invalid-tuple-index]\n\n data = arguments.length <= 1 ? undefined : arguments[1]; // $FlowFixMe[invalid-tuple-index]\n\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe[invalid-tuple-index]\n\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.map[name], data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var styleRule = rule;\n var style = styleRule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== styleRule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(styleRule.style, styleRule, sheet); // Update and add props.\n\n for (var prop in styleRule.style) {\n var nextValue = styleRule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n styleRule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = styleRule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n styleRule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += '\\n';\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.options = void 0;\n this.deployed = void 0;\n this.attached = void 0;\n this.rules = void 0;\n this.renderer = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.queue = void 0;\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name.\n */\n ;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = void 0;\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n // $FlowFixMe[prop-missing]\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access them all at one place.\n */\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += '\\n';\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar registry = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\n\nvar maxRules = 1e10;\n\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n return function (rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n\n/**\n * Get a style property value.\n */\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n\n/**\n * Set a style property.\n */\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n cssRule.style.setProperty(prop, cssValue);\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n\n/**\n * Remove a style property.\n */\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n\n/**\n * Set the selector.\n */\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n\n/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options) {\n var registry$1 = registry.registry;\n\n if (registry$1.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry$1, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry$1, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n var c = container;\n c.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n var _c = container;\n\n _c.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.element = void 0;\n this.sheet = void 0;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) registry.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules[index] = cssRule;\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n *\n * Only used for some old browsers because they can't set a selector.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.6.0\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = registry.index === 0 ? 0 : registry.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n registry.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n // $FlowFixMe[incompatible-call]\n return this.createRule(undefined, name, style);\n } // $FlowFixMe[incompatible-type]\n\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n */\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\n\n/**\n * Export a constant indicating if this browser has CSSTOM support.\n * https://developers.google.com/web/updates/2018/03/cssom\n */\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n/**\n * Creates a new instance of Jss.\n */\n\nvar create = function create(options) {\n return new Jss(options);\n};\n/**\n * A global Jss instance.\n */\n\nvar jss = create();\n\nexport default jss;\nexport { RuleList, SheetsManager, SheetsRegistry, create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, registry as sheets, toCssValue };\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n function width(key) {\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\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 a 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\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\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) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(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 *\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 var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (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 var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\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\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var 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: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\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\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 var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\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 var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\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 *\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 var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\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 *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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 var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((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 * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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 fade(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 color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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) {\n for (var 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 *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\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 (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';\nimport React from 'react';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n var theme = useThemeWithoutDefault() || defaultTheme;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\nvar pairSplitRegExp = /; */;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(pairSplitRegExp);\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var eq_idx = pair.indexOf('=');\n\n // skip things that don't look like key=value\n if (eq_idx < 0) {\n continue;\n }\n\n var key = pair.substr(0, eq_idx).trim()\n var val = pair.substr(++eq_idx, pair.length).trim();\n\n // quoted values\n if ('\"' == val[0]) {\n val = val.slice(1, -1);\n }\n\n // only assign once\n if (undefined == obj[key]) {\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","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}","export default function warn(s) {\n console.warn('[react-ga]', s);\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 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 _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 { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink = /*#__PURE__*/function (_Component) {\n _inherits(OutboundLink, _Component);\n\n var _super = _createSuper(OutboundLink);\n\n function OutboundLink() {\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n target = _this$props2.target,\n oldProps = _objectWithoutProperties(_this$props2, [\"to\", \"target\"]);\n\n var props = _objectSpread(_objectSpread({}, oldProps), {}, {\n target: target,\n href: href,\n onClick: this.handleClick\n });\n\n if (target === NEWTAB) {\n props.rel = 'noopener noreferrer';\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return /*#__PURE__*/React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\nexport { OutboundLink as default };\nOutboundLink.propTypes = {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n};\nOutboundLink.defaultProps = {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n};","import warn from './console/warn';\nimport mightBeEmail from './mightBeEmail';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function redactEmail(string) {\n if (mightBeEmail(string)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n return string;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s && s.replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i; // test\n\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","function _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 _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 _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\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting <adam@mozillafoundation.org>\n * Atul Varma <atul@mozillafoundation.org>\n */\n\n/**\n * Utilities\n */\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\nvar _redactEmail = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase, _redactEmail);\n}\n\nfunction _gaCommand(trackerNames) {\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 var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.redactEmail === false) {\n _redactEmail = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function addTrackers(configsOrTrackingId, options) {\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n addTrackers(configsOrTrackingId, options);\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\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 > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log(\"called ga('arguments');\");\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log(\"called ga('set', fieldsObject);\");\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log(\"called ga('send', fieldObject);\");\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || !value || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {{action: string, category: string}} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"]);\n\n var trackerNames = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n if (args.length === 1) {\n payload = args[0];\n } else {\n actionType = args[0];\n payload = args[1];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","import redactEmail from './redactEmail';\nimport toTitleCase from './toTitleCase';\nexport default function format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var titleCase = arguments.length > 1 ? arguments[1] : undefined;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || '';\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","export default function (options) {\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n } // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\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\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nvar initialize = Defaults.initialize;\nexport { initialize };\nvar addTrackers = Defaults.addTrackers;\nexport { addTrackers };\nvar ga = Defaults.ga;\nexport { ga };\nvar set = Defaults.set;\nexport { set };\nvar send = Defaults.send;\nexport { send };\nvar pageview = Defaults.pageview;\nexport { pageview };\nvar modalview = Defaults.modalview;\nexport { modalview };\nvar timing = Defaults.timing;\nexport { timing };\nvar event = Defaults.event;\nexport { event };\nvar exception = Defaults.exception;\nexport { exception };\nvar plugin = Defaults.plugin;\nexport { plugin };\nvar outboundLink = Defaults.outboundLink;\nexport { outboundLink };\nvar testModeAPI = Defaults.testModeAPI;\nexport { testModeAPI };\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread(_objectSpread({}, Defaults), {}, {\n OutboundLink: OutboundLink\n});","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import * 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(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\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","import createMuiTheme from './createMuiTheme';\nvar defaultTheme = createMuiTheme();\nexport default defaultTheme;","import { deepmerge } from '@material-ui/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 arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changedâ€. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","var 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: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var 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;","var 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;","var 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;","var 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 * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(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))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","import React from 'react';\nvar ThemeContext = React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","var hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import Cookies from 'universal-cookie';\nexport default Cookies;\n","import * as React from 'react';\nimport Cookies from './Cookies';\nconst CookiesContext = React.createContext(new Cookies());\nexport const { Provider, Consumer } = CookiesContext;\nexport default CookiesContext;\n","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n var 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}","module.exports = require(\"regenerator-runtime\");\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 _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"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');\n\nexports.default = _default;","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"microsoftTeams\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"microsoftTeams\"] = factory();\n\telse\n\t\troot[\"microsoftTeams\"] = factory();\n})(self, () => {\nreturn ","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\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\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @hidden\n * The client version when all SDK APIs started to check platform compatibility for the APIs was 1.6.0.\n * Modified to 2.0.1 which is hightest till now so that if any client doesn't pass version in initialize function, it will be set to highest.\n * Mobile clients are passing versions, hence will be applicable to web and desktop clients only.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const defaultSDKVersionForCompatCheck = '2.0.1';\n\n/**\n * @hidden\n * This is the client version when selectMedia API - VideoAndImage is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const videoAndImageMediaAPISupportVersion = '2.0.2';\n\n/**\n * @hidden\n * This is the client version when selectMedia API - Video with non-full screen mode is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const nonFullScreenVideoModeAPISupportVersion = '2.0.3';\n\n/**\n * @hidden\n * This is the client version when selectMedia API - ImageOutputFormats is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const imageOutputFormatsAPISupportVersion = '2.0.4';\n\n/**\n * @hidden\n * Minimum required client supported version for {@link getUserJoinedTeams} to be supported on {@link HostClientType.android}\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const getUserJoinedTeamsSupportedAndroidClientVersion = '2.0.1';\n\n/**\n * @hidden\n * This is the client version when location APIs (getLocation and showLocation) are supported.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const locationAPIsRequiredVersion = '1.9.0';\n\n/**\n * @hidden\n * This is the client version when permisisons are supported\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const permissionsAPIsRequiredVersion = '2.0.1';\n\n/**\n * @hidden\n * This is the client version when people picker API is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const peoplePickerRequiredVersion = '2.0.0';\n\n/**\n * @hidden\n * This is the client version when captureImage API is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const captureImageMobileSupportVersion = '1.7.0';\n\n/**\n * @hidden\n * This is the client version when media APIs are supported on all three platforms ios, android and web.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const mediaAPISupportVersion = '1.8.0';\n\n/**\n * @hidden\n * This is the client version when getMedia API is supported via Callbacks on all three platforms ios, android and web.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const getMediaCallbackSupportVersion = '2.0.0';\n\n/**\n * @hidden\n * This is the client version when scanBarCode API is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const scanBarCodeAPIMobileSupportVersion = '1.9.0';\n\n/**\n * @hidden\n * List of supported Host origins\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const validOrigins = [\n 'teams.microsoft.com',\n 'teams.microsoft.us',\n 'gov.teams.microsoft.us',\n 'dod.teams.microsoft.us',\n 'int.teams.microsoft.com',\n 'teams.live.com',\n 'devspaces.skype.com',\n 'ssauth.skype.com',\n 'local.teams.live.com', // local development\n 'local.teams.live.com:8080', // local development\n 'local.teams.office.com', // local development\n 'local.teams.office.com:8080', // local development\n 'msft.spoppe.com',\n '*.sharepoint.com',\n '*.sharepoint-df.com',\n '*.sharepointonline.com',\n 'outlook.office.com',\n 'outlook-sdf.office.com',\n 'outlook.office365.com',\n 'outlook-sdf.office365.com',\n 'outlook.live.com',\n 'outlook-sdf.live.com',\n '*.teams.microsoft.com',\n '*.www.office.com',\n 'www.office.com',\n 'word.office.com',\n 'excel.office.com',\n 'powerpoint.office.com',\n 'www.officeppe.com',\n '*.www.microsoft365.com',\n 'www.microsoft365.com',\n];\n\n/**\n * @hidden\n * USer specified message origins should satisfy this test\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const userOriginUrlValidationRegExp = /^https:\\/\\//;\n\n/**\n * @hidden\n * The protocol used for deep links into Teams\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const teamsDeepLinkProtocol = 'https';\n\n/**\n * @hidden\n * The host used for deep links into Teams\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const teamsDeepLinkHost = 'teams.microsoft.com';\n\n/** @hidden */\nexport const errorLibraryNotInitialized = 'The library has not yet been initialized';\n\n/** @hidden */\nexport const errorRuntimeNotInitialized = 'The runtime has not yet been initialized';\n\n/** @hidden */\nexport const errorRuntimeNotSupported = 'The runtime version is not supported';\n","import { FrameContexts } from '../public';\nexport class GlobalVars {\n public static initializeCalled = false;\n public static initializeCompleted = false;\n public static additionalValidOrigins: string[] = [];\n public static initializePromise: Promise<void>;\n public static isFramelessWindow = false;\n public static frameContext: FrameContexts;\n public static hostClientType: string;\n public static clientSupportedSDKVersion: string;\n public static printCapabilityEnabled = false;\n}\n","import { debug as registerLogger, Debugger } from 'debug';\n\nconst topLevelLogger = registerLogger('teamsJs');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n *\n * Returns a logger for a given namespace, within the pre-defined top-level teamsJs namespace\n */\nexport function getLogger(namespace: string): Debugger {\n return topLevelLogger.extend(namespace);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any*/\n\nimport { ChannelType, DialogDimension, HostClientType, HostName, TeamType, UserTeamRole } from './constants';\nimport { FrameContexts } from './constants';\n\n/**\n * Represents information about tabs for an app\n */\nexport interface TabInformation {\n teamTabs: TabInstance[];\n}\n\n/**\n * Represents information about a tab instance\n */\nexport interface TabInstance {\n /**\n * The name of the tab\n */\n tabName: string;\n\n /**\n * @internal\n * Limited to Microsoft-internal use\n * @protected\n */\n internalTabInstanceId?: string;\n\n /**\n * Last viewed time of this tab. null means unknown\n */\n lastViewUnixEpochTime?: string;\n\n /**\n * The developer-defined unique ID for the entity this content points to.\n */\n entityId?: string;\n\n /**\n * The Microsoft Teams ID for the channel with which the content is associated.\n */\n channelId?: string;\n\n /**\n * The name for the channel with which the content is associated.\n */\n channelName?: string;\n\n /**\n * Is this tab in a favorite channel?\n */\n channelIsFavorite?: boolean;\n\n /**\n * The Microsoft Teams ID for the team with which the content is associated.\n */\n teamId?: string;\n\n /**\n * The name for the team with which the content is associated.\n */\n teamName?: string;\n\n /**\n * Is this tab in a favorite team?\n */\n teamIsFavorite?: boolean;\n\n /**\n * The Office 365 group ID for the team with which the content is associated.\n * This field is available only when the identity permission is requested in the manifest.\n */\n groupId?: string;\n\n /**\n * Content URL of this tab\n */\n url?: string;\n\n /**\n * Website URL of this tab\n */\n websiteUrl?: string;\n}\n\n/**\n * Indicates information about the tab instance for filtering purposes.\n */\nexport interface TabInstanceParameters {\n /**\n * Flag allowing to select favorite channels only\n */\n favoriteChannelsOnly?: boolean;\n\n /**\n * Flag allowing to select favorite teams only\n */\n favoriteTeamsOnly?: boolean;\n}\n\n/**\n * Represents Team Information\n */\nexport interface TeamInformation {\n /**\n * Id of the team\n */\n teamId: string;\n\n /**\n * Team display name\n */\n teamName: string;\n\n /**\n * Team description\n */\n teamDescription?: string;\n\n /**\n * Thumbnail Uri\n */\n thumbnailUri?: string;\n\n /**\n * The Office 365 group ID for the team with which the content is associated.\n * This field is available only when the identity permission is requested in the manifest.\n */\n groupId?: string;\n\n /**\n * Role of current user in the team\n */\n userTeamRole?: UserTeamRole;\n\n /**\n * The type of the team.\n */\n teamType?: TeamType;\n\n /**\n * The locked status of the team\n */\n isTeamLocked?: boolean;\n\n /**\n * The archived status of the team\n */\n isTeamArchived?: boolean;\n}\n\n/**\n * Represents OS locale info used for formatting date and time data\n */\nexport interface LocaleInfo {\n platform: 'windows' | 'macos';\n regionalFormat: string;\n shortDate: string;\n longDate: string;\n shortTime: string;\n longTime: string;\n}\n\n/**\n * Allowed user file open preferences\n */\nexport enum FileOpenPreference {\n Inline = 'inline',\n Desktop = 'desktop',\n Web = 'web',\n}\n\n/**\n * Possible Action Types\n *\n * @beta\n */\nexport enum ActionObjectType {\n M365Content = 'm365content',\n}\n\n/**\n * Data pertaining to object(s) the action is being performed on\n *\n * @param T The type of action being implemented\n *\n * @beta\n */\nexport interface BaseActionObject<T extends ActionObjectType> {\n type: T;\n}\n\n/**\n * Stores information needed to represent M365 Content stored\n * in OneDrive or Sharepoint\n *\n * @beta\n */\nexport interface M365ContentAction extends BaseActionObject<ActionObjectType.M365Content> {\n /**\n * Only office content IDs are passed to the app. Apps should use these ids\n * to query the Microsoft graph for more details.\n */\n itemId: string;\n secondaryId?: SecondaryId;\n}\n\n/**\n * Contains information on what Graph item is being queried\n *\n * @beta\n */\nexport interface SecondaryId {\n name: SecondaryM365ContentIdName;\n value: string;\n}\n\n/**\n * These correspond with field names in the MSGraph\n *\n * @beta\n */\nexport enum SecondaryM365ContentIdName {\n DriveId = 'driveId',\n GroupId = 'groupId',\n SiteId = 'siteId',\n UserId = 'userId',\n}\n\n/**\n * Information common to all actions\n *\n * @beta\n */\nexport interface ActionInfo {\n /**\n * Maps to the action id supplied inside the manifest\n */\n actionId: string;\n /**\n * Array of corresponding action objects\n */\n actionObjects: BaseActionObject<ActionObjectType>[];\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use the {@link app.Context} interface and its updated properties instead.\n *\n * @remarks\n * For more details about the updated {@link app.Context} interface, visit the\n * [Teams JavaScript client SDK](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/using-teams-client-sdk#updates-to-the-context-interface)\n * overview article.\n *\n * Represents the structure of the received context message.\n */\nexport interface Context {\n /**\n * @deprecated\n * As of 2.0.0, please use {@link ActionInfo | app.Context.actionInfo} instead\n *\n * Common information applicable to all content actions\n */\n actionInfo?: ActionInfo;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.groupId | app.Context.team.groupId} instead\n *\n * The Office 365 group ID for the team with which the content is associated.\n * This field is available only when the identity permission is requested in the manifest.\n */\n groupId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.internalId | app.Context.team.internalId} instead\n *\n * The Microsoft Teams ID for the team with which the content is associated.\n */\n teamId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.displayName | app.Context.team.displayName} instead\n *\n * The name for the team with which the content is associated.\n */\n teamName?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.id | app.Context.channel.id} instead\n *\n * The Microsoft Teams ID for the channel with which the content is associated.\n */\n channelId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.displayName | app.Context.channel.displayName} instead\n *\n * The name for the channel with which the content is associated.\n */\n channelName?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.membershipType | app.Context.channel.membershipType} instead\n *\n * The type of the channel with which the content is associated.\n */\n channelType?: ChannelType;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.id | app.Context.page.id} instead\n *\n * The developer-defined unique ID for the entity this content points to.\n */\n entityId: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.subPageId | app.Context.page.subPageId} instead\n *\n * The developer-defined unique ID for the sub-entity this content points to.\n * This field should be used to restore to a specific state within an entity,\n * such as scrolling to or activating a specific piece of content.\n */\n subEntityId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.locale | app.Context.app.locale} instead\n *\n * The current locale that the user has configured for the app formatted as\n * languageId-countryId (for example, en-us).\n */\n locale: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.osLocaleInfo | app.Context.app.osLocaleInfo} instead\n *\n * More detailed locale info from the user's OS if available. Can be used together with\n * the @microsoft/globe NPM package to ensure your app respects the user's OS date and\n * time format configuration\n */\n osLocaleInfo?: LocaleInfo;\n\n /**\n * @deprecated\n *\n * As of 2.0.0, please use {@link app.UserInfo.loginHint | app.Context.user.loginHint} or\n * {@link app.UserInfo.userPrincipalName | app.Context.user.userPrincipalName} instead.\n * The UPN of the current user.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n upn?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TenantInfo.id | app.Context.user.tenant.id} instead\n *\n * The Azure AD tenant ID of the current user.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n tid?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.theme | app.Context.app.theme} instead\n *\n * The current UI theme.\n */\n theme?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.isFullScreen | app.Context.page.isFullScreen} instead\n *\n * Indication whether the tab is in full-screen mode.\n */\n isFullScreen?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.type | app.Context.team.type} instead\n *\n * The type of the team.\n */\n teamType?: TeamType;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.teamSiteUrl | app.Context.sharePointSite.teamSiteUrl} instead\n *\n * The root SharePoint site associated with the team.\n */\n teamSiteUrl?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.teamSiteDomain | app.Context.sharePointSite.teamSiteDomain} instead\n *\n * The domain of the root SharePoint site associated with the team.\n */\n teamSiteDomain?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.teamSitePath | app.Context.sharePointSite.teamSitePath} instead\n *\n * The relative path to the SharePoint site associated with the team.\n */\n teamSitePath?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.ownerTenantId | app.Context.channel.ownerTenantId} instead\n *\n * The tenant ID of the host team.\n */\n hostTeamTenantId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.ownerGroupId | app.Context.channel.ownerGroupId} instead\n *\n * The AAD group ID of the host team.\n */\n hostTeamGroupId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.relativeUrl | app.Context.channel.relativeUrl} instead\n *\n * The relative path to the SharePoint folder associated with the channel.\n */\n channelRelativeUrl?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppHostInfo.sessionId | app.Context.app.host.sessionId} instead\n *\n * Unique ID for the current Teams session for use in correlating telemetry data.\n */\n sessionId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.userRole | app.Context.team.userRole} instead\n *\n * The user's role in the team.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to the user's role, and never as proof of her role.\n */\n userTeamRole?: UserTeamRole;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChatInfo.id | app.Context.chat.id} instead\n *\n * The Microsoft Teams ID for the chat with which the content is associated.\n */\n chatId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.loginHint | app.Context.user.loginHint} instead\n *\n * A value suitable for use as a login_hint when authenticating with Azure AD.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n loginHint?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.userPrincipalName | app.Context.user.userPrincipalName} instead\n *\n * The UPN of the current user. This may be an externally-authenticated UPN (e.g., guest users).\n * Because a malicious party run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n userPrincipalName?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.id | app.Context.user.id} instead\n *\n * The Azure AD object id of the current user.\n * Because a malicious party run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n userObjectId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.isArchived | app.Context.team.isArchived} instead\n *\n * Indicates whether team is archived.\n * Apps should use this as a signal to prevent any changes to content associated with archived teams.\n */\n isTeamArchived?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppHostInfo.name | app.Context.app.host.name} instead\n *\n * The name of the host client. Possible values are: Office, Orange, Outlook, Teams\n */\n hostName?: HostName;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppHostInfo.clientType | app.Context.app.host.clientType} instead\n *\n * The type of the host client. Possible values are : android, ios, web, desktop, rigel(deprecated, use teamsRoomsWindows instead),\n * surfaceHub, teamsRoomsWindows, teamsRoomsAndroid, teamsPhones, teamsDisplays\n */\n hostClientType?: HostClientType;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.frameContext | app.Context.page.frameContext} instead\n *\n * The context where tab url is loaded (content, task, setting, remove, sidePanel)\n */\n frameContext?: FrameContexts;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.Context | app.Context.sharepoint} instead\n *\n * SharePoint context. This is only available when hosted in SharePoint.\n */\n sharepoint?: any;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TenantInfo.teamsSku | app.Context.tenant.teamsSku} instead\n *\n * The type of license for the current users tenant.\n */\n tenantSKU?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.licenseType | app.Context.user.licenseType} instead\n *\n * The license type for the current user.\n */\n userLicenseType?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.parentMessageId | app.Context.app.parentMessageId} instead\n *\n * The ID of the parent message from which this task module was launched.\n * This is only available in task modules launched from bot cards.\n */\n parentMessageId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppHostInfo.ringId | app.Context.app.host.ringId} instead\n *\n * Current ring ID\n */\n ringId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.sessionId | app.Context.app.sessionId} instead\n *\n * Unique ID for the current session for use in correlating telemetry data.\n */\n appSessionId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.appLaunchId | app.Context.app.appLaunchId} instead\n *\n * ID for the current visible app which is different for across cached sessions. Used for correlating telemetry data``\n */\n appLaunchId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.isCallingAllowed | app.Context.user.isCallingAllowed} instead\n *\n * Represents whether calling is allowed for the current logged in User\n */\n isCallingAllowed?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.isPSTNCallingAllowed | app.Context.user.isPSTNCallingAllowed} instead\n *\n * Represents whether PSTN calling is allowed for the current logged in User\n */\n isPSTNCallingAllowed?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.MeetingInfo.id | app.Context.meeting.id} instead\n *\n * Meeting Id used by tab when running in meeting context\n */\n meetingId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.defaultOneNoteSectionId | app.Context.channel.defaultOneNoteSectionId} instead\n *\n * The OneNote section ID that is linked to the channel.\n */\n defaultOneNoteSectionId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.isMultiWindow | app.Context.page.isMultiWindow} instead\n *\n * Indication whether the tab is in a pop out window\n */\n isMultiWindow?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.iconPositionVertical | app.Context.app.iconPositionVertical} instead\n *\n * Personal app icon y coordinate position\n */\n appIconPosition?: number;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.sourceOrigin | app.Context.page.sourceOrigin} instead\n *\n * Source origin from where the tab is opened\n */\n sourceOrigin?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.userClickTime | app.Context.app.userClickTime} instead\n *\n * Time when the user clicked on the tab\n */\n userClickTime?: number;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.templateId | app.Context.team.templateId} instead\n *\n * Team Template ID if there was a Team Template associated with the creation of the team.\n */\n teamTemplateId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.userFileOpenPreference | app.Context.app.userFileOpenPreference} instead\n *\n * Where the user prefers the file to be opened from by default during file open\n */\n userFileOpenPreference?: FileOpenPreference;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.displayName | app.Context.user.displayName} instead\n *\n * The address book name of the current user.\n */\n userDisplayName?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.teamSiteId | app.Context.sharePointSite.teamSiteId} instead\n *\n * Teamsite ID, aka sharepoint site id.\n */\n teamSiteId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.mySiteDomain | app.Context.sharePointSite.mySiteDomain} instead\n *\n * The SharePoint my site domain associated with the user.\n */\n mySiteDomain?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.mySitePath | app.Context.sharePointSite.mySitePath} instead\n *\n * The SharePoint relative path to the current users mysite\n */\n mySitePath?: string;\n}\n\nexport interface ShareDeepLinkParameters {\n /**\n * The developer-defined unique ID for the sub-page to which this deep link points in the current page.\n * This field should be used to restore to a specific state within a page, such as scrolling to or activating a specific piece of content.\n */\n subPageId: string;\n\n /**\n * The label for the sub-page that should be displayed when the deep link is rendered in a client.\n */\n subPageLabel: string;\n\n /**\n * The fallback URL to which to navigate the user if the client cannot render the page.\n * This URL should lead directly to the sub-entity.\n */\n subPageWebUrl?: string;\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link ShareDeepLinkParameters} instead.\n */\nexport interface DeepLinkParameters {\n /**\n * The developer-defined unique ID for the sub-entity to which this deep link points in the current entity.\n * This field should be used to restore to a specific state within an entity, such as scrolling to or activating a specific piece of content.\n */\n subEntityId: string;\n\n /**\n * The label for the sub-entity that should be displayed when the deep link is rendered in a client.\n */\n subEntityLabel: string;\n\n /**\n * The fallback URL to which to navigate the user if the client cannot render the page.\n * This URL should lead directly to the sub-entity.\n */\n subEntityWebUrl?: string;\n}\n\n/**\n * @hidden\n * Shared Dialog Properties\n */\nexport interface BaseDialogInfo {\n /*\n * The requested size of the dialog\n */\n size: DialogSize;\n\n /**\n * Title of the dialog module.\n */\n title?: string;\n}\n\n/**\n * Data structure to describe dialog information needed to open an Adaptive Card-based dialog.\n */\nexport interface AdaptiveCardDialogInfo extends BaseDialogInfo {\n /**\n * JSON defining an Adaptive Card.\n */\n card: string;\n}\n\n/**\n * Data structure to describe dialog information needed to open a bot-based Adaptive Card-based dialog.\n */\nexport interface BotAdaptiveCardDialogInfo extends AdaptiveCardDialogInfo {\n /**\n * Specifies a bot ID to send the result of the user's interaction with the dialog module.\n * The bot will receive a task/complete invoke event with a JSON object\n * in the event payload.\n */\n completionBotId: string;\n}\n\n/**\n * Data structure to represent the size of a dialog\n */\nexport interface DialogSize {\n /**\n * The requested height of the webview/iframe.\n */\n height: DialogDimension | number;\n\n /**\n * The requested width of the webview/iframe.\n */\n width: DialogDimension | number;\n}\n\n/**\n * Data structure to describe dialog information needed to open a url-based dialog.\n */\nexport interface UrlDialogInfo extends BaseDialogInfo {\n /**\n * The url to be rendered in the webview/iframe.\n *\n * @remarks\n * The domain of the url must match at least one of the\n * valid domains specified in the [validDomains block](https://learn.microsoft.com/microsoftteams/platform/resources/schema/manifest-schema#validdomains) of the app manifest\n */\n url: string;\n\n /**\n * If client doesnt support the URL, the URL that needs to be opened in the browser.\n */\n fallbackUrl?: string;\n}\n\n/**\n * Data structure to describe dialog information needed to open a bot based dialog.\n */\nexport interface BotUrlDialogInfo extends UrlDialogInfo {\n /**\n * Specifies a bot ID to send the result of the user's interaction with the task module.\n * The bot will receive a task/complete invoke event with a JSON object\n * in the event payload.\n */\n completionBotId: string;\n}\n\n/**\n * Data structure to describe dialog information\n */\nexport interface DialogInfo {\n /**\n * The url to be rendered in the webview/iframe.\n *\n * @remarks\n * The domain of the url must match at least one of the\n * valid domains specified in the validDomains block of the manifest\n */\n url?: string;\n\n /**\n * JSON defining an adaptive card.\n */\n card?: string;\n\n /**\n * The requested height of the webview/iframe.\n */\n height?: DialogDimension | number;\n\n /**\n * The requested width of the webview/iframe.\n */\n width?: DialogDimension | number;\n\n /**\n * Title of the task module.\n */\n title?: string;\n\n /**\n * If client doesnt support the URL, the URL that needs to be opened in the browser.\n */\n fallbackUrl?: string;\n\n /**\n * Specifies a bot ID to send the result of the user's interaction with the task module.\n * If specified, the bot will receive a task/complete invoke event with a JSON object\n * in the event payload.\n */\n completionBotId?: string;\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link DialogInfo} instead.\n */\nexport type TaskInfo = DialogInfo;\n\nexport interface DialogSize {\n height: DialogDimension | number;\n width: DialogDimension | number;\n}\n/**\n * @beta\n * Data structure to be used with the {@link teamsCore.registerOnLoadHandler teamsCore.registerOnLoadHandler(handler: (context: LoadContext) => void): void} to pass the context to the app.\n */\nexport interface LoadContext {\n /**\n * The entity that is requested to be loaded\n */\n entityId: string;\n\n /**\n * The content URL that is requested to be loaded\n */\n contentUrl: string;\n}\n\nexport interface FrameInfo {\n /**\n * The current URL that needs to be used in the iframe if the tab is reloaded\n */\n contentUrl: string;\n\n /**\n * The current URL that needs to be used for opening the website when the user clicks on 'Go to website'\n */\n websiteUrl: string;\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link FrameInfo} instead.\n */\nexport type FrameContext = FrameInfo;\n\nexport interface SdkError {\n /**\n error code\n */\n errorCode: ErrorCode;\n /**\n Optional description for the error. This may contain useful information for web-app developers.\n This string will not be localized and is not for end-user consumption. \n App should not depend on the string content. The exact value may change. This is only for debugging purposes.\n */\n message?: string;\n}\n\nexport enum ErrorCode {\n /**\n * API not supported in the current platform.\n */\n NOT_SUPPORTED_ON_PLATFORM = 100,\n /**\n * Internal error encountered while performing the required operation.\n */\n INTERNAL_ERROR = 500,\n /**\n * API is not supported in the current context\n */\n NOT_SUPPORTED_IN_CURRENT_CONTEXT = 501,\n /**\n Permissions denied by user\n */\n PERMISSION_DENIED = 1000,\n /**\n * Network issue\n */\n NETWORK_ERROR = 2000,\n /**\n * Underlying hardware doesn't support the capability\n */\n NO_HW_SUPPORT = 3000,\n /**\n * One or more arguments are invalid\n */\n INVALID_ARGUMENTS = 4000,\n /**\n * User is not authorized for this operation\n */\n UNAUTHORIZED_USER_OPERATION = 5000,\n /**\n * Could not complete the operation due to insufficient resources\n */\n INSUFFICIENT_RESOURCES = 6000,\n /**\n * Platform throttled the request because of API was invoked too frequently\n */\n THROTTLE = 7000,\n /**\n * User aborted the operation\n */\n USER_ABORT = 8000,\n /**\n * Could not complete the operation in the given time interval\n */\n OPERATION_TIMED_OUT = 8001,\n /**\n * Platform code is old and doesn't implement this API\n */\n OLD_PLATFORM = 9000,\n /**\n * The file specified was not found on the given location\n */\n FILE_NOT_FOUND = 404,\n /**\n * The return value is too big and has exceeded our size boundries\n */\n SIZE_EXCEEDED = 10000,\n}\n\n/** @hidden */\nexport enum DevicePermission {\n GeoLocation = 'geolocation',\n Media = 'media',\n}\n\n/** @hidden */\nexport interface HostVersionsInfo {\n adaptiveCardSchemaVersion?: AdaptiveCardVersion;\n}\n\n/**\n * Represents the major and minor versions of the Adaptive Card schema in the current host\n */\nexport interface AdaptiveCardVersion {\n majorVersion: number;\n minorVersion: number;\n}\n","export enum HostClientType {\n desktop = 'desktop',\n web = 'web',\n android = 'android',\n ios = 'ios',\n ipados = 'ipados',\n /**\n * @deprecated\n * As of 2.0.0, please use {@link teamsRoomsWindows} instead.\n */\n rigel = 'rigel',\n surfaceHub = 'surfaceHub',\n teamsRoomsWindows = 'teamsRoomsWindows',\n teamsRoomsAndroid = 'teamsRoomsAndroid',\n teamsPhones = 'teamsPhones',\n teamsDisplays = 'teamsDisplays',\n}\n\nexport enum HostName {\n /**\n * Office.com and Office Windows App\n */\n office = 'Office',\n\n /**\n * For \"desktop\" specifically, this refers to the new, pre-release version of Outlook for Windows.\n * Also used on other platforms that map to a single Outlook client.\n */\n outlook = 'Outlook',\n\n /**\n * Outlook for Windows: the classic, native, desktop client\n */\n outlookWin32 = 'OutlookWin32',\n\n /**\n * Microsoft-internal test Host\n */\n orange = 'Orange',\n\n /**\n * Teams\n */\n teams = 'Teams',\n\n /**\n * Modern Teams\n */\n teamsModern = 'TeamsModern',\n}\n\n// Ensure these declarations stay in sync with the framework.\nexport enum FrameContexts {\n settings = 'settings',\n content = 'content',\n authentication = 'authentication',\n remove = 'remove',\n task = 'task',\n sidePanel = 'sidePanel',\n stage = 'stage',\n meetingStage = 'meetingStage',\n}\n\n/**\n * Indicates the team type, currently used to distinguish between different team\n * types in Office 365 for Education (team types 1, 2, 3, and 4).\n */\nexport enum TeamType {\n Standard = 0,\n Edu = 1,\n Class = 2,\n Plc = 3,\n Staff = 4,\n}\n\n/**\n * Indicates the various types of roles of a user in a team.\n */\nexport enum UserTeamRole {\n Admin = 0,\n User = 1,\n Guest = 2,\n}\n\n/**\n * Dialog module dimension enum\n */\nexport enum DialogDimension {\n Large = 'large',\n Medium = 'medium',\n Small = 'small',\n}\n\nimport { AdaptiveCardVersion, ErrorCode, SdkError } from './interfaces';\n/**\n * @deprecated\n * As of 2.0.0, please use {@link DialogDimension} instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport import TaskModuleDimension = DialogDimension;\n\n/**\n * The type of the channel with which the content is associated.\n */\nexport enum ChannelType {\n Regular = 'Regular',\n Private = 'Private',\n Shared = 'Shared',\n}\n\nexport const errorNotSupportedOnPlatform: SdkError = { errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM };\n\n/**\n * @hidden\n *\n * Minimum Adaptive Card version supported by the host.\n */\nexport const minAdaptiveCardVersion: AdaptiveCardVersion = { majorVersion: 1, minorVersion: 5 };\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as uuid from 'uuid';\n\nimport { GlobalVars } from '../internal/globalVars';\nimport { minAdaptiveCardVersion } from '../public/constants';\nimport { AdaptiveCardVersion, SdkError } from '../public/interfaces';\nimport { pages } from '../public/pages';\nimport { validOrigins } from './constants';\n\n/**\n * @param pattern - reference pattern\n * @param host - candidate string\n * @returns returns true if host matches pre-know valid pattern\n *\n * @example\n * validateHostAgainstPattern('*.teams.microsoft.com', 'subdomain.teams.microsoft.com') returns true\n * validateHostAgainstPattern('teams.microsoft.com', 'team.microsoft.com') returns false\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction validateHostAgainstPattern(pattern: string, host: string): boolean {\n if (pattern.substring(0, 2) === '*.') {\n const suffix = pattern.substring(1);\n if (\n host.length > suffix.length &&\n host.split('.').length === suffix.split('.').length &&\n host.substring(host.length - suffix.length) === suffix\n ) {\n return true;\n }\n } else if (pattern === host) {\n return true;\n }\n return false;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateOrigin(messageOrigin: URL): boolean {\n // Check whether the url is in the pre-known allowlist or supplied by user\n if (messageOrigin.protocol !== 'https:') {\n return false;\n }\n const messageOriginHost = messageOrigin.host;\n\n if (validOrigins.some((pattern) => validateHostAgainstPattern(pattern, messageOriginHost))) {\n return true;\n }\n\n for (const domainOrPattern of GlobalVars.additionalValidOrigins) {\n const pattern = domainOrPattern.substring(0, 8) === 'https://' ? domainOrPattern.substring(8) : domainOrPattern;\n if (validateHostAgainstPattern(pattern, messageOriginHost)) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function getGenericOnCompleteHandler(errorMessage?: string): (success: boolean, reason?: string) => void {\n return (success: boolean, reason: string): void => {\n if (!success) {\n throw new Error(errorMessage ? errorMessage : reason);\n }\n };\n}\n\n/**\n * @hidden\n * Compares SDK versions.\n *\n * @param v1 - first version\n * @param v2 - second version\n * @returns NaN in case inputs are not in right format\n * -1 if v1 < v2\n * 1 if v1 > v2\n * 0 otherwise\n * @example\n * compareSDKVersions('1.2', '1.2.0') returns 0\n * compareSDKVersions('1.2a', '1.2b') returns NaN\n * compareSDKVersions('1.2', '1.3') returns -1\n * compareSDKVersions('2.0', '1.3.2') returns 1\n * compareSDKVersions('2.0', 2.0) returns NaN\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function compareSDKVersions(v1: string, v2: string): number {\n if (typeof v1 !== 'string' || typeof v2 !== 'string') {\n return NaN;\n }\n\n const v1parts = v1.split('.');\n const v2parts = v2.split('.');\n\n function isValidPart(x: string): boolean {\n // input has to have one or more digits\n // For ex - returns true for '11', false for '1a1', false for 'a', false for '2b'\n return /^\\d+$/.test(x);\n }\n\n if (!v1parts.every(isValidPart) || !v2parts.every(isValidPart)) {\n return NaN;\n }\n\n // Make length of both parts equal\n while (v1parts.length < v2parts.length) {\n v1parts.push('0');\n }\n while (v2parts.length < v1parts.length) {\n v2parts.push('0');\n }\n\n for (let i = 0; i < v1parts.length; ++i) {\n if (Number(v1parts[i]) == Number(v2parts[i])) {\n continue;\n } else if (Number(v1parts[i]) > Number(v2parts[i])) {\n return 1;\n } else {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * @hidden\n * Generates a GUID\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function generateGUID(): string {\n return uuid.v4();\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function deepFreeze<T extends object>(obj: T): T {\n Object.keys(obj).forEach((prop) => {\n if (typeof obj[prop] === 'object') {\n deepFreeze(obj[prop]);\n }\n });\n return Object.freeze(obj);\n}\n\n/**\n * @hidden\n * The following type definitions will be used in the\n * utility functions below, which help in transforming the\n * promises to support callbacks for backward compatibility\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport type ErrorResultCallback<T> = (err?: SdkError, result?: T) => void;\nexport type ErrorResultNullCallback<T> = (err: SdkError | null, result: T | null) => void;\nexport type ErrorBooleanResultCallback = (err?: SdkError, result?: boolean) => void;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type InputFunction<T> = (...args: any[]) => Promise<T>;\nexport type ResultCallback<T> = (result?: T) => void;\nexport type SdkErrorCallback = ResultCallback<SdkError | null>;\n\n/**\n * This utility function is used when the result of the promise is same as the result in the callback.\n * @param funcHelper\n * @param callback\n * @param args\n * @returns\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callCallbackWithErrorOrResultFromPromiseAndReturnPromise<T>(\n funcHelper: InputFunction<T>,\n callback?: ErrorResultCallback<T>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...args: any[]\n): Promise<T> {\n const p = funcHelper(...args);\n p.then((result: T) => {\n if (callback) {\n callback(undefined, result);\n }\n }).catch((e: SdkError) => {\n if (callback) {\n callback(e);\n }\n });\n return p;\n}\n\n/**\n * This utility function is used when the return type of the promise is usually void and\n * the result in the callback is a boolean type (true for success and false for error)\n * @param funcHelper\n * @param callback\n * @param args\n * @returns\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callCallbackWithErrorOrBooleanFromPromiseAndReturnPromise<T>(\n funcHelper: InputFunction<T>,\n callback?: ErrorBooleanResultCallback,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...args: any[]\n): Promise<T> {\n const p = funcHelper(...args);\n p.then(() => {\n if (callback) {\n callback(undefined, true);\n }\n }).catch((e: SdkError) => {\n if (callback) {\n callback(e, false);\n }\n });\n return p;\n}\n\n/**\n * This utility function is called when the callback has only Error/SdkError as the primary argument.\n * @param funcHelper\n * @param callback\n * @param args\n * @returns\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callCallbackWithSdkErrorFromPromiseAndReturnPromise<T>(\n funcHelper: InputFunction<T>,\n callback?: SdkErrorCallback,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...args: any[]\n): Promise<T> {\n const p = funcHelper(...args);\n p.then(() => {\n if (callback) {\n callback(null);\n }\n }).catch((e: SdkError) => {\n if (callback) {\n callback(e);\n }\n });\n return p;\n}\n\n/**\n * This utility function is used when the result of the promise is same as the result in the callback.\n * @param funcHelper\n * @param callback\n * @param args\n * @returns\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise<T>(\n funcHelper: InputFunction<T>,\n callback?: ErrorResultNullCallback<T>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...args: any[]\n): Promise<T> {\n const p = funcHelper(...args);\n p.then((result: T) => {\n if (callback) {\n callback(null, result);\n }\n }).catch((e: SdkError) => {\n if (callback) {\n callback(e, null);\n }\n });\n return p;\n}\n\n/**\n * A helper function to add a timeout to an asynchronous operation.\n *\n * @param action Action to wrap the timeout around\n * @param timeoutInMs Timeout period in milliseconds\n * @param timeoutError Error to reject the promise with if timeout elapses before the action completed\n * @returns A promise which resolves to the result of provided action or rejects with a provided timeout error\n * if the initial action didn't complete within provided timeout.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function runWithTimeout<TResult, TError>(\n action: () => Promise<TResult>,\n timeoutInMs: number,\n timeoutError: TError,\n): Promise<TResult> {\n return new Promise((resolve, reject) => {\n const timeoutHandle = setTimeout(reject, timeoutInMs, timeoutError);\n action()\n .then((result) => {\n clearTimeout(timeoutHandle);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeoutHandle);\n reject(error);\n });\n });\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function createTeamsAppLink(params: pages.NavigateToAppParams): string {\n const url = new URL(\n 'https://teams.microsoft.com/l/entity/' +\n encodeURIComponent(params.appId) +\n '/' +\n encodeURIComponent(params.pageId),\n );\n\n if (params.webUrl) {\n url.searchParams.append('webUrl', params.webUrl);\n }\n if (params.channelId || params.subPageId) {\n url.searchParams.append('context', JSON.stringify({ channelId: params.channelId, subEntityId: params.subPageId }));\n }\n return url.toString();\n}\n\n/**\n * @hidden\n * Checks if the Adaptive Card schema version is supported by the host.\n * @param hostAdaptiveCardSchemaVersion Host's supported Adaptive Card version in the runtime.\n *\n * @returns true if the Adaptive Card Version is not supported and false if it is supported.\n */\nexport function isHostAdaptiveCardSchemaVersionUnsupported(\n hostAdaptiveCardSchemaVersion: AdaptiveCardVersion,\n): boolean {\n const versionCheck = compareSDKVersions(\n `${hostAdaptiveCardSchemaVersion.majorVersion}.${hostAdaptiveCardSchemaVersion.minorVersion}`,\n `${minAdaptiveCardVersion.majorVersion}.${minAdaptiveCardVersion.minorVersion}`,\n );\n if (versionCheck >= 0) {\n return false;\n } else {\n return true;\n }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n\nimport { errorRuntimeNotInitialized, errorRuntimeNotSupported } from '../internal/constants';\nimport { GlobalVars } from '../internal/globalVars';\nimport { getLogger } from '../internal/telemetry';\nimport { compareSDKVersions, deepFreeze } from '../internal/utils';\nimport { HostClientType } from './constants';\nimport { HostVersionsInfo } from './interfaces';\n\nconst runtimeLogger = getLogger('runtime');\n\nexport interface IBaseRuntime {\n readonly apiVersion: number;\n readonly hostVersionsInfo?: HostVersionsInfo;\n readonly isLegacyTeams?: boolean;\n readonly supports?: {};\n}\n\n/**\n * Latest runtime interface version\n */\nexport type Runtime = IRuntimeV2;\n\nexport const latestRuntimeApiVersion = 2;\n\nfunction isLatestRuntimeVersion(runtime: IBaseRuntime): runtime is Runtime {\n return runtime.apiVersion === latestRuntimeApiVersion;\n}\n\ninterface IRuntimeV1 extends IBaseRuntime {\n readonly apiVersion: 1;\n readonly isLegacyTeams?: boolean;\n readonly supports: {\n readonly appEntity?: {};\n readonly appInstallDialog?: {};\n readonly barCode?: {};\n readonly calendar?: {};\n readonly call?: {};\n readonly chat?: {};\n readonly conversations?: {};\n readonly dialog?: {\n readonly bot?: {};\n readonly update?: {};\n };\n readonly geoLocation?: {\n readonly map?: {};\n };\n readonly location?: {};\n readonly logs?: {};\n readonly mail?: {};\n readonly meetingRoom?: {};\n readonly menus?: {};\n readonly monetization?: {};\n readonly notifications?: {};\n readonly pages?: {\n readonly appButton?: {};\n readonly backStack?: {};\n readonly config?: {};\n readonly currentApp?: {};\n readonly fullTrust?: {};\n readonly tabs?: {};\n };\n readonly people?: {};\n readonly permissions?: {};\n readonly profile?: {};\n readonly remoteCamera?: {};\n readonly search?: {};\n readonly sharing?: {};\n readonly stageView?: {};\n readonly teams?: {\n readonly fullTrust?: {\n readonly joinedTeams?: {};\n };\n };\n readonly teamsCore?: {};\n readonly video?: {};\n readonly webStorage?: {};\n };\n}\n\ninterface IRuntimeV2 extends IBaseRuntime {\n readonly apiVersion: 2;\n readonly hostVersionsInfo?: HostVersionsInfo;\n readonly isLegacyTeams?: boolean;\n readonly supports: {\n readonly appEntity?: {};\n readonly appInstallDialog?: {};\n readonly barCode?: {};\n readonly calendar?: {};\n readonly call?: {};\n readonly chat?: {};\n readonly conversations?: {};\n readonly dialog?: {\n readonly card?: {\n readonly bot?: {};\n };\n readonly url?: {\n readonly bot?: {};\n };\n readonly update?: {};\n };\n readonly geoLocation?: {\n readonly map?: {};\n };\n readonly location?: {};\n readonly logs?: {};\n readonly mail?: {};\n readonly meetingRoom?: {};\n readonly menus?: {};\n readonly monetization?: {};\n readonly notifications?: {};\n readonly pages?: {\n readonly appButton?: {};\n readonly backStack?: {};\n readonly config?: {};\n readonly currentApp?: {};\n readonly fullTrust?: {};\n readonly tabs?: {};\n };\n readonly people?: {};\n readonly permissions?: {};\n readonly profile?: {};\n readonly remoteCamera?: {};\n readonly search?: {};\n readonly sharing?: {};\n readonly stageView?: {};\n readonly teams?: {\n readonly fullTrust?: {\n readonly joinedTeams?: {};\n };\n };\n readonly teamsCore?: {};\n readonly video?: {};\n readonly webStorage?: {};\n };\n}\n// Constant used to set the runtime configuration\nconst _uninitializedRuntime: UninitializedRuntime = {\n apiVersion: -1,\n supports: {},\n};\n\ninterface UninitializedRuntime extends IBaseRuntime {\n readonly apiVersion: -1;\n readonly supports: {};\n}\n\n/**\n * @hidden\n * Ensures that the runtime has been initialized\n\n * @returns True if the runtime has been initialized\n * @throws Error if the runtime has not been initialized\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isRuntimeInitialized(runtime: IBaseRuntime): runtime is Runtime {\n if (isLatestRuntimeVersion(runtime)) {\n return true;\n } else if (runtime.apiVersion === -1) {\n throw new Error(errorRuntimeNotInitialized);\n } else {\n throw new Error(errorRuntimeNotSupported);\n }\n}\n\nexport let runtime: Runtime | UninitializedRuntime = _uninitializedRuntime;\n\nexport const teamsRuntimeConfig: Runtime = {\n apiVersion: 2,\n hostVersionsInfo: undefined,\n isLegacyTeams: true,\n supports: {\n appInstallDialog: {},\n appEntity: {},\n call: {},\n chat: {},\n conversations: {},\n dialog: {\n url: {\n bot: {},\n },\n update: {},\n },\n logs: {},\n meetingRoom: {},\n menus: {},\n monetization: {},\n notifications: {},\n pages: {\n appButton: {},\n tabs: {},\n config: {},\n backStack: {},\n fullTrust: {},\n },\n remoteCamera: {},\n sharing: {},\n stageView: {},\n teams: {\n fullTrust: {},\n },\n teamsCore: {},\n video: {},\n },\n};\n\ninterface ICapabilityReqs {\n readonly capability: object;\n readonly hostClientTypes: Array<string>;\n}\n\nexport const v1HostClientTypes = [\n HostClientType.desktop,\n HostClientType.web,\n HostClientType.android,\n HostClientType.ios,\n HostClientType.rigel,\n HostClientType.surfaceHub,\n HostClientType.teamsRoomsWindows,\n HostClientType.teamsRoomsAndroid,\n HostClientType.teamsPhones,\n HostClientType.teamsDisplays,\n];\n\n/**\n * @hidden\n * `upgradeToNextVersion` transforms runtime of version `versionToUpgradeFrom` to the next higher version\n *\n * @internal\n * Limited to Microsoft-internal use\n */\ninterface IRuntimeUpgrade {\n versionToUpgradeFrom: number;\n upgradeToNextVersion: (previousVersionRuntime: IBaseRuntime) => IBaseRuntime;\n}\n\n/**\n * @hidden\n * Uses upgradeChain to transform an outdated runtime object to the latest format.\n * @param outdatedRuntime - The runtime object to be upgraded\n * @returns The upgraded runtime object\n * @throws Error if the runtime object could not be upgraded to the latest version\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function fastForwardRuntime(outdatedRuntime: IBaseRuntime): Runtime {\n let runtime = outdatedRuntime;\n if (runtime.apiVersion < latestRuntimeApiVersion) {\n upgradeChain.forEach((upgrade) => {\n if (runtime.apiVersion === upgrade.versionToUpgradeFrom) {\n runtime = upgrade.upgradeToNextVersion(runtime);\n }\n });\n }\n if (isLatestRuntimeVersion(runtime)) {\n return runtime;\n } else {\n throw new Error('Received a runtime that could not be upgraded to the latest version');\n }\n}\n\n/**\n * @hidden\n * List of transformations required to upgrade a runtime object from a previous version to the next higher version.\n * This list must be ordered from lowest version to highest version\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const upgradeChain: IRuntimeUpgrade[] = [\n // This upgrade has been included for testing, it may be removed when there is a real upgrade implemented\n {\n versionToUpgradeFrom: 1,\n upgradeToNextVersion: (previousVersionRuntime: IRuntimeV1): IRuntimeV2 => {\n return {\n apiVersion: 2,\n hostVersionsInfo: undefined,\n isLegacyTeams: previousVersionRuntime.isLegacyTeams,\n supports: {\n ...previousVersionRuntime.supports,\n dialog: previousVersionRuntime.supports.dialog\n ? {\n card: undefined,\n url: previousVersionRuntime.supports.dialog,\n update: previousVersionRuntime.supports.dialog?.update,\n }\n : undefined,\n },\n };\n },\n },\n];\n\nexport const versionConstants: Record<string, Array<ICapabilityReqs>> = {\n '1.9.0': [\n {\n capability: { location: {} },\n hostClientTypes: v1HostClientTypes,\n },\n ],\n '2.0.0': [\n {\n capability: { people: {} },\n hostClientTypes: v1HostClientTypes,\n },\n ],\n '2.0.1': [\n {\n capability: { teams: { fullTrust: { joinedTeams: {} } } },\n hostClientTypes: [\n HostClientType.android,\n HostClientType.desktop,\n HostClientType.ios,\n HostClientType.teamsRoomsAndroid,\n HostClientType.teamsPhones,\n HostClientType.teamsDisplays,\n HostClientType.web,\n ],\n },\n {\n capability: { webStorage: {} },\n hostClientTypes: [HostClientType.desktop],\n },\n ],\n '2.0.5': [\n {\n capability: { webStorage: {} },\n hostClientTypes: [HostClientType.android, HostClientType.desktop, HostClientType.ios],\n },\n ],\n};\n\nconst generateBackCompatRuntimeConfigLogger = runtimeLogger.extend('generateBackCompatRuntimeConfig');\n/**\n * @internal\n * Limited to Microsoft-internal use\n *\n * Generates and returns a runtime configuration for host clients which are not on the latest host SDK version\n * and do not provide their own runtime config. Their supported capabilities are based on the highest\n * client SDK version that they can support.\n *\n * @param highestSupportedVersion - The highest client SDK version that the host client can support.\n * @returns runtime which describes the APIs supported by the legacy host client.\n */\nexport function generateBackCompatRuntimeConfig(highestSupportedVersion: string): Runtime {\n generateBackCompatRuntimeConfigLogger('generating back compat runtime config for %s', highestSupportedVersion);\n\n let newSupports = { ...teamsRuntimeConfig.supports };\n\n generateBackCompatRuntimeConfigLogger(\n 'Supported capabilities in config before updating based on highestSupportedVersion: %o',\n newSupports,\n );\n\n Object.keys(versionConstants).forEach((versionNumber) => {\n if (compareSDKVersions(highestSupportedVersion, versionNumber) >= 0) {\n versionConstants[versionNumber].forEach((capabilityReqs) => {\n if (capabilityReqs.hostClientTypes.includes(GlobalVars.hostClientType)) {\n newSupports = {\n ...newSupports,\n ...capabilityReqs.capability,\n };\n }\n });\n }\n });\n\n const backCompatRuntimeConfig: Runtime = {\n apiVersion: 2,\n isLegacyTeams: true,\n supports: newSupports,\n };\n\n generateBackCompatRuntimeConfigLogger(\n 'Runtime config after updating based on highestSupportedVersion: %o',\n backCompatRuntimeConfig,\n );\n\n return backCompatRuntimeConfig;\n}\n\nconst applyRuntimeConfigLogger = runtimeLogger.extend('applyRuntimeConfig');\nexport function applyRuntimeConfig(runtimeConfig: IBaseRuntime): void {\n // Some hosts that have not adopted runtime versioning send a string for apiVersion, so we should handle those as v1 inputs\n if (typeof runtimeConfig.apiVersion === 'string') {\n applyRuntimeConfigLogger('Trying to apply runtime with string apiVersion, processing as v1: %o', runtimeConfig);\n runtimeConfig = {\n ...runtimeConfig,\n apiVersion: 1,\n };\n }\n applyRuntimeConfigLogger('Fast-forwarding runtime %o', runtimeConfig);\n const ffRuntimeConfig = fastForwardRuntime(runtimeConfig);\n applyRuntimeConfigLogger('Applying runtime %o', ffRuntimeConfig);\n runtime = deepFreeze(ffRuntimeConfig);\n}\n\nexport function setUnitializedRuntime(): void {\n runtime = deepFreeze(_uninitializedRuntime);\n}\n\n/**\n * @hidden\n * Constant used to set minimum runtime configuration\n * while un-initializing an app in unit test case.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const _minRuntimeConfigToUninitialize: Runtime = {\n apiVersion: 2,\n supports: {\n pages: {\n appButton: {},\n tabs: {},\n config: {},\n backStack: {},\n fullTrust: {},\n },\n teamsCore: {},\n logs: {},\n },\n};\n","import {\n Communication,\n sendMessageEventToChild,\n sendMessageToParent,\n sendMessageToParentAsync,\n waitForMessageQueue,\n} from '../internal/communication';\nimport { GlobalVars } from '../internal/globalVars';\nimport { registerHandler, removeHandler } from '../internal/handlers';\nimport { ensureInitializeCalled, ensureInitialized } from '../internal/internalAPIs';\nimport { FrameContexts, HostClientType } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * Namespace to interact with the authentication-specific part of the SDK.\n *\n * This object is used for starting or completing authentication flows.\n */\nexport namespace authentication {\n let authHandlers: { success: (string) => void; fail: (string) => void } | undefined;\n let authWindowMonitor: number | undefined;\n\n /**\n * @hidden\n * @internal\n * Limited to Microsoft-internal use; automatically called when library is initialized\n */\n export function initialize(): void {\n registerHandler('authentication.authenticate.success', handleSuccess, false);\n registerHandler('authentication.authenticate.failure', handleFailure, false);\n }\n\n let authParams: AuthenticateParameters | undefined;\n /**\n * @deprecated\n * As of 2.0.0, this function has been deprecated in favor of a Promise-based pattern using {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\<string\\>}\n *\n * Registers handlers to be called with the result of an authentication flow triggered using {@link authentication.authenticate authentication.authenticate(authenticateParameters?: AuthenticateParameters): void}\n *\n * @param authenticateParameters - Configuration for authentication flow pop-up result communication\n */\n export function registerAuthenticationHandlers(authenticateParameters: AuthenticateParameters): void {\n authParams = authenticateParameters;\n }\n\n /**\n * Initiates an authentication flow which requires a new window.\n * There are two primary uses for this function:\n * 1. When your app needs to authenticate using a 3rd-party identity provider (not Azure Active Directory)\n * 2. When your app needs to show authentication UI that is blocked from being shown in an iframe (e.g., Azure Active Directory consent prompts)\n *\n * For more details, see [Enable authentication using third-party OAuth provider](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/authentication/auth-flow-tab)\n *\n * This function is *not* needed for \"standard\" Azure SSO usage. Using {@link getAuthToken} is usually sufficient in that case. For more, see\n * [Enable SSO for tab apps](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/authentication/tab-sso-overview))\n *\n * @remarks\n * The authentication flow must start and end from the same domain, otherwise success and failure messages won't be returned to the window that initiated the call.\n * The [Teams authentication flow](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/authentication/auth-flow-tab) starts and ends at an endpoint on\n * your own service (with a redirect round-trip to the 3rd party identity provider in the middle).\n *\n * @param authenticateParameters - Parameters describing the authentication window used for executing the authentication flow\n *\n * @returns `Promise` that will be fulfilled with the result from the authentication pop-up, if successful. The string in this result is provided in the parameter\n * passed by your app when it calls {@link notifySuccess} in the pop-up window after returning from the identity provider redirect.\n *\n * @throws `Error` if the authentication request fails or is canceled by the user. This error is provided in the parameter passed by your app when it calls\n * {@link notifyFailure} in the pop-up window after returning from the identity provider redirect. However, in some cases it can also be provided by\n * the infrastructure depending on the failure (e.g., a user cancelation)\n *\n */\n export function authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise<string>;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\<string\\>} instead.\n *\n * The documentation for {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\<string\\>} applies\n * to this function.\n * The one difference is that instead of the result being returned via the `Promise`, the result is returned to the callback functions provided in the\n * `authenticateParameters` parameter.\n *\n * @param authenticateParameters - Parameters describing the authentication window used for executing the authentication flow and callbacks used for indicating the result\n *\n */\n export function authenticate(authenticateParameters?: AuthenticateParameters): void;\n export function authenticate(authenticateParameters?: AuthenticateParameters): Promise<string> {\n const isDifferentParamsInCall: boolean = authenticateParameters !== undefined;\n const authenticateParams: AuthenticateParameters | undefined = isDifferentParamsInCall\n ? authenticateParameters\n : authParams;\n if (!authenticateParams) {\n throw new Error('No parameters are provided for authentication');\n }\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n return authenticateHelper(authenticateParams)\n .then((value: string) => {\n try {\n if (authenticateParams && authenticateParams.successCallback) {\n authenticateParams.successCallback(value);\n return '';\n }\n return value;\n } finally {\n if (!isDifferentParamsInCall) {\n authParams = null;\n }\n }\n })\n .catch((err: Error) => {\n try {\n if (authenticateParams && authenticateParams.failureCallback) {\n authenticateParams.failureCallback(err.message);\n return '';\n }\n throw err;\n } finally {\n if (!isDifferentParamsInCall) {\n authParams = null;\n }\n }\n });\n }\n\n function authenticateHelper(authenticateParameters: AuthenticateParameters): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n if (\n GlobalVars.hostClientType === HostClientType.desktop ||\n GlobalVars.hostClientType === HostClientType.android ||\n GlobalVars.hostClientType === HostClientType.ios ||\n GlobalVars.hostClientType === HostClientType.rigel ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsWindows ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsAndroid ||\n GlobalVars.hostClientType === HostClientType.teamsPhones ||\n GlobalVars.hostClientType === HostClientType.teamsDisplays\n ) {\n // Convert any relative URLs into absolute URLs before sending them over to the parent window.\n const link = document.createElement('a');\n link.href = authenticateParameters.url;\n // Ask the parent window to open an authentication window with the parameters provided by the caller.\n resolve(\n sendMessageToParentAsync<[boolean, string]>('authentication.authenticate', [\n link.href,\n authenticateParameters.width,\n authenticateParameters.height,\n authenticateParameters.isExternal,\n ]).then(([success, response]: [boolean, string]) => {\n if (success) {\n return response;\n } else {\n throw new Error(response);\n }\n }),\n );\n } else {\n // Open an authentication window with the parameters provided by the caller.\n authHandlers = {\n success: resolve,\n fail: reject,\n };\n openAuthenticationWindow(authenticateParameters);\n }\n });\n }\n\n /**\n * Requests an Azure AD token to be issued on behalf of your app in an SSO flow.\n * The token is acquired from the cache if it is not expired. Otherwise a request is sent to Azure AD to\n * obtain a new token.\n * This function is used to enable SSO scenarios. See [Enable SSO for tab apps](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/authentication/tab-sso-overview)\n * for more details.\n *\n * @param authTokenRequest - An optional set of values that configure the token request.\n *\n * @returns `Promise` that will be resolved with the token, if successful.\n *\n * @throws `Error` if the request fails in some way\n */\n export function getAuthToken(authTokenRequest?: AuthTokenRequestParameters): Promise<string>;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link authentication.getAuthToken authentication.getAuthToken(authTokenRequest: AuthTokenRequestParameters): Promise\\<string\\>} instead.\n *\n * The documentation {@link authentication.getAuthToken authentication.getAuthToken(authTokenRequest: AuthTokenRequestParameters): Promise\\<string\\>} applies to this\n * function as well. The one difference when using this function is that the result is provided in the callbacks in the `authTokenRequest` parameter\n * instead of as a `Promise`.\n *\n * @param authTokenRequest - An optional set of values that configure the token request.\n * It contains callbacks to call in case of success/failure\n */\n export function getAuthToken(authTokenRequest?: AuthTokenRequest): void;\n export function getAuthToken(authTokenRequest?: AuthTokenRequest): Promise<string> {\n ensureInitializeCalled();\n return getAuthTokenHelper(authTokenRequest)\n .then((value: string) => {\n if (authTokenRequest && authTokenRequest.successCallback) {\n authTokenRequest.successCallback(value);\n return '';\n }\n return value;\n })\n .catch((err: Error) => {\n if (authTokenRequest && authTokenRequest.failureCallback) {\n authTokenRequest.failureCallback(err.message);\n return '';\n }\n throw err;\n });\n }\n\n function getAuthTokenHelper(authTokenRequest?: AuthTokenRequest): Promise<string> {\n return new Promise<[boolean, string]>((resolve) => {\n resolve(\n sendMessageToParentAsync('authentication.getAuthToken', [\n authTokenRequest?.resources,\n authTokenRequest?.claims,\n authTokenRequest?.silent,\n ]),\n );\n }).then(([success, result]: [boolean, string]) => {\n if (success) {\n return result;\n } else {\n throw new Error(result);\n }\n });\n }\n\n /**\n * @hidden\n * Requests the decoded Azure AD user identity on behalf of the app.\n *\n * @returns Promise that resolves with the {@link UserProfile}.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getUser(): Promise<UserProfile>;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link authentication.getUser authentication.getUser(): Promise\\<UserProfile\\>} instead.\n *\n * @hidden\n * Requests the decoded Azure AD user identity on behalf of the app.\n *\n * @param userRequest - It passes success/failure callbacks in the userRequest object(deprecated)\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getUser(userRequest: UserRequest): void;\n export function getUser(userRequest?: UserRequest): Promise<UserProfile> {\n ensureInitializeCalled();\n return getUserHelper()\n .then((value: UserProfile) => {\n if (userRequest && userRequest.successCallback) {\n userRequest.successCallback(value);\n return null;\n }\n return value;\n })\n .catch((err: Error) => {\n if (userRequest && userRequest.failureCallback) {\n userRequest.failureCallback(err.message);\n return null;\n }\n throw err;\n });\n }\n\n function getUserHelper(): Promise<UserProfile> {\n return new Promise<[boolean, UserProfile | string]>((resolve) => {\n resolve(sendMessageToParentAsync('authentication.getUser'));\n }).then(([success, result]: [boolean, UserProfile | string]) => {\n if (success) {\n return result as UserProfile;\n } else {\n throw new Error(result as string);\n }\n });\n }\n\n function closeAuthenticationWindow(): void {\n // Stop monitoring the authentication window\n stopAuthenticationWindowMonitor();\n // Try to close the authentication window and clear all properties associated with it\n try {\n if (Communication.childWindow) {\n Communication.childWindow.close();\n }\n } finally {\n Communication.childWindow = null;\n Communication.childOrigin = null;\n }\n }\n\n function openAuthenticationWindow(authenticateParameters: AuthenticateParameters): void {\n // Close the previously opened window if we have one\n closeAuthenticationWindow();\n // Start with a sensible default size\n let width = authenticateParameters.width || 600;\n let height = authenticateParameters.height || 400;\n // Ensure that the new window is always smaller than our app's window so that it never fully covers up our app\n width = Math.min(width, Communication.currentWindow.outerWidth - 400);\n height = Math.min(height, Communication.currentWindow.outerHeight - 200);\n // Convert any relative URLs into absolute URLs before sending them over to the parent window\n const link = document.createElement('a');\n link.href = authenticateParameters.url.replace('{oauthRedirectMethod}', 'web');\n // We are running in the browser, so we need to center the new window ourselves\n let left: number =\n typeof Communication.currentWindow.screenLeft !== 'undefined'\n ? Communication.currentWindow.screenLeft\n : Communication.currentWindow.screenX;\n let top: number =\n typeof Communication.currentWindow.screenTop !== 'undefined'\n ? Communication.currentWindow.screenTop\n : Communication.currentWindow.screenY;\n left += Communication.currentWindow.outerWidth / 2 - width / 2;\n top += Communication.currentWindow.outerHeight / 2 - height / 2;\n // Open a child window with a desired set of standard browser features\n Communication.childWindow = Communication.currentWindow.open(\n link.href,\n '_blank',\n 'toolbar=no, location=yes, status=no, menubar=no, scrollbars=yes, top=' +\n top +\n ', left=' +\n left +\n ', width=' +\n width +\n ', height=' +\n height,\n );\n if (Communication.childWindow) {\n // Start monitoring the authentication window so that we can detect if it gets closed before the flow completes\n startAuthenticationWindowMonitor();\n } else {\n // If we failed to open the window, fail the authentication flow\n handleFailure('FailedToOpenWindow');\n }\n }\n\n function stopAuthenticationWindowMonitor(): void {\n if (authWindowMonitor) {\n clearInterval(authWindowMonitor);\n authWindowMonitor = 0;\n }\n removeHandler('initialize');\n removeHandler('navigateCrossDomain');\n }\n\n function startAuthenticationWindowMonitor(): void {\n // Stop the previous window monitor if one is running\n stopAuthenticationWindowMonitor();\n // Create an interval loop that\n // - Notifies the caller of failure if it detects that the authentication window is closed\n // - Keeps pinging the authentication window while it is open to re-establish\n // contact with any pages along the authentication flow that need to communicate\n // with us\n authWindowMonitor = Communication.currentWindow.setInterval(() => {\n if (!Communication.childWindow || Communication.childWindow.closed) {\n handleFailure('CancelledByUser');\n } else {\n const savedChildOrigin = Communication.childOrigin;\n try {\n Communication.childOrigin = '*';\n sendMessageEventToChild('ping');\n } finally {\n Communication.childOrigin = savedChildOrigin;\n }\n }\n }, 100);\n // Set up an initialize-message handler that gives the authentication window its frame context\n registerHandler('initialize', () => {\n return [FrameContexts.authentication, GlobalVars.hostClientType];\n });\n // Set up a navigateCrossDomain message handler that blocks cross-domain re-navigation attempts\n // in the authentication window. We could at some point choose to implement this method via a call to\n // authenticationWindow.location.href = url; however, we would first need to figure out how to\n // validate the URL against the tab's list of valid domains.\n registerHandler('navigateCrossDomain', () => {\n return false;\n });\n }\n\n /**\n * When using {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\<string\\>}, the\n * window that was opened to execute the authentication flow should call this method after authentiction to notify the caller of\n * {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\<string\\>} that the\n * authentication request was successful.\n *\n * @remarks\n * This function is usable only from the authentication window.\n * This call causes the authentication window to be closed.\n *\n * @param result - Specifies a result for the authentication. If specified, the frame that initiated the authentication pop-up receives\n * this value in its callback or via the `Promise` return value\n * @param callbackUrl - Specifies the url to redirect back to if the client is Win32 Outlook.\n */\n export function notifySuccess(result?: string, callbackUrl?: string): void {\n redirectIfWin32Outlook(callbackUrl, 'result', result);\n ensureInitialized(runtime, FrameContexts.authentication);\n sendMessageToParent('authentication.authenticate.success', [result]);\n // Wait for the message to be sent before closing the window\n waitForMessageQueue(Communication.parentWindow, () => setTimeout(() => Communication.currentWindow.close(), 200));\n }\n\n /**\n * When using {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\<string\\>}, the\n * window that was opened to execute the authentication flow should call this method after authentiction to notify the caller of\n * {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\<string\\>} that the\n * authentication request failed.\n\n *\n * @remarks\n * This function is usable only on the authentication window.\n * This call causes the authentication window to be closed.\n *\n * @param result - Specifies a result for the authentication. If specified, the frame that initiated the authentication pop-up receives\n * this value in its callback or via the `Promise` return value\n * @param callbackUrl - Specifies the url to redirect back to if the client is Win32 Outlook.\n */\n export function notifyFailure(reason?: string, callbackUrl?: string): void {\n redirectIfWin32Outlook(callbackUrl, 'reason', reason);\n ensureInitialized(runtime, FrameContexts.authentication);\n sendMessageToParent('authentication.authenticate.failure', [reason]);\n // Wait for the message to be sent before closing the window\n waitForMessageQueue(Communication.parentWindow, () => setTimeout(() => Communication.currentWindow.close(), 200));\n }\n\n function handleSuccess(result?: string): void {\n try {\n if (authHandlers) {\n authHandlers.success(result);\n }\n } finally {\n authHandlers = null;\n closeAuthenticationWindow();\n }\n }\n\n function handleFailure(reason?: string): void {\n try {\n if (authHandlers) {\n authHandlers.fail(new Error(reason));\n }\n } finally {\n authHandlers = null;\n closeAuthenticationWindow();\n }\n }\n\n /**\n * Validates that the callbackUrl param is a valid connector url, appends the result/reason and authSuccess/authFailure as URL fragments and redirects the window\n * @param callbackUrl - the connectors url to redirect to\n * @param key - \"result\" in case of success and \"reason\" in case of failure\n * @param value - the value of the passed result/reason parameter\n */\n function redirectIfWin32Outlook(callbackUrl?: string, key?: string, value?: string): void {\n if (callbackUrl) {\n const link = document.createElement('a');\n link.href = decodeURIComponent(callbackUrl);\n if (\n link.host &&\n link.host !== window.location.host &&\n link.host === 'outlook.office.com' &&\n link.search.indexOf('client_type=Win32_Outlook') > -1\n ) {\n if (key && key === 'result') {\n if (value) {\n link.href = updateUrlParameter(link.href, 'result', value);\n }\n Communication.currentWindow.location.assign(updateUrlParameter(link.href, 'authSuccess', ''));\n }\n if (key && key === 'reason') {\n if (value) {\n link.href = updateUrlParameter(link.href, 'reason', value);\n }\n Communication.currentWindow.location.assign(updateUrlParameter(link.href, 'authFailure', ''));\n }\n }\n }\n }\n\n /**\n * Appends either result or reason as a fragment to the 'callbackUrl'\n * @param uri - the url to modify\n * @param key - the fragment key\n * @param value - the fragment value\n */\n function updateUrlParameter(uri: string, key: string, value: string): string {\n const i = uri.indexOf('#');\n let hash = i === -1 ? '#' : uri.substr(i);\n hash = hash + '&' + key + (value !== '' ? '=' + value : '');\n uri = i === -1 ? uri : uri.substr(0, i);\n return uri + hash;\n }\n\n /**\n * @deprecated\n * As of 2.0.0, this interface has been deprecated in favor of leveraging the `Promise` returned from {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\<string\\>}\n *-------------------------\n * Used in {@link AuthenticateParameters} and {@link AuthTokenRequest}\n */\n export interface LegacyCallBacks {\n /**\n * @deprecated\n * As of 2.0.0, this property has been deprecated in favor of a Promise-based pattern.\n *\n * A function that is called if the request succeeds.\n */\n successCallback?: (result: string) => void;\n /**\n * @deprecated\n * As of 2.0.0, this property has been deprecated in favor of a Promise-based pattern.\n *\n * A function that is called if the request fails, with the reason for the failure.\n */\n failureCallback?: (reason: string) => void;\n }\n\n /**\n * Describes the authentication pop-up parameters\n */\n export interface AuthenticatePopUpParameters {\n /**\n * The URL for the authentication pop-up.\n */\n url: string;\n /**\n * The preferred width for the pop-up. This value can be ignored if outside the acceptable bounds.\n */\n width?: number;\n /**\n * The preferred height for the pop-up. This value can be ignored if outside the acceptable bounds.\n */\n height?: number;\n /**\n * Some identity providers restrict their authentication pages from being displayed in embedded browsers (e.g., a web view inside of a native application)\n * If the identity provider you are using prevents embedded browser usage, this flag should be set to `true` to enable the authentication page specified in\n * the {@link url} property to be opened in an external browser.\n * If this flag is `false`, the page will be opened directly within the current hosting application.\n *\n * This flag is ignored when the host for the application is a web app (as opposed to a native application) as the behavior is unnecessary in a web-only\n * environment without an embedded browser.\n */\n isExternal?: boolean;\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\<string\\>} and\n * the associated {@link AuthenticatePopUpParameters} instead.\n *\n * @see {@link LegacyCallBacks}\n */\n export type AuthenticateParameters = AuthenticatePopUpParameters & LegacyCallBacks;\n\n /**\n * Describes authentication token request parameters\n */\n export interface AuthTokenRequestParameters {\n /**\n * @hidden\n * @internal\n * An list of resources for which to acquire the access token; only for internal Microsoft usage\n */\n resources?: string[];\n /**\n * An optional list of claims which to pass to AAD when requesting the access token.\n */\n claims?: string[];\n /**\n * An optional flag indicating whether to attempt the token acquisition silently or allow a prompt to be shown.\n */\n silent?: boolean;\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link AuthTokenRequestParameters} instead.\n */\n export type AuthTokenRequest = AuthTokenRequestParameters & LegacyCallBacks;\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface UserProfile {\n /**\n * @hidden\n * The intended recipient of the token. The application that receives the token must verify that the audience\n * value is correct and reject any tokens intended for a different audience.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n aud: string;\n /**\n * @hidden\n * Identifies how the subject of the token was authenticated.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n amr: string[];\n /**\n * @hidden\n * Stores the time at which the token was issued. It is often used to measure token freshness.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n iat: number;\n /**\n * @hidden\n * Identifies the security token service (STS) that constructs and returns the token. In the tokens that Azure AD\n * returns, the issuer is sts.windows.net. The GUID in the issuer claim value is the tenant ID of the Azure AD\n * directory. The tenant ID is an immutable and reliable identifier of the directory.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n iss: string;\n /**\n * @hidden\n * Provides the last name, surname, or family name of the user as defined in the Azure AD user object.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n family_name: string;\n /**\n * @hidden\n * Provides the first or \"given\" name of the user, as set on the Azure AD user object.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n given_name: string;\n /**\n * @hidden\n * Provides a human-readable value that identifies the subject of the token. This value is not guaranteed to\n * be unique within a tenant and is designed to be used only for display purposes.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n unique_name: string;\n /**\n * @hidden\n * Contains a unique identifier of an object in Azure AD. This value is immutable and cannot be reassigned or\n * reused. Use the object ID to identify an object in queries to Azure AD.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n oid: string;\n /**\n * @hidden\n * Identifies the principal about which the token asserts information, such as the user of an application.\n * This value is immutable and cannot be reassigned or reused, so it can be used to perform authorization\n * checks safely. Because the subject is always present in the tokens the Azure AD issues, we recommended\n * using this value in a general-purpose authorization system.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n sub: string;\n /**\n * @hidden\n * An immutable, non-reusable identifier that identifies the directory tenant that issued the token. You can\n * use this value to access tenant-specific directory resources in a multitenant application. For example,\n * you can use this value to identify the tenant in a call to the Graph API.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n tid: string;\n /**\n * @hidden\n * Defines the end of the time interval within which a token is valid. The service that validates the token\n * should verify that the current date is within the token lifetime; otherwise it should reject the token. The\n * service might allow for up to five minutes beyond the token lifetime to account for any differences in clock\n * time (\"time skew\") between Azure AD and the service.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n exp: number;\n /**\n * @hidden\n * Defines the start of the time interval within which a token is valid. The service that validates the token\n * should verify that the current date is within the token lifetime; otherwise it should reject the token. The\n * service might allow for up to five minutes beyond the token lifetime to account for any differences in clock\n * time (\"time skew\") between Azure AD and the service.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n nbf: number;\n /**\n * @hidden\n * Stores the user name of the user principal.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n upn: string;\n /**\n * @hidden\n * Stores the version number of the token.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n ver: string;\n /**\n * @hidden\n * Stores the data residency of the user.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n dataResidency?: DataResidency;\n }\n\n /**\n * @hidden\n * Limited set of data residencies information exposed to 1P application developers\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum DataResidency {\n /**\n * Public\n */\n Public = 'public',\n\n /**\n * European Union Data Boundary\n */\n EUDB = 'eudb',\n\n /**\n * Other, stored to cover fields that will not be exposed\n */\n Other = 'other',\n }\n\n /**\n * @deprecated\n * As of 2.0.0, this interface has been deprecated in favor of a Promise-based pattern.\n * @hidden\n * Describes the UserRequest. Success callback describes how a successful request is handled.\n * Failure callback describes how a failed request is handled.\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface UserRequest {\n /**\n * A function that is called if the token request succeeds, with the resulting token.\n */\n successCallback?: (user: UserProfile) => void;\n /**\n * A function that is called if the token request fails, with the reason for the failure.\n */\n failureCallback?: (reason: string) => void;\n }\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { sendMessageToParent } from '../internal/communication';\nimport { GlobalVars } from '../internal/globalVars';\nimport { registerHandler, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { isHostAdaptiveCardSchemaVersionUnsupported } from '../internal/utils';\nimport { DialogDimension, errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport {\n AdaptiveCardDialogInfo,\n BotAdaptiveCardDialogInfo,\n BotUrlDialogInfo,\n DialogInfo,\n DialogSize,\n M365ContentAction,\n TaskInfo,\n UrlDialogInfo,\n} from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * This group of capabilities enables apps to show modal dialogs. There are two primary types of dialogs: URL-based dialogs and [Adaptive Card](https://learn.microsoft.com/adaptive-cards/) dialogs.\n * Both types of dialogs are shown on top of your app, preventing interaction with your app while they are displayed.\n * - URL-based dialogs allow you to specify a URL from which the contents will be shown inside the dialog.\n * - For URL dialogs, use the functions and interfaces in the {@link dialog.url} namespace.\n * - Adaptive Card-based dialogs allow you to provide JSON describing an Adaptive Card that will be shown inside the dialog.\n * - For Adaptive Card dialogs, use the functions and interfaces in the {@link dialog.adaptiveCard} namespace.\n *\n * @remarks Note that dialogs were previously called \"task modules\". While they have been renamed for clarity, the functionality has been maintained.\n * For more details, see [Dialogs](https://learn.microsoft.com/microsoftteams/platform/task-modules-and-cards/what-are-task-modules)\n *\n * @beta\n */\nexport namespace dialog {\n /**\n * Data Structure to represent the SDK response when dialog closes\n *\n * @beta\n */\n export interface ISdkResponse {\n /**\n * Error in case there is a failure before dialog submission\n */\n err?: string;\n\n /**\n * Value provided in the `result` parameter by the dialog when the {@linkcode url.submit} function\n * was called.\n * If the dialog was closed by the user without submitting (e.g., using a control in the corner\n * of the dialog), this value will be `undefined` here.\n */\n result?: string | object;\n }\n\n /**\n * Handler used to receive and process messages sent between a dialog and the app that launched it\n * @beta\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export type PostMessageChannel = (message: any) => void;\n\n /**\n * Handler used for receiving results when a dialog closes, either the value passed by {@linkcode url.submit}\n * or an error if the dialog was closed by the user.\n *\n * @see {@linkcode ISdkResponse}\n *\n * @beta\n */\n export type DialogSubmitHandler = (result: ISdkResponse) => void;\n const storedMessages: string[] = [];\n\n /**\n * @hidden\n * Hide from docs because this function is only used during initialization\n *\n * Adds register handlers for messageForChild upon initialization and only in the tasks FrameContext. {@link FrameContexts.task}\n * Function is called during app initialization\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function initialize(): void {\n registerHandler('messageForChild', handleDialogMessage, false);\n }\n\n function handleDialogMessage(message: string): void {\n if (!GlobalVars.frameContext) {\n // GlobalVars.frameContext is currently not set\n return;\n }\n\n if (GlobalVars.frameContext === FrameContexts.task) {\n storedMessages.push(message);\n } else {\n // Not in task FrameContext, remove 'messageForChild' handler\n removeHandler('messageForChild');\n }\n }\n\n export namespace url {\n /**\n * Allows app to open a url based dialog.\n *\n * @remarks\n * This function cannot be called from inside of a dialog\n *\n * @param urlDialogInfo - An object containing the parameters of the dialog module.\n * @param submitHandler - Handler that triggers when a dialog calls the {@linkcode submit} function or when the user closes the dialog.\n * @param messageFromChildHandler - Handler that triggers if dialog sends a message to the app.\n *\n * @beta\n */\n export function open(\n urlDialogInfo: UrlDialogInfo,\n submitHandler?: DialogSubmitHandler,\n messageFromChildHandler?: PostMessageChannel,\n ): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (messageFromChildHandler) {\n registerHandler('messageForParent', messageFromChildHandler);\n }\n const dialogInfo: DialogInfo = getDialogInfoFromUrlDialogInfo(urlDialogInfo);\n sendMessageToParent('tasks.startTask', [dialogInfo], (err: string, result: string | object) => {\n submitHandler?.({ err, result });\n removeHandler('messageForParent');\n });\n }\n\n /**\n * Submit the dialog module and close the dialog\n *\n * @remarks\n * This function is only intended to be called from code running within the dialog. Calling it from outside the dialog will have no effect.\n *\n * @param result - The result to be sent to the bot or the app. Typically a JSON object or a serialized version of it,\n * If this function is called from a dialog while {@link M365ContentAction} is set in the context object by the host, result will be ignored\n *\n * @param appIds - Valid application(s) that can receive the result of the submitted dialogs. Specifying this parameter helps prevent malicious apps from retrieving the dialog result. Multiple app IDs can be specified because a web app from a single underlying domain can power multiple apps across different environments and branding schemes.\n *\n * @beta\n */\n export function submit(result?: string | object, appIds?: string | string[]): void {\n // FrameContext content should not be here because dialog.submit can be called only from inside of a dialog (FrameContext task)\n // but it's here because Teams mobile incorrectly returns FrameContext.content when calling app.getFrameContext().\n // FrameContexts.content will be removed once the bug is fixed.\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n // Send tasks.completeTask instead of tasks.submitTask message for backward compatibility with Mobile clients\n sendMessageToParent('tasks.completeTask', [result, appIds ? (Array.isArray(appIds) ? appIds : [appIds]) : []]);\n }\n\n /**\n * Send message to the parent from dialog\n *\n * @remarks\n * This function is only intended to be called from code running within the dialog. Calling it from outside the dialog will have no effect.\n *\n * @param message - The message to send to the parent\n *\n * @beta\n */\n export function sendMessageToParentFromDialog(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n message: any,\n ): void {\n ensureInitialized(runtime, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n sendMessageToParent('messageForParent', [message]);\n }\n\n /**\n * Send message to the dialog from the parent\n *\n * @param message - The message to send\n *\n * @beta\n */\n export function sendMessageToDialog(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n message: any,\n ): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n sendMessageToParent('messageForChild', [message]);\n }\n\n /**\n * Register a listener that will be triggered when a message is received from the app that opened the dialog.\n *\n * @remarks\n * This function is only intended to be called from code running within the dialog. Calling it from outside the dialog will have no effect.\n *\n * @param listener - The listener that will be triggered.\n *\n * @beta\n */\n export function registerOnMessageFromParent(listener: PostMessageChannel): void {\n ensureInitialized(runtime, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n // We need to remove the original 'messageForChild'\n // handler since the original does not allow for post messages.\n // It is replaced by the user specified listener that is passed in.\n removeHandler('messageForChild');\n registerHandler('messageForChild', listener);\n storedMessages.reverse();\n while (storedMessages.length > 0) {\n const message = storedMessages.pop();\n listener(message);\n }\n }\n\n /**\n * Checks if dialog.url module is supported by the host\n *\n * @returns boolean to represent whether dialog.url module is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && (runtime.supports.dialog && runtime.supports.dialog.url) !== undefined;\n }\n\n /**\n * Namespace to open a dialog that sends results to the bot framework\n *\n * @beta\n */\n export namespace bot {\n /**\n * Allows an app to open the dialog module using bot.\n *\n * @param botUrlDialogInfo - An object containing the parameters of the dialog module including completionBotId.\n * @param submitHandler - Handler that triggers when the dialog has been submitted or closed.\n * @param messageFromChildHandler - Handler that triggers if dialog sends a message to the app.\n *\n * @returns a function that can be used to send messages to the dialog.\n *\n * @beta\n */\n export function open(\n botUrlDialogInfo: BotUrlDialogInfo,\n submitHandler?: DialogSubmitHandler,\n messageFromChildHandler?: PostMessageChannel,\n ): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (messageFromChildHandler) {\n registerHandler('messageForParent', messageFromChildHandler);\n }\n const dialogInfo: DialogInfo = getDialogInfoFromBotUrlDialogInfo(botUrlDialogInfo);\n\n sendMessageToParent('tasks.startTask', [dialogInfo], (err: string, result: string | object) => {\n submitHandler?.({ err, result });\n removeHandler('messageForParent');\n });\n }\n\n /**\n * Checks if dialog.url.bot capability is supported by the host\n *\n * @returns boolean to represent whether dialog.url.bot is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return (\n ensureInitialized(runtime) &&\n (runtime.supports.dialog && runtime.supports.dialog.url && runtime.supports.dialog.url.bot) !== undefined\n );\n }\n }\n\n /**\n * @hidden\n *\n * Convert UrlDialogInfo to DialogInfo to send the information to host in {@linkcode open} API.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getDialogInfoFromUrlDialogInfo(urlDialogInfo: UrlDialogInfo): DialogInfo {\n const dialogInfo: DialogInfo = {\n url: urlDialogInfo.url,\n height: urlDialogInfo.size ? urlDialogInfo.size.height : DialogDimension.Small,\n width: urlDialogInfo.size ? urlDialogInfo.size.width : DialogDimension.Small,\n title: urlDialogInfo.title,\n fallbackUrl: urlDialogInfo.fallbackUrl,\n };\n return dialogInfo;\n }\n\n /**\n * @hidden\n *\n * Convert BotUrlDialogInfo to DialogInfo to send the information to host in {@linkcode bot.open} API.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getDialogInfoFromBotUrlDialogInfo(botUrlDialogInfo: BotUrlDialogInfo): DialogInfo {\n const dialogInfo: DialogInfo = getDialogInfoFromUrlDialogInfo(botUrlDialogInfo);\n dialogInfo.completionBotId = botUrlDialogInfo.completionBotId;\n return dialogInfo;\n }\n }\n\n /**\n * This function currently serves no purpose and should not be used. All functionality that used\n * to be covered by this method is now in subcapabilities and those isSupported methods should be\n * used directly.\n *\n * @hidden\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.dialog ? true : false;\n }\n\n /**\n * Namespace to update the dialog\n *\n * @beta\n */\n export namespace update {\n /**\n * Update dimensions - height/width of a dialog.\n *\n * @param dimensions - An object containing width and height properties.\n *\n * @beta\n */\n export function resize(dimensions: DialogSize): void {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.task,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('tasks.updateTask', [dimensions]);\n }\n\n /**\n * Checks if dialog.update capability is supported by the host\n * @returns boolean to represent whether dialog.update capabilty is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.dialog\n ? runtime.supports.dialog.update\n ? true\n : false\n : false;\n }\n }\n\n /**\n * Subcapability for interacting with adaptive card dialogs\n * @beta\n */\n export namespace adaptiveCard {\n /**\n * Allows app to open an adaptive card based dialog.\n *\n * @remarks\n * This function cannot be called from inside of a dialog\n *\n * @param adaptiveCardDialogInfo - An object containing the parameters of the dialog module {@link AdaptiveCardDialogInfo}.\n * @param submitHandler - Handler that triggers when a dialog calls the {@linkcode url.submit} function or when the user closes the dialog.\n *\n * @beta\n */\n export function open(adaptiveCardDialogInfo: AdaptiveCardDialogInfo, submitHandler?: DialogSubmitHandler): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const dialogInfo: DialogInfo = getDialogInfoFromAdaptiveCardDialogInfo(adaptiveCardDialogInfo);\n sendMessageToParent('tasks.startTask', [dialogInfo], (err: string, result: string | object) => {\n submitHandler?.({ err, result });\n });\n }\n\n /**\n * Checks if dialog.adaptiveCard module is supported by the host\n *\n * @returns boolean to represent whether dialog.adaptiveCard module is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n const isAdaptiveCardVersionSupported =\n runtime.hostVersionsInfo &&\n runtime.hostVersionsInfo.adaptiveCardSchemaVersion &&\n !isHostAdaptiveCardSchemaVersionUnsupported(runtime.hostVersionsInfo.adaptiveCardSchemaVersion);\n return (\n ensureInitialized(runtime) &&\n (isAdaptiveCardVersionSupported && runtime.supports.dialog && runtime.supports.dialog.card) !== undefined\n );\n }\n\n /**\n * Namespace for interaction with adaptive card dialogs that need to communicate with the bot framework\n *\n * @beta\n */\n export namespace bot {\n /**\n * Allows an app to open an adaptive card-based dialog module using bot.\n *\n * @param botAdaptiveCardDialogInfo - An object containing the parameters of the dialog module including completionBotId.\n * @param submitHandler - Handler that triggers when the dialog has been submitted or closed.\n *\n * @beta\n */\n export function open(\n botAdaptiveCardDialogInfo: BotAdaptiveCardDialogInfo,\n submitHandler?: DialogSubmitHandler,\n ): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n const dialogInfo: DialogInfo = getDialogInfoFromBotAdaptiveCardDialogInfo(botAdaptiveCardDialogInfo);\n\n sendMessageToParent('tasks.startTask', [dialogInfo], (err: string, result: string | object) => {\n submitHandler?.({ err, result });\n });\n }\n\n /**\n * Checks if dialog.adaptiveCard.bot capability is supported by the host\n *\n * @returns boolean to represent whether dialog.adaptiveCard.bot is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n const isAdaptiveCardVersionSupported =\n runtime.hostVersionsInfo &&\n runtime.hostVersionsInfo.adaptiveCardSchemaVersion &&\n !isHostAdaptiveCardSchemaVersionUnsupported(runtime.hostVersionsInfo.adaptiveCardSchemaVersion);\n return (\n ensureInitialized(runtime) &&\n (isAdaptiveCardVersionSupported &&\n runtime.supports.dialog &&\n runtime.supports.dialog.card &&\n runtime.supports.dialog.card.bot) !== undefined\n );\n }\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Convert AdaptiveCardDialogInfo to DialogInfo to send the information to host in {@linkcode adaptiveCard.open} API.\n *\n * @internal\n */\n export function getDialogInfoFromAdaptiveCardDialogInfo(\n adaptiveCardDialogInfo: AdaptiveCardDialogInfo,\n ): DialogInfo {\n const dialogInfo: DialogInfo = {\n card: adaptiveCardDialogInfo.card,\n height: adaptiveCardDialogInfo.size ? adaptiveCardDialogInfo.size.height : DialogDimension.Small,\n width: adaptiveCardDialogInfo.size ? adaptiveCardDialogInfo.size.width : DialogDimension.Small,\n title: adaptiveCardDialogInfo.title,\n };\n return dialogInfo;\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Convert BotAdaptiveCardDialogInfo to DialogInfo to send the information to host in {@linkcode adaptiveCard.open} API.\n *\n * @internal\n */\n export function getDialogInfoFromBotAdaptiveCardDialogInfo(\n botAdaptiveCardDialogInfo: BotAdaptiveCardDialogInfo,\n ): DialogInfo {\n const dialogInfo: DialogInfo = getDialogInfoFromAdaptiveCardDialogInfo(botAdaptiveCardDialogInfo);\n dialogInfo.completionBotId = botAdaptiveCardDialogInfo.completionBotId;\n return dialogInfo;\n }\n\n /**\n * @hidden\n * Converts {@link TaskInfo} to {@link AdaptiveCardDialogInfo}\n * @param taskInfo - TaskInfo object to convert\n * @returns - converted AdaptiveCardDialogInfo\n */\n export function getAdaptiveCardDialogInfoFromTaskInfo(taskInfo: TaskInfo): AdaptiveCardDialogInfo {\n // eslint-disable-next-line strict-null-checks/all\n const adaptiveCardDialogInfo: AdaptiveCardDialogInfo = {\n card: taskInfo.card,\n size: {\n height: taskInfo.height ? taskInfo.height : DialogDimension.Small,\n width: taskInfo.width ? taskInfo.width : DialogDimension.Small,\n },\n title: taskInfo.title,\n };\n\n return adaptiveCardDialogInfo;\n }\n\n /**\n * @hidden\n * Converts {@link TaskInfo} to {@link BotAdaptiveCardDialogInfo}\n * @param taskInfo - TaskInfo object to convert\n * @returns - converted BotAdaptiveCardDialogInfo\n */\n export function getBotAdaptiveCardDialogInfoFromTaskInfo(taskInfo: TaskInfo): BotAdaptiveCardDialogInfo {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const botAdaptiveCardDialogInfo: BotAdaptiveCardDialogInfo = {\n card: taskInfo.card,\n size: {\n height: taskInfo.height ? taskInfo.height : DialogDimension.Small,\n width: taskInfo.width ? taskInfo.width : DialogDimension.Small,\n },\n title: taskInfo.title,\n completionBotId: taskInfo.completionBotId,\n };\n\n return botAdaptiveCardDialogInfo;\n }\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { registerHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { runtime } from '../public/runtime';\nimport { errorNotSupportedOnPlatform } from './constants';\n\n/**\n * Namespace to interact with the menu-specific part of the SDK.\n * This object is used to show View Configuration, Action Menu and Navigation Bar Menu.\n */\nexport namespace menus {\n /**\n * @hidden\n * Represents information about item in View Configuration.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface ViewConfiguration {\n /**\n * @hidden\n * Unique identifier of view.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n id: string;\n /**\n * @hidden\n * Display title of the view.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n /**\n * @hidden\n * Additional information for accessibility.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n contentDescription?: string;\n }\n\n /**\n * Defines how a menu item should appear in the NavBar.\n */\n export enum DisplayMode {\n /**\n * Only place this item in the NavBar if there's room for it.\n * If there's no room, item is shown in the overflow menu.\n */\n ifRoom = 0,\n /**\n * Never place this item in the NavBar.\n * The item would always be shown in NavBar's overflow menu.\n */\n overflowOnly = 1,\n }\n\n /**\n * @hidden\n * Represents information about menu item for Action Menu and Navigation Bar Menu.\n */\n export class MenuItem {\n /**\n * @hidden\n * Unique identifier for the menu item.\n */\n public id: string;\n /**\n * @hidden\n * Display title of the menu item.\n */\n public title: string;\n /**\n * @hidden\n * Display icon of the menu item. The icon value must be a string having SVG icon content.\n */\n public icon: string;\n /**\n * @hidden\n * Selected state display icon of the menu item. The icon value must be a string having SVG icon content.\n */\n public iconSelected?: string;\n /**\n * @hidden\n * Additional information for accessibility.\n */\n public contentDescription?: string;\n /**\n * @hidden\n * State of the menu item\n */\n public enabled = true;\n /**\n * @hidden\n * Interface to show list of items on selection of menu item.\n */\n public viewData?: ViewData;\n /**\n * @hidden\n * Whether the menu item is selected or not\n */\n public selected = false;\n /**\n * The Display Mode of the menu item.\n * Default Behaviour would be DisplayMode.ifRoom if null.\n * Refer {@link DisplayMode}\n */\n public displayMode?: DisplayMode;\n }\n\n /**\n * @hidden\n * Represents information about view to show on Navigation Bar Menu item selection\n */\n export interface ViewData {\n /**\n * @hidden\n * Display header title of the item list.\n */\n listTitle?: string;\n /**\n * @hidden\n * Type of the menu item.\n */\n listType: MenuListType;\n /**\n * @hidden\n * Array of MenuItem. Icon value will be required for all items in the list.\n */\n listItems: MenuItem[];\n }\n\n /**\n * @hidden\n * Represents information about type of list to display in Navigation Bar Menu.\n */\n export enum MenuListType {\n dropDown = 'dropDown',\n popOver = 'popOver',\n }\n let navBarMenuItemPressHandler: ((id: string) => boolean) | undefined;\n let actionMenuItemPressHandler: ((id: string) => boolean) | undefined;\n let viewConfigItemPressHandler: ((id: string) => boolean) | undefined;\n\n export function initialize(): void {\n registerHandler('navBarMenuItemPress', handleNavBarMenuItemPress, false);\n registerHandler('actionMenuItemPress', handleActionMenuItemPress, false);\n registerHandler('setModuleView', handleViewConfigItemPress, false);\n }\n\n /**\n * @hidden\n * Registers list of view configurations and it's handler.\n * Handler is responsible for listening selection of View Configuration.\n *\n * @param viewConfig - List of view configurations. Minimum 1 value is required.\n * @param handler - The handler to invoke when the user selects view configuration.\n */\n export function setUpViews(viewConfig: ViewConfiguration[], handler: (id: string) => boolean): void {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n viewConfigItemPressHandler = handler;\n sendMessageToParent('setUpViews', [viewConfig]);\n }\n\n function handleViewConfigItemPress(id: string): void {\n if (!viewConfigItemPressHandler || !viewConfigItemPressHandler(id)) {\n ensureInitialized(runtime);\n sendMessageToParent('viewConfigItemPress', [id]);\n }\n }\n\n /**\n * @hidden\n * Used to set menu items on the Navigation Bar. If icon is available, icon will be shown, otherwise title will be shown.\n *\n * @param items List of MenuItems for Navigation Bar Menu.\n * @param handler The handler to invoke when the user selects menu item.\n */\n export function setNavBarMenu(items: MenuItem[], handler: (id: string) => boolean): void {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n navBarMenuItemPressHandler = handler;\n sendMessageToParent('setNavBarMenu', [items]);\n }\n\n function handleNavBarMenuItemPress(id: string): void {\n if (!navBarMenuItemPressHandler || !navBarMenuItemPressHandler(id)) {\n ensureInitialized(runtime);\n sendMessageToParent('handleNavBarMenuItemPress', [id]);\n }\n }\n\n export interface ActionMenuParameters {\n /**\n * @hidden\n * Display title for Action Menu\n */\n title: string;\n /**\n * @hidden\n * List of MenuItems for Action Menu\n */\n items: MenuItem[];\n }\n\n /**\n * @hidden\n * Used to show Action Menu.\n *\n * @param params - Parameters for Menu Parameters\n * @param handler - The handler to invoke when the user selects menu item.\n */\n export function showActionMenu(params: ActionMenuParameters, handler: (id: string) => boolean): void {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n actionMenuItemPressHandler = handler;\n sendMessageToParent('showActionMenu', [params]);\n }\n\n function handleActionMenuItemPress(id: string): void {\n if (!actionMenuItemPressHandler || !actionMenuItemPressHandler(id)) {\n ensureInitialized(runtime);\n sendMessageToParent('handleActionMenuItemPress', [id]);\n }\n }\n\n /**\n * Checks if the menus capability is supported by the host\n * @returns boolean to represent whether the menus capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.menus ? true : false;\n }\n}\n","import { GlobalVars } from '../internal/globalVars';\nimport * as Handlers from '../internal/handlers'; // Conflict with some names\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform } from './constants';\nimport { LoadContext } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * Namespace containing the set of APIs that support Teams-specific functionalities.\n */\n\nexport namespace teamsCore {\n /**\n * Enable print capability to support printing page using Ctrl+P and cmd+P\n */\n export function enablePrintCapability(): void {\n if (!GlobalVars.printCapabilityEnabled) {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n GlobalVars.printCapabilityEnabled = true;\n // adding ctrl+P and cmd+P handler\n document.addEventListener('keydown', (event: KeyboardEvent) => {\n if ((event.ctrlKey || event.metaKey) && event.keyCode === 80) {\n print();\n event.cancelBubble = true;\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n });\n }\n }\n\n /**\n * default print handler\n */\n export function print(): void {\n if (typeof window !== 'undefined') {\n window.print();\n } else {\n // This codepath only exists to enable compilation in a server-side redered environment. In standard usage, the window object should never be undefined so this code path should never run.\n // If this error has actually been thrown, something has gone very wrong and it is a bug\n throw new Error('window object undefined at print call');\n }\n }\n\n /**\n * Registers a handler to be called when the page has been requested to load.\n *\n * @remarks Check out [App Caching in Teams](https://learn.microsoft.com/microsoftteams/platform/apps-in-teams-meetings/build-tabs-for-meeting?tabs=desktop%2Cmeeting-chat-view-desktop%2Cmeeting-stage-view-desktop%2Cchannel-meeting-desktop#app-caching)\n * for a more detailed explanation about using this API.\n *\n * @param handler - The handler to invoke when the page is loaded.\n *\n * @beta\n */\n export function registerOnLoadHandler(handler: (context: LoadContext) => void): void {\n registerOnLoadHandlerHelper(handler, () => {\n if (handler && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerOnLoadHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param handler - The handler to invoke when the page is loaded.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n */\n export function registerOnLoadHandlerHelper(\n handler: (context: LoadContext) => void,\n versionSpecificHelper?: () => void,\n ): void {\n // allow for registration cleanup even when not finished initializing\n handler && ensureInitialized(runtime);\n\n if (handler && versionSpecificHelper) {\n versionSpecificHelper();\n }\n\n Handlers.registerOnLoadHandler(handler);\n }\n\n /**\n * Registers a handler to be called before the page is unloaded.\n *\n * @remarks Check out [App Caching in Teams](https://learn.microsoft.com/microsoftteams/platform/apps-in-teams-meetings/build-tabs-for-meeting?tabs=desktop%2Cmeeting-chat-view-desktop%2Cmeeting-stage-view-desktop%2Cchannel-meeting-desktop#app-caching)\n * for a more detailed explanation about using this API.\n *\n * @param handler - The handler to invoke before the page is unloaded. If this handler returns true the page should\n * invoke the readyToUnload function provided to it once it's ready to be unloaded.\n *\n * @beta\n */\n export function registerBeforeUnloadHandler(handler: (readyToUnload: () => void) => boolean): void {\n registerBeforeUnloadHandlerHelper(handler, () => {\n if (handler && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerBeforeUnloadHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param handler - - The handler to invoke before the page is unloaded. If this handler returns true the page should\n * invoke the readyToUnload function provided to it once it's ready to be unloaded.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n */\n export function registerBeforeUnloadHandlerHelper(\n handler: (readyToUnload: () => void) => boolean,\n versionSpecificHelper?: () => void,\n ): void {\n // allow for registration cleanup even when not finished initializing\n handler && ensureInitialized(runtime);\n if (handler && versionSpecificHelper) {\n versionSpecificHelper();\n }\n Handlers.registerBeforeUnloadHandler(handler);\n }\n\n /**\n * Checks if teamsCore capability is supported by the host\n *\n * @returns boolean to represent whether the teamsCore capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.teamsCore ? true : false;\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport {\n Communication,\n initializeCommunication,\n sendAndHandleStatusAndReason as send,\n sendAndUnwrap,\n sendMessageToParent,\n uninitializeCommunication,\n} from '../internal/communication';\nimport { defaultSDKVersionForCompatCheck } from '../internal/constants';\nimport { GlobalVars } from '../internal/globalVars';\nimport * as Handlers from '../internal/handlers'; // Conflict with some names\nimport { ensureInitializeCalled, ensureInitialized, processAdditionalValidOrigins } from '../internal/internalAPIs';\nimport { getLogger } from '../internal/telemetry';\nimport { compareSDKVersions, runWithTimeout } from '../internal/utils';\nimport { logs } from '../private/logs';\nimport { authentication } from './authentication';\nimport { ChannelType, FrameContexts, HostClientType, HostName, TeamType, UserTeamRole } from './constants';\nimport { dialog } from './dialog';\nimport { ActionInfo, Context as LegacyContext, FileOpenPreference, LocaleInfo } from './interfaces';\nimport { menus } from './menus';\nimport { pages } from './pages';\nimport { applyRuntimeConfig, generateBackCompatRuntimeConfig, IBaseRuntime, runtime } from './runtime';\nimport { teamsCore } from './teamsAPIs';\nimport { version } from './version';\n\n/**\n * Namespace to interact with app initialization and lifecycle.\n */\nexport namespace app {\n const appLogger = getLogger('app');\n\n // ::::::::::::::::::::::: MicrosoftTeams client SDK public API ::::::::::::::::::::\n\n export const Messages = {\n AppLoaded: 'appInitialization.appLoaded',\n Success: 'appInitialization.success',\n Failure: 'appInitialization.failure',\n ExpectedFailure: 'appInitialization.expectedFailure',\n };\n\n /**\n * Describes errors that caused app initialization to fail\n */\n export enum FailedReason {\n /**\n * Authentication failed\n */\n AuthFailed = 'AuthFailed',\n /**\n * The application timed out\n */\n Timeout = 'Timeout',\n /**\n * The app failed for a different reason\n */\n Other = 'Other',\n }\n\n /**\n * Describes expected errors that occurred during an otherwise successful\n * app initialization\n */\n export enum ExpectedFailureReason {\n /**\n * There was a permission error\n */\n PermissionError = 'PermissionError',\n /**\n * The item was not found\n */\n NotFound = 'NotFound',\n /**\n * The network is currently throttled\n */\n Throttling = 'Throttling',\n /**\n * The application is currently offline\n */\n Offline = 'Offline',\n /**\n * The app failed for a different reason\n */\n Other = 'Other',\n }\n\n /**\n * Represents the failed request sent during a failed app initialization.\n */\n export interface IFailedRequest {\n /**\n * The reason for the failure\n */\n reason: FailedReason;\n /**\n * This property is currently unused.\n */\n message?: string;\n }\n\n /**\n * Represents the failure request sent during an erroneous app initialization.\n */\n export interface IExpectedFailureRequest {\n /**\n * The reason for the failure\n */\n reason: ExpectedFailureReason;\n /**\n * A message that describes the failure\n */\n message?: string;\n }\n\n /**\n * Represents application information.\n */\n export interface AppInfo {\n /**\n * The current locale that the user has configured for the app formatted as\n * languageId-countryId (for example, en-us).\n */\n locale: string;\n\n /**\n * The current UI theme of the host. Possible values: \"default\", \"dark\", or \"contrast\".\n */\n theme: string;\n\n /**\n * Unique ID for the current session for use in correlating telemetry data.\n */\n sessionId: string;\n\n /**\n * Info of the host\n */\n host: AppHostInfo;\n\n /**\n * More detailed locale info from the user's OS if available. Can be used together with\n * the @microsoft/globe NPM package to ensure your app respects the user's OS date and\n * time format configuration\n */\n osLocaleInfo?: LocaleInfo;\n /**\n * Personal app icon y coordinate position\n */\n iconPositionVertical?: number;\n\n /**\n * Time when the user clicked on the tab\n */\n userClickTime?: number;\n\n /**\n * The ID of the parent message from which this task module was launched.\n * This is only available in task modules launched from bot cards.\n */\n parentMessageId?: string;\n\n /**\n * Where the user prefers the file to be opened from by default during file open\n */\n userFileOpenPreference?: FileOpenPreference;\n\n /**\n * ID for the current visible app which is different for across cached sessions. Used for correlating telemetry data.\n */\n appLaunchId?: string;\n }\n\n /**\n * Represents information about the application's host.\n */\n export interface AppHostInfo {\n /**\n * The name of the host client. Possible values are: Office, Orange, Outlook, Teams\n */\n name: HostName;\n\n /**\n * The type of the host client. Possible values are : android, ios, web, desktop, rigel\n */\n clientType: HostClientType;\n\n /**\n * Unique ID for the current Host session for use in correlating telemetry data.\n */\n sessionId: string;\n\n /**\n * Current ring ID\n */\n ringId?: string;\n }\n\n /**\n * Represents Channel information.\n */\n export interface ChannelInfo {\n /**\n * The Microsoft Teams ID for the channel with which the content is associated.\n */\n id: string;\n\n /**\n * The name for the channel with which the content is associated.\n */\n displayName?: string;\n\n /**\n * The relative path to the SharePoint folder associated with the channel.\n */\n relativeUrl?: string;\n\n /**\n * The type of the channel with which the content is associated.\n */\n membershipType?: ChannelType;\n\n /**\n * The OneNote section ID that is linked to the channel.\n */\n defaultOneNoteSectionId?: string;\n\n /**\n * The tenant ID of the team which owns the channel.\n */\n ownerTenantId?: string;\n\n /**\n * The AAD group ID of the team which owns the channel.\n */\n ownerGroupId?: string;\n }\n\n /**\n * Represents Chat information.\n */\n export interface ChatInfo {\n /**\n * The Microsoft Teams ID for the chat with which the content is associated.\n */\n id: string;\n }\n\n /**\n * Represents Meeting information.\n */\n export interface MeetingInfo {\n /**\n * Meeting Id used by tab when running in meeting context\n */\n id: string;\n }\n\n /**\n * Represents Page information.\n */\n export interface PageInfo {\n /**\n * The developer-defined unique ID for the page this content points to.\n */\n id: string;\n\n /**\n * The context where page url is loaded (content, task, setting, remove, sidePanel)\n */\n frameContext: FrameContexts;\n\n /**\n * The developer-defined unique ID for the sub-page this content points to.\n * This field should be used to restore to a specific state within a page,\n * such as scrolling to or activating a specific piece of content.\n */\n subPageId?: string;\n\n /**\n * Indication whether the page is in full-screen mode.\n */\n isFullScreen?: boolean;\n\n /**\n * Indication whether the page is in a pop out window\n */\n isMultiWindow?: boolean;\n\n /**\n * Source origin from where the page is opened\n */\n sourceOrigin?: string;\n }\n\n /**\n * Represents Team information.\n */\n export interface TeamInfo {\n /**\n * The Microsoft Teams ID for the team with which the content is associated.\n */\n internalId: string;\n\n /**\n * The name for the team with which the content is associated.\n */\n displayName?: string;\n\n /**\n * The type of the team.\n */\n type?: TeamType;\n\n /**\n * The Office 365 group ID for the team with which the content is associated.\n * This field is available only when the identity permission is requested in the manifest.\n */\n groupId?: string;\n\n /**\n * Indicates whether team is archived.\n * Apps should use this as a signal to prevent any changes to content associated with archived teams.\n */\n isArchived?: boolean;\n\n /**\n * Team Template ID if there was a Team Template associated with the creation of the team.\n */\n templateId?: string;\n\n /**\n * The user's role in the team.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to the user's role, and never as proof of her role.\n */\n userRole?: UserTeamRole;\n }\n\n /**\n * Represents User information.\n */\n export interface UserInfo {\n /**\n * The Azure AD object id of the current user.\n * Because a malicious party run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n id: string;\n\n /**\n * The address book name of the current user.\n */\n displayName?: string;\n\n /**\n * Represents whether calling is allowed for the current logged in User\n */\n isCallingAllowed?: boolean;\n\n /**\n * Represents whether PSTN calling is allowed for the current logged in User\n */\n isPSTNCallingAllowed?: boolean;\n\n /**\n * The license type for the current user. Possible values are:\n * \"Unknown\", \"Teacher\", \"Student\", \"Free\", \"SmbBusinessVoice\", \"SmbNonVoice\", \"FrontlineWorker\"\n */\n licenseType?: string;\n\n /**\n * A value suitable for use as a login_hint when authenticating with Azure AD.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n loginHint?: string;\n\n /**\n * The UPN of the current user. This may be an externally-authenticated UPN (e.g., guest users).\n * Because a malicious party run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n userPrincipalName?: string;\n\n /**\n * The tenant related info of the current user.\n */\n tenant?: TenantInfo;\n }\n\n /**\n * Represents Tenant information.\n */\n export interface TenantInfo {\n /**\n * The Azure AD tenant ID of the current user.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n id: string;\n\n /**\n * The type of license for the current users tenant.\n */\n teamsSku?: string;\n }\n\n export interface SharePointSiteInfo {\n /**\n * The root SharePoint site associated with the team.\n */\n teamSiteUrl?: string;\n\n /**\n * The domain of the root SharePoint site associated with the team.\n */\n teamSiteDomain?: string;\n\n /**\n * The relative path to the SharePoint site associated with the team.\n */\n teamSitePath?: string;\n\n /**\n * Teamsite ID, aka sharepoint site id.\n */\n teamSiteId?: string;\n\n /**\n * The SharePoint my site domain associated with the user.\n */\n mySiteDomain?: string;\n\n /**\n * The SharePoint relative path to the current users mysite\n */\n mySitePath?: string;\n }\n\n /**\n * Represents structure of the received context message.\n */\n export interface Context {\n /**\n * Content Action Info\n *\n * @beta\n */\n actionInfo?: ActionInfo;\n /**\n * Properties about the current session for your app\n */\n app: AppInfo;\n\n /**\n * Info about the current page context hosting your app\n */\n page: PageInfo;\n\n /**\n * Info about the currently logged in user running the app.\n * If the current user is not logged in/authenticated (e.g. a meeting app running for an anonymously-joined partcipant) this will be `undefined`.\n */\n user?: UserInfo;\n\n /**\n * When running in the context of a Teams channel, provides information about the channel, else `undefined`\n */\n channel?: ChannelInfo;\n\n /**\n * When running in the context of a Teams chat, provides information about the chat, else `undefined`\n */\n chat?: ChatInfo;\n\n /**\n * When running in the context of a Teams meeting, provides information about the meeting, else `undefined`\n */\n meeting?: MeetingInfo;\n\n /**\n * When hosted in SharePoint, this is the [SharePoint PageContext](https://learn.microsoft.com/javascript/api/sp-page-context/pagecontext?view=sp-typescript-latest), else `undefined`\n */\n sharepoint?: any;\n\n /**\n * When running in Teams for an organization with a tenant, provides information about the SharePoint site associated with the team.\n * Will be `undefined` when not running in Teams for an organization with a tenant.\n */\n sharePointSite?: SharePointSiteInfo;\n\n /**\n * When running in Teams, provides information about the Team context in which your app is running.\n * Will be `undefined` when not running in Teams.\n */\n team?: TeamInfo;\n }\n\n /**\n * Checks whether the Teams client SDK has been initialized.\n * @returns whether the Teams client SDK has been initialized.\n */\n export function isInitialized(): boolean {\n return GlobalVars.initializeCompleted;\n }\n\n /**\n * Gets the Frame Context that the App is running in. See {@link FrameContexts} for the list of possible values.\n * @returns the Frame Context.\n */\n export function getFrameContext(): FrameContexts {\n return GlobalVars.frameContext;\n }\n\n /**\n * Number of milliseconds we'll give the initialization call to return before timing it out\n */\n const initializationTimeoutInMs = 5000;\n\n /**\n * Initializes the library.\n *\n * @remarks\n * Initialize must have completed successfully (as determined by the resolved Promise) before any other library calls are made\n *\n * @param validMessageOrigins - Optionally specify a list of cross frame message origins. They must have\n * https: protocol otherwise they will be ignored. Example: https://www.example.com\n * @returns Promise that will be fulfilled when initialization has completed, or rejected if the initialization fails or times out\n */\n export function initialize(validMessageOrigins?: string[]): Promise<void> {\n if (!inServerSideRenderingEnvironment()) {\n return runWithTimeout(\n () => initializeHelper(validMessageOrigins),\n initializationTimeoutInMs,\n new Error('SDK initialization timed out.'),\n );\n } else {\n const initializeLogger = appLogger.extend('initialize');\n // This log statement should NEVER actually be written. This code path exists only to enable compilation in server-side rendering environments.\n // If you EVER see this statement in ANY log file, something has gone horribly wrong and a bug needs to be filed.\n initializeLogger('window object undefined at initialization');\n return Promise.resolve();\n }\n }\n\n const initializeHelperLogger = appLogger.extend('initializeHelper');\n function initializeHelper(validMessageOrigins?: string[]): Promise<void> {\n return new Promise<void>((resolve) => {\n // Independent components might not know whether the SDK is initialized so might call it to be safe.\n // Just no-op if that happens to make it easier to use.\n if (!GlobalVars.initializeCalled) {\n GlobalVars.initializeCalled = true;\n\n Handlers.initializeHandlers();\n GlobalVars.initializePromise = initializeCommunication(validMessageOrigins).then(\n ({ context, clientType, runtimeConfig, clientSupportedSDKVersion = defaultSDKVersionForCompatCheck }) => {\n GlobalVars.frameContext = context;\n GlobalVars.hostClientType = clientType;\n GlobalVars.clientSupportedSDKVersion = clientSupportedSDKVersion;\n // Temporary workaround while the Host is updated with the new argument order.\n // For now, we might receive any of these possibilities:\n // - `runtimeConfig` in `runtimeConfig` and `clientSupportedSDKVersion` in `clientSupportedSDKVersion`.\n // - `runtimeConfig` in `clientSupportedSDKVersion` and `clientSupportedSDKVersion` in `runtimeConfig`.\n // - `clientSupportedSDKVersion` in `runtimeConfig` and no `clientSupportedSDKVersion`.\n // This code supports any of these possibilities\n\n // Teams AppHost won't provide this runtime config\n // so we assume that if we don't have it, we must be running in Teams.\n // After Teams updates its client code, we can remove this default code.\n try {\n initializeHelperLogger('Parsing %s', runtimeConfig);\n const givenRuntimeConfig: IBaseRuntime | null = JSON.parse(runtimeConfig);\n initializeHelperLogger('Checking if %o is a valid runtime object', givenRuntimeConfig ?? 'null');\n // Check that givenRuntimeConfig is a valid instance of IBaseRuntime\n if (!givenRuntimeConfig || !givenRuntimeConfig.apiVersion) {\n throw new Error('Received runtime config is invalid');\n }\n runtimeConfig && applyRuntimeConfig(givenRuntimeConfig);\n } catch (e) {\n if (e instanceof SyntaxError) {\n try {\n initializeHelperLogger('Attempting to parse %s as an SDK version', runtimeConfig);\n // if the given runtime config was actually meant to be a SDK version, store it as such.\n // TODO: This is a temporary workaround to allow Teams to store clientSupportedSDKVersion even when\n // it doesn't provide the runtimeConfig. After Teams updates its client code, we should\n // remove this feature.\n if (!isNaN(compareSDKVersions(runtimeConfig, defaultSDKVersionForCompatCheck))) {\n GlobalVars.clientSupportedSDKVersion = runtimeConfig;\n }\n const givenRuntimeConfig: IBaseRuntime | null = JSON.parse(clientSupportedSDKVersion);\n initializeHelperLogger('givenRuntimeConfig parsed to %o', givenRuntimeConfig ?? 'null');\n\n if (!givenRuntimeConfig) {\n throw new Error(\n 'givenRuntimeConfig string was successfully parsed. However, it parsed to value of null',\n );\n } else {\n applyRuntimeConfig(givenRuntimeConfig);\n }\n } catch (e) {\n if (e instanceof SyntaxError) {\n applyRuntimeConfig(generateBackCompatRuntimeConfig(GlobalVars.clientSupportedSDKVersion));\n } else {\n throw e;\n }\n }\n } else {\n // If it's any error that's not a JSON parsing error, we want the program to fail.\n throw e;\n }\n }\n\n GlobalVars.initializeCompleted = true;\n },\n );\n\n authentication.initialize();\n menus.initialize();\n pages.config.initialize();\n dialog.initialize();\n }\n\n // Handle additional valid message origins if specified\n if (Array.isArray(validMessageOrigins)) {\n processAdditionalValidOrigins(validMessageOrigins);\n }\n\n resolve(GlobalVars.initializePromise);\n });\n }\n\n /**\n * @hidden\n * Undocumented function used to set a mock window for unit tests\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function _initialize(hostWindow: any): void {\n Communication.currentWindow = hostWindow;\n }\n\n /**\n * @hidden\n * Undocumented function used to clear state between unit tests\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function _uninitialize(): void {\n if (!GlobalVars.initializeCalled) {\n return;\n }\n\n if (GlobalVars.frameContext) {\n /* eslint-disable strict-null-checks/all */ /* Fix tracked by 5730662 */\n registerOnThemeChangeHandler(null);\n pages.backStack.registerBackButtonHandler(null);\n pages.registerFullScreenHandler(null);\n teamsCore.registerBeforeUnloadHandler(null);\n teamsCore.registerOnLoadHandler(null);\n logs.registerGetLogHandler(null); /* Fix tracked by 5730662 */\n /* eslint-enable strict-null-checks/all */\n }\n\n if (GlobalVars.frameContext === FrameContexts.settings) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n pages.config.registerOnSaveHandler(null);\n }\n\n if (GlobalVars.frameContext === FrameContexts.remove) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n pages.config.registerOnRemoveHandler(null);\n }\n\n GlobalVars.initializeCalled = false;\n GlobalVars.initializeCompleted = false;\n GlobalVars.initializePromise = null;\n GlobalVars.additionalValidOrigins = [];\n GlobalVars.frameContext = null;\n GlobalVars.hostClientType = null;\n GlobalVars.isFramelessWindow = false;\n\n uninitializeCommunication();\n }\n\n /**\n * Retrieves the current context the frame is running in.\n *\n * @returns Promise that will resolve with the {@link app.Context} object.\n */\n export function getContext(): Promise<app.Context> {\n return new Promise<LegacyContext>((resolve) => {\n ensureInitializeCalled();\n resolve(sendAndUnwrap('getContext'));\n }).then((legacyContext) => transformLegacyContextToAppContext(legacyContext)); // converts globalcontext to app.context\n }\n\n /**\n * Notifies the frame that app has loaded and to hide the loading indicator if one is shown.\n */\n export function notifyAppLoaded(): void {\n ensureInitializeCalled();\n sendMessageToParent(Messages.AppLoaded, [version]);\n }\n\n /**\n * Notifies the frame that app initialization is successful and is ready for user interaction.\n */\n export function notifySuccess(): void {\n ensureInitializeCalled();\n sendMessageToParent(Messages.Success, [version]);\n }\n\n /**\n * Notifies the frame that app initialization has failed and to show an error page in its place.\n *\n * @param appInitializationFailedRequest - The failure request containing the reason for why the app failed\n * during initialization as well as an optional message.\n */\n export function notifyFailure(appInitializationFailedRequest: IFailedRequest): void {\n ensureInitializeCalled();\n sendMessageToParent(Messages.Failure, [\n appInitializationFailedRequest.reason,\n appInitializationFailedRequest.message,\n ]);\n }\n\n /**\n * Notifies the frame that app initialized with some expected errors.\n *\n * @param expectedFailureRequest - The expected failure request containing the reason and an optional message\n */\n export function notifyExpectedFailure(expectedFailureRequest: IExpectedFailureRequest): void {\n ensureInitializeCalled();\n sendMessageToParent(Messages.ExpectedFailure, [expectedFailureRequest.reason, expectedFailureRequest.message]);\n }\n\n /**\n * Registers a handler for theme changes.\n *\n * @remarks\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the user changes their theme.\n */\n export function registerOnThemeChangeHandler(handler: (theme: string) => void): void {\n // allow for registration cleanup even when not called initialize\n handler && ensureInitializeCalled();\n Handlers.registerOnThemeChangeHandler(handler);\n }\n\n /**\n * open link API.\n *\n * @param deepLink - deep link.\n * @returns Promise that will be fulfilled when the operation has completed\n */\n export function openLink(deepLink: string): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n resolve(send('executeDeepLink', deepLink));\n });\n }\n}\n\n/**\n * @hidden\n * Transforms the Legacy Context object received from Messages to the structured app.Context object\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction transformLegacyContextToAppContext(legacyContext: LegacyContext): app.Context {\n const context: app.Context = {\n actionInfo: legacyContext.actionInfo,\n app: {\n locale: legacyContext.locale,\n sessionId: legacyContext.appSessionId ? legacyContext.appSessionId : '',\n theme: legacyContext.theme ? legacyContext.theme : 'default',\n iconPositionVertical: legacyContext.appIconPosition,\n osLocaleInfo: legacyContext.osLocaleInfo,\n parentMessageId: legacyContext.parentMessageId,\n userClickTime: legacyContext.userClickTime,\n userFileOpenPreference: legacyContext.userFileOpenPreference,\n host: {\n name: legacyContext.hostName ? legacyContext.hostName : HostName.teams,\n clientType: legacyContext.hostClientType ? legacyContext.hostClientType : HostClientType.web,\n sessionId: legacyContext.sessionId ? legacyContext.sessionId : '',\n ringId: legacyContext.ringId,\n },\n appLaunchId: legacyContext.appLaunchId,\n },\n page: {\n id: legacyContext.entityId,\n frameContext: legacyContext.frameContext ? legacyContext.frameContext : GlobalVars.frameContext,\n subPageId: legacyContext.subEntityId,\n isFullScreen: legacyContext.isFullScreen,\n isMultiWindow: legacyContext.isMultiWindow,\n sourceOrigin: legacyContext.sourceOrigin,\n },\n user: {\n id: legacyContext.userObjectId,\n displayName: legacyContext.userDisplayName,\n isCallingAllowed: legacyContext.isCallingAllowed,\n isPSTNCallingAllowed: legacyContext.isPSTNCallingAllowed,\n licenseType: legacyContext.userLicenseType,\n loginHint: legacyContext.loginHint,\n userPrincipalName: legacyContext.userPrincipalName,\n tenant: legacyContext.tid\n ? {\n id: legacyContext.tid,\n teamsSku: legacyContext.tenantSKU,\n }\n : undefined,\n },\n channel: legacyContext.channelId\n ? {\n id: legacyContext.channelId,\n displayName: legacyContext.channelName,\n relativeUrl: legacyContext.channelRelativeUrl,\n membershipType: legacyContext.channelType,\n defaultOneNoteSectionId: legacyContext.defaultOneNoteSectionId,\n ownerGroupId: legacyContext.hostTeamGroupId,\n ownerTenantId: legacyContext.hostTeamTenantId,\n }\n : undefined,\n chat: legacyContext.chatId\n ? {\n id: legacyContext.chatId,\n }\n : undefined,\n meeting: legacyContext.meetingId\n ? {\n id: legacyContext.meetingId,\n }\n : undefined,\n sharepoint: legacyContext.sharepoint,\n team: legacyContext.teamId\n ? {\n internalId: legacyContext.teamId,\n displayName: legacyContext.teamName,\n type: legacyContext.teamType,\n groupId: legacyContext.groupId,\n templateId: legacyContext.teamTemplateId,\n isArchived: legacyContext.isTeamArchived,\n userRole: legacyContext.userTeamRole,\n }\n : undefined,\n sharePointSite:\n legacyContext.teamSiteUrl ||\n legacyContext.teamSiteDomain ||\n legacyContext.teamSitePath ||\n legacyContext.mySitePath ||\n legacyContext.mySiteDomain\n ? {\n teamSiteUrl: legacyContext.teamSiteUrl,\n teamSiteDomain: legacyContext.teamSiteDomain,\n teamSitePath: legacyContext.teamSitePath,\n teamSiteId: legacyContext.teamSiteId,\n mySitePath: legacyContext.mySitePath,\n mySiteDomain: legacyContext.mySiteDomain,\n }\n : undefined,\n };\n\n return context;\n}\n\nfunction inServerSideRenderingEnvironment(): boolean {\n return typeof window === 'undefined';\n}\n","import {\n Communication,\n sendAndHandleSdkError,\n sendAndHandleStatusAndReason as send,\n sendAndHandleStatusAndReasonWithDefaultError as sendAndDefaultError,\n sendAndUnwrap,\n sendMessageEventToChild,\n sendMessageToParent,\n} from '../internal/communication';\nimport { registerHandler, registerHandlerHelper } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { createTeamsAppLink } from '../internal/utils';\nimport { app } from './app';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { FrameInfo, ShareDeepLinkParameters, TabInformation, TabInstance, TabInstanceParameters } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * Navigation-specific part of the SDK.\n */\nexport namespace pages {\n /**\n * Return focus to the host. Will move focus forward or backward based on where the application container falls in\n * the F6/tab order in the host.\n * On mobile hosts or hosts where there is no keyboard interaction or UI notion of \"focus\" this function has no\n * effect and will be a no-op when called.\n * @param navigateForward - Determines the direction to focus in host.\n */\n export function returnFocus(navigateForward?: boolean): void {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('returnFocus', [navigateForward]);\n }\n\n /**\n * @hidden\n *\n * Registers a handler for specifying focus when it passes from the host to the application.\n * On mobile hosts or hosts where there is no UI notion of \"focus\" the handler registered with\n * this function will never be called.\n *\n * @param handler - The handler for placing focus within the application.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerFocusEnterHandler(handler: (navigateForward: boolean) => void): void {\n registerHandlerHelper('focusEnter', handler, [], () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * Sets/Updates the current frame with new information\n *\n * @param frameInfo - Frame information containing the URL used in the iframe on reload and the URL for when the\n * user clicks 'Go To Website'\n */\n export function setCurrentFrame(frameInfo: FrameInfo): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('setFrameContext', [frameInfo]);\n }\n\n /**\n * Initializes the library with context information for the frame\n *\n * @param frameInfo - Frame information containing the URL used in the iframe on reload and the URL for when the\n * user clicks 'Go To Website'\n * @param callback - An optional callback that is executed once the application has finished initialization.\n * @param validMessageOrigins - An optional list of cross-frame message origins. They must have\n * https: protocol otherwise they will be ignored. Example: https:www.example.com\n */\n export function initializeWithFrameContext(\n frameInfo: FrameInfo,\n callback?: () => void,\n validMessageOrigins?: string[],\n ): void {\n app.initialize(validMessageOrigins).then(() => callback && callback());\n setCurrentFrame(frameInfo);\n }\n\n /**\n * Defines the configuration of the current or desired instance\n */\n export interface InstanceConfig {\n /**\n * A suggested display name for the new content.\n * In the settings for an existing instance being updated, this call has no effect.\n */\n suggestedDisplayName?: string;\n /**\n * Sets the URL to use for the content of this instance.\n */\n contentUrl: string;\n /**\n * Sets the URL for the removal configuration experience.\n */\n removeUrl?: string;\n /**\n * Sets the URL to use for the external link to view the underlying resource in a browser.\n */\n websiteUrl?: string;\n /**\n * The developer-defined unique ID for the entity to which this content points.\n */\n entityId?: string;\n }\n\n /**\n * Gets the config for the current instance.\n * @returns Promise that resolves with the {@link InstanceConfig} object.\n */\n export function getConfig(): Promise<InstanceConfig> {\n return new Promise<InstanceConfig>((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.sidePanel,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndUnwrap('settings.getSettings'));\n });\n }\n\n /**\n * Navigates the frame to a new cross-domain URL. The domain of this URL must match at least one of the\n * valid domains specified in the validDomains block of the manifest; otherwise, an exception will be\n * thrown. This function needs to be used only when navigating the frame to a URL in a different domain\n * than the current one in a way that keeps the application informed of the change and allows the SDK to\n * continue working.\n * @param url - The URL to navigate the frame to.\n * @returns Promise that resolves when the navigation has completed.\n */\n export function navigateCrossDomain(url: string): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const errorMessage =\n 'Cross-origin navigation is only supported for URLs matching the pattern registered in the manifest.';\n resolve(sendAndDefaultError('navigateCrossDomain', errorMessage, url));\n });\n }\n\n /**\n * Navigate to the given application ID and page ID, with optional parameters for a WebURL (if the application\n * cannot be navigated to, such as if it is not installed), Channel ID (for applications installed as a channel tab),\n * and sub-page ID (for navigating to specific content within the page). This is equivalent to navigating to\n * a deep link with the above data, but does not require the application to build a URL or worry about different\n * deep link formats for different hosts.\n * @param params - Parameters for the navigation\n * @returns a promise that will resolve if the navigation was successful\n */\n export function navigateToApp(params: NavigateToAppParams): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (runtime.isLegacyTeams) {\n resolve(send('executeDeepLink', createTeamsAppLink(params)));\n } else {\n resolve(send('pages.navigateToApp', params));\n }\n });\n }\n\n /**\n * Shares a deep link that a user can use to navigate back to a specific state in this page.\n * Please note that this method does yet work on mobile hosts.\n *\n * @param deepLinkParameters - ID and label for the link and fallback URL.\n */\n export function shareDeepLink(deepLinkParameters: ShareDeepLinkParameters): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('shareDeepLink', [\n deepLinkParameters.subPageId,\n deepLinkParameters.subPageLabel,\n deepLinkParameters.subPageWebUrl,\n ]);\n }\n\n /**\n * Registers a handler for changes from or to full-screen view for a tab.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * On hosts where there is no support for making an app full screen, the handler registered\n * with this function will never be called.\n * @param handler - The handler to invoke when the user toggles full-screen view for a tab.\n */\n export function registerFullScreenHandler(handler: (isFullScreen: boolean) => void): void {\n registerHandlerHelper('fullScreenChange', handler, [], () => {\n if (handler && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * Checks if the pages capability is supported by the host\n * @returns boolean to represent whether the appEntity capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages ? true : false;\n }\n\n /**\n * Parameters for the NavigateToApp API\n */\n export interface NavigateToAppParams {\n /**\n * ID of the application to navigate to\n */\n appId: string;\n\n /**\n * Developer-defined ID of the Page to navigate to within the application (Formerly EntityID)\n */\n pageId: string;\n\n /**\n * Optional URL to open if the navigation cannot be completed within the host\n */\n webUrl?: string;\n\n /**\n * Optional developer-defined ID describing the content to navigate to within the Page. This will be passed\n * back to the application via the Context object.\n */\n subPageId?: string;\n\n /**\n * Optional ID of the Teams Channel where the application should be opened\n */\n channelId?: string;\n }\n\n /**\n * Provides APIs for querying and navigating between contextual tabs of an application. Unlike personal tabs,\n * contextual tabs are pages associated with a specific context, such as channel or chat.\n */\n export namespace tabs {\n /**\n * Navigates the hosted application to the specified tab instance.\n * @param tabInstance - The destination tab instance.\n * @returns Promise that resolves when the navigation has completed.\n */\n export function navigateToTab(tabInstance: TabInstance): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const errorMessage = 'Invalid internalTabInstanceId and/or channelId were/was provided';\n resolve(sendAndDefaultError('navigateToTab', errorMessage, tabInstance));\n });\n }\n /**\n * Retrieves application tabs for the current user.\n * If no TabInstanceParameters are passed, the application defaults to favorite teams and favorite channels.\n * @param tabInstanceParameters - An optional set of flags that specify whether to scope call to favorite teams or channels.\n * @returns Promise that resolves with the {@link TabInformation}. Contains information for the user's tabs that are owned by this application {@link TabInstance}.\n */\n export function getTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise<TabInformation> {\n return new Promise<TabInformation>((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(sendAndUnwrap('getTabInstances', tabInstanceParameters));\n });\n }\n\n /**\n * Retrieves the most recently used application tabs for the current user.\n * @param tabInstanceParameters - An optional set of flags. Note this is currently ignored and kept for future use.\n * @returns Promise that resolves with the {@link TabInformation}. Contains information for the users' most recently used tabs {@link TabInstance}.\n */\n export function getMruTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise<TabInformation> {\n return new Promise<TabInformation>((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(sendAndUnwrap('getMruTabInstances', tabInstanceParameters));\n });\n }\n\n /**\n * Checks if the pages.tab capability is supported by the host\n * @returns boolean to represent whether the pages.tab capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.tabs\n ? true\n : false\n : false;\n }\n }\n /**\n * Provides APIs to interact with the configuration-specific part of the SDK.\n * This object is usable only on the configuration frame.\n */\n export namespace config {\n let saveHandler: undefined | ((evt: SaveEvent) => void);\n let removeHandler: undefined | ((evt: RemoveEvent) => void);\n\n /**\n * @hidden\n * Hide from docs because this function is only used during initialization\n *\n * Adds register handlers for settings.save and settings.remove upon initialization. Function is called in {@link app.initializeHelper}\n * @internal\n * Limited to Microsoft-internal use\n */\n export function initialize(): void {\n registerHandler('settings.save', handleSave, false);\n registerHandler('settings.remove', handleRemove, false);\n }\n\n /**\n * Sets the validity state for the configuration.\n * The initial value is false, so the user cannot save the configuration until this is called with true.\n * @param validityState - Indicates whether the save or remove button is enabled for the user.\n */\n export function setValidityState(validityState: boolean): void {\n ensureInitialized(runtime, FrameContexts.settings, FrameContexts.remove);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('settings.setValidityState', [validityState]);\n }\n\n /**\n * Sets the configuration for the current instance.\n * This is an asynchronous operation; calls to getConfig are not guaranteed to reflect the changed state.\n * @param instanceConfig - The desired configuration for this instance.\n * @returns Promise that resolves when the operation has completed.\n */\n export function setConfig(instanceConfig: InstanceConfig): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.settings, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(send('settings.setSettings', instanceConfig));\n });\n }\n\n /**\n * Registers a handler for when the user attempts to save the configuration. This handler should be used\n * to create or update the underlying resource powering the content.\n * The object passed to the handler must be used to notify whether to proceed with the save.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when the user selects the Save button.\n */\n export function registerOnSaveHandler(handler: (evt: SaveEvent) => void): void {\n registerOnSaveHandlerHelper(handler, () => {\n if (handler && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerOnSaveHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param handler - The handler to invoke when the user selects the Save button.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n */\n export function registerOnSaveHandlerHelper(\n handler: (evt: SaveEvent) => void,\n versionSpecificHelper?: () => void,\n ): void {\n // allow for registration cleanup even when not finished initializing\n handler && ensureInitialized(runtime, FrameContexts.settings);\n if (versionSpecificHelper) {\n versionSpecificHelper();\n }\n saveHandler = handler;\n handler && sendMessageToParent('registerHandler', ['save']);\n }\n\n /**\n * Registers a handler for user attempts to remove content. This handler should be used\n * to remove the underlying resource powering the content.\n * The object passed to the handler must be used to indicate whether to proceed with the removal.\n * Only one handler may be registered at a time. Subsequent registrations will override the first.\n * @param handler - The handler to invoke when the user selects the Remove button.\n */\n export function registerOnRemoveHandler(handler: (evt: RemoveEvent) => void): void {\n registerOnRemoveHandlerHelper(handler, () => {\n if (handler && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerOnRemoveHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param handler - The handler to invoke when the user selects the Remove button.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n */\n export function registerOnRemoveHandlerHelper(\n handler: (evt: RemoveEvent) => void,\n versionSpecificHelper?: () => void,\n ): void {\n // allow for registration cleanup even when not finished initializing\n handler && ensureInitialized(runtime, FrameContexts.remove, FrameContexts.settings);\n if (versionSpecificHelper) {\n versionSpecificHelper();\n }\n removeHandler = handler;\n handler && sendMessageToParent('registerHandler', ['remove']);\n }\n\n function handleSave(result?: SaveParameters): void {\n const saveEvent = new SaveEventImpl(result);\n if (saveHandler) {\n saveHandler(saveEvent);\n } else if (Communication.childWindow) {\n sendMessageEventToChild('settings.save', [result]);\n } else {\n // If no handler is registered, we assume success.\n saveEvent.notifySuccess();\n }\n }\n\n /**\n * Registers a handler for when the tab configuration is changed by the user\n * @param handler - The handler to invoke when the user clicks on Settings.\n */\n export function registerChangeConfigHandler(handler: () => void): void {\n registerHandlerHelper('changeSettings', handler, [FrameContexts.content], () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * Describes the results of the settings.save event. Includes result, notifySuccess, and notifyFailure\n * to indicate the return object (result) and the status of whether the settings.save call succeeded or not and why.\n */\n export interface SaveEvent {\n /**\n * Object containing properties passed as arguments to the settings.save event.\n */\n result: SaveParameters;\n /**\n * Indicates that the underlying resource has been created and the config can be saved.\n */\n notifySuccess(): void;\n /**\n * Indicates that creation of the underlying resource failed and that the config cannot be saved.\n * @param reason - Specifies a reason for the failure. If provided, this string is displayed to the user; otherwise a generic error is displayed.\n */\n notifyFailure(reason?: string): void;\n }\n\n /**\n * Describes the results of the settings.remove event. Includes notifySuccess, and notifyFailure\n * to indicate the status of whether the settings.save call succeeded or not and why.\n */\n export interface RemoveEvent {\n /**\n * Indicates that the underlying resource has been removed and the content can be removed.\n */\n notifySuccess(): void;\n /**\n * Indicates that removal of the underlying resource failed and that the content cannot be removed.\n * @param reason - Specifies a reason for the failure. If provided, this string is displayed to the user; otherwise a generic error is displayed.\n */\n notifyFailure(reason?: string): void;\n }\n\n /**\n * Parameters used in the settings.save event\n */\n export interface SaveParameters {\n /**\n * Connector's webhook Url returned as arguments to settings.save event as part of user clicking on Save\n */\n webhookUrl?: string;\n }\n\n /**\n * @hidden\n * Hide from docs, since this class is not directly used.\n */\n class SaveEventImpl implements SaveEvent {\n public notified = false;\n public result: SaveParameters;\n public constructor(result?: SaveParameters) {\n this.result = result ? result : {};\n }\n public notifySuccess(): void {\n this.ensureNotNotified();\n sendMessageToParent('settings.save.success');\n this.notified = true;\n }\n public notifyFailure(reason?: string): void {\n this.ensureNotNotified();\n sendMessageToParent('settings.save.failure', [reason]);\n this.notified = true;\n }\n private ensureNotNotified(): void {\n if (this.notified) {\n throw new Error('The SaveEvent may only notify success or failure once.');\n }\n }\n }\n\n function handleRemove(): void {\n const removeEvent = new RemoveEventImpl();\n if (removeHandler) {\n removeHandler(removeEvent);\n } else if (Communication.childWindow) {\n sendMessageEventToChild('settings.remove', []);\n } else {\n // If no handler is registered, we assume success.\n removeEvent.notifySuccess();\n }\n }\n\n /**\n * @hidden\n * Hide from docs, since this class is not directly used.\n */\n class RemoveEventImpl implements RemoveEvent {\n public notified = false;\n\n public notifySuccess(): void {\n this.ensureNotNotified();\n sendMessageToParent('settings.remove.success');\n this.notified = true;\n }\n\n public notifyFailure(reason?: string): void {\n this.ensureNotNotified();\n sendMessageToParent('settings.remove.failure', [reason]);\n this.notified = true;\n }\n\n private ensureNotNotified(): void {\n if (this.notified) {\n throw new Error('The removeEvent may only notify success or failure once.');\n }\n }\n }\n\n /**\n * Checks if the pages.config capability is supported by the host\n * @returns boolean to represent whether the pages.config capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.config\n ? true\n : false\n : false;\n }\n }\n\n /**\n * Provides APIs for handling the user's navigational history.\n */\n export namespace backStack {\n let backButtonPressHandler: (() => boolean) | undefined;\n\n export function _initialize(): void {\n registerHandler('backButtonPress', handleBackButtonPress, false);\n }\n\n /**\n * Navigates back in the hosted application. See {@link pages.backStack.registerBackButtonHandler} for notes on usage.\n * @returns Promise that resolves when the navigation has completed.\n */\n export function navigateBack(): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const errorMessage = 'Back navigation is not supported in the current client or context.';\n resolve(sendAndDefaultError('navigateBack', errorMessage));\n });\n }\n\n /**\n * Registers a handler for user presses of the host client's back button. Experiences that maintain an internal\n * navigation stack should use this handler to navigate the user back within their frame. If an application finds\n * that after running its back button handler it cannot handle the event it should call the navigateBack\n * method to ask the host client to handle it instead.\n * @param handler - The handler to invoke when the user presses the host client's back button.\n */\n export function registerBackButtonHandler(handler: () => boolean): void {\n registerBackButtonHandlerHelper(handler, () => {\n if (handler && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerBackButtonHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param handler - The handler to invoke when the user presses the host client's back button.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n */\n export function registerBackButtonHandlerHelper(handler: () => boolean, versionSpecificHelper?: () => void): void {\n // allow for registration cleanup even when not finished initializing\n handler && ensureInitialized(runtime);\n if (versionSpecificHelper) {\n versionSpecificHelper();\n }\n backButtonPressHandler = handler;\n handler && sendMessageToParent('registerHandler', ['backButton']);\n }\n\n function handleBackButtonPress(): void {\n if (!backButtonPressHandler || !backButtonPressHandler()) {\n if (Communication.childWindow) {\n // If the current window did not handle it let the child window\n sendMessageEventToChild('backButtonPress', []);\n } else {\n navigateBack();\n }\n }\n }\n\n /**\n * Checks if the pages.backStack capability is supported by the host\n * @returns boolean to represent whether the pages.backStack capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.backStack\n ? true\n : false\n : false;\n }\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n * Provides APIs to interact with the full-trust part of the SDK. Limited to 1P applications\n */\n export namespace fullTrust {\n /**\n * @hidden\n * Hide from docs\n * ------\n * Place the tab into full-screen mode.\n */\n export function enterFullscreen(): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('enterFullscreen', []);\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n * Reverts the tab into normal-screen mode.\n */\n export function exitFullscreen(): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('exitFullscreen', []);\n }\n /**\n * @hidden\n *\n * Checks if the pages.fullTrust capability is supported by the host\n * @returns boolean to represent whether the pages.fullTrust capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.fullTrust\n ? true\n : false\n : false;\n }\n }\n\n /**\n * Provides APIs to interact with the app button part of the SDK.\n */\n export namespace appButton {\n /**\n * Registers a handler for clicking the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when the personal app button is clicked in the app bar.\n */\n export function onClick(handler: () => void): void {\n registerHandlerHelper('appButtonClick', handler, [FrameContexts.content], () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * Registers a handler for entering hover of the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when entering hover of the personal app button in the app bar.\n */\n export function onHoverEnter(handler: () => void): void {\n registerHandlerHelper('appButtonHoverEnter', handler, [FrameContexts.content], () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * Registers a handler for exiting hover of the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when exiting hover of the personal app button in the app bar.\n */\n export function onHoverLeave(handler: () => void): void {\n registerHandlerHelper('appButtonHoverLeave', handler, [FrameContexts.content], () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * Checks if pages.appButton capability is supported by the host\n * @returns boolean to represent whether the pages.appButton capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.appButton\n ? true\n : false\n : false;\n }\n }\n\n /**\n * Provides functions for navigating without needing to specify your application ID.\n *\n * @beta\n */\n export namespace currentApp {\n /**\n * Parameters for the NavigateWithinApp\n *\n * @beta\n */\n export interface NavigateWithinAppParams {\n /**\n * The developer-defined unique ID for the page defined in the manifest or when first configuring\n * the page. (Known as {@linkcode Context.entityId} prior to TeamsJS v.2.0.0)\n */\n pageId: string;\n\n /**\n * Optional developer-defined unique ID describing the content to navigate to within the page. This\n * can be retrieved from the Context object {@link app.PageInfo.subPageId | app.Context.page.subPageId}\n */\n subPageId?: string;\n }\n\n /**\n * Navigate within the currently running application with page ID, and sub-page ID (for navigating to\n * specific content within the page).\n * @param params - Parameters for the navigation\n * @returns a promise that will resolve if the navigation was successful\n *\n * @beta\n */\n export function navigateTo(params: NavigateWithinAppParams): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndHandleSdkError('pages.currentApp.navigateTo', params));\n });\n }\n\n /**\n * Navigate to the currently running application's first static page defined in the application\n * manifest.\n * @beta\n */\n export function navigateToDefaultPage(): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndHandleSdkError('pages.currentApp.navigateToDefaultPage'));\n });\n }\n\n /**\n * Checks if pages.currentApp capability is supported by the host\n * @returns boolean to represent whether the pages.currentApp capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.currentApp\n ? true\n : false\n : false;\n }\n }\n}\n","// This assignment is replaced at build time by a webpack plugin (or Jest during unit tests) which ensures the value matches the version set in the package version\ndeclare const PACKAGE_VERSION = 'ERROR: This value should be replaced by webpack!';\nexport const version = PACKAGE_VERSION;\n","import { HostClientType } from '../public/constants';\nimport { ErrorCode, SdkError } from '../public/interfaces';\nimport { IBaseRuntime, isRuntimeInitialized, Runtime } from '../public/runtime';\nimport {\n defaultSDKVersionForCompatCheck,\n errorLibraryNotInitialized,\n userOriginUrlValidationRegExp,\n} from './constants';\nimport { GlobalVars } from './globalVars';\nimport { getLogger } from './telemetry';\nimport { compareSDKVersions } from './utils';\n\nconst internalLogger = getLogger('internal');\nconst ensureInitializeCalledLogger = internalLogger.extend('ensureInitializeCalled');\nconst ensureInitializedLogger = internalLogger.extend('ensureInitialized');\n\n/**\n * Ensures `initialize` was called. This function does NOT verify that a response from Host was received and initialization completed.\n *\n * `ensureInitializeCalled` should only be used for APIs which:\n * - work in all FrameContexts\n * - are part of a required Capability\n * - are suspected to be used directly after calling `initialize`, potentially without awaiting the `initialize` call itself\n *\n * For most APIs {@link ensureInitialized} is the right validation function to use instead.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function ensureInitializeCalled(): void {\n if (!GlobalVars.initializeCalled) {\n ensureInitializeCalledLogger(errorLibraryNotInitialized);\n throw new Error(errorLibraryNotInitialized);\n }\n}\n\n/**\n * Ensures `initialize` was called and response from Host was received and processed and that `runtime` is initialized.\n * If expected FrameContexts are provided, it also validates that the current FrameContext matches one of the expected ones.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function ensureInitialized(runtime: IBaseRuntime, ...expectedFrameContexts: string[]): runtime is Runtime {\n // This global var can potentially be removed in the future if we use the initialization status of the runtime object as our source of truth\n if (!GlobalVars.initializeCompleted) {\n ensureInitializedLogger(\n '%s. initializeCalled: %s',\n errorLibraryNotInitialized,\n GlobalVars.initializeCalled.toString(),\n );\n throw new Error(errorLibraryNotInitialized);\n }\n\n if (expectedFrameContexts && expectedFrameContexts.length > 0) {\n let found = false;\n for (let i = 0; i < expectedFrameContexts.length; i++) {\n if (expectedFrameContexts[i] === GlobalVars.frameContext) {\n found = true;\n break;\n }\n }\n\n if (!found) {\n throw new Error(\n `This call is only allowed in following contexts: ${JSON.stringify(expectedFrameContexts)}. ` +\n `Current context: \"${GlobalVars.frameContext}\".`,\n );\n }\n }\n return isRuntimeInitialized(runtime);\n}\n\n/**\n * @hidden\n * Checks whether the platform has knowledge of this API by doing a comparison\n * on API required version and platform supported version of the SDK\n *\n * @param requiredVersion - SDK version required by the API\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isCurrentSDKVersionAtLeast(requiredVersion: string = defaultSDKVersionForCompatCheck): boolean {\n const value = compareSDKVersions(GlobalVars.clientSupportedSDKVersion, requiredVersion);\n if (isNaN(value)) {\n return false;\n }\n return value >= 0;\n}\n\n/**\n * @hidden\n * Helper function to identify if host client is either android or ios\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isHostClientMobile(): boolean {\n return GlobalVars.hostClientType == HostClientType.android || GlobalVars.hostClientType == HostClientType.ios;\n}\n\n/**\n * @hidden\n * Helper function which indicates if current API is supported on mobile or not.\n * @throws SdkError if host client is not android/ios or if the requiredVersion is not\n * supported by platform or not. Null is returned in case of success.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function throwExceptionIfMobileApiIsNotSupported(\n requiredVersion: string = defaultSDKVersionForCompatCheck,\n): void {\n if (!isHostClientMobile()) {\n const notSupportedError: SdkError = { errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM };\n throw notSupportedError;\n } else if (!isCurrentSDKVersionAtLeast(requiredVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n throw oldPlatformError;\n }\n}\n\n/**\n * @hidden\n * Processes the valid origins specifuied by the user, de-duplicates and converts them into a regexp\n * which is used later for message source/origin validation\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function processAdditionalValidOrigins(validMessageOrigins: string[]): void {\n let combinedOriginUrls = GlobalVars.additionalValidOrigins.concat(\n validMessageOrigins.filter((_origin: string) => {\n return typeof _origin === 'string' && userOriginUrlValidationRegExp.test(_origin);\n }),\n );\n const dedupUrls: { [url: string]: boolean } = {};\n combinedOriginUrls = combinedOriginUrls.filter((_originUrl) => {\n if (dedupUrls[_originUrl]) {\n return false;\n }\n dedupUrls[_originUrl] = true;\n return true;\n });\n GlobalVars.additionalValidOrigins = combinedOriginUrls;\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n\nimport { FrameContexts, LoadContext } from '../public';\nimport { pages } from '../public/pages';\nimport { runtime } from '../public/runtime';\nimport { Communication, sendMessageEventToChild, sendMessageToParent } from './communication';\nimport { ensureInitialized } from './internalAPIs';\nimport { getLogger } from './telemetry';\n\nconst handlersLogger = getLogger('handlers');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nclass HandlersPrivate {\n public static handlers: {\n [func: string]: Function;\n } = {};\n public static themeChangeHandler: (theme: string) => void;\n public static loadHandler: (context: LoadContext) => void;\n public static beforeUnloadHandler: (readyToUnload: () => void) => boolean;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function initializeHandlers(): void {\n // ::::::::::::::::::::MicrosoftTeams SDK Internal :::::::::::::::::\n HandlersPrivate.handlers['themeChange'] = handleThemeChange;\n HandlersPrivate.handlers['load'] = handleLoad;\n HandlersPrivate.handlers['beforeUnload'] = handleBeforeUnload;\n pages.backStack._initialize();\n}\n\nconst callHandlerLogger = handlersLogger.extend('callHandler');\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callHandler(name: string, args?: unknown[]): [true, unknown] | [false, undefined] {\n const handler = HandlersPrivate.handlers[name];\n if (handler) {\n callHandlerLogger('Invoking the registered handler for message %s with arguments %o', name, args);\n const result = handler.apply(this, args);\n return [true, result];\n } else if (Communication.childWindow) {\n sendMessageEventToChild(name, [args]);\n return [false, undefined];\n } else {\n callHandlerLogger('Handler for action message %s not found.', name);\n return [false, undefined];\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerHandler(name: string, handler: Function, sendMessage = true, args: unknown[] = []): void {\n if (handler) {\n HandlersPrivate.handlers[name] = handler;\n sendMessage && sendMessageToParent('registerHandler', [name, ...args]);\n } else {\n delete HandlersPrivate.handlers[name];\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function removeHandler(name: string): void {\n delete HandlersPrivate.handlers[name];\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function doesHandlerExist(name: string): boolean {\n return HandlersPrivate.handlers[name] != null;\n}\n\n/**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of register*Handler APIs\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param name - The name of the handler to register.\n * @param handler - The handler to invoke.\n * @param contexts - The context within which it is valid to register this handler.\n * @param registrationHelper - The helper function containing logic pertaining to a specific version of the API.\n */\nexport function registerHandlerHelper(\n name: string,\n handler: Function,\n contexts: FrameContexts[],\n registrationHelper?: () => void,\n): void {\n // allow for registration cleanup even when not finished initializing\n handler && ensureInitialized(runtime, ...contexts);\n if (registrationHelper) {\n registrationHelper();\n }\n\n registerHandler(name, handler);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerOnThemeChangeHandler(handler: (theme: string) => void): void {\n HandlersPrivate.themeChangeHandler = handler;\n handler && sendMessageToParent('registerHandler', ['themeChange']);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function handleThemeChange(theme: string): void {\n if (HandlersPrivate.themeChangeHandler) {\n HandlersPrivate.themeChangeHandler(theme);\n }\n\n if (Communication.childWindow) {\n sendMessageEventToChild('themeChange', [theme]);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerOnLoadHandler(handler: (context: LoadContext) => void): void {\n HandlersPrivate.loadHandler = handler;\n handler && sendMessageToParent('registerHandler', ['load']);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction handleLoad(context: LoadContext): void {\n if (HandlersPrivate.loadHandler) {\n HandlersPrivate.loadHandler(context);\n }\n\n if (Communication.childWindow) {\n sendMessageEventToChild('load', [context]);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerBeforeUnloadHandler(handler: (readyToUnload: () => void) => boolean): void {\n HandlersPrivate.beforeUnloadHandler = handler;\n handler && sendMessageToParent('registerHandler', ['beforeUnload']);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction handleBeforeUnload(): void {\n const readyToUnload = (): void => {\n sendMessageToParent('readyToUnload', []);\n };\n\n if (!HandlersPrivate.beforeUnloadHandler || !HandlersPrivate.beforeUnloadHandler(readyToUnload)) {\n if (Communication.childWindow) {\n sendMessageEventToChild('beforeUnload');\n } else {\n readyToUnload();\n }\n }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { FrameContexts } from '../public/constants';\nimport { SdkError } from '../public/interfaces';\nimport { latestRuntimeApiVersion } from '../public/runtime';\nimport { version } from '../public/version';\nimport { GlobalVars } from './globalVars';\nimport { callHandler } from './handlers';\nimport { DOMMessageEvent, ExtendedWindow, MessageRequest, MessageResponse } from './interfaces';\nimport { getLogger } from './telemetry';\nimport { validateOrigin } from './utils';\n\nconst communicationLogger = getLogger('communication');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport class Communication {\n public static currentWindow: Window | any;\n public static parentOrigin: string;\n public static parentWindow: Window | any;\n public static childWindow: Window;\n public static childOrigin: string;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nclass CommunicationPrivate {\n public static parentMessageQueue: MessageRequest[] = [];\n public static childMessageQueue: MessageRequest[] = [];\n public static nextMessageId = 0;\n public static callbacks: {\n [id: number]: Function; // (arg1, arg2, ...etc) => void\n } = {};\n public static promiseCallbacks: {\n [id: number]: Function; // (args[]) => void\n } = {};\n public static messageListener: Function;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\ninterface InitializeResponse {\n context: FrameContexts;\n clientType: string;\n runtimeConfig: string;\n clientSupportedSDKVersion: string;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function initializeCommunication(validMessageOrigins: string[] | undefined): Promise<InitializeResponse> {\n // Listen for messages post to our window\n CommunicationPrivate.messageListener = (evt: DOMMessageEvent): void => processMessage(evt);\n\n // If we are in an iframe, our parent window is the one hosting us (i.e., window.parent); otherwise,\n // it's the window that opened us (i.e., window.opener)\n Communication.currentWindow = Communication.currentWindow || window;\n Communication.parentWindow =\n Communication.currentWindow.parent !== Communication.currentWindow.self\n ? Communication.currentWindow.parent\n : Communication.currentWindow.opener;\n\n // Listen to messages from the parent or child frame.\n // Frameless windows will only receive this event from child frames and if validMessageOrigins is passed.\n if (Communication.parentWindow || validMessageOrigins) {\n Communication.currentWindow.addEventListener('message', CommunicationPrivate.messageListener, false);\n }\n\n if (!Communication.parentWindow) {\n const extendedWindow = Communication.currentWindow as unknown as ExtendedWindow;\n if (extendedWindow.nativeInterface) {\n GlobalVars.isFramelessWindow = true;\n extendedWindow.onNativeMessage = handleParentMessage;\n } else {\n // at this point we weren't able to find a parent to talk to, no way initialization will succeed\n return Promise.reject(new Error('Initialization Failed. No Parent window found.'));\n }\n }\n\n try {\n // Send the initialized message to any origin, because at this point we most likely don't know the origin\n // of the parent window, and this message contains no data that could pose a security risk.\n Communication.parentOrigin = '*';\n return sendMessageToParentAsync<[FrameContexts, string, string, string]>('initialize', [\n version,\n latestRuntimeApiVersion,\n ]).then(\n ([context, clientType, runtimeConfig, clientSupportedSDKVersion]: [FrameContexts, string, string, string]) => {\n return { context, clientType, runtimeConfig, clientSupportedSDKVersion };\n },\n );\n } finally {\n Communication.parentOrigin = null;\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function uninitializeCommunication(): void {\n if (Communication.currentWindow) {\n Communication.currentWindow.removeEventListener('message', CommunicationPrivate.messageListener, false);\n }\n\n Communication.currentWindow = null;\n Communication.parentWindow = null;\n Communication.parentOrigin = null;\n Communication.childWindow = null;\n Communication.childOrigin = null;\n CommunicationPrivate.parentMessageQueue = [];\n CommunicationPrivate.childMessageQueue = [];\n CommunicationPrivate.nextMessageId = 0;\n CommunicationPrivate.callbacks = {};\n CommunicationPrivate.promiseCallbacks = {};\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendAndUnwrap<T>(actionName: string, ...args: any[]): Promise<T> {\n return sendMessageToParentAsync(actionName, args).then(([result]: [T]) => result);\n}\n\nexport function sendAndHandleStatusAndReason(actionName: string, ...args: any[]): Promise<void> {\n return sendMessageToParentAsync(actionName, args).then(([status, reason]: [boolean, string]) => {\n if (!status) {\n throw new Error(reason);\n }\n });\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendAndHandleStatusAndReasonWithDefaultError(\n actionName: string,\n defaultError: string,\n ...args: any[]\n): Promise<void> {\n return sendMessageToParentAsync(actionName, args).then(([status, reason]: [boolean, string]) => {\n if (!status) {\n throw new Error(reason ? reason : defaultError);\n }\n });\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendAndHandleSdkError<T>(actionName: string, ...args: any[]): Promise<T> {\n return sendMessageToParentAsync(actionName, args).then(([error, result]: [SdkError, T]) => {\n if (error) {\n throw error;\n }\n return result;\n });\n}\n\n/**\n * @hidden\n * Send a message to parent. Uses nativeInterface on mobile to communicate with parent context\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParentAsync<T>(actionName: string, args: any[] = undefined): Promise<T> {\n return new Promise((resolve) => {\n const request = sendMessageToParentHelper(actionName, args);\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(waitForResponse<T>(request.id));\n });\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction waitForResponse<T>(requestId: number): Promise<T> {\n return new Promise<T>((resolve) => {\n CommunicationPrivate.promiseCallbacks[requestId] = resolve;\n });\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParent(actionName: string, callback?: Function): void;\n\n/**\n * @hidden\n * Send a message to parent. Uses nativeInterface on mobile to communicate with parent context\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParent(actionName: string, args: any[], callback?: Function): void;\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParent(actionName: string, argsOrCallback?: any[] | Function, callback?: Function): void {\n let args: any[] | undefined;\n if (argsOrCallback instanceof Function) {\n callback = argsOrCallback;\n } else if (argsOrCallback instanceof Array) {\n args = argsOrCallback;\n }\n\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const request = sendMessageToParentHelper(actionName, args);\n if (callback) {\n CommunicationPrivate.callbacks[request.id] = callback;\n }\n}\n\nconst sendMessageToParentHelperLogger = communicationLogger.extend('sendMessageToParentHelper');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction sendMessageToParentHelper(actionName: string, args: any[]): MessageRequest {\n const logger = sendMessageToParentHelperLogger;\n\n const targetWindow = Communication.parentWindow;\n const request = createMessageRequest(actionName, args);\n\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n logger('Message %i information: %o', request.id, { actionName, args });\n\n if (GlobalVars.isFramelessWindow) {\n if (Communication.currentWindow && Communication.currentWindow.nativeInterface) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n logger('Sending message %i to parent via framelessPostMessage interface', request.id);\n (Communication.currentWindow as ExtendedWindow).nativeInterface.framelessPostMessage(JSON.stringify(request));\n }\n } else {\n const targetOrigin = getTargetOrigin(targetWindow);\n\n // If the target window isn't closed and we already know its origin, send the message right away; otherwise,\n // queue the message and send it after the origin is established\n if (targetWindow && targetOrigin) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n logger('Sending message %i to parent via postMessage', request.id);\n targetWindow.postMessage(request, targetOrigin);\n } else {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n logger('Adding message %i to parent message queue', request.id);\n getTargetMessageQueue(targetWindow).push(request);\n }\n }\n return request;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction processMessage(evt: DOMMessageEvent): void {\n // Process only if we received a valid message\n if (!evt || !evt.data || typeof evt.data !== 'object') {\n return;\n }\n\n // Process only if the message is coming from a different window and a valid origin\n // valid origins are either a pre-known\n const messageSource = evt.source || (evt.originalEvent && evt.originalEvent.source);\n const messageOrigin = evt.origin || (evt.originalEvent && evt.originalEvent.origin);\n if (!shouldProcessMessage(messageSource, messageOrigin)) {\n return;\n }\n\n // Update our parent and child relationships based on this message\n updateRelationships(messageSource, messageOrigin);\n\n // Handle the message\n if (messageSource === Communication.parentWindow) {\n handleParentMessage(evt);\n } else if (messageSource === Communication.childWindow) {\n handleChildMessage(evt);\n }\n}\n\n/**\n * @hidden\n * Validates the message source and origin, if it should be processed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction shouldProcessMessage(messageSource: Window, messageOrigin: string): boolean {\n // Process if message source is a different window and if origin is either in\n // Teams' pre-known whitelist or supplied as valid origin by user during initialization\n if (Communication.currentWindow && messageSource === Communication.currentWindow) {\n return false;\n } else if (\n Communication.currentWindow &&\n Communication.currentWindow.location &&\n messageOrigin &&\n messageOrigin === Communication.currentWindow.location.origin\n ) {\n return true;\n } else {\n return validateOrigin(new URL(messageOrigin));\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction updateRelationships(messageSource: Window, messageOrigin: string): void {\n // Determine whether the source of the message is our parent or child and update our\n // window and origin pointer accordingly\n // For frameless windows (i.e mobile), there is no parent frame, so the message must be from the child.\n if (\n !GlobalVars.isFramelessWindow &&\n (!Communication.parentWindow || Communication.parentWindow.closed || messageSource === Communication.parentWindow)\n ) {\n Communication.parentWindow = messageSource;\n Communication.parentOrigin = messageOrigin;\n } else if (\n !Communication.childWindow ||\n Communication.childWindow.closed ||\n messageSource === Communication.childWindow\n ) {\n Communication.childWindow = messageSource;\n Communication.childOrigin = messageOrigin;\n }\n\n // Clean up pointers to closed parent and child windows\n if (Communication.parentWindow && Communication.parentWindow.closed) {\n Communication.parentWindow = null;\n Communication.parentOrigin = null;\n }\n if (Communication.childWindow && Communication.childWindow.closed) {\n Communication.childWindow = null;\n Communication.childOrigin = null;\n }\n\n // If we have any messages in our queue, send them now\n flushMessageQueue(Communication.parentWindow);\n flushMessageQueue(Communication.childWindow);\n}\n\nconst handleParentMessageLogger = communicationLogger.extend('handleParentMessage');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction handleParentMessage(evt: DOMMessageEvent): void {\n const logger = handleParentMessageLogger;\n\n if ('id' in evt.data && typeof evt.data.id === 'number') {\n // Call any associated Communication.callbacks\n const message = evt.data as MessageResponse;\n const callback = CommunicationPrivate.callbacks[message.id];\n logger('Received a response from parent for message %i', message.id);\n if (callback) {\n logger('Invoking the registered callback for message %i with arguments %o', message.id, message.args);\n callback.apply(null, [...message.args, message.isPartialResponse]);\n\n // Remove the callback to ensure that the callback is called only once and to free up memory if response is a complete response\n if (!isPartialResponse(evt)) {\n logger('Removing registered callback for message %i', message.id);\n delete CommunicationPrivate.callbacks[message.id];\n }\n }\n const promiseCallback = CommunicationPrivate.promiseCallbacks[message.id];\n if (promiseCallback) {\n logger('Invoking the registered promise callback for message %i with arguments %o', message.id, message.args);\n promiseCallback(message.args);\n\n logger('Removing registered promise callback for message %i', message.id);\n delete CommunicationPrivate.promiseCallbacks[message.id];\n }\n } else if ('func' in evt.data && typeof evt.data.func === 'string') {\n // Delegate the request to the proper handler\n const message = evt.data as MessageRequest;\n logger('Received an action message %s from parent', message.func);\n callHandler(message.func, message.args);\n } else {\n logger('Received an unknown message: %O', evt);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction isPartialResponse(evt: DOMMessageEvent): boolean {\n return evt.data.isPartialResponse === true;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction handleChildMessage(evt: DOMMessageEvent): void {\n if ('id' in evt.data && 'func' in evt.data) {\n // Try to delegate the request to the proper handler, if defined\n const message = evt.data as MessageRequest;\n const [called, result] = callHandler(message.func, message.args);\n if (called && typeof result !== 'undefined') {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n sendMessageResponseToChild(message.id, Array.isArray(result) ? result : [result]);\n } else {\n // No handler, proxy to parent\n sendMessageToParent(message.func, message.args, (...args: any[]): void => {\n if (Communication.childWindow) {\n const isPartialResponse = args.pop();\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n sendMessageResponseToChild(message.id, args, isPartialResponse);\n }\n });\n }\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction getTargetMessageQueue(targetWindow: Window): MessageRequest[] {\n return targetWindow === Communication.parentWindow\n ? CommunicationPrivate.parentMessageQueue\n : targetWindow === Communication.childWindow\n ? CommunicationPrivate.childMessageQueue\n : [];\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction getTargetOrigin(targetWindow: Window): string {\n return targetWindow === Communication.parentWindow\n ? Communication.parentOrigin\n : targetWindow === Communication.childWindow\n ? Communication.childOrigin\n : null;\n}\n\nconst flushMessageQueueLogger = communicationLogger.extend('flushMessageQueue');\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction flushMessageQueue(targetWindow: Window | any): void {\n const targetOrigin = getTargetOrigin(targetWindow);\n const targetMessageQueue = getTargetMessageQueue(targetWindow);\n const target = targetWindow == Communication.parentWindow ? 'parent' : 'child';\n while (targetWindow && targetOrigin && targetMessageQueue.length > 0) {\n const request = targetMessageQueue.shift();\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n flushMessageQueueLogger('Flushing message %i from ' + target + ' message queue via postMessage.', request.id);\n targetWindow.postMessage(request, targetOrigin);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function waitForMessageQueue(targetWindow: Window, callback: () => void): void {\n const messageQueueMonitor = Communication.currentWindow.setInterval(() => {\n if (getTargetMessageQueue(targetWindow).length === 0) {\n clearInterval(messageQueueMonitor);\n callback();\n }\n }, 100);\n}\n\n/**\n * @hidden\n * Send a response to child for a message request that was from child\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction sendMessageResponseToChild(id: number, args?: any[], isPartialResponse?: boolean): void {\n const targetWindow = Communication.childWindow;\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const response = createMessageResponse(id, args, isPartialResponse);\n const targetOrigin = getTargetOrigin(targetWindow);\n if (targetWindow && targetOrigin) {\n targetWindow.postMessage(response, targetOrigin);\n }\n}\n\n/**\n * @hidden\n * Send a custom message object that can be sent to child window,\n * instead of a response message to a child\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageEventToChild(actionName: string, args?: any[]): void {\n const targetWindow = Communication.childWindow;\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const customEvent = createMessageEvent(actionName, args);\n const targetOrigin = getTargetOrigin(targetWindow);\n\n // If the target window isn't closed and we already know its origin, send the message right away; otherwise,\n // queue the message and send it after the origin is established\n if (targetWindow && targetOrigin) {\n targetWindow.postMessage(customEvent, targetOrigin);\n } else {\n getTargetMessageQueue(targetWindow).push(customEvent);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction createMessageRequest(func: string, args: any[]): MessageRequest {\n return {\n id: CommunicationPrivate.nextMessageId++,\n func: func,\n timestamp: Date.now(),\n args: args || [],\n };\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction createMessageResponse(id: number, args: any[], isPartialResponse: boolean): MessageResponse {\n return {\n id: id,\n args: args || [],\n isPartialResponse,\n };\n}\n\n/**\n * @hidden\n * Creates a message object without any id, used for custom actions being sent to child frame/window\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction createMessageEvent(func: string, args: any[]): MessageRequest {\n return {\n func: func,\n args: args || [],\n };\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { registerHandler, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n * Namespace to interact with the logging part of the SDK.\n * This object is used to send the app logs on demand to the host client\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace logs {\n /**\n * @hidden\n *\n * Registers a handler for getting app log\n *\n * @param handler - The handler to invoke to get the app log\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerGetLogHandler(handler: () => string): void {\n // allow for registration cleanup even when not finished initializing\n handler && ensureInitialized(runtime);\n if (handler && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (handler) {\n registerHandler('log.request', () => {\n const log: string = handler();\n sendMessageToParent('log.receive', [log]);\n });\n } else {\n removeHandler('log.request');\n }\n }\n\n /**\n * @hidden\n *\n * Checks if the logs capability is supported by the host\n * @returns boolean to represent whether the logs capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.logs ? true : false;\n }\n}\n","import { FileOpenPreference, TeamInformation } from '../public/interfaces';\n\n/**\n * @hidden\n *\n * Information about all members in a chat\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface ChatMembersInformation {\n members: ThreadMember[];\n}\n\n/**\n * @hidden\n *\n * Information about a chat member\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface ThreadMember {\n /**\n * @hidden\n * The member's user principal name in the current tenant.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n upn: string;\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport enum NotificationTypes {\n fileDownloadStart = 'fileDownloadStart',\n fileDownloadComplete = 'fileDownloadComplete',\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface ShowNotificationParameters {\n message: string;\n notificationType: NotificationTypes;\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport enum ViewerActionTypes {\n view = 'view',\n edit = 'edit',\n editNew = 'editNew',\n}\n\n/**\n * @hidden\n *\n * User setting changes that can be subscribed to\n */\nexport enum UserSettingTypes {\n /**\n * @hidden\n * Use this key to subscribe to changes in user's file open preference\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n fileOpenPreference = 'fileOpenPreference',\n /**\n * @hidden\n * Use this key to subscribe to theme changes\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n theme = 'theme',\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface FilePreviewParameters {\n /**\n * @hidden\n * The developer-defined unique ID for the file.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n entityId?: string;\n\n /**\n * @hidden\n * The display name of the file.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title?: string;\n\n /**\n * @hidden\n * An optional description of the file.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n description?: string;\n\n /**\n * @hidden\n * The file extension; e.g. pptx, docx, etc.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n type: string;\n\n /**\n * @hidden\n * A url to the source of the file, used to open the content in the user's default browser\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n objectUrl: string;\n\n /**\n * @hidden\n * Optional; an alternate self-authenticating url used to preview the file in Mobile clients and offer it for download by the user\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n downloadUrl?: string;\n\n /**\n * @hidden\n * Optional; an alternate url optimized for previewing the file in web and desktop clients\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n webPreviewUrl?: string;\n\n /**\n * @hidden\n * Optional; an alternate url that allows editing of the file in web and desktop clients\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n webEditUrl?: string;\n\n /**\n * @hidden\n * Optional; the base url of the site where the file is hosted\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n baseUrl?: string;\n\n /**\n * @hidden\n * Deprecated; prefer using {@linkcode viewerAction} instead\n * Optional; indicates whether the file should be opened in edit mode\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n editFile?: boolean;\n\n /**\n * @hidden\n * Optional; the developer-defined unique ID for the sub-entity to return to when the file stage closes.\n * This field should be used to restore to a specific state within an entity, such as scrolling to or activating a specific piece of content.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n subEntityId?: string;\n\n /**\n * @hidden\n * Optional; indicates the mode in which file should be opened. Takes precedence over edit mode.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n viewerAction?: ViewerActionTypes;\n\n /**\n * @hidden\n * Optional; indicates how user prefers to open the file\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n fileOpenPreference?: FileOpenPreference;\n\n /**\n * @hidden\n * Optional; id required to enable conversation button in files. Will be channel id in case file is shared in a channel or the chat id in p2p chat case.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n conversationId?: string;\n}\n\n/**\n * @hidden\n *\n * Query parameters used when fetching team information\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface TeamInstanceParameters {\n /**\n * @hidden\n * Flag allowing to select favorite teams only\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n favoriteTeamsOnly?: boolean;\n}\n\n/**\n * @hidden\n *\n * Information on userJoined Teams\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface UserJoinedTeamsInformation {\n /**\n * @hidden\n * List of team information\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n userJoinedTeams: TeamInformation[];\n}\n","import {\n sendAndHandleStatusAndReason as sendAndHandleError,\n sendAndUnwrap,\n sendMessageToParent,\n} from '../internal/communication';\nimport { registerHandler, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\nimport { ChatMembersInformation } from './interfaces';\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface OpenConversationRequest {\n /**\n * @hidden\n * The Id of the subEntity where the conversation is taking place\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n subEntityId: string;\n\n /**\n * @hidden\n * The title of the conversation\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n\n /**\n * @hidden\n * The Id of the conversation. This is optional and should be specified whenever a previous conversation about a specific sub-entity has already been started before\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n conversationId?: string;\n\n /**\n * @hidden\n * The Id of the channel. This is optional and should be specified whenever a conversation is started or opened in a personal app scope\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n channelId?: string;\n\n /**\n * @hidden\n * The entity Id of the tab\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n entityId: string;\n\n /**\n * @hidden\n * A function that is called once the conversation Id has been created\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n onStartConversation?: (conversationResponse: ConversationResponse) => void;\n\n /**\n * @hidden\n * A function that is called if the pane is closed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n onCloseConversation?: (conversationResponse: ConversationResponse) => void;\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface ConversationResponse {\n /**\n * @hidden\n *\n * Limited to Microsoft-internal use\n * The Id of the subEntity where the conversation is taking place\n */\n subEntityId: string;\n\n /**\n * @hidden\n * The Id of the conversation. This is optional and should be specified whenever a previous conversation about a specific sub-entity has already been started before\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n conversationId?: string;\n\n /**\n * @hidden\n * The Id of the channel. This is optional and should be specified whenever a conversation is started or opened in a personal app scope\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n channelId?: string;\n\n /**\n * @hidden\n * The entity Id of the tab\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n entityId?: string;\n}\n\n/**\n * @hidden\n * Namespace to interact with the conversational subEntities inside the tab\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace conversations {\n /**\n * @hidden\n * Hide from docs\n * --------------\n * Allows the user to start or continue a conversation with each subentity inside the tab\n *\n * @returns Promise resolved upon completion\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openConversation(openConversationRequest: OpenConversationRequest): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const sendPromise = sendAndHandleError('conversations.openConversation', {\n title: openConversationRequest.title,\n subEntityId: openConversationRequest.subEntityId,\n conversationId: openConversationRequest.conversationId,\n channelId: openConversationRequest.channelId,\n entityId: openConversationRequest.entityId,\n });\n if (openConversationRequest.onStartConversation) {\n registerHandler(\n 'startConversation',\n (subEntityId: string, conversationId: string, channelId: string, entityId: string) =>\n openConversationRequest.onStartConversation({\n subEntityId,\n conversationId,\n channelId,\n entityId,\n }),\n );\n }\n if (openConversationRequest.onCloseConversation) {\n registerHandler(\n 'closeConversation',\n (subEntityId: string, conversationId?: string, channelId?: string, entityId?: string) =>\n openConversationRequest.onCloseConversation({\n subEntityId,\n conversationId,\n channelId,\n entityId,\n }),\n );\n }\n resolve(sendPromise);\n });\n }\n\n /**\n * @hidden\n *\n * Allows the user to close the conversation in the right pane\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function closeConversation(): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('conversations.closeConversation');\n removeHandler('startConversation');\n removeHandler('closeConversation');\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n * Allows retrieval of information for all chat members.\n * NOTE: This value should be used only as a hint as to who the members are\n * and never as proof of membership in case your app is being hosted by a malicious party.\n *\n * @returns Promise resolved with information on all chat members\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getChatMembers(): Promise<ChatMembersInformation> {\n return new Promise<ChatMembersInformation>((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndUnwrap('getChatMembers'));\n });\n }\n\n /**\n * Checks if the conversations capability is supported by the host\n * @returns boolean to represent whether conversations capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.conversations ? true : false;\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { sendAndHandleStatusAndReason as sendAndHandleError } from '../internal/communication';\nimport { createTeamsDeepLinkForAppInstallDialog } from '../internal/deepLinkUtilities';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\nexport namespace appInstallDialog {\n export interface OpenAppInstallDialogParams {\n appId: string;\n }\n\n export function openAppInstallDialog(openAPPInstallDialogParams: OpenAppInstallDialogParams): Promise<void> {\n return new Promise((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndHandleError(\n 'executeDeepLink',\n createTeamsDeepLinkForAppInstallDialog(openAPPInstallDialogParams.appId),\n ),\n );\n } else {\n sendMessageToParent('appInstallDialog.openAppInstallDialog', [openAPPInstallDialogParams]);\n resolve();\n }\n });\n }\n\n /**\n * Checks if the appInstallDialog capability is supported by the host\n * @returns boolean to represent whether the appInstallDialog capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.appInstallDialog ? true : false;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Communication, sendMessageEventToChild, sendMessageToParent } from '../internal/communication';\nimport { registerHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\nimport { FilePreviewParameters, UserSettingTypes } from './interfaces';\n\n/**\n * @hidden\n * Upload a custom App manifest directly to both team and personal scopes.\n * This method works just for the first party Apps.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function uploadCustomApp(manifestBlob: Blob, onComplete?: (status: boolean, reason?: string) => void): void {\n ensureInitialized(runtime);\n\n sendMessageToParent('uploadCustomApp', [manifestBlob], onComplete ? onComplete : getGenericOnCompleteHandler());\n}\n\n/**\n * @hidden\n * Sends a custom action MessageRequest to host or parent window\n *\n * @param actionName - Specifies name of the custom action to be sent\n * @param args - Specifies additional arguments passed to the action\n * @param callback - Optionally specify a callback to receive response parameters from the parent\n * @returns id of sent message\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendCustomMessage(actionName: string, args?: any[], callback?: (...args: any[]) => void): void {\n ensureInitialized(runtime);\n\n sendMessageToParent(actionName, args, callback);\n}\n\n/**\n * @hidden\n * Sends a custom action MessageEvent to a child iframe/window, only if you are not using auth popup.\n * Otherwise it will go to the auth popup (which becomes the child)\n *\n * @param actionName - Specifies name of the custom action to be sent\n * @param args - Specifies additional arguments passed to the action\n * @returns id of sent message\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendCustomEvent(actionName: string, args?: any[]): void {\n ensureInitialized(runtime);\n\n //validate childWindow\n if (!Communication.childWindow) {\n throw new Error('The child window has not yet been initialized or is not present');\n }\n sendMessageEventToChild(actionName, args);\n}\n\n/**\n * @hidden\n * Adds a handler for an action sent by a child window or parent window\n *\n * @param actionName - Specifies name of the action message to handle\n * @param customHandler - The callback to invoke when the action message is received. The return value is sent to the child\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerCustomHandler(actionName: string, customHandler: (...args: any[]) => any[]): void {\n ensureInitialized(runtime);\n registerHandler(actionName, (...args: any[]) => {\n return customHandler.apply(this, args);\n });\n}\n\n/**\n * @hidden\n * register a handler to be called when a user setting changes. The changed setting type & value is provided in the callback.\n *\n * @param settingTypes - List of user setting changes to subscribe\n * @param handler - When a subscribed setting is updated this handler is called\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerUserSettingsChangeHandler(\n settingTypes: UserSettingTypes[],\n handler: (settingType: UserSettingTypes, value: any) => void,\n): void {\n ensureInitialized(runtime);\n\n registerHandler('userSettingsChange', handler, true, [settingTypes]);\n}\n\n/**\n * @hidden\n * Opens a client-friendly preview of the specified file.\n *\n * @param file - The file to preview.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function openFilePreview(filePreviewParameters: FilePreviewParameters): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n const params = [\n filePreviewParameters.entityId,\n filePreviewParameters.title,\n filePreviewParameters.description,\n filePreviewParameters.type,\n filePreviewParameters.objectUrl,\n filePreviewParameters.downloadUrl,\n filePreviewParameters.webPreviewUrl,\n filePreviewParameters.webEditUrl,\n filePreviewParameters.baseUrl,\n filePreviewParameters.editFile,\n filePreviewParameters.subEntityId,\n filePreviewParameters.viewerAction,\n filePreviewParameters.fileOpenPreference,\n filePreviewParameters.conversationId,\n ];\n\n sendMessageToParent('openFilePreview', params);\n}\n","import { teamsDeepLinkHost, teamsDeepLinkProtocol } from './constants';\nimport {\n teamsDeepLinkAttendeesUrlParameterName,\n teamsDeepLinkContentUrlParameterName,\n teamsDeepLinkEndTimeUrlParameterName,\n teamsDeepLinkMessageUrlParameterName,\n teamsDeepLinkSourceUrlParameterName,\n teamsDeepLinkStartTimeUrlParameterName,\n teamsDeepLinkSubjectUrlParameterName,\n teamsDeepLinkTopicUrlParameterName,\n teamsDeepLinkUrlPathForAppInstall,\n teamsDeepLinkUrlPathForCalendar,\n teamsDeepLinkUrlPathForCall,\n teamsDeepLinkUrlPathForChat,\n teamsDeepLinkUsersUrlParameterName,\n teamsDeepLinkWithVideoUrlParameterName,\n} from './deepLinkConstants';\n\nexport function createTeamsDeepLinkForChat(users: string[], topic?: string, message?: string): string {\n if (users.length === 0) {\n throw new Error('Must have at least one user when creating a chat deep link');\n }\n\n const usersSearchParameter =\n `${teamsDeepLinkUsersUrlParameterName}=` + users.map((user) => encodeURIComponent(user)).join(',');\n const topicSearchParameter =\n topic === undefined ? '' : `&${teamsDeepLinkTopicUrlParameterName}=${encodeURIComponent(topic)}`;\n const messageSearchParameter =\n message === undefined ? '' : `&${teamsDeepLinkMessageUrlParameterName}=${encodeURIComponent(message)}`;\n\n return `${teamsDeepLinkProtocol}://${teamsDeepLinkHost}${teamsDeepLinkUrlPathForChat}?${usersSearchParameter}${topicSearchParameter}${messageSearchParameter}`;\n}\n\nexport function createTeamsDeepLinkForCall(targets: string[], withVideo?: boolean, source?: string): string {\n if (targets.length === 0) {\n throw new Error('Must have at least one target when creating a call deep link');\n }\n const usersSearchParameter =\n `${teamsDeepLinkUsersUrlParameterName}=` + targets.map((user) => encodeURIComponent(user)).join(',');\n const withVideoSearchParameter =\n withVideo === undefined ? '' : `&${teamsDeepLinkWithVideoUrlParameterName}=${encodeURIComponent(withVideo)}`;\n const sourceSearchParameter =\n source === undefined ? '' : `&${teamsDeepLinkSourceUrlParameterName}=${encodeURIComponent(source)}`;\n\n return `${teamsDeepLinkProtocol}://${teamsDeepLinkHost}${teamsDeepLinkUrlPathForCall}?${usersSearchParameter}${withVideoSearchParameter}${sourceSearchParameter}`;\n}\n\nexport function createTeamsDeepLinkForCalendar(\n attendees?: string[],\n startTime?: string,\n endTime?: string,\n subject?: string,\n content?: string,\n): string {\n const attendeeSearchParameter =\n attendees === undefined\n ? ''\n : `${teamsDeepLinkAttendeesUrlParameterName}=` +\n attendees.map((attendee) => encodeURIComponent(attendee)).join(',');\n const startTimeSearchParameter =\n startTime === undefined ? '' : `&${teamsDeepLinkStartTimeUrlParameterName}=${encodeURIComponent(startTime)}`;\n const endTimeSearchParameter =\n endTime === undefined ? '' : `&${teamsDeepLinkEndTimeUrlParameterName}=${encodeURIComponent(endTime)}`;\n const subjectSearchParameter =\n subject === undefined ? '' : `&${teamsDeepLinkSubjectUrlParameterName}=${encodeURIComponent(subject)}`;\n const contentSearchParameter =\n content === undefined ? '' : `&${teamsDeepLinkContentUrlParameterName}=${encodeURIComponent(content)}`;\n\n return `${teamsDeepLinkProtocol}://${teamsDeepLinkHost}${teamsDeepLinkUrlPathForCalendar}?${attendeeSearchParameter}${startTimeSearchParameter}${endTimeSearchParameter}${subjectSearchParameter}${contentSearchParameter}`;\n}\n\nexport function createTeamsDeepLinkForAppInstallDialog(appId: string): string {\n if (!appId) {\n throw new Error('App ID must be set when creating an app install dialog deep link');\n }\n return `${teamsDeepLinkProtocol}://${teamsDeepLinkHost}${teamsDeepLinkUrlPathForAppInstall}${encodeURIComponent(\n appId,\n )}`;\n}\n","/**\n * App install dialog constants\n */\nexport const teamsDeepLinkUrlPathForAppInstall = '/l/app/';\n\n/**\n * Calendar constants\n */\nexport const teamsDeepLinkUrlPathForCalendar = '/l/meeting/new';\nexport const teamsDeepLinkAttendeesUrlParameterName = 'attendees';\nexport const teamsDeepLinkStartTimeUrlParameterName = 'startTime';\nexport const teamsDeepLinkEndTimeUrlParameterName = 'endTime';\nexport const teamsDeepLinkSubjectUrlParameterName = 'subject';\nexport const teamsDeepLinkContentUrlParameterName = 'content';\n\n/**\n * Call constants\n */\nexport const teamsDeepLinkUrlPathForCall = '/l/call/0/0';\nexport const teamsDeepLinkSourceUrlParameterName = 'source';\nexport const teamsDeepLinkWithVideoUrlParameterName = 'withVideo';\n\n/**\n * Chat constants\n */\nexport const teamsDeepLinkUrlPathForChat = '/l/chat/0/0';\nexport const teamsDeepLinkUsersUrlParameterName = 'users';\nexport const teamsDeepLinkTopicUrlParameterName = 'topicName';\nexport const teamsDeepLinkMessageUrlParameterName = 'message';\n","/* eslint-disable @typescript-eslint/explicit-member-accessibility */\n\nimport { sendMessageToParent } from '../internal/communication';\nimport {\n captureImageMobileSupportVersion,\n getMediaCallbackSupportVersion,\n mediaAPISupportVersion,\n nonFullScreenVideoModeAPISupportVersion,\n scanBarCodeAPIMobileSupportVersion,\n} from '../internal/constants';\nimport { GlobalVars } from '../internal/globalVars';\nimport { registerHandler, removeHandler } from '../internal/handlers';\nimport {\n ensureInitialized,\n isCurrentSDKVersionAtLeast,\n throwExceptionIfMobileApiIsNotSupported,\n} from '../internal/internalAPIs';\nimport {\n createFile,\n decodeAttachment,\n isVideoControllerRegistered,\n throwExceptionIfMediaCallIsNotSupportedOnMobile,\n validateGetMediaInputs,\n validateScanBarCodeInput,\n validateSelectMediaInputs,\n validateViewImagesInput,\n} from '../internal/mediaUtil';\nimport { generateGUID } from '../internal/utils';\nimport { FrameContexts, HostClientType } from './constants';\nimport { ErrorCode, SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\nexport namespace media {\n /**\n * Enum for file formats supported\n */\n export enum FileFormat {\n Base64 = 'base64',\n ID = 'id',\n }\n\n /**\n * File object that can be used to represent image or video or audio\n */\n export class File {\n /**\n * Content of the file. When format is Base64, this is the base64 content\n * When format is ID, this is id mapping to the URI\n * When format is base64 and app needs to use this directly in HTML tags, it should convert this to dataUrl.\n */\n public content: string;\n\n /**\n * Format of the content\n */\n public format: FileFormat;\n\n /**\n * Size of the file in KB\n */\n public size: number;\n\n /**\n * MIME type. This can be used for constructing a dataUrl, if needed.\n */\n public mimeType: string;\n\n /**\n * Optional: Name of the file\n */\n public name?: string;\n }\n\n /**\n * Launch camera, capture image or choose image from gallery and return the images as a File[] object to the callback.\n *\n * @params callback - Callback will be called with an @see SdkError if there are any.\n * If error is null or undefined, the callback will be called with a collection of @see File objects\n * @remarks\n * Note: Currently we support getting one File through this API, i.e. the file arrays size will be one.\n * Note: For desktop, this API is not supported. Callback will be resolved with ErrorCode.NotSupported.\n *\n */\n export function captureImage(callback: (error: SdkError, files: File[]) => void): void {\n if (!callback) {\n throw new Error('[captureImage] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n if (!GlobalVars.isFramelessWindow) {\n const notSupportedError: SdkError = { errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(notSupportedError, undefined);\n return;\n }\n\n if (!isCurrentSDKVersionAtLeast(captureImageMobileSupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(oldPlatformError, undefined);\n return;\n }\n\n sendMessageToParent('captureImage', callback);\n }\n\n /**\n * Media object returned by the select Media API\n */\n export class Media extends File {\n constructor(that: Media = null) {\n super();\n if (that) {\n this.content = that.content;\n this.format = that.format;\n this.mimeType = that.mimeType;\n this.name = that.name;\n this.preview = that.preview;\n this.size = that.size;\n }\n }\n\n /**\n * A preview of the file which is a lightweight representation.\n * In case of images this will be a thumbnail/compressed image in base64 encoding.\n */\n public preview: string;\n\n /**\n * Gets the media in chunks irrespective of size, these chunks are assembled and sent back to the webapp as file/blob\n * @param callback - callback is called with the @see SdkError if there is an error\n * If error is null or undefined, the callback will be called with @see Blob.\n */\n public getMedia(callback: (error: SdkError, blob: Blob) => void): void {\n if (!callback) {\n throw new Error('[get Media] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isCurrentSDKVersionAtLeast(mediaAPISupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(oldPlatformError, null);\n return;\n }\n if (!validateGetMediaInputs(this.mimeType, this.format, this.content)) {\n const invalidInput: SdkError = { errorCode: ErrorCode.INVALID_ARGUMENTS };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(invalidInput, null);\n return;\n }\n // Call the new get media implementation via callbacks if the client version is greater than or equal to '2.0.0'\n if (isCurrentSDKVersionAtLeast(getMediaCallbackSupportVersion)) {\n this.getMediaViaCallback(callback);\n } else {\n this.getMediaViaHandler(callback);\n }\n }\n\n private getMediaViaCallback(callback: (error: SdkError, blob: Blob) => void): void {\n const helper: MediaHelper = {\n mediaMimeType: this.mimeType,\n assembleAttachment: [],\n };\n const localUriId = [this.content];\n function handleGetMediaCallbackRequest(mediaResult: MediaResult): void {\n if (callback) {\n if (mediaResult && mediaResult.error) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(mediaResult.error, null);\n } else {\n if (mediaResult && mediaResult.mediaChunk) {\n // If the chunksequence number is less than equal to 0 implies EOF\n // create file/blob when all chunks have arrived and we get 0/-1 as chunksequence number\n if (mediaResult.mediaChunk.chunkSequence <= 0) {\n const file = createFile(helper.assembleAttachment, helper.mediaMimeType);\n callback(mediaResult.error, file);\n } else {\n // Keep pushing chunks into assemble attachment\n const assemble: AssembleAttachment = decodeAttachment(mediaResult.mediaChunk, helper.mediaMimeType);\n helper.assembleAttachment.push(assemble);\n }\n } else {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback({ errorCode: ErrorCode.INTERNAL_ERROR, message: 'data received is null' }, null);\n }\n }\n }\n }\n sendMessageToParent('getMedia', localUriId, handleGetMediaCallbackRequest);\n }\n\n private getMediaViaHandler(callback: (error: SdkError, blob: Blob) => void): void {\n const actionName = generateGUID();\n const helper: MediaHelper = {\n mediaMimeType: this.mimeType,\n assembleAttachment: [],\n };\n const params = [actionName, this.content];\n this.content && callback && sendMessageToParent('getMedia', params);\n function handleGetMediaRequest(response: string): void {\n if (callback) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const mediaResult: MediaResult = JSON.parse(response);\n if (mediaResult.error) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(mediaResult.error, null);\n removeHandler('getMedia' + actionName);\n } else {\n if (mediaResult.mediaChunk) {\n // If the chunksequence number is less than equal to 0 implies EOF\n // create file/blob when all chunks have arrived and we get 0/-1 as chunksequence number\n if (mediaResult.mediaChunk.chunkSequence <= 0) {\n const file = createFile(helper.assembleAttachment, helper.mediaMimeType);\n callback(mediaResult.error, file);\n removeHandler('getMedia' + actionName);\n } else {\n // Keep pushing chunks into assemble attachment\n const assemble: AssembleAttachment = decodeAttachment(mediaResult.mediaChunk, helper.mediaMimeType);\n helper.assembleAttachment.push(assemble);\n }\n } else {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback({ errorCode: ErrorCode.INTERNAL_ERROR, message: 'data received is null' }, null);\n removeHandler('getMedia' + actionName);\n }\n }\n }\n }\n\n registerHandler('getMedia' + actionName, handleGetMediaRequest);\n }\n }\n\n /**\n * Input parameter supplied to the select Media API\n */\n export interface MediaInputs {\n /**\n * Only one media type can be selected at a time\n */\n mediaType: MediaType;\n\n /**\n * max limit of media allowed to be selected in one go, current max limit is 10 set by office lens.\n */\n maxMediaCount: number;\n\n /**\n * Additional properties for customization of select media - Image in mobile devices\n */\n imageProps?: ImageProps;\n\n /**\n * Additional properties for customization of select media - Video in mobile devices\n */\n videoProps?: VideoProps;\n\n /**\n * Additional properties for customization of select media - VideoAndImage in mobile devices\n */\n videoAndImageProps?: VideoAndImageProps;\n\n /**\n * Additional properties for audio capture flows.\n */\n audioProps?: AudioProps;\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * All properties common to Image and Video Props\n */\n interface MediaProps {\n /**\n * @hidden\n * Optional; Lets the developer specify the media source, more than one can be specified.\n * Default value is both camera and gallery\n */\n sources?: Source[];\n\n /**\n * @hidden\n * Optional; Specify in which mode the camera will be opened.\n * Default value is Photo\n */\n startMode?: CameraStartMode;\n\n /**\n * @hidden\n * Optional; indicate if user is allowed to move between front and back camera\n * Default value is true\n */\n cameraSwitcher?: boolean;\n }\n\n /**\n * All properties in ImageProps are optional and have default values in the platform\n */\n export interface ImageProps extends MediaProps {\n /**\n * Optional; indicate if inking on the selected Image is allowed or not\n * Default value is true\n */\n ink?: boolean;\n\n /**\n * Optional; indicate if putting text stickers on the selected Image is allowed or not\n * Default value is true\n */\n textSticker?: boolean;\n\n /**\n * Optional; indicate if image filtering mode is enabled on the selected image\n * Default value is false\n */\n enableFilter?: boolean;\n\n /**\n * Optional; Lets the developer specify the image output formats, more than one can be specified.\n * Default value is Image.\n */\n imageOutputFormats?: ImageOutputFormats[];\n }\n\n /**\n * All properties in VideoProps are optional and have default values in the platform\n */\n export interface VideoProps extends MediaProps {\n /**\n * Optional; the maximum duration in seconds after which the recording should terminate automatically.\n * Default value is defined by the platform serving the API.\n */\n maxDuration?: number;\n\n /**\n * Optional; to determine if the video capturing flow needs to be launched\n * in Full Screen Mode (Lens implementation) or PictureInPicture Mode (Native implementation).\n * Default value is true, indicating video will always launch in Full Screen Mode via lens.\n */\n isFullScreenMode?: boolean;\n\n /**\n * Optional; controls the visibility of stop button in PictureInPicture Mode.\n * Default value is true, indicating the user will be able to stop the video.\n */\n isStopButtonVisible?: boolean;\n\n /**\n * Optional; setting VideoController will register your app to listen to the lifecycle events during the video capture flow.\n * Your app can also dynamically control the experience while capturing the video by notifying the host client.\n */\n videoController?: VideoController;\n }\n\n /**\n * All properties in VideoAndImageProps are optional and have default values in the platform\n */\n export interface VideoAndImageProps extends ImageProps, VideoProps {}\n\n /**\n * All properties in AudioProps are optional and have default values in the platform\n */\n export interface AudioProps {\n /**\n * Optional; the maximum duration in minutes after which the recording should terminate automatically\n * Default value is defined by the platform serving the API.\n */\n maxDuration?: number;\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Base class which holds the callback and notifies events to the host client\n */\n abstract class MediaController<T> {\n protected controllerCallback: T;\n\n public constructor(controllerCallback?: T) {\n this.controllerCallback = controllerCallback;\n }\n\n protected abstract getMediaType(): MediaType;\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * This function will be implemented by the respective media class which holds the logic\n * of specific events that needs to be notified to the app.\n * @param mediaEvent indicates the event signed by the host client to the app\n */\n protected abstract notifyEventToApp(mediaEvent: MediaControllerEvent): void;\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Function to notify the host client to programatically control the experience\n * @param mediaEvent indicates what the event that needs to be signaled to the host client\n * Optional; @param callback is used to send app if host client has successfully handled the notification event or not\n */\n protected notifyEventToHost(mediaEvent: MediaControllerEvent, callback?: (err?: SdkError) => void): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n try {\n throwExceptionIfMobileApiIsNotSupported(nonFullScreenVideoModeAPISupportVersion);\n } catch (err) {\n if (callback) {\n callback(err);\n }\n return;\n }\n\n const params: MediaControllerParam = { mediaType: this.getMediaType(), mediaControllerEvent: mediaEvent };\n sendMessageToParent('media.controller', [params], (err?: SdkError) => {\n if (callback) {\n callback(err);\n }\n });\n }\n\n /**\n * Function to programatically stop the ongoing media event\n * Optional; @param callback is used to send app if host client has successfully stopped the event or not\n */\n public stop(callback?: (err?: SdkError) => void): void {\n this.notifyEventToHost(MediaControllerEvent.StopRecording, callback);\n }\n }\n\n /**\n * Callback which will register your app to listen to lifecycle events during the video capture flow\n */\n export interface VideoControllerCallback {\n onRecordingStarted?(): void;\n }\n\n /**\n * VideoController class is used to communicate between the app and the host client during the video capture flow\n */\n export class VideoController extends MediaController<VideoControllerCallback> {\n protected getMediaType(): MediaType {\n return MediaType.Video;\n }\n\n public notifyEventToApp(mediaEvent: MediaControllerEvent): void {\n if (!this.controllerCallback) {\n // Early return as app has not registered with the callback\n return;\n }\n\n switch (mediaEvent) {\n case MediaControllerEvent.StartRecording:\n if (this.controllerCallback.onRecordingStarted) {\n this.controllerCallback.onRecordingStarted();\n break;\n }\n }\n }\n }\n\n /**\n * @beta\n * Events which are used to communicate between the app and the host client during the media recording flow\n */\n export enum MediaControllerEvent {\n StartRecording = 1,\n StopRecording = 2,\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Interface with relevant info to send communication from the app to the host client\n */\n interface MediaControllerParam {\n /**\n * List of team information\n */\n mediaType: media.MediaType;\n\n /**\n * List of team information\n */\n mediaControllerEvent: MediaControllerEvent;\n }\n\n /**\n * The modes in which camera can be launched in select Media API\n */\n export enum CameraStartMode {\n Photo = 1,\n Document = 2,\n Whiteboard = 3,\n BusinessCard = 4,\n }\n\n /**\n * Specifies the image source\n */\n export enum Source {\n Camera = 1,\n Gallery = 2,\n }\n\n /**\n * Specifies the type of Media\n */\n export enum MediaType {\n Image = 1,\n Video = 2,\n VideoAndImage = 3,\n Audio = 4,\n }\n\n /**\n * Input for view images API\n */\n export interface ImageUri {\n value: string;\n type: ImageUriType;\n }\n\n /**\n * ID contains a mapping for content uri on platform's side, URL is generic\n */\n export enum ImageUriType {\n ID = 1,\n URL = 2,\n }\n\n /**\n * Specifies the image output formats.\n */\n export enum ImageOutputFormats {\n IMAGE = 1,\n PDF = 2,\n }\n\n /**\n * Media chunks an output of getMedia API from platform\n */\n export interface MediaChunk {\n /**\n * Base 64 data for the requested uri\n */\n chunk: string;\n\n /**\n * chunk sequence number\n */\n chunkSequence: number;\n }\n\n /**\n * Output of getMedia API from platform\n */\n export interface MediaResult {\n /**\n * error encountered in getMedia API\n */\n error: SdkError;\n\n /**\n * Media chunk which will be assemebled and converted into a blob\n */\n mediaChunk: MediaChunk;\n }\n\n /**\n * Helper object to assembled media chunks\n */\n export interface AssembleAttachment {\n sequence: number;\n file: Blob;\n }\n\n /**\n * Helper class for assembling media\n */\n interface MediaHelper {\n mediaMimeType: string;\n assembleAttachment: AssembleAttachment[];\n }\n\n /**\n * Select an attachment using camera/gallery\n *\n * @param mediaInputs - The input params to customize the media to be selected\n * @param callback - The callback to invoke after fetching the media\n */\n export function selectMedia(\n mediaInputs: MediaInputs,\n callback: (error: SdkError, attachments: Media[]) => void,\n ): void {\n if (!callback) {\n throw new Error('[select Media] Callback cannot be null');\n }\n\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isCurrentSDKVersionAtLeast(mediaAPISupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(oldPlatformError, null);\n return;\n }\n\n try {\n throwExceptionIfMediaCallIsNotSupportedOnMobile(mediaInputs);\n } catch (err) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(err, null);\n return;\n }\n\n if (!validateSelectMediaInputs(mediaInputs)) {\n const invalidInput: SdkError = { errorCode: ErrorCode.INVALID_ARGUMENTS };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(invalidInput, null);\n return;\n }\n\n const params = [mediaInputs];\n // What comes back from native as attachments would just be objects and will be missing getMedia method on them\n sendMessageToParent(\n 'selectMedia',\n params,\n (err: SdkError, localAttachments?: Media[], mediaEvent?: MediaControllerEvent) => {\n // MediaControllerEvent response is used to notify the app about events and is a partial response to selectMedia\n if (mediaEvent) {\n if (isVideoControllerRegistered(mediaInputs)) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n mediaInputs.videoProps.videoController.notifyEventToApp(mediaEvent);\n }\n return;\n }\n\n // Media Attachments are final response to selectMedia\n if (!localAttachments) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(err, null);\n return;\n }\n\n const mediaArray: Media[] = [];\n for (const attachment of localAttachments) {\n mediaArray.push(new Media(attachment));\n }\n callback(err, mediaArray);\n },\n );\n }\n\n /**\n * View images using native image viewer\n *\n * @param uriList - list of URIs for images to be viewed - can be content URI or server URL. Supports up to 10 Images in a single call\n * @param callback - returns back error if encountered, returns null in case of success\n */\n export function viewImages(uriList: ImageUri[], callback: (error?: SdkError) => void): void {\n if (!callback) {\n throw new Error('[view images] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n if (!isCurrentSDKVersionAtLeast(mediaAPISupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n callback(oldPlatformError);\n return;\n }\n if (!validateViewImagesInput(uriList)) {\n const invalidInput: SdkError = { errorCode: ErrorCode.INVALID_ARGUMENTS };\n callback(invalidInput);\n return;\n }\n\n const params = [uriList];\n sendMessageToParent('viewImages', params, callback);\n }\n\n /**\n * Barcode configuration supplied to scanBarCode API to customize barcode scanning experience in mobile\n * All properties in BarCodeConfig are optional and have default values in the platform\n */\n export interface BarCodeConfig {\n /**\n * Optional; Lets the developer specify the scan timeout interval in seconds\n * Default value is 30 seconds and max allowed value is 60 seconds\n */\n timeOutIntervalInSec?: number;\n }\n\n /**\n * @deprecated\n * As of 2.1.0, please use {@link barCode.scanBarCode barCode.scanBarCode(config?: BarCodeConfig): Promise\\<string\\>} instead.\n\n * Scan Barcode/QRcode using camera\n *\n * @remarks\n * Note: For desktop and web, this API is not supported. Callback will be resolved with ErrorCode.NotSupported.\n *\n * @param callback - callback to invoke after scanning the barcode\n * @param config - optional input configuration to customize the barcode scanning experience\n */\n export function scanBarCode(callback: (error: SdkError, decodedText: string) => void, config?: BarCodeConfig): void {\n if (!callback) {\n throw new Error('[media.scanBarCode] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n if (\n GlobalVars.hostClientType === HostClientType.desktop ||\n GlobalVars.hostClientType === HostClientType.web ||\n GlobalVars.hostClientType === HostClientType.rigel ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsWindows ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsAndroid ||\n GlobalVars.hostClientType === HostClientType.teamsPhones ||\n GlobalVars.hostClientType === HostClientType.teamsDisplays\n ) {\n const notSupportedError: SdkError = { errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(notSupportedError, null);\n return;\n }\n\n if (!isCurrentSDKVersionAtLeast(scanBarCodeAPIMobileSupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(oldPlatformError, null);\n return;\n }\n\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n if (!validateScanBarCodeInput(config)) {\n const invalidInput: SdkError = { errorCode: ErrorCode.INVALID_ARGUMENTS };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(invalidInput, null);\n return;\n }\n\n sendMessageToParent('media.scanBarCode', [config], callback);\n }\n}\n","import { sendAndHandleSdkError } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { validateScanBarCodeInput } from '../internal/mediaUtil';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { DevicePermission, ErrorCode } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * Namespace to interact with the barcode scanning-specific part of the SDK.\n *\n * @beta\n */\nexport namespace barCode {\n /**\n * Data structure to customize the barcode scanning experience in scanBarCode API.\n * All properties in BarCodeConfig are optional and have default values in the platform\n *\n * @beta\n */\n export interface BarCodeConfig {\n /**\n * Optional; designates the scan timeout interval in seconds.\n * Default value is 30 seconds, max allowed value is 60 seconds.\n */\n timeOutIntervalInSec?: number;\n }\n\n /**\n * Scan Barcode or QRcode using camera\n *\n * @param barCodeConfig - input configuration to customize the barcode scanning experience\n *\n * @returns a scanned code\n *\n * @beta\n */\n export function scanBarCode(barCodeConfig: BarCodeConfig): Promise<string> {\n return new Promise<string>((resolve) => {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!validateScanBarCodeInput(barCodeConfig)) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n\n resolve(sendAndHandleSdkError('media.scanBarCode', barCodeConfig));\n });\n }\n\n /**\n * Checks whether or not media has user permission\n *\n * @returns true if the user has granted the app permission to media information, false otherwise\n *\n * @beta\n */\n export function hasPermission(): Promise<boolean> {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.Media;\n\n return new Promise<boolean>((resolve) => {\n resolve(sendAndHandleSdkError('permissions.has', permissions));\n });\n }\n\n /**\n * Requests user permission for media\n *\n * @returns true if the user has granted the app permission to the media, false otherwise\n *\n * @beta\n */\n export function requestPermission(): Promise<boolean> {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.Media;\n\n return new Promise<boolean>((resolve) => {\n resolve(sendAndHandleSdkError('permissions.request', permissions));\n });\n }\n\n /**\n * Checks if barCode capability is supported by the host\n * @returns boolean to represent whether the barCode capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.barCode && runtime.supports.permissions ? true : false;\n }\n}\n","import { sendAndHandleStatusAndReason as sendAndHandleError } from '../internal/communication';\nimport { createTeamsDeepLinkForChat } from '../internal/deepLinkUtilities';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * Describes information needed to start a chat\n *\n * @beta\n */\ninterface OpenChatRequest {\n /**\n * An optional message used when initiating chat\n */\n message?: string;\n}\n\n/**\n * Used when starting a chat with one person\n *\n * @see OpenGroupChatRequest for use when a chat with more than one person\n *\n * @beta\n */\nexport interface OpenSingleChatRequest extends OpenChatRequest {\n /**\n * The Azure Active Directory UPN (e-mail address) of the user to chat with\n */\n user: string;\n}\n\n/**\n * Used when starting a chat with more than one person\n *\n * @see OpenSingleChatRequest for use in a chat with only one person\n *\n * @beta\n */\nexport interface OpenGroupChatRequest extends OpenChatRequest {\n /**\n * Array containing Azure Active Directory UPNs (e-mail addresss) of users to open chat with\n */\n users: string[];\n /**\n * The display name of a conversation for 3 or more users (chats with fewer than three users will ignore this field)\n */\n topic?: string;\n}\n\n/**\n * Contains functionality to start chat with others\n *\n * @beta\n */\nexport namespace chat {\n /**\n * Allows the user to open a chat with a single user and allows\n * for the user to specify the message they wish to send.\n *\n * @param openChatRequest: {@link OpenSingleChatRequest}- a request object that contains a user's email as well as an optional message parameter.\n *\n * @returns Promise resolved upon completion\n *\n * @beta\n */\n export function openChat(openChatRequest: OpenSingleChatRequest): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndHandleError(\n 'executeDeepLink',\n createTeamsDeepLinkForChat([openChatRequest.user], undefined /*topic*/, openChatRequest.message),\n ),\n );\n } else {\n const sendPromise = sendAndHandleError('chat.openChat', {\n members: openChatRequest.user,\n message: openChatRequest.message,\n });\n resolve(sendPromise);\n }\n });\n }\n /**\n * Allows the user to create a chat with multiple users (2+) and allows\n * for the user to specify a message and name the topic of the conversation. If\n * only 1 user is provided into users array default back to origin openChat.\n *\n * @param openChatRequest: {@link OpenGroupChatRequest} - a request object that contains a list of user emails as well as optional parameters for message and topic (display name for the group chat).\n *\n * @returns Promise resolved upon completion\n *\n * @beta\n */\n export function openGroupChat(openChatRequest: OpenGroupChatRequest): Promise<void> {\n return new Promise<void>((resolve) => {\n if (openChatRequest.users.length < 1) {\n throw Error('OpenGroupChat Failed: No users specified');\n }\n if (openChatRequest.users.length === 1) {\n const chatRequest: OpenSingleChatRequest = {\n user: openChatRequest.users[0],\n message: openChatRequest.message,\n };\n openChat(chatRequest);\n } else {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndHandleError(\n 'executeDeepLink',\n createTeamsDeepLinkForChat(openChatRequest.users, openChatRequest.topic, openChatRequest.message),\n ),\n );\n } else {\n const sendPromise = sendAndHandleError('chat.openChat', {\n members: openChatRequest.users,\n message: openChatRequest.message,\n topic: openChatRequest.topic,\n });\n resolve(sendPromise);\n }\n }\n });\n }\n\n /**\n * Checks if the chat capability is supported by the host\n * @returns boolean to represent whether the chat capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.chat ? true : false;\n }\n}\n","import { sendAndHandleSdkError as sendAndHandleError } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { DevicePermission, ErrorCode } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * Namespace to interact with the geoLocation module-specific part of the SDK. This is the newer version of location module.\n *\n * @beta\n */\nexport namespace geoLocation {\n /**\n * Data struture to represent the location information\n *\n * @beta\n */\n export interface Location {\n /**\n Latitude of the location\n */\n latitude: number;\n /**\n Longitude of the location\n */\n longitude: number;\n /**\n Accuracy describes the maximum distance in meters from the captured coordinates to the possible actual location\n @remarks\n This property is only in scope for mobile\n */\n accuracy?: number;\n /**\n Time stamp when the location was captured\n */\n timestamp?: number;\n }\n /**\n * Fetches current user coordinates\n * @returns Promise that will resolve with {@link geoLocation.Location} object or reject with an error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function getCurrentLocation(): Promise<Location> {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n return sendAndHandleError('location.getLocation', { allowChooseLocation: false, showMap: false });\n }\n\n /**\n * Checks whether or not location has user permission\n *\n * @returns Promise that will resolve with true if the user had granted the app permission to location information, or with false otherwise,\n * In case of an error, promise will reject with the error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function hasPermission(): Promise<boolean> {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.GeoLocation;\n\n return new Promise<boolean>((resolve) => {\n resolve(sendAndHandleError('permissions.has', permissions));\n });\n }\n\n /**\n * Requests user permission for location\n *\n * @returns true if the user consented permission for location, false otherwise\n * @returns Promise that will resolve with true if the user consented permission for location, or with false otherwise,\n * In case of an error, promise will reject with the error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function requestPermission(): Promise<boolean> {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.GeoLocation;\n\n return new Promise<boolean>((resolve) => {\n resolve(sendAndHandleError('permissions.request', permissions));\n });\n }\n\n /**\n * Checks if geoLocation capability is supported by the host\n * @returns boolean to represent whether geoLocation is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.geoLocation && runtime.supports.permissions ? true : false;\n }\n\n /**\n * Namespace to interact with the location on map module-specific part of the SDK.\n *\n * @beta\n */\n export namespace map {\n /**\n * Allows user to choose location on map\n *\n * @returns Promise that will resolve with {@link geoLocation.Location} object chosen by the user or reject with an error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function chooseLocation(): Promise<Location> {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n return sendAndHandleError('location.getLocation', { allowChooseLocation: true, showMap: true });\n }\n\n /**\n * Shows the location on map corresponding to the given coordinates\n *\n * @param location - Location to be shown on the map\n * @returns Promise that resolves when the location dialog has been closed or reject with an error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function showLocation(location: Location): Promise<void> {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!location) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n return sendAndHandleError('location.showLocation', location);\n }\n\n /**\n * Checks if geoLocation.map capability is supported by the host\n * @returns boolean to represent whether geoLocation.map is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) &&\n runtime.supports.geoLocation &&\n runtime.supports.geoLocation.map &&\n runtime.supports.permissions\n ? true\n : false;\n }\n }\n}\n","import { media } from '../public/media';\nimport { people } from '../public/people';\nimport {\n imageOutputFormatsAPISupportVersion,\n nonFullScreenVideoModeAPISupportVersion,\n videoAndImageMediaAPISupportVersion,\n} from './constants';\nimport { throwExceptionIfMobileApiIsNotSupported } from './internalAPIs';\n\n/**\n * @hidden\n * Helper function to create a blob from media chunks based on their sequence\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function createFile(assembleAttachment: media.AssembleAttachment[], mimeType: string): Blob {\n if (assembleAttachment == null || mimeType == null || assembleAttachment.length <= 0) {\n return null;\n }\n let file: Blob | undefined;\n let sequence = 1;\n assembleAttachment.sort((a, b) => (a.sequence > b.sequence ? 1 : -1));\n assembleAttachment.forEach((item) => {\n if (item.sequence == sequence) {\n if (file) {\n file = new Blob([file, item.file], { type: mimeType });\n } else {\n file = new Blob([item.file], { type: mimeType });\n }\n sequence++;\n }\n });\n return file;\n}\n\n/**\n * @hidden\n * Helper function to convert Media chunks into another object type which can be later assemebled\n * Converts base 64 encoded string to byte array and then into an array of blobs\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function decodeAttachment(attachment: media.MediaChunk, mimeType: string): media.AssembleAttachment {\n if (attachment == null || mimeType == null) {\n return null;\n }\n const decoded = atob(attachment.chunk);\n const byteNumbers = new Array(decoded.length);\n for (let i = 0; i < decoded.length; i++) {\n byteNumbers[i] = decoded.charCodeAt(i);\n }\n const byteArray = new Uint8Array(byteNumbers);\n const blob: Blob = new Blob([byteArray], { type: mimeType });\n const assemble: media.AssembleAttachment = {\n sequence: attachment.chunkSequence,\n file: blob,\n };\n return assemble;\n}\n\n/**\n * @hidden\n * Function throws an SdkError if the media call is not supported on current mobile version, else undefined.\n *\n * @throws an SdkError if the media call is not supported\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function throwExceptionIfMediaCallIsNotSupportedOnMobile(mediaInputs: media.MediaInputs): void {\n if (isMediaCallForVideoAndImageInputs(mediaInputs)) {\n throwExceptionIfMobileApiIsNotSupported(videoAndImageMediaAPISupportVersion);\n } else if (isMediaCallForNonFullScreenVideoMode(mediaInputs)) {\n throwExceptionIfMobileApiIsNotSupported(nonFullScreenVideoModeAPISupportVersion);\n } else if (isMediaCallForImageOutputFormats(mediaInputs)) {\n throwExceptionIfMobileApiIsNotSupported(imageOutputFormatsAPISupportVersion);\n }\n}\n\n/**\n * @hidden\n * Function returns true if the app has registered to listen to video controller events, else false.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isVideoControllerRegistered(mediaInputs: media.MediaInputs): boolean {\n if (\n mediaInputs.mediaType == media.MediaType.Video &&\n mediaInputs.videoProps &&\n mediaInputs.videoProps.videoController\n ) {\n return true;\n }\n return false;\n}\n\n/**\n * @hidden\n * Returns true if the mediaInput params are valid and false otherwise\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateSelectMediaInputs(mediaInputs: media.MediaInputs): boolean {\n if (mediaInputs == null || mediaInputs.maxMediaCount > 10) {\n return false;\n }\n return true;\n}\n\n/**\n * @hidden\n * Returns true if the mediaInput params are called for mediatype Image and contains Image outputs formats, false otherwise\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isMediaCallForImageOutputFormats(mediaInputs: media.MediaInputs): boolean {\n if (mediaInputs?.mediaType == media.MediaType.Image && mediaInputs?.imageProps?.imageOutputFormats) {\n return true;\n }\n return false;\n}\n\n/**\n * @hidden\n * Returns true if the mediaInput params are called for mediatype VideoAndImage and false otherwise\n *\n * @internal\n */\nexport function isMediaCallForVideoAndImageInputs(mediaInputs: media.MediaInputs): boolean {\n if (mediaInputs && (mediaInputs.mediaType == media.MediaType.VideoAndImage || mediaInputs.videoAndImageProps)) {\n return true;\n }\n return false;\n}\n\n/**\n * @hidden\n * Returns true if the mediaInput params are called for non-full screen video mode and false otherwise\n *\n * @internal\n */\nexport function isMediaCallForNonFullScreenVideoMode(mediaInputs: media.MediaInputs): boolean {\n if (\n mediaInputs &&\n mediaInputs.mediaType == media.MediaType.Video &&\n mediaInputs.videoProps &&\n !mediaInputs.videoProps.isFullScreenMode\n ) {\n return true;\n }\n return false;\n}\n\n/**\n * @hidden\n * Returns true if the get Media params are valid and false otherwise\n *\n * @internal\n */\nexport function validateGetMediaInputs(mimeType: string, format: media.FileFormat, content: string): boolean {\n if (mimeType == null || format == null || format != media.FileFormat.ID || content == null) {\n return false;\n }\n return true;\n}\n\n/**\n * @hidden\n * Returns true if the view images param is valid and false otherwise\n *\n * @internal\n */\nexport function validateViewImagesInput(uriList: media.ImageUri[]): boolean {\n if (uriList == null || uriList.length <= 0 || uriList.length > 10) {\n return false;\n }\n return true;\n}\n\n/**\n * @hidden\n * Returns true if the scan barcode param is valid and false otherwise\n *\n * @internal\n */\nexport function validateScanBarCodeInput(barCodeConfig: media.BarCodeConfig): boolean {\n if (barCodeConfig) {\n if (\n barCodeConfig.timeOutIntervalInSec === null ||\n barCodeConfig.timeOutIntervalInSec <= 0 ||\n barCodeConfig.timeOutIntervalInSec > 60\n ) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @hidden\n * Returns true if the people picker params are valid and false otherwise\n *\n * @internal\n */\nexport function validatePeoplePickerInput(peoplePickerInputs: people.PeoplePickerInputs): boolean {\n if (peoplePickerInputs) {\n if (peoplePickerInputs.title) {\n if (typeof peoplePickerInputs.title !== 'string') {\n return false;\n }\n }\n\n if (peoplePickerInputs.setSelected) {\n if (typeof peoplePickerInputs.setSelected !== 'object') {\n return false;\n }\n }\n\n if (peoplePickerInputs.openOrgWideSearchInChatOrChannel) {\n if (typeof peoplePickerInputs.openOrgWideSearchInChatOrChannel !== 'boolean') {\n return false;\n }\n }\n if (peoplePickerInputs.singleSelect) {\n if (typeof peoplePickerInputs.singleSelect !== 'boolean') {\n return false;\n }\n }\n }\n return true;\n}\n","import { AdaptiveCardVersion } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * @returns The {@linkcode AdaptiveCardVersion} representing the Adaptive Card schema\n * version supported by the host, or undefined if the host does not support Adaptive Cards\n */\nexport function getAdaptiveCardSchemaVersion(): AdaptiveCardVersion | undefined {\n if (!runtime.hostVersionsInfo) {\n return undefined;\n } else {\n return runtime.hostVersionsInfo.adaptiveCardSchemaVersion;\n }\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n\nimport { sendMessageToParent } from '../internal/communication';\nimport { registerHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\nexport interface IAppWindow {\n /**\n * Send a message to the AppWindow.\n *\n * @param message - The message to send\n * @param onComplete - The callback to know if the postMessage has been success/failed.\n */\n postMessage(message: any, onComplete?: (status: boolean, reason?: string) => void): void;\n\n /**\n * Add a listener that will be called when an event is received from this AppWindow.\n *\n * @param type - The event to listen to. Currently the only supported type is 'message'.\n * @param listener - The listener that will be called\n */\n addEventListener(type: string, listener: Function): void;\n}\n\nexport class ChildAppWindow implements IAppWindow {\n /**\n * Send a message to the ChildAppWindow.\n *\n * @param message - The message to send\n * @param onComplete - The callback to know if the postMessage has been success/failed.\n */\n public postMessage(message: any, onComplete?: (status: boolean, reason?: string) => void): void {\n ensureInitialized(runtime);\n sendMessageToParent('messageForChild', [message], onComplete ? onComplete : getGenericOnCompleteHandler());\n }\n /**\n * Add a listener that will be called when an event is received from the ChildAppWindow.\n *\n * @param type - The event to listen to. Currently the only supported type is 'message'.\n * @param listener - The listener that will be called\n */\n public addEventListener(type: string, listener: (message: any) => void): void {\n ensureInitialized(runtime);\n if (type === 'message') {\n registerHandler('messageForParent', listener);\n }\n }\n}\n\nexport class ParentAppWindow implements IAppWindow {\n private static _instance: ParentAppWindow;\n public static get Instance(): IAppWindow {\n // Do you need arguments? Make it a regular method instead.\n return this._instance || (this._instance = new this());\n }\n\n /**\n * Send a message to the ParentAppWindow.\n *\n * @param message - The message to send\n * @param onComplete - The callback to know if the postMessage has been success/failed.\n */\n public postMessage(message: any, onComplete?: (status: boolean, reason?: string) => void): void {\n ensureInitialized(runtime, FrameContexts.task);\n sendMessageToParent('messageForParent', [message], onComplete ? onComplete : getGenericOnCompleteHandler());\n }\n\n /**\n * Add a listener that will be called when an event is received from the ParentAppWindow.\n *\n * @param type - The event to listen to. Currently the only supported type is 'message'.\n * @param listener - The listener that will be called\n */\n public addEventListener(type: string, listener: (message: any) => void): void {\n ensureInitialized(runtime, FrameContexts.task);\n if (type === 'message') {\n registerHandler('messageForChild', listener);\n }\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { locationAPIsRequiredVersion } from '../internal/constants';\nimport { ensureInitialized, isCurrentSDKVersionAtLeast } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { ErrorCode, SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * @deprecated\n * As of 2.1.0, please use geoLocation namespace.\n *\n * Namespace to interact with the location module-specific part of the SDK.\n */\nexport namespace location {\n /**\n * @deprecated\n * Data Structure to set the location properties in getLocation call.\n */\n export interface LocationProps {\n /**\n whether user can alter location or not\n if false, user will be shown current location \n and wouldn't be allowed to alter it\n */\n allowChooseLocation: boolean;\n /**\n whether selected location should be shown to user on map or not.\n If allowChooseLocation is true, this parameter will be ignored by platform.\n If allowChooseLocation is false, and this parameter is not provided, default \n value will be false.\n */\n showMap?: boolean;\n }\n\n /**\n * @deprecated\n * Data struture to represent the location information\n */\n export interface Location {\n /**\n Latitude of the location\n */\n latitude: number;\n /**\n Longitude of the location\n */\n longitude: number;\n /**\n Accuracy of the coordinates captured\n */\n accuracy?: number;\n /**\n Time stamp when the location was captured\n */\n timestamp?: number;\n }\n\n /**\n * @deprecated\n * As of 2.1.0, please use one of the following functions:\n * - {@link geoLocation.getCurrentLocation geoLocation.getCurrentLocation(): Promise\\<Location\\>} to get the current location.\n * - {@link geoLocation.map.chooseLocation geoLocation.map.chooseLocation(): Promise\\<Location\\>} to choose location on map.\n *\n * Fetches user location\n * @param props {@link LocationProps} - Specifying how the location request is handled\n * @param callback - Callback to invoke when current user location is fetched\n */\n export function getLocation(props: LocationProps, callback: (error: SdkError, location: Location) => void): void {\n if (!callback) {\n throw new Error('[location.getLocation] Callback cannot be null');\n }\n\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n if (!isCurrentSDKVersionAtLeast(locationAPIsRequiredVersion)) {\n throw { errorCode: ErrorCode.OLD_PLATFORM };\n }\n if (!props) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('location.getLocation', [props], callback);\n }\n\n /**\n * @deprecated\n * As of 2.1.0, please use {@link geoLocation.map.showLocation geoLocation.map.showLocation(location: Location): Promise\\<void\\>} instead.\n *\n * Shows the location on map corresponding to the given coordinates\n *\n * @param location - Location to be shown on the map\n * @param callback - Callback to invoke when the location is opened on map\n */\n export function showLocation(location: Location, callback: (error: SdkError, status: boolean) => void): void {\n if (!callback) {\n throw new Error('[location.showLocation] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isCurrentSDKVersionAtLeast(locationAPIsRequiredVersion)) {\n throw { errorCode: ErrorCode.OLD_PLATFORM };\n }\n if (!location) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n sendMessageToParent('location.showLocation', [location], callback);\n }\n\n /**\n * @deprecated\n * As of 2.1.0, please use geoLocation namespace, and use {@link geoLocation.isSupported geoLocation.isSupported: boolean} to check if geoLocation is supported.\n *\n * Checks if Location capability is supported by the host\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @returns boolean to represent whether Location is supported\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.location ? true : false;\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { doesHandlerExist, registerHandler, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { FrameContexts } from './constants';\nimport { SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\nexport namespace meeting {\n /**\n * @hidden\n * Data structure to represent meeting details\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IMeetingDetailsResponse {\n /**\n * @hidden\n * details object\n */\n details: IMeetingDetails | ICallDetails;\n\n /**\n * @hidden\n * conversation object\n */\n conversation: IConversation;\n\n /**\n * @hidden\n * organizer object\n */\n organizer: IOrganizer;\n }\n\n /**\n * @hidden\n * Hide from docs\n * Base data structure to represent a meeting or call detail\n */\n export interface IMeetingOrCallDetailsBase<T> {\n /**\n * @hidden\n * Scheduled start time of the meeting or start time of the call\n */\n scheduledStartTime: string;\n\n /**\n * @hidden\n * url to join the current meeting or call\n */\n joinUrl?: string;\n\n /**\n * @hidden\n * type of the meeting or call\n */\n type?: T;\n }\n\n /**\n * @hidden\n * Hide from docs\n * Data structure to represent call details\n */\n export type ICallDetails = IMeetingOrCallDetailsBase<CallType>;\n\n /**\n * @hidden\n * Hide from docs\n * Data structure to represent meeting details.\n */\n export interface IMeetingDetails extends IMeetingOrCallDetailsBase<MeetingType> {\n /**\n * @hidden\n * Scheduled end time of the meeting\n */\n scheduledEndTime: string;\n\n /**\n * @hidden\n * meeting title name of the meeting\n */\n title?: string;\n }\n\n /**\n * @hidden\n * Data structure to represent a conversation object.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IConversation {\n /**\n * @hidden\n * conversation id of the meeting\n */\n id: string;\n }\n\n /**\n * @hidden\n * Data structure to represent an organizer object.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IOrganizer {\n /**\n * @hidden\n * organizer id of the meeting\n */\n id?: string;\n /**\n * @hidden\n * tenant id of the meeting\n */\n tenantId?: string;\n }\n\n export interface LiveStreamState {\n /**\n * indicates whether meeting is streaming\n */\n isStreaming: boolean;\n\n /**\n * error object in case there is a failure\n */\n error?: {\n /** error code from the streaming service, e.g. IngestionFailure */\n code: string;\n /** detailed error message string */\n message?: string;\n };\n }\n\n export interface IAppContentStageSharingCapabilities {\n /**\n * indicates whether app has permission to share contents to meeting stage\n */\n doesAppHaveSharePermission: boolean;\n }\n\n export interface IAppContentStageSharingState {\n /**\n * indicates whether app is currently being shared to stage\n */\n isAppSharing: boolean;\n }\n\n /**\n * Property bag for the speakingState changed event\n *\n */\n export interface ISpeakingState {\n /**\n * Indicates whether one or more participants in a meeting are speaking, or\n * if no participants are speaking\n */\n isSpeakingDetected: boolean;\n\n /**\n * error object in case there is a failure\n */\n error?: SdkError;\n }\n\n /**\n * Property bag for the meeting reaction received event\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface MeetingReactionReceivedEventData {\n /**\n * Indicates the type of meeting reaction received\n *\n * @hidden\n * Hide from docs.\n */\n meetingReactionType?: MeetingReactionType;\n /**\n * error object in case there is a failure\n *\n * @hidden\n * Hide from docs.\n */\n error?: SdkError;\n }\n\n /**\n * Interface for raiseHandState properties\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface IRaiseHandState {\n /** Indicates whether the selfParticipant's hand is raised or not\n *\n * @hidden\n * Hide from docs.\n */\n\n isHandRaised: boolean;\n }\n\n /**\n * Property bag for the raiseHandState changed event\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface RaiseHandStateChangedEventData {\n /**\n * entire raiseHandState object for the selfParticipant\n *\n * @hidden\n * Hide from docs.\n */\n raiseHandState: IRaiseHandState;\n\n /**\n * error object in case there is a failure\n *\n * @hidden\n * Hide from docs.\n */\n error?: SdkError;\n }\n\n /**\n * Interface for mic state change\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface MicState {\n /**\n * Indicates the mute status of the mic\n */\n isMicMuted: boolean;\n }\n\n /**\n * Reasons for the app's microphone state to change\n */\n enum MicStateChangeReason {\n HostInitiated,\n AppInitiated,\n AppDeclinedToChange,\n AppFailedToChange,\n }\n\n /**\n * Interface for RequestAppAudioHandling properties\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface RequestAppAudioHandlingParams {\n /**\n * Indicates whether the app is requesting to start handling audio, or if\n * it's giving audio back to the host\n */\n isAppHandlingAudio: boolean;\n /**\n * Callback for the host to tell the app to change its microphone state\n * @param micState The microphone state for the app to use\n * @returns A promise with the updated microphone state\n */\n micMuteStateChangedCallback: (micState: MicState) => Promise<MicState>;\n }\n\n /**\n * Different types of meeting reactions that can be sent/received\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export enum MeetingReactionType {\n like = 'like',\n heart = 'heart',\n laugh = 'laugh',\n surprised = 'surprised',\n applause = 'applause',\n }\n\n export enum MeetingType {\n Unknown = 'Unknown',\n Adhoc = 'Adhoc',\n Scheduled = 'Scheduled',\n Recurring = 'Recurring',\n Broadcast = 'Broadcast',\n MeetNow = 'MeetNow',\n }\n\n export enum CallType {\n OneOnOneCall = 'oneOnOneCall',\n GroupCall = 'groupCall',\n }\n\n /**\n * Allows an app to get the incoming audio speaker setting for the meeting user\n *\n * @param callback - Callback contains 2 parameters, error and result.\n *\n * error can either contain an error of type SdkError, incase of an error, or null when fetch is successful\n * result can either contain the true/false value, incase of a successful fetch or null when the fetching fails\n * result: True means incoming audio is muted and false means incoming audio is unmuted\n */\n export function getIncomingClientAudioState(\n callback: (error: SdkError | null, result: boolean | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[get incoming client audio state] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('getIncomingClientAudioState', callback);\n }\n\n /**\n * Allows an app to toggle the incoming audio speaker setting for the meeting user from mute to unmute or vice-versa\n *\n * @param callback - Callback contains 2 parameters, error and result.\n * error can either contain an error of type SdkError, incase of an error, or null when toggle is successful\n * result can either contain the true/false value, incase of a successful toggle or null when the toggling fails\n * result: True means incoming audio is muted and false means incoming audio is unmuted\n */\n export function toggleIncomingClientAudio(callback: (error: SdkError | null, result: boolean | null) => void): void {\n if (!callback) {\n throw new Error('[toggle incoming client audio] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('toggleIncomingClientAudio', callback);\n }\n\n /**\n * @hidden\n * Allows an app to get the meeting details for the meeting\n *\n * @param callback - Callback contains 2 parameters, error and meetingDetailsResponse.\n * error can either contain an error of type SdkError, incase of an error, or null when get is successful\n * result can either contain a IMeetingDetailsResponse value, in case of a successful get or null when the get fails\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getMeetingDetails(\n callback: (error: SdkError | null, meetingDetails: IMeetingDetailsResponse | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[get meeting details] Callback cannot be null');\n }\n ensureInitialized(\n runtime,\n FrameContexts.sidePanel,\n FrameContexts.meetingStage,\n FrameContexts.settings,\n FrameContexts.content,\n );\n sendMessageToParent('meeting.getMeetingDetails', callback);\n }\n\n /**\n * @hidden\n * Allows an app to get the authentication token for the anonymous or guest user in the meeting\n *\n * @param callback - Callback contains 2 parameters, error and authenticationTokenOfAnonymousUser.\n * error can either contain an error of type SdkError, incase of an error, or null when get is successful\n * authenticationTokenOfAnonymousUser can either contain a string value, incase of a successful get or null when the get fails\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getAuthenticationTokenForAnonymousUser(\n callback: (error: SdkError | null, authenticationTokenOfAnonymousUser: string | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[get Authentication Token For AnonymousUser] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('meeting.getAuthenticationTokenForAnonymousUser', callback);\n }\n\n /**\n * Allows an app to get the state of the live stream in the current meeting\n *\n * @param callback - Callback contains 2 parameters: error and liveStreamState.\n * error can either contain an error of type SdkError, in case of an error, or null when get is successful\n * liveStreamState can either contain a LiveStreamState value, or null when operation fails\n */\n export function getLiveStreamState(\n callback: (error: SdkError | null, liveStreamState: LiveStreamState | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[get live stream state] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n sendMessageToParent('meeting.getLiveStreamState', callback);\n }\n\n /**\n * Allows an app to request the live streaming be started at the given streaming url\n *\n * @remarks\n * Use getLiveStreamState or registerLiveStreamChangedHandler to get updates on the live stream state\n *\n * @param streamUrl - the url to the stream resource\n * @param streamKey - the key to the stream resource\n * @param callback - Callback contains error parameter which can be of type SdkError in case of an error, or null when operation is successful\n */\n export function requestStartLiveStreaming(\n callback: (error: SdkError | null) => void,\n streamUrl: string,\n streamKey?: string,\n ): void {\n if (!callback) {\n throw new Error('[request start live streaming] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n sendMessageToParent('meeting.requestStartLiveStreaming', [streamUrl, streamKey], callback);\n }\n\n /**\n * Allows an app to request the live streaming be stopped at the given streaming url\n *\n * @remarks\n * Use getLiveStreamState or registerLiveStreamChangedHandler to get updates on the live stream state\n *\n * @param callback - Callback contains error parameter which can be of type SdkError in case of an error, or null when operation is successful\n */\n export function requestStopLiveStreaming(callback: (error: SdkError | null) => void): void {\n if (!callback) {\n throw new Error('[request stop live streaming] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n sendMessageToParent('meeting.requestStopLiveStreaming', callback);\n }\n\n /**\n * Registers a handler for changes to the live stream.\n *\n * @remarks\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the live stream state changes\n */\n export function registerLiveStreamChangedHandler(handler: (liveStreamState: LiveStreamState) => void): void {\n if (!handler) {\n throw new Error('[register live stream changed handler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n registerHandler('meeting.liveStreamChanged', handler);\n }\n\n /**\n * Allows an app to share contents in the meeting\n *\n * @param callback - Callback contains 2 parameters, error and result.\n * error can either contain an error of type SdkError, incase of an error, or null when share is successful\n * result can either contain a true value, incase of a successful share or null when the share fails\n * @param appContentUrl - is the input URL which needs to be shared on to the stage\n */\n export function shareAppContentToStage(\n callback: (error: SdkError | null, result: boolean | null) => void,\n appContentUrl: string,\n ): void {\n if (!callback) {\n throw new Error('[share app content to stage] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('meeting.shareAppContentToStage', [appContentUrl], callback);\n }\n\n /**\n * Provides information related app's in-meeting sharing capabilities\n *\n * @param callback - Callback contains 2 parameters, error and result.\n * error can either contain an error of type SdkError (error indication), or null (non-error indication)\n * appContentStageSharingCapabilities can either contain an IAppContentStageSharingCapabilities object\n * (indication of successful retrieval), or null (indication of failed retrieval)\n */\n export function getAppContentStageSharingCapabilities(\n callback: (\n error: SdkError | null,\n appContentStageSharingCapabilities: IAppContentStageSharingCapabilities | null,\n ) => void,\n ): void {\n if (!callback) {\n throw new Error('[get app content stage sharing capabilities] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('meeting.getAppContentStageSharingCapabilities', callback);\n }\n\n /**\n * @hidden\n * Hide from docs.\n * Terminates current stage sharing session in meeting\n *\n * @param callback - Callback contains 2 parameters, error and result.\n * error can either contain an error of type SdkError (error indication), or null (non-error indication)\n * result can either contain a true boolean value (successful termination), or null (unsuccessful fetch)\n */\n export function stopSharingAppContentToStage(\n callback: (error: SdkError | null, result: boolean | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[stop sharing app content to stage] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('meeting.stopSharingAppContentToStage', callback);\n }\n\n /**\n * Provides information related to current stage sharing state for app\n *\n * @param callback - Callback contains 2 parameters, error and result.\n * error can either contain an error of type SdkError (error indication), or null (non-error indication)\n * appContentStageSharingState can either contain an IAppContentStageSharingState object\n * (indication of successful retrieval), or null (indication of failed retrieval)\n */\n export function getAppContentStageSharingState(\n callback: (error: SdkError | null, appContentStageSharingState: IAppContentStageSharingState | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[get app content stage sharing state] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('meeting.getAppContentStageSharingState', callback);\n }\n\n /**\n * Registers a handler for changes to paticipant speaking states. This API returns {@link ISpeakingState}, which will have isSpeakingDetected\n * and/or an error object. If any participant is speaking, isSpeakingDetected will be true. If no participants are speaking, isSpeakingDetected\n * will be false. Default value is false. Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler The handler to invoke when the speaking state of any participant changes (start/stop speaking).\n */\n export function registerSpeakingStateChangeHandler(handler: (speakingState: ISpeakingState) => void): void {\n if (!handler) {\n throw new Error('[registerSpeakingStateChangeHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n registerHandler('meeting.speakingStateChanged', handler);\n }\n\n /**\n * Registers a handler for changes to the selfParticipant's (current user's) raiseHandState. If the selfParticipant raises their hand, isHandRaised\n * will be true. By default and if the selfParticipant hand is lowered, isHandRaised will be false. This API will return {@link RaiseHandStateChangedEventData}\n * that will have the raiseHandState or an error object. Only one handler can be registered at a time. A subsequent registration\n * replaces an existing registration.\n *\n * @param handler The handler to invoke when the selfParticipant's (current user's) raiseHandState changes.\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function registerRaiseHandStateChangedHandler(\n handler: (eventData: RaiseHandStateChangedEventData) => void,\n ): void {\n if (!handler) {\n throw new Error('[registerRaiseHandStateChangedHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n registerHandler('meeting.raiseHandStateChanged', handler);\n }\n\n /**\n * Registers a handler for receiving meeting reactions. When the selfParticipant (current user) successfully sends a meeting reaction and it is being rendered on the UI, the meetingReactionType will be populated. Only one handler can be registered\n * at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler The handler to invoke when the selfParticipant (current user) successfully sends a meeting reaction\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function registerMeetingReactionReceivedHandler(\n handler: (eventData: MeetingReactionReceivedEventData) => void,\n ): void {\n if (!handler) {\n throw new Error('[registerMeetingReactionReceivedHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n registerHandler('meeting.meetingReactionReceived', handler);\n }\n\n /**\n * Nested namespace for functions to control behavior of the app share button\n *\n * @beta\n */\n export namespace appShareButton {\n /**\n * Property bag for the setVisibilityInfo\n *\n * @beta\n */\n export interface ShareInformation {\n /**\n * boolean flag to set show or hide app share button\n */\n isVisible: boolean;\n\n /**\n * optional string contentUrl, which will override contentUrl coming from Manifest\n */\n contentUrl?: string;\n }\n /**\n * By default app share button will be hidden and this API will govern the visibility of it.\n *\n * This function can be used to hide/show app share button in meeting,\n * along with contentUrl (overrides contentUrl populated in app manifest)\n * @throws standard Invalid Url error\n * @param shareInformation has two elements, one isVisible boolean flag and another\n * optional string contentUrl, which will override contentUrl coming from Manifest\n * @beta\n */\n export function setOptions(shareInformation: ShareInformation): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (shareInformation.contentUrl) {\n new URL(shareInformation.contentUrl);\n }\n sendMessageToParent('meeting.appShareButton.setOptions', [shareInformation]);\n }\n }\n\n /**\n * Have the app handle audio (mic & speaker) and turn off host audio.\n *\n * When {@link RequestAppAudioHandlingParams.isAppHandlingAudio} is true, the host will switch to audioless mode\n * Registers for mic mute status change events, which are events that the app can receive from the host asking the app to\n * mute or unmute the microphone.\n *\n * When {@link RequestAppAudioHandlingParams.isAppHandlingAudio} is false, the host will switch out of audioless mode\n * Unregisters the mic mute status change events so the app will no longer receive these events\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n * @throws Error if {@link RequestAppAudioHandlingParams.micMuteStateChangedCallback} parameter is not defined\n *\n * @param requestAppAudioHandlingParams - {@link RequestAppAudioHandlingParams} object with values for the audio switchover\n * @param callback - Callback with one parameter, the result\n * can either be true (the host is now in audioless mode) or false (the host is not in audioless mode)\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function requestAppAudioHandling(\n requestAppAudioHandlingParams: RequestAppAudioHandlingParams,\n callback: (isHostAudioless: boolean) => void,\n ): void {\n if (!callback) {\n throw new Error('[requestAppAudioHandling] Callback response cannot be null');\n }\n if (!requestAppAudioHandlingParams.micMuteStateChangedCallback) {\n throw new Error('[requestAppAudioHandling] Callback Mic mute state handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n\n if (requestAppAudioHandlingParams.isAppHandlingAudio) {\n startAppAudioHandling(requestAppAudioHandlingParams, callback);\n } else {\n stopAppAudioHandling(requestAppAudioHandlingParams, callback);\n }\n }\n\n function startAppAudioHandling(\n requestAppAudioHandlingParams: RequestAppAudioHandlingParams,\n callback: (isHostAudioless: boolean) => void,\n ): void {\n const callbackInternalRequest = (error: SdkError | null, isHostAudioless: boolean | null): void => {\n if (error && isHostAudioless != null) {\n throw new Error('[requestAppAudioHandling] Callback response - both parameters cannot be set');\n }\n if (error) {\n throw new Error(`[requestAppAudioHandling] Callback response - SDK error ${error.errorCode} ${error.message}`);\n }\n if (typeof isHostAudioless !== 'boolean') {\n throw new Error('[requestAppAudioHandling] Callback response - isHostAudioless must be a boolean');\n }\n\n const micStateChangedCallback = async (micState: MicState): Promise<void> => {\n try {\n const newMicState = await requestAppAudioHandlingParams.micMuteStateChangedCallback(micState);\n\n const micStateDidUpdate = newMicState.isMicMuted === micState.isMicMuted;\n setMicStateWithReason(\n newMicState,\n micStateDidUpdate ? MicStateChangeReason.HostInitiated : MicStateChangeReason.AppDeclinedToChange,\n );\n } catch {\n setMicStateWithReason(micState, MicStateChangeReason.AppFailedToChange);\n }\n };\n registerHandler('meeting.micStateChanged', micStateChangedCallback);\n\n callback(isHostAudioless);\n };\n sendMessageToParent(\n 'meeting.requestAppAudioHandling',\n [requestAppAudioHandlingParams.isAppHandlingAudio],\n callbackInternalRequest,\n );\n }\n\n function stopAppAudioHandling(\n requestAppAudioHandlingParams: RequestAppAudioHandlingParams,\n callback: (isHostAudioless: boolean) => void,\n ): void {\n const callbackInternalStop = (error: SdkError | null, isHostAudioless: boolean | null): void => {\n if (error && isHostAudioless != null) {\n throw new Error('[requestAppAudioHandling] Callback response - both parameters cannot be set');\n }\n if (error) {\n throw new Error(`[requestAppAudioHandling] Callback response - SDK error ${error.errorCode} ${error.message}`);\n }\n if (typeof isHostAudioless !== 'boolean') {\n throw new Error('[requestAppAudioHandling] Callback response - isHostAudioless must be a boolean');\n }\n\n if (doesHandlerExist('meeting.micStateChanged')) {\n removeHandler('meeting.micStateChanged');\n }\n\n callback(isHostAudioless);\n };\n\n sendMessageToParent(\n 'meeting.requestAppAudioHandling',\n [requestAppAudioHandlingParams.isAppHandlingAudio],\n callbackInternalStop,\n );\n }\n\n /**\n * Notifies the host that the microphone state has changed in the app.\n * @param micState - The new state that the microphone is in\n * isMicMuted - Boolean to indicate the current mute status of the mic.\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function updateMicState(micState: MicState): void {\n setMicStateWithReason(micState, MicStateChangeReason.AppInitiated);\n }\n\n function setMicStateWithReason(micState: MicState, reason: MicStateChangeReason): void {\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('meeting.updateMicState', [micState, reason]);\n }\n}\n","import { sendAndHandleSdkError } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise, InputFunction } from '../internal/utils';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\nexport namespace monetization {\n /**\n * @hidden\n * Data structure to represent a subscription plan.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface PlanInfo {\n /**\n * @hidden\n * plan id\n */\n planId: string;\n /**\n * @hidden\n * term of the plan\n */\n term: string;\n }\n\n /**\n * @hidden\n * Open dialog to start user's purchase experience\n *\n * @param planInfo optional parameter. It contains info of the subscription plan pushed to users.\n * error can either contain an error of type SdkError, incase of an error, or null when get is successful\n * @returns Promise that will be resolved when the operation has completed or rejected with SdkError value\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openPurchaseExperience(planInfo?: PlanInfo): Promise<void>;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link monetization.openPurchaseExperience monetization.openPurchaseExperience(planInfo?: PlanInfo): Promise\\<void\\>} instead.\n *\n * @hidden\n * Open dialog to start user's purchase experience\n *\n * @param callback Callback contains 1 parameters, error.\n * @param planInfo optional parameter. It contains info of the subscription plan pushed to users.\n * error can either contain an error of type SdkError, incase of an error, or null when get is successful\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openPurchaseExperience(callback: (error: SdkError | null) => void, planInfo?: PlanInfo): void;\n /**\n * @hidden\n * This function is the overloaded implementation of openPurchaseExperience.\n * Since the method signatures of the v1 callback and v2 promise differ in the type of the first parameter,\n * we need to do an extra check to know the typeof the @param1 to set the proper arguments of the utility function.\n * @param param1\n * @param param2\n * @returns Promise that will be resolved when the operation has completed or rejected with SdkError value\n */\n export function openPurchaseExperience(\n param1: ((error: SdkError | null) => void) | PlanInfo | undefined,\n param2?: PlanInfo,\n ): Promise<void> {\n let callback: ((error: SdkError | null) => void) | undefined;\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n let planInfo: PlanInfo;\n if (typeof param1 === 'function') {\n callback = param1;\n planInfo = param2;\n } else {\n planInfo = param1;\n }\n const wrappedFunction: InputFunction<void> = () => {\n return new Promise<void>((resolve) => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndHandleSdkError('monetization.openPurchaseExperience', planInfo));\n });\n };\n\n ensureInitialized(runtime, FrameContexts.content);\n return callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise(wrappedFunction, callback);\n }\n\n /**\n * @hidden\n *\n * Checks if the monetization capability is supported by the host\n * @returns boolean to represent whether the monetization capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.monetization ? true : false;\n }\n}\n","import { sendAndHandleStatusAndReason as sendAndHandleError } from '../internal/communication';\nimport { createTeamsDeepLinkForCalendar } from '../internal/deepLinkUtilities';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\nexport namespace calendar {\n export function openCalendarItem(openCalendarItemParams: OpenCalendarItemParams): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n\n if (!openCalendarItemParams.itemId || !openCalendarItemParams.itemId.trim()) {\n throw new Error('Must supply an itemId to openCalendarItem');\n }\n\n resolve(sendAndHandleError('calendar.openCalendarItem', openCalendarItemParams));\n });\n }\n export function composeMeeting(composeMeetingParams: ComposeMeetingParams): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndHandleError(\n 'executeDeepLink',\n createTeamsDeepLinkForCalendar(\n composeMeetingParams.attendees,\n composeMeetingParams.startTime,\n composeMeetingParams.endTime,\n composeMeetingParams.subject,\n composeMeetingParams.content,\n ),\n ),\n );\n } else {\n resolve(sendAndHandleError('calendar.composeMeeting', composeMeetingParams));\n }\n });\n }\n\n /**\n * Checks if the calendar capability is supported by the host\n * @returns boolean to represent whether the calendar capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.calendar ? true : false;\n }\n\n export interface OpenCalendarItemParams {\n itemId: string;\n }\n\n export interface ComposeMeetingParams {\n attendees?: string[];\n startTime?: string;\n endTime?: string;\n subject?: string;\n content?: string;\n }\n}\n","import { sendAndHandleStatusAndReason as sendAndHandleError } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\nexport namespace mail {\n export function openMailItem(openMailItemParams: OpenMailItemParams): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n\n if (!openMailItemParams.itemId || !openMailItemParams.itemId.trim()) {\n throw new Error('Must supply an itemId to openMailItem');\n }\n\n resolve(sendAndHandleError('mail.openMailItem', openMailItemParams));\n });\n }\n\n export function composeMail(composeMailParams: ComposeMailParams): Promise<void> {\n return new Promise<void>((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n\n resolve(sendAndHandleError('mail.composeMail', composeMailParams));\n });\n }\n\n /**\n * Checks if the mail capability is supported by the host\n * @returns boolean to represent whether the mail capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.mail ? true : false;\n }\n\n export interface OpenMailItemParams {\n itemId: string;\n }\n\n export enum ComposeMailType {\n New = 'new',\n Reply = 'reply',\n ReplyAll = 'replyAll',\n Forward = 'forward',\n }\n\n /**\n * Base of a discriminated union between compose scenarios.\n */\n interface ComposeMailBase<T extends ComposeMailType> {\n type: T;\n }\n /**\n * Interfaces for each type.\n */\n export interface ComposeNewParams extends ComposeMailBase<ComposeMailType.New> {\n toRecipients?: string[];\n ccRecipients?: string[];\n bccRecipients?: string[];\n subject?: string;\n message?: string;\n }\n export interface ComposeReplyOrForwardParams<T extends ComposeMailType> extends ComposeMailBase<T> {\n itemid: string;\n }\n\n export type ComposeMailParams =\n | ComposeNewParams\n | ComposeReplyOrForwardParams<ComposeMailType.Reply>\n | ComposeReplyOrForwardParams<ComposeMailType.ReplyAll>\n | ComposeReplyOrForwardParams<ComposeMailType.Forward>;\n}\n","import { sendAndHandleSdkError as sendAndHandleError } from '../internal/communication';\nimport { peoplePickerRequiredVersion } from '../internal/constants';\nimport { ensureInitialized, isCurrentSDKVersionAtLeast } from '../internal/internalAPIs';\nimport { validatePeoplePickerInput } from '../internal/mediaUtil';\nimport { callCallbackWithErrorOrResultFromPromiseAndReturnPromise } from '../internal/utils';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { ErrorCode, SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\nexport namespace people {\n /**\n * Launches a people picker and allows the user to select one or more people from the list\n * If the app is added to personal app scope the people picker launched is org wide and if the app is added to a chat/channel, people picker launched is also limited to the members of chat/channel\n \n * @param callback - Returns list of JSON object of type PeoplePickerResult which consists of AAD IDs, display names and emails of the selected users\n * @param peoplePickerInputs - Input parameters to launch customized people picker\n * @returns Promise that will be fulfilled when the operation has completed\n */\n export function selectPeople(peoplePickerInputs?: PeoplePickerInputs): Promise<PeoplePickerResult[]>;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link people.selectPeople people.selectPeople(peoplePickerInputs?: PeoplePickerInputs): Promise\\<PeoplePickerResult[]\\>} instead.\n *\n * Launches a people picker and allows the user to select one or more people from the list\n * If the app is added to personal app scope the people picker launched is org wide and if the app is added to a chat/channel, people picker launched is also limited to the members of chat/channel\n \n * @param callback - Returns list of JSON object of type PeoplePickerResult which consists of AAD IDs, display names and emails of the selected users\n * @param peoplePickerInputs - Input parameters to launch customized people picker\n */\n export function selectPeople(\n callback: (error: SdkError, people: PeoplePickerResult[]) => void,\n peoplePickerInputs?: PeoplePickerInputs,\n ): void;\n /**\n * @hidden\n * This function is the overloaded implementation of selectPeople.\n * Since the method signatures of the v1 callback and v2 promise differ in the type of the first parameter,\n * we need to do an extra check to know the typeof the @param1 to set the proper arguments of the utility function.\n * @param param1\n * @param param2\n * @returns Promise of Array of PeoplePickerResult objects.\n */\n export function selectPeople(\n param1: PeoplePickerInputs | ((error: SdkError, people: PeoplePickerResult[]) => void) | undefined,\n param2?: PeoplePickerInputs,\n ): Promise<PeoplePickerResult[]> {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task, FrameContexts.settings);\n\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n let callback: (error: SdkError, people: PeoplePickerResult[]) => void;\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n let peoplePickerInputs: PeoplePickerInputs;\n\n if (typeof param1 === 'function') {\n [callback, peoplePickerInputs] = [param1, param2];\n } else {\n peoplePickerInputs = param1;\n }\n\n return callCallbackWithErrorOrResultFromPromiseAndReturnPromise<PeoplePickerResult[]>(\n selectPeopleHelper,\n callback,\n peoplePickerInputs,\n );\n }\n\n function selectPeopleHelper(peoplePickerInputs?: PeoplePickerInputs): Promise<PeoplePickerResult[]> {\n return new Promise<PeoplePickerResult[]>((resolve) => {\n if (!isCurrentSDKVersionAtLeast(peoplePickerRequiredVersion)) {\n throw { errorCode: ErrorCode.OLD_PLATFORM };\n }\n\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n if (!validatePeoplePickerInput(peoplePickerInputs)) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(sendAndHandleError('people.selectPeople', peoplePickerInputs));\n });\n }\n\n /**\n * Input parameter supplied to the People Picker API\n */\n export interface PeoplePickerInputs {\n /**\n * Optional; Set title for the people picker\n * Default value is \"Select people\" for multiselect and \"Select a person\" for single select\n */\n title?: string;\n\n /**\n * Optional; AAD ids of the users to be pre-populated in the search box of people picker control\n * If single select is enabled this value, only the first user in the list will be pre-populated\n * Default value is null\n */\n setSelected?: string[];\n\n /**\n * Optional; launches the people picker in org wide scope even if the app is added to a chat or channel\n * Default value is false\n */\n openOrgWideSearchInChatOrChannel?: boolean;\n\n /**\n * Optional; launches the people picker for which only 1 person can be selected\n * Default value is false\n */\n singleSelect?: boolean;\n }\n\n /**\n * Output user object of people picker API\n */\n export interface PeoplePickerResult {\n /**\n * user object Id (also known as aad id) of the selected user\n */\n objectId: string;\n\n /**\n * Optional; display name of the selected user\n */\n displayName?: string;\n\n /**\n * Optional; email of the selected user\n */\n email?: string;\n }\n\n /**\n * Checks if the people capability is supported by the host\n * @returns boolean to represent whether the people capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.people ? true : false;\n }\n}\n","import { sendAndHandleSdkError as sendAndHandleError } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { validateShowProfileRequest } from '../internal/profileUtil';\nimport { FrameContexts } from './constants';\nimport { ErrorCode } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * Namespace for profile related APIs.\n *\n * @beta\n */\nexport namespace profile {\n /**\n * Opens a profile card at a specified position to show profile information about a persona.\n * @param showProfileRequest The parameters to position the card and identify the target user.\n * @returns Promise that will be fulfilled when the operation has completed\n *\n * @beta\n */\n export function showProfile(showProfileRequest: ShowProfileRequest): Promise<void> {\n ensureInitialized(runtime, FrameContexts.content);\n\n return new Promise<void>((resolve) => {\n const [isValid, message] = validateShowProfileRequest(showProfileRequest);\n if (!isValid) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS, message };\n }\n\n // Convert the app provided parameters to the form suitable for postMessage.\n const requestInternal: ShowProfileRequestInternal = {\n modality: showProfileRequest.modality,\n persona: showProfileRequest.persona,\n triggerType: showProfileRequest.triggerType,\n targetRectangle: {\n x: showProfileRequest.targetElementBoundingRect.x,\n y: showProfileRequest.targetElementBoundingRect.y,\n width: showProfileRequest.targetElementBoundingRect.width,\n height: showProfileRequest.targetElementBoundingRect.height,\n },\n };\n\n resolve(sendAndHandleError('profile.showProfile', requestInternal));\n });\n }\n\n /**\n * The type of modalities that are supported when showing a profile.\n * Can be provided as an optional hint with the request and will be\n * respected if the hosting M365 application supports it.\n *\n * @beta\n */\n export type Modality = 'Card' | 'Expanded';\n\n /**\n * The type of the profile trigger.\n * - MouseHover: The user hovered a target.\n * - Press: The target was pressed with either a mouse click or keyboard key press.\n * - AppRequest: The show profile request is happening programmatically, without direct user interaction.\n *\n * @beta\n */\n export type TriggerType = 'MouseHover' | 'Press' | 'AppRequest';\n\n /**\n * The set of identifiers that are supported for resolving the persona.\n *\n * At least one is required, and if multiple are provided then only the highest\n * priority one will be used (AadObjectId > Upn > Smtp).\n *\n * @beta\n */\n export type PersonaIdentifiers = {\n /**\n * The object id in Azure Active Directory.\n *\n * This id is guaranteed to be unique for an object within a tenant,\n * and so if provided will lead to a more performant lookup. It can\n * be resolved via MS Graph (see https://learn.microsoft.com/graph/api/resources/users\n * for examples).\n */\n readonly AadObjectId?: string;\n\n /**\n * The primary SMTP address.\n */\n readonly Smtp?: string;\n\n /**\n * The user principle name.\n */\n readonly Upn?: string;\n };\n\n /**\n * The persona to show the profile for.\n *\n * @beta\n */\n export interface Persona {\n /**\n * The set of identifiers that are supported for resolving the persona.\n */\n identifiers: PersonaIdentifiers;\n\n /**\n * Optional display name override. If not specified the user's display name will be resolved normally.\n */\n displayName?: string;\n }\n\n /**\n * Input parameters provided to the showProfile API.\n *\n * @beta\n */\n export interface ShowProfileRequest {\n /**\n * An optional hint to the hosting M365 application about which modality of the profile you want to show.\n */\n modality?: Modality;\n\n /**\n * The information about the persona to show the profile for.\n */\n persona: Persona;\n\n /**\n * The bounding rectangle of the target.\n */\n targetElementBoundingRect: DOMRect;\n\n /**\n * Specifies which user interaction was used to trigger the API call.\n */\n triggerType: TriggerType;\n }\n\n /**\n * Checks if the profile capability is supported by the host\n * @returns boolean to represent whether the profile capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.profile ? true : false;\n }\n}\n\n/**\n * Internal representation of a DOMRect suitable for sending via postMessage.\n */\nexport type Rectangle = {\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\n/**\n * @beta\n * @hidden\n * An internal representation of the showProfile parameters suitable for sending via postMessage.\n * The hub expects to receive an object of this type.\n */\nexport interface ShowProfileRequestInternal {\n modality?: profile.Modality;\n persona: profile.Persona;\n targetRectangle: Rectangle;\n triggerType: profile.TriggerType;\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { registerHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * Namespace to video extensibility of the SDK\n * @beta\n */\nexport namespace video {\n /**\n * Represents a video frame\n * @beta\n */\n export interface VideoFrame {\n /**\n * Video frame width\n */\n width: number;\n /**\n * Video frame height\n */\n height: number;\n /**\n * Video frame buffer\n */\n data: Uint8ClampedArray;\n /**\n * NV12 luma stride, valid only when video frame format is NV12\n */\n lumaStride?: number;\n /**\n * NV12 chroma stride, valid only when video frame format is NV12\n */\n chromaStride?: number;\n /**\n * RGB stride, valid only when video frame format is RGB\n */\n stride?: number;\n /**\n * The time stamp of the current video frame\n */\n timestamp?: number;\n }\n\n /**\n * Video frame format enum, currently only support NV12\n * @beta\n */\n export enum VideoFrameFormat {\n NV12,\n }\n\n /**\n * Video frame configuration supplied to the host to customize the generated video frame parameters, like format\n * @beta\n */\n export interface VideoFrameConfig {\n /**\n * Video format\n */\n format: VideoFrameFormat;\n }\n\n /**\n * Video effect change type enum\n * @beta\n */\n export enum EffectChangeType {\n /**\n * Current video effect changed\n */\n EffectChanged,\n /**\n * Disable the video effect\n */\n EffectDisabled,\n }\n\n /**\n * Video frame call back function definition\n * @beta\n */\n export type VideoFrameCallback = (\n frame: VideoFrame,\n notifyVideoFrameProcessed: () => void,\n notifyError: (errorMessage: string) => void,\n ) => void;\n\n /**\n * Predefined failure reasons for preparing the selected video effect\n * @beta\n */\n export enum EffectFailureReason {\n /**\n * A wrong effect id is provide.\n * Use this reason when the effect id is not found or empty, this may indicate a mismatch between the app and its manifest or a bug of the host.\n */\n InvalidEffectId = 'InvalidEffectId',\n /**\n * The effect can't be initialized\n */\n InitializationFailure = 'InitializationFailure',\n }\n\n /**\n * Video effect change call back function definition\n * Return a Promise which will be resolved when the effect is prepared, or throw an {@link EffectFailureReason} on error.\n * @beta\n */\n export type VideoEffectCallback = (effectId: string | undefined) => Promise<void>;\n\n /**\n * Register to read the video frames in Permissions section\n * @beta\n * @param frameCallback - The callback to invoke when registerForVideoFrame has completed\n * @param config - VideoFrameConfig to customize generated video frame parameters\n */\n export function registerForVideoFrame(frameCallback: VideoFrameCallback, config: VideoFrameConfig): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n registerHandler(\n 'video.newVideoFrame',\n (videoFrame: VideoFrame) => {\n if (videoFrame) {\n const timestamp = videoFrame.timestamp;\n frameCallback(\n videoFrame,\n () => {\n notifyVideoFrameProcessed(timestamp);\n },\n notifyError,\n );\n }\n },\n false,\n );\n sendMessageToParent('video.registerForVideoFrame', [config]);\n }\n\n /**\n * Video extension should call this to notify host that the current selected effect parameter changed.\n * If it's pre-meeting, host will call videoEffectCallback immediately then use the videoEffect.\n * If it's the in-meeting scenario, we will call videoEffectCallback when apply button clicked.\n * @beta\n * @param effectChangeType - the effect change type.\n * @param effectId - Newly selected effect id.\n */\n export function notifySelectedVideoEffectChanged(\n effectChangeType: EffectChangeType,\n effectId: string | undefined,\n ): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('video.videoEffectChanged', [effectChangeType, effectId]);\n }\n\n /**\n * Register a callback to be notified when a new video effect is applied.\n * @beta\n * @param callback - Function to be called when new video effect is applied.\n */\n export function registerForVideoEffect(callback: VideoEffectCallback): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n const effectParameterChangeHandler = (effectId: string | undefined): void => {\n callback(effectId)\n .then(() => {\n sendMessageToParent('video.videoEffectReadiness', [true, effectId]);\n })\n .catch((reason) => {\n const validReason = reason in EffectFailureReason ? reason : EffectFailureReason.InitializationFailure;\n sendMessageToParent('video.videoEffectReadiness', [false, effectId, validReason]);\n });\n };\n\n registerHandler('video.effectParameterChange', effectParameterChangeHandler, false);\n sendMessageToParent('video.registerForVideoEffect');\n }\n\n /**\n * Sending notification to host finished the video frame processing, now host can render this video frame\n * or pass the video frame to next one in video pipeline\n * @beta\n */\n function notifyVideoFrameProcessed(timestamp?: number): void {\n sendMessageToParent('video.videoFrameProcessed', [timestamp]);\n }\n\n /**\n * Sending error notification to host\n * @beta\n * @param errorMessage - The error message that will be sent to the host\n */\n function notifyError(errorMessage: string): void {\n sendMessageToParent('video.notifyError', [errorMessage]);\n }\n\n /**\n * Checks if video capability is supported by the host\n * @beta\n * @returns boolean to represent whether the video capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.video ? true : false;\n }\n} //end of video namespace\n","import { sendMessageToParent } from '../internal/communication';\nimport { registerHandler, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * Allows your application to interact with the host M365 application's search box.\n * By integrating your application with the host's search box, users can search\n * your app using the same search box they use elsewhere in Teams, Outlook, or Office.\n *\n * This functionality is in Beta.\n * @beta\n */\nexport namespace search {\n const onChangeHandlerName = 'search.queryChange';\n const onClosedHandlerName = 'search.queryClose';\n const onExecutedHandlerName = 'search.queryExecute';\n\n /**\n * This interface contains information pertaining to the contents of the host M365 application's search box\n *\n * @beta\n */\n export interface SearchQuery {\n /** The current search term in the host search experience */\n searchTerm: string;\n\n /** Timestamp sequence value to ensure messages are processed in correct order / combine them. */\n timestamp: number;\n }\n\n /**\n * This type will store the SearchQuery and allow other logic to be made inside the handler.\n *\n * @beta\n */\n export type SearchQueryHandler = (query: SearchQuery) => void;\n\n /**\n * Allows the caller to register for various events fired by the host search experience.\n * Calling this function indicates that your application intends to plug into the host's search box and handle search events,\n * when the user is actively using your page/tab.\n * \n * The host may visually update its search box, e.g. with the name or icon of your application.\n * \n * Your application should *not* re-render inside of these callbacks, there may be a large number\n * of onChangeHandler calls if the user is typing rapidly in the search box.\n *\n * @param onClosedHandler - This handler will be called when the user exits or cancels their search.\n * Should be used to return your application to its most recent, non-search state. The value of {@link SearchQuery.searchTerm} \n * will be whatever the last query was before ending search. \n * \n * @param onExecuteHandler - The handler will be called when the user executes their \n * search (by pressing Enter for example). Should be used to display the full list of search results. \n * The value of {@link SearchQuery.searchTerm} is the complete query the user entered in the search box.\n *\n * @param onChangeHandler - This optional handler will be called when the user first starts using the\n * host's search box and as the user types their query. Can be used to put your application into a \n * word-wheeling state or to display suggestions as the user is typing. \n * \n * This handler will be called with an empty {@link SearchQuery.searchTerm} when search is beginning, and subsequently,\n * with the current contents of the search box.\n * @example\n * ``` ts\n * search.registerHandlers(\n query => {\n console.log('Update your application to handle the search experience being closed. Last query: ${query.searchTerm}');\n },\n query => {\n console.log(`Update your application to handle an executed search result: ${query.searchTerm}`);\n },\n query => {\n console.log(`Update your application with the changed search query: ${query.searchTerm}`);\n },\n );\n * ```\n *\n * @beta\n */\n export function registerHandlers(\n onClosedHandler: SearchQueryHandler,\n onExecuteHandler: SearchQueryHandler,\n onChangeHandler?: SearchQueryHandler,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n registerHandler(onClosedHandlerName, onClosedHandler);\n registerHandler(onExecutedHandlerName, onExecuteHandler);\n if (onChangeHandler) {\n registerHandler(onChangeHandlerName, onChangeHandler);\n }\n }\n\n /**\n * Allows the caller to unregister for all events fired by the host search experience. Calling\n * this function will cause your app to stop appearing in the set of search scopes in the hosts\n *\n * @beta\n */\n export function unregisterHandlers(): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n // This should let the host know to stop making the app scope show up in the search experience\n // Can also be used to clean up handlers on the host if desired\n sendMessageToParent('search.unregister');\n removeHandler(onChangeHandlerName);\n removeHandler(onClosedHandlerName);\n removeHandler(onExecutedHandlerName);\n }\n\n /**\n * Checks if search capability is supported by the host\n * @returns boolean to represent whether the search capability is supported\n *\n * @throws Error if {@link app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.search ? true : false;\n }\n}\n","import { sendAndHandleSdkError } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { callCallbackWithSdkErrorFromPromiseAndReturnPromise, InputFunction } from '../internal/utils';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { ErrorCode, SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * Namespace to open a share dialog for web content.\n * For more info, see [Share to Teams from personal app or tab](https://learn.microsoft.com/microsoftteams/platform/concepts/build-and-test/share-to-teams-from-personal-app-or-tab)\n */\nexport namespace sharing {\n export const SharingAPIMessages = {\n shareWebContent: 'sharing.shareWebContent',\n };\n\n // More types can be added as we expand share capability\n type ContentType = 'URL';\n\n interface IBaseSharedContent {\n type: ContentType;\n }\n\n // More types can be added as we expand share capability\n export type IShareRequestContentType = IURLContent;\n\n export interface IShareRequest<T> {\n content: T[];\n }\n\n export interface IURLContent extends IBaseSharedContent {\n type: 'URL';\n\n /**\n * Required URL\n */\n url: string;\n\n /**\n * Default initial message text\n */\n message?: string;\n\n /**\n * Show URL preview, defaults to true\n */\n preview?: boolean;\n }\n\n /**\n * Feature is under development\n * Opens a share dialog for web content\n *\n * @param shareWebContentRequest - web content info\n * @returns Promise that will be fulfilled when the operation has completed\n */\n export function shareWebContent(shareWebContentRequest: IShareRequest<IShareRequestContentType>): Promise<void>;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link sharing.shareWebContent sharing.shareWebContent(shareWebContentRequest: IShareRequest\\<IShareRequestContentType\\>): Promise\\<void\\>} instead.\n *\n * Feature is under development\n * Opens a share dialog for web content\n *\n * @param shareWebContentRequest - web content info\n * @param callback - optional callback\n */\n export function shareWebContent(\n shareWebContentRequest: IShareRequest<IShareRequestContentType>,\n callback: (err?: SdkError) => void,\n ): void;\n export function shareWebContent(\n shareWebContentRequest: IShareRequest<IShareRequestContentType>,\n callback?: (err?: SdkError) => void,\n ): Promise<void> {\n // validate the given input (synchronous check)\n try {\n validateNonEmptyContent(shareWebContentRequest);\n validateTypeConsistency(shareWebContentRequest);\n validateContentForSupportedTypes(shareWebContentRequest);\n } catch (err) {\n //return the error via callback(v1) or rejected promise(v2)\n const wrappedFunction: InputFunction<void> = () => Promise.reject(err);\n return callCallbackWithSdkErrorFromPromiseAndReturnPromise(wrappedFunction, callback);\n }\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n return callCallbackWithSdkErrorFromPromiseAndReturnPromise(shareWebContentHelper, callback, shareWebContentRequest);\n }\n\n function shareWebContentHelper(shareWebContentRequest: IShareRequest<IShareRequestContentType>): Promise<void> {\n return new Promise<void>((resolve) => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndHandleSdkError(SharingAPIMessages.shareWebContent, shareWebContentRequest));\n });\n }\n\n /**\n * Functions for validating the shareRequest input parameter\n */\n function validateNonEmptyContent(shareRequest: IShareRequest<IShareRequestContentType>): void {\n if (!(shareRequest && shareRequest.content && shareRequest.content.length)) {\n const err: SdkError = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'Shared content is missing',\n };\n throw err;\n }\n }\n\n function validateTypeConsistency(shareRequest: IShareRequest<IShareRequestContentType>): void {\n let err: SdkError | undefined;\n if (shareRequest.content.some((item) => !item.type)) {\n err = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'Shared content type cannot be undefined',\n };\n throw err;\n }\n if (shareRequest.content.some((item) => item.type !== shareRequest.content[0].type)) {\n err = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'Shared content must be of the same type',\n };\n throw err;\n }\n }\n\n function validateContentForSupportedTypes(shareRequest: IShareRequest<IShareRequestContentType>): void {\n let err: SdkError | undefined;\n if (shareRequest.content[0].type === 'URL') {\n if (shareRequest.content.some((item) => !item.url)) {\n err = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'URLs are required for URL content types',\n };\n throw err;\n }\n } else {\n err = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'Content type is unsupported',\n };\n throw err;\n }\n }\n\n /**\n * Checks if the sharing capability is supported by the host\n * @returns boolean to represent whether the sharing capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.sharing ? true : false;\n }\n}\n","import { sendAndHandleSdkError } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * Namespace to interact with the stage view specific part of the SDK.\n *\n * @beta\n */\nexport namespace stageView {\n /**\n * Parameters to open a stage view.\n */\n export interface StageViewParams {\n /**\n * The ID of the Teams application to be opened.\n */\n appId: string;\n\n /**\n * The URL of the content to display.\n */\n contentUrl: string;\n\n /**\n * The chat or channel ID.\n */\n threadId: string;\n\n /**\n * The title to give the stage view.\n */\n title: string;\n\n /**\n * The Teams application website URL.\n */\n websiteUrl?: string;\n\n /**\n * The entity ID of the Teams application content being opened.\n */\n entityId?: string;\n }\n\n /**\n * @hidden\n * Feature is under development\n *\n * Opens a stage view to display a Teams application\n * @beta\n * @param stageViewParams - The parameters to pass into the stage view.\n * @returns Promise that resolves or rejects with an error once the stage view is closed.\n */\n export function open(stageViewParams: StageViewParams): Promise<void> {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (!stageViewParams) {\n throw new Error('[stageView.open] Stage view params cannot be null');\n }\n\n resolve(sendAndHandleSdkError('stageView.open', stageViewParams));\n });\n }\n\n /**\n * Checks if stageView capability is supported by the host\n * @beta\n * @returns boolean to represent whether the stageView capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.stageView ? true : false;\n }\n}\n","import { ensureInitialized } from '../internal/internalAPIs';\nimport { runtime } from './runtime';\n\n/**\n * Contains functionality to allow web apps to store data in webview cache\n *\n * @beta\n */\nexport namespace webStorage {\n /**\n * Checks if web storage gets cleared when a user logs out from host client\n *\n * @returns true is web storage gets cleared on logout and false if it does not\n *\n * @beta\n */\n export function isWebStorageClearedOnUserLogOut(): boolean {\n ensureInitialized(runtime);\n return isSupported();\n }\n\n /**\n * Checks if webStorage capability is supported by the host\n * @returns boolean to represent whether the webStorage capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.webStorage ? true : false;\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { sendAndHandleSdkError as sendAndHandleError } from '../internal/communication';\nimport { createTeamsDeepLinkForCall } from '../internal/deepLinkUtilities';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\nexport namespace call {\n export enum CallModalities {\n Unknown = 'unknown',\n Audio = 'audio',\n Video = 'video',\n VideoBasedScreenSharing = 'videoBasedScreenSharing',\n Data = 'data',\n }\n\n export interface StartCallParams {\n /**\n * Comma-separated list of user IDs representing the participants of the call.\n *\n * @remarks\n * Currently the User ID field supports the Azure AD UserPrincipalName,\n * typically an email address, or in case of a PSTN call, it supports a pstn\n * mri 4:<phonenumber>.\n */\n targets: string[];\n /**\n * List of modalities for the call. Defaults to [“audioâ€].\n */\n requestedModalities?: CallModalities[];\n /**\n * An optional parameter that informs about the source of the deep link\n */\n source?: string;\n }\n\n /**\n * Starts a call with other users\n *\n * @param startCallParams - Parameters for the call\n * @returns If the call is accepted\n */\n export function startCall(startCallParams: StartCallParams): Promise<boolean> {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndHandleError(\n 'executeDeepLink',\n createTeamsDeepLinkForCall(\n startCallParams.targets,\n startCallParams.requestedModalities?.includes(CallModalities.Video),\n startCallParams.source,\n ),\n ),\n );\n } else {\n return sendMessageToParent('call.startCall', [startCallParams], resolve);\n }\n });\n }\n\n /**\n * Checks if the call capability is supported by the host\n * @returns boolean to represent whether the call capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.call ? true : false;\n }\n}\n","import { app } from './app';\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app} namespace instead.\n */\nexport namespace appInitialization {\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.Messages} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export import Messages = app.Messages;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.FailedReason} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export import FailedReason = app.FailedReason;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ExpectedFailureReason} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export import ExpectedFailureReason = app.ExpectedFailureReason;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.IFailedRequest} instead.\n */\n export import IFailedRequest = app.IFailedRequest;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.IExpectedFailureRequest} instead.\n */\n export import IExpectedFailureRequest = app.IExpectedFailureRequest;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.notifyAppLoaded app.notifyAppLoaded(): void} instead.\n *\n * Notifies the frame that app has loaded and to hide the loading indicator if one is shown.\n */\n export function notifyAppLoaded(): void {\n app.notifyAppLoaded();\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.notifySuccess app.notifySuccess(): void} instead.\n *\n * Notifies the frame that app initialization is successful and is ready for user interaction.\n */\n export function notifySuccess(): void {\n app.notifySuccess();\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.notifyFailure app.notifyFailure(appInitializationFailedRequest: IFailedRequest): void} instead.\n *\n * Notifies the frame that app initialization has failed and to show an error page in its place.\n * @param appInitializationFailedRequest - The failure request containing the reason for why the app failed\n * during initialization as well as an optional message.\n */\n export function notifyFailure(appInitializationFailedRequest: IFailedRequest): void {\n app.notifyFailure(appInitializationFailedRequest);\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.notifyExpectedFailure app.notifyExpectedFailure(expectedFailureRequest: IExpectedFailureRequest): void} instead.\n *\n * Notifies the frame that app initialized with some expected errors.\n * @param expectedFailureRequest - The expected failure request containing the reason and an optional message\n */\n export function notifyExpectedFailure(expectedFailureRequest: IExpectedFailureRequest): void {\n app.notifyExpectedFailure(expectedFailureRequest);\n }\n}\n","import { ensureInitialized } from '../internal/internalAPIs';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { FrameContexts } from './constants';\nimport { pages } from './pages';\nimport { runtime } from './runtime';\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config} namespace instead.\n *\n * Namespace to interact with the settings-specific part of the SDK.\n * This object is usable only on the settings frame.\n */\nexport namespace settings {\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.Config} instead.\n * @remarks\n * Renamed to config in pages.Config\n */\n export import Settings = pages.InstanceConfig;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.SaveEvent} instead.\n * @remarks\n * See pages.SaveEvent\n */\n export import SaveEvent = pages.config.SaveEvent;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.RemoveEvent} instead.\n * @remarks\n * See pages.RemoveEvent\n */\n export import RemoveEvent = pages.config.RemoveEvent;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.SaveParameters} instead.\n * @remarks\n * See pages.SaveParameters\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export import SaveParameters = pages.config.SaveParameters;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.setValidityState pages.config.setValidityState(validityState: boolean): void} instead.\n *\n * Sets the validity state for the settings.\n * The initial value is false, so the user cannot save the settings until this is called with true.\n *\n * @param validityState - Indicates whether the save or remove button is enabled for the user.\n */\n export function setValidityState(validityState: boolean): void {\n pages.config.setValidityState(validityState);\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.getConfig pages.getConfig(): Promise\\<InstanceConfig\\>} instead.\n *\n * Gets the settings for the current instance.\n *\n * @param callback - The callback to invoke when the {@link Settings} object is retrieved.\n */\n export function getSettings(callback: (instanceSettings: Settings) => void): void {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.sidePanel,\n );\n pages.getConfig().then((config: pages.InstanceConfig) => {\n callback(config);\n });\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.setConfig pages.config.setConfig(instanceSettings: Config): Promise\\<void\\>} instead.\n *\n * Sets the settings for the current instance.\n * This is an asynchronous operation; calls to getSettings are not guaranteed to reflect the changed state.\n *\n * @param - Set the desired settings for this instance.\n */\n export function setSettings(\n instanceSettings: Settings,\n onComplete?: (status: boolean, reason?: string) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.settings, FrameContexts.sidePanel);\n onComplete = onComplete ? onComplete : getGenericOnCompleteHandler();\n pages.config\n .setConfig(instanceSettings)\n .then(() => {\n onComplete(true);\n })\n .catch((error: Error) => {\n onComplete(false, error.message);\n });\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.registerOnSaveHandler pages.config.registerOnSaveHandler(handler: (evt: SaveEvent) => void): void} instead.\n *\n * Registers a handler for when the user attempts to save the settings. This handler should be used\n * to create or update the underlying resource powering the content.\n * The object passed to the handler must be used to notify whether to proceed with the save.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the user selects the save button.\n */\n export function registerOnSaveHandler(handler: (evt: SaveEvent) => void): void {\n pages.config.registerOnSaveHandlerHelper(handler);\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.registerOnRemoveHandler pages.config.registerOnRemoveHandler(handler: (evt: RemoveEvent) => void): void} instead.\n *\n * Registers a handler for user attempts to remove content. This handler should be used\n * to remove the underlying resource powering the content.\n * The object passed to the handler must be used to indicate whether to proceed with the removal.\n * Only one handler may be registered at a time. Subsequent registrations will override the first.\n *\n * @param handler - The handler to invoke when the user selects the remove button.\n */\n export function registerOnRemoveHandler(handler: (evt: RemoveEvent) => void): void {\n pages.config.registerOnRemoveHandlerHelper(handler);\n }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n\nimport { sendMessageToParent } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ChildAppWindow, IAppWindow } from './appWindow';\nimport { FrameContexts, TaskModuleDimension } from './constants';\nimport { dialog } from './dialog';\nimport { BotUrlDialogInfo, DialogInfo, DialogSize, TaskInfo, UrlDialogInfo } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link dialog} namespace instead.\n *\n * Namespace to interact with the task module-specific part of the SDK.\n * This object is usable only on the content frame.\n * The tasks namespace will be deprecated. Please use dialog for future developments.\n */\nexport namespace tasks {\n /**\n * @deprecated\n * As of 2.8.0:\n * - For url-based dialogs, please use {@link dialog.url.open dialog.url.open(urlDialogInfo: UrlDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): void} .\n * - For url-based dialogs with bot interaction, please use {@link dialog.url.bot.open dialog.url.bot.open(botUrlDialogInfo: BotUrlDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): void}\n * - For Adaptive Card-based dialogs:\n * - In Teams, please continue to use this function until the new functions in {@link dialog.adaptiveCard} have been fully implemented. You can tell at runtime when they are implemented in Teams by checking\n * the return value of the {@link dialog.adaptiveCard.isSupported} function. This documentation line will also be removed once they have been fully implemented in Teams.\n * - In all other hosts, please use {@link dialog.adaptiveCard.open dialog.adaptiveCard.open(cardDialogInfo: CardDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): void}\n *\n * Allows an app to open the task module.\n *\n * @param taskInfo - An object containing the parameters of the task module\n * @param submitHandler - Handler to call when the task module is completed\n */\n export function startTask(\n taskInfo: TaskInfo,\n submitHandler?: (err: string, result: string | object) => void,\n ): IAppWindow {\n const dialogSubmitHandler = submitHandler\n ? /* eslint-disable-next-line strict-null-checks/all */ /* fix tracked by 5730662 */\n (sdkResponse: dialog.ISdkResponse) => submitHandler(sdkResponse.err, sdkResponse.result)\n : undefined;\n if (taskInfo.card === undefined && taskInfo.url === undefined) {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('tasks.startTask', [taskInfo as DialogInfo], submitHandler);\n } else if (taskInfo.card) {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParent('tasks.startTask', [taskInfo as DialogInfo], submitHandler);\n } else if (taskInfo.completionBotId !== undefined) {\n dialog.url.bot.open(getBotUrlDialogInfoFromTaskInfo(taskInfo), dialogSubmitHandler);\n } else {\n dialog.url.open(getUrlDialogInfoFromTaskInfo(taskInfo), dialogSubmitHandler);\n }\n return new ChildAppWindow();\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link dialog.update.resize dialog.update.resize(dimensions: DialogSize): void} instead.\n *\n * Update height/width task info properties.\n *\n * @param taskInfo - An object containing width and height properties\n */\n export function updateTask(taskInfo: TaskInfo): void {\n taskInfo = getDefaultSizeIfNotProvided(taskInfo);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { width, height, ...extra } = taskInfo;\n\n if (Object.keys(extra).length) {\n throw new Error('resize requires a TaskInfo argument containing only width and height');\n }\n dialog.update.resize(taskInfo as DialogSize);\n }\n\n /**\n * @deprecated\n * As of 2.8.0, please use {@link dialog.url.submit} instead.\n *\n * Submit the task module.\n *\n * @param result - Contains the result to be sent to the bot or the app. Typically a JSON object or a serialized version of it\n * @param appIds - Valid application(s) that can receive the result of the submitted dialogs. Specifying this parameter helps prevent malicious apps from retrieving the dialog result. Multiple app IDs can be specified because a web app from a single underlying domain can power multiple apps across different environments and branding schemes.\n */\n export function submitTask(result?: string | object, appIds?: string | string[]): void {\n dialog.url.submit(result, appIds);\n }\n\n /**\n * Converts {@link TaskInfo} to {@link UrlDialogInfo}\n * @param taskInfo - TaskInfo object to convert\n * @returns - Converted UrlDialogInfo object\n */\n function getUrlDialogInfoFromTaskInfo(taskInfo: TaskInfo): UrlDialogInfo {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const urldialogInfo: UrlDialogInfo = {\n url: taskInfo.url,\n size: {\n height: taskInfo.height ? taskInfo.height : TaskModuleDimension.Small,\n width: taskInfo.width ? taskInfo.width : TaskModuleDimension.Small,\n },\n title: taskInfo.title,\n fallbackUrl: taskInfo.fallbackUrl,\n };\n return urldialogInfo;\n }\n\n /**\n * Converts {@link TaskInfo} to {@link BotUrlDialogInfo}\n * @param taskInfo - TaskInfo object to convert\n * @returns - converted BotUrlDialogInfo object\n */\n function getBotUrlDialogInfoFromTaskInfo(taskInfo: TaskInfo): BotUrlDialogInfo {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const botUrldialogInfo: BotUrlDialogInfo = {\n url: taskInfo.url,\n size: {\n height: taskInfo.height ? taskInfo.height : TaskModuleDimension.Small,\n width: taskInfo.width ? taskInfo.width : TaskModuleDimension.Small,\n },\n title: taskInfo.title,\n fallbackUrl: taskInfo.fallbackUrl,\n completionBotId: taskInfo.completionBotId,\n };\n return botUrldialogInfo;\n }\n\n /**\n * Sets the height and width of the {@link TaskInfo} object to the original height and width, if initially specified,\n * otherwise uses the height and width values corresponding to {@link TaskModuleDimension | TaskModuleDimension.Small}\n * @param taskInfo TaskInfo object from which to extract size info, if specified\n * @returns TaskInfo with height and width specified\n */\n export function getDefaultSizeIfNotProvided(taskInfo: TaskInfo): TaskInfo {\n taskInfo.height = taskInfo.height ? taskInfo.height : TaskModuleDimension.Small;\n taskInfo.width = taskInfo.width ? taskInfo.width : TaskModuleDimension.Small;\n return taskInfo;\n }\n}\n","import { sendAndHandleSdkError } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * @hidden\n * Allowed roles during a meeting.\n *\n * @beta\n */\nexport enum UserMeetingRole {\n guest = 'Guest',\n attendee = 'Attendee',\n presenter = 'Presenter',\n organizer = 'Organizer',\n}\n\n/**\n * @hidden\n * State of the current Live Share sessions backing fluid container.\n *\n * @beta\n */\nexport enum ContainerState {\n /**\n * The call to `LiveShareHost.setContainerId()` successfully created the container mapping\n * for the current Live Share session.\n */\n added = 'Added',\n\n /**\n * A container mapping for the current Live Share Session already exists and should be used\n * when joining the sessions Fluid container.\n */\n alreadyExists = 'AlreadyExists',\n\n /**\n * The call to `LiveShareHost.setContainerId()` failed to create the container mapping due to\n * another client having already set the container ID for the current Live Share session.\n */\n conflict = 'Conflict',\n\n /**\n * A container mapping for the current Live Share session doesn't exist yet.\n */\n notFound = 'NotFound',\n}\n\n/**\n * @hidden\n * Returned from `LiveShareHost.get/setFluidContainerId()` to specify the container mapping for the\n * current Live Share session.\n *\n * @beta\n */\nexport interface IFluidContainerInfo {\n /**\n * State of the containerId mapping.\n */\n containerState: ContainerState;\n\n /**\n * ID of the container to join for the meeting. Undefined if the container hasn't been\n * created yet.\n */\n containerId: string | undefined;\n\n /**\n * If true, the local client should create the container and then save the created containers\n * ID to the mapping service.\n */\n shouldCreate: boolean;\n\n /**\n * If `containerId` is undefined and `shouldCreate` is false, the container isn't ready but\n * another client is creating it. The local client should wait the specified amount of time and\n * then ask for the container info again.\n */\n retryAfter: number;\n}\n\n/**\n * @hidden\n * Returned from `LiveShareHost.getNtpTime()` to specify the global timestamp for the current\n * Live Share session.\n *\n * @beta\n */\nexport interface INtpTimeInfo {\n /**\n * ISO 8601 formatted server time. For example: '2019-09-07T15:50-04:00'\n */\n ntpTime: string;\n\n /**\n * Server time expressed as the number of milliseconds since the ECMAScript epoch.\n */\n ntpTimeInUTC: number;\n}\n\n/**\n * @hidden\n * Returned from `LiveShareHost.getFluidTenantInfo()` to specify the Fluid service to use for the\n * current Live Share session.\n *\n * @beta\n */\nexport interface IFluidTenantInfo {\n /**\n * The Fluid Tenant ID Live Share should use.\n */\n tenantId: string;\n\n /**\n * The Fluid service endpoint Live Share should use.\n */\n serviceEndpoint?: string;\n\n /**\n * @deprecated\n * As of Fluid 1.0 this configuration information has been deprecated in favor of\n * `serviceEndpoint`.\n */\n ordererEndpoint: string;\n\n /**\n * @deprecated\n * As of Fluid 1.0 this configuration information has been deprecated in favor of\n * `serviceEndpoint`.\n */\n storageEndpoint: string;\n}\n\n/**\n * Live Share host implementation for O365 and Teams clients.\n *\n * @beta\n */\nexport class LiveShareHost {\n /**\n * @hidden\n * Returns the Fluid Tenant connection info for user's current context.\n *\n * @beta\n */\n public getFluidTenantInfo(): Promise<IFluidTenantInfo> {\n return new Promise<IFluidTenantInfo>((resolve) => {\n ensureInitialized(runtime, FrameContexts.meetingStage, FrameContexts.sidePanel);\n\n resolve(sendAndHandleSdkError('interactive.getFluidTenantInfo'));\n });\n }\n\n /**\n * @hidden\n * Returns the fluid access token for mapped container Id.\n *\n * @param containerId Fluid's container Id for the request. Undefined for new containers.\n * @returns token for connecting to Fluid's session.\n *\n * @beta\n */\n public getFluidToken(containerId?: string): Promise<string> {\n return new Promise<string>((resolve) => {\n ensureInitialized(runtime, FrameContexts.meetingStage, FrameContexts.sidePanel);\n\n // eslint-disable-next-line strict-null-checks/all\n resolve(sendAndHandleSdkError('interactive.getFluidToken', containerId));\n });\n }\n\n /**\n * @hidden\n * Returns the ID of the fluid container associated with the user's current context.\n *\n * @beta\n */\n public getFluidContainerId(): Promise<IFluidContainerInfo> {\n return new Promise<IFluidContainerInfo>((resolve) => {\n ensureInitialized(runtime, FrameContexts.meetingStage, FrameContexts.sidePanel);\n\n resolve(sendAndHandleSdkError('interactive.getFluidContainerId'));\n });\n }\n\n /**\n * @hidden\n * Sets the ID of the fluid container associated with the current context.\n *\n * @remarks\n * If this returns false, the client should delete the container they created and then call\n * `getFluidContainerId()` to get the ID of the container being used.\n * @param containerId ID of the fluid container the client created.\n * @returns A data structure with a `containerState` indicating the success or failure of the request.\n *\n * @beta\n */\n public setFluidContainerId(containerId: string): Promise<IFluidContainerInfo> {\n return new Promise<IFluidContainerInfo>((resolve) => {\n ensureInitialized(runtime, FrameContexts.meetingStage, FrameContexts.sidePanel);\n\n resolve(sendAndHandleSdkError('interactive.setFluidContainerId', containerId));\n });\n }\n\n /**\n * @hidden\n * Returns the shared clock server's current time.\n *\n * @beta\n */\n public getNtpTime(): Promise<INtpTimeInfo> {\n return new Promise<INtpTimeInfo>((resolve) => {\n ensureInitialized(runtime, FrameContexts.meetingStage, FrameContexts.sidePanel);\n\n resolve(sendAndHandleSdkError('interactive.getNtpTime'));\n });\n }\n\n /**\n * @hidden\n * Associates the fluid client ID with a set of user roles.\n *\n * @param clientId The ID for the current user's Fluid client. Changes on reconnects.\n * @returns The roles for the current user.\n *\n * @beta\n */\n public registerClientId(clientId: string): Promise<UserMeetingRole[]> {\n return new Promise<UserMeetingRole[]>((resolve) => {\n ensureInitialized(runtime, FrameContexts.meetingStage, FrameContexts.sidePanel);\n\n resolve(sendAndHandleSdkError('interactive.registerClientId', clientId));\n });\n }\n\n /**\n * @hidden\n * Returns the roles associated with a client ID.\n *\n * @param clientId The Client ID the message was received from.\n * @returns The roles for a given client. Returns `undefined` if the client ID hasn't been registered yet.\n *\n * @beta\n */\n public getClientRoles(clientId: string): Promise<UserMeetingRole[] | undefined> {\n return new Promise<UserMeetingRole[] | undefined>((resolve) => {\n ensureInitialized(runtime, FrameContexts.meetingStage, FrameContexts.sidePanel);\n\n resolve(sendAndHandleSdkError('interactive.getClientRoles', clientId));\n });\n }\n\n /**\n * Returns a host instance for the client that can be passed to the `LiveShareClient` class.\n *\n * @remarks\n * The application must first be initialized and may only be called from `meetingStage` or `sidePanel` contexts.\n *\n * @beta\n */\n public static create(): LiveShareHost {\n ensureInitialized(runtime, FrameContexts.meetingStage, FrameContexts.sidePanel);\n\n return new LiveShareHost();\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { GlobalVars } from '../internal/globalVars';\nimport { registerHandlerHelper } from '../internal/handlers';\nimport { ensureInitializeCalled, ensureInitialized } from '../internal/internalAPIs';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { app } from './app';\nimport { FrameContexts } from './constants';\nimport {\n Context,\n DeepLinkParameters,\n FrameContext,\n LoadContext,\n TabInformation,\n TabInstanceParameters,\n} from './interfaces';\nimport { pages } from './pages';\nimport { runtime } from './runtime';\nimport { teamsCore } from './teamsAPIs';\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app.initialize app.initialize(validMessageOrigins?: string[]): Promise\\<void\\>} instead.\n *\n * Initializes the library. This must be called before any other SDK calls\n * but after the frame is loaded successfully.\n * @param callback - Optionally specify a callback to invoke when Teams SDK has successfully initialized\n * @param validMessageOrigins - Optionally specify a list of cross frame message origins. There must have\n * https: protocol otherwise they will be ignored. Example: https://www.example.com\n */\nexport function initialize(callback?: () => void, validMessageOrigins?: string[]): void {\n app.initialize(validMessageOrigins).then(() => {\n if (callback) {\n callback();\n }\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link teamsCore.enablePrintCapability teamsCore.enablePrintCapability(): void} instead.\n *\n * Enable print capability to support printing page using Ctrl+P and cmd+P\n */\nexport function enablePrintCapability(): void {\n teamsCore.enablePrintCapability();\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link teamsCore.print teamsCore.print(): void} instead.\n *\n * Default print handler\n */\nexport function print(): void {\n teamsCore.print();\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app.getContext app.getContext(): Promise\\<app.Context\\>} instead.\n *\n * Retrieves the current context the frame is running in.\n *\n * @param callback - The callback to invoke when the {@link Context} object is retrieved.\n */\nexport function getContext(callback: (context: Context) => void): void {\n ensureInitializeCalled();\n sendMessageToParent('getContext', (context: Context) => {\n if (!context.frameContext) {\n // Fallback logic for frameContext properties\n context.frameContext = GlobalVars.frameContext;\n }\n callback(context);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app.registerOnThemeChangeHandler app.registerOnThemeChangeHandler(handler: (theme: string) => void): void} instead.\n *\n * Registers a handler for theme changes.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the user changes their theme.\n */\nexport function registerOnThemeChangeHandler(handler: (theme: string) => void): void {\n app.registerOnThemeChangeHandler(handler);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.registerFullScreenHandler pages.registerFullScreenHandler(handler: (isFullScreen: boolean) => void): void} instead.\n *\n * Registers a handler for changes from or to full-screen view for a tab.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the user toggles full-screen view for a tab.\n */\nexport function registerFullScreenHandler(handler: (isFullScreen: boolean) => void): void {\n registerHandlerHelper('fullScreenChange', handler, []);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.appButton.onClick pages.appButton.onClick(handler: () => void): void} instead.\n *\n * Registers a handler for clicking the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the personal app button is clicked in the app bar.\n */\nexport function registerAppButtonClickHandler(handler: () => void): void {\n registerHandlerHelper('appButtonClick', handler, [FrameContexts.content]);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.appButton.onHoverEnter pages.appButton.onHoverEnter(handler: () => void): void} instead.\n *\n * Registers a handler for entering hover of the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when entering hover of the personal app button in the app bar.\n */\nexport function registerAppButtonHoverEnterHandler(handler: () => void): void {\n registerHandlerHelper('appButtonHoverEnter', handler, [FrameContexts.content]);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.appButton.onHoverLeave pages.appButton.onHoverLeave(handler: () => void): void} instead.\n *\n * Registers a handler for exiting hover of the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when exiting hover of the personal app button in the app bar.\n *\n */\nexport function registerAppButtonHoverLeaveHandler(handler: () => void): void {\n registerHandlerHelper('appButtonHoverLeave', handler, [FrameContexts.content]);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.backStack.registerBackButtonHandler pages.backStack.registerBackButtonHandler(handler: () => boolean): void} instead.\n *\n * Registers a handler for user presses of the Team client's back button. Experiences that maintain an internal\n * navigation stack should use this handler to navigate the user back within their frame. If an app finds\n * that after running its back button handler it cannot handle the event it should call the navigateBack\n * method to ask the Teams client to handle it instead.\n *\n * @param handler - The handler to invoke when the user presses their Team client's back button.\n */\nexport function registerBackButtonHandler(handler: () => boolean): void {\n pages.backStack.registerBackButtonHandlerHelper(handler);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link teamsCore.registerOnLoadHandler teamsCore.registerOnLoadHandler(handler: (context: LoadContext) => void): void} instead.\n *\n * @hidden\n * Registers a handler to be called when the page has been requested to load.\n *\n * @param handler - The handler to invoke when the page is loaded.\n */\nexport function registerOnLoadHandler(handler: (context: LoadContext) => void): void {\n teamsCore.registerOnLoadHandlerHelper(handler);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link teamsCore.registerBeforeUnloadHandler teamsCore.registerBeforeUnloadHandler(handler: (readyToUnload: () => void) => boolean): void} instead.\n *\n * @hidden\n * Registers a handler to be called before the page is unloaded.\n *\n * @param handler - The handler to invoke before the page is unloaded. If this handler returns true the page should\n * invoke the readyToUnload function provided to it once it's ready to be unloaded.\n */\nexport function registerBeforeUnloadHandler(handler: (readyToUnload: () => void) => boolean): void {\n teamsCore.registerBeforeUnloadHandlerHelper(handler);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.registerFocusEnterHandler pages.registerFocusEnterHandler(handler: (navigateForward: boolean) => void): void} instead.\n *\n * @hidden\n * Registers a handler when focus needs to be passed from teams to the place of choice on app.\n *\n * @param handler - The handler to invoked by the app when they want the focus to be in the place of their choice.\n */\nexport function registerFocusEnterHandler(handler: (navigateForward: boolean) => boolean): void {\n registerHandlerHelper('focusEnter', handler, []);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.registerChangeConfigHandler pages.config.registerChangeConfigHandler(handler: () => void): void} instead.\n *\n * Registers a handler for when the user reconfigurated tab.\n *\n * @param handler - The handler to invoke when the user click on Settings.\n */\nexport function registerChangeSettingsHandler(handler: () => void): void {\n registerHandlerHelper('changeSettings', handler, [FrameContexts.content]);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.tabs.getTabInstances pages.tabs.getTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise\\<TabInformation\\>} instead.\n *\n * Allows an app to retrieve for this user tabs that are owned by this app.\n * If no TabInstanceParameters are passed, the app defaults to favorite teams and favorite channels.\n *\n * @param callback - The callback to invoke when the {@link TabInstanceParameters} object is retrieved.\n * @param tabInstanceParameters - OPTIONAL Flags that specify whether to scope call to favorite teams or channels.\n */\nexport function getTabInstances(\n callback: (tabInfo: TabInformation) => void,\n tabInstanceParameters?: TabInstanceParameters,\n): void {\n ensureInitialized(runtime);\n pages.tabs.getTabInstances(tabInstanceParameters).then((tabInfo: TabInformation) => {\n callback(tabInfo);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.tabs.getMruTabInstances pages.tabs.getMruTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise\\<TabInformation\\>} instead.\n *\n * Allows an app to retrieve the most recently used tabs for this user.\n *\n * @param callback - The callback to invoke when the {@link TabInformation} object is retrieved.\n * @param tabInstanceParameters - OPTIONAL Ignored, kept for future use\n */\nexport function getMruTabInstances(\n callback: (tabInfo: TabInformation) => void,\n tabInstanceParameters?: TabInstanceParameters,\n): void {\n ensureInitialized(runtime);\n pages.tabs.getMruTabInstances(tabInstanceParameters).then((tabInfo: TabInformation) => {\n callback(tabInfo);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.shareDeepLink pages.shareDeepLink(deepLinkParameters: DeepLinkParameters): void} instead.\n *\n * Shares a deep link that a user can use to navigate back to a specific state in this page.\n *\n * @param deepLinkParameters - ID and label for the link and fallback URL.\n */\nexport function shareDeepLink(deepLinkParameters: DeepLinkParameters): void {\n pages.shareDeepLink({\n subPageId: deepLinkParameters.subEntityId,\n subPageLabel: deepLinkParameters.subEntityLabel,\n subPageWebUrl: deepLinkParameters.subEntityWebUrl,\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app.openLink app.openLink(deepLink: string): Promise\\<void\\>} instead.\n *\n * Execute deep link API.\n *\n * @param deepLink - deep link.\n */\nexport function executeDeepLink(deepLink: string, onComplete?: (status: boolean, reason?: string) => void): void {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n onComplete = onComplete ? onComplete : getGenericOnCompleteHandler();\n app\n .openLink(deepLink)\n .then(() => {\n onComplete(true);\n })\n .catch((err: Error) => {\n onComplete(false, err.message);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.setCurrentFrame pages.setCurrentFrame(frameInfo: FrameInfo): void} instead.\n *\n * Set the current Frame Context\n *\n * @param frameContext - FrameContext information to be set\n */\nexport function setFrameContext(frameContext: FrameContext): void {\n pages.setCurrentFrame(frameContext);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.initializeWithFrameContext pages.initializeWithFrameContext(frameInfo: FrameInfo, callback?: () => void, validMessageOrigins?: string[],): void} instead.\n *\n * Initialize with FrameContext\n *\n * @param frameContext - FrameContext information to be set\n * @param callback - The optional callback to be invoked be invoked after initilizing the frame context\n * @param validMessageOrigins - Optionally specify a list of cross frame message origins.\n * They must have https: protocol otherwise they will be ignored. Example: https:www.example.com\n */\nexport function initializeWithFrameContext(\n frameContext: FrameContext,\n callback?: () => void,\n validMessageOrigins?: string[],\n): void {\n pages.initializeWithFrameContext(frameContext, callback, validMessageOrigins);\n}\n","import { ensureInitialized } from '../internal/internalAPIs';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { FrameContexts } from './constants';\nimport { TabInstance } from './interfaces';\nimport { pages } from './pages';\nimport { runtime } from './runtime';\n/**\n * Navigation specific part of the SDK.\n */\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.returnFocus pages.returnFocus(navigateForward?: boolean): void} instead.\n *\n * Return focus to the main Teams app. Will focus search bar if navigating foward and app bar if navigating back.\n *\n * @param navigateForward - Determines the direction to focus in teams app.\n */\nexport function returnFocus(navigateForward?: boolean): void {\n pages.returnFocus(navigateForward);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.tabs.navigateToTab pages.tabs.navigateToTab(tabInstance: TabInstance): Promise\\<void\\>} instead.\n *\n * Navigates the Microsoft Teams app to the specified tab instance.\n *\n * @param tabInstance - The tab instance to navigate to.\n * @param onComplete - The callback to invoke when the action is complete.\n */\nexport function navigateToTab(tabInstance: TabInstance, onComplete?: (status: boolean, reason?: string) => void): void {\n ensureInitialized(runtime);\n onComplete = onComplete ? onComplete : getGenericOnCompleteHandler();\n pages.tabs\n .navigateToTab(tabInstance)\n .then(() => {\n onComplete(true);\n })\n .catch((error: Error) => {\n onComplete(false, error.message);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.navigateCrossDomain pages.navigateCrossDomain(url: string): Promise\\<void\\>} instead.\n *\n * Navigates the frame to a new cross-domain URL. The domain of this URL must match at least one of the\n * valid domains specified in the validDomains block of the manifest; otherwise, an exception will be\n * thrown. This function needs to be used only when navigating the frame to a URL in a different domain\n * than the current one in a way that keeps the app informed of the change and allows the SDK to\n * continue working.\n *\n * @param url - The URL to navigate the frame to.\n * @param onComplete - The callback to invoke when the action is complete.\n */\nexport function navigateCrossDomain(url: string, onComplete?: (status: boolean, reason?: string) => void): void {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n onComplete = onComplete ? onComplete : getGenericOnCompleteHandler();\n pages\n .navigateCrossDomain(url)\n .then(() => {\n onComplete(true);\n })\n .catch((error: Error) => {\n onComplete(false, error.message);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.backStack.navigateBack pages.backStack.navigateBack(): Promise\\<void\\>} instead.\n *\n * Navigates back in the Teams client.\n * See registerBackButtonHandler for more information on when it's appropriate to use this method.\n *\n * @param onComplete - The callback to invoke when the action is complete.\n */\nexport function navigateBack(onComplete?: (status: boolean, reason?: string) => void): void {\n ensureInitialized(runtime);\n onComplete = onComplete ? onComplete : getGenericOnCompleteHandler();\n pages.backStack\n .navigateBack()\n .then(() => {\n onComplete(true);\n })\n .catch((error: Error) => {\n onComplete(false, error.message);\n });\n}\n","import { profile } from '../public/profile';\n\n/**\n * @hidden\n * Validates the request parameters\n * @param showProfileRequest The request parameters\n * @returns true if the parameters are valid, false otherwise\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateShowProfileRequest(\n showProfileRequest: profile.ShowProfileRequest,\n): [boolean, string | undefined] {\n if (!showProfileRequest) {\n return [false, 'A request object is required'];\n }\n\n // Validate modality\n if (showProfileRequest.modality && typeof showProfileRequest.modality !== 'string') {\n return [false, 'modality must be a string'];\n }\n\n // Validate targetElementBoundingRect\n if (\n !showProfileRequest.targetElementBoundingRect ||\n typeof showProfileRequest.targetElementBoundingRect !== 'object'\n ) {\n return [false, 'targetElementBoundingRect must be a DOMRect'];\n }\n\n // Validate triggerType\n if (!showProfileRequest.triggerType || typeof showProfileRequest.triggerType !== 'string') {\n return [false, 'triggerType must be a valid string'];\n }\n\n return validatePersona(showProfileRequest.persona);\n}\n\n/**\n * @hidden\n * Validates the persona that is used to resolve the profile target\n * @param persona The persona object\n * @returns true if the persona is valid, false otherwise\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction validatePersona(persona: profile.Persona): [boolean, string | undefined] {\n if (!persona) {\n return [false, 'persona object must be provided'];\n }\n\n if (persona.displayName && typeof persona.displayName !== 'string') {\n return [false, 'displayName must be a string'];\n }\n\n if (!persona.identifiers || typeof persona.identifiers !== 'object') {\n return [false, 'persona identifiers object must be provided'];\n }\n\n if (!persona.identifiers.AadObjectId && !persona.identifiers.Smtp && !persona.identifiers.Upn) {\n return [false, 'at least one valid identifier must be provided'];\n }\n\n if (persona.identifiers.AadObjectId && typeof persona.identifiers.AadObjectId !== 'string') {\n return [false, 'AadObjectId identifier must be a string'];\n }\n\n if (persona.identifiers.Smtp && typeof persona.identifiers.Smtp !== 'string') {\n return [false, 'Smtp identifier must be a string'];\n }\n\n if (persona.identifiers.Upn && typeof persona.identifiers.Upn !== 'string') {\n return [false, 'Upn identifier must be a string'];\n }\n\n return [true, undefined];\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { registerHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ErrorCode, FileOpenPreference, FrameContexts, SdkError } from '../public';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n *\n * Namespace to interact with the files specific part of the SDK.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace files {\n /**\n * @hidden\n *\n * Cloud storage providers registered with Microsoft Teams\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum CloudStorageProvider {\n Dropbox = 'DROPBOX',\n Box = 'BOX',\n Sharefile = 'SHAREFILE',\n GoogleDrive = 'GOOGLEDRIVE',\n Egnyte = 'EGNYTE',\n SharePoint = 'SharePoint',\n }\n interface IWopiThumbnail {\n size: number;\n url: string;\n }\n\n interface IWopiService {\n name: string;\n description: string;\n thumbnails: IWopiThumbnail[];\n }\n\n /**\n * @hidden\n *\n * External third-party cloud storages providers interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IExternalProvider extends IWopiService {\n providerType: CloudStorageProviderType;\n providerCode: CloudStorageProvider;\n }\n\n /**\n * @hidden\n *\n * Cloud storage provider type enums\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum CloudStorageProviderType {\n Sharepoint = 0,\n WopiIntegration,\n Google,\n OneDrive,\n Recent,\n Aggregate,\n FileSystem, // Used for Downloaded files on Desktop\n Search, // Used by P2P files with OSearch\n AllFiles, // Used by P2P files with AllFiles API\n SharedWithMe,\n }\n\n /**\n * @hidden\n *\n * Cloud storage folder interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageFolder {\n /**\n * @hidden\n * ID of the cloud storage folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n id: string;\n /**\n * @hidden\n * Display Name/Title of the cloud storage folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n /**\n * @hidden\n * ID of the cloud storage folder in the provider\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n folderId: string;\n /**\n * @hidden\n * Type of the cloud storage folder provider integration\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n providerType: CloudStorageProviderType;\n /**\n * @hidden\n * Code of the supported cloud storage folder provider\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n providerCode: CloudStorageProvider;\n /**\n * @hidden\n * Display name of the owner of the cloud storage folder provider\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n ownerDisplayName: string;\n /**\n * @hidden\n * Sharepoint specific siteURL of the folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n siteUrl?: string;\n /**\n * @hidden\n * Sharepoint specific serverRelativeUrl of the folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n serverRelativeUrl?: string;\n /**\n * @hidden\n * Sharepoint specific libraryType of the folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n libraryType?: string;\n /**\n * @hidden\n * Sharepoint specific accessType of the folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n accessType?: string;\n }\n\n /**\n * @hidden\n *\n * Cloud storage item interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageFolderItem {\n /**\n * @hidden\n * ID of the item in the provider\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n id: string;\n /**\n * @hidden\n * Display name/title\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n /**\n * @hidden\n * Key to differentiate files and subdirectory\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n isSubdirectory: boolean;\n /**\n * @hidden\n * File extension\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n type: string;\n /**\n * @hidden\n * Last modifed time of the item\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n lastModifiedTime: string;\n /**\n * @hidden\n * Display size of the items in bytes\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n size: number;\n /**\n * @hidden\n * URL of the file\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n objectUrl: string;\n /**\n * @hidden\n * Temporary access token for the item\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n accessToken?: string;\n }\n\n /**\n * @hidden\n *\n * Files entity user interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IFilesEntityUser {\n /**\n * @hidden\n * User name.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n displayName: string;\n /**\n * @hidden\n * User email.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n email: string;\n\n /**\n * @hidden\n * User MRI.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n mri: string;\n }\n\n /**\n * @hidden\n *\n * Special Document Library enum\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum SpecialDocumentLibraryType {\n ClassMaterials = 'classMaterials',\n }\n\n /**\n * @hidden\n *\n * Document Library Access enum\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum DocumentLibraryAccessType {\n Readonly = 'readonly',\n }\n\n /**\n * @hidden\n *\n * SharePoint file interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface ISharePointFile {\n siteId?: string;\n siteUrl: string;\n objectId: string;\n objectUrl: string;\n openInWindowFileUrl: string;\n title: string;\n isFolder: boolean;\n serverRelativeUrl: string;\n lastModifiedByUser: IFilesEntityUser;\n lastModifiedTime: string;\n sentByUser: IFilesEntityUser;\n createdByUser: IFilesEntityUser;\n createdTime: string;\n size: number;\n type: string;\n spItemUrl?: string;\n libraryType?: SpecialDocumentLibraryType;\n accessType?: DocumentLibraryAccessType;\n etag?: string;\n remoteItem?: string;\n listUrl?: string;\n }\n\n /**\n * @hidden\n *\n * Download status enum\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum FileDownloadStatus {\n Downloaded = 'Downloaded',\n Downloading = 'Downloading',\n Failed = 'Failed',\n }\n\n /**\n * @hidden\n *\n * Download Files interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IFileItem {\n /**\n * @hidden\n * ID of the file metadata\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n objectId?: string;\n /**\n * @hidden\n * Path of the file\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n path?: string;\n /**\n * @hidden\n * Size of the file in bytes\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n sizeInBytes?: number;\n /**\n * @hidden\n * Download status\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n status?: FileDownloadStatus;\n /**\n * @hidden\n * Download timestamp\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n timestamp: Date;\n /**\n * @hidden\n * File name\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n /**\n * @hidden\n * Type of file i.e. the file extension.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n extension: string;\n }\n\n /**\n * @hidden\n * Object used to represent a file\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface File extends Blob {\n /**\n * A number that represents the number of milliseconds since the Unix epoch\n */\n lastModified: number;\n /**\n * Name of the file\n */\n name: string;\n /**\n * A string containing the path of the file relative to the ancestor directory the user selected\n */\n webkitRelativePath?: string;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Actions specific to 3P cloud storage provider file and / or account\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum CloudStorageProviderFileAction {\n Download = 'DOWNLOAD',\n Upload = 'UPLOAD',\n Delete = 'DELETE',\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface for 3P cloud storage provider request content type\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderRequest<T> {\n content: T;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Base interface for 3P cloud storage provider action request content\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderContent {\n providerCode: CloudStorageProvider;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface representing 3P cloud storage provider add new file action.\n * The file extension represents type of file e.g. docx, pptx etc. and need not be prefixed with dot(.)\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderNewFileContent extends CloudStorageProviderContent {\n newFileName: string;\n newFileExtension: string;\n destinationFolder: CloudStorageFolderItem | ISharePointFile;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface representing 3P cloud storage provider rename existing file action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderRenameFileContent extends CloudStorageProviderContent {\n existingFile: CloudStorageFolderItem | ISharePointFile;\n newFile: CloudStorageFolderItem | ISharePointFile;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface representing 3P cloud storage provider delete existing file(s) action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderDeleteFileContent extends CloudStorageProviderContent {\n itemList: CloudStorageFolderItem[] | ISharePointFile[];\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface representing 3P cloud storage provider download existing file(s) action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderDownloadFileContent extends CloudStorageProviderContent {\n itemList: CloudStorageFolderItem[] | ISharePointFile[];\n }\n\n /**\n * @hidden\n * Hide from docs\n * @beta\n *\n * Interface representing 3P cloud storage provider upload existing file(s) action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderUploadFileContent extends CloudStorageProviderContent {\n itemList: File[];\n destinationFolder: CloudStorageFolderItem | ISharePointFile;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Gets a list of cloud storage folders added to the channel\n * @param channelId - ID of the channel whose cloud storage folders should be retrieved\n * @param callback - Callback that will be triggered post folders load\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getCloudStorageFolders(\n channelId: string,\n callback: (error: SdkError, folders: CloudStorageFolder[]) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!channelId || channelId.length === 0) {\n throw new Error('[files.getCloudStorageFolders] channelId name cannot be null or empty');\n }\n if (!callback) {\n throw new Error('[files.getCloudStorageFolders] Callback cannot be null');\n }\n\n sendMessageToParent('files.getCloudStorageFolders', [channelId], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n * Initiates the add cloud storage folder flow\n *\n * @param channelId - ID of the channel to add cloud storage folder\n * @param callback - Callback that will be triggered post add folder flow is compelete\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function addCloudStorageFolder(\n channelId: string,\n callback: (error: SdkError, isFolderAdded: boolean, folders: CloudStorageFolder[]) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!channelId || channelId.length === 0) {\n throw new Error('[files.addCloudStorageFolder] channelId name cannot be null or empty');\n }\n if (!callback) {\n throw new Error('[files.addCloudStorageFolder] Callback cannot be null');\n }\n\n sendMessageToParent('files.addCloudStorageFolder', [channelId], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n *\n * Deletes a cloud storage folder from channel\n *\n * @param channelId - ID of the channel where folder is to be deleted\n * @param folderToDelete - cloud storage folder to be deleted\n * @param callback - Callback that will be triggered post delete\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function deleteCloudStorageFolder(\n channelId: string,\n folderToDelete: CloudStorageFolder,\n callback: (error: SdkError, isFolderDeleted: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!channelId) {\n throw new Error('[files.deleteCloudStorageFolder] channelId name cannot be null or empty');\n }\n if (!folderToDelete) {\n throw new Error('[files.deleteCloudStorageFolder] folderToDelete cannot be null or empty');\n }\n if (!callback) {\n throw new Error('[files.deleteCloudStorageFolder] Callback cannot be null');\n }\n\n sendMessageToParent('files.deleteCloudStorageFolder', [channelId, folderToDelete], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n *\n * Fetches the contents of a Cloud storage folder (CloudStorageFolder) / sub directory\n *\n * @param folder - Cloud storage folder (CloudStorageFolder) / sub directory (CloudStorageFolderItem)\n * @param providerCode - Code of the cloud storage folder provider\n * @param callback - Callback that will be triggered post contents are loaded\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getCloudStorageFolderContents(\n folder: CloudStorageFolder | CloudStorageFolderItem,\n providerCode: CloudStorageProvider,\n callback: (error: SdkError, items: CloudStorageFolderItem[]) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!folder || !providerCode) {\n throw new Error('[files.getCloudStorageFolderContents] folder/providerCode name cannot be null or empty');\n }\n\n if (!callback) {\n throw new Error('[files.getCloudStorageFolderContents] Callback cannot be null');\n }\n\n if ('isSubdirectory' in folder && !folder.isSubdirectory) {\n throw new Error('[files.getCloudStorageFolderContents] provided folder is not a subDirectory');\n }\n\n sendMessageToParent('files.getCloudStorageFolderContents', [folder, providerCode], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n *\n * Open a cloud storage file in Teams\n *\n * @param file - cloud storage file that should be opened\n * @param providerCode - Code of the cloud storage folder provider\n * @param fileOpenPreference - Whether file should be opened in web/inline\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openCloudStorageFile(\n file: CloudStorageFolderItem,\n providerCode: CloudStorageProvider,\n fileOpenPreference?: FileOpenPreference.Web | FileOpenPreference.Inline,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!file || !providerCode) {\n throw new Error('[files.openCloudStorageFile] file/providerCode cannot be null or empty');\n }\n\n if (file.isSubdirectory) {\n throw new Error('[files.openCloudStorageFile] provided file is a subDirectory');\n }\n\n sendMessageToParent('files.openCloudStorageFile', [file, providerCode, fileOpenPreference]);\n }\n\n /**\n * @hidden\n * Allow 1st party apps to call this function to get the external\n * third party cloud storage accounts that the tenant supports\n * @param excludeAddedProviders: return a list of support third party\n * cloud storages that hasn't been added yet.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getExternalProviders(\n excludeAddedProviders = false,\n callback: (error: SdkError, providers: IExternalProvider[]) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw new Error('[files.getExternalProviders] Callback cannot be null');\n }\n\n sendMessageToParent('files.getExternalProviders', [excludeAddedProviders], callback);\n }\n\n /**\n * @hidden\n * Allow 1st party apps to call this function to move files\n * among SharePoint and third party cloud storages.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function copyMoveFiles(\n selectedFiles: CloudStorageFolderItem[] | ISharePointFile[],\n providerCode: CloudStorageProvider,\n destinationFolder: CloudStorageFolderItem | ISharePointFile,\n destinationProviderCode: CloudStorageProvider,\n isMove = false,\n callback: (error?: SdkError) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!selectedFiles || selectedFiles.length === 0) {\n throw new Error('[files.copyMoveFiles] selectedFiles cannot be null or empty');\n }\n if (!providerCode) {\n throw new Error('[files.copyMoveFiles] providerCode cannot be null or empty');\n }\n if (!destinationFolder) {\n throw new Error('[files.copyMoveFiles] destinationFolder cannot be null or empty');\n }\n if (!destinationProviderCode) {\n throw new Error('[files.copyMoveFiles] destinationProviderCode cannot be null or empty');\n }\n if (!callback) {\n throw new Error('[files.copyMoveFiles] callback cannot be null');\n }\n sendMessageToParent(\n 'files.copyMoveFiles',\n [selectedFiles, providerCode, destinationFolder, destinationProviderCode, isMove],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n *\n * Gets list of downloads for current user\n * @param callback Callback that will be triggered post downloads load\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getFileDownloads(callback: (error?: SdkError, files?: IFileItem[]) => void): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw new Error('[files.getFileDownloads] Callback cannot be null');\n }\n\n sendMessageToParent('files.getFileDownloads', [], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Open download preference folder if fileObjectId value is undefined else open folder containing the file with id fileObjectId\n * @param fileObjectId - Id of the file whose containing folder should be opened\n * @param callback Callback that will be triggered post open download folder/path\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openDownloadFolder(fileObjectId: string = undefined, callback: (error?: SdkError) => void): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw new Error('[files.openDownloadFolder] Callback cannot be null');\n }\n\n sendMessageToParent('files.openDownloadFolder', [fileObjectId], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates add 3P cloud storage provider flow, where a pop up window opens for user to select required\n * 3P provider from the configured policy supported 3P provider list, following which user authentication\n * for selected 3P provider is performed on success of which the selected 3P provider support is added for user\n * @beta\n *\n * @param callback Callback that will be triggered post add 3P cloud storage provider action.\n * If the error is encountered (and hence passed back), no provider value is sent back.\n * For success scenarios, error value will be passed as null and a valid provider value is sent.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function addCloudStorageProvider(callback: (error?: SdkError, provider?: CloudStorageProvider) => void): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.addCloudStorageProvider] callback cannot be null');\n }\n\n sendMessageToParent('files.addCloudStorageProvider', [], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates signout of 3P cloud storage provider flow, which will remove the selected\n * 3P cloud storage provider from the list of added providers. No other user input and / or action\n * is required except the 3P cloud storage provider to signout from\n *\n * @param logoutRequest 3P cloud storage provider remove action request content\n * @param callback Callback that will be triggered post signout of 3P cloud storage provider action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function removeCloudStorageProvider(\n logoutRequest: CloudStorageProviderRequest<CloudStorageProviderContent>,\n callback: (error?: SdkError) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.removeCloudStorageProvider] callback cannot be null');\n }\n\n if (!(logoutRequest && logoutRequest.content)) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.removeCloudStorageProvider] 3P cloud storage provider request content is missing',\n );\n }\n\n sendMessageToParent('files.removeCloudStorageProvider', [logoutRequest], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the add 3P cloud storage file flow, which will add a new file for the given 3P provider\n *\n * @param addNewFileRequest 3P cloud storage provider add action request content\n * @param callback Callback that will be triggered post adding a new file flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function addCloudStorageProviderFile(\n addNewFileRequest: CloudStorageProviderRequest<CloudStorageProviderNewFileContent>,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.addCloudStorageProviderFile] callback cannot be null');\n }\n\n if (!(addNewFileRequest && addNewFileRequest.content)) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.addCloudStorageProviderFile] 3P cloud storage provider request content is missing',\n );\n }\n\n sendMessageToParent('files.addCloudStorageProviderFile', [addNewFileRequest], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the rename 3P cloud storage file flow, which will rename an existing file in the given 3P provider\n *\n * @param renameFileRequest 3P cloud storage provider rename action request content\n * @param callback Callback that will be triggered post renaming an existing file flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function renameCloudStorageProviderFile(\n renameFileRequest: CloudStorageProviderRequest<CloudStorageProviderRenameFileContent>,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.renameCloudStorageProviderFile] callback cannot be null');\n }\n\n if (!(renameFileRequest && renameFileRequest.content)) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.renameCloudStorageProviderFile] 3P cloud storage provider request content is missing',\n );\n }\n\n sendMessageToParent('files.renameCloudStorageProviderFile', [renameFileRequest], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the delete 3P cloud storage file(s) / folder (folder has to be empty) flow,\n * which will delete existing file(s) / folder from the given 3P provider\n *\n * @param deleteFileRequest 3P cloud storage provider delete action request content\n * @param callback Callback that will be triggered post deleting existing file(s) flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function deleteCloudStorageProviderFile(\n deleteFileRequest: CloudStorageProviderRequest<CloudStorageProviderDeleteFileContent>,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.deleteCloudStorageProviderFile] callback cannot be null');\n }\n\n if (\n !(\n deleteFileRequest &&\n deleteFileRequest.content &&\n deleteFileRequest.content.itemList &&\n deleteFileRequest.content.itemList.length > 0\n )\n ) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.deleteCloudStorageProviderFile] 3P cloud storage provider request content details are missing',\n );\n }\n\n sendMessageToParent('files.deleteCloudStorageProviderFile', [deleteFileRequest], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the download 3P cloud storage file(s) flow,\n * which will download existing file(s) from the given 3P provider in the teams client side without sharing any file info in the callback\n *\n * @param downloadFileRequest 3P cloud storage provider download file(s) action request content\n * @param callback Callback that will be triggered post downloading existing file(s) flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function downloadCloudStorageProviderFile(\n downloadFileRequest: CloudStorageProviderRequest<CloudStorageProviderDownloadFileContent>,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.downloadCloudStorageProviderFile] callback cannot be null',\n );\n }\n\n if (\n !(\n downloadFileRequest &&\n downloadFileRequest.content &&\n downloadFileRequest.content.itemList &&\n downloadFileRequest.content.itemList.length > 0\n )\n ) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.downloadCloudStorageProviderFile] 3P cloud storage provider request content details are missing',\n );\n }\n\n sendMessageToParent('files.downloadCloudStorageProviderFile', [downloadFileRequest], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the upload 3P cloud storage file(s) flow, which will upload file(s) to the given 3P provider\n * @beta\n *\n * @param uploadFileRequest 3P cloud storage provider upload file(s) action request content\n * @param callback Callback that will be triggered post uploading file(s) flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function uploadCloudStorageProviderFile(\n uploadFileRequest: CloudStorageProviderRequest<CloudStorageProviderUploadFileContent>,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.uploadCloudStorageProviderFile] callback cannot be null');\n }\n\n if (\n !(\n uploadFileRequest &&\n uploadFileRequest.content &&\n uploadFileRequest.content.itemList &&\n uploadFileRequest.content.itemList.length > 0\n )\n ) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.uploadCloudStorageProviderFile] 3P cloud storage provider request content details are missing',\n );\n }\n\n if (!uploadFileRequest.content.destinationFolder) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.uploadCloudStorageProviderFile] Invalid destination folder details',\n );\n }\n\n sendMessageToParent('files.uploadCloudStorageProviderFile', [uploadFileRequest], callback);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Register a handler to be called when a user's 3P cloud storage provider list changes i.e.\n * post adding / removing a 3P provider, list is updated\n *\n * @param handler - When 3P cloud storage provider list is updated this handler is called\n *\n * @internal Limited to Microsoft-internal use\n */\n export function registerCloudStorageProviderListChangeHandler(handler: () => void): void {\n ensureInitialized(runtime);\n\n if (!handler) {\n throw new Error('[registerCloudStorageProviderListChangeHandler] Handler cannot be null');\n }\n\n registerHandler('files.cloudStorageProviderListChange', handler);\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Register a handler to be called when a user's 3P cloud storage provider content changes i.e.\n * when file(s) is/are added / renamed / deleted / uploaded, the list of files is updated\n *\n * @param handler - When 3P cloud storage provider content is updated this handler is called\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerCloudStorageProviderContentChangeHandler(handler: () => void): void {\n ensureInitialized(runtime);\n\n if (!handler) {\n throw new Error('[registerCloudStorageProviderContentChangeHandler] Handler cannot be null');\n }\n\n registerHandler('files.cloudStorageProviderContentChange', handler);\n }\n\n function getSdkError(errorCode: ErrorCode, message: string): SdkError {\n const sdkError: SdkError = {\n errorCode: errorCode,\n message: message,\n };\n return sdkError;\n }\n}\n","import { sendAndHandleSdkError } from '../internal/communication';\nimport { registerHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace meetingRoom {\n /**\n * @hidden\n *\n * Data structure to represent a meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface MeetingRoomInfo {\n /**\n * @hidden\n * Endpoint id of the meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n endpointId: string;\n /**\n * @hidden\n * Device name of the meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n deviceName: string;\n /**\n * @hidden\n * Client type of the meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n clientType: string;\n /**\n * @hidden\n * Client version of the meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n clientVersion: string;\n }\n\n /**\n * @hidden\n * Type of Media control capabilities of a meeting room.\n */\n type MediaControls = 'toggleMute' | 'toggleCamera' | 'toggleCaptions' | 'volume';\n\n /**\n * @hidden\n * Types of Stage Layout control capabilities of a meeting room.\n */\n\n type StageLayoutControls =\n | 'showVideoGallery'\n | 'showContent'\n | 'showVideoGalleryAndContent'\n | 'showLargeGallery'\n | 'showTogether';\n\n /**\n * @hidden\n * Types of Meeting Control capabilities of a meeting room.\n */\n\n type MeetingControls = 'leaveMeeting';\n\n /**\n * @hidden\n * Types of Stage Layout State of a meeting room.\n */\n\n type StageLayoutStates = 'Gallery' | 'Content + gallery' | 'Content' | 'Large gallery' | 'Together mode';\n\n /**\n * @hidden\n * Data structure to represent capabilities of a meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface MeetingRoomCapability {\n /**\n * @hidden\n * Media control capabilities, value can be \"toggleMute\", \"toggleCamera\", \"toggleCaptions\", \"volume\".\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n mediaControls: MediaControls[];\n /**\n * @hidden\n * Main stage layout control capabilities, value can be \"showVideoGallery\", \"showContent\", \"showVideoGalleryAndContent\", \"showLargeGallery\", \"showTogether\".\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n stageLayoutControls: StageLayoutControls[];\n /**\n * @hidden\n * Meeting control capabilities, value can be \"leaveMeeting\".\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n meetingControls: MeetingControls[];\n }\n\n /**\n * @hidden\n * Data structure to represent states of a meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface MeetingRoomState {\n /**\n * @hidden\n * Current mute state, true: mute, false: unmute.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n toggleMute: boolean;\n /**\n * @hidden\n * Current camera state, true: camera on, false: camera off.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n toggleCamera: boolean;\n /**\n * @hidden\n * Current captions state, true: captions on, false: captions off.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n toggleCaptions: boolean;\n /**\n * @hidden\n * Current main stage layout state, value can be one of \"Gallery\", \"Content + gallery\", \"Content\", \"Large gallery\" and \"Together mode\".\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n stageLayout: StageLayoutStates;\n /**\n * @hidden\n * Current leaveMeeting state, true: leave, false: no-op.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n leaveMeeting: boolean;\n }\n\n /**\n * @hidden\n * Fetch the meeting room info that paired with current client.\n *\n * @returns Promise resolved with meeting room info or rejected with SdkError value\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getPairedMeetingRoomInfo(): Promise<MeetingRoomInfo> {\n return new Promise<MeetingRoomInfo>((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndHandleSdkError('meetingRoom.getPairedMeetingRoomInfo'));\n });\n }\n\n /**\n * @hidden\n * Send a command to paired meeting room.\n *\n * @param commandName The command name.\n * @returns Promise resolved upon completion or rejected with SdkError value\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function sendCommandToPairedMeetingRoom(commandName: string): Promise<void> {\n return new Promise<void>((resolve) => {\n if (!commandName || commandName.length == 0) {\n throw new Error('[meetingRoom.sendCommandToPairedMeetingRoom] Command name cannot be null or empty');\n }\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndHandleSdkError('meetingRoom.sendCommandToPairedMeetingRoom', commandName));\n });\n }\n\n /**\n * @hidden\n * Registers a handler for meeting room capabilities update.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler The handler to invoke when the capabilities of meeting room update.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerMeetingRoomCapabilitiesUpdateHandler(\n handler: (capabilities: MeetingRoomCapability) => void,\n ): void {\n if (!handler) {\n throw new Error('[meetingRoom.registerMeetingRoomCapabilitiesUpdateHandler] Handler cannot be null');\n }\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandler('meetingRoom.meetingRoomCapabilitiesUpdate', (capabilities: MeetingRoomCapability) => {\n ensureInitialized(runtime);\n handler(capabilities);\n });\n }\n\n /**\n * @hidden\n * Hide from docs\n * Registers a handler for meeting room states update.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler The handler to invoke when the states of meeting room update.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerMeetingRoomStatesUpdateHandler(handler: (states: MeetingRoomState) => void): void {\n if (!handler) {\n throw new Error('[meetingRoom.registerMeetingRoomStatesUpdateHandler] Handler cannot be null');\n }\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandler('meetingRoom.meetingRoomStatesUpdate', (states: MeetingRoomState) => {\n ensureInitialized(runtime);\n handler(states);\n });\n }\n\n /**\n * @hidden\n *\n * Checks if the meetingRoom capability is supported by the host\n * @returns boolean to represent whether the meetingRoom capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.meetingRoom ? true : false;\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\nimport { ShowNotificationParameters } from './interfaces';\n\nexport namespace notifications {\n /**\n * @hidden\n * display notification API.\n *\n * @param message - Notification message.\n * @param notificationType - Notification type\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function showNotification(showNotificationParameters: ShowNotificationParameters): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n sendMessageToParent('notifications.showNotification', [showNotificationParameters]);\n }\n\n /**\n * @hidden\n *\n * Checks if the notifications capability is supported by the host\n * @returns boolean to represent whether the notifications capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.notifications ? true : false;\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { registerHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { SdkError } from '../public/interfaces';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace remoteCamera {\n /**\n * @hidden\n * Data structure to represent patricipant details needed to request control of camera.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface Participant {\n /**\n * @hidden\n * Id of participant.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n id: string;\n /**\n * @hidden\n * Display name of participant.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n displayName?: string;\n /**\n * @hidden\n * Active indicates whether the participant's device is actively being controlled.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n active?: boolean;\n }\n\n /**\n * @hidden\n * Enum used to indicate possible camera control commands.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum ControlCommand {\n Reset = 'Reset',\n ZoomIn = 'ZoomIn',\n ZoomOut = 'ZoomOut',\n PanLeft = 'PanLeft',\n PanRight = 'PanRight',\n TiltUp = 'TiltUp',\n TiltDown = 'TiltDown',\n }\n\n /**\n * @hidden\n * Data structure to indicate the current state of the device.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface DeviceState {\n /**\n * @hidden\n * All operation are available to apply.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n available: boolean;\n /**\n * @hidden\n * Either camera doesnt support to get state or It unable to apply command.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n error: boolean;\n /**\n * @hidden\n * Reset max out or already applied. Client Disable Reset.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n reset: boolean;\n /**\n * @hidden\n * ZoomIn maxed out.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n zoomIn: boolean;\n /**\n * @hidden\n * ZoomOut maxed out.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n zoomOut: boolean;\n /**\n * @hidden\n * PanLeft reached max left.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n panLeft: boolean;\n /**\n * @hidden\n * PanRight reached max right.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n panRight: boolean;\n /**\n * @hidden\n * TiltUp reached top.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n tiltUp: boolean;\n /**\n * @hidden\n * TiltDown reached bottom.\n *\n * @internal Limited to Microsoft-internal use\n */\n tiltDown: boolean;\n }\n\n /**\n * @hidden\n * Enum used to indicate the reason for the error.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum ErrorReason {\n CommandResetError,\n CommandZoomInError,\n CommandZoomOutError,\n CommandPanLeftError,\n CommandPanRightError,\n CommandTiltUpError,\n CommandTiltDownError,\n SendDataError,\n }\n\n /**\n * @hidden\n * Data structure to indicate the status of the current session.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface SessionStatus {\n /**\n * @hidden\n * Whether the far-end user is controlling a device.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n inControl: boolean;\n /**\n * @hidden\n * Reason the control session was terminated.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n terminatedReason?: SessionTerminatedReason;\n }\n\n /**\n * @hidden\n * Enum used to indicate the reason the session was terminated.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum SessionTerminatedReason {\n None,\n ControlDenied,\n ControlNoResponse,\n ControlBusy,\n AckTimeout,\n ControlTerminated,\n ControllerTerminated,\n DataChannelError,\n ControllerCancelled,\n ControlDisabled,\n ControlTerminatedToAllowOtherController,\n }\n\n /**\n * @hidden\n * Fetch a list of the participants with controllable-cameras in a meeting.\n *\n * @param callback - Callback contains 2 parameters, error and participants.\n * error can either contain an error of type SdkError, incase of an error, or null when fetch is successful\n * participants can either contain an array of Participant objects, incase of a successful fetch or null when it fails\n * participants: object that contains an array of participants with controllable-cameras\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getCapableParticipants(\n callback: (error: SdkError | null, participants: Participant[] | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[remoteCamera.getCapableParticipants] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('remoteCamera.getCapableParticipants', callback);\n }\n\n /**\n * @hidden\n * Request control of a participant's camera.\n *\n * @param participant - Participant specifies the participant to send the request for camera control.\n * @param callback - Callback contains 2 parameters, error and requestResponse.\n * error can either contain an error of type SdkError, incase of an error, or null when fetch is successful\n * requestResponse can either contain the true/false value, incase of a successful request or null when it fails\n * requestResponse: True means request was accepted and false means request was denied\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function requestControl(\n participant: Participant,\n callback: (error: SdkError | null, requestResponse: boolean | null) => void,\n ): void {\n if (!participant) {\n throw new Error('[remoteCamera.requestControl] Participant cannot be null');\n }\n if (!callback) {\n throw new Error('[remoteCamera.requestControl] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('remoteCamera.requestControl', [participant], callback);\n }\n\n /**\n * @hidden\n * Send control command to the participant's camera.\n *\n * @param ControlCommand - ControlCommand specifies the command for controling the camera.\n * @param callback - Callback to invoke when the command response returns.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function sendControlCommand(ControlCommand: ControlCommand, callback: (error: SdkError | null) => void): void {\n if (!ControlCommand) {\n throw new Error('[remoteCamera.sendControlCommand] ControlCommand cannot be null');\n }\n if (!callback) {\n throw new Error('[remoteCamera.sendControlCommand] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('remoteCamera.sendControlCommand', [ControlCommand], callback);\n }\n\n /**\n * @hidden\n * Terminate the remote session\n *\n * @param callback - Callback to invoke when the command response returns.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function terminateSession(callback: (error: SdkError | null) => void): void {\n if (!callback) {\n throw new Error('[remoteCamera.terminateSession] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('remoteCamera.terminateSession', callback);\n }\n\n /**\n * @hidden\n * Registers a handler for change in participants with controllable-cameras.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the list of participants with controllable-cameras changes.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerOnCapableParticipantsChangeHandler(\n handler: (participantChange: Participant[]) => void,\n ): void {\n if (!handler) {\n throw new Error('[remoteCamera.registerOnCapableParticipantsChangeHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandler('remoteCamera.capableParticipantsChange', handler);\n }\n\n /**\n * @hidden\n * Registers a handler for error.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when there is an error from the camera handler.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerOnErrorHandler(handler: (error: ErrorReason) => void): void {\n if (!handler) {\n throw new Error('[remoteCamera.registerOnErrorHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandler('remoteCamera.handlerError', handler);\n }\n\n /**\n * @hidden\n * Registers a handler for device state change.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the controlled device changes state.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerOnDeviceStateChangeHandler(handler: (deviceStateChange: DeviceState) => void): void {\n if (!handler) {\n throw new Error('[remoteCamera.registerOnDeviceStateChangeHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandler('remoteCamera.deviceStateChange', handler);\n }\n\n /**\n * @hidden\n * Registers a handler for session status change.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the current session status changes.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerOnSessionStatusChangeHandler(handler: (sessionStatusChange: SessionStatus) => void): void {\n if (!handler) {\n throw new Error('[remoteCamera.registerOnSessionStatusChangeHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandler('remoteCamera.sessionStatusChange', handler);\n }\n\n /**\n * @hidden\n *\n * Checks if the remoteCamera capability is supported by the host\n * @returns boolean to represent whether the remoteCamera capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.remoteCamera ? true : false;\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { FrameContexts, SdkError } from '../public';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { runtime } from '../public/runtime';\n/**\n * @hidden\n * Namespace to interact with the application entities specific part of the SDK.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace appEntity {\n /**\n * @hidden\n *\n * Information on an app entity\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface AppEntity {\n /**\n * @hidden\n * ID of the application\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n appId: string;\n\n /**\n * @hidden\n * URL for the application's icon\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n appIconUrl: string;\n\n /**\n * @hidden\n * Content URL for the app entity\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n contentUrl: string;\n\n /**\n * @hidden\n * The display name for the app entity\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n displayName: string;\n\n /**\n * @hidden\n * Website URL for the app entity. It is meant to be opened by the user in a browser.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n websiteUrl: string;\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Open the Tab Gallery and retrieve the app entity\n * @param threadId ID of the thread where the app entity will be created\n * @param categories A list of application categories that will be displayed in the opened tab gallery\n * @param subEntityId An object that will be made available to the application being configured\n * through the Context's subEntityId field.\n * @param callback Callback that will be triggered once the app entity information is available.\n * The callback takes two arguments: an SdkError in case something happened (i.e.\n * no permissions to execute the API) and the app entity configuration, if available\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function selectAppEntity(\n threadId: string,\n categories: string[],\n subEntityId: string,\n callback: (sdkError?: SdkError, appEntity?: AppEntity) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (!threadId || threadId.length == 0) {\n throw new Error('[appEntity.selectAppEntity] threadId name cannot be null or empty');\n }\n\n if (!callback) {\n throw new Error('[appEntity.selectAppEntity] Callback cannot be null');\n }\n\n sendMessageToParent('appEntity.selectAppEntity', [threadId, categories, subEntityId], callback);\n }\n\n /**\n * @hidden\n *\n * Checks if the appEntity capability is supported by the host\n * @returns boolean to represent whether the appEntity capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.appEntity ? true : false;\n }\n}\n","import { sendAndUnwrap, sendMessageToParent } from '../internal/communication';\nimport { getUserJoinedTeamsSupportedAndroidClientVersion } from '../internal/constants';\nimport { GlobalVars } from '../internal/globalVars';\nimport { ensureInitialized, isCurrentSDKVersionAtLeast } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts, HostClientType } from '../public/constants';\nimport { ErrorCode, SdkError } from '../public/interfaces';\nimport { runtime } from '../public/runtime';\nimport { TeamInstanceParameters, UserJoinedTeamsInformation } from './interfaces';\n\n/**\n * @hidden\n * Namespace to interact with the `teams` specific part of the SDK.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace teams {\n export enum ChannelType {\n Regular = 0,\n Private = 1,\n Shared = 2,\n }\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface ChannelInfo {\n siteUrl: string;\n objectId: string;\n folderRelativeUrl: string;\n displayName: string;\n channelType: ChannelType;\n }\n\n /**\n * @hidden\n * Get a list of channels belong to a Team\n *\n * @param groupId - a team's objectId\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getTeamChannels(groupId: string, callback: (error: SdkError, channels: ChannelInfo[]) => void): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (!groupId) {\n throw new Error('[teams.getTeamChannels] groupId cannot be null or empty');\n }\n\n if (!callback) {\n throw new Error('[teams.getTeamChannels] Callback cannot be null');\n }\n\n sendMessageToParent('teams.getTeamChannels', [groupId], callback);\n }\n\n /**\n * @hidden\n * Allow 1st party apps to call this function when they receive migrated errors to inform the Hub/Host to refresh the siteurl\n * when site admin renames siteurl.\n *\n * @param threadId - ID of the thread where the app entity will be created; if threadId is not\n * provided, the threadId from route params will be used.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function refreshSiteUrl(threadId: string, callback: (error: SdkError) => void): void {\n ensureInitialized(runtime);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (!threadId) {\n throw new Error('[teams.refreshSiteUrl] threadId cannot be null or empty');\n }\n\n if (!callback) {\n throw new Error('[teams.refreshSiteUrl] Callback cannot be null');\n }\n\n sendMessageToParent('teams.refreshSiteUrl', [threadId], callback);\n }\n\n /**\n * @hidden\n *\n * Checks if teams capability is supported by the host\n * @returns boolean to represent whether the teams capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.teams ? true : false;\n }\n\n /**\n * @hidden\n * @internal\n * Limited to Microsoft-internal use\n */\n export namespace fullTrust {\n /**\n * @hidden\n * @internal\n * Limited to Microsoft-internal use\n */\n export namespace joinedTeams {\n /**\n * @hidden\n * Allows an app to retrieve information of all user joined teams\n *\n * @param teamInstanceParameters - Optional flags that specify whether to scope call to favorite teams\n * @returns Promise that resolves with information about the user joined teams or rejects with an error when the operation has completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getUserJoinedTeams(\n teamInstanceParameters?: TeamInstanceParameters,\n ): Promise<UserJoinedTeamsInformation> {\n return new Promise<UserJoinedTeamsInformation>((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (\n (GlobalVars.hostClientType === HostClientType.android ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsAndroid ||\n GlobalVars.hostClientType === HostClientType.teamsPhones ||\n GlobalVars.hostClientType === HostClientType.teamsDisplays) &&\n !isCurrentSDKVersionAtLeast(getUserJoinedTeamsSupportedAndroidClientVersion)\n ) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n throw new Error(JSON.stringify(oldPlatformError));\n }\n\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(sendAndUnwrap('getUserJoinedTeams', teamInstanceParameters));\n });\n }\n /**\n * @hidden\n *\n * Checks if teams.fullTrust.joinedTeams capability is supported by the host\n * @returns boolean to represent whether the teams.fullTrust.joinedTeams capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.teams\n ? runtime.supports.teams.fullTrust\n ? runtime.supports.teams.fullTrust.joinedTeams\n ? true\n : false\n : false\n : false;\n }\n }\n\n /**\n * @hidden\n * Allows an app to get the configuration setting value\n *\n * @param key - The key for the config setting\n * @returns Promise that resolves with the value for the provided configuration setting or rejects with an error when the operation has completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getConfigSetting(key: string): Promise<string> {\n return new Promise<string>((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndUnwrap('getConfigSetting', key));\n });\n }\n\n /**\n * @hidden\n *\n * Checks if teams.fullTrust capability is supported by the host\n * @returns boolean to represent whether the teams.fullTrust capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.teams\n ? runtime.supports.teams.fullTrust\n ? true\n : false\n : false;\n }\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { registerHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\nimport { video } from '../public/video';\n\n/**\n * @hidden\n * Extended video API\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace videoEx {\n /**\n * @hidden\n * Error level when notifying errors to the host, the host will decide what to do acording to the error level.\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum ErrorLevel {\n Fatal = 'fatal',\n Warn = 'warn',\n }\n /**\n * @hidden\n * Video frame configuration supplied to the host to customize the generated video frame parameters\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface VideoFrameConfig extends video.VideoFrameConfig {\n /**\n * @hidden\n * Flag to indicate use camera stream to synthesize video frame or not.\n * Default value is true.\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n requireCameraStream?: boolean;\n /**\n * @hidden\n * Machine learning model to run in the host to do audio inference for you\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n audioInferenceModel?: ArrayBuffer;\n }\n\n /**\n * @hidden\n * Represents a video frame\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface VideoFrame extends video.VideoFrame {\n /**\n * @hidden\n * The model output if you passed in an {@linkcode VideoFrameConfig.audioInferenceModel}\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n audioInferenceResult?: Uint8Array;\n }\n\n /**\n * @hidden\n * Video frame call back function\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type VideoFrameCallback = (\n frame: VideoFrame,\n notifyVideoFrameProcessed: () => void,\n notifyError: (errorMessage: string) => void,\n ) => void;\n\n /**\n * @hidden\n * Register to process video frames\n * @beta\n *\n * @param frameCallback - The callback to invoke when registerForVideoFrame has completed\n * @param config - VideoFrameConfig to customize generated video frame parameters\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerForVideoFrame(frameCallback: VideoFrameCallback, config: VideoFrameConfig): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n registerHandler(\n 'video.newVideoFrame',\n (videoFrame: VideoFrame) => {\n if (videoFrame) {\n const timestamp = videoFrame.timestamp;\n frameCallback(\n videoFrame,\n () => {\n notifyVideoFrameProcessed(timestamp);\n },\n notifyError,\n );\n }\n },\n false,\n );\n\n sendMessageToParent('video.registerForVideoFrame', [config]);\n }\n\n /**\n * @hidden\n * Video extension should call this to notify host that the current selected effect parameter changed.\n * If it's pre-meeting, host will call videoEffectCallback immediately then use the videoEffect.\n * If it's the in-meeting scenario, we will call videoEffectCallback when apply button clicked.\n * @beta\n * @param effectChangeType - the effect change type.\n * @param effectId - Newly selected effect id. {@linkcode VideoEffectCallBack}\n * @param effectParam Variant for the newly selected effect. {@linkcode VideoEffectCallBack}\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function notifySelectedVideoEffectChanged(\n effectChangeType: video.EffectChangeType,\n effectId: string | undefined,\n effectParam?: string,\n ): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('video.videoEffectChanged', [effectChangeType, effectId, effectParam]);\n }\n\n /**\n * @hidden\n * Video effect change call back function definition\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type VideoEffectCallBack = (effectId: string | undefined, effectParam?: string) => void;\n\n /**\n * @hidden\n * Register the video effect callback, host uses this to notify the video extension the new video effect will by applied\n * @beta\n * @param callback - The VideoEffectCallback to invoke when registerForVideoEffect has completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerForVideoEffect(callback: VideoEffectCallBack): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandler('video.effectParameterChange', callback, false);\n sendMessageToParent('video.registerForVideoEffect');\n }\n\n /**\n * @hidden\n * Personalized video effect\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface PersonalizedEffect {\n /**\n * Personalized effect id\n */\n id: string;\n /**\n * Display name\n */\n name: string;\n /**\n * Effect type defined by app\n */\n type: string;\n /**\n * Data URI of the thumbnail image content encoded in ASCII format using the base64 scheme\n */\n thumbnail: string;\n }\n\n /**\n * @hidden\n * Send personalized effects to Teams client\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function updatePersonalizedEffects(effects: PersonalizedEffect[]): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!video.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParent('video.personalizedEffectsChanged', [effects]);\n }\n\n /**\n * @hidden\n *\n * Checks if video capability is supported by the host\n * @beta\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @returns boolean to represent whether the video capability is supported\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n ensureInitialized(runtime);\n return video.isSupported();\n }\n\n /**\n * @hidden\n * Sending notification to host finished the video frame processing, now host can render this video frame\n * or pass the video frame to next one in video pipeline\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n function notifyVideoFrameProcessed(timestamp?: number): void {\n sendMessageToParent('video.videoFrameProcessed', [timestamp]);\n }\n\n /**\n * @hidden\n * Sending error notification to host\n * @beta\n * @param errorMessage - The error message that will be sent to the host\n * @param errorLevel - The error level that will be sent to the host\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n function notifyError(errorMessage: string, errorLevel: ErrorLevel = ErrorLevel.Warn): void {\n sendMessageToParent('video.notifyError', [errorMessage, errorLevel]);\n }\n\n /**\n * @hidden\n * Sending fatal error notification to host. Call this function only when your app meets fatal error and can't continue.\n * The host will stop the video pipeline and terminate this session, and optionally, show an error message to the user.\n * @beta\n * @param errorMessage - The error message that will be sent to the host\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function notifyFatalError(errorMessage: string): void {\n ensureInitialized(runtime);\n if (!video.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n notifyError(errorMessage, ErrorLevel.Fatal);\n }\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import React from 'react';\nexport default React.createContext(null);","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/* eslint-disable no-restricted-syntax */\nexport default function getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n var defaultProps = theme.props[name];\n var propName;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import React from 'react';\nexport var ReactReduxContext =\n/*#__PURE__*/\nReact.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, [\"reactReduxForwardedRef\"]);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer(React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a <Provider>, \") + \"or pass a custom React context provider to <Provider> and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, {}, stateProps, {}, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default\n/*#__PURE__*/\ncreateConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a <Provider>');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport var useStore =\n/*#__PURE__*/\ncreateStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n * <div>\r\n * <span>{value}</span>\r\n * <button onClick={increaseCounter}>Increase counter</button>\r\n * </div>\r\n * )\r\n * }\r\n */\n\nexport var useDispatch =\n/*#__PURE__*/\ncreateDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(storeState);\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production' && !selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return <div>{counter}</div>\r\n * }\r\n */\n\nexport var useSelector =\n/*#__PURE__*/\ncreateSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","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}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\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 var 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 var 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 \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var 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 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar 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 * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\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 var target = event.target;\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/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\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(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\n\nexport default function useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(isFocusVisible);\n }\n\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\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\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar 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: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (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 var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.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'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default breakpoints;","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<BrowserRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<HashRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return <a {...props} />;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Link> outside a <Router>\");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return <Link {...props} />;\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","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 _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // To deprecate in v4.1\n // warning(\n // false,\n // [\n // 'Material-UI: Theme.mixins.gutters() is deprecated.',\n // 'You can use the source of the mixin directly:',\n // `\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 // `,\n // ].join('\\n'),\n // );\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var 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.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: '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: grey[50]\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 var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: '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: grey[800],\n default: '#303030'\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 var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var 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\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // 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\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(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 var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createMuiTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createMuiTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, 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 var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: 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: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar 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 var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var 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: htmlFontSize,\n pxToRem: pxToRem,\n round: round,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar 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;","var shape = {\n borderRadius: 4\n};\nexport default shape;","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createMuiTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\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 muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://material-ui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nexport default createMuiTheme;","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/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 var url = 'https://material-ui.com/production-error/?code=' + code;\n\n for (var 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 Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\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 _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport { fade } from '../styles/colorManipulator';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n textAlign: 'center',\n flex: '0 0 auto',\n fontSize: theme.typography.pxToRem(24),\n padding: 12,\n borderRadius: '50%',\n overflow: 'visible',\n // Explicitly set the default value to solve a bug on IE 11.\n color: theme.palette.action.active,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n backgroundColor: fade(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 '&$disabled': {\n backgroundColor: 'transparent',\n color: theme.palette.action.disabled\n }\n },\n\n /* Styles applied to the root element if `edge=\"start\"`. */\n edgeStart: {\n marginLeft: -12,\n '$sizeSmall&': {\n marginLeft: -3\n }\n },\n\n /* Styles applied to the root element if `edge=\"end\"`. */\n edgeEnd: {\n marginRight: -12,\n '$sizeSmall&': {\n marginRight: -3\n }\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.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 },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.secondary.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 },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `size=\"small\"`. */\n sizeSmall: {\n padding: 3,\n fontSize: theme.typography.pxToRem(18)\n },\n\n /* Styles applied to the children container element. */\n label: {\n width: '100%',\n display: 'flex',\n alignItems: 'inherit',\n justifyContent: 'inherit'\n }\n };\n};\n/**\n * Refer to the [Icons](/components/icons/) section of the documentation\n * regarding the available icon options.\n */\n\nvar IconButton = /*#__PURE__*/React.forwardRef(function IconButton(props, ref) {\n var _props$edge = props.edge,\n edge = _props$edge === void 0 ? false : _props$edge,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'default' : _props$color,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableFocusRi = props.disableFocusRipple,\n disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n other = _objectWithoutProperties(props, [\"edge\", \"children\", \"classes\", \"className\", \"color\", \"disabled\", \"disableFocusRipple\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({\n className: clsx(classes.root, className, color !== 'default' && classes[\"color\".concat(capitalize(color))], disabled && classes.disabled, size === \"small\" && classes[\"size\".concat(capitalize(size))], {\n 'start': classes.edgeStart,\n 'end': classes.edgeEnd\n }[edge]),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(\"span\", {\n className: classes.label\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? IconButton.propTypes = {\n /**\n * The icon element.\n */\n children: chainPropTypes(PropTypes.node, function (props) {\n var found = React.Children.toArray(props.children).some(function (child) {\n return /*#__PURE__*/React.isValidElement(child) && child.props.onClick;\n });\n\n if (found) {\n return new Error(['Material-UI: You are providing an onClick event listener ' + 'to a child of a button element.', 'Firefox will never trigger the event.', 'You should move the onClick listener to the parent button element.', 'https://github.com/mui-org/material-ui/issues/13957'].join('\\n'));\n }\n\n return null;\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.isRequired,\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.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n /**\n * If `true`, the button will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple will be disabled.\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be 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 */\n edge: PropTypes.oneOf(['start', 'end', false]),\n\n /**\n * The size of the button.\n * `small` is equivalent to the dense button styling.\n */\n size: PropTypes.oneOf(['small', 'medium'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiIconButton'\n})(IconButton);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n fontSize: theme.typography.pxToRem(24),\n transition: theme.transitions.create('fill', {\n duration: theme.transitions.duration.shorter\n })\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color=\"action\"`. */\n colorAction: {\n color: theme.palette.action.active\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `color=\"disabled\"`. */\n colorDisabled: {\n color: theme.palette.action.disabled\n },\n\n /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n fontSizeInherit: {\n fontSize: 'inherit'\n },\n\n /* Styles applied to the root element if `fontSize=\"small\"`. */\n fontSizeSmall: {\n fontSize: theme.typography.pxToRem(20)\n },\n\n /* Styles applied to the root element if `fontSize=\"large\"`. */\n fontSizeLarge: {\n fontSize: theme.typography.pxToRem(35)\n }\n };\n};\nvar SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'inherit' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'svg' : _props$component,\n _props$fontSize = props.fontSize,\n fontSize = _props$fontSize === void 0 ? 'default' : _props$fontSize,\n htmlColor = props.htmlColor,\n titleAccess = props.titleAccess,\n _props$viewBox = props.viewBox,\n viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"titleAccess\", \"viewBox\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, color !== 'inherit' && classes[\"color\".concat(capitalize(color))], fontSize !== 'default' && classes[\"fontSize\".concat(capitalize(fontSize))]),\n focusable: \"false\",\n viewBox: viewBox,\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, other), children, titleAccess ? /*#__PURE__*/React.createElement(\"title\", null, titleAccess) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.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 * Node passed into the SVG element.\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 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 */\n color: PropTypes.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']),\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\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n */\n fontSize: PropTypes.oneOf(['default', 'inherit', 'large', 'small']),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\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 property.\n */\n shapeRendering: PropTypes.string,\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 */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default withStyles(styles, {\n name: 'MuiSvgIcon'\n})(SvgIcon);","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport withWidth, { isWidthDown, isWidthUp } from '../withWidth';\nimport useTheme from '../styles/useTheme';\n/**\n * @ignore - internal component.\n */\n\nfunction HiddenJs(props) {\n var children = props.children,\n only = props.only,\n width = props.width;\n var theme = useTheme();\n var visible = true; // `only` check is faster to get out sooner if used.\n\n if (only) {\n if (Array.isArray(only)) {\n for (var i = 0; i < only.length; i += 1) {\n var breakpoint = only[i];\n\n if (width === breakpoint) {\n visible = false;\n break;\n }\n }\n } else if (only && width === only) {\n visible = false;\n }\n } // Allow `only` to be combined with other props. If already hidden, no need to check others.\n\n\n if (visible) {\n // determine visibility based on the smallest size up\n for (var _i = 0; _i < theme.breakpoints.keys.length; _i += 1) {\n var _breakpoint = theme.breakpoints.keys[_i];\n var breakpointUp = props[\"\".concat(_breakpoint, \"Up\")];\n var breakpointDown = props[\"\".concat(_breakpoint, \"Down\")];\n\n if (breakpointUp && isWidthUp(_breakpoint, width) || breakpointDown && isWidthDown(_breakpoint, width)) {\n visible = false;\n break;\n }\n }\n }\n\n if (!visible) {\n return null;\n }\n\n return children;\n}\n\nHiddenJs.propTypes = {\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Specify which implementation to use. 'js' is the default, 'css' works better for\n * server-side rendering.\n */\n implementation: PropTypes.oneOf(['js', 'css']),\n\n /**\n * You can use this prop when choosing the `js` implementation with server-side rendering.\n *\n * As `window.innerWidth` is unavailable on the server,\n * we default to rendering an empty component during the first mount.\n * You might want to use an heuristic to approximate\n * the screen width of the client browser screen width.\n *\n * For instance, you could be using the user-agent or the client-hints.\n * https://caniuse.com/#search=client%20hint\n */\n initialWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n lgDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n lgUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n mdDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n mdUp: PropTypes.bool,\n\n /**\n * Hide the given breakpoint(s).\n */\n only: PropTypes.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), PropTypes.arrayOf(PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n smDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n smUp: PropTypes.bool,\n\n /**\n * @ignore\n * width prop provided by withWidth decorator.\n */\n width: PropTypes.string.isRequired,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xlDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xlUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xsDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xsUp: PropTypes.bool\n};\n\nif (process.env.NODE_ENV !== 'production') {\n HiddenJs.propTypes = exactProp(HiddenJs.propTypes);\n}\n\nexport default withWidth()(HiddenJs);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport capitalize from '../utils/capitalize';\nimport withStyles from '../styles/withStyles';\nimport useTheme from '../styles/useTheme';\n\nvar styles = function styles(theme) {\n var hidden = {\n display: 'none'\n };\n return theme.breakpoints.keys.reduce(function (acc, key) {\n acc[\"only\".concat(capitalize(key))] = _defineProperty({}, theme.breakpoints.only(key), hidden);\n acc[\"\".concat(key, \"Up\")] = _defineProperty({}, theme.breakpoints.up(key), hidden);\n acc[\"\".concat(key, \"Down\")] = _defineProperty({}, theme.breakpoints.down(key), hidden);\n return acc;\n }, {});\n};\n/**\n * @ignore - internal component.\n */\n\n\nfunction HiddenCss(props) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n only = props.only,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"only\"]);\n\n var theme = useTheme();\n\n if (process.env.NODE_ENV !== 'production') {\n var unknownProps = Object.keys(other).filter(function (propName) {\n var isUndeclaredBreakpoint = !theme.breakpoints.keys.some(function (breakpoint) {\n return \"\".concat(breakpoint, \"Up\") === propName || \"\".concat(breakpoint, \"Down\") === propName;\n });\n return isUndeclaredBreakpoint;\n });\n\n if (unknownProps.length > 0) {\n console.error(\"Material-UI: Unsupported props received by `<Hidden implementation=\\\"css\\\" />`: \".concat(unknownProps.join(', '), \". Did you forget to wrap this component in a ThemeProvider declaring these breakpoints?\"));\n }\n }\n\n var clsx = [];\n\n if (className) {\n clsx.push(className);\n }\n\n for (var i = 0; i < theme.breakpoints.keys.length; i += 1) {\n var breakpoint = theme.breakpoints.keys[i];\n var breakpointUp = props[\"\".concat(breakpoint, \"Up\")];\n var breakpointDown = props[\"\".concat(breakpoint, \"Down\")];\n\n if (breakpointUp) {\n clsx.push(classes[\"\".concat(breakpoint, \"Up\")]);\n }\n\n if (breakpointDown) {\n clsx.push(classes[\"\".concat(breakpoint, \"Down\")]);\n }\n }\n\n if (only) {\n var onlyBreakpoints = Array.isArray(only) ? only : [only];\n onlyBreakpoints.forEach(function (breakpoint) {\n clsx.push(classes[\"only\".concat(capitalize(breakpoint))]);\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: clsx.join(' ')\n }, children);\n}\n\nprocess.env.NODE_ENV !== \"production\" ? HiddenCss.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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Specify which implementation to use. 'js' is the default, 'css' works better for\n * server-side rendering.\n */\n implementation: PropTypes.oneOf(['js', 'css']),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n lgDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n lgUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n mdDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n mdUp: PropTypes.bool,\n\n /**\n * Hide the given breakpoint(s).\n */\n only: PropTypes.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), PropTypes.arrayOf(PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n smDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n smUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xlDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xlUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xsDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xsUp: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'PrivateHiddenCss'\n})(HiddenCss);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport HiddenJs from './HiddenJs';\nimport HiddenCss from './HiddenCss';\n/**\n * Responsively hides children based on the selected implementation.\n */\n\nfunction Hidden(props) {\n var _props$implementation = props.implementation,\n implementation = _props$implementation === void 0 ? 'js' : _props$implementation,\n _props$lgDown = props.lgDown,\n lgDown = _props$lgDown === void 0 ? false : _props$lgDown,\n _props$lgUp = props.lgUp,\n lgUp = _props$lgUp === void 0 ? false : _props$lgUp,\n _props$mdDown = props.mdDown,\n mdDown = _props$mdDown === void 0 ? false : _props$mdDown,\n _props$mdUp = props.mdUp,\n mdUp = _props$mdUp === void 0 ? false : _props$mdUp,\n _props$smDown = props.smDown,\n smDown = _props$smDown === void 0 ? false : _props$smDown,\n _props$smUp = props.smUp,\n smUp = _props$smUp === void 0 ? false : _props$smUp,\n _props$xlDown = props.xlDown,\n xlDown = _props$xlDown === void 0 ? false : _props$xlDown,\n _props$xlUp = props.xlUp,\n xlUp = _props$xlUp === void 0 ? false : _props$xlUp,\n _props$xsDown = props.xsDown,\n xsDown = _props$xsDown === void 0 ? false : _props$xsDown,\n _props$xsUp = props.xsUp,\n xsUp = _props$xsUp === void 0 ? false : _props$xsUp,\n other = _objectWithoutProperties(props, [\"implementation\", \"lgDown\", \"lgUp\", \"mdDown\", \"mdUp\", \"smDown\", \"smUp\", \"xlDown\", \"xlUp\", \"xsDown\", \"xsUp\"]);\n\n if (implementation === 'js') {\n return /*#__PURE__*/React.createElement(HiddenJs, _extends({\n lgDown: lgDown,\n lgUp: lgUp,\n mdDown: mdDown,\n mdUp: mdUp,\n smDown: smDown,\n smUp: smUp,\n xlDown: xlDown,\n xlUp: xlUp,\n xsDown: xsDown,\n xsUp: xsUp\n }, other));\n }\n\n return /*#__PURE__*/React.createElement(HiddenCss, _extends({\n lgDown: lgDown,\n lgUp: lgUp,\n mdDown: mdDown,\n mdUp: mdUp,\n smDown: smDown,\n smUp: smUp,\n xlDown: xlDown,\n xlUp: xlUp,\n xsDown: xsDown,\n xsUp: xsUp\n }, other));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Hidden.propTypes = {\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Specify which implementation to use. 'js' is the default, 'css' works better for\n * server-side rendering.\n */\n implementation: PropTypes.oneOf(['js', 'css']),\n\n /**\n * You can use this prop when choosing the `js` implementation with server-side rendering.\n *\n * As `window.innerWidth` is unavailable on the server,\n * we default to rendering an empty component during the first mount.\n * You might want to use an heuristic to approximate\n * the screen width of the client browser screen width.\n *\n * For instance, you could be using the user-agent or the client-hints.\n * https://caniuse.com/#search=client%20hint\n */\n initialWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n lgDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n lgUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n mdDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n mdUp: PropTypes.bool,\n\n /**\n * Hide the given breakpoint(s).\n */\n only: PropTypes.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), PropTypes.arrayOf(PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n smDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n smUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xlDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xlUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xsDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xsUp: PropTypes.bool\n} : void 0;\nexport default Hidden;","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar 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};\nvar _default = purple;\nexports.default = _default;","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n } // $FlowFixMe[prop-missing]\n\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule; // $FlowFixMe[prop-missing]\n\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n } // $FlowFixMe[prop-missing]\n\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\n\nexport default functionPlugin;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.rules = void 0;\n this.options = void 0;\n this.key = void 0;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString() {\n return this.rules.toString();\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.options = void 0;\n this.rule = void 0;\n this.isProcessed = false;\n this.key = void 0;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexport default jssGlobal;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n rule = rule;\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1 // $FlowFixMe[prop-missing]\n\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n container.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options) // Flow expects more options but they aren't required\n // And flow doesn't know this will always be a StyleRule which has the addRule method\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n .addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;\n","import hyphenate from 'hyphenate-style-name';\n\n/**\n * Convert camel cased property names to dash separated.\n *\n * @param {Object} style\n * @return {Object}\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n *\n * @param {Rule} rule\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default camelCase;\n","import { hasCSSTOMSupport } from 'jss';\n\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n *\n * @type object\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var _key in obj) {\n newObj[_key] = obj[_key];\n newObj[_key.replace(regExp, replace)] = obj[_key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default defaultUnit;\n","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };\n","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n\n/**\n * Add vendor prefix to a property name when needed.\n *\n * @api public\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssVendorPrefixer;\n","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexport default jssPropsSort;\n","import functions from 'jss-plugin-rule-value-function';\nimport global from 'jss-plugin-global';\nimport nested from 'jss-plugin-nested';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort'; // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nexport default function jssPreset() {\n return {\n plugins: [functions(), global(), nested(), camelCase(), defaultUnit(), // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : vendorPrefixer(), propsSort()]\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createSvgIcon;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"@material-ui/core/SvgIcon\"));\n\nfunction createSvgIcon(path, displayName) {\n var Component = _react.default.memo(_react.default.forwardRef(function (props, ref) {\n return _react.default.createElement(_SvgIcon.default, (0, _extends2.default)({\n ref: ref\n }, props), path);\n }));\n\n if (process.env.NODE_ENV !== 'production') {\n Component.displayName = \"\".concat(displayName, \"Icon\");\n }\n\n Component.muiName = _SvgIcon.default.muiName;\n return Component;\n}","export { default } from './SvgIcon';","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","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;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function isPlainObject(item) {\n return item && _typeof(item) === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? _extends({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}","/** @license React v16.13.1\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\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.13.1\";\n","/** @license React v16.13.1\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(u(227));\nfunction ba(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var da=!1,ea=null,fa=!1,ha=null,ia={onError:function(a){da=!0;ea=a}};function ja(a,b,c,d,e,f,g,h,k){da=!1;ea=null;ba.apply(ia,arguments)}function ka(a,b,c,d,e,f,g,h,k){ja.apply(this,arguments);if(da){if(da){var l=ea;da=!1;ea=null}else throw Error(u(198));fa||(fa=!0,ha=l)}}var la=null,ma=null,na=null;\nfunction oa(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=na(c);ka(d,b,void 0,a);a.currentTarget=null}var pa=null,qa={};\nfunction ra(){if(pa)for(var a in qa){var b=qa[a],c=pa.indexOf(a);if(!(-1<c))throw Error(u(96,a));if(!sa[c]){if(!b.extractEvents)throw Error(u(97,a));sa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;if(ta.hasOwnProperty(h))throw Error(u(99,h));ta[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ua(k[e],g,h);e=!0}else f.registrationName?(ua(f.registrationName,g,h),e=!0):e=!1;if(!e)throw Error(u(98,d,a));}}}}\nfunction ua(a,b,c){if(va[a])throw Error(u(100,a));va[a]=b;wa[a]=b.eventTypes[c].dependencies}var sa=[],ta={},va={},wa={};function xa(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!qa.hasOwnProperty(c)||qa[c]!==d){if(qa[c])throw Error(u(102,c));qa[c]=d;b=!0}}b&&ra()}var ya=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),za=null,Aa=null,Ba=null;\nfunction Ca(a){if(a=ma(a)){if(\"function\"!==typeof za)throw Error(u(280));var b=a.stateNode;b&&(b=la(b),za(a.stateNode,a.type,b))}}function Da(a){Aa?Ba?Ba.push(a):Ba=[a]:Aa=a}function Ea(){if(Aa){var a=Aa,b=Ba;Ba=Aa=null;Ca(a);if(b)for(a=0;a<b.length;a++)Ca(b[a])}}function Fa(a,b){return a(b)}function Ga(a,b,c,d,e){return a(b,c,d,e)}function Ha(){}var Ia=Fa,Ja=!1,Ka=!1;function La(){if(null!==Aa||null!==Ba)Ha(),Ea()}\nfunction Ma(a,b,c){if(Ka)return a(b,c);Ka=!0;try{return Ia(a,b,c)}finally{Ka=!1,La()}}var Na=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Oa=Object.prototype.hasOwnProperty,Pa={},Qa={};\nfunction Ra(a){if(Oa.call(Qa,a))return!0;if(Oa.call(Pa,a))return!1;if(Na.test(a))return Qa[a]=!0;Pa[a]=!0;return!1}function Sa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction Ta(a,b,c,d){if(null===b||\"undefined\"===typeof b||Sa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f){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}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(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(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(Ta(b,c,e,d)&&(c=null),d||null===e?Ra(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar Ya=/^(.*)[\\\\\\/]/,E=\"function\"===typeof Symbol&&Symbol.for,Za=E?Symbol.for(\"react.element\"):60103,$a=E?Symbol.for(\"react.portal\"):60106,ab=E?Symbol.for(\"react.fragment\"):60107,bb=E?Symbol.for(\"react.strict_mode\"):60108,cb=E?Symbol.for(\"react.profiler\"):60114,db=E?Symbol.for(\"react.provider\"):60109,eb=E?Symbol.for(\"react.context\"):60110,fb=E?Symbol.for(\"react.concurrent_mode\"):60111,gb=E?Symbol.for(\"react.forward_ref\"):60112,hb=E?Symbol.for(\"react.suspense\"):60113,ib=E?Symbol.for(\"react.suspense_list\"):\n60120,jb=E?Symbol.for(\"react.memo\"):60115,kb=E?Symbol.for(\"react.lazy\"):60116,lb=E?Symbol.for(\"react.block\"):60121,mb=\"function\"===typeof Symbol&&Symbol.iterator;function nb(a){if(null===a||\"object\"!==typeof a)return null;a=mb&&a[mb]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function ob(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}}\nfunction pb(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 ab:return\"Fragment\";case $a:return\"Portal\";case cb:return\"Profiler\";case bb:return\"StrictMode\";case hb:return\"Suspense\";case ib:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case eb:return\"Context.Consumer\";case db:return\"Context.Provider\";case gb:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\n\"ForwardRef\");case jb:return pb(a.type);case lb:return pb(a.render);case kb:if(a=1===a._status?a._result:null)return pb(a)}return null}function qb(a){var b=\"\";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c=\"\";break a;default:var d=a._debugOwner,e=a._debugSource,f=pb(a.type);c=null;d&&(c=pb(d.type));d=f;f=\"\";e?f=\" (at \"+e.fileName.replace(Ya,\"\")+\":\"+e.lineNumber+\")\":c&&(f=\" (created by \"+c+\")\");c=\"\\n in \"+(d||\"Unknown\")+f}b+=c;a=a.return}while(a);return b}\nfunction rb(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function sb(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction tb(a){var b=sb(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 xb(a){a._valueTracker||(a._valueTracker=tb(a))}function yb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=sb(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function zb(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}\nfunction Ab(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=rb(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 Bb(a,b){b=b.checked;null!=b&&Xa(a,\"checked\",b,!1)}\nfunction Cb(a,b){Bb(a,b);var c=rb(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\")?Db(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&Db(a,b.type,rb(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Eb(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 Db(a,b,c){if(\"number\"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function Fb(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function Gb(a,b){a=n({children:void 0},b);if(b=Fb(b.children))a.children=b;return a}\nfunction Hb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+rb(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Ib(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(u(91));return n({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Jb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(u(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)oa(a,b[d],c[d]);else b&&oa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function mc(a){null!==a&&(kc=ic(kc,a));a=kc;kc=null;if(a){jc(a,lc);if(kc)throw Error(u(95));if(fa)throw a=ha,fa=!1,ha=null,a;}}\nfunction nc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function oc(a){if(!ya)return!1;a=\"on\"+a;var b=a in document;b||(b=document.createElement(\"div\"),b.setAttribute(a,\"return;\"),b=\"function\"===typeof b[a]);return b}var pc=[];function qc(a){a.topLevelType=null;a.nativeEvent=null;a.targetInst=null;a.ancestors.length=0;10>pc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=nc(a.nativeEvent);d=a.topLevelType;var f=a.nativeEvent,g=a.eventSystemFlags;0===c&&(g|=64);for(var h=null,k=0;k<sa.length;k++){var l=sa[k];l&&(l=l.extractEvents(d,b,f,e,g))&&(h=\nic(h,l))}mc(h)}}function uc(a,b,c){if(!c.has(a)){switch(a){case \"scroll\":vc(b,\"scroll\",!0);break;case \"focus\":case \"blur\":vc(b,\"focus\",!0);vc(b,\"blur\",!0);c.set(\"blur\",null);c.set(\"focus\",null);break;case \"cancel\":case \"close\":oc(a)&&vc(b,a,!0);break;case \"invalid\":case \"submit\":case \"reset\":break;default:-1===ac.indexOf(a)&&F(a,b)}c.set(a,null)}}\nvar wc,xc,yc,zc=!1,Ac=[],Bc=null,Cc=null,Dc=null,Ec=new Map,Fc=new Map,Gc=[],Hc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),Ic=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction Jc(a,b){var c=cc(b);Hc.forEach(function(a){uc(a,b,c)});Ic.forEach(function(a){uc(a,b,c)})}function Kc(a,b,c,d,e){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:e,container:d}}\nfunction Lc(a,b){switch(a){case \"focus\":case \"blur\":Bc=null;break;case \"dragenter\":case \"dragleave\":Cc=null;break;case \"mouseover\":case \"mouseout\":Dc=null;break;case \"pointerover\":case \"pointerout\":Ec.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Fc.delete(b.pointerId)}}function Mc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=Kc(b,c,d,e,f),null!==b&&(b=Nc(b),null!==b&&xc(b)),a;a.eventSystemFlags|=d;return a}\nfunction Oc(a,b,c,d,e){switch(b){case \"focus\":return Bc=Mc(Bc,a,b,c,d,e),!0;case \"dragenter\":return Cc=Mc(Cc,a,b,c,d,e),!0;case \"mouseover\":return Dc=Mc(Dc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Ec.set(f,Mc(Ec.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Fc.set(f,Mc(Fc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Pc(a){var b=tc(a.target);if(null!==b){var c=dc(b);if(null!==c)if(b=c.tag,13===b){if(b=ec(c),null!==b){a.blockedOn=b;r.unstable_runWithPriority(a.priority,function(){yc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Qc(a){if(null!==a.blockedOn)return!1;var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);if(null!==b){var c=Nc(b);null!==c&&xc(c);a.blockedOn=b;return!1}return!0}\nfunction Sc(a,b,c){Qc(a)&&c.delete(b)}function Tc(){for(zc=!1;0<Ac.length;){var a=Ac[0];if(null!==a.blockedOn){a=Nc(a.blockedOn);null!==a&&wc(a);break}var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);null!==b?a.blockedOn=b:Ac.shift()}null!==Bc&&Qc(Bc)&&(Bc=null);null!==Cc&&Qc(Cc)&&(Cc=null);null!==Dc&&Qc(Dc)&&(Dc=null);Ec.forEach(Sc);Fc.forEach(Sc)}function Uc(a,b){a.blockedOn===b&&(a.blockedOn=null,zc||(zc=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Tc)))}\nfunction Vc(a){function b(b){return Uc(b,a)}if(0<Ac.length){Uc(Ac[0],a);for(var c=1;c<Ac.length;c++){var d=Ac[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Bc&&Uc(Bc,a);null!==Cc&&Uc(Cc,a);null!==Dc&&Uc(Dc,a);Ec.forEach(b);Fc.forEach(b);for(c=0;c<Gc.length;c++)d=Gc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Gc.length&&(c=Gc[0],null===c.blockedOn);)Pc(c),null===c.blockedOn&&Gc.shift()}\nvar Wc={},Yc=new Map,Zc=new Map,$c=[\"abort\",\"abort\",Xb,\"animationEnd\",Yb,\"animationIteration\",Zb,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\n\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",$b,\"transitionEnd\",\"waiting\",\"waiting\"];function ad(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1],f=\"on\"+(e[0].toUpperCase()+e.slice(1));f={phasedRegistrationNames:{bubbled:f,captured:f+\"Capture\"},dependencies:[d],eventPriority:b};Zc.set(d,b);Yc.set(d,f);Wc[e]=f}}\nad(\"blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0);\nad(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);ad($c,2);for(var bd=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),cd=0;cd<bd.length;cd++)Zc.set(bd[cd],0);\nvar dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function F(a,b){vc(b,a,!1)}function vc(a,b,c){var d=Zc.get(b);switch(void 0===d?2:d){case 0:d=gd.bind(null,b,1,a);break;case 1:d=hd.bind(null,b,1,a);break;default:d=id.bind(null,b,1,a)}c?a.addEventListener(b,d,!0):a.addEventListener(b,d,!1)}function gd(a,b,c,d){Ja||Ha();var e=id,f=Ja;Ja=!0;try{Ga(e,a,b,c,d)}finally{(Ja=f)||La()}}function hd(a,b,c,d){ed(dd,id.bind(null,a,b,c,d))}\nfunction id(a,b,c,d){if(fd)if(0<Ac.length&&-1<Hc.indexOf(a))a=Kc(null,a,b,c,d),Ac.push(a);else{var e=Rc(a,b,c,d);if(null===e)Lc(a,d);else if(-1<Hc.indexOf(a))a=Kc(e,a,b,c,d),Ac.push(a);else if(!Oc(e,a,b,c,d)){Lc(a,d);a=rc(a,d,null,b);try{Ma(sc,a)}finally{qc(a)}}}}\nfunction Rc(a,b,c,d){c=nc(d);c=tc(c);if(null!==c){var e=dc(c);if(null===e)c=null;else{var f=e.tag;if(13===f){c=ec(e);if(null!==c)return c;c=null}else if(3===f){if(e.stateNode.hydrate)return 3===e.tag?e.stateNode.containerInfo:null;c=null}else e!==c&&(c=null)}}a=rc(a,d,c,b);try{Ma(sc,a)}finally{qc(a)}return null}\nvar jd={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},kd=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(jd).forEach(function(a){kd.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);jd[b]=jd[a]})});function ld(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||jd.hasOwnProperty(a)&&jd[a]?(\"\"+b).trim():b+\"px\"}\nfunction md(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ld(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var nd=n({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 od(a,b){if(b){if(nd[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(u(137,a,\"\"));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(u(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(u(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(u(62,\"\"));}}\nfunction pd(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 qd=Mb.html;function rd(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=cc(a);b=wa[b];for(var d=0;d<b.length;d++)uc(b[d],a,c)}function sd(){}\nfunction td(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}}function ud(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function vd(a,b){var c=ud(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=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=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();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=td(a.document)}return b}\nfunction yd(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)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0<b--;)Td(c[b],\"captured\",a);for(b=0;b<c.length;b++)Td(c[b],\"bubbled\",a)}}\nfunction Vd(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Sd(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a))}function Wd(a){a&&a.dispatchConfig.registrationName&&Vd(a._targetInst,null,a)}function Xd(a){jc(a,Ud)}var Yd=null,Zd=null,$d=null;\nfunction ae(){if($d)return $d;var a,b=Zd,c=b.length,d,e=\"value\"in Yd?Yd.value:Yd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return $d=e.slice(a,1<d?1-d:void 0)}function be(){return!0}function ce(){return!1}\nfunction G(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?be:ce;this.isPropagationStopped=ce;return this}\nn(G.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=be)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=be)},persist:function(){this.isPersistent=be},isPersistent:ce,destructor:function(){var a=this.constructor.Interface,\nb;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=ce;this._dispatchInstances=this._dispatchListeners=null}});G.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nG.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;de(c);return c};de(G);function ee(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction fe(a){if(!(a instanceof this))throw Error(u(279));a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8<ke&&11>=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!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.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return me&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar ve={eventTypes:oe,extractEvents:function(a,b,c,d){var e;if(je)b:{switch(a){case \"compositionstart\":var f=oe.compositionStart;break b;case \"compositionend\":f=oe.compositionEnd;break b;case \"compositionupdate\":f=oe.compositionUpdate;break b}f=void 0}else se?qe(a,c)&&(f=oe.compositionEnd):\"keydown\"===a&&229===c.keyCode&&(f=oe.compositionStart);f?(me&&\"ko\"!==c.locale&&(se||f!==oe.compositionStart?f===oe.compositionEnd&&se&&(e=ae()):(Yd=d,Zd=\"value\"in Yd?Yd.value:Yd.textContent,se=!0)),f=ge.getPooled(f,\nb,c,d),e?f.data=e:(e=re(c),null!==e&&(f.data=e)),Xd(f),e=f):e=null;(a=le?te(a,c):ue(a,c))?(b=he.getPooled(oe.beforeInput,b,c,d),b.data=a,Xd(b)):b=null;return null===e?b:null===b?e:[e,b]}},we={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!we[a.type]:\"textarea\"===b?!0:!1}\nvar ye={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function ze(a,b,c){a=G.getPooled(ye.change,a,b,c);a.type=\"change\";Da(c);Xd(a);return a}var Ae=null,Be=null;function Ce(a){mc(a)}function De(a){var b=Pd(a);if(yb(b))return a}function Ee(a,b){if(\"change\"===a)return b}var Fe=!1;ya&&(Fe=oc(\"input\")&&(!document.documentMode||9<document.documentMode));\nfunction Ge(){Ae&&(Ae.detachEvent(\"onpropertychange\",He),Be=Ae=null)}function He(a){if(\"value\"===a.propertyName&&De(Be))if(a=ze(Be,a,nc(a)),Ja)mc(a);else{Ja=!0;try{Fa(Ce,a)}finally{Ja=!1,La()}}}function Ie(a,b,c){\"focus\"===a?(Ge(),Ae=b,Be=c,Ae.attachEvent(\"onpropertychange\",He)):\"blur\"===a&&Ge()}function Je(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return De(Be)}function Ke(a,b){if(\"click\"===a)return De(b)}function Le(a,b){if(\"input\"===a||\"change\"===a)return De(b)}\nvar Me={eventTypes:ye,_isInputEventSupported:Fe,extractEvents:function(a,b,c,d){var e=b?Pd(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Ee;else if(xe(e))if(Fe)g=Le;else{g=Je;var h=Ie}else(f=e.nodeName)&&\"input\"===f.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)&&(g=Ke);if(g&&(g=g(a,b)))return ze(g,c,d);h&&h(a,e,b);\"blur\"===a&&(a=e._wrapperState)&&a.controlled&&\"number\"===e.type&&Db(e,\"number\",e.value)}},Ne=G.extend({view:null,detail:null}),\nOe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pe(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Oe[a])?!!b[a]:!1}function Qe(){return Pe}\nvar Re=0,Se=0,Te=!1,Ue=!1,Ve=Ne.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Qe,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=Re;Re=a.screenX;return Te?\"mousemove\"===a.type?a.screenX-b:0:(Te=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;\nvar b=Se;Se=a.screenY;return Ue?\"mousemove\"===a.type?a.screenY-b:0:(Ue=!0,0)}}),We=Ve.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xe={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",\ndependencies:[\"pointerout\",\"pointerover\"]}},Ye={eventTypes:Xe,extractEvents:function(a,b,c,d,e){var f=\"mouseover\"===a||\"pointerover\"===a,g=\"mouseout\"===a||\"pointerout\"===a;if(f&&0===(e&32)&&(c.relatedTarget||c.fromElement)||!g&&!f)return null;f=d.window===d?d:(f=d.ownerDocument)?f.defaultView||f.parentWindow:window;if(g){if(g=b,b=(b=c.relatedTarget||c.toElement)?tc(b):null,null!==b){var h=dc(b);if(b!==h||5!==b.tag&&6!==b.tag)b=null}}else g=null;if(g===b)return null;if(\"mouseout\"===a||\"mouseover\"===\na){var k=Ve;var l=Xe.mouseLeave;var m=Xe.mouseEnter;var p=\"mouse\"}else if(\"pointerout\"===a||\"pointerover\"===a)k=We,l=Xe.pointerLeave,m=Xe.pointerEnter,p=\"pointer\";a=null==g?f:Pd(g);f=null==b?f:Pd(b);l=k.getPooled(l,g,c,d);l.type=p+\"leave\";l.target=a;l.relatedTarget=f;c=k.getPooled(m,b,c,d);c.type=p+\"enter\";c.target=f;c.relatedTarget=a;d=g;p=b;if(d&&p)a:{k=d;m=p;g=0;for(a=k;a;a=Rd(a))g++;a=0;for(b=m;b;b=Rd(b))a++;for(;0<g-a;)k=Rd(k),g--;for(;0<a-g;)m=Rd(m),a--;for(;g--;){if(k===m||k===m.alternate)break a;\nk=Rd(k);m=Rd(m)}k=null}else k=null;m=k;for(k=[];d&&d!==m;){g=d.alternate;if(null!==g&&g===m)break;k.push(d);d=Rd(d)}for(d=[];p&&p!==m;){g=p.alternate;if(null!==g&&g===m)break;d.push(p);p=Rd(p)}for(p=0;p<k.length;p++)Vd(k[p],\"bubbled\",l);for(p=d.length;0<p--;)Vd(d[p],\"captured\",c);return 0===(e&64)?[l]:[l,c]}};function Ze(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var $e=\"function\"===typeof Object.is?Object.is:Ze,af=Object.prototype.hasOwnProperty;\nfunction bf(a,b){if($e(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!af.call(b,c[d])||!$e(a[c[d]],b[c[d]]))return!1;return!0}\nvar cf=ya&&\"documentMode\"in document&&11>=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;g<f.length;g++)if(!e.has(f[g])){e=!1;break a}e=!0}f=!e}if(f)return null;e=b?Pd(b):window;switch(a){case \"focus\":if(xe(e)||\"true\"===e.contentEditable)ef=e,ff=b,gf=null;break;case \"blur\":gf=ff=ef=null;break;case \"mousedown\":hf=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":return hf=!1,jf(c,d);case \"selectionchange\":if(cf)break;\ncase \"keydown\":case \"keyup\":return jf(c,d)}return null}},lf=G.extend({animationName:null,elapsedTime:null,pseudoElement:null}),mf=G.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),nf=Ne.extend({relatedTarget:null});function of(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar pf={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},qf={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},rf=Ne.extend({key:function(a){if(a.key){var b=pf[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=of(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?qf[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Qe,charCode:function(a){return\"keypress\"===\na.type?of(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?of(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),sf=Ve.extend({dataTransfer:null}),tf=Ne.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Qe}),uf=G.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),vf=Ve.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in\na?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),wf={eventTypes:Wc,extractEvents:function(a,b,c,d){var e=Yc.get(a);if(!e)return null;switch(a){case \"keypress\":if(0===of(c))return null;case \"keydown\":case \"keyup\":a=rf;break;case \"blur\":case \"focus\":a=nf;break;case \"click\":if(2===c.button)return null;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":a=\nVe;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":a=sf;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":a=tf;break;case Xb:case Yb:case Zb:a=lf;break;case $b:a=uf;break;case \"scroll\":a=Ne;break;case \"wheel\":a=vf;break;case \"copy\":case \"cut\":case \"paste\":a=mf;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":a=\nWe;break;default:a=G}b=a.getPooled(e,b,c,d);Xd(b);return b}};if(pa)throw Error(u(101));pa=Array.prototype.slice.call(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));ra();var xf=Nc;la=Qd;ma=xf;na=Pd;xa({SimpleEventPlugin:wf,EnterLeaveEventPlugin:Ye,ChangeEventPlugin:Me,SelectEventPlugin:kf,BeforeInputEventPlugin:ve});var yf=[],zf=-1;function H(a){0>zf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Wf=null}catch(c){throw null!==Wf&&(Wf=Wf.slice(a+1)),Jf(Of,gg),c;}finally{Yf=!1}}}function hg(a,b,c){c/=10;return 1073741821-(((1073741821-a+b/10)/c|0)+1)*c}function ig(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}var jg={current:null},kg=null,lg=null,mg=null;function ng(){mg=lg=kg=null}\nfunction og(a){var b=jg.current;H(jg);a.type._context._currentValue=b}function pg(a,b){for(;null!==a;){var c=a.alternate;if(a.childExpirationTime<b)a.childExpirationTime=b,null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);else if(null!==c&&c.childExpirationTime<b)c.childExpirationTime=b;else break;a=a.return}}function qg(a,b){kg=a;mg=lg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(a.expirationTime>=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(g<d){var ca={expirationTime:z.expirationTime,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null};null===x?(p=x=\nca,m=k):x=x.next=ca;g>l&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=e;e=c;if(\"function\"!==typeof d)throw Error(u(191,d));d.call(e)}}}var Dg=Wa.ReactCurrentBatchConfig,Eg=(new aa.Component).refs;function Fg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;0===a.expirationTime&&(a.updateQueue.baseState=c)}\nvar Jg={isMounted:function(a){return(a=a._reactInternalFiber)?dc(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Gg(),d=Dg.suspense;\nc=Hg(c,a,d);d=wg(c,d);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);xg(a,d);Ig(a,c)}};function Kg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!bf(c,d)||!bf(e,f):!0}\nfunction Lg(a,b,c){var d=!1,e=Af;var f=b.contextType;\"object\"===typeof f&&null!==f?f=sg(f):(e=L(b)?Bf:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Cf(a,e):Af);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Jg;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Mg(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Jg.enqueueReplaceState(b,b.state,null)}\nfunction Ng(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Eg;ug(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=sg(f):(f=L(b)?Bf:J.current,e.context=Cf(a,f));zg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Fg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Jg.enqueueReplaceState(e,e.state,null),zg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Og=Array.isArray;\nfunction Pg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(u(309));var d=c.stateNode}if(!d)throw Error(u(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Eg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(u(284));if(!c._owner)throw Error(u(290,a));}return a}\nfunction Qg(a,b){if(\"textarea\"!==a.type)throw Error(u(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\"));}\nfunction Rg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Sg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Tg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Pg(a,b,c),d.return=a,d;d=Ug(c.type,c.key,c.props,null,a.mode,d);d.ref=Pg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==\nc.implementation)return b=Vg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Wg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function p(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Tg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Za:return c=Ug(b.type,b.key,b.props,null,a.mode,c),c.ref=Pg(a,null,b),c.return=a,c;case $a:return b=Vg(b,a.mode,c),b.return=a,b}if(Og(b)||\nnb(b))return b=Wg(b,a.mode,c,null),b.return=a,b;Qg(a,b)}return null}function x(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Za:return c.key===e?c.type===ab?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case $a:return c.key===e?l(a,b,c,d):null}if(Og(c)||nb(c))return null!==e?null:m(a,b,c,d,null);Qg(a,c)}return null}function z(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=\na.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Za:return a=a.get(null===d.key?c:d.key)||null,d.type===ab?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case $a:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Og(d)||nb(d))return a=a.get(c)||null,m(b,a,d,e,null);Qg(b,d)}return null}function ca(e,g,h,k){for(var l=null,t=null,m=g,y=g=0,A=null;null!==m&&y<h.length;y++){m.index>y?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;y<h.length;y++)m=p(e,h[y],k),null!==m&&(g=f(m,g,y),null===t?l=m:t.sibling=m,t=m);return l}for(m=d(e,m);y<h.length;y++)A=z(m,e,y,h[y],k),null!==A&&(a&&null!==A.alternate&&m.delete(null===A.key?y:A.key),g=f(A,g,y),null===t?l=A:t.sibling=A,t=A);a&&m.forEach(function(a){return b(e,a)});return l}function D(e,g,h,l){var k=nb(h);if(\"function\"!==typeof k)throw Error(u(150));h=k.call(h);\nif(null==h)throw Error(u(151));for(var m=k=null,t=g,y=g=0,A=null,q=h.next();null!==t&&!q.done;y++,q=h.next()){t.index>y?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(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===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!$e(a[c],b[c]))return!1;return!0}\nfunction oh(a,b,c,d,e,f){lh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.expirationTime=0;jh.current=null===a||null===a.memoizedState?ph:qh;a=c(d,e);if(b.expirationTime===lh){f=0;do{b.expirationTime=0;if(!(25>f))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(l<lh){var m={expirationTime:k.expirationTime,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=m,f=d):h=h.next=m;l>N.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97<d?97:d,function(){var d=kh.suspense;kh.suspense=void 0===b?null:b;try{a(!1),c()}finally{kh.suspense=d}})}\nfunction zh(a,b,c){var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e={expirationTime:d,suspenseConfig:e,action:c,eagerReducer:null,eagerState:null,next:null};var f=b.pending;null===f?e.next=e:(e.next=f.next,f.next=e);b.pending=e;f=a.alternate;if(a===N||null!==f&&f===N)mh=!0,e.expirationTime=lh,N.expirationTime=lh;else{if(0===a.expirationTime&&(null===f||0===f.expirationTime)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.eagerReducer=f;e.eagerState=h;if($e(h,g))return}catch(k){}finally{}Ig(a,\nd)}}\nvar sh={readContext:sg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},ph={readContext:sg,useCallback:Kh,useContext:sg,useEffect:Eh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ch(4,2,Hh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ch(4,2,a,b)},useMemo:function(a,b){var c=th();b=void 0===b?null:b;a=a();c.memoizedState=[a,\nb];return a},useReducer:function(a,b,c){var d=th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=zh.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=th();a={current:a};return b.memoizedState=a},useState:yh,useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=yh(a),d=c[0],e=c[1];Eh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=\nc}},[a,b]);return d},useTransition:function(a){var b=yh(!1),c=b[0];b=b[1];return[Kh(Nh.bind(null,b,a),[b,a]),c]}},qh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:wh,useRef:Bh,useState:function(){return wh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=wh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=\nwh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,b,a),[b,a]),c]}},rh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:xh,useRef:Bh,useState:function(){return xh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=xh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=xh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,\nb,a),[b,a]),c]}},Oh=null,Ph=null,Qh=!1;function Rh(a,b){var c=Sh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction Th(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction Uh(a){if(Qh){var b=Ph;if(b){var c=b;if(!Th(a,b)){b=Jd(c.nextSibling);if(!b||!Th(a,b)){a.effectTag=a.effectTag&-1025|2;Qh=!1;Oh=a;return}Rh(Oh,c)}Oh=a;Ph=Jd(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,Qh=!1,Oh=a}}function Vh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Oh=a}\nfunction Wh(a){if(a!==Oh)return!1;if(!Qh)return Vh(a),Qh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Gd(b,a.memoizedProps))for(b=Ph;b;)Rh(a,b),b=Jd(b.nextSibling);Vh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===Ad){if(0===b){Ph=Jd(a.nextSibling);break a}b--}else c!==zd&&c!==Cd&&c!==Bd||b++}a=a.nextSibling}Ph=null}}else Ph=Oh?Jd(a.stateNode.nextSibling):null;return!0}\nfunction Xh(){Ph=Oh=null;Qh=!1}var Yh=Wa.ReactCurrentOwner,rg=!1;function R(a,b,c,d){b.child=null===a?Yg(b,null,c,d):Xg(b,a.child,c,d)}function Zh(a,b,c,d,e){c=c.render;var f=b.ref;qg(b,e);d=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction ai(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!bi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ci(a,b,g,d,e,f);a=Ug(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:bf,c(e,d)&&a.ref===b.ref))return $h(a,b,f);b.effectTag|=1;a=Sg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ci(a,b,c,d,e,f){return null!==a&&bf(a.memoizedProps,d)&&a.ref===b.ref&&(rg=!1,e<f)?(b.expirationTime=a.expirationTime,$h(a,b,f)):di(a,b,c,d,f)}function ei(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function di(a,b,c,d,e){var f=L(c)?Bf:J.current;f=Cf(b,f);qg(b,e);c=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,c,e);return b.child}\nfunction fi(a,b,c,d,e){if(L(c)){var f=!0;Gf(b)}else f=!1;qg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Lg(b,c,d),Ng(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=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l));var m=c.getDerivedStateFromProps,p=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;p||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l);tg=!1;var x=b.memoizedState;g.state=x;zg(b,d,g,e);k=b.memoizedState;h!==d||x!==k||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),k=b.memoizedState),(h=tg||Kg(b,c,h,d,x,k,l))?(p||\"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.effectTag|=4)):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,vg(a,b),h=b.memoizedProps,g.props=b.type===b.elementType?h:ig(b.type,h),k=g.context,l=c.contextType,\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l)),m=c.getDerivedStateFromProps,(p=\"function\"===typeof m||\"function\"===\ntypeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l),tg=!1,k=b.memoizedState,g.state=k,zg(b,d,g,e),x=b.memoizedState,h!==d||k!==x||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),x=b.memoizedState),(m=tg||Kg(b,c,h,d,k,x,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,l),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,l)),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=l,d=m):\n(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return gi(a,b,c,d,f,e)}\nfunction gi(a,b,c,d,e,f){ei(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Hf(b,c,!1),$h(a,b,f);d=b.stateNode;Yh.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=Xg(b,a.child,null,f),b.child=Xg(b,null,h,f)):R(a,b,h,f);b.memoizedState=d.state;e&&Hf(b,c,!0);return b.child}function hi(a){var b=a.stateNode;b.pendingContext?Ef(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Ef(a,b.context,!1);dh(a,b.containerInfo)}\nvar ii={dehydrated:null,retryTime:0};\nfunction ji(a,b,c){var d=b.mode,e=b.pendingProps,f=M.current,g=!1,h;(h=0!==(b.effectTag&64))||(h=0!==(f&2)&&(null===a||null!==a.memoizedState));h?(g=!0,b.effectTag&=-65):null!==a&&null===a.memoizedState||void 0===e.fallback||!0===e.unstable_avoidThisFallback||(f|=1);I(M,f&1);if(null===a){void 0!==e.fallback&&Uh(b);if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=\nb;e.sibling=c;b.memoizedState=ii;b.child=e;return c}d=e.children;b.memoizedState=null;return b.child=Yg(b,null,d,c)}if(null!==a.memoizedState){a=a.child;d=a.sibling;if(g){e=e.fallback;c=Sg(a,a.pendingProps);c.return=b;if(0===(b.mode&2)&&(g=null!==b.memoizedState?b.child.child:b.child,g!==a.child))for(c.child=g;null!==g;)g.return=c,g=g.sibling;d=Sg(d,e);d.return=b;c.sibling=d;c.childExpirationTime=0;b.memoizedState=ii;b.child=c;return d}c=Xg(b,a.child,e.children,c);b.memoizedState=null;return b.child=\nc}a=a.child;if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;e.child=a;null!==a&&(a.return=e);if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=b;e.sibling=c;c.effectTag|=2;e.childExpirationTime=0;b.memoizedState=ii;b.child=e;return c}b.memoizedState=null;return b.child=Xg(b,a,e.children,c)}\nfunction ki(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);pg(a.return,b)}function li(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailExpiration:0,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailExpiration=0,g.tailMode=e,g.lastEffect=f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;R(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.effectTag|=64;else{if(null!==a&&0!==(a.effectTag&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&ki(a,c);else if(19===a.tag)ki(a,c);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}I(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===hh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);li(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}li(b,!0,c,null,f,b.lastEffect);break;case \"together\":li(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction $h(a,b,c){null!==a&&(b.dependencies=a.dependencies);var d=b.expirationTime;0!==d&&Bg(d);if(b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child)throw Error(u(153));if(null!==b.child){a=b.child;c=Sg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Sg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}var ni,oi,pi,qi;\nni=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};oi=function(){};\npi=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;ch($g.current);a=null;switch(c){case \"input\":f=zb(g,f);d=zb(g,d);a=[];break;case \"option\":f=Gb(g,f);d=Gb(g,d);a=[];break;case \"select\":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case \"textarea\":f=Ib(g,f);d=Ib(g,d);a=[];break;default:\"function\"!==typeof f.onClick&&\"function\"===typeof d.onClick&&(g.onclick=sd)}od(c,d);var h,k;c=null;for(h in f)if(!d.hasOwnProperty(h)&&f.hasOwnProperty(h)&&null!=f[h])if(\"style\"===\nh)for(k in g=f[h],g)g.hasOwnProperty(k)&&(c||(c={}),c[k]=\"\");else\"dangerouslySetInnerHTML\"!==h&&\"children\"!==h&&\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(va.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in d){var l=d[h];g=null!=f?f[h]:void 0;if(d.hasOwnProperty(h)&&l!==g&&(null!=l||null!=g))if(\"style\"===h)if(g){for(k in g)!g.hasOwnProperty(k)||l&&l.hasOwnProperty(k)||(c||(c={}),c[k]=\"\");for(k in l)l.hasOwnProperty(k)&&g[k]!==l[k]&&(c||(c={}),\nc[k]=l[k])}else c||(a||(a=[]),a.push(h,c)),c=l;else\"dangerouslySetInnerHTML\"===h?(l=l?l.__html:void 0,g=g?g.__html:void 0,null!=l&&g!==l&&(a=a||[]).push(h,l)):\"children\"===h?g===l||\"string\"!==typeof l&&\"number\"!==typeof l||(a=a||[]).push(h,\"\"+l):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&(va.hasOwnProperty(h)?(null!=l&&rd(e,h),a||g===l||(a=[])):(a=a||[]).push(h,l))}c&&(a=a||[]).push(\"style\",c);e=a;if(b.updateQueue=e)b.effectTag|=4}};\nqi=function(a,b,c,d){c!==d&&(b.effectTag|=4)};function ri(a,b){switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction si(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return L(b.type)&&Df(),null;case 3:return eh(),H(K),H(J),c=b.stateNode,c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),null!==a&&null!==a.child||!Wh(b)||(b.effectTag|=4),oi(b),null;case 5:gh(b);c=ch(bh.current);var e=b.type;if(null!==a&&null!=b.stateNode)pi(a,b,e,d,c),a.ref!==b.ref&&(b.effectTag|=128);else{if(!d){if(null===b.stateNode)throw Error(u(166));\nreturn null}a=ch($g.current);if(Wh(b)){d=b.stateNode;e=b.type;var f=b.memoizedProps;d[Md]=b;d[Nd]=f;switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<ac.length;a++)F(ac[a],d);break;case \"source\":F(\"error\",d);break;case \"img\":case \"image\":case \"link\":F(\"error\",d);F(\"load\",d);break;case \"form\":F(\"reset\",d);F(\"submit\",d);break;case \"details\":F(\"toggle\",d);break;case \"input\":Ab(d,f);F(\"invalid\",d);rd(c,\"onChange\");break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};F(\"invalid\",d);rd(c,\"onChange\");break;case \"textarea\":Jb(d,f),F(\"invalid\",d),rd(c,\"onChange\")}od(e,f);a=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(a=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(a=[\"children\",\"\"+h]):va.hasOwnProperty(g)&&null!=h&&rd(c,g)}switch(e){case \"input\":xb(d);Eb(d,f,!0);break;case \"textarea\":xb(d);Lb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&\n(d.onclick=sd)}c=a;b.updateQueue=c;null!==c&&(b.effectTag|=4)}else{g=9===c.nodeType?c:c.ownerDocument;a===qd&&(a=Nb(e));a===qd?\"script\"===e?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;h<ac.length;h++)F(ac[h],a);h=d;break;case \"source\":F(\"error\",a);h=d;break;case \"img\":case \"image\":case \"link\":F(\"error\",a);F(\"load\",a);h=d;break;case \"form\":F(\"reset\",a);F(\"submit\",a);h=d;break;case \"details\":F(\"toggle\",a);h=d;break;case \"input\":Ab(a,d);h=zb(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;case \"option\":h=Gb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};h=n({},d,{value:void 0});F(\"invalid\",a);rd(c,\"onChange\");break;case \"textarea\":Jb(a,\nd);h=Ib(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;default:h=d}od(e,h);var k=h;for(f in k)if(k.hasOwnProperty(f)){var l=k[f];\"style\"===f?md(a,l):\"dangerouslySetInnerHTML\"===f?(l=l?l.__html:void 0,null!=l&&Qb(a,l)):\"children\"===f?\"string\"===typeof l?(\"textarea\"!==e||\"\"!==l)&&Rb(a,l):\"number\"===typeof l&&Rb(a,\"\"+l):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(va.hasOwnProperty(f)?null!=l&&rd(c,f):null!=l&&Xa(a,f,l,g))}switch(e){case \"input\":xb(a);Eb(a,d,!1);\nbreak;case \"textarea\":xb(a);Lb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+rb(d.value));break;case \"select\":a.multiple=!!d.multiple;c=d.value;null!=c?Hb(a,!!d.multiple,c,!1):null!=d.defaultValue&&Hb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof h.onClick&&(a.onclick=sd)}Fd(e,d)&&(b.effectTag|=4)}null!==b.ref&&(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)qi(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(u(166));\nc=ch(bh.current);ch($g.current);Wh(b)?(c=b.stateNode,d=b.memoizedProps,c[Md]=b,c.nodeValue!==d&&(b.effectTag|=4)):(c=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),c[Md]=b,b.stateNode=c)}return null;case 13:H(M);d=b.memoizedState;if(0!==(b.effectTag&64))return b.expirationTime=c,b;c=null!==d;d=!1;null===a?void 0!==b.memoizedProps.fallback&&Wh(b):(e=a.memoizedState,d=null!==e,c||null===e||(e=a.child.sibling,null!==e&&(f=b.firstEffect,null!==f?(b.firstEffect=e,e.nextEffect=f):(b.firstEffect=b.lastEffect=\ne,e.nextEffect=null),e.effectTag=8)));if(c&&!d&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))S===ti&&(S=ui);else{if(S===ti||S===ui)S=vi;0!==wi&&null!==T&&(xi(T,U),yi(T,wi))}if(c||d)b.effectTag|=4;return null;case 4:return eh(),oi(b),null;case 10:return og(b),null;case 17:return L(b.type)&&Df(),null;case 19:H(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.effectTag&64);f=d.rendering;if(null===f)if(e)ri(d,!1);else{if(S!==ti||null!==a&&0!==(a.effectTag&\n64))for(f=b.child;null!==f;){a=hh(f);if(null!==a){b.effectTag|=64;ri(d,!1);e=a.updateQueue;null!==e&&(b.updateQueue=e,b.effectTag|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;for(d=b.child;null!==d;)e=d,f=c,e.effectTag&=2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,a=e.alternate,null===a?(e.childExpirationTime=0,e.expirationTime=f,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null):(e.childExpirationTime=a.childExpirationTime,\ne.expirationTime=a.expirationTime,e.child=a.child,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,f=a.dependencies,e.dependencies=null===f?null:{expirationTime:f.expirationTime,firstContext:f.firstContext,responders:f.responders}),d=d.sibling;I(M,M.current&1|2);return b.child}f=f.sibling}}else{if(!e)if(a=hh(f),null!==a){if(b.effectTag|=64,e=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.effectTag|=4),ri(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate)return b=\nb.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*$f()-d.renderingStartTime>d.tailExpiration&&1<c&&(b.effectTag|=64,e=!0,ri(d,!1),b.expirationTime=b.childExpirationTime=c-1);d.isBackwards?(f.sibling=b.child,b.child=f):(c=d.last,null!==c?c.sibling=f:b.child=f,d.last=f)}return null!==d.tail?(0===d.tailExpiration&&(d.tailExpiration=$f()+500),c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=$f(),c.sibling=null,b=M.current,I(M,e?b&1|2:b&1),c):null}throw Error(u(156,\nb.tag));}function zi(a){switch(a.tag){case 1:L(a.type)&&Df();var b=a.effectTag;return b&4096?(a.effectTag=b&-4097|64,a):null;case 3:eh();H(K);H(J);b=a.effectTag;if(0!==(b&64))throw Error(u(285));a.effectTag=b&-4097|64;return a;case 5:return gh(a),null;case 13:return H(M),b=a.effectTag,b&4096?(a.effectTag=b&-4097|64,a):null;case 19:return H(M),null;case 4:return eh(),null;case 10:return og(a),null;default:return null}}function Ai(a,b){return{value:a,source:b,stack:qb(b)}}\nvar Bi=\"function\"===typeof WeakSet?WeakSet:Set;function Ci(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=qb(c));null!==c&&pb(c.type);b=b.value;null!==a&&1===a.tag&&pb(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Di(a,b){try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){Ei(a,c)}}function Fi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Ei(a,c)}else b.current=null}\nfunction Gi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ig(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(u(163));}\nfunction Hi(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.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}function Ii(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)}}\nfunction Ji(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:Ii(3,c);return;case 1:a=c.stateNode;if(c.effectTag&4)if(null===b)a.componentDidMount();else{var d=c.elementType===c.type?b.memoizedProps:ig(c.type,b.memoizedProps);a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}b=c.updateQueue;null!==b&&Cg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Cg(c,b,a)}return;\ncase 5:a=c.stateNode;null===b&&c.effectTag&4&&Fd(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Vc(c))));return;case 19:case 17:case 20:case 21:return}throw Error(u(163));}\nfunction Ki(a,b,c){\"function\"===typeof Li&&Li(b);switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a.next;cg(97<c?97:c,function(){var a=d;do{var c=a.destroy;if(void 0!==c){var g=b;try{c()}catch(h){Ei(g,h)}}a=a.next}while(a!==d)})}break;case 1:Fi(b);c=b.stateNode;\"function\"===typeof c.componentWillUnmount&&Di(b,c);break;case 5:Fi(b);break;case 4:Mi(a,b,c)}}\nfunction Ni(a){var b=a.alternate;a.return=null;a.child=null;a.memoizedState=null;a.updateQueue=null;a.dependencies=null;a.alternate=null;a.firstEffect=null;a.lastEffect=null;a.pendingProps=null;a.memoizedProps=null;a.stateNode=null;null!==b&&Ni(b)}function Oi(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Pi(a){a:{for(var b=a.return;null!==b;){if(Oi(b)){var c=b;break a}b=b.return}throw Error(u(160));}b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(u(161));}c.effectTag&16&&(Rb(b,\"\"),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Oi(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.effectTag&2)continue b;\nif(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}d?Qi(a,c,b):Ri(a,c,b)}\nfunction Qi(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=sd));else if(4!==d&&(a=a.child,null!==a))for(Qi(a,b,c),a=a.sibling;null!==a;)Qi(a,b,c),a=a.sibling}\nfunction Ri(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Ri(a,b,c),a=a.sibling;null!==a;)Ri(a,b,c),a=a.sibling}\nfunction Mi(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(u(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(Ki(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(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Ki(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&&(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Si(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Hi(3,b);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){c[Nd]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Bb(c,d);pd(a,e);b=pd(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?md(c,h):\"dangerouslySetInnerHTML\"===g?Qb(c,h):\"children\"===g?Rb(c,h):Xa(c,g,h,b)}switch(a){case \"input\":Cb(c,d);break;\ncase \"textarea\":Kb(c,d);break;case \"select\":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?Hb(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?Hb(c,!!d.multiple,d.defaultValue,!0):Hb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(u(162));b.stateNode.nodeValue=b.memoizedProps;return;case 3:b=b.stateNode;b.hydrate&&(b.hydrate=!1,Vc(b.containerInfo));return;case 12:return;case 13:c=b;null===b.memoizedState?\nd=!1:(d=!0,c=b.child,Ti=$f());if(null!==c)a:for(a=c;;){if(5===a.tag)f=a.stateNode,d?(f=f.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(f=a.stateNode,e=a.memoizedProps.style,e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null,f.style.display=ld(\"display\",e));else if(6===a.tag)a.stateNode.nodeValue=d?\"\":a.memoizedProps;else if(13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated){f=a.child.sibling;f.return=a;a=\nf;continue}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===c)break;for(;null===a.sibling;){if(null===a.return||a.return===c)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}Ui(b);return;case 19:Ui(b);return;case 17:return}throw Error(u(163));}function Ui(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Bi);b.forEach(function(b){var d=Vi.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nvar Wi=\"function\"===typeof WeakMap?WeakMap:Map;function Xi(a,b,c){c=wg(c,null);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Yi||(Yi=!0,Zi=d);Ci(a,b)};return c}\nfunction $i(a,b,c){c=wg(c,null);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ci(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===aj?aj=new Set([this]):aj.add(this),Ci(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nvar bj=Math.ceil,cj=Wa.ReactCurrentDispatcher,dj=Wa.ReactCurrentOwner,V=0,ej=8,fj=16,gj=32,ti=0,hj=1,ij=2,ui=3,vi=4,jj=5,W=V,T=null,X=null,U=0,S=ti,kj=null,lj=1073741823,mj=1073741823,nj=null,wi=0,oj=!1,Ti=0,pj=500,Y=null,Yi=!1,Zi=null,aj=null,qj=!1,rj=null,sj=90,tj=null,uj=0,vj=null,wj=0;function Gg(){return(W&(fj|gj))!==V?1073741821-($f()/10|0):0!==wj?wj:wj=1073741821-($f()/10|0)}\nfunction Hg(a,b,c){b=b.mode;if(0===(b&2))return 1073741823;var d=ag();if(0===(b&4))return 99===d?1073741823:1073741822;if((W&fj)!==V)return U;if(null!==c)a=hg(a,c.timeoutMs|0||5E3,250);else switch(d){case 99:a=1073741823;break;case 98:a=hg(a,150,100);break;case 97:case 96:a=hg(a,5E3,250);break;case 95:a=2;break;default:throw Error(u(326));}null!==T&&a===U&&--a;return a}\nfunction Ig(a,b){if(50<uj)throw uj=0,vj=null,Error(u(185));a=xj(a,b);if(null!==a){var c=ag();1073741823===b?(W&ej)!==V&&(W&(fj|gj))===V?yj(a):(Z(a),W===V&&gg()):Z(a);(W&4)===V||98!==c&&99!==c||(null===tj?tj=new Map([[a,b]]):(c=tj.get(a),(void 0===c||c>b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}null!==e&&(T===e&&(Bg(b),S===vi&&xi(e,U)),yi(e,b));return e}\nfunction zj(a){var b=a.lastExpiredTime;if(0!==b)return b;b=a.firstPendingTime;if(!Aj(a,b))return b;var c=a.lastPingedTime;a=a.nextKnownPendingLevel;a=c>a?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2<c?2:c);break;case ui:xi(a,c);d=a.lastSuspendedTime;\nc===d&&(a.nextKnownPendingLevel=Ij(e));if(1073741823===lj&&(e=Ti+pj-$f(),10<e)){if(oj){var f=a.lastPingedTime;if(0===f||f>=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c<d&&(d=c));if(10<d){a.timeoutHandle=Hd(Jj.bind(null,a),d);break}Jj(a);break;case jj:if(1073741823!==lj&&null!==nj){f=lj;var g=nj;d=g.busyMinDurationMs|0;0>=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10<d){xi(a,c);a.timeoutHandle=\nHd(Jj.bind(null,a),d);break}}Jj(a);break;default:throw Error(u(329));}Z(a);if(a.callbackNode===b)return Bj.bind(null,a)}}return null}\nfunction yj(a){var b=a.lastExpiredTime;b=0!==b?b:1073741823;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&b===U||Ej(a,b);if(null!==X){var c=W;W|=fj;var d=Fj();do try{Kj();break}catch(e){Hj(a,e)}while(1);ng();W=c;cj.current=d;if(S===hj)throw c=kj,Ej(a,b),xi(a,b),Z(a),c;if(null!==X)throw Error(u(261));a.finishedWork=a.current.alternate;a.finishedExpirationTime=b;T=null;Jj(a);Z(a)}return null}function Lj(){if(null!==tj){var a=tj;tj=null;a.forEach(function(a,c){Cj(c,a);Z(c)});gg()}}\nfunction Mj(a,b){var c=W;W|=1;try{return a(b)}finally{W=c,W===V&&gg()}}function Nj(a,b){var c=W;W&=-2;W|=ej;try{return a(b)}finally{W=c,W===V&&gg()}}\nfunction Ej(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Id(c));if(null!==X)for(c=X.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Df();break;case 3:eh();H(K);H(J);break;case 5:gh(d);break;case 4:eh();break;case 13:H(M);break;case 19:H(M);break;case 10:og(d)}c=c.return}T=a;X=Sg(a.current,null);U=b;S=ti;kj=null;mj=lj=1073741823;nj=null;wi=0;oj=!1}\nfunction Hj(a,b){do{try{ng();jh.current=sh;if(mh)for(var c=N.memoizedState;null!==c;){var d=c.queue;null!==d&&(d.pending=null);c=c.next}lh=0;P=O=N=null;mh=!1;if(null===X||null===X.return)return S=hj,kj=b,X=null;a:{var e=a,f=X.return,g=X,h=b;b=U;g.effectTag|=2048;g.firstEffect=g.lastEffect=null;if(null!==h&&\"object\"===typeof h&&\"function\"===typeof h.then){var k=h;if(0===(g.mode&2)){var l=g.alternate;l?(g.updateQueue=l.updateQueue,g.memoizedState=l.memoizedState,g.expirationTime=l.expirationTime):(g.updateQueue=\nnull,g.memoizedState=null)}var m=0!==(M.current&1),p=f;do{var x;if(x=13===p.tag){var z=p.memoizedState;if(null!==z)x=null!==z.dehydrated?!0:!1;else{var ca=p.memoizedProps;x=void 0===ca.fallback?!1:!0!==ca.unstable_avoidThisFallback?!0:m?!1:!0}}if(x){var D=p.updateQueue;if(null===D){var t=new Set;t.add(k);p.updateQueue=t}else D.add(k);if(0===(p.mode&2)){p.effectTag|=64;g.effectTag&=-2981;if(1===g.tag)if(null===g.alternate)g.tag=17;else{var y=wg(1073741823,null);y.tag=2;xg(g,y)}g.expirationTime=1073741823;\nbreak a}h=void 0;g=b;var A=e.pingCache;null===A?(A=e.pingCache=new Wi,h=new Set,A.set(k,h)):(h=A.get(k),void 0===h&&(h=new Set,A.set(k,h)));if(!h.has(g)){h.add(g);var q=Oj.bind(null,e,k,g);k.then(q,q)}p.effectTag|=4096;p.expirationTime=b;break a}p=p.return}while(null!==p);h=Error((pb(g.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){a<lj&&2<a&&(lj=a);null!==b&&a<mj&&2<a&&(mj=a,nj=b)}function Bg(a){a>wi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1<X.effectTag&&(null!==\na.lastEffect?a.lastEffect.nextEffect=X:a.firstEffect=X,a.lastEffect=X))}else{b=zi(X);if(null!==b)return b.effectTag&=2047,b;null!==a&&(a.firstEffect=a.lastEffect=null,a.effectTag|=2048)}b=X.sibling;if(null!==b)return b;X=a}while(null!==X);S===ti&&(S=jj);return null}function Ij(a){var b=a.expirationTime;a=a.childExpirationTime;return b>a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1<c.effectTag?null!==c.lastEffect?(c.lastEffect.nextEffect=c,e=c.firstEffect):e=c:e=c.firstEffect;if(null!==e){var f=W;W|=gj;dj.current=null;Dd=fd;var g=xd();if(yd(g)){if(\"selectionStart\"in g)var h={start:g.selectionStart,end:g.selectionEnd};else a:{h=(h=g.ownerDocument)&&h.defaultView||window;var k=h.getSelection&&h.getSelection();if(k&&0!==k.rangeCount){h=k.anchorNode;var l=k.anchorOffset,\nm=k.focusNode;k=k.focusOffset;try{h.nodeType,m.nodeType}catch(wb){h=null;break a}var p=0,x=-1,z=-1,ca=0,D=0,t=g,y=null;b:for(;;){for(var A;;){t!==h||0!==l&&3!==t.nodeType||(x=p+l);t!==m||0!==k&&3!==t.nodeType||(z=p+k);3===t.nodeType&&(p+=t.nodeValue.length);if(null===(A=t.firstChild))break;y=t;t=A}for(;;){if(t===g)break b;y===h&&++ca===l&&(x=p);y===m&&++D===k&&(z=p);if(null!==(A=t.nextSibling))break;t=y;y=t.parentNode}t=A}h=-1===x||-1===z?null:{start:x,end:z}}else h=null}h=h||{start:0,end:0}}else h=\nnull;Ed={activeElementDetached:null,focusedElem:g,selectionRange:h};fd=!1;Y=e;do try{Tj()}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=e;do try{for(g=a,h=b;null!==Y;){var q=Y.effectTag;q&16&&Rb(Y.stateNode,\"\");if(q&128){var B=Y.alternate;if(null!==B){var w=B.ref;null!==w&&(\"function\"===typeof w?w(null):w.current=null)}}switch(q&1038){case 2:Pi(Y);Y.effectTag&=-3;break;case 6:Pi(Y);Y.effectTag&=-3;Si(Y.alternate,Y);break;case 1024:Y.effectTag&=-1025;break;case 1028:Y.effectTag&=\n-1025;Si(Y.alternate,Y);break;case 4:Si(Y.alternate,Y);break;case 8:l=Y,Mi(g,l,h),Ni(l)}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);w=Ed;B=xd();q=w.focusedElem;h=w.selectionRange;if(B!==q&&q&&q.ownerDocument&&wd(q.ownerDocument.documentElement,q)){null!==h&&yd(q)&&(B=h.start,w=h.end,void 0===w&&(w=B),\"selectionStart\"in q?(q.selectionStart=B,q.selectionEnd=Math.min(w,q.value.length)):(w=(B=q.ownerDocument||document)&&B.defaultView||window,w.getSelection&&\n(w=w.getSelection(),l=q.textContent.length,g=Math.min(h.start,l),h=void 0===h.end?g:Math.min(h.end,l),!w.extend&&g>h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q<B.length;q++)w=B[q],w.element.scrollLeft=w.left,w.element.scrollTop=w.top}fd=!!Dd;Ed=Dd=null;a.current=c;Y=e;do try{for(q=a;null!==Y;){var ub=Y.effectTag;ub&36&&Ji(q,Y.alternate,Y);if(ub&128){B=void 0;var vb=Y.ref;if(null!==vb){var Xc=Y.stateNode;switch(Y.tag){case 5:B=Xc;break;default:B=Xc}\"function\"===typeof vb?vb(B):vb.current=B}}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=\nnull;Vf();W=f}else a.current=c;if(qj)qj=!1,rj=a,sj=b;else for(Y=e;null!==Y;)b=Y.nextEffect,Y.nextEffect=null,Y=b;b=a.firstPendingTime;0===b&&(aj=null);1073741823===b?a===vj?uj++:(uj=0,vj=a):uj=0;\"function\"===typeof Uj&&Uj(c.stateNode,d);Z(a);if(Yi)throw Yi=!1,a=Zi,Zi=null,a;if((W&ej)!==V)return null;gg();return null}function Tj(){for(;null!==Y;){var a=Y.effectTag;0!==(a&256)&&Gi(Y.alternate,Y);0===(a&512)||qj||(qj=!0,dg(97,function(){Dj();return null}));Y=Y.nextEffect}}\nfunction Dj(){if(90!==sj){var a=97<sj?97:sj;sj=90;return cg(a,Vj)}}function Vj(){if(null===rj)return!1;var a=rj;rj=null;if((W&(fj|gj))!==V)throw Error(u(331));var b=W;W|=gj;for(a=a.current.firstEffect;null!==a;){try{var c=a;if(0!==(c.effectTag&512))switch(c.tag){case 0:case 11:case 15:case 22:Hi(5,c),Ii(5,c)}}catch(d){if(null===a)throw Error(u(330));Ei(a,d)}c=a.nextEffect;a.nextEffect=null;a=c}W=b;gg();return!0}\nfunction Wj(a,b,c){b=Ai(c,b);b=Xi(a,b,1073741823);xg(a,b);a=xj(a,1073741823);null!==a&&Z(a)}function Ei(a,b){if(3===a.tag)Wj(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){Wj(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===aj||!aj.has(d))){a=Ai(b,a);a=$i(c,a,1073741823);xg(c,a);c=xj(c,1073741823);null!==c&&Z(c);break}}c=c.return}}\nfunction Oj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);T===a&&U===c?S===vi||S===ui&&1073741823===lj&&$f()-Ti<pj?Ej(a,U):oj=!0:Aj(a,c)&&(b=a.lastPingedTime,0!==b&&b<c||(a.lastPingedTime=c,Z(a)))}function Vi(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=Gg(),b=Hg(b,a,null));a=xj(a,b);null!==a&&Z(a)}var Rj;\nRj=function(a,b,c){var d=b.expirationTime;if(null!==a){var e=b.pendingProps;if(a.memoizedProps!==e||K.current)rg=!0;else{if(d<c){rg=!1;switch(b.tag){case 3:hi(b);Xh();break;case 5:fh(b);if(b.mode&4&&1!==c&&e.hidden)return b.expirationTime=b.childExpirationTime=1,null;break;case 1:L(b.type)&&Gf(b);break;case 4:dh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;e=b.type._context;I(jg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;\nif(0!==d&&d>=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime<c&&(h.expirationTime=c);l=h.alternate;null!==l&&l.expirationTime<c&&(l.expirationTime=c);pg(h.return,c);k.expirationTime<c&&(k.expirationTime=c);break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=\ng}R(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,qg(b,c),e=sg(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,R(a,b,d,c),b.child;case 14:return e=b.type,f=ig(e,b.pendingProps),f=ig(e.type,f),ai(a,b,e,f,d,c);case 15:return ci(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Gf(b)):a=!1,qg(b,c),Lg(b,d,e),Ng(b,d,e,c),gi(null,\nb,d,!0,a,c);case 19:return mi(a,b,c)}throw Error(u(156,b.tag));};var Uj=null,Li=null;function Yj(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Uj=function(a){try{b.onCommitFiberRoot(c,a,void 0,64===(a.current.effectTag&64))}catch(e){}};Li=function(a){try{b.onCommitFiberUnmount(c,a)}catch(e){}}}catch(d){}return!0}\nfunction Zj(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.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function Sh(a,b,c,d){return new Zj(a,b,c,d)}\nfunction bi(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Xj(a){if(\"function\"===typeof a)return bi(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gb)return 11;if(a===jb)return 14}return 2}\nfunction Sg(a,b){var c=a.alternate;null===c?(c=Sh(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.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{expirationTime:b.expirationTime,\nfirstContext:b.firstContext,responders:b.responders};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Ug(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bi(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ab:return Wg(c.children,e,f,b);case fb:g=8;e|=7;break;case bb:g=8;e|=1;break;case cb:return a=Sh(12,c,b,e|8),a.elementType=cb,a.type=cb,a.expirationTime=f,a;case hb:return a=Sh(13,c,b,e),a.type=hb,a.elementType=hb,a.expirationTime=f,a;case ib:return a=Sh(19,c,b,e),a.elementType=ib,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case db:g=\n10;break a;case eb:g=9;break a;case gb:g=11;break a;case jb:g=14;break a;case kb:g=16;d=null;break a;case lb:g=22;break a}throw Error(u(130,null==a?a:typeof a,\"\"));}b=Sh(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Wg(a,b,c,d){a=Sh(7,a,d,b);a.expirationTime=c;return a}function Tg(a,b,c){a=Sh(6,a,null,b);a.expirationTime=c;return a}\nfunction Vg(a,b,c){b=Sh(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction ak(a,b,c){this.tag=b;this.current=null;this.containerInfo=a;this.pingCache=this.pendingChildren=null;this.finishedExpirationTime=0;this.finishedWork=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=90;this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}\nfunction Aj(a,b){var c=a.firstSuspendedTime;a=a.lastSuspendedTime;return 0!==c&&c>=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;c<b&&(a.firstSuspendedTime=b);if(d>b||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime<b&&(a.retryTime=b)}function ek(a,b){dk(a,b);(a=a.alternate)&&dk(a,b)}\nfunction fk(a,b,c){c=null!=c&&!0===c.hydrate;var d=new ak(a,b,c),e=Sh(3,null,null,2===b?7:1===b?3:0);d.current=e;e.stateNode=d;ug(e);a[Od]=d.current;c&&0!==b&&Jc(a,9===a.nodeType?a:a.ownerDocument);this._internalRoot=d}fk.prototype.render=function(a){bk(a,this._internalRoot,null,null)};fk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;bk(null,a,null,function(){b[Od]=null})};\nfunction gk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function hk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new fk(a,0,b?{hydrate:!0}:void 0)}\nfunction ik(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=ck(g);h.call(a)}}bk(b,g,a,e)}else{f=c._reactRootContainer=hk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=ck(g);k.call(a)}}Nj(function(){bk(b,g,a,e)})}return ck(g)}function jk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$a,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nwc=function(a){if(13===a.tag){var b=hg(Gg(),150,100);Ig(a,b);ek(a,b)}};xc=function(a){13===a.tag&&(Ig(a,3),ek(a,3))};yc=function(a){if(13===a.tag){var b=Gg();b=Hg(b,a,null);Ig(a,b);ek(a,b)}};\nza=function(a,b,c){switch(b){case \"input\":Cb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Qd(d);if(!e)throw Error(u(90));yb(d);Cb(d,e)}}}break;case \"textarea\":Kb(a,c);break;case \"select\":b=c.value,null!=b&&Hb(a,!!c.multiple,b,!1)}};Fa=Mj;\nGa=function(a,b,c,d,e){var f=W;W|=4;try{return cg(98,a.bind(null,b,c,d,e))}finally{W=f,W===V&&gg()}};Ha=function(){(W&(1|fj|gj))===V&&(Lj(),Dj())};Ia=function(a,b){var c=W;W|=2;try{return a(b)}finally{W=c,W===V&&gg()}};function kk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!gk(b))throw Error(u(200));return jk(a,b,null,c)}var lk={Events:[Nc,Pd,Qd,xa,ta,Xd,function(a){jc(a,Wd)},Da,Ea,id,mc,Dj,{current:!1}]};\n(function(a){var b=a.findFiberByHostInstance;return Yj(n({},a,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Wa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=hc(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))})({findFiberByHostInstance:tc,bundleType:0,version:\"16.13.1\",\nrendererPackageName:\"react-dom\"});exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lk;exports.createPortal=kk;exports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(void 0===b){if(\"function\"===typeof a.render)throw Error(u(188));throw Error(u(268,Object.keys(a)));}a=hc(b);a=null===a?null:a.stateNode;return a};\nexports.flushSync=function(a,b){if((W&(fj|gj))!==V)throw Error(u(187));var c=W;W|=1;try{return cg(99,a.bind(null,b))}finally{W=c,gg()}};exports.hydrate=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!0,c)};exports.render=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!1,c)};\nexports.unmountComponentAtNode=function(a){if(!gk(a))throw Error(u(40));return a._reactRootContainer?(Nj(function(){ik(null,null,a,!1,function(){a._reactRootContainer=null;a[Od]=null})}),!0):!1};exports.unstable_batchedUpdates=Mj;exports.unstable_createPortal=function(a,b){return kk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!gk(c))throw Error(u(200));if(null==a||void 0===a._reactInternalFiber)throw Error(u(38));return ik(a,b,c,!1,d)};exports.version=\"16.13.1\";\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","/** @license React v0.19.1\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\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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 = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @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","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { getThemeProps, useTheme } from '@material-ui/styles';\nexport default function useMediaQuery(queryInput) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var theme = useTheme();\n var props = getThemeProps({\n theme: theme,\n name: 'MuiUseMediaQuery',\n props: {}\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['Material-UI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n var query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, ''); // Wait for jsdom to support the match media feature.\n // All the browsers Material-UI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n\n var supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n\n var _props$options = _extends({}, props, options),\n _props$options$defaul = _props$options.defaultMatches,\n defaultMatches = _props$options$defaul === void 0 ? false : _props$options$defaul,\n _props$options$matchM = _props$options.matchMedia,\n matchMedia = _props$options$matchM === void 0 ? supportMatchMedia ? window.matchMedia : null : _props$options$matchM,\n _props$options$noSsr = _props$options.noSsr,\n noSsr = _props$options$noSsr === void 0 ? false : _props$options$noSsr,\n _props$options$ssrMat = _props$options.ssrMatchMedia,\n ssrMatchMedia = _props$options$ssrMat === void 0 ? null : _props$options$ssrMat;\n\n var _React$useState = React.useState(function () {\n if (noSsr && supportMatchMedia) {\n return matchMedia(query).matches;\n }\n\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n } // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n\n\n return defaultMatches;\n }),\n match = _React$useState[0],\n setMatch = _React$useState[1];\n\n React.useEffect(function () {\n var active = true;\n\n if (!supportMatchMedia) {\n return undefined;\n }\n\n var queryList = matchMedia(query);\n\n var updateMatch = function updateMatch() {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui-org/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n\n updateMatch();\n queryList.addListener(updateMatch);\n return function () {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query: query,\n match: match\n });\n }\n\n return match;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? WithStyles.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: chainPropTypes(PropTypes.oneOfType([PropTypes.func, PropTypes.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return null; // return new Error(\n // 'Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' +\n // 'Refs are now automatically forwarded to the inner component.',\n // );\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nexport default withStyles;","import nested from '../ThemeProvider/nested';\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nexport default function createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? '' : _options$seed;\n var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n var ruleCounter = 0;\n\n var getNextCounterId = function getNextCounterId() {\n ruleCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n\n return ruleCounter;\n };\n\n return function (rule, styleSheet) {\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return \"Mui-\".concat(rule.key);\n }\n\n var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n\n if (!styleSheet.options.theme[nested] || seed !== '') {\n return prefix;\n }\n\n return \"\".concat(prefix, \"-\").concat(getNextCounterId());\n }\n\n if (process.env.NODE_ENV === 'production') {\n return \"\".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());\n }\n\n var suffix = \"\".concat(rule.key, \"-\").concat(getNextCounterId()); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n }\n\n return \"\".concat(seedPrefix).concat(suffix);\n };\n}","// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nexport default multiKeyStore;","/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nexport function increment() {\n indexCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['Material-UI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n\n return indexCounter;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { deepmerge } from '@material-ui/utils';\nimport noopTheme from './noopTheme';\nexport default function getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === 'function';\n\n if (process.env.NODE_ENV !== 'production') {\n if (_typeof(stylesOrCreator) !== 'object' && !themingEnabled) {\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n\n return {\n create: function create(theme, name) {\n var styles;\n\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === noopTheme) {\n // TODO: prepend error message/name instead\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n throw err;\n }\n\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n\n var overrides = theme.overrides[name];\n\n var stylesWithOverrides = _extends({}, styles);\n\n Object.keys(overrides).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['Material-UI: You are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n }\n }\n\n stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}","// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\nexport default noopTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { getDynamicStyles } from 'jss';\nimport mergeClasses from '../mergeClasses';\nimport multiKeyStore from './multiKeyStore';\nimport useTheme from '../useTheme';\nimport { StylesContext } from '../StylesProvider';\nimport { increment } from './indexCounter';\nimport getStylesCreator from '../getStylesCreator';\nimport noopTheme from '../getStylesCreator/noopTheme';\n\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n\n var generate = false;\n\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n\n if (generate) {\n state.cacheClasses.value = mergeClasses({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n\n return state.cacheClasses.value;\n}\n\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n\n var options = _extends({}, stylesCreator.options, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n var staticSheet;\n\n if (stylesOptions.sheetsCache) {\n staticSheet = multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n\n var styles = stylesCreator.create(theme, name);\n\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, _extends({\n link: false\n }, options));\n staticSheet.attach();\n\n if (stylesOptions.sheetsCache) {\n multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = getDynamicStyles(styles);\n }\n\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = mergeClasses({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n\n sheetManager.refs += 1;\n}\n\nfunction update(_ref3, props) {\n var state = _ref3.state;\n\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\n\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n multiKeyStore.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\n\nfunction useSynchronousEffect(func, values) {\n var key = React.useRef([]);\n var output; // Store \"generation\" key. Just returns a new object every time\n\n var currentKey = React.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // \"the first render\", or \"memo dropped the value\"\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n\n React.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nexport default function makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? noopTheme : _options$defaultTheme,\n stylesOptions2 = _objectWithoutProperties(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n\n var stylesCreator = getStylesCreator(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: increment(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n\n var useStyles = function useStyles() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = useTheme() || defaultTheme;\n\n var stylesOptions = _extends({}, React.useContext(StylesContext), stylesOptions2);\n\n var instance = React.useRef();\n var shouldUpdate = React.useRef();\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n React.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n\n shouldUpdate.current = true;\n });\n var classes = getClasses(instance.current, props.classes, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(classes);\n }\n\n return classes;\n };\n\n return useStyles;\n}","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport useEventCallback from '../utils/useEventCallback';\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * @ignore - internal component.\n */\n\nfunction Ripple(props) {\n var classes = props.classes,\n _props$pulsate = props.pulsate,\n pulsate = _props$pulsate === void 0 ? false : _props$pulsate,\n rippleX = props.rippleX,\n rippleY = props.rippleY,\n rippleSize = props.rippleSize,\n inProp = props.in,\n _props$onExited = props.onExited,\n onExited = _props$onExited === void 0 ? function () {} : _props$onExited,\n timeout = props.timeout;\n\n var _React$useState = React.useState(false),\n leaving = _React$useState[0],\n setLeaving = _React$useState[1];\n\n var rippleClassName = clsx(classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n var rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n var childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n var handleExited = useEventCallback(onExited); // Ripple is used for user feedback (e.g. click or press) so we want to apply styles with the highest priority\n\n useEnhancedEffect(function () {\n if (!inProp) {\n // react-transition-group#onExit\n setLeaving(true); // react-transition-group#onExited\n\n var timeoutId = setTimeout(handleExited, timeout);\n return function () {\n clearTimeout(timeoutId);\n };\n }\n\n return undefined;\n }, [handleExited, inProp, timeout]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: rippleClassName,\n style: rippleStyles\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: childClassName\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\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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Ripple from './Ripple';\nvar DURATION = 550;\nexport var DELAY_RIPPLE = 80;\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\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 },\n\n /* Styles applied to the internal `Ripple` components `ripple` class. */\n ripple: {\n opacity: 0,\n position: 'absolute'\n },\n\n /* Styles applied to the internal `Ripple` components `rippleVisible` class. */\n rippleVisible: {\n opacity: 0.3,\n transform: 'scale(1)',\n animation: \"$enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n ripplePulsate: {\n animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n },\n\n /* Styles applied to the internal `Ripple` components `child` class. */\n child: {\n opacity: 1,\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: 'currentColor'\n },\n\n /* Styles applied to the internal `Ripple` components `childLeaving` class. */\n childLeaving: {\n opacity: 0,\n animation: \"$exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `childPulsate` class. */\n childPulsate: {\n position: 'absolute',\n left: 0,\n top: 0,\n animation: \"$pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n },\n '@keyframes enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.1\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.3\n }\n },\n '@keyframes exit': {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n },\n '@keyframes pulsate': {\n '0%': {\n transform: 'scale(1)'\n },\n '50%': {\n transform: 'scale(0.92)'\n },\n '100%': {\n transform: 'scale(1)'\n }\n }\n };\n};\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nvar TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(props, ref) {\n var _props$center = props.center,\n centerProp = _props$center === void 0 ? false : _props$center,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"center\", \"classes\", \"className\"]);\n\n var _React$useState = React.useState([]),\n ripples = _React$useState[0],\n setRipples = _React$useState[1];\n\n var nextKey = React.useRef(0);\n var rippleCallback = React.useRef(null);\n React.useEffect(function () {\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 var 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 var startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n var startTimerCommit = React.useRef(null);\n var container = React.useRef(null);\n React.useEffect(function () {\n return function () {\n clearTimeout(startTimer.current);\n };\n }, []);\n var startCommit = React.useCallback(function (params) {\n var pulsate = params.pulsate,\n rippleX = params.rippleX,\n rippleY = params.rippleY,\n rippleSize = params.rippleSize,\n cb = params.cb;\n setRipples(function (oldRipples) {\n return [].concat(_toConsumableArray(oldRipples), [/*#__PURE__*/React.createElement(Ripple, {\n key: nextKey.current,\n classes: classes,\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n })]);\n });\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n var start = React.useCallback(function () {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var _options$pulsate = options.pulsate,\n pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n _options$center = options.center,\n center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,\n _options$fakeElement = options.fakeElement,\n fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\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 var element = fakeElement ? null : container.current;\n var 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 var rippleX;\n var rippleY;\n var 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 var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n\n if (center) {\n rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(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 = function () {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }; // Delay the execution of the ripple effect.\n\n\n startTimer.current = setTimeout(function () {\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: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }\n }, [centerProp, startCommit]);\n var pulsate = React.useCallback(function () {\n start({}, {\n pulsate: true\n });\n }, [start]);\n var stop = React.useCallback(function (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 event.persist();\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(function () {\n stop(event, cb);\n });\n return;\n }\n\n startTimerCommit.current = null;\n setRipples(function (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, function () {\n return {\n pulsate: pulsate,\n start: start,\n stop: stop\n };\n }, [pulsate, start, stop]);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: clsx(classes.root, className),\n ref: container\n }, other), /*#__PURE__*/React.createElement(TransitionGroup, {\n component: null,\n exit: true\n }, ripples));\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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n flip: false,\n name: 'MuiTouchRipple'\n})( /*#__PURE__*/React.memo(TouchRipple));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@material-ui/utils';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport withStyles from '../styles/withStyles';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\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 '-moz-appearance': 'none',\n // Reset\n '-webkit-appearance': 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native <a /> element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n '&$disabled': {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if keyboard focused. */\n focusVisible: {}\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\nvar ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {\n var action = props.action,\n buttonRefProp = props.buttonRef,\n _props$centerRipple = props.centerRipple,\n centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n component = _props$component === void 0 ? 'button' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableRipple = props.disableRipple,\n disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,\n _props$disableTouchRi = props.disableTouchRipple,\n disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,\n _props$focusRipple = props.focusRipple,\n focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,\n focusVisibleClassName = props.focusVisibleClassName,\n onBlur = props.onBlur,\n onClick = props.onClick,\n onFocus = props.onFocus,\n onFocusVisible = props.onFocusVisible,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n onMouseDown = props.onMouseDown,\n onMouseLeave = props.onMouseLeave,\n onMouseUp = props.onMouseUp,\n onTouchEnd = props.onTouchEnd,\n onTouchMove = props.onTouchMove,\n onTouchStart = props.onTouchStart,\n onDragLeave = props.onDragLeave,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n TouchRippleProps = props.TouchRippleProps,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type,\n other = _objectWithoutProperties(props, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onClick\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"onDragLeave\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n\n var buttonRef = React.useRef(null);\n\n function getButtonNode() {\n // #StrictMode ready\n return ReactDOM.findDOMNode(buttonRef.current);\n }\n\n var rippleRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n focusVisible = _React$useState[0],\n setFocusVisible = _React$useState[1];\n\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n var _useIsFocusVisible = useIsFocusVisible(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\n\n React.useImperativeHandle(action, function () {\n return {\n focusVisible: function focusVisible() {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n };\n }, []);\n React.useEffect(function () {\n if (focusVisible && focusRipple && !disableRipple) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible]);\n\n function useRippleHandler(rippleAction, eventCallback) {\n var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;\n return useEventCallback(function (event) {\n if (eventCallback) {\n eventCallback(event);\n }\n\n var ignore = skipRippleAction;\n\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n\n return true;\n });\n }\n\n var handleMouseDown = useRippleHandler('start', onMouseDown);\n var handleDragLeave = useRippleHandler('stop', onDragLeave);\n var handleMouseUp = useRippleHandler('stop', onMouseUp);\n var handleMouseLeave = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n event.preventDefault();\n }\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n var handleTouchStart = useRippleHandler('start', onTouchStart);\n var handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n var handleTouchMove = useRippleHandler('stop', onTouchMove);\n var handleBlur = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n onBlurVisible(event);\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n var handleFocus = useEventCallback(function (event) {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n\n if (isFocusVisible(event)) {\n setFocusVisible(true);\n\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n\n if (onFocus) {\n onFocus(event);\n }\n });\n\n var isNonNativeButton = function isNonNativeButton() {\n var button = getButtonNode();\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n /**\n * IE 11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n\n\n var keydownRef = React.useRef(false);\n var handleKeyDown = useEventCallback(function (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 event.persist();\n rippleRef.current.stop(event, function () {\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 var handleKeyUp = useEventCallback(function (event) {\n // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed\n // https://codesandbox.io/s/button-keyup-preventdefault-dn7f0\n if (focusRipple && event.key === ' ' && rippleRef.current && focusVisible && !event.defaultPrevented) {\n keydownRef.current = false;\n event.persist();\n rippleRef.current.stop(event, function () {\n rippleRef.current.pulsate(event);\n });\n }\n\n if (onKeyUp) {\n onKeyUp(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (onClick && event.target === event.currentTarget && isNonNativeButton() && event.key === ' ' && !event.defaultPrevented) {\n onClick(event);\n }\n });\n var ComponentProp = component;\n\n if (ComponentProp === 'button' && other.href) {\n ComponentProp = 'a';\n }\n\n var buttonProps = {};\n\n if (ComponentProp === 'button') {\n buttonProps.type = type;\n buttonProps.disabled = disabled;\n } else {\n if (ComponentProp !== 'a' || !other.href) {\n buttonProps.role = 'button';\n }\n\n buttonProps['aria-disabled'] = disabled;\n }\n\n var handleUserRef = useForkRef(buttonRefProp, ref);\n var handleOwnRef = useForkRef(focusVisibleRef, buttonRef);\n var handleRef = useForkRef(handleUserRef, handleOwnRef);\n\n var _React$useState2 = React.useState(false),\n mountedState = _React$useState2[0],\n setMountedState = _React$useState2[1];\n\n React.useEffect(function () {\n setMountedState(true);\n }, []);\n var enableTouchRipple = mountedState && !disableRipple && !disabled;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(function () {\n if (enableTouchRipple && !rippleRef.current) {\n console.error(['Material-UI: The `component` prop provided to ButtonBase is invalid.', 'Please make sure the children prop is rendered in this custom component.'].join('\\n'));\n }\n }, [enableTouchRipple]);\n }\n\n return /*#__PURE__*/React.createElement(ComponentProp, _extends({\n className: clsx(classes.root, className, focusVisible && [classes.focusVisible, focusVisibleClassName], disabled && classes.disabled),\n onBlur: handleBlur,\n onClick: onClick,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n onMouseDown: handleMouseDown,\n onMouseLeave: handleMouseLeave,\n onMouseUp: handleMouseUp,\n onDragLeave: handleDragLeave,\n onTouchEnd: handleTouchEnd,\n onTouchMove: handleTouchMove,\n onTouchStart: handleTouchStart,\n ref: handleRef,\n tabIndex: disabled ? -1 : tabIndex\n }, buttonProps, other), children, enableTouchRipple ?\n /*#__PURE__*/\n\n /* TouchRipple is only needed client-side, x2 boost on the server. */\n React.createElement(TouchRipple, _extends({\n ref: rippleRef,\n center: centerRipple\n }, TouchRippleProps)) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? ButtonBase.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 * A ref for imperative actions.\n * It currently only supports `focusVisible()` action.\n */\n action: refType,\n\n /**\n * @ignore\n *\n * Use that prop to pass a ref to the native button component.\n * @deprecated Use `ref` instead.\n */\n buttonRef: refType,\n\n /**\n * If `true`, the ripples will be centered.\n * They won't start at the cursor interaction position.\n */\n centerRipple: 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 * 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 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 * If `true`, the base button will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be 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 `focusVisibleClassName`.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * If `true`, the touch ripple effect will be disabled.\n */\n disableTouchRipple: PropTypes.bool,\n\n /**\n * If `true`, the base button will have a keyboard focus ripple.\n */\n focusRipple: PropTypes.bool,\n\n /**\n * This prop can help a person know which element has the keyboard focus.\n * The class name will be applied when the element gain the focus through a 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/master/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 href: PropTypes.string,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onDragLeave: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseUp: PropTypes.func,\n\n /**\n * @ignore\n */\n onTouchEnd: PropTypes.func,\n\n /**\n * @ignore\n */\n onTouchMove: PropTypes.func,\n\n /**\n * @ignore\n */\n onTouchStart: PropTypes.func,\n\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Props applied to the `TouchRipple` element.\n */\n TouchRippleProps: PropTypes.object,\n\n /**\n * @ignore\n */\n type: PropTypes.oneOfType([PropTypes.oneOf(['button', 'reset', 'submit']), PropTypes.string])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiButtonBase'\n})(ButtonBase);","import { useContext, useLayoutEffect, useState, useRef, useMemo } from 'react';\nimport CookiesContext from './CookiesContext';\nimport { isInBrowser } from './utils';\nexport default function useCookies(dependencies) {\n const cookies = useContext(CookiesContext);\n if (!cookies) {\n throw new Error('Missing <CookiesProvider>');\n }\n const initialCookies = cookies.getAll();\n const [allCookies, setCookies] = useState(initialCookies);\n const previousCookiesRef = useRef(allCookies);\n if (isInBrowser()) {\n useLayoutEffect(() => {\n function onChange() {\n const newCookies = cookies.getAll();\n if (shouldUpdate(dependencies || null, newCookies, previousCookiesRef.current)) {\n setCookies(newCookies);\n }\n previousCookiesRef.current = newCookies;\n }\n cookies.addChangeListener(onChange);\n return () => {\n cookies.removeChangeListener(onChange);\n };\n }, [cookies]);\n }\n const setCookie = useMemo(() => cookies.set.bind(cookies), [cookies]);\n const removeCookie = useMemo(() => cookies.remove.bind(cookies), [cookies]);\n return [allCookies, setCookie, removeCookie];\n}\nfunction shouldUpdate(dependencies, newCookies, oldCookies) {\n if (!dependencies) {\n return true;\n }\n for (let dependency of dependencies) {\n if (newCookies[dependency] !== oldCookies[dependency]) {\n return true;\n }\n }\n return false;\n}\n","export function isInBrowser() {\n return (typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined');\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { getDisplayName } from '@material-ui/utils';\nimport { getThemeProps } from '@material-ui/styles';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport useTheme from '../styles/useTheme';\nimport { keys as breakpointKeys } from '../styles/createBreakpoints';\nimport useMediaQuery from '../useMediaQuery'; // By default, returns true if screen width is the same or greater than the given breakpoint.\n\nexport var isWidthUp = function isWidthUp(breakpoint, width) {\n var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (inclusive) {\n return breakpointKeys.indexOf(breakpoint) <= breakpointKeys.indexOf(width);\n }\n\n return breakpointKeys.indexOf(breakpoint) < breakpointKeys.indexOf(width);\n}; // By default, returns true if screen width is the same or less than the given breakpoint.\n\nexport var isWidthDown = function isWidthDown(breakpoint, width) {\n var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (inclusive) {\n return breakpointKeys.indexOf(width) <= breakpointKeys.indexOf(breakpoint);\n }\n\n return breakpointKeys.indexOf(width) < breakpointKeys.indexOf(breakpoint);\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n\nvar withWidth = function withWidth() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function (Component) {\n var _options$withTheme = options.withTheme,\n withThemeOption = _options$withTheme === void 0 ? false : _options$withTheme,\n _options$noSSR = options.noSSR,\n noSSR = _options$noSSR === void 0 ? false : _options$noSSR,\n initialWidthOption = options.initialWidth;\n\n function WithWidth(props) {\n var contextTheme = useTheme();\n var theme = props.theme || contextTheme;\n\n var _getThemeProps = getThemeProps({\n theme: theme,\n name: 'MuiWithWidth',\n props: _extends({}, props)\n }),\n initialWidth = _getThemeProps.initialWidth,\n width = _getThemeProps.width,\n other = _objectWithoutProperties(_getThemeProps, [\"initialWidth\", \"width\"]);\n\n var _React$useState = React.useState(false),\n mountedState = _React$useState[0],\n setMountedState = _React$useState[1];\n\n useEnhancedEffect(function () {\n setMountedState(true);\n }, []);\n /**\n * innerWidth |xs sm md lg xl\n * |-------|-------|-------|-------|------>\n * width | xs | sm | md | lg | xl\n */\n\n var keys = theme.breakpoints.keys.slice().reverse();\n var widthComputed = keys.reduce(function (output, key) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var matches = useMediaQuery(theme.breakpoints.up(key));\n return !output && matches ? key : output;\n }, null);\n\n var more = _extends({\n width: width || (mountedState || noSSR ? widthComputed : undefined) || initialWidth || initialWidthOption\n }, withThemeOption ? {\n theme: theme\n } : {}, other); // When rendering the component on the server,\n // we have no idea about the client browser screen width.\n // In order to prevent blinks and help the reconciliation of the React tree\n // we are not rendering the child component.\n //\n // An alternative is to use the `initialWidth` property.\n\n\n if (more.width === undefined) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Component, more);\n }\n\n process.env.NODE_ENV !== \"production\" ? WithWidth.propTypes = {\n /**\n * As `window.innerWidth` is unavailable on the server,\n * we default to rendering an empty component during the first mount.\n * You might want to use an heuristic to approximate\n * the screen width of the client browser screen width.\n *\n * For instance, you could be using the user-agent or the client-hints.\n * https://caniuse.com/#search=client%20hint\n */\n initialWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n /**\n * @ignore\n */\n theme: PropTypes.object,\n\n /**\n * Bypass the width calculation logic.\n */\n width: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl'])\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithWidth.displayName = \"WithWidth(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithWidth, Component);\n return WithWidth;\n };\n};\n\nexport default withWidth;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport createGenerateClassName from '../createGenerateClassName';\nimport { create } from 'jss';\nimport jssPreset from '../jssPreset'; // Default JSS instance.\n\nvar jss = create(jssPreset()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = createGenerateClassName(); // Exported for test purposes\n\nexport var sheetsManager = new Map();\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\nexport var StylesContext = React.createContext(defaultOptions);\n\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\n\nvar injectFirstNode;\nexport default function StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = _objectWithoutProperties(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n\n var outerOptions = React.useContext(StylesContext);\n\n var context = _extends({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('Material-UI: You need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('Material-UI: You cannot use a custom insertionPoint and <StylesContext injectFirst> at the same time.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('Material-UI: You cannot use the jss and injectFirst props at the same time.');\n }\n }\n\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n\n context.jss = create({\n plugins: jssPreset().plugins,\n insertionPoint: injectFirstNode\n });\n }\n\n return /*#__PURE__*/React.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * You can disable the generation of the styles with this option.\n * It can be useful when traversing the React tree outside of the HTML\n * rendering step on the server.\n * Let's say you are using react-apollo to extract all\n * the queries made by the interface server-side - you can significantly speed up the traversal with this prop.\n */\n disableGeneration: PropTypes.bool,\n\n /**\n * JSS's class name generator.\n */\n generateClassName: PropTypes.func,\n\n /**\n * By default, the styles are injected last in the <head> element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override Material-UI's styles, set this prop.\n */\n injectFirst: PropTypes.bool,\n\n /**\n * JSS's instance.\n */\n jss: PropTypes.object,\n\n /**\n * @ignore\n */\n serverGenerateClassName: PropTypes.func,\n\n /**\n * @ignore\n *\n * Beta feature.\n *\n * Cache for the sheets.\n */\n sheetsCache: PropTypes.object,\n\n /**\n * @ignore\n *\n * The sheetsManager is used to deduplicate style sheet injection in the page.\n * It's deduplicating using the (theme, styles) couple.\n * On the server, you should provide a new instance for each request.\n */\n sheetsManager: PropTypes.object,\n\n /**\n * @ignore\n *\n * Collect the sheets.\n */\n sheetsRegistry: PropTypes.object\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = exactProp(StylesProvider.propTypes) : void 0;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar 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\nvar getCssProperties = memoize(function (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 var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(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([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var 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 \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\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 (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getDisplayName } from '@material-ui/utils';\nexport default function mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n\n if (!newClasses) {\n return baseClasses;\n }\n\n var nextClasses = _extends({}, baseClasses);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([\"Material-UI: The value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat(getDisplayName(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n\n Object.keys(newClasses).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat(getDisplayName(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n }\n\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat(getDisplayName(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n }\n }\n\n if (newClasses[key]) {\n nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}","import * as React from 'react';\nimport Cookies from 'universal-cookie';\nimport { Provider } from './CookiesContext';\nexport default class CookiesProvider extends React.Component {\n constructor(props) {\n super(props);\n if (props.cookies) {\n this.cookies = props.cookies;\n }\n else {\n this.cookies = new Cookies();\n }\n }\n render() {\n return React.createElement(Provider, { value: this.cookies }, this.props.children);\n }\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested'; // To support composition of theme.\n\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n var mergedTheme = localTheme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['Material-UI: You should return an object from your theme function, i.e.', '<ThemeProvider theme={() => ({})} />'].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 var children = props.children,\n localTheme = props.theme;\n var outerTheme = useTheme();\n\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['Material-UI: You are providing a theme function prop to the ThemeProvider component:', '<ThemeProvider theme={outerTheme => 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 var theme = React.useMemo(function () {\n var 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__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, children);\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node.isRequired,\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;","// 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()).\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.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\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 for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nexport default v4;","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` 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 `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `<TransitionGroup>` renders a `<div>` 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 `<div>` 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 `<Transition>` components, that are toggled `in` and out as they\n * leave. the `<TransitionGroup>` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `<Transition>` as\n * with our `<Fade>` 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;"],"sourceRoot":""}