{"version":3,"file":"hostedExplorer.acefa3.js","mappings":"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E,QAAQnwB,GAAQA,EAAOrxC,OAAO2N,KAAK0jC,GACpBtyB,EAAKq/H,EAAOh9I,OAAQ2d,IAAM,CAEtD3c,EADUg8I,EAAOr/H,IACH,CAClB,CAEJ,OAAO3c,CACX,EAMWi8I,EAAoBF,YAAY,CACvC,SACA,QACA,UACA,mBACA,qBACA,sBACA,UACA,iBACA,SACA,gBACA,WACA,UACA,WACA,SACA,UACA,YACA,mBACA,aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAOOG,EAAwBH,YAAY,CAC3C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAOOI,EAAwBJ,YAAYG,EAAuBD,GAc3DG,GARkBL,YAAYI,EAAuB,CAC5D,SAOyBJ,YAAYI,EAAuB,CAC5D,SACA,OACA,QACA,UACA,MACA,WA+BOE,GAxBkBN,YAAYK,EAAiB,CACtD,WAOsBL,YAAYI,EAAuB,CACzD,UAOsBJ,YAAYI,EAAuB,CACzD,UAO0BJ,YAAYI,EAAuB,CAC7D,WACA,OACA,WACA,QACA,MACA,SACA,UAOOG,EAAmBP,YAAYI,EAAuB,CAC7D,YACA,WACA,OACA,aACA,cACA,aACA,iBACA,aACA,OACA,UAOOI,EAAkBR,YAAYO,EAAkB,CACvD,SACA,MACA,iBACA,eACA,UACA,UACA,OACA,SACA,YACA,OACA,MACA,YACA,MACA,YACA,WACA,UACA,cACA,WACA,WACA,MACA,OACA,OACA,OACA,QACA,UAiHOE,GA1GqBT,YAAYO,EAAkB,CAC1D,iBACA,OACA,UAC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","sources":["webpack://cosmos-explorer/webpack/runtime/async module","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/_virtual/_tslib.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/utils/BrowserConstants.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/utils/MathUtils.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/logger/Logger.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/crypto/GuidGenerator.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/utils/BrowserStringUtils.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/encode/Base64Encode.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/encode/Base64Decode.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/crypto/PkceGenerator.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/crypto/BrowserCrypto.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/cache/DatabaseStorage.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/crypto/CryptoOps.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/authority/AuthorityType.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/crypto/ICrypto.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/error/ClientConfigurationError.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/url/UrlString.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/network/ThrottlingUtils.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/account/ClientInfo.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/AccountEntity.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/authority/ProtocolMode.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/authority/OpenIdConfigResponse.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/utils/TimeUtils.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/AuthorityMetadataEntity.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/authority/RegionDiscovery.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/authority/Authority.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryResponse.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/authority/AuthorityFactory.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/packageMetadata.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/CredentialEntity.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/request/ScopeSet.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/account/AuthToken.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/CacheManager.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/config/ClientConfiguration.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/network/NetworkManager.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/account/CcsCredential.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/client/BaseClient.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/crypto/PopTokenGenerator.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/request/RequestValidator.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/request/RequestParameterBuilder.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/IdTokenEntity.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/AccessTokenEntity.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/RefreshTokenEntity.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/CacheRecord.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/utils/ProtocolUtils.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/AppMetadataEntity.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/persistence/TokenCacheContext.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/response/ResponseHandler.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/client/AuthorizationCodeClient.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/client/RefreshTokenClient.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/client/SilentFlowClient.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/ServerTelemetryEntity.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/telemetry/server/ServerTelemetryManager.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/cache/entities/ThrottlingEntity.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthError.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/cache/BrowserStorage.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/cache/MemoryStorage.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/utils/BrowserProtocolUtils.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/cache/BrowserCacheManager.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/network/INetworkModule.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/network/FetchClient.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/network/XhrClient.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/utils/BrowserUtils.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/navigation/NavigationClient.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/config/Configuration.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/interaction_handler/InteractionHandler.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/event/EventType.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/interaction_handler/RedirectHandler.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/utils/PopupUtils.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/interaction_handler/PopupHandler.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/interaction_handler/SilentHandler.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/packageMetadata.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/app/ClientApplication.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/app/PublicClientApplication.js","webpack://cosmos-explorer/./node_modules/@azure/msal-browser/dist/error/BrowserAuthError.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/_virtual/_tslib.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/error/AuthError.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/error/ClientAuthError.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/error/InteractionRequiredAuthError.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/error/ServerError.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/utils/Constants.js","webpack://cosmos-explorer/./node_modules/@azure/msal-common/dist/utils/StringUtils.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/elementContains.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/elementContainsAttribute.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/findElementRecursive.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/getActiveElement.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/getEventTarget.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/getParent.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/getVirtualParent.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/isVirtualElement.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/portalContainsElement.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/setPortalAttribute.js","webpack://cosmos-explorer/./node_modules/@fluentui/dom-utilities/lib/setVirtualParent.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-0.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-1.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-10.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-11.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-12.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-13.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-14.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-15.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-16.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-17.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-2.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-3.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-4.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-5.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-6.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-7.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-8.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-9.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/iconAliases.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/index.js","webpack://cosmos-explorer/./node_modules/@fluentui/font-icons-mdl2/lib/version.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/StyleOptionsState.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/Stylesheet.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/concatStyleSets.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/concatStyleSetsWithProps.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/extractStyleParts.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/fontFace.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/getVendorSettings.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/keyframes.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/mergeStyleSets.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/mergeStyles.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/shadowConfig.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/styleToClassName.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/tokenizeWithParentheses.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/transforms/kebabRules.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/transforms/prefixRules.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/transforms/provideUnits.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/lib/transforms/rtlifyRules.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useAsync.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useBoolean.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useConst.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useControllableValue.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useEventCallback.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useId.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useMergedRefs.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useOnEvent.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/usePrevious.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useTarget.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useUnmount.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/lib/useWarnings.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","webpack://cosmos-explorer/./node_modules/@fluentui/react-window-provider/lib/WindowProvider.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/common/DirectionalHint.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/BaseButton.classNames.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/BaseButton.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/BaseButton.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/ButtonThemes.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.classNames.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Callout/Callout.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.classNames.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.classNames.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/FocusTrapZone/FocusTrapZone.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Icon/FontIcon.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Icon/Icon.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Icon/Icon.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Icon/Icon.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Icon/Icon.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Icon/ImageIcon.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Image/Image.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Image/Image.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Image/Image.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Image/Image.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/KeytipData/KeytipData.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/KeytipData/useKeytipData.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Label/Label.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Label/Label.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Label/Label.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Layer/Layer.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Layer/Layer.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Layer/Layer.notification.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Layer/Layer.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Panel/Panel.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Panel/Panel.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Panel/Panel.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Panel/Panel.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Popup/Popup.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/MenuContext/MenuContext.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/contextualMenu/contextualMenuUtility.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/decorators/withResponsiveMode.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/dom.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/hooks/useResponsiveMode.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipConstants.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipManager.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipUtils.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/set-version/lib/index.js","webpack://cosmos-explorer/./node_modules/@fluentui/set-version/lib/setVersion.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/cdn.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/classNames/AnimationClassNames.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/index.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/styles/CommonStyles.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/styles/GeneralStyles.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/styles/getFocusStyle.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/styles/getGlobalClassNames.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/styles/hiddenContentStyle.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/styles/theme.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/styles/zIndexes.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/utilities/buildClassMap.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/utilities/icons.js","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/lib/version.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/colors/DefaultPalette.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/createTheme.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/effects/DefaultEffects.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/effects/FluentDepths.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/fonts/DefaultFontStyles.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/fonts/FluentFonts.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/fonts/createFontStyles.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/mergeThemes.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/motion/AnimationStyles.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/spacing/DefaultSpacing.js","webpack://cosmos-explorer/./node_modules/@fluentui/theme/lib/utilities/makeSemanticColors.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/Async.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/BaseComponent.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/EventGroup.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/FocusRectsProvider.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/GlobalSettings.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/KeyCodes.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/Rectangle.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/appendFunction.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/aria.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/array.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/classNamesFunction.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/componentAs/composeComponentAs.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/createMergedRef.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/css.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/customizations/Customizations.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/customizations/Customizer.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/customizations/CustomizerContext.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/customizations/customizable.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/customizations/mergeCustomizations.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/customizations/mergeSettings.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/customizations/useCustomizationSettings.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/dom/canUseDOM.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/dom/getDocument.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/dom/getWindow.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/dom/on.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/extendComponent.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/focus.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/getId.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/getPropsWithDefaults.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/hoistStatics.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/initializeComponentRef.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/keyboard.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/language.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/localStorage.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/memoize.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/merge.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/mobileDetector.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/modalize.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/object.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/osDetector.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/properties.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/renderFunction/composeRenderFunction.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/rtl.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/scroll.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/sessionStorage.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/setFocusVisibility.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/shadowDom/contexts/MergeStylesRootContext.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/shadowDom/contexts/MergeStylesShadowRootConsumer.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/shadowDom/contexts/MergeStylesShadowRootContext.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/shadowDom/hooks/useMergeStylesHooks.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/shadowDom/hooks/useMergeStylesShadowRoot.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/styled.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/useFocusRects.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/useIsomorphicLayoutEffect.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/warn/warn.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/warn/warnConditionallyRequiredProps.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/warn/warnDeprecations.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/warn/warnMutuallyExclusive.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/ApplicationInsights.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Base.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ContextTagKeys.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Data.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPoint.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPointType.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Envelope.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/EventData.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionData.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionDetails.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MessageData.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MetricData.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewData.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewPerfData.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/RemoteDependencyData.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/SeverityLevel.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/StackFrame.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/Constants.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryPluginChain.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/TraceParent.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-shims/dist-esm/applicationinsights-shims.js","webpack://cosmos-explorer/./node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","webpack://cosmos-explorer/./node_modules/@microsoft/dynamicproto-js/lib/dist/esm/dynamicproto-js.js","webpack://cosmos-explorer/./node_modules/@microsoft/load-themed-styles/lib-es6/index.js","webpack://cosmos-explorer/./less/Common/Constants.less?2b97","webpack://cosmos-explorer/./node_modules/object-assign/index.js","webpack://cosmos-explorer/./node_modules/process/browser.js","webpack://cosmos-explorer/./node_modules/q/q.js","webpack://cosmos-explorer/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://cosmos-explorer/./node_modules/react-dom/index.js","webpack://cosmos-explorer/./node_modules/react-dom/node_modules/scheduler/cjs/scheduler.production.min.js","webpack://cosmos-explorer/./node_modules/react-dom/node_modules/scheduler/index.js","webpack://cosmos-explorer/./node_modules/react/cjs/react.production.min.js","webpack://cosmos-explorer/./node_modules/react/index.js","webpack://cosmos-explorer/./src/AuthType.ts","webpack://cosmos-explorer/./src/Common/Constants.ts","webpack://cosmos-explorer/./src/Common/Logger.ts","webpack://cosmos-explorer/./src/Common/MessageHandler.ts","webpack://cosmos-explorer/./src/ConfigContext.ts","webpack://cosmos-explorer/./src/Contracts/ActionContracts.ts","webpack://cosmos-explorer/./src/Contracts/DataModels.ts","webpack://cosmos-explorer/./src/Contracts/Diagnostics.ts","webpack://cosmos-explorer/./src/Contracts/FabricMessageTypes.ts","webpack://cosmos-explorer/./src/Contracts/FabricMessagesContract.ts","webpack://cosmos-explorer/./src/Contracts/MessageTypes.ts","webpack://cosmos-explorer/./src/Contracts/SubscriptionType.ts","webpack://cosmos-explorer/./src/Explorer/Menus/NotificationConsole/ConsoleData.tsx","webpack://cosmos-explorer/./src/HostedExplorer.tsx","webpack://cosmos-explorer/./src/Platform/Fabric/FabricUtil.ts","webpack://cosmos-explorer/./src/Platform/Hosted/Components/AadAuthorizationFailure.tsx","webpack://cosmos-explorer/./src/Common/StyleConstants.ts","webpack://cosmos-explorer/./node_modules/dequal/lite/index.mjs","webpack://cosmos-explorer/./node_modules/swr/esm/libs/hash.js","webpack://cosmos-explorer/./node_modules/swr/esm/cache.js","webpack://cosmos-explorer/./node_modules/swr/esm/libs/web-preset.js","webpack://cosmos-explorer/./node_modules/swr/esm/config.js","webpack://cosmos-explorer/./node_modules/swr/esm/swr-config-context.js","webpack://cosmos-explorer/./node_modules/swr/esm/use-swr.js","webpack://cosmos-explorer/./node_modules/swr/esm/index.js","webpack://cosmos-explorer/./src/hooks/useDatabaseAccounts.tsx","webpack://cosmos-explorer/./src/hooks/useSubscriptions.tsx","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Button/CommandButton/CommandButton.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Dropdown/utilities/DropdownSizePosCache.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/safeRequestAnimationFrame.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.js","webpack://cosmos-explorer/./src/Platform/Hosted/Components/SwitchAccount.tsx","webpack://cosmos-explorer/./src/Platform/Hosted/Components/SwitchSubscription.tsx","webpack://cosmos-explorer/./src/Platform/Hosted/Components/AccountSwitcher.tsx","webpack://cosmos-explorer/./src/Platform/Hosted/Components/ConnectExplorer.tsx","webpack://cosmos-explorer/./src/Platform/Hosted/Helpers/ResourceTokenUtils.ts","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.js","webpack://cosmos-explorer/./src/hooks/useDirectories.tsx","webpack://cosmos-explorer/./src/Platform/Hosted/Components/DirectoryPickerPanel.tsx","webpack://cosmos-explorer/./src/Explorer/Controls/CommandButton/CommandButtonComponent.tsx","webpack://cosmos-explorer/./src/Utils/StringUtils.ts","webpack://cosmos-explorer/./src/Platform/Hosted/Components/FeedbackCommandButton.tsx","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/overflow.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.js","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/lib/initials.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/Persona.types.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/PersonaConsts.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/PersonaInitialsColor.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/Persona.base.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/Persona.styles.js","webpack://cosmos-explorer/./node_modules/@fluentui/react/lib/components/Persona/Persona.js","webpack://cosmos-explorer/./src/hooks/useGraphPhoto.tsx","webpack://cosmos-explorer/./src/Platform/Hosted/Components/MeControl.tsx","webpack://cosmos-explorer/./src/Platform/Hosted/Components/SignInButton.tsx","webpack://cosmos-explorer/./src/Platform/Hosted/HostedUtils.ts","webpack://cosmos-explorer/./src/Platform/Hosted/extractFeatures.ts","webpack://cosmos-explorer/./src/Shared/Constants.ts","webpack://cosmos-explorer/./src/Shared/Telemetry/TelemetryConstants.ts","webpack://cosmos-explorer/./src/Shared/Telemetry/TelemetryProcessor.ts","webpack://cosmos-explorer/./src/Shared/appInsights.ts","webpack://cosmos-explorer/./src/UserContext.ts","webpack://cosmos-explorer/./src/Utils/AuthorizationUtils.ts","webpack://cosmos-explorer/./src/Utils/EndpointUtils.ts","webpack://cosmos-explorer/./src/Utils/WindowUtils.ts","webpack://cosmos-explorer/./src/hooks/useAADAuth.ts","webpack://cosmos-explorer/./src/hooks/useCarousel.ts","webpack://cosmos-explorer/./src/hooks/useConfig.ts","webpack://cosmos-explorer/./src/hooks/useNotificationConsole.ts","webpack://cosmos-explorer/./src/hooks/usePortalAccessToken.tsx","webpack://cosmos-explorer/./src/hooks/usePostgres.ts","webpack://cosmos-explorer/./node_modules/underscore/modules/_baseCreate.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_baseIteratee.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_cb.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_chainResult.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_createAssigner.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_createEscaper.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_createIndexFinder.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_createReduce.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_deepGet.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_escapeMap.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_executeBound.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_flatten.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_getByteLength.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_getLength.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_group.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_has.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_hasObjectTag.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_isArrayLike.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_isBufferLike.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_keyInObj.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_methodFingerprint.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_optimizeCb.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_setup.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_shallowProperty.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_stringTagBug.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_tagTester.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_toBufferView.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_toPath.js","webpack://cosmos-explorer/./node_modules/underscore/modules/_unescapeMap.js","webpack://cosmos-explorer/./node_modules/underscore/modules/after.js","webpack://cosmos-explorer/./node_modules/underscore/modules/allKeys.js","webpack://cosmos-explorer/./node_modules/underscore/modules/before.js","webpack://cosmos-explorer/./node_modules/underscore/modules/bind.js","webpack://cosmos-explorer/./node_modules/underscore/modules/bindAll.js","webpack://cosmos-explorer/./node_modules/underscore/modules/chain.js","webpack://cosmos-explorer/./node_modules/underscore/modules/chunk.js","webpack://cosmos-explorer/./node_modules/underscore/modules/clone.js","webpack://cosmos-explorer/./node_modules/underscore/modules/compact.js","webpack://cosmos-explorer/./node_modules/underscore/modules/compose.js","webpack://cosmos-explorer/./node_modules/underscore/modules/constant.js","webpack://cosmos-explorer/./node_modules/underscore/modules/contains.js","webpack://cosmos-explorer/./node_modules/underscore/modules/countBy.js","webpack://cosmos-explorer/./node_modules/underscore/modules/create.js","webpack://cosmos-explorer/./node_modules/underscore/modules/debounce.js","webpack://cosmos-explorer/./node_modules/underscore/modules/defaults.js","webpack://cosmos-explorer/./node_modules/underscore/modules/defer.js","webpack://cosmos-explorer/./node_modules/underscore/modules/delay.js","webpack://cosmos-explorer/./node_modules/underscore/modules/difference.js","webpack://cosmos-explorer/./node_modules/underscore/modules/each.js","webpack://cosmos-explorer/./node_modules/underscore/modules/escape.js","webpack://cosmos-explorer/./node_modules/underscore/modules/every.js","webpack://cosmos-explorer/./node_modules/underscore/modules/extend.js","webpack://cosmos-explorer/./node_modules/underscore/modules/extendOwn.js","webpack://cosmos-explorer/./node_modules/underscore/modules/filter.js","webpack://cosmos-explorer/./node_modules/underscore/modules/find.js","webpack://cosmos-explorer/./node_modules/underscore/modules/findIndex.js","webpack://cosmos-explorer/./node_modules/underscore/modules/findKey.js","webpack://cosmos-explorer/./node_modules/underscore/modules/findLastIndex.js","webpack://cosmos-explorer/./node_modules/underscore/modules/findWhere.js","webpack://cosmos-explorer/./node_modules/underscore/modules/first.js","webpack://cosmos-explorer/./node_modules/underscore/modules/flatten.js","webpack://cosmos-explorer/./node_modules/underscore/modules/functions.js","webpack://cosmos-explorer/./node_modules/underscore/modules/get.js","webpack://cosmos-explorer/./node_modules/underscore/modules/groupBy.js","webpack://cosmos-explorer/./node_modules/underscore/modules/has.js","webpack://cosmos-explorer/./node_modules/underscore/modules/identity.js","webpack://cosmos-explorer/./node_modules/underscore/modules/index-default.js","webpack://cosmos-explorer/./node_modules/underscore/modules/indexBy.js","webpack://cosmos-explorer/./node_modules/underscore/modules/indexOf.js","webpack://cosmos-explorer/./node_modules/underscore/modules/initial.js","webpack://cosmos-explorer/./node_modules/underscore/modules/intersection.js","webpack://cosmos-explorer/./node_modules/underscore/modules/invert.js","webpack://cosmos-explorer/./node_modules/underscore/modules/invoke.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isArguments.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isArray.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isArrayBuffer.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isBoolean.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isDataView.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isDate.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isElement.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isEmpty.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isEqual.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isError.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isFinite.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isFunction.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isMap.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isMatch.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isNaN.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isNull.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isNumber.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isObject.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isRegExp.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isSet.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isString.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isSymbol.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isTypedArray.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isUndefined.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isWeakMap.js","webpack://cosmos-explorer/./node_modules/underscore/modules/isWeakSet.js","webpack://cosmos-explorer/./node_modules/underscore/modules/iteratee.js","webpack://cosmos-explorer/./node_modules/underscore/modules/keys.js","webpack://cosmos-explorer/./node_modules/underscore/modules/last.js","webpack://cosmos-explorer/./node_modules/underscore/modules/lastIndexOf.js","webpack://cosmos-explorer/./node_modules/underscore/modules/map.js","webpack://cosmos-explorer/./node_modules/underscore/modules/mapObject.js","webpack://cosmos-explorer/./node_modules/underscore/modules/matcher.js","webpack://cosmos-explorer/./node_modules/underscore/modules/max.js","webpack://cosmos-explorer/./node_modules/underscore/modules/memoize.js","webpack://cosmos-explorer/./node_modules/underscore/modules/min.js","webpack://cosmos-explorer/./node_modules/underscore/modules/mixin.js","webpack://cosmos-explorer/./node_modules/underscore/modules/negate.js","webpack://cosmos-explorer/./node_modules/underscore/modules/noop.js","webpack://cosmos-explorer/./node_modules/underscore/modules/now.js","webpack://cosmos-explorer/./node_modules/underscore/modules/object.js","webpack://cosmos-explorer/./node_modules/underscore/modules/omit.js","webpack://cosmos-explorer/./node_modules/underscore/modules/once.js","webpack://cosmos-explorer/./node_modules/underscore/modules/pairs.js","webpack://cosmos-explorer/./node_modules/underscore/modules/partial.js","webpack://cosmos-explorer/./node_modules/underscore/modules/partition.js","webpack://cosmos-explorer/./node_modules/underscore/modules/pick.js","webpack://cosmos-explorer/./node_modules/underscore/modules/pluck.js","webpack://cosmos-explorer/./node_modules/underscore/modules/property.js","webpack://cosmos-explorer/./node_modules/underscore/modules/propertyOf.js","webpack://cosmos-explorer/./node_modules/underscore/modules/random.js","webpack://cosmos-explorer/./node_modules/underscore/modules/range.js","webpack://cosmos-explorer/./node_modules/underscore/modules/reduce.js","webpack://cosmos-explorer/./node_modules/underscore/modules/reduceRight.js","webpack://cosmos-explorer/./node_modules/underscore/modules/reject.js","webpack://cosmos-explorer/./node_modules/underscore/modules/rest.js","webpack://cosmos-explorer/./node_modules/underscore/modules/restArguments.js","webpack://cosmos-explorer/./node_modules/underscore/modules/result.js","webpack://cosmos-explorer/./node_modules/underscore/modules/sample.js","webpack://cosmos-explorer/./node_modules/underscore/modules/shuffle.js","webpack://cosmos-explorer/./node_modules/underscore/modules/size.js","webpack://cosmos-explorer/./node_modules/underscore/modules/some.js","webpack://cosmos-explorer/./node_modules/underscore/modules/sortBy.js","webpack://cosmos-explorer/./node_modules/underscore/modules/sortedIndex.js","webpack://cosmos-explorer/./node_modules/underscore/modules/tap.js","webpack://cosmos-explorer/./node_modules/underscore/modules/template.js","webpack://cosmos-explorer/./node_modules/underscore/modules/templateSettings.js","webpack://cosmos-explorer/./node_modules/underscore/modules/throttle.js","webpack://cosmos-explorer/./node_modules/underscore/modules/times.js","webpack://cosmos-explorer/./node_modules/underscore/modules/toArray.js","webpack://cosmos-explorer/./node_modules/underscore/modules/toPath.js","webpack://cosmos-explorer/./node_modules/underscore/modules/underscore-array-methods.js","webpack://cosmos-explorer/./node_modules/underscore/modules/underscore.js","webpack://cosmos-explorer/./node_modules/underscore/modules/unescape.js","webpack://cosmos-explorer/./node_modules/underscore/modules/union.js","webpack://cosmos-explorer/./node_modules/underscore/modules/uniq.js","webpack://cosmos-explorer/./node_modules/underscore/modules/uniqueId.js","webpack://cosmos-explorer/./node_modules/underscore/modules/unzip.js","webpack://cosmos-explorer/./node_modules/underscore/modules/values.js","webpack://cosmos-explorer/./node_modules/underscore/modules/where.js","webpack://cosmos-explorer/./node_modules/underscore/modules/without.js","webpack://cosmos-explorer/./node_modules/underscore/modules/wrap.js","webpack://cosmos-explorer/./node_modules/underscore/modules/zip.js","webpack://cosmos-explorer/./node_modules/zustand/esm/index.js","webpack://cosmos-explorer/./node_modules/@fluentui/merge-styles/node_modules/tslib/tslib.es6.mjs","webpack://cosmos-explorer/./node_modules/@fluentui/react-focus/node_modules/tslib/tslib.es6.mjs","webpack://cosmos-explorer/./node_modules/@fluentui/react-hooks/node_modules/tslib/tslib.es6.mjs","webpack://cosmos-explorer/./node_modules/@fluentui/react/node_modules/tslib/tslib.es6.mjs","webpack://cosmos-explorer/./node_modules/@fluentui/style-utilities/node_modules/tslib/tslib.es6.mjs","webpack://cosmos-explorer/./node_modules/@fluentui/theme/node_modules/tslib/tslib.es6.mjs","webpack://cosmos-explorer/./node_modules/@fluentui/utilities/node_modules/tslib/tslib.es6.mjs","webpack://cosmos-explorer/webpack/bootstrap","webpack://cosmos-explorer/webpack/runtime/compat get default export","webpack://cosmos-explorer/webpack/runtime/define property getters","webpack://cosmos-explorer/webpack/runtime/global","webpack://cosmos-explorer/webpack/runtime/hasOwnProperty shorthand","webpack://cosmos-explorer/webpack/runtime/make namespace object","webpack://cosmos-explorer/webpack/runtime/publicPath","webpack://cosmos-explorer/webpack/startup"],"sourcesContent":["var webpackQueues = typeof Symbol === \"function\" ? Symbol(\"webpack queues\") : \"__webpack_queues__\";\nvar webpackExports = typeof Symbol === \"function\" ? Symbol(\"webpack exports\") : \"__webpack_exports__\";\nvar webpackError = typeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = (queue) => {\n\tif(queue && queue.d < 1) {\n\t\tqueue.d = 1;\n\t\tqueue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => (deps.map((dep) => {\n\tif(dep !== null && typeof dep === \"object\") {\n\t\tif(dep[webpackQueues]) return dep;\n\t\tif(dep.then) {\n\t\t\tvar queue = [];\n\t\t\tqueue.d = 0;\n\t\t\tdep.then((r) => {\n\t\t\t\tobj[webpackExports] = r;\n\t\t\t\tresolveQueue(queue);\n\t\t\t}, (e) => {\n\t\t\t\tobj[webpackError] = e;\n\t\t\t\tresolveQueue(queue);\n\t\t\t});\n\t\t\tvar obj = {};\n\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\treturn obj;\n\t\t}\n\t}\n\tvar ret = {};\n\tret[webpackQueues] = x => {};\n\tret[webpackExports] = dep;\n\treturn ret;\n}));\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](x => {}));\n\tmodule.exports = promise;\n\tbody((deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => (currentDeps.map((d) => {\n\t\t\tif(d[webpackError]) throw d[webpackError];\n\t\t\treturn d[webpackExports];\n\t\t}))\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nfunction __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nfunction __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __read, __spread };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Constants\r\n */\r\nvar BrowserConstants = {\r\n    /**\r\n     * Interaction in progress cache value\r\n     */\r\n    INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\r\n    /**\r\n     * Invalid grant error code\r\n     */\r\n    INVALID_GRANT_ERROR: \"invalid_grant\",\r\n    /**\r\n     * Default popup window width\r\n     */\r\n    POPUP_WIDTH: 483,\r\n    /**\r\n     * Default popup window height\r\n     */\r\n    POPUP_HEIGHT: 600,\r\n    /**\r\n     * Name of the popup window starts with\r\n     */\r\n    POPUP_NAME_PREFIX: \"msal\",\r\n    /**\r\n     * Default popup monitor poll interval in milliseconds\r\n     */\r\n    POLL_INTERVAL_MS: 50,\r\n    /**\r\n     * Msal-browser SKU\r\n     */\r\n    MSAL_SKU: \"msal.js.browser\",\r\n};\r\nvar BrowserCacheLocation;\r\n(function (BrowserCacheLocation) {\r\n    BrowserCacheLocation[\"LocalStorage\"] = \"localStorage\";\r\n    BrowserCacheLocation[\"SessionStorage\"] = \"sessionStorage\";\r\n    BrowserCacheLocation[\"MemoryStorage\"] = \"memoryStorage\";\r\n})(BrowserCacheLocation || (BrowserCacheLocation = {}));\r\n/**\r\n * HTTP Request types supported by MSAL.\r\n */\r\nvar HTTP_REQUEST_TYPE;\r\n(function (HTTP_REQUEST_TYPE) {\r\n    HTTP_REQUEST_TYPE[\"GET\"] = \"GET\";\r\n    HTTP_REQUEST_TYPE[\"POST\"] = \"POST\";\r\n})(HTTP_REQUEST_TYPE || (HTTP_REQUEST_TYPE = {}));\r\n/**\r\n * Temporary cache keys for MSAL, deleted after any request.\r\n */\r\nvar TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n    TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n    TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireToken.account\";\r\n    TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n    TemporaryCacheKeys[\"REQUEST_STATE\"] = \"request.state\";\r\n    TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.id_token\";\r\n    TemporaryCacheKeys[\"ORIGIN_URI\"] = \"request.origin\";\r\n    TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n    TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n    TemporaryCacheKeys[\"REQUEST_PARAMS\"] = \"request.params\";\r\n    TemporaryCacheKeys[\"SCOPES\"] = \"scopes\";\r\n    TemporaryCacheKeys[\"INTERACTION_STATUS_KEY\"] = \"interaction.status\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\n/**\r\n * API Codes for Telemetry purposes.\r\n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\r\n * 0-99 Silent Flow\r\n * 800-899 Auth Code Flow\r\n */\r\nvar ApiId;\r\n(function (ApiId) {\r\n    ApiId[ApiId[\"acquireTokenRedirect\"] = 861] = \"acquireTokenRedirect\";\r\n    ApiId[ApiId[\"acquireTokenPopup\"] = 862] = \"acquireTokenPopup\";\r\n    ApiId[ApiId[\"ssoSilent\"] = 863] = \"ssoSilent\";\r\n    ApiId[ApiId[\"acquireTokenSilent_authCode\"] = 864] = \"acquireTokenSilent_authCode\";\r\n    ApiId[ApiId[\"handleRedirectPromise\"] = 865] = \"handleRedirectPromise\";\r\n    ApiId[ApiId[\"acquireTokenSilent_silentFlow\"] = 61] = \"acquireTokenSilent_silentFlow\";\r\n    ApiId[ApiId[\"logout\"] = 961] = \"logout\";\r\n    ApiId[ApiId[\"logoutPopup\"] = 962] = \"logoutPopup\";\r\n})(ApiId || (ApiId = {}));\r\n/*\r\n * Interaction type of the API - used for state and telemetry\r\n */\r\nvar InteractionType;\r\n(function (InteractionType) {\r\n    InteractionType[\"Redirect\"] = \"redirect\";\r\n    InteractionType[\"Popup\"] = \"popup\";\r\n    InteractionType[\"Silent\"] = \"silent\";\r\n})(InteractionType || (InteractionType = {}));\r\n/**\r\n * Types of interaction currently in progress.\r\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\r\n */\r\nvar InteractionStatus;\r\n(function (InteractionStatus) {\r\n    /**\r\n     * Initial status before interaction occurs\r\n     */\r\n    InteractionStatus[\"Startup\"] = \"startup\";\r\n    /**\r\n     * Status set when all login calls occuring\r\n     */\r\n    InteractionStatus[\"Login\"] = \"login\";\r\n    /**\r\n     * Status set when logout call occuring\r\n     */\r\n    InteractionStatus[\"Logout\"] = \"logout\";\r\n    /**\r\n     * Status set for acquireToken calls\r\n     */\r\n    InteractionStatus[\"AcquireToken\"] = \"acquireToken\";\r\n    /**\r\n     * Status set for ssoSilent calls\r\n     */\r\n    InteractionStatus[\"SsoSilent\"] = \"ssoSilent\";\r\n    /**\r\n     * Status set when handleRedirect in progress\r\n     */\r\n    InteractionStatus[\"HandleRedirect\"] = \"handleRedirect\";\r\n    /**\r\n     * Status set when interaction is complete\r\n     */\r\n    InteractionStatus[\"None\"] = \"none\";\r\n})(InteractionStatus || (InteractionStatus = {}));\r\nvar DEFAULT_REQUEST = {\r\n    scopes: OIDC_DEFAULT_SCOPES\r\n};\r\n/**\r\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\r\n */\r\nvar KEY_FORMAT_JWK = \"jwk\";\r\n// Supported wrapper SKUs\r\nvar WrapperSKU;\r\n(function (WrapperSKU) {\r\n    WrapperSKU[\"React\"] = \"@azure/msal-react\";\r\n    WrapperSKU[\"Angular\"] = \"@azure/msal-angular\";\r\n})(WrapperSKU || (WrapperSKU = {}));\n\nexport { ApiId, BrowserCacheLocation, BrowserConstants, DEFAULT_REQUEST, HTTP_REQUEST_TYPE, InteractionStatus, InteractionType, KEY_FORMAT_JWK, TemporaryCacheKeys, WrapperSKU };\n//# sourceMappingURL=BrowserConstants.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for math specific functions in browser.\r\n */\r\nvar MathUtils = /** @class */ (function () {\r\n    function MathUtils() {\r\n    }\r\n    /**\r\n     * Decimal to Hex\r\n     *\r\n     * @param num\r\n     */\r\n    MathUtils.decimalToHex = function (num) {\r\n        var hex = num.toString(16);\r\n        while (hex.length < 2) {\r\n            hex = \"0\" + hex;\r\n        }\r\n        return hex;\r\n    };\r\n    return MathUtils;\r\n}());\n\nexport { MathUtils };\n//# sourceMappingURL=MathUtils.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n    LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n    LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n    LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n    LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n    LogLevel[LogLevel[\"Trace\"] = 4] = \"Trace\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n    function Logger(loggerOptions, packageName, packageVersion) {\r\n        // Current log level, defaults to info.\r\n        this.level = LogLevel.Info;\r\n        var defaultLoggerCallback = function () { };\r\n        this.localCallback = loggerOptions.loggerCallback || defaultLoggerCallback;\r\n        this.piiLoggingEnabled = loggerOptions.piiLoggingEnabled || false;\r\n        this.level = loggerOptions.logLevel || LogLevel.Info;\r\n        this.correlationId = loggerOptions.correlationId || \"\";\r\n        this.packageName = packageName || Constants.EMPTY_STRING;\r\n        this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n    }\r\n    /**\r\n     * Create new Logger with existing configurations.\r\n     */\r\n    Logger.prototype.clone = function (packageName, packageVersion, correlationId) {\r\n        return new Logger({ loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId }, packageName, packageVersion);\r\n    };\r\n    /**\r\n     * Log message with required options.\r\n     */\r\n    Logger.prototype.logMessage = function (logMessage, options) {\r\n        if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\r\n            return;\r\n        }\r\n        var timestamp = new Date().toUTCString();\r\n        // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n        var logHeader;\r\n        if (!StringUtils.isEmpty(options.correlationId)) {\r\n            logHeader = \"[\" + timestamp + \"] : [\" + options.correlationId + \"]\";\r\n        }\r\n        else if (!StringUtils.isEmpty(this.correlationId)) {\r\n            logHeader = \"[\" + timestamp + \"] : [\" + this.correlationId + \"]\";\r\n        }\r\n        else {\r\n            logHeader = \"[\" + timestamp + \"]\";\r\n        }\r\n        var log = logHeader + \" : \" + this.packageName + \"@\" + this.packageVersion + \" : \" + LogLevel[options.logLevel] + \" - \" + logMessage;\r\n        // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": \"\"}${options.context ? `:${options.context}` : \"\"}`)(logMessage);\r\n        this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n    };\r\n    /**\r\n     * Execute callback with message.\r\n     */\r\n    Logger.prototype.executeCallback = function (level, message, containsPii) {\r\n        if (this.localCallback) {\r\n            this.localCallback(level, message, containsPii);\r\n        }\r\n    };\r\n    /**\r\n     * Logs error messages.\r\n     */\r\n    Logger.prototype.error = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Error,\r\n            containsPii: false,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Logs error messages with PII.\r\n     */\r\n    Logger.prototype.errorPii = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Error,\r\n            containsPii: true,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Logs warning messages.\r\n     */\r\n    Logger.prototype.warning = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Warning,\r\n            containsPii: false,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Logs warning messages with PII.\r\n     */\r\n    Logger.prototype.warningPii = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Warning,\r\n            containsPii: true,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Logs info messages.\r\n     */\r\n    Logger.prototype.info = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Info,\r\n            containsPii: false,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Logs info messages with PII.\r\n     */\r\n    Logger.prototype.infoPii = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Info,\r\n            containsPii: true,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Logs verbose messages.\r\n     */\r\n    Logger.prototype.verbose = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Verbose,\r\n            containsPii: false,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Logs verbose messages with PII.\r\n     */\r\n    Logger.prototype.verbosePii = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Verbose,\r\n            containsPii: true,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Logs trace messages.\r\n     */\r\n    Logger.prototype.trace = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Trace,\r\n            containsPii: false,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Logs trace messages with PII.\r\n     */\r\n    Logger.prototype.tracePii = function (message, correlationId) {\r\n        this.logMessage(message, {\r\n            logLevel: LogLevel.Trace,\r\n            containsPii: true,\r\n            correlationId: correlationId || \"\"\r\n        });\r\n    };\r\n    /**\r\n     * Returns whether PII Logging is enabled or not.\r\n     */\r\n    Logger.prototype.isPiiLoggingEnabled = function () {\r\n        return this.piiLoggingEnabled || false;\r\n    };\r\n    return Logger;\r\n}());\n\nexport { LogLevel, Logger };\n//# sourceMappingURL=Logger.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { MathUtils } from '../utils/MathUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar GuidGenerator = /** @class */ (function () {\r\n    function GuidGenerator(cryptoObj) {\r\n        this.cryptoObj = cryptoObj;\r\n    }\r\n    /*\r\n     * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n     * pseudo-random numbers.\r\n     * The algorithm is as follows:\r\n     *     Set the two most significant bits (bits 6 and 7) of the\r\n     *        clock_seq_hi_and_reserved to zero and one, respectively.\r\n     *     Set the four most significant bits (bits 12 through 15) of the\r\n     *        time_hi_and_version field to the 4-bit version number from\r\n     *        Section 4.1.3. Version4\r\n     *     Set all the other bits to randomly (or pseudo-randomly) chosen\r\n     *     values.\r\n     * UUID                   = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n     * time-low               = 4hexOctet\r\n     * time-mid               = 2hexOctet\r\n     * time-high-and-version  = 2hexOctet\r\n     * clock-seq-and-reserved = hexOctet:\r\n     * clock-seq-low          = hexOctet\r\n     * node                   = 6hexOctet\r\n     * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n     * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n     * y values are 8, 9, A, B\r\n     */\r\n    GuidGenerator.prototype.generateGuid = function () {\r\n        try {\r\n            var buffer = new Uint8Array(16);\r\n            this.cryptoObj.getRandomValues(buffer);\r\n            // buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n            buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\r\n            buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n            // buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n            buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\r\n            buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\r\n            return MathUtils.decimalToHex(buffer[0]) + MathUtils.decimalToHex(buffer[1])\r\n                + MathUtils.decimalToHex(buffer[2]) + MathUtils.decimalToHex(buffer[3])\r\n                + \"-\" + MathUtils.decimalToHex(buffer[4]) + MathUtils.decimalToHex(buffer[5])\r\n                + \"-\" + MathUtils.decimalToHex(buffer[6]) + MathUtils.decimalToHex(buffer[7])\r\n                + \"-\" + MathUtils.decimalToHex(buffer[8]) + MathUtils.decimalToHex(buffer[9])\r\n                + \"-\" + MathUtils.decimalToHex(buffer[10]) + MathUtils.decimalToHex(buffer[11])\r\n                + MathUtils.decimalToHex(buffer[12]) + MathUtils.decimalToHex(buffer[13])\r\n                + MathUtils.decimalToHex(buffer[14]) + MathUtils.decimalToHex(buffer[15]);\r\n        }\r\n        catch (err) {\r\n            var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\r\n            var hex = \"0123456789abcdef\";\r\n            var r = 0;\r\n            var guidResponse = \"\";\r\n            for (var i = 0; i < 36; i++) {\r\n                if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\r\n                    // each x and y needs to be random\r\n                    r = Math.random() * 16 | 0;\r\n                }\r\n                if (guidHolder[i] === \"x\") {\r\n                    guidResponse += hex[r];\r\n                }\r\n                else if (guidHolder[i] === \"y\") {\r\n                    // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n                    r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n                    r |= 0x8; // set pos 3 to 1 as 1???\r\n                    guidResponse += hex[r];\r\n                }\r\n                else {\r\n                    guidResponse += guidHolder[i];\r\n                }\r\n            }\r\n            return guidResponse;\r\n        }\r\n    };\r\n    /**\r\n     * verifies if a string is  GUID\r\n     * @param guid\r\n     */\r\n    GuidGenerator.isGuid = function (guid) {\r\n        var regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n        return regexGuid.test(guid);\r\n    };\r\n    return GuidGenerator;\r\n}());\n\nexport { GuidGenerator };\n//# sourceMappingURL=GuidGenerator.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility functions for strings in a browser. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar BrowserStringUtils = /** @class */ (function () {\r\n    function BrowserStringUtils() {\r\n    }\r\n    /**\r\n     * Converts string to Uint8Array\r\n     * @param sDOMStr\r\n     */\r\n    BrowserStringUtils.stringToUtf8Arr = function (sDOMStr) {\r\n        var nChr;\r\n        var nArrLen = 0;\r\n        var nStrLen = sDOMStr.length;\r\n        /* mapping... */\r\n        for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\r\n            nChr = sDOMStr.charCodeAt(nMapIdx);\r\n            nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\r\n        }\r\n        var aBytes = new Uint8Array(nArrLen);\r\n        /* transcription... */\r\n        for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\r\n            nChr = sDOMStr.charCodeAt(nChrIdx);\r\n            if (nChr < 128) {\r\n                /* one byte */\r\n                aBytes[nIdx++] = nChr;\r\n            }\r\n            else if (nChr < 0x800) {\r\n                /* two bytes */\r\n                aBytes[nIdx++] = 192 + (nChr >>> 6);\r\n                aBytes[nIdx++] = 128 + (nChr & 63);\r\n            }\r\n            else if (nChr < 0x10000) {\r\n                /* three bytes */\r\n                aBytes[nIdx++] = 224 + (nChr >>> 12);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr & 63);\r\n            }\r\n            else if (nChr < 0x200000) {\r\n                /* four bytes */\r\n                aBytes[nIdx++] = 240 + (nChr >>> 18);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr & 63);\r\n            }\r\n            else if (nChr < 0x4000000) {\r\n                /* five bytes */\r\n                aBytes[nIdx++] = 248 + (nChr >>> 24);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr & 63);\r\n            }\r\n            else /* if (nChr <= 0x7fffffff) */ {\r\n                /* six bytes */\r\n                aBytes[nIdx++] = 252 + (nChr >>> 30);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n                aBytes[nIdx++] = 128 + (nChr & 63);\r\n            }\r\n        }\r\n        return aBytes;\r\n    };\r\n    /**\r\n     * Converst string to ArrayBuffer\r\n     * @param dataString\r\n     */\r\n    BrowserStringUtils.stringToArrayBuffer = function (dataString) {\r\n        var data = new ArrayBuffer(dataString.length);\r\n        var dataView = new Uint8Array(data);\r\n        for (var i = 0; i < dataString.length; i++) {\r\n            dataView[i] = dataString.charCodeAt(i);\r\n        }\r\n        return data;\r\n    };\r\n    /**\r\n     * Converts Uint8Array to a string\r\n     * @param aBytes\r\n     */\r\n    BrowserStringUtils.utf8ArrToString = function (aBytes) {\r\n        var sView = \"\";\r\n        for (var nPart = void 0, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\r\n            nPart = aBytes[nIdx];\r\n            sView += String.fromCharCode(nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\r\n                /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\r\n                (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n                : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\r\n                    (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n                    : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\r\n                        (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n                        : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\r\n                            (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n                            : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\r\n                                (nPart - 192 << 6) + aBytes[++nIdx] - 128\r\n                                : /* nPart < 127 ? */ /* one byte */\r\n                                    nPart);\r\n        }\r\n        return sView;\r\n    };\r\n    return BrowserStringUtils;\r\n}());\n\nexport { BrowserStringUtils };\n//# sourceMappingURL=BrowserStringUtils.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Encode = /** @class */ (function () {\r\n    function Base64Encode() {\r\n    }\r\n    /**\r\n     * Returns URL Safe b64 encoded string from a plaintext string.\r\n     * @param input\r\n     */\r\n    Base64Encode.prototype.urlEncode = function (input) {\r\n        return encodeURIComponent(this.encode(input)\r\n            .replace(/=/g, \"\")\r\n            .replace(/\\+/g, \"-\")\r\n            .replace(/\\//g, \"_\"));\r\n    };\r\n    /**\r\n     * Returns URL Safe b64 encoded string from an int8Array.\r\n     * @param inputArr\r\n     */\r\n    Base64Encode.prototype.urlEncodeArr = function (inputArr) {\r\n        return this.base64EncArr(inputArr)\r\n            .replace(/=/g, \"\")\r\n            .replace(/\\+/g, \"-\")\r\n            .replace(/\\//g, \"_\");\r\n    };\r\n    /**\r\n     * Returns b64 encoded string from plaintext string.\r\n     * @param input\r\n     */\r\n    Base64Encode.prototype.encode = function (input) {\r\n        var inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\r\n        return this.base64EncArr(inputUtf8Arr);\r\n    };\r\n    /**\r\n     * Base64 encode byte array\r\n     * @param aBytes\r\n     */\r\n    Base64Encode.prototype.base64EncArr = function (aBytes) {\r\n        var eqLen = (3 - (aBytes.length % 3)) % 3;\r\n        var sB64Enc = \"\";\r\n        for (var nMod3 = void 0, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n            nMod3 = nIdx % 3;\r\n            /* Uncomment the following line in order to split the output in lines 76-character long: */\r\n            /*\r\n             *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\r\n             */\r\n            nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\r\n            if (nMod3 === 2 || aBytes.length - nIdx === 1) {\r\n                sB64Enc += String.fromCharCode(this.uint6ToB64(nUint24 >>> 18 & 63), this.uint6ToB64(nUint24 >>> 12 & 63), this.uint6ToB64(nUint24 >>> 6 & 63), this.uint6ToB64(nUint24 & 63));\r\n                nUint24 = 0;\r\n            }\r\n        }\r\n        return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\r\n    };\r\n    /**\r\n     * Base64 string to array encoding helper\r\n     * @param nUint6\r\n     */\r\n    Base64Encode.prototype.uint6ToB64 = function (nUint6) {\r\n        return nUint6 < 26 ?\r\n            nUint6 + 65\r\n            : nUint6 < 52 ?\r\n                nUint6 + 71\r\n                : nUint6 < 62 ?\r\n                    nUint6 - 4\r\n                    : nUint6 === 62 ?\r\n                        43\r\n                        : nUint6 === 63 ?\r\n                            47\r\n                            :\r\n                                65;\r\n    };\r\n    return Base64Encode;\r\n}());\n\nexport { Base64Encode };\n//# sourceMappingURL=Base64Encode.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Decode = /** @class */ (function () {\r\n    function Base64Decode() {\r\n    }\r\n    /**\r\n     * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n     * @param input\r\n     */\r\n    Base64Decode.prototype.decode = function (input) {\r\n        var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n        switch (encodedString.length % 4) {\r\n            case 0:\r\n                break;\r\n            case 2:\r\n                encodedString += \"==\";\r\n                break;\r\n            case 3:\r\n                encodedString += \"=\";\r\n                break;\r\n            default:\r\n                throw new Error(\"Invalid base64 string\");\r\n        }\r\n        var inputUtf8Arr = this.base64DecToArr(encodedString);\r\n        return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\r\n    };\r\n    /**\r\n     * Decodes base64 into Uint8Array\r\n     * @param base64String\r\n     * @param nBlockSize\r\n     */\r\n    Base64Decode.prototype.base64DecToArr = function (base64String, nBlockSize) {\r\n        var sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, \"\");\r\n        var nInLen = sB64Enc.length;\r\n        var nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\r\n        var aBytes = new Uint8Array(nOutLen);\r\n        for (var nMod3 = void 0, nMod4 = void 0, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\r\n            nMod4 = nInIdx & 3;\r\n            nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\r\n            if (nMod4 === 3 || nInLen - nInIdx === 1) {\r\n                for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\r\n                    aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\r\n                }\r\n                nUint24 = 0;\r\n            }\r\n        }\r\n        return aBytes;\r\n    };\r\n    /**\r\n     * Base64 string to array decoding helper\r\n     * @param charNum\r\n     */\r\n    Base64Decode.prototype.b64ToUint6 = function (charNum) {\r\n        return charNum > 64 && charNum < 91 ?\r\n            charNum - 65\r\n            : charNum > 96 && charNum < 123 ?\r\n                charNum - 71\r\n                : charNum > 47 && charNum < 58 ?\r\n                    charNum + 4\r\n                    : charNum === 43 ?\r\n                        62\r\n                        : charNum === 47 ?\r\n                            63\r\n                            :\r\n                                0;\r\n    };\r\n    return Base64Decode;\r\n}());\n\nexport { Base64Decode };\n//# sourceMappingURL=Base64Decode.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Constant byte array length\r\nvar RANDOM_BYTE_ARR_LENGTH = 32;\r\n/**\r\n * Class which exposes APIs to generate PKCE codes and code verifiers.\r\n */\r\nvar PkceGenerator = /** @class */ (function () {\r\n    function PkceGenerator(cryptoObj) {\r\n        this.base64Encode = new Base64Encode();\r\n        this.cryptoObj = cryptoObj;\r\n    }\r\n    /**\r\n     * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\r\n     */\r\n    PkceGenerator.prototype.generateCodes = function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var codeVerifier, codeChallenge;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        codeVerifier = this.generateCodeVerifier();\r\n                        return [4 /*yield*/, this.generateCodeChallengeFromVerifier(codeVerifier)];\r\n                    case 1:\r\n                        codeChallenge = _a.sent();\r\n                        return [2 /*return*/, {\r\n                                verifier: codeVerifier,\r\n                                challenge: codeChallenge\r\n                            }];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Generates a random 32 byte buffer and returns the base64\r\n     * encoded string to be used as a PKCE Code Verifier\r\n     */\r\n    PkceGenerator.prototype.generateCodeVerifier = function () {\r\n        try {\r\n            // Generate random values as utf-8\r\n            var buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\r\n            this.cryptoObj.getRandomValues(buffer);\r\n            // encode verifier as base64\r\n            var pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);\r\n            return pkceCodeVerifierB64;\r\n        }\r\n        catch (e) {\r\n            throw BrowserAuthError.createPkceNotGeneratedError(e);\r\n        }\r\n    };\r\n    /**\r\n     * Creates a base64 encoded PKCE Code Challenge string from the\r\n     * hash created from the PKCE Code Verifier supplied\r\n     */\r\n    PkceGenerator.prototype.generateCodeChallengeFromVerifier = function (pkceCodeVerifier) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var pkceHashedCodeVerifier, e_1;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        _a.trys.push([0, 2, , 3]);\r\n                        return [4 /*yield*/, this.cryptoObj.sha256Digest(pkceCodeVerifier)];\r\n                    case 1:\r\n                        pkceHashedCodeVerifier = _a.sent();\r\n                        // encode hash as base64\r\n                        return [2 /*return*/, this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier))];\r\n                    case 2:\r\n                        e_1 = _a.sent();\r\n                        throw BrowserAuthError.createPkceNotGeneratedError(e_1);\r\n                    case 3: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return PkceGenerator;\r\n}());\n\nexport { PkceGenerator };\n//# sourceMappingURL=PkceGenerator.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\r\n */\r\n// RSA KeyGen Algorithm\r\nvar PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\r\n// SHA-256 hashing algorithm\r\nvar S256_HASH_ALG = \"SHA-256\";\r\n// MOD length for PoP tokens\r\nvar MODULUS_LENGTH = 2048;\r\n// Public Exponent\r\nvar PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);\r\n/**\r\n * This class implements functions used by the browser library to perform cryptography operations such as\r\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\r\n */\r\nvar BrowserCrypto = /** @class */ (function () {\r\n    function BrowserCrypto() {\r\n        if (!(this.hasCryptoAPI())) {\r\n            throw BrowserAuthError.createCryptoNotAvailableError(\"Browser crypto or msCrypto object not available.\");\r\n        }\r\n        this._keygenAlgorithmOptions = {\r\n            name: PKCS1_V15_KEYGEN_ALG,\r\n            hash: S256_HASH_ALG,\r\n            modulusLength: MODULUS_LENGTH,\r\n            publicExponent: PUBLIC_EXPONENT\r\n        };\r\n    }\r\n    /**\r\n     * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\r\n     * @param dataString\r\n     */\r\n    BrowserCrypto.prototype.sha256Digest = function (dataString) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var data;\r\n            return __generator(this, function (_a) {\r\n                data = BrowserStringUtils.stringToUtf8Arr(dataString);\r\n                return [2 /*return*/, this.hasIECrypto() ? this.getMSCryptoDigest(S256_HASH_ALG, data) : this.getSubtleCryptoDigest(S256_HASH_ALG, data)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Populates buffer with cryptographically random values.\r\n     * @param dataBuffer\r\n     */\r\n    BrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n        var cryptoObj = window[\"msCrypto\"] || window.crypto;\r\n        if (!cryptoObj.getRandomValues) {\r\n            throw BrowserAuthError.createCryptoNotAvailableError(\"getRandomValues does not exist.\");\r\n        }\r\n        cryptoObj.getRandomValues(dataBuffer);\r\n    };\r\n    /**\r\n     * Generates a keypair based on current keygen algorithm config.\r\n     * @param extractable\r\n     * @param usages\r\n     */\r\n    BrowserCrypto.prototype.generateKeyPair = function (extractable, usages) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, (this.hasIECrypto() ?\r\n                        this.msCryptoGenerateKey(extractable, usages)\r\n                        : window.crypto.subtle.generateKey(this._keygenAlgorithmOptions, extractable, usages))];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Export key as Json Web Key (JWK)\r\n     * @param key\r\n     * @param format\r\n     */\r\n    BrowserCrypto.prototype.exportJwk = function (key) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, this.hasIECrypto() ? this.msCryptoExportJwk(key) : window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Imports key as Json Web Key (JWK), can set extractable and usages.\r\n     * @param key\r\n     * @param format\r\n     * @param extractable\r\n     * @param usages\r\n     */\r\n    BrowserCrypto.prototype.importJwk = function (key, extractable, usages) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var keyString, keyBuffer;\r\n            return __generator(this, function (_a) {\r\n                keyString = BrowserCrypto.getJwkString(key);\r\n                keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);\r\n                return [2 /*return*/, this.hasIECrypto() ?\r\n                        this.msCryptoImportKey(keyBuffer, extractable, usages)\r\n                        : window.crypto.subtle.importKey(KEY_FORMAT_JWK, key, this._keygenAlgorithmOptions, extractable, usages)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Signs given data with given key\r\n     * @param key\r\n     * @param data\r\n     */\r\n    BrowserCrypto.prototype.sign = function (key, data) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, this.hasIECrypto() ?\r\n                        this.msCryptoSign(key, data)\r\n                        : window.crypto.subtle.sign(this._keygenAlgorithmOptions, key, data)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Check whether IE crypto or other browser cryptography is available.\r\n     */\r\n    BrowserCrypto.prototype.hasCryptoAPI = function () {\r\n        return this.hasIECrypto() || this.hasBrowserCrypto();\r\n    };\r\n    /**\r\n     * Checks whether IE crypto (AKA msCrypto) is available.\r\n     */\r\n    BrowserCrypto.prototype.hasIECrypto = function () {\r\n        return \"msCrypto\" in window;\r\n    };\r\n    /**\r\n     * Check whether browser crypto is available.\r\n     */\r\n    BrowserCrypto.prototype.hasBrowserCrypto = function () {\r\n        return \"crypto\" in window;\r\n    };\r\n    /**\r\n     * Helper function for SHA digest.\r\n     * @param algorithm\r\n     * @param data\r\n     */\r\n    BrowserCrypto.prototype.getSubtleCryptoDigest = function (algorithm, data) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, window.crypto.subtle.digest(algorithm, data)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * IE Helper function for SHA digest.\r\n     * @param algorithm\r\n     * @param data\r\n     */\r\n    BrowserCrypto.prototype.getMSCryptoDigest = function (algorithm, data) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, new Promise(function (resolve, reject) {\r\n                        var digestOperation = window[\"msCrypto\"].subtle.digest(algorithm, data.buffer);\r\n                        digestOperation.addEventListener(\"complete\", function (e) {\r\n                            resolve(e.target.result);\r\n                        });\r\n                        digestOperation.addEventListener(\"error\", function (error) {\r\n                            reject(error);\r\n                        });\r\n                    })];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * IE Helper function for generating a keypair\r\n     * @param extractable\r\n     * @param usages\r\n     */\r\n    BrowserCrypto.prototype.msCryptoGenerateKey = function (extractable, usages) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, new Promise(function (resolve, reject) {\r\n                        var msGenerateKey = window[\"msCrypto\"].subtle.generateKey(_this._keygenAlgorithmOptions, extractable, usages);\r\n                        msGenerateKey.addEventListener(\"complete\", function (e) {\r\n                            resolve(e.target.result);\r\n                        });\r\n                        msGenerateKey.addEventListener(\"error\", function (error) {\r\n                            reject(error);\r\n                        });\r\n                    })];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * IE Helper function for exportKey\r\n     * @param key\r\n     * @param format\r\n     */\r\n    BrowserCrypto.prototype.msCryptoExportJwk = function (key) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, new Promise(function (resolve, reject) {\r\n                        var msExportKey = window[\"msCrypto\"].subtle.exportKey(KEY_FORMAT_JWK, key);\r\n                        msExportKey.addEventListener(\"complete\", function (e) {\r\n                            var resultBuffer = e.target.result;\r\n                            var resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))\r\n                                .replace(/\\r/g, \"\")\r\n                                .replace(/\\n/g, \"\")\r\n                                .replace(/\\t/g, \"\")\r\n                                .split(\" \").join(\"\")\r\n                                .replace(\"\\u0000\", \"\");\r\n                            try {\r\n                                resolve(JSON.parse(resultString));\r\n                            }\r\n                            catch (e) {\r\n                                reject(e);\r\n                            }\r\n                        });\r\n                        msExportKey.addEventListener(\"error\", function (error) {\r\n                            reject(error);\r\n                        });\r\n                    })];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * IE Helper function for importKey\r\n     * @param key\r\n     * @param format\r\n     * @param extractable\r\n     * @param usages\r\n     */\r\n    BrowserCrypto.prototype.msCryptoImportKey = function (keyBuffer, extractable, usages) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, new Promise(function (resolve, reject) {\r\n                        var msImportKey = window[\"msCrypto\"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, _this._keygenAlgorithmOptions, extractable, usages);\r\n                        msImportKey.addEventListener(\"complete\", function (e) {\r\n                            resolve(e.target.result);\r\n                        });\r\n                        msImportKey.addEventListener(\"error\", function (error) {\r\n                            reject(error);\r\n                        });\r\n                    })];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * IE Helper function for sign JWT\r\n     * @param key\r\n     * @param data\r\n     */\r\n    BrowserCrypto.prototype.msCryptoSign = function (key, data) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, new Promise(function (resolve, reject) {\r\n                        var msSign = window[\"msCrypto\"].subtle.sign(_this._keygenAlgorithmOptions, key, data);\r\n                        msSign.addEventListener(\"complete\", function (e) {\r\n                            resolve(e.target.result);\r\n                        });\r\n                        msSign.addEventListener(\"error\", function (error) {\r\n                            reject(error);\r\n                        });\r\n                    })];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Returns stringified jwk.\r\n     * @param jwk\r\n     */\r\n    BrowserCrypto.getJwkString = function (jwk) {\r\n        return JSON.stringify(jwk, Object.keys(jwk).sort());\r\n    };\r\n    return BrowserCrypto;\r\n}());\n\nexport { BrowserCrypto };\n//# sourceMappingURL=BrowserCrypto.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\r\n */\r\nvar DatabaseStorage = /** @class */ (function () {\r\n    function DatabaseStorage(dbName, tableName, version) {\r\n        this.dbName = dbName;\r\n        this.tableName = tableName;\r\n        this.version = version;\r\n        this.dbOpen = false;\r\n    }\r\n    /**\r\n     * Opens IndexedDB instance.\r\n     */\r\n    DatabaseStorage.prototype.open = function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, new Promise(function (resolve, reject) {\r\n                        // TODO: Add timeouts?\r\n                        var openDB = window.indexedDB.open(_this.dbName, _this.version);\r\n                        openDB.addEventListener(\"upgradeneeded\", function (e) {\r\n                            var event = e;\r\n                            event.target.result.createObjectStore(_this.tableName);\r\n                        });\r\n                        openDB.addEventListener(\"success\", function (e) {\r\n                            var event = e;\r\n                            _this.db = event.target.result;\r\n                            _this.dbOpen = true;\r\n                            resolve();\r\n                        });\r\n                        openDB.addEventListener(\"error\", function (error) { return reject(error); });\r\n                    })];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Retrieves item from IndexedDB instance.\r\n     * @param key\r\n     */\r\n    DatabaseStorage.prototype.get = function (key) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        if (!!this.dbOpen) return [3 /*break*/, 2];\r\n                        return [4 /*yield*/, this.open()];\r\n                    case 1:\r\n                        _a.sent();\r\n                        _a.label = 2;\r\n                    case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n                            // TODO: Add timeouts?\r\n                            if (!_this.db) {\r\n                                return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n                            }\r\n                            var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n                            var objectStore = transaction.objectStore(_this.tableName);\r\n                            var dbGet = objectStore.get(key);\r\n                            dbGet.addEventListener(\"success\", function (e) {\r\n                                var event = e;\r\n                                resolve(event.target.result);\r\n                            });\r\n                            dbGet.addEventListener(\"error\", function (e) { return reject(e); });\r\n                        })];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Adds item to IndexedDB under given key\r\n     * @param key\r\n     * @param payload\r\n     */\r\n    DatabaseStorage.prototype.put = function (key, payload) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        if (!!this.dbOpen) return [3 /*break*/, 2];\r\n                        return [4 /*yield*/, this.open()];\r\n                    case 1:\r\n                        _a.sent();\r\n                        _a.label = 2;\r\n                    case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n                            // TODO: Add timeouts?\r\n                            if (!_this.db) {\r\n                                return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n                            }\r\n                            var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n                            var objectStore = transaction.objectStore(_this.tableName);\r\n                            var dbPut = objectStore.put(payload, key);\r\n                            dbPut.addEventListener(\"success\", function (e) {\r\n                                var event = e;\r\n                                resolve(event.target.result);\r\n                            });\r\n                            dbPut.addEventListener(\"error\", function (e) { return reject(e); });\r\n                        })];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return DatabaseStorage;\r\n}());\n\nexport { DatabaseStorage };\n//# sourceMappingURL=DatabaseStorage.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { GuidGenerator } from './GuidGenerator.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\nimport { Base64Decode } from '../encode/Base64Decode.js';\nimport { PkceGenerator } from './PkceGenerator.js';\nimport { BrowserCrypto } from './BrowserCrypto.js';\nimport { DatabaseStorage } from '../cache/DatabaseStorage.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and\r\n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\r\n */\r\nvar CryptoOps = /** @class */ (function () {\r\n    function CryptoOps() {\r\n        // Browser crypto needs to be validated first before any other classes can be set.\r\n        this.browserCrypto = new BrowserCrypto();\r\n        this.b64Encode = new Base64Encode();\r\n        this.b64Decode = new Base64Decode();\r\n        this.guidGenerator = new GuidGenerator(this.browserCrypto);\r\n        this.pkceGenerator = new PkceGenerator(this.browserCrypto);\r\n        this.cache = new DatabaseStorage(CryptoOps.DB_NAME, CryptoOps.TABLE_NAME, CryptoOps.DB_VERSION);\r\n    }\r\n    /**\r\n     * Creates a new random GUID - used to populate state and nonce.\r\n     * @returns string (GUID)\r\n     */\r\n    CryptoOps.prototype.createNewGuid = function () {\r\n        return this.guidGenerator.generateGuid();\r\n    };\r\n    /**\r\n     * Encodes input string to base64.\r\n     * @param input\r\n     */\r\n    CryptoOps.prototype.base64Encode = function (input) {\r\n        return this.b64Encode.encode(input);\r\n    };\r\n    /**\r\n     * Decodes input string from base64.\r\n     * @param input\r\n     */\r\n    CryptoOps.prototype.base64Decode = function (input) {\r\n        return this.b64Decode.decode(input);\r\n    };\r\n    /**\r\n     * Generates PKCE codes used in Authorization Code Flow.\r\n     */\r\n    CryptoOps.prototype.generatePkceCodes = function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, this.pkceGenerator.generateCodes()];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Generates a keypair, stores it and returns a thumbprint\r\n     * @param request\r\n     */\r\n    CryptoOps.prototype.getPublicKeyThumbprint = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var keyPair, publicKeyJwk, pubKeyThumprintObj, publicJwkString, publicJwkBuffer, publicJwkHash, privateKeyJwk, unextractablePrivateKey;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0: return [4 /*yield*/, this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES)];\r\n                    case 1:\r\n                        keyPair = _a.sent();\r\n                        return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.publicKey)];\r\n                    case 2:\r\n                        publicKeyJwk = _a.sent();\r\n                        pubKeyThumprintObj = {\r\n                            e: publicKeyJwk.e,\r\n                            kty: publicKeyJwk.kty,\r\n                            n: publicKeyJwk.n\r\n                        };\r\n                        publicJwkString = BrowserCrypto.getJwkString(pubKeyThumprintObj);\r\n                        return [4 /*yield*/, this.browserCrypto.sha256Digest(publicJwkString)];\r\n                    case 3:\r\n                        publicJwkBuffer = _a.sent();\r\n                        publicJwkHash = this.b64Encode.urlEncodeArr(new Uint8Array(publicJwkBuffer));\r\n                        return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.privateKey)];\r\n                    case 4:\r\n                        privateKeyJwk = _a.sent();\r\n                        return [4 /*yield*/, this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"])];\r\n                    case 5:\r\n                        unextractablePrivateKey = _a.sent();\r\n                        // Store Keypair data in keystore\r\n                        this.cache.put(publicJwkHash, {\r\n                            privateKey: unextractablePrivateKey,\r\n                            publicKey: keyPair.publicKey,\r\n                            requestMethod: request.resourceRequestMethod,\r\n                            requestUri: request.resourceRequestUri\r\n                        });\r\n                        return [2 /*return*/, publicJwkHash];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Signs the given object as a jwt payload with private key retrieved by given kid.\r\n     * @param payload\r\n     * @param kid\r\n     */\r\n    CryptoOps.prototype.signJwt = function (payload, kid) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var cachedKeyPair, publicKeyJwk, publicKeyJwkString, header, encodedHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0: return [4 /*yield*/, this.cache.get(kid)];\r\n                    case 1:\r\n                        cachedKeyPair = _a.sent();\r\n                        return [4 /*yield*/, this.browserCrypto.exportJwk(cachedKeyPair.publicKey)];\r\n                    case 2:\r\n                        publicKeyJwk = _a.sent();\r\n                        publicKeyJwkString = BrowserCrypto.getJwkString(publicKeyJwk);\r\n                        header = {\r\n                            alg: publicKeyJwk.alg,\r\n                            type: KEY_FORMAT_JWK\r\n                        };\r\n                        encodedHeader = this.b64Encode.urlEncode(JSON.stringify(header));\r\n                        // Generate payload\r\n                        payload.cnf = {\r\n                            jwk: JSON.parse(publicKeyJwkString)\r\n                        };\r\n                        encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\r\n                        tokenString = encodedHeader + \".\" + encodedPayload;\r\n                        tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\r\n                        return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];\r\n                    case 3:\r\n                        signatureBuffer = _a.sent();\r\n                        encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\r\n                        return [2 /*return*/, tokenString + \".\" + encodedSignature];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    CryptoOps.POP_KEY_USAGES = [\"sign\", \"verify\"];\r\n    CryptoOps.EXTRACTABLE = true;\r\n    CryptoOps.DB_VERSION = 1;\r\n    CryptoOps.DB_NAME = \"msal.db\";\r\n    CryptoOps.TABLE_NAME = CryptoOps.DB_NAME + \".keys\";\r\n    return CryptoOps;\r\n}());\n\nexport { CryptoOps };\n//# sourceMappingURL=CryptoOps.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Authority types supported by MSAL.\r\n */\r\nvar AuthorityType;\r\n(function (AuthorityType) {\r\n    AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n    AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n})(AuthorityType || (AuthorityType = {}));\n\nexport { AuthorityType };\n//# sourceMappingURL=AuthorityType.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar DEFAULT_CRYPTO_IMPLEMENTATION = {\r\n    createNewGuid: function () {\r\n        var notImplErr = \"Crypto interface - createNewGuid() has not been implemented\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    },\r\n    base64Decode: function () {\r\n        var notImplErr = \"Crypto interface - base64Decode() has not been implemented\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    },\r\n    base64Encode: function () {\r\n        var notImplErr = \"Crypto interface - base64Encode() has not been implemented\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    },\r\n    generatePkceCodes: function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var notImplErr;\r\n            return __generator(this, function (_a) {\r\n                notImplErr = \"Crypto interface - generatePkceCodes() has not been implemented\";\r\n                throw AuthError.createUnexpectedError(notImplErr);\r\n            });\r\n        });\r\n    },\r\n    getPublicKeyThumbprint: function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var notImplErr;\r\n            return __generator(this, function (_a) {\r\n                notImplErr = \"Crypto interface - getPublicKeyThumbprint() has not been implemented\";\r\n                throw AuthError.createUnexpectedError(notImplErr);\r\n            });\r\n        });\r\n    },\r\n    signJwt: function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var notImplErr;\r\n            return __generator(this, function (_a) {\r\n                notImplErr = \"Crypto interface - signJwt() has not been implemented\";\r\n                throw AuthError.createUnexpectedError(notImplErr);\r\n            });\r\n        });\r\n    }\r\n};\n\nexport { DEFAULT_CRYPTO_IMPLEMENTATION };\n//# sourceMappingURL=ICrypto.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { ClientAuthError } from './ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientConfigurationErrorMessage = {\r\n    redirectUriNotSet: {\r\n        code: \"redirect_uri_empty\",\r\n        desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n    },\r\n    postLogoutUriNotSet: {\r\n        code: \"post_logout_uri_empty\",\r\n        desc: \"A post logout redirect has not been set.\"\r\n    },\r\n    claimsRequestParsingError: {\r\n        code: \"claims_request_parsing_error\",\r\n        desc: \"Could not parse the given claims request object.\"\r\n    },\r\n    authorityUriInsecure: {\r\n        code: \"authority_uri_insecure\",\r\n        desc: \"Authority URIs must use https.  Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\"\r\n    },\r\n    urlParseError: {\r\n        code: \"url_parse_error\",\r\n        desc: \"URL could not be parsed into appropriate segments.\"\r\n    },\r\n    urlEmptyError: {\r\n        code: \"empty_url_error\",\r\n        desc: \"URL was empty or null.\"\r\n    },\r\n    emptyScopesError: {\r\n        code: \"empty_input_scopes_error\",\r\n        desc: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\"\r\n    },\r\n    nonArrayScopesError: {\r\n        code: \"nonarray_input_scopes_error\",\r\n        desc: \"Scopes cannot be passed as non-array.\"\r\n    },\r\n    clientIdSingleScopeError: {\r\n        code: \"clientid_input_scopes_error\",\r\n        desc: \"Client ID can only be provided as a single scope.\"\r\n    },\r\n    invalidPrompt: {\r\n        code: \"invalid_prompt_value\",\r\n        desc: \"Supported prompt values are 'login', 'select_account', 'consent', 'create' and 'none'.  Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest\",\r\n    },\r\n    invalidClaimsRequest: {\r\n        code: \"invalid_claims\",\r\n        desc: \"Given claims parameter must be a stringified JSON object.\"\r\n    },\r\n    tokenRequestEmptyError: {\r\n        code: \"token_request_empty\",\r\n        desc: \"Token request was empty and not found in cache.\"\r\n    },\r\n    logoutRequestEmptyError: {\r\n        code: \"logout_request_empty\",\r\n        desc: \"The logout request was null or undefined.\"\r\n    },\r\n    invalidCodeChallengeMethod: {\r\n        code: \"invalid_code_challenge_method\",\r\n        desc: \"code_challenge_method passed is invalid. Valid values are \\\"plain\\\" and \\\"S256\\\".\"\r\n    },\r\n    invalidCodeChallengeParams: {\r\n        code: \"pkce_params_missing\",\r\n        desc: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\"\r\n    },\r\n    invalidCloudDiscoveryMetadata: {\r\n        code: \"invalid_cloud_discovery_metadata\",\r\n        desc: \"Invalid cloudDiscoveryMetadata provided. Must be a JSON object containing tenant_discovery_endpoint and metadata fields\"\r\n    },\r\n    invalidAuthorityMetadata: {\r\n        code: \"invalid_authority_metadata\",\r\n        desc: \"Invalid authorityMetadata provided. Must by a JSON object containing authorization_endpoint, token_endpoint, end_session_endpoint, issuer fields.\"\r\n    },\r\n    untrustedAuthority: {\r\n        code: \"untrusted_authority\",\r\n        desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.\"\r\n    }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the MSAL.js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n    __extends(ClientConfigurationError, _super);\r\n    function ClientConfigurationError(errorCode, errorMessage) {\r\n        var _this = _super.call(this, errorCode, errorMessage) || this;\r\n        _this.name = \"ClientConfigurationError\";\r\n        Object.setPrototypeOf(_this, ClientConfigurationError.prototype);\r\n        return _this;\r\n    }\r\n    /**\r\n     * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n     */\r\n    ClientConfigurationError.createRedirectUriEmptyError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.redirectUriNotSet.code, ClientConfigurationErrorMessage.redirectUriNotSet.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n     */\r\n    ClientConfigurationError.createPostLogoutRedirectUriEmptyError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.postLogoutUriNotSet.code, ClientConfigurationErrorMessage.postLogoutUriNotSet.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the claims request could not be successfully parsed\r\n     */\r\n    ClientConfigurationError.createClaimsRequestParsingError = function (claimsRequestParseError) {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code, ClientConfigurationErrorMessage.claimsRequestParsingError.desc + \" Given value: \" + claimsRequestParseError);\r\n    };\r\n    /**\r\n     * Creates an error thrown if authority uri is given an insecure protocol.\r\n     * @param urlString\r\n     */\r\n    ClientConfigurationError.createInsecureAuthorityUriError = function (urlString) {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityUriInsecure.code, ClientConfigurationErrorMessage.authorityUriInsecure.desc + \" Given URI: \" + urlString);\r\n    };\r\n    /**\r\n     * Creates an error thrown if URL string does not parse into separate segments.\r\n     * @param urlString\r\n     */\r\n    ClientConfigurationError.createUrlParseError = function (urlParseError) {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.urlParseError.code, ClientConfigurationErrorMessage.urlParseError.desc + \" Given Error: \" + urlParseError);\r\n    };\r\n    /**\r\n     * Creates an error thrown if URL string is empty or null.\r\n     * @param urlString\r\n     */\r\n    ClientConfigurationError.createUrlEmptyError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.urlEmptyError.code, ClientConfigurationErrorMessage.urlEmptyError.desc);\r\n    };\r\n    /**\r\n     * Error thrown when scopes are empty.\r\n     * @param scopesValue\r\n     */\r\n    ClientConfigurationError.createEmptyScopesArrayError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopesError.code, \"\" + ClientConfigurationErrorMessage.emptyScopesError.desc);\r\n    };\r\n    /**\r\n     * Error thrown when client id scope is not provided as single scope.\r\n     * @param inputScopes\r\n     */\r\n    ClientConfigurationError.createClientIdSingleScopeError = function (inputScopes) {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.clientIdSingleScopeError.code, ClientConfigurationErrorMessage.clientIdSingleScopeError.desc + \" Given Scopes: \" + inputScopes);\r\n    };\r\n    /**\r\n     * Error thrown when prompt is not an allowed type.\r\n     * @param promptValue\r\n     */\r\n    ClientConfigurationError.createInvalidPromptError = function (promptValue) {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code, ClientConfigurationErrorMessage.invalidPrompt.desc + \" Given value: \" + promptValue);\r\n    };\r\n    /**\r\n     * Creates error thrown when claims parameter is not a stringified JSON object\r\n     */\r\n    ClientConfigurationError.createInvalidClaimsRequestError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidClaimsRequest.code, ClientConfigurationErrorMessage.invalidClaimsRequest.desc);\r\n    };\r\n    /**\r\n     * Throws error when token request is empty and nothing cached in storage.\r\n     */\r\n    ClientConfigurationError.createEmptyLogoutRequestError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.logoutRequestEmptyError.code, ClientConfigurationErrorMessage.logoutRequestEmptyError.desc);\r\n    };\r\n    /**\r\n     * Throws error when token request is empty and nothing cached in storage.\r\n     */\r\n    ClientConfigurationError.createEmptyTokenRequestError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.tokenRequestEmptyError.code, ClientConfigurationErrorMessage.tokenRequestEmptyError.desc);\r\n    };\r\n    /**\r\n     * Throws error when an invalid code_challenge_method is passed by the user\r\n     */\r\n    ClientConfigurationError.createInvalidCodeChallengeMethodError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeMethod.code, ClientConfigurationErrorMessage.invalidCodeChallengeMethod.desc);\r\n    };\r\n    /**\r\n     * Throws error when both params: code_challenge and code_challenge_method are not passed together\r\n     */\r\n    ClientConfigurationError.createInvalidCodeChallengeParamsError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeParams.code, ClientConfigurationErrorMessage.invalidCodeChallengeParams.desc);\r\n    };\r\n    /**\r\n     * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n     */\r\n    ClientConfigurationError.createInvalidCloudDiscoveryMetadataError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.code, ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.desc);\r\n    };\r\n    /**\r\n     * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n     */\r\n    ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadata.code, ClientConfigurationErrorMessage.invalidAuthorityMetadata.desc);\r\n    };\r\n    /**\r\n     * Throws error when provided authority is not a member of the trusted host list\r\n     */\r\n    ClientConfigurationError.createUntrustedAuthorityError = function () {\r\n        return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc);\r\n    };\r\n    return ClientConfigurationError;\r\n}(ClientAuthError));\n\nexport { ClientConfigurationError, ClientConfigurationErrorMessage };\n//# sourceMappingURL=ClientConfigurationError.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { AADAuthorityConstants, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nvar UrlString = /** @class */ (function () {\r\n    function UrlString(url) {\r\n        this._urlString = url;\r\n        if (StringUtils.isEmpty(this._urlString)) {\r\n            // Throws error if url is empty\r\n            throw ClientConfigurationError.createUrlEmptyError();\r\n        }\r\n        if (StringUtils.isEmpty(this.getHash())) {\r\n            this._urlString = UrlString.canonicalizeUri(url);\r\n        }\r\n    }\r\n    Object.defineProperty(UrlString.prototype, \"urlString\", {\r\n        get: function () {\r\n            return this._urlString;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    /**\r\n     * Ensure urls are lower case and end with a / character.\r\n     * @param url\r\n     */\r\n    UrlString.canonicalizeUri = function (url) {\r\n        if (url) {\r\n            var lowerCaseUrl = url.toLowerCase();\r\n            if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n                lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n            }\r\n            else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n                lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n            }\r\n            if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n                lowerCaseUrl += \"/\";\r\n            }\r\n            return lowerCaseUrl;\r\n        }\r\n        return url;\r\n    };\r\n    /**\r\n     * Throws if urlString passed is not a valid authority URI string.\r\n     */\r\n    UrlString.prototype.validateAsUri = function () {\r\n        // Attempts to parse url for uri components\r\n        var components;\r\n        try {\r\n            components = this.getUrlComponents();\r\n        }\r\n        catch (e) {\r\n            throw ClientConfigurationError.createUrlParseError(e);\r\n        }\r\n        // Throw error if URI or path segments are not parseable.\r\n        if (!components.HostNameAndPort || !components.PathSegments) {\r\n            throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n        }\r\n        // Throw error if uri is insecure.\r\n        if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n            throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n        }\r\n    };\r\n    /**\r\n     * Function to remove query string params from url. Returns the new url.\r\n     * @param url\r\n     * @param name\r\n     */\r\n    UrlString.prototype.urlRemoveQueryStringParameter = function (name) {\r\n        var regex = new RegExp(\"(\\\\&\" + name + \"=)[^\\&]+\");\r\n        this._urlString = this.urlString.replace(regex, \"\");\r\n        // name=value&\r\n        regex = new RegExp(\"(\" + name + \"=)[^\\&]+&\");\r\n        this._urlString = this.urlString.replace(regex, \"\");\r\n        // name=value\r\n        regex = new RegExp(\"(\" + name + \"=)[^\\&]+\");\r\n        this._urlString = this.urlString.replace(regex, \"\");\r\n        return this.urlString;\r\n    };\r\n    /**\r\n     * Given a url and a query string return the url with provided query string appended\r\n     * @param url\r\n     * @param queryString\r\n     */\r\n    UrlString.appendQueryString = function (url, queryString) {\r\n        if (StringUtils.isEmpty(queryString)) {\r\n            return url;\r\n        }\r\n        return url.indexOf(\"?\") < 0 ? url + \"?\" + queryString : url + \"&\" + queryString;\r\n    };\r\n    /**\r\n     * Returns a url with the hash removed\r\n     * @param url\r\n     */\r\n    UrlString.removeHashFromUrl = function (url) {\r\n        return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n    };\r\n    /**\r\n     * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n     * @param href The url\r\n     * @param tenantId The tenant id to replace\r\n     */\r\n    UrlString.prototype.replaceTenantPath = function (tenantId) {\r\n        var urlObject = this.getUrlComponents();\r\n        var pathArray = urlObject.PathSegments;\r\n        if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n            pathArray[0] = tenantId;\r\n        }\r\n        return UrlString.constructAuthorityUriFromObject(urlObject);\r\n    };\r\n    /**\r\n     * Returns the anchor part(#) of the URL\r\n     */\r\n    UrlString.prototype.getHash = function () {\r\n        return UrlString.parseHash(this.urlString);\r\n    };\r\n    /**\r\n     * Parses out the components from a url string.\r\n     * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n     */\r\n    UrlString.prototype.getUrlComponents = function () {\r\n        // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n        var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n        // If url string does not match regEx, we throw an error\r\n        var match = this.urlString.match(regEx);\r\n        if (!match) {\r\n            throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n        }\r\n        // Url component object\r\n        var urlComponents = {\r\n            Protocol: match[1],\r\n            HostNameAndPort: match[4],\r\n            AbsolutePath: match[5],\r\n            QueryString: match[7]\r\n        };\r\n        var pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n        pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements\r\n        urlComponents.PathSegments = pathSegments;\r\n        if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n            urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);\r\n        }\r\n        return urlComponents;\r\n    };\r\n    UrlString.getDomainFromUrl = function (url) {\r\n        var regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n        var match = url.match(regEx);\r\n        if (!match) {\r\n            throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + url);\r\n        }\r\n        return match[2];\r\n    };\r\n    UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {\r\n        if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n            var url = new UrlString(baseUrl);\r\n            var baseComponents = url.getUrlComponents();\r\n            return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n        }\r\n        return relativeUrl;\r\n    };\r\n    /**\r\n     * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n     * @param hashString\r\n     */\r\n    UrlString.parseHash = function (hashString) {\r\n        var hashIndex1 = hashString.indexOf(\"#\");\r\n        var hashIndex2 = hashString.indexOf(\"#/\");\r\n        if (hashIndex2 > -1) {\r\n            return hashString.substring(hashIndex2 + 2);\r\n        }\r\n        else if (hashIndex1 > -1) {\r\n            return hashString.substring(hashIndex1 + 1);\r\n        }\r\n        return \"\";\r\n    };\r\n    UrlString.constructAuthorityUriFromObject = function (urlObject) {\r\n        return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n    };\r\n    /**\r\n     * Returns URL hash as server auth code response object.\r\n     */\r\n    UrlString.getDeserializedHash = function (hash) {\r\n        // Check if given hash is empty\r\n        if (StringUtils.isEmpty(hash)) {\r\n            return {};\r\n        }\r\n        // Strip the # symbol if present\r\n        var parsedHash = UrlString.parseHash(hash);\r\n        // If # symbol was not present, above will return empty string, so give original hash value\r\n        var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n        // Check if deserialization didn't work\r\n        if (!deserializedHash) {\r\n            throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n        }\r\n        return deserializedHash;\r\n    };\r\n    /**\r\n     * Check if the hash of the URL string contains known properties\r\n     */\r\n    UrlString.hashContainsKnownProperties = function (hash) {\r\n        if (StringUtils.isEmpty(hash)) {\r\n            return false;\r\n        }\r\n        var parameters = UrlString.getDeserializedHash(hash);\r\n        return !!(parameters.code ||\r\n            parameters.error_description ||\r\n            parameters.error ||\r\n            parameters.state);\r\n    };\r\n    return UrlString;\r\n}());\n\nexport { UrlString };\n//# sourceMappingURL=UrlString.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ThrottlingConstants, CacheSchemaType, Constants, HeaderNames } from '../utils/Constants.js';\nimport { ServerError } from '../error/ServerError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingUtils = /** @class */ (function () {\r\n    function ThrottlingUtils() {\r\n    }\r\n    /**\r\n     * Prepares a RequestThumbprint to be stored as a key.\r\n     * @param thumbprint\r\n     */\r\n    ThrottlingUtils.generateThrottlingStorageKey = function (thumbprint) {\r\n        return ThrottlingConstants.THROTTLING_PREFIX + \".\" + JSON.stringify(thumbprint);\r\n    };\r\n    /**\r\n     * Performs necessary throttling checks before a network request.\r\n     * @param cacheManager\r\n     * @param thumbprint\r\n     */\r\n    ThrottlingUtils.preProcess = function (cacheManager, thumbprint) {\r\n        var _a;\r\n        var key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n        var value = cacheManager.getThrottlingCache(key);\r\n        if (value) {\r\n            if (value.throttleTime < Date.now()) {\r\n                cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n                return;\r\n            }\r\n            throw new ServerError(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n        }\r\n    };\r\n    /**\r\n     * Performs necessary throttling checks after a network request.\r\n     * @param cacheManager\r\n     * @param thumbprint\r\n     * @param response\r\n     */\r\n    ThrottlingUtils.postProcess = function (cacheManager, thumbprint, response) {\r\n        if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n            var thumbprintValue = {\r\n                throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n                error: response.body.error,\r\n                errorCodes: response.body.error_codes,\r\n                errorMessage: response.body.error_description,\r\n                subError: response.body.suberror\r\n            };\r\n            cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);\r\n        }\r\n    };\r\n    /**\r\n     * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n     * @param response\r\n     */\r\n    ThrottlingUtils.checkResponseStatus = function (response) {\r\n        return response.status === 429 || response.status >= 500 && response.status < 600;\r\n    };\r\n    /**\r\n     * Checks a NetworkResponse object's RetryAfter header\r\n     * @param response\r\n     */\r\n    ThrottlingUtils.checkResponseForRetryAfter = function (response) {\r\n        if (response.headers) {\r\n            return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\r\n        }\r\n        return false;\r\n    };\r\n    /**\r\n     * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n     * @param throttleTime\r\n     */\r\n    ThrottlingUtils.calculateThrottleTime = function (throttleTime) {\r\n        var time = throttleTime <= 0 ? 0 : throttleTime;\r\n        var currentSeconds = Date.now() / 1000;\r\n        return Math.floor(Math.min(currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);\r\n    };\r\n    ThrottlingUtils.removeThrottle = function (cacheManager, clientId, authority, scopes, homeAccountIdentifier) {\r\n        var thumbprint = {\r\n            clientId: clientId,\r\n            authority: authority,\r\n            scopes: scopes,\r\n            homeAccountIdentifier: homeAccountIdentifier\r\n        };\r\n        var key = this.generateThrottlingStorageKey(thumbprint);\r\n        return cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n    };\r\n    return ThrottlingUtils;\r\n}());\n\nexport { ThrottlingUtils };\n//# sourceMappingURL=ThrottlingUtils.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants, Separators } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Function to build a client info object from server clientInfo string\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nfunction buildClientInfo(rawClientInfo, crypto) {\r\n    if (StringUtils.isEmpty(rawClientInfo)) {\r\n        throw ClientAuthError.createClientInfoEmptyError();\r\n    }\r\n    try {\r\n        var decodedClientInfo = crypto.base64Decode(rawClientInfo);\r\n        return JSON.parse(decodedClientInfo);\r\n    }\r\n    catch (e) {\r\n        throw ClientAuthError.createClientInfoDecodingError(e);\r\n    }\r\n}\r\n/**\r\n * Function to build a client info object from cached homeAccountId string\r\n * @param homeAccountId\r\n */\r\nfunction buildClientInfoFromHomeAccountId(homeAccountId) {\r\n    if (StringUtils.isEmpty(homeAccountId)) {\r\n        throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\r\n    }\r\n    var clientInfoParts = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\r\n    return {\r\n        uid: clientInfoParts[0],\r\n        utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\r\n    };\r\n}\n\nexport { buildClientInfo, buildClientInfoFromHomeAccountId };\n//# sourceMappingURL=ClientInfo.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { Separators, CacheAccountType, CacheType, Constants } from '../../utils/Constants.js';\nimport { buildClientInfo } from '../../account/ClientInfo.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\nimport { AuthorityType } from '../../authority/AuthorityType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\r\n *\r\n * Key : Value Schema\r\n *\r\n * Key: <home_account_id>-<environment>-<realm*>\r\n *\r\n * Value Schema:\r\n * {\r\n *      homeAccountId: home account identifier for the auth scheme,\r\n *      environment: entity that issued the token, represented as a full host\r\n *      realm: Full tenant or organizational identifier that the account belongs to\r\n *      localAccountId: Original tenant-specific accountID, usually used for legacy cases\r\n *      username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\r\n *      authorityType: Accounts authority type as a string\r\n *      name: Full name for the account, including given name and family name,\r\n *      clientInfo: Full base64 encoded client info received from ESTS\r\n *      lastModificationTime: last time this entity was modified in the cache\r\n *      lastModificationApp:\r\n *      oboAssertion: access token passed in as part of OBO request\r\n *      idTokenClaims: Object containing claims parsed from ID token\r\n * }\r\n */\r\nvar AccountEntity = /** @class */ (function () {\r\n    function AccountEntity() {\r\n    }\r\n    /**\r\n     * Generate Account Id key component as per the schema: <home_account_id>-<environment>\r\n     */\r\n    AccountEntity.prototype.generateAccountId = function () {\r\n        var accountId = [this.homeAccountId, this.environment];\r\n        return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n    };\r\n    /**\r\n     * Generate Account Cache Key as per the schema: <home_account_id>-<environment>-<realm*>\r\n     */\r\n    AccountEntity.prototype.generateAccountKey = function () {\r\n        return AccountEntity.generateAccountCacheKey({\r\n            homeAccountId: this.homeAccountId,\r\n            environment: this.environment,\r\n            tenantId: this.realm,\r\n            username: this.username,\r\n            localAccountId: this.localAccountId\r\n        });\r\n    };\r\n    /**\r\n     * returns the type of the cache (in this case account)\r\n     */\r\n    AccountEntity.prototype.generateType = function () {\r\n        switch (this.authorityType) {\r\n            case CacheAccountType.ADFS_ACCOUNT_TYPE:\r\n                return CacheType.ADFS;\r\n            case CacheAccountType.MSAV1_ACCOUNT_TYPE:\r\n                return CacheType.MSA;\r\n            case CacheAccountType.MSSTS_ACCOUNT_TYPE:\r\n                return CacheType.MSSTS;\r\n            case CacheAccountType.GENERIC_ACCOUNT_TYPE:\r\n                return CacheType.GENERIC;\r\n            default: {\r\n                throw ClientAuthError.createUnexpectedAccountTypeError();\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Returns the AccountInfo interface for this account.\r\n     */\r\n    AccountEntity.prototype.getAccountInfo = function () {\r\n        return {\r\n            homeAccountId: this.homeAccountId,\r\n            environment: this.environment,\r\n            tenantId: this.realm,\r\n            username: this.username,\r\n            localAccountId: this.localAccountId,\r\n            name: this.name,\r\n            idTokenClaims: this.idTokenClaims\r\n        };\r\n    };\r\n    /**\r\n     * Generates account key from interface\r\n     * @param accountInterface\r\n     */\r\n    AccountEntity.generateAccountCacheKey = function (accountInterface) {\r\n        var accountKey = [\r\n            accountInterface.homeAccountId,\r\n            accountInterface.environment || \"\",\r\n            accountInterface.tenantId || \"\",\r\n        ];\r\n        return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n    };\r\n    /**\r\n     * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\r\n     * @param clientInfo\r\n     * @param authority\r\n     * @param idToken\r\n     * @param policy\r\n     */\r\n    AccountEntity.createAccount = function (clientInfo, homeAccountId, authority, idToken, oboAssertion, cloudGraphHostName, msGraphHost) {\r\n        var _a, _b, _c, _d, _e, _f;\r\n        var account = new AccountEntity();\r\n        account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\r\n        account.clientInfo = clientInfo;\r\n        account.homeAccountId = homeAccountId;\r\n        var env = authority.getPreferredCache();\r\n        if (StringUtils.isEmpty(env)) {\r\n            throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n        }\r\n        account.environment = env;\r\n        // non AAD scenarios can have empty realm\r\n        account.realm = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.tid) || \"\";\r\n        account.oboAssertion = oboAssertion;\r\n        if (idToken) {\r\n            account.idTokenClaims = idToken.claims;\r\n            // How do you account for MSA CID here?\r\n            account.localAccountId = ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.oid) || ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.sub) || \"\";\r\n            /*\r\n             * In B2C scenarios the emails claim is used instead of preferred_username and it is an array. In most cases it will contain a single email.\r\n             * This field should not be relied upon if a custom policy is configured to return more than 1 email.\r\n             */\r\n            account.username = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.preferred_username) || (((_e = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _e === void 0 ? void 0 : _e.emails) ? idToken.claims.emails[0] : \"\");\r\n            account.name = (_f = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _f === void 0 ? void 0 : _f.name;\r\n        }\r\n        account.cloudGraphHostName = cloudGraphHostName;\r\n        account.msGraphHost = msGraphHost;\r\n        return account;\r\n    };\r\n    /**\r\n     * Builds non-AAD/ADFS account.\r\n     * @param authority\r\n     * @param idToken\r\n     */\r\n    AccountEntity.createGenericAccount = function (authority, homeAccountId, idToken, oboAssertion, cloudGraphHostName, msGraphHost) {\r\n        var _a, _b, _c, _d;\r\n        var account = new AccountEntity();\r\n        account.authorityType = (authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n        account.homeAccountId = homeAccountId;\r\n        // non AAD scenarios can have empty realm\r\n        account.realm = \"\";\r\n        account.oboAssertion = oboAssertion;\r\n        var env = authority.getPreferredCache();\r\n        if (StringUtils.isEmpty(env)) {\r\n            throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n        }\r\n        if (idToken) {\r\n            // How do you account for MSA CID here?\r\n            account.localAccountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.oid) || ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.sub) || \"\";\r\n            // upn claim for most ADFS scenarios\r\n            account.username = ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.upn) || \"\";\r\n            account.name = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.name) || \"\";\r\n            account.idTokenClaims = idToken === null || idToken === void 0 ? void 0 : idToken.claims;\r\n        }\r\n        account.environment = env;\r\n        account.cloudGraphHostName = cloudGraphHostName;\r\n        account.msGraphHost = msGraphHost;\r\n        /*\r\n         * add uniqueName to claims\r\n         * account.name = idToken.claims.uniqueName;\r\n         */\r\n        return account;\r\n    };\r\n    /**\r\n     * Generate HomeAccountId from server response\r\n     * @param serverClientInfo\r\n     * @param authType\r\n     */\r\n    AccountEntity.generateHomeAccountId = function (serverClientInfo, authType, logger, cryptoObj, idToken) {\r\n        var _a;\r\n        var accountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.sub) ? idToken.claims.sub : Constants.EMPTY_STRING;\r\n        // since ADFS does not have tid and does not set client_info\r\n        if (authType === AuthorityType.Adfs) {\r\n            return accountId;\r\n        }\r\n        // for cases where there is clientInfo\r\n        if (serverClientInfo) {\r\n            try {\r\n                var clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\r\n                if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\r\n                    return \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid;\r\n                }\r\n            }\r\n            catch (e) { }\r\n        }\r\n        // default to \"sub\" claim\r\n        logger.verbose(\"No client info in response\");\r\n        return accountId;\r\n    };\r\n    /**\r\n     * Validates an entity: checks for all expected params\r\n     * @param entity\r\n     */\r\n    AccountEntity.isAccountEntity = function (entity) {\r\n        if (!entity) {\r\n            return false;\r\n        }\r\n        return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n            entity.hasOwnProperty(\"environment\") &&\r\n            entity.hasOwnProperty(\"realm\") &&\r\n            entity.hasOwnProperty(\"localAccountId\") &&\r\n            entity.hasOwnProperty(\"username\") &&\r\n            entity.hasOwnProperty(\"authorityType\"));\r\n    };\r\n    /**\r\n     * Helper function to determine whether 2 accountInfo objects represent the same account\r\n     * @param accountA\r\n     * @param accountB\r\n     * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\r\n     */\r\n    AccountEntity.accountInfoIsEqual = function (accountA, accountB, compareClaims) {\r\n        if (!accountA || !accountB) {\r\n            return false;\r\n        }\r\n        var claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\r\n        if (compareClaims) {\r\n            var accountAClaims = (accountA.idTokenClaims || {});\r\n            var accountBClaims = (accountB.idTokenClaims || {});\r\n            // issued at timestamp and nonce are expected to change each time a new id token is acquired\r\n            claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\r\n                (accountAClaims.nonce === accountBClaims.nonce);\r\n        }\r\n        return (accountA.homeAccountId === accountB.homeAccountId) &&\r\n            (accountA.localAccountId === accountB.localAccountId) &&\r\n            (accountA.username === accountB.username) &&\r\n            (accountA.tenantId === accountB.tenantId) &&\r\n            (accountA.environment === accountB.environment) &&\r\n            claimsMatch;\r\n    };\r\n    return AccountEntity;\r\n}());\n\nexport { AccountEntity };\n//# sourceMappingURL=AccountEntity.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Protocol modes supported by MSAL.\r\n */\r\nvar ProtocolMode;\r\n(function (ProtocolMode) {\r\n    ProtocolMode[\"AAD\"] = \"AAD\";\r\n    ProtocolMode[\"OIDC\"] = \"OIDC\";\r\n})(ProtocolMode || (ProtocolMode = {}));\n\nexport { ProtocolMode };\n//# sourceMappingURL=ProtocolMode.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isOpenIdConfigResponse(response) {\r\n    return (response.hasOwnProperty(\"authorization_endpoint\") &&\r\n        response.hasOwnProperty(\"token_endpoint\") &&\r\n        response.hasOwnProperty(\"end_session_endpoint\") &&\r\n        response.hasOwnProperty(\"issuer\"));\r\n}\n\nexport { isOpenIdConfigResponse };\n//# sourceMappingURL=OpenIdConfigResponse.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class which exposes functions for managing date and time operations.\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n    function TimeUtils() {\r\n    }\r\n    /**\r\n     * return the current time in Unix time (seconds).\r\n     */\r\n    TimeUtils.nowSeconds = function () {\r\n        // Date.getTime() returns in milliseconds.\r\n        return Math.round(new Date().getTime() / 1000.0);\r\n    };\r\n    /**\r\n     * check if a token is expired based on given UTC time in seconds.\r\n     * @param expiresOn\r\n     */\r\n    TimeUtils.isTokenExpired = function (expiresOn, offset) {\r\n        // check for access token expiry\r\n        var expirationSec = Number(expiresOn) || 0;\r\n        var offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;\r\n        // If current time + offset is greater than token expiration time, then token is expired.\r\n        return (offsetCurrentTimeSec > expirationSec);\r\n    };\r\n    /**\r\n     * If the current time is earlier than the time that a token was cached at, we must discard the token\r\n     * i.e. The system clock was turned back after acquiring the cached token\r\n     * @param cachedAt\r\n     * @param offset\r\n     */\r\n    TimeUtils.wasClockTurnedBack = function (cachedAt) {\r\n        var cachedAtSec = Number(cachedAt);\r\n        return cachedAtSec > TimeUtils.nowSeconds();\r\n    };\r\n    /**\r\n     * Waits for t number of milliseconds\r\n     * @param t number\r\n     * @param value T\r\n     */\r\n    TimeUtils.delay = function (t, value) {\r\n        return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); });\r\n    };\r\n    return TimeUtils;\r\n}());\n\nexport { TimeUtils };\n//# sourceMappingURL=TimeUtils.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { AUTHORITY_METADATA_CONSTANTS } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityMetadataEntity = /** @class */ (function () {\r\n    function AuthorityMetadataEntity() {\r\n        this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n    }\r\n    /**\r\n     * Update the entity with new aliases, preferred_cache and preferred_network values\r\n     * @param metadata\r\n     * @param fromNetwork\r\n     */\r\n    AuthorityMetadataEntity.prototype.updateCloudDiscoveryMetadata = function (metadata, fromNetwork) {\r\n        this.aliases = metadata.aliases;\r\n        this.preferred_cache = metadata.preferred_cache;\r\n        this.preferred_network = metadata.preferred_network;\r\n        this.aliasesFromNetwork = fromNetwork;\r\n    };\r\n    /**\r\n     * Update the entity with new endpoints\r\n     * @param metadata\r\n     * @param fromNetwork\r\n     */\r\n    AuthorityMetadataEntity.prototype.updateEndpointMetadata = function (metadata, fromNetwork) {\r\n        this.authorization_endpoint = metadata.authorization_endpoint;\r\n        this.token_endpoint = metadata.token_endpoint;\r\n        this.end_session_endpoint = metadata.end_session_endpoint;\r\n        this.issuer = metadata.issuer;\r\n        this.endpointsFromNetwork = fromNetwork;\r\n    };\r\n    /**\r\n     * Save the authority that was used to create this cache entry\r\n     * @param authority\r\n     */\r\n    AuthorityMetadataEntity.prototype.updateCanonicalAuthority = function (authority) {\r\n        this.canonical_authority = authority;\r\n    };\r\n    /**\r\n     * Reset the exiresAt value\r\n     */\r\n    AuthorityMetadataEntity.prototype.resetExpiresAt = function () {\r\n        this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n    };\r\n    /**\r\n     * Returns whether or not the data needs to be refreshed\r\n     */\r\n    AuthorityMetadataEntity.prototype.isExpired = function () {\r\n        return this.expiresAt <= TimeUtils.nowSeconds();\r\n    };\r\n    /**\r\n     * Validates an entity: checks for all expected params\r\n     * @param entity\r\n     */\r\n    AuthorityMetadataEntity.isAuthorityMetadataEntity = function (key, entity) {\r\n        if (!entity) {\r\n            return false;\r\n        }\r\n        return (key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\r\n            entity.hasOwnProperty(\"aliases\") &&\r\n            entity.hasOwnProperty(\"preferred_cache\") &&\r\n            entity.hasOwnProperty(\"preferred_network\") &&\r\n            entity.hasOwnProperty(\"canonical_authority\") &&\r\n            entity.hasOwnProperty(\"authorization_endpoint\") &&\r\n            entity.hasOwnProperty(\"token_endpoint\") &&\r\n            entity.hasOwnProperty(\"end_session_endpoint\") &&\r\n            entity.hasOwnProperty(\"issuer\") &&\r\n            entity.hasOwnProperty(\"aliasesFromNetwork\") &&\r\n            entity.hasOwnProperty(\"endpointsFromNetwork\") &&\r\n            entity.hasOwnProperty(\"expiresAt\"));\r\n    };\r\n    return AuthorityMetadataEntity;\r\n}());\n\nexport { AuthorityMetadataEntity };\n//# sourceMappingURL=AuthorityMetadataEntity.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { RegionDiscoverySources, ResponseCodes, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RegionDiscovery = /** @class */ (function () {\r\n    function RegionDiscovery(networkInterface) {\r\n        this.networkInterface = networkInterface;\r\n    }\r\n    /**\r\n     * Detect the region from the application's environment.\r\n     *\r\n     * @returns Promise<string | null>\r\n     */\r\n    RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var autodetectedRegionName, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        autodetectedRegionName = environmentRegion;\r\n                        if (!!autodetectedRegionName) return [3 /*break*/, 8];\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 6, , 7]);\r\n                        return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION)];\r\n                    case 2:\r\n                        localIMDSVersionResponse = _a.sent();\r\n                        if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n                            autodetectedRegionName = localIMDSVersionResponse.body;\r\n                            regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n                        }\r\n                        if (!(localIMDSVersionResponse.status === ResponseCodes.httpBadRequest)) return [3 /*break*/, 5];\r\n                        return [4 /*yield*/, this.getCurrentVersion()];\r\n                    case 3:\r\n                        currentIMDSVersion = _a.sent();\r\n                        if (!currentIMDSVersion) {\r\n                            regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n                            return [2 /*return*/, null];\r\n                        }\r\n                        return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion)];\r\n                    case 4:\r\n                        currentIMDSVersionResponse = _a.sent();\r\n                        if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n                            autodetectedRegionName = currentIMDSVersionResponse.body;\r\n                            regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n                        }\r\n                        _a.label = 5;\r\n                    case 5: return [3 /*break*/, 7];\r\n                    case 6:\r\n                        _a.sent();\r\n                        regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n                        return [2 /*return*/, null];\r\n                    case 7: return [3 /*break*/, 9];\r\n                    case 8:\r\n                        regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\r\n                        _a.label = 9;\r\n                    case 9:\r\n                        // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\r\n                        if (!autodetectedRegionName) {\r\n                            regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n                        }\r\n                        return [2 /*return*/, autodetectedRegionName || null];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Make the call to the IMDS endpoint\r\n     *\r\n     * @param imdsEndpointUrl\r\n     * @returns Promise<NetworkResponse<string>>\r\n     */\r\n    RegionDiscovery.prototype.getRegionFromIMDS = function (version) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?api-version=\" + version + \"&format=text\", RegionDiscovery.IMDS_OPTIONS, Constants.IMDS_TIMEOUT)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Get the most recent version of the IMDS endpoint available\r\n     *\r\n     * @returns Promise<string | null>\r\n     */\r\n    RegionDiscovery.prototype.getCurrentVersion = function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var response;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        _a.trys.push([0, 2, , 3]);\r\n                        return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?format=json\", RegionDiscovery.IMDS_OPTIONS)];\r\n                    case 1:\r\n                        response = _a.sent();\r\n                        // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\r\n                        if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\r\n                            return [2 /*return*/, response.body[\"newest-versions\"][0]];\r\n                        }\r\n                        return [2 /*return*/, null];\r\n                    case 2:\r\n                        _a.sent();\r\n                        return [2 /*return*/, null];\r\n                    case 3: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    // Options for the IMDS endpoint request\r\n    RegionDiscovery.IMDS_OPTIONS = { headers: { \"Metadata\": \"true\" } };\r\n    return RegionDiscovery;\r\n}());\n\nexport { RegionDiscovery };\n//# sourceMappingURL=RegionDiscovery.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthorityType } from './AuthorityType.js';\nimport { isOpenIdConfigResponse } from './OpenIdConfigResponse.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, AuthorityMetadataSource, RegionDiscoveryOutcomes } from '../utils/Constants.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ProtocolMode } from './ProtocolMode.js';\nimport { AuthorityMetadataEntity } from '../cache/entities/AuthorityMetadataEntity.js';\nimport { isCloudInstanceDiscoveryResponse } from './CloudInstanceDiscoveryResponse.js';\nimport { RegionDiscovery } from './RegionDiscovery.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\r\n * endpoint. It will store the pertinent config data in this object for use during token calls.\r\n */\r\nvar Authority = /** @class */ (function () {\r\n    function Authority(authority, networkInterface, cacheManager, authorityOptions) {\r\n        this.canonicalAuthority = authority;\r\n        this._canonicalAuthority.validateAsUri();\r\n        this.networkInterface = networkInterface;\r\n        this.cacheManager = cacheManager;\r\n        this.authorityOptions = authorityOptions;\r\n        this.regionDiscovery = new RegionDiscovery(networkInterface);\r\n        this.regionDiscoveryMetadata = { region_used: undefined, region_source: undefined, region_outcome: undefined };\r\n    }\r\n    Object.defineProperty(Authority.prototype, \"authorityType\", {\r\n        // See above for AuthorityType\r\n        get: function () {\r\n            var pathSegments = this.canonicalAuthorityUrlComponents.PathSegments;\r\n            if (pathSegments.length && pathSegments[0].toLowerCase() === Constants.ADFS) {\r\n                return AuthorityType.Adfs;\r\n            }\r\n            return AuthorityType.Default;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"protocolMode\", {\r\n        /**\r\n         * ProtocolMode enum representing the way endpoints are constructed.\r\n         */\r\n        get: function () {\r\n            return this.authorityOptions.protocolMode;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"options\", {\r\n        /**\r\n         * Returns authorityOptions which can be used to reinstantiate a new authority instance\r\n         */\r\n        get: function () {\r\n            return this.authorityOptions;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"canonicalAuthority\", {\r\n        /**\r\n         * A URL that is the authority set by the developer\r\n         */\r\n        get: function () {\r\n            return this._canonicalAuthority.urlString;\r\n        },\r\n        /**\r\n         * Sets canonical authority.\r\n         */\r\n        set: function (url) {\r\n            this._canonicalAuthority = new UrlString(url);\r\n            this._canonicalAuthority.validateAsUri();\r\n            this._canonicalAuthorityUrlComponents = null;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"canonicalAuthorityUrlComponents\", {\r\n        /**\r\n         * Get authority components.\r\n         */\r\n        get: function () {\r\n            if (!this._canonicalAuthorityUrlComponents) {\r\n                this._canonicalAuthorityUrlComponents = this._canonicalAuthority.getUrlComponents();\r\n            }\r\n            return this._canonicalAuthorityUrlComponents;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"hostnameAndPort\", {\r\n        /**\r\n         * Get hostname and port i.e. login.microsoftonline.com\r\n         */\r\n        get: function () {\r\n            return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"tenant\", {\r\n        /**\r\n         * Get tenant for authority.\r\n         */\r\n        get: function () {\r\n            return this.canonicalAuthorityUrlComponents.PathSegments[0];\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"authorizationEndpoint\", {\r\n        /**\r\n         * OAuth /authorize endpoint for requests\r\n         */\r\n        get: function () {\r\n            if (this.discoveryComplete()) {\r\n                var endpoint = this.replacePath(this.metadata.authorization_endpoint);\r\n                return this.replaceTenant(endpoint);\r\n            }\r\n            else {\r\n                throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n            }\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"tokenEndpoint\", {\r\n        /**\r\n         * OAuth /token endpoint for requests\r\n         */\r\n        get: function () {\r\n            if (this.discoveryComplete()) {\r\n                var endpoint = this.replacePath(this.metadata.token_endpoint);\r\n                return this.replaceTenant(endpoint);\r\n            }\r\n            else {\r\n                throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n            }\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"deviceCodeEndpoint\", {\r\n        get: function () {\r\n            if (this.discoveryComplete()) {\r\n                var endpoint = this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\r\n                return this.replaceTenant(endpoint);\r\n            }\r\n            else {\r\n                throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n            }\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"endSessionEndpoint\", {\r\n        /**\r\n         * OAuth logout endpoint for requests\r\n         */\r\n        get: function () {\r\n            if (this.discoveryComplete()) {\r\n                var endpoint = this.replacePath(this.metadata.end_session_endpoint);\r\n                return this.replaceTenant(endpoint);\r\n            }\r\n            else {\r\n                throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n            }\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Authority.prototype, \"selfSignedJwtAudience\", {\r\n        /**\r\n         * OAuth issuer for requests\r\n         */\r\n        get: function () {\r\n            if (this.discoveryComplete()) {\r\n                var endpoint = this.replacePath(this.metadata.issuer);\r\n                return this.replaceTenant(endpoint);\r\n            }\r\n            else {\r\n                throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n            }\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    /**\r\n     * Replaces tenant in url path with current tenant. Defaults to common.\r\n     * @param urlString\r\n     */\r\n    Authority.prototype.replaceTenant = function (urlString) {\r\n        return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\r\n    };\r\n    /**\r\n     * Replaces path such as tenant or policy with the current tenant or policy.\r\n     * @param urlString\r\n     */\r\n    Authority.prototype.replacePath = function (urlString) {\r\n        var endpoint = urlString;\r\n        var cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\r\n        var cachedAuthorityParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n        var currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\r\n        currentAuthorityParts.forEach(function (currentPart, index) {\r\n            var cachedPart = cachedAuthorityParts[index];\r\n            if (currentPart !== cachedPart) {\r\n                endpoint = endpoint.replace(\"/\" + cachedPart + \"/\", \"/\" + currentPart + \"/\");\r\n            }\r\n        });\r\n        return endpoint;\r\n    };\r\n    Object.defineProperty(Authority.prototype, \"defaultOpenIdConfigurationEndpoint\", {\r\n        /**\r\n         * The default open id configuration endpoint for any canonical authority.\r\n         */\r\n        get: function () {\r\n            if (this.authorityType === AuthorityType.Adfs || this.protocolMode === ProtocolMode.OIDC) {\r\n                return this.canonicalAuthority + \".well-known/openid-configuration\";\r\n            }\r\n            return this.canonicalAuthority + \"v2.0/.well-known/openid-configuration\";\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    /**\r\n     * Boolean that returns whethr or not tenant discovery has been completed.\r\n     */\r\n    Authority.prototype.discoveryComplete = function () {\r\n        return !!this.metadata;\r\n    };\r\n    /**\r\n     * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\r\n     * and the /authorize, /token and logout endpoints.\r\n     */\r\n    Authority.prototype.resolveEndpointsAsync = function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var metadataEntity, cloudDiscoverySource, endpointSource, cacheKey;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\r\n                        if (!metadataEntity) {\r\n                            metadataEntity = new AuthorityMetadataEntity();\r\n                            metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n                        }\r\n                        return [4 /*yield*/, this.updateCloudDiscoveryMetadata(metadataEntity)];\r\n                    case 1:\r\n                        cloudDiscoverySource = _a.sent();\r\n                        this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\r\n                        return [4 /*yield*/, this.updateEndpointMetadata(metadataEntity)];\r\n                    case 2:\r\n                        endpointSource = _a.sent();\r\n                        if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE && endpointSource !== AuthorityMetadataSource.CACHE) {\r\n                            // Reset the expiration time unless both values came from a successful cache lookup\r\n                            metadataEntity.resetExpiresAt();\r\n                            metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n                        }\r\n                        cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\r\n                        this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\r\n                        this.metadata = metadataEntity;\r\n                        return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Update AuthorityMetadataEntity with new endpoints and return where the information came from\r\n     * @param metadataEntity\r\n     */\r\n    Authority.prototype.updateEndpointMetadata = function (metadataEntity) {\r\n        var _a;\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var metadata, autodetectedRegionName, azureRegion;\r\n            return __generator(this, function (_b) {\r\n                switch (_b.label) {\r\n                    case 0:\r\n                        metadata = this.getEndpointMetadataFromConfig();\r\n                        if (metadata) {\r\n                            metadataEntity.updateEndpointMetadata(metadata, false);\r\n                            return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n                        }\r\n                        if (this.isAuthoritySameType(metadataEntity) && metadataEntity.endpointsFromNetwork && !metadataEntity.isExpired()) {\r\n                            // No need to update\r\n                            return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n                        }\r\n                        return [4 /*yield*/, this.getEndpointMetadataFromNetwork()];\r\n                    case 1:\r\n                        metadata = _b.sent();\r\n                        if (!metadata) return [3 /*break*/, 4];\r\n                        if (!((_a = this.authorityOptions.azureRegionConfiguration) === null || _a === void 0 ? void 0 : _a.azureRegion)) return [3 /*break*/, 3];\r\n                        return [4 /*yield*/, this.regionDiscovery.detectRegion(this.authorityOptions.azureRegionConfiguration.environmentRegion, this.regionDiscoveryMetadata)];\r\n                    case 2:\r\n                        autodetectedRegionName = _b.sent();\r\n                        azureRegion = this.authorityOptions.azureRegionConfiguration.azureRegion === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG\r\n                            ? autodetectedRegionName\r\n                            : this.authorityOptions.azureRegionConfiguration.azureRegion;\r\n                        if (this.authorityOptions.azureRegionConfiguration.azureRegion === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {\r\n                            this.regionDiscoveryMetadata.region_outcome = autodetectedRegionName ?\r\n                                RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL :\r\n                                RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;\r\n                        }\r\n                        else {\r\n                            if (autodetectedRegionName) {\r\n                                this.regionDiscoveryMetadata.region_outcome = (this.authorityOptions.azureRegionConfiguration.azureRegion === autodetectedRegionName) ?\r\n                                    RegionDiscoveryOutcomes.CONFIGURED_MATCHES_DETECTED :\r\n                                    RegionDiscoveryOutcomes.CONFIGURED_NOT_DETECTED;\r\n                            }\r\n                            else {\r\n                                this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;\r\n                            }\r\n                        }\r\n                        if (azureRegion) {\r\n                            this.regionDiscoveryMetadata.region_used = azureRegion;\r\n                            metadata = Authority.replaceWithRegionalInformation(metadata, azureRegion);\r\n                        }\r\n                        _b.label = 3;\r\n                    case 3:\r\n                        metadataEntity.updateEndpointMetadata(metadata, true);\r\n                        return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n                    case 4: throw ClientAuthError.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint);\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Compares the number of url components after the domain to determine if the cached authority metadata can be used for the requested authority\r\n     * Protects against same domain different authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\r\n     * @param metadataEntity\r\n     */\r\n    Authority.prototype.isAuthoritySameType = function (metadataEntity) {\r\n        var cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\r\n        var cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n        return cachedParts.length === this.canonicalAuthorityUrlComponents.PathSegments.length;\r\n    };\r\n    /**\r\n     * Parse authorityMetadata config option\r\n     */\r\n    Authority.prototype.getEndpointMetadataFromConfig = function () {\r\n        if (this.authorityOptions.authorityMetadata) {\r\n            try {\r\n                return JSON.parse(this.authorityOptions.authorityMetadata);\r\n            }\r\n            catch (e) {\r\n                throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n            }\r\n        }\r\n        return null;\r\n    };\r\n    /**\r\n     * Gets OAuth endpoints from the given OpenID configuration endpoint.\r\n     */\r\n    Authority.prototype.getEndpointMetadataFromNetwork = function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var response;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        _a.trys.push([0, 2, , 3]);\r\n                        return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(this.defaultOpenIdConfigurationEndpoint)];\r\n                    case 1:\r\n                        response = _a.sent();\r\n                        return [2 /*return*/, isOpenIdConfigResponse(response.body) ? response.body : null];\r\n                    case 2:\r\n                        _a.sent();\r\n                        return [2 /*return*/, null];\r\n                    case 3: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache and returns where the information was retrived from\r\n     * @param cachedMetadata\r\n     * @param newMetadata\r\n     */\r\n    Authority.prototype.updateCloudDiscoveryMetadata = function (metadataEntity) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var metadata;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        metadata = this.getCloudDiscoveryMetadataFromConfig();\r\n                        if (metadata) {\r\n                            metadataEntity.updateCloudDiscoveryMetadata(metadata, false);\r\n                            return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n                        }\r\n                        // If The cached metadata came from config but that config was not passed to this instance, we must go to the network\r\n                        if (this.isAuthoritySameType(metadataEntity) && metadataEntity.aliasesFromNetwork && !metadataEntity.isExpired()) {\r\n                            // No need to update\r\n                            return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n                        }\r\n                        return [4 /*yield*/, this.getCloudDiscoveryMetadataFromNetwork()];\r\n                    case 1:\r\n                        metadata = _a.sent();\r\n                        if (metadata) {\r\n                            metadataEntity.updateCloudDiscoveryMetadata(metadata, true);\r\n                            return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n                        }\r\n                        else {\r\n                            // Metadata could not be obtained from config, cache or network\r\n                            throw ClientConfigurationError.createUntrustedAuthorityError();\r\n                        }\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Parse cloudDiscoveryMetadata config or check knownAuthorities\r\n     */\r\n    Authority.prototype.getCloudDiscoveryMetadataFromConfig = function () {\r\n        // Check if network response was provided in config\r\n        if (this.authorityOptions.cloudDiscoveryMetadata) {\r\n            try {\r\n                var parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata);\r\n                var metadata = Authority.getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\r\n                if (metadata) {\r\n                    return metadata;\r\n                }\r\n            }\r\n            catch (e) {\r\n                throw ClientConfigurationError.createInvalidCloudDiscoveryMetadataError();\r\n            }\r\n        }\r\n        // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\r\n        if (this.isInKnownAuthorities()) {\r\n            return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n        }\r\n        return null;\r\n    };\r\n    /**\r\n     * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\r\n     * @param networkInterface\r\n     */\r\n    Authority.prototype.getCloudDiscoveryMetadataFromNetwork = function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var instanceDiscoveryEndpoint, match, response, metadata;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        instanceDiscoveryEndpoint = \"\" + Constants.AAD_INSTANCE_DISCOVERY_ENDPT + this.canonicalAuthority + \"oauth2/v2.0/authorize\";\r\n                        match = null;\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 3, , 4]);\r\n                        return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(instanceDiscoveryEndpoint)];\r\n                    case 2:\r\n                        response = _a.sent();\r\n                        metadata = isCloudInstanceDiscoveryResponse(response.body) ? response.body.metadata : [];\r\n                        if (metadata.length === 0) {\r\n                            // If no metadata is returned, authority is untrusted\r\n                            return [2 /*return*/, null];\r\n                        }\r\n                        match = Authority.getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\r\n                        return [3 /*break*/, 4];\r\n                    case 3:\r\n                        _a.sent();\r\n                        return [2 /*return*/, null];\r\n                    case 4:\r\n                        if (!match) {\r\n                            // Custom Domain scenario, host is trusted because Instance Discovery call succeeded \r\n                            match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n                        }\r\n                        return [2 /*return*/, match];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Helper function to determine if this host is included in the knownAuthorities config option\r\n     */\r\n    Authority.prototype.isInKnownAuthorities = function () {\r\n        var _this = this;\r\n        var matches = this.authorityOptions.knownAuthorities.filter(function (authority) {\r\n            return UrlString.getDomainFromUrl(authority).toLowerCase() === _this.hostnameAndPort;\r\n        });\r\n        return matches.length > 0;\r\n    };\r\n    /**\r\n     * Creates cloud discovery metadata object from a given host\r\n     * @param host\r\n     */\r\n    Authority.createCloudDiscoveryMetadataFromHost = function (host) {\r\n        return {\r\n            preferred_network: host,\r\n            preferred_cache: host,\r\n            aliases: [host]\r\n        };\r\n    };\r\n    /**\r\n     * Searches instance discovery network response for the entry that contains the host in the aliases list\r\n     * @param response\r\n     * @param authority\r\n     */\r\n    Authority.getCloudDiscoveryMetadataFromNetworkResponse = function (response, authority) {\r\n        for (var i = 0; i < response.length; i++) {\r\n            var metadata = response[i];\r\n            if (metadata.aliases.indexOf(authority) > -1) {\r\n                return metadata;\r\n            }\r\n        }\r\n        return null;\r\n    };\r\n    /**\r\n     * helper function to generate environment from authority object\r\n     */\r\n    Authority.prototype.getPreferredCache = function () {\r\n        if (this.discoveryComplete()) {\r\n            return this.metadata.preferred_cache;\r\n        }\r\n        else {\r\n            throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n        }\r\n    };\r\n    /**\r\n     * Returns whether or not the provided host is an alias of this authority instance\r\n     * @param host\r\n     */\r\n    Authority.prototype.isAlias = function (host) {\r\n        return this.metadata.aliases.indexOf(host) > -1;\r\n    };\r\n    /**\r\n     * Checks whether the provided host is that of a public cloud authority\r\n     *\r\n     * @param authority string\r\n     * @returns bool\r\n     */\r\n    Authority.isPublicCloudAuthority = function (host) {\r\n        return Constants.KNOWN_PUBLIC_CLOUDS.indexOf(host) >= 0;\r\n    };\r\n    /**\r\n     * Rebuild the authority string with the region\r\n     *\r\n     * @param host string\r\n     * @param region string\r\n     */\r\n    Authority.buildRegionalAuthorityString = function (host, region, queryString) {\r\n        // Create and validate a Url string object with the initial authority string\r\n        var authorityUrlInstance = new UrlString(host);\r\n        authorityUrlInstance.validateAsUri();\r\n        var authorityUrlParts = authorityUrlInstance.getUrlComponents();\r\n        var hostNameAndPort = region + \".\" + authorityUrlParts.HostNameAndPort;\r\n        if (this.isPublicCloudAuthority(authorityUrlParts.HostNameAndPort)) {\r\n            hostNameAndPort = region + \".\" + Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX;\r\n        }\r\n        // Include the query string portion of the url\r\n        var url = UrlString.constructAuthorityUriFromObject(__assign(__assign({}, authorityUrlInstance.getUrlComponents()), { HostNameAndPort: hostNameAndPort })).urlString;\r\n        // Add the query string if a query string was provided\r\n        if (queryString)\r\n            return url + \"?\" + queryString;\r\n        return url;\r\n    };\r\n    /**\r\n     * Replace the endpoints in the metadata object with their regional equivalents.\r\n     *\r\n     * @param metadata OpenIdConfigResponse\r\n     * @param azureRegion string\r\n     */\r\n    Authority.replaceWithRegionalInformation = function (metadata, azureRegion) {\r\n        metadata.authorization_endpoint = Authority.buildRegionalAuthorityString(metadata.authorization_endpoint, azureRegion);\r\n        // TODO: Enquire on whether we should leave the query string or remove it before releasing the feature\r\n        metadata.token_endpoint = Authority.buildRegionalAuthorityString(metadata.token_endpoint, azureRegion, \"allowestsrnonmsi=true\");\r\n        metadata.end_session_endpoint = Authority.buildRegionalAuthorityString(metadata.end_session_endpoint, azureRegion);\r\n        return metadata;\r\n    };\r\n    return Authority;\r\n}());\n\nexport { Authority };\n//# sourceMappingURL=Authority.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryResponse(response) {\r\n    return (response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\r\n        response.hasOwnProperty(\"metadata\"));\r\n}\n\nexport { isCloudInstanceDiscoveryResponse };\n//# sourceMappingURL=CloudInstanceDiscoveryResponse.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Authority } from './Authority.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityFactory = /** @class */ (function () {\r\n    function AuthorityFactory() {\r\n    }\r\n    /**\r\n     * Create an authority object of the correct type based on the url\r\n     * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n     *\r\n     * Also performs endpoint discovery.\r\n     *\r\n     * @param authorityUri\r\n     * @param networkClient\r\n     * @param protocolMode\r\n     */\r\n    AuthorityFactory.createDiscoveredInstance = function (authorityUri, networkClient, cacheManager, authorityOptions) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var acquireTokenAuthority, e_1;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        acquireTokenAuthority = AuthorityFactory.createInstance(authorityUri, networkClient, cacheManager, authorityOptions);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 3, , 4]);\r\n                        return [4 /*yield*/, acquireTokenAuthority.resolveEndpointsAsync()];\r\n                    case 2:\r\n                        _a.sent();\r\n                        return [2 /*return*/, acquireTokenAuthority];\r\n                    case 3:\r\n                        e_1 = _a.sent();\r\n                        throw ClientAuthError.createEndpointDiscoveryIncompleteError(e_1);\r\n                    case 4: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Create an authority object of the correct type based on the url\r\n     * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n     *\r\n     * Does not perform endpoint discovery.\r\n     *\r\n     * @param authorityUrl\r\n     * @param networkInterface\r\n     * @param protocolMode\r\n     */\r\n    AuthorityFactory.createInstance = function (authorityUrl, networkInterface, cacheManager, authorityOptions) {\r\n        // Throw error if authority url is empty\r\n        if (StringUtils.isEmpty(authorityUrl)) {\r\n            throw ClientConfigurationError.createUrlEmptyError();\r\n        }\r\n        return new Authority(authorityUrl, networkInterface, cacheManager, authorityOptions);\r\n    };\r\n    return AuthorityFactory;\r\n}());\n\nexport { AuthorityFactory };\n//# sourceMappingURL=AuthorityFactory.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-common\";\r\nvar version = \"4.5.1\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { CredentialType, CacheType, Constants, Separators } from '../../utils/Constants.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: <home_account_id*>-<environment>-<credential_type>-<client_id>-<realm*>-<target*>\r\n *\r\n * Value Schema:\r\n * {\r\n *      homeAccountId: home account identifier for the auth scheme,\r\n *      environment: entity that issued the token, represented as a full host\r\n *      credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n *      clientId: client ID of the application\r\n *      secret: Actual credential as a string\r\n *      familyId: Family ID identifier, usually only used for refresh tokens\r\n *      realm: Full tenant or organizational identifier that the account belongs to\r\n *      target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n *      oboAssertion: access token passed in as part of OBO request\r\n * }\r\n */\r\nvar CredentialEntity = /** @class */ (function () {\r\n    function CredentialEntity() {\r\n    }\r\n    /**\r\n     * Generate Account Id key component as per the schema: <home_account_id>-<environment>\r\n     */\r\n    CredentialEntity.prototype.generateAccountId = function () {\r\n        return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);\r\n    };\r\n    /**\r\n     * Generate Credential Id key component as per the schema: <credential_type>-<client_id>-<realm>\r\n     */\r\n    CredentialEntity.prototype.generateCredentialId = function () {\r\n        return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);\r\n    };\r\n    /**\r\n     * Generate target key component as per schema: <target>\r\n     */\r\n    CredentialEntity.prototype.generateTarget = function () {\r\n        return CredentialEntity.generateTargetForCacheKey(this.target);\r\n    };\r\n    /**\r\n     * generates credential key\r\n     */\r\n    CredentialEntity.prototype.generateCredentialKey = function () {\r\n        return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId);\r\n    };\r\n    /**\r\n     * returns the type of the cache (in this case credential)\r\n     */\r\n    CredentialEntity.prototype.generateType = function () {\r\n        switch (this.credentialType) {\r\n            case CredentialType.ID_TOKEN:\r\n                return CacheType.ID_TOKEN;\r\n            case CredentialType.ACCESS_TOKEN:\r\n                return CacheType.ACCESS_TOKEN;\r\n            case CredentialType.REFRESH_TOKEN:\r\n                return CacheType.REFRESH_TOKEN;\r\n            default: {\r\n                throw ClientAuthError.createUnexpectedCredentialTypeError();\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * helper function to return `CredentialType`\r\n     * @param key\r\n     */\r\n    CredentialEntity.getCredentialType = function (key) {\r\n        // First keyword search will match all \"AccessToken\" and \"AccessToken_With_AuthScheme\" credentials\r\n        if (key.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) !== -1) {\r\n            // Perform second search to differentiate between \"AccessToken\" and \"AccessToken_With_AuthScheme\" credential types\r\n            if (key.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) !== -1) {\r\n                return CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n            }\r\n            return CredentialType.ACCESS_TOKEN;\r\n        }\r\n        else if (key.indexOf(CredentialType.ID_TOKEN.toLowerCase()) !== -1) {\r\n            return CredentialType.ID_TOKEN;\r\n        }\r\n        else if (key.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) !== -1) {\r\n            return CredentialType.REFRESH_TOKEN;\r\n        }\r\n        return Constants.NOT_DEFINED;\r\n    };\r\n    /**\r\n     * generates credential key\r\n     */\r\n    CredentialEntity.generateCredentialCacheKey = function (homeAccountId, environment, credentialType, clientId, realm, target, familyId) {\r\n        var credentialKey = [\r\n            this.generateAccountIdForCacheKey(homeAccountId, environment),\r\n            this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),\r\n            this.generateTargetForCacheKey(target),\r\n        ];\r\n        return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n    };\r\n    /**\r\n     * generates Account Id for keys\r\n     * @param homeAccountId\r\n     * @param environment\r\n     */\r\n    CredentialEntity.generateAccountIdForCacheKey = function (homeAccountId, environment) {\r\n        var accountId = [homeAccountId, environment];\r\n        return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n    };\r\n    /**\r\n     * Generates Credential Id for keys\r\n     * @param credentialType\r\n     * @param realm\r\n     * @param clientId\r\n     * @param familyId\r\n     */\r\n    CredentialEntity.generateCredentialIdForCacheKey = function (credentialType, clientId, realm, familyId) {\r\n        var clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN\r\n            ? familyId || clientId\r\n            : clientId;\r\n        var credentialId = [\r\n            credentialType,\r\n            clientOrFamilyId,\r\n            realm || \"\",\r\n        ];\r\n        return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n    };\r\n    /**\r\n     * Generate target key component as per schema: <target>\r\n     */\r\n    CredentialEntity.generateTargetForCacheKey = function (scopes) {\r\n        return (scopes || \"\").toLowerCase();\r\n    };\r\n    return CredentialEntity;\r\n}());\n\nexport { CredentialEntity };\n//# sourceMappingURL=CredentialEntity.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { OIDC_SCOPES } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\r\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\r\n * to ensure uniqueness of strings.\r\n */\r\nvar ScopeSet = /** @class */ (function () {\r\n    function ScopeSet(inputScopes) {\r\n        var _this = this;\r\n        // Filter empty string and null/undefined array items\r\n        var scopeArr = inputScopes ? StringUtils.trimArrayEntries(__spreadArrays(inputScopes)) : [];\r\n        var filteredInput = scopeArr ? StringUtils.removeEmptyStringsFromArray(scopeArr) : [];\r\n        // Validate and filter scopes (validate function throws if validation fails)\r\n        this.validateInputScopes(filteredInput);\r\n        this.scopes = new Set(); // Iterator in constructor not supported by IE11\r\n        filteredInput.forEach(function (scope) { return _this.scopes.add(scope); });\r\n    }\r\n    /**\r\n     * Factory method to create ScopeSet from space-delimited string\r\n     * @param inputScopeString\r\n     * @param appClientId\r\n     * @param scopesRequired\r\n     */\r\n    ScopeSet.fromString = function (inputScopeString) {\r\n        var scopeString = inputScopeString || \"\";\r\n        var inputScopes = scopeString.split(\" \");\r\n        return new ScopeSet(inputScopes);\r\n    };\r\n    /**\r\n     * Used to validate the scopes input parameter requested  by the developer.\r\n     * @param {Array<string>} inputScopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n     * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\r\n     */\r\n    ScopeSet.prototype.validateInputScopes = function (inputScopes) {\r\n        // Check if scopes are required but not given or is an empty array\r\n        if (!inputScopes || inputScopes.length < 1) {\r\n            throw ClientConfigurationError.createEmptyScopesArrayError();\r\n        }\r\n    };\r\n    /**\r\n     * Check if a given scope is present in this set of scopes.\r\n     * @param scope\r\n     */\r\n    ScopeSet.prototype.containsScope = function (scope) {\r\n        var lowerCaseScopes = this.printScopesLowerCase().split(\" \");\r\n        var lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\r\n        // compare lowercase scopes\r\n        return !StringUtils.isEmpty(scope) ? lowerCaseScopesSet.scopes.has(scope.toLowerCase()) : false;\r\n    };\r\n    /**\r\n     * Check if a set of scopes is present in this set of scopes.\r\n     * @param scopeSet\r\n     */\r\n    ScopeSet.prototype.containsScopeSet = function (scopeSet) {\r\n        var _this = this;\r\n        if (!scopeSet || scopeSet.scopes.size <= 0) {\r\n            return false;\r\n        }\r\n        return (this.scopes.size >= scopeSet.scopes.size && scopeSet.asArray().every(function (scope) { return _this.containsScope(scope); }));\r\n    };\r\n    /**\r\n     * Check if set of scopes contains only the defaults\r\n     */\r\n    ScopeSet.prototype.containsOnlyOIDCScopes = function () {\r\n        var _this = this;\r\n        var defaultScopeCount = 0;\r\n        OIDC_SCOPES.forEach(function (defaultScope) {\r\n            if (_this.containsScope(defaultScope)) {\r\n                defaultScopeCount += 1;\r\n            }\r\n        });\r\n        return this.scopes.size === defaultScopeCount;\r\n    };\r\n    /**\r\n     * Appends single scope if passed\r\n     * @param newScope\r\n     */\r\n    ScopeSet.prototype.appendScope = function (newScope) {\r\n        if (!StringUtils.isEmpty(newScope)) {\r\n            this.scopes.add(newScope.trim());\r\n        }\r\n    };\r\n    /**\r\n     * Appends multiple scopes if passed\r\n     * @param newScopes\r\n     */\r\n    ScopeSet.prototype.appendScopes = function (newScopes) {\r\n        var _this = this;\r\n        try {\r\n            newScopes.forEach(function (newScope) { return _this.appendScope(newScope); });\r\n        }\r\n        catch (e) {\r\n            throw ClientAuthError.createAppendScopeSetError(e);\r\n        }\r\n    };\r\n    /**\r\n     * Removes element from set of scopes.\r\n     * @param scope\r\n     */\r\n    ScopeSet.prototype.removeScope = function (scope) {\r\n        if (StringUtils.isEmpty(scope)) {\r\n            throw ClientAuthError.createRemoveEmptyScopeFromSetError(scope);\r\n        }\r\n        this.scopes.delete(scope.trim());\r\n    };\r\n    /**\r\n     * Removes default scopes from set of scopes\r\n     * Primarily used to prevent cache misses if the default scopes are not returned from the server\r\n     */\r\n    ScopeSet.prototype.removeOIDCScopes = function () {\r\n        var _this = this;\r\n        OIDC_SCOPES.forEach(function (defaultScope) {\r\n            _this.scopes.delete(defaultScope);\r\n        });\r\n    };\r\n    /**\r\n     * Combines an array of scopes with the current set of scopes.\r\n     * @param otherScopes\r\n     */\r\n    ScopeSet.prototype.unionScopeSets = function (otherScopes) {\r\n        if (!otherScopes) {\r\n            throw ClientAuthError.createEmptyInputScopeSetError();\r\n        }\r\n        var unionScopes = new Set(); // Iterator in constructor not supported in IE11\r\n        otherScopes.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n        this.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n        return unionScopes;\r\n    };\r\n    /**\r\n     * Check if scopes intersect between this set and another.\r\n     * @param otherScopes\r\n     */\r\n    ScopeSet.prototype.intersectingScopeSets = function (otherScopes) {\r\n        if (!otherScopes) {\r\n            throw ClientAuthError.createEmptyInputScopeSetError();\r\n        }\r\n        // Do not allow OIDC scopes to be the only intersecting scopes\r\n        if (!otherScopes.containsOnlyOIDCScopes()) {\r\n            otherScopes.removeOIDCScopes();\r\n        }\r\n        var unionScopes = this.unionScopeSets(otherScopes);\r\n        var sizeOtherScopes = otherScopes.getScopeCount();\r\n        var sizeThisScopes = this.getScopeCount();\r\n        var sizeUnionScopes = unionScopes.size;\r\n        return sizeUnionScopes < (sizeThisScopes + sizeOtherScopes);\r\n    };\r\n    /**\r\n     * Returns size of set of scopes.\r\n     */\r\n    ScopeSet.prototype.getScopeCount = function () {\r\n        return this.scopes.size;\r\n    };\r\n    /**\r\n     * Returns the scopes as an array of string values\r\n     */\r\n    ScopeSet.prototype.asArray = function () {\r\n        var array = [];\r\n        this.scopes.forEach(function (val) { return array.push(val); });\r\n        return array;\r\n    };\r\n    /**\r\n     * Prints scopes into a space-delimited string\r\n     */\r\n    ScopeSet.prototype.printScopes = function () {\r\n        if (this.scopes) {\r\n            var scopeArr = this.asArray();\r\n            return scopeArr.join(\" \");\r\n        }\r\n        return \"\";\r\n    };\r\n    /**\r\n     * Prints scopes into a space-delimited lower-case string (used for caching)\r\n     */\r\n    ScopeSet.prototype.printScopesLowerCase = function () {\r\n        return this.printScopes().toLowerCase();\r\n    };\r\n    return ScopeSet;\r\n}());\n\nexport { ScopeSet };\n//# sourceMappingURL=ScopeSet.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * JWT Token representation class. Parses token string and generates claims object.\r\n */\r\nvar AuthToken = /** @class */ (function () {\r\n    function AuthToken(rawToken, crypto) {\r\n        if (StringUtils.isEmpty(rawToken)) {\r\n            throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\r\n        }\r\n        this.rawToken = rawToken;\r\n        this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\r\n    }\r\n    /**\r\n     * Extract token by decoding the rawToken\r\n     *\r\n     * @param encodedToken\r\n     */\r\n    AuthToken.extractTokenClaims = function (encodedToken, crypto) {\r\n        var decodedToken = StringUtils.decodeAuthToken(encodedToken);\r\n        // token will be decoded to get the username\r\n        try {\r\n            var base64TokenPayload = decodedToken.JWSPayload;\r\n            // base64Decode() should throw an error if there is an issue\r\n            var base64Decoded = crypto.base64Decode(base64TokenPayload);\r\n            return JSON.parse(base64Decoded);\r\n        }\r\n        catch (err) {\r\n            throw ClientAuthError.createTokenParsingError(err);\r\n        }\r\n    };\r\n    return AuthToken;\r\n}());\n\nexport { AuthToken };\n//# sourceMappingURL=AuthToken.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants, CredentialType, CacheSchemaType, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme } from '../utils/Constants.js';\nimport { CredentialEntity } from './entities/CredentialEntity.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from './entities/AccountEntity.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthToken } from '../account/AuthToken.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\r\n */\r\nvar CacheManager = /** @class */ (function () {\r\n    function CacheManager(clientId, cryptoImpl) {\r\n        this.clientId = clientId;\r\n        this.cryptoImpl = cryptoImpl;\r\n    }\r\n    /**\r\n     * Returns all accounts in cache\r\n     */\r\n    CacheManager.prototype.getAllAccounts = function () {\r\n        var _this = this;\r\n        var currentAccounts = this.getAccountsFilteredBy();\r\n        var accountValues = Object.keys(currentAccounts).map(function (accountKey) { return currentAccounts[accountKey]; });\r\n        var numAccounts = accountValues.length;\r\n        if (numAccounts < 1) {\r\n            return [];\r\n        }\r\n        else {\r\n            var allAccounts = accountValues.map(function (value) {\r\n                var accountEntity = CacheManager.toObject(new AccountEntity(), value);\r\n                var accountInfo = accountEntity.getAccountInfo();\r\n                var idToken = _this.readIdTokenFromCache(_this.clientId, accountInfo);\r\n                if (idToken && !accountInfo.idTokenClaims) {\r\n                    accountInfo.idTokenClaims = new AuthToken(idToken.secret, _this.cryptoImpl).claims;\r\n                }\r\n                return accountInfo;\r\n            });\r\n            return allAccounts;\r\n        }\r\n    };\r\n    /**\r\n     * saves a cache record\r\n     * @param cacheRecord\r\n     */\r\n    CacheManager.prototype.saveCacheRecord = function (cacheRecord) {\r\n        if (!cacheRecord) {\r\n            throw ClientAuthError.createNullOrUndefinedCacheRecord();\r\n        }\r\n        if (!!cacheRecord.account) {\r\n            this.setAccount(cacheRecord.account);\r\n        }\r\n        if (!!cacheRecord.idToken) {\r\n            this.setIdTokenCredential(cacheRecord.idToken);\r\n        }\r\n        if (!!cacheRecord.accessToken) {\r\n            this.saveAccessToken(cacheRecord.accessToken);\r\n        }\r\n        if (!!cacheRecord.refreshToken) {\r\n            this.setRefreshTokenCredential(cacheRecord.refreshToken);\r\n        }\r\n        if (!!cacheRecord.appMetadata) {\r\n            this.setAppMetadata(cacheRecord.appMetadata);\r\n        }\r\n    };\r\n    /**\r\n     * saves access token credential\r\n     * @param credential\r\n     */\r\n    CacheManager.prototype.saveAccessToken = function (credential) {\r\n        var _this = this;\r\n        var currentTokenCache = this.getCredentialsFilteredBy({\r\n            clientId: credential.clientId,\r\n            credentialType: credential.credentialType,\r\n            environment: credential.environment,\r\n            homeAccountId: credential.homeAccountId,\r\n            realm: credential.realm,\r\n        });\r\n        var currentScopes = ScopeSet.fromString(credential.target);\r\n        var currentAccessTokens = Object.keys(currentTokenCache.accessTokens).map(function (key) { return currentTokenCache.accessTokens[key]; });\r\n        if (currentAccessTokens) {\r\n            currentAccessTokens.forEach(function (tokenEntity) {\r\n                var tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\r\n                if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\r\n                    _this.removeCredential(tokenEntity);\r\n                }\r\n            });\r\n        }\r\n        this.setAccessTokenCredential(credential);\r\n    };\r\n    /**\r\n     * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n     * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n     * @param homeAccountId\r\n     * @param environment\r\n     * @param realm\r\n     */\r\n    CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {\r\n        return this.getAccountsFilteredByInternal(accountFilter ? accountFilter.homeAccountId : \"\", accountFilter ? accountFilter.environment : \"\", accountFilter ? accountFilter.realm : \"\");\r\n    };\r\n    /**\r\n     * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n     * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n     * @param homeAccountId\r\n     * @param environment\r\n     * @param realm\r\n     */\r\n    CacheManager.prototype.getAccountsFilteredByInternal = function (homeAccountId, environment, realm) {\r\n        var _this = this;\r\n        var allCacheKeys = this.getKeys();\r\n        var matchingAccounts = {};\r\n        allCacheKeys.forEach(function (cacheKey) {\r\n            var entity = _this.getAccount(cacheKey);\r\n            if (!entity) {\r\n                return;\r\n            }\r\n            if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n                return;\r\n            }\r\n            if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n                return;\r\n            }\r\n            if (!!realm && !_this.matchRealm(entity, realm)) {\r\n                return;\r\n            }\r\n            matchingAccounts[cacheKey] = entity;\r\n        });\r\n        return matchingAccounts;\r\n    };\r\n    /**\r\n     * retrieve credentails matching all provided filters; if no filter is set, get all credentials\r\n     * @param homeAccountId\r\n     * @param environment\r\n     * @param credentialType\r\n     * @param clientId\r\n     * @param realm\r\n     * @param target\r\n     */\r\n    CacheManager.prototype.getCredentialsFilteredBy = function (filter) {\r\n        return this.getCredentialsFilteredByInternal(filter.homeAccountId, filter.environment, filter.credentialType, filter.clientId, filter.familyId, filter.realm, filter.target, filter.oboAssertion);\r\n    };\r\n    /**\r\n     * Support function to help match credentials\r\n     * @param homeAccountId\r\n     * @param environment\r\n     * @param credentialType\r\n     * @param clientId\r\n     * @param realm\r\n     * @param target\r\n     */\r\n    CacheManager.prototype.getCredentialsFilteredByInternal = function (homeAccountId, environment, credentialType, clientId, familyId, realm, target, oboAssertion) {\r\n        var _this = this;\r\n        var allCacheKeys = this.getKeys();\r\n        var matchingCredentials = {\r\n            idTokens: {},\r\n            accessTokens: {},\r\n            refreshTokens: {},\r\n        };\r\n        allCacheKeys.forEach(function (cacheKey) {\r\n            // don't parse any non-credential type cache entities\r\n            var credType = CredentialEntity.getCredentialType(cacheKey);\r\n            if (credType === Constants.NOT_DEFINED) {\r\n                return;\r\n            }\r\n            // Attempt retrieval\r\n            var entity = _this.getSpecificCredential(cacheKey, credType);\r\n            if (!entity) {\r\n                return;\r\n            }\r\n            if (!!oboAssertion && !_this.matchOboAssertion(entity, oboAssertion)) {\r\n                return;\r\n            }\r\n            if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n                return;\r\n            }\r\n            if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n                return;\r\n            }\r\n            if (!!realm && !_this.matchRealm(entity, realm)) {\r\n                return;\r\n            }\r\n            if (!!credentialType && !_this.matchCredentialType(entity, credentialType)) {\r\n                return;\r\n            }\r\n            if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n                return;\r\n            }\r\n            if (!!familyId && !_this.matchFamilyId(entity, familyId)) {\r\n                return;\r\n            }\r\n            /*\r\n             * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\r\n             * Resource specific refresh tokens case will be added when the support is deemed necessary\r\n             */\r\n            if (!!target && !_this.matchTarget(entity, target)) {\r\n                return;\r\n            }\r\n            switch (credType) {\r\n                case CredentialType.ID_TOKEN:\r\n                    matchingCredentials.idTokens[cacheKey] = entity;\r\n                    break;\r\n                case CredentialType.ACCESS_TOKEN:\r\n                case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n                    matchingCredentials.accessTokens[cacheKey] = entity;\r\n                    break;\r\n                case CredentialType.REFRESH_TOKEN:\r\n                    matchingCredentials.refreshTokens[cacheKey] = entity;\r\n                    break;\r\n            }\r\n        });\r\n        return matchingCredentials;\r\n    };\r\n    /**\r\n     * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\r\n     * @param filter\r\n     */\r\n    CacheManager.prototype.getAppMetadataFilteredBy = function (filter) {\r\n        return this.getAppMetadataFilteredByInternal(filter.environment, filter.clientId);\r\n    };\r\n    /**\r\n     * Support function to help match appMetadata\r\n     * @param environment\r\n     * @param clientId\r\n     */\r\n    CacheManager.prototype.getAppMetadataFilteredByInternal = function (environment, clientId) {\r\n        var _this = this;\r\n        var allCacheKeys = this.getKeys();\r\n        var matchingAppMetadata = {};\r\n        allCacheKeys.forEach(function (cacheKey) {\r\n            // don't parse any non-appMetadata type cache entities\r\n            if (!_this.isAppMetadata(cacheKey)) {\r\n                return;\r\n            }\r\n            // Attempt retrieval\r\n            var entity = _this.getAppMetadata(cacheKey);\r\n            if (!entity) {\r\n                return;\r\n            }\r\n            if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n                return;\r\n            }\r\n            if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n                return;\r\n            }\r\n            matchingAppMetadata[cacheKey] = entity;\r\n        });\r\n        return matchingAppMetadata;\r\n    };\r\n    /**\r\n     * retrieve authorityMetadata that contains a matching alias\r\n     * @param filter\r\n     */\r\n    CacheManager.prototype.getAuthorityMetadataByAlias = function (host) {\r\n        var _this = this;\r\n        var allCacheKeys = this.getAuthorityMetadataKeys();\r\n        var matchedEntity = null;\r\n        allCacheKeys.forEach(function (cacheKey) {\r\n            // don't parse any non-authorityMetadata type cache entities\r\n            if (!_this.isAuthorityMetadata(cacheKey) || cacheKey.indexOf(_this.clientId) === -1) {\r\n                return;\r\n            }\r\n            // Attempt retrieval\r\n            var entity = _this.getAuthorityMetadata(cacheKey);\r\n            if (!entity) {\r\n                return;\r\n            }\r\n            if (entity.aliases.indexOf(host) === -1) {\r\n                return;\r\n            }\r\n            matchedEntity = entity;\r\n        });\r\n        return matchedEntity;\r\n    };\r\n    /**\r\n     * Removes all accounts and related tokens from cache.\r\n     */\r\n    CacheManager.prototype.removeAllAccounts = function () {\r\n        var _this = this;\r\n        var allCacheKeys = this.getKeys();\r\n        allCacheKeys.forEach(function (cacheKey) {\r\n            var entity = _this.getAccount(cacheKey);\r\n            if (!entity) {\r\n                return;\r\n            }\r\n            _this.removeAccount(cacheKey);\r\n        });\r\n        return true;\r\n    };\r\n    /**\r\n     * returns a boolean if the given account is removed\r\n     * @param account\r\n     */\r\n    CacheManager.prototype.removeAccount = function (accountKey) {\r\n        var account = this.getAccount(accountKey);\r\n        if (!account) {\r\n            throw ClientAuthError.createNoAccountFoundError();\r\n        }\r\n        return (this.removeAccountContext(account) && this.removeItem(accountKey, CacheSchemaType.ACCOUNT));\r\n    };\r\n    /**\r\n     * returns a boolean if the given account is removed\r\n     * @param account\r\n     */\r\n    CacheManager.prototype.removeAccountContext = function (account) {\r\n        var _this = this;\r\n        var allCacheKeys = this.getKeys();\r\n        var accountId = account.generateAccountId();\r\n        allCacheKeys.forEach(function (cacheKey) {\r\n            // don't parse any non-credential type cache entities\r\n            var credType = CredentialEntity.getCredentialType(cacheKey);\r\n            if (credType === Constants.NOT_DEFINED) {\r\n                return;\r\n            }\r\n            var cacheEntity = _this.getSpecificCredential(cacheKey, credType);\r\n            if (!!cacheEntity && accountId === cacheEntity.generateAccountId()) {\r\n                _this.removeCredential(cacheEntity);\r\n            }\r\n        });\r\n        return true;\r\n    };\r\n    /**\r\n     * returns a boolean if the given credential is removed\r\n     * @param credential\r\n     */\r\n    CacheManager.prototype.removeCredential = function (credential) {\r\n        var key = credential.generateCredentialKey();\r\n        return this.removeItem(key, CacheSchemaType.CREDENTIAL);\r\n    };\r\n    /**\r\n     * Removes all app metadata objects from cache.\r\n     */\r\n    CacheManager.prototype.removeAppMetadata = function () {\r\n        var _this = this;\r\n        var allCacheKeys = this.getKeys();\r\n        allCacheKeys.forEach(function (cacheKey) {\r\n            if (_this.isAppMetadata(cacheKey)) {\r\n                _this.removeItem(cacheKey, CacheSchemaType.APP_METADATA);\r\n            }\r\n        });\r\n        return true;\r\n    };\r\n    /**\r\n     * Retrieve the cached credentials into a cacherecord\r\n     * @param account\r\n     * @param clientId\r\n     * @param scopes\r\n     * @param environment\r\n     * @param authScheme\r\n     */\r\n    CacheManager.prototype.readCacheRecord = function (account, clientId, scopes, environment, authScheme) {\r\n        var cachedAccount = this.readAccountFromCache(account);\r\n        var cachedIdToken = this.readIdTokenFromCache(clientId, account);\r\n        var cachedAccessToken = this.readAccessTokenFromCache(clientId, account, scopes, authScheme);\r\n        var cachedRefreshToken = this.readRefreshTokenFromCache(clientId, account, false);\r\n        var cachedAppMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n        if (cachedAccount && cachedIdToken) {\r\n            cachedAccount.idTokenClaims = new AuthToken(cachedIdToken.secret, this.cryptoImpl).claims;\r\n        }\r\n        return {\r\n            account: cachedAccount,\r\n            idToken: cachedIdToken,\r\n            accessToken: cachedAccessToken,\r\n            refreshToken: cachedRefreshToken,\r\n            appMetadata: cachedAppMetadata,\r\n        };\r\n    };\r\n    /**\r\n     * Retrieve AccountEntity from cache\r\n     * @param account\r\n     */\r\n    CacheManager.prototype.readAccountFromCache = function (account) {\r\n        var accountKey = AccountEntity.generateAccountCacheKey(account);\r\n        return this.getAccount(accountKey);\r\n    };\r\n    /**\r\n     * Retrieve IdTokenEntity from cache\r\n     * @param clientId\r\n     * @param account\r\n     * @param inputRealm\r\n     */\r\n    CacheManager.prototype.readIdTokenFromCache = function (clientId, account) {\r\n        var idTokenFilter = {\r\n            homeAccountId: account.homeAccountId,\r\n            environment: account.environment,\r\n            credentialType: CredentialType.ID_TOKEN,\r\n            clientId: clientId,\r\n            realm: account.tenantId,\r\n        };\r\n        var credentialCache = this.getCredentialsFilteredBy(idTokenFilter);\r\n        var idTokens = Object.keys(credentialCache.idTokens).map(function (key) { return credentialCache.idTokens[key]; });\r\n        var numIdTokens = idTokens.length;\r\n        if (numIdTokens < 1) {\r\n            return null;\r\n        }\r\n        else if (numIdTokens > 1) {\r\n            throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n        }\r\n        return idTokens[0];\r\n    };\r\n    /**\r\n     * Retrieve AccessTokenEntity from cache\r\n     * @param clientId\r\n     * @param account\r\n     * @param scopes\r\n     * @param authScheme\r\n     */\r\n    CacheManager.prototype.readAccessTokenFromCache = function (clientId, account, scopes, authScheme) {\r\n        var credentialType = (authScheme === AuthenticationScheme.POP) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;\r\n        var accessTokenFilter = {\r\n            homeAccountId: account.homeAccountId,\r\n            environment: account.environment,\r\n            credentialType: credentialType,\r\n            clientId: clientId,\r\n            realm: account.tenantId,\r\n            target: scopes.printScopesLowerCase(),\r\n        };\r\n        var credentialCache = this.getCredentialsFilteredBy(accessTokenFilter);\r\n        var accessTokens = Object.keys(credentialCache.accessTokens).map(function (key) { return credentialCache.accessTokens[key]; });\r\n        var numAccessTokens = accessTokens.length;\r\n        if (numAccessTokens < 1) {\r\n            return null;\r\n        }\r\n        else if (numAccessTokens > 1) {\r\n            throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n        }\r\n        return accessTokens[0];\r\n    };\r\n    /**\r\n     * Helper to retrieve the appropriate refresh token from cache\r\n     * @param clientId\r\n     * @param account\r\n     * @param familyRT\r\n     */\r\n    CacheManager.prototype.readRefreshTokenFromCache = function (clientId, account, familyRT) {\r\n        var id = familyRT ? THE_FAMILY_ID : undefined;\r\n        var refreshTokenFilter = {\r\n            homeAccountId: account.homeAccountId,\r\n            environment: account.environment,\r\n            credentialType: CredentialType.REFRESH_TOKEN,\r\n            clientId: clientId,\r\n            familyId: id\r\n        };\r\n        var credentialCache = this.getCredentialsFilteredBy(refreshTokenFilter);\r\n        var refreshTokens = Object.keys(credentialCache.refreshTokens).map(function (key) { return credentialCache.refreshTokens[key]; });\r\n        var numRefreshTokens = refreshTokens.length;\r\n        if (numRefreshTokens < 1) {\r\n            return null;\r\n        }\r\n        // address the else case after remove functions address environment aliases\r\n        return refreshTokens[0];\r\n    };\r\n    /**\r\n     * Retrieve AppMetadataEntity from cache\r\n     */\r\n    CacheManager.prototype.readAppMetadataFromCache = function (environment, clientId) {\r\n        var appMetadataFilter = {\r\n            environment: environment,\r\n            clientId: clientId,\r\n        };\r\n        var appMetadata = this.getAppMetadataFilteredBy(appMetadataFilter);\r\n        var appMetadataEntries = Object.keys(appMetadata).map(function (key) { return appMetadata[key]; });\r\n        var numAppMetadata = appMetadataEntries.length;\r\n        if (numAppMetadata < 1) {\r\n            return null;\r\n        }\r\n        else if (numAppMetadata > 1) {\r\n            throw ClientAuthError.createMultipleMatchingAppMetadataInCacheError();\r\n        }\r\n        return appMetadataEntries[0];\r\n    };\r\n    /**\r\n     * Return the family_id value associated  with FOCI\r\n     * @param environment\r\n     * @param clientId\r\n     */\r\n    CacheManager.prototype.isAppMetadataFOCI = function (environment, clientId) {\r\n        var appMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n        return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\r\n    };\r\n    /**\r\n     * helper to match account ids\r\n     * @param value\r\n     * @param homeAccountId\r\n     */\r\n    CacheManager.prototype.matchHomeAccountId = function (entity, homeAccountId) {\r\n        return !!(entity.homeAccountId && homeAccountId === entity.homeAccountId);\r\n    };\r\n    /**\r\n     * helper to match assertion\r\n     * @param value\r\n     * @param oboAssertion\r\n     */\r\n    CacheManager.prototype.matchOboAssertion = function (entity, oboAssertion) {\r\n        return !!(entity.oboAssertion && oboAssertion === entity.oboAssertion);\r\n    };\r\n    /**\r\n     * helper to match environment\r\n     * @param value\r\n     * @param environment\r\n     */\r\n    CacheManager.prototype.matchEnvironment = function (entity, environment) {\r\n        var cloudMetadata = this.getAuthorityMetadataByAlias(environment);\r\n        if (cloudMetadata && cloudMetadata.aliases.indexOf(entity.environment) > -1) {\r\n            return true;\r\n        }\r\n        return false;\r\n    };\r\n    /**\r\n     * helper to match credential type\r\n     * @param entity\r\n     * @param credentialType\r\n     */\r\n    CacheManager.prototype.matchCredentialType = function (entity, credentialType) {\r\n        return (entity.credentialType && credentialType.toLowerCase() === entity.credentialType.toLowerCase());\r\n    };\r\n    /**\r\n     * helper to match client ids\r\n     * @param entity\r\n     * @param clientId\r\n     */\r\n    CacheManager.prototype.matchClientId = function (entity, clientId) {\r\n        return !!(entity.clientId && clientId === entity.clientId);\r\n    };\r\n    /**\r\n     * helper to match family ids\r\n     * @param entity\r\n     * @param familyId\r\n     */\r\n    CacheManager.prototype.matchFamilyId = function (entity, familyId) {\r\n        return !!(entity.familyId && familyId === entity.familyId);\r\n    };\r\n    /**\r\n     * helper to match realm\r\n     * @param entity\r\n     * @param realm\r\n     */\r\n    CacheManager.prototype.matchRealm = function (entity, realm) {\r\n        return !!(entity.realm && realm === entity.realm);\r\n    };\r\n    /**\r\n     * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\r\n     * @param entity\r\n     * @param target\r\n     */\r\n    CacheManager.prototype.matchTarget = function (entity, target) {\r\n        var isNotAccessTokenCredential = (entity.credentialType !== CredentialType.ACCESS_TOKEN && entity.credentialType !== CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME);\r\n        if (isNotAccessTokenCredential || !entity.target) {\r\n            return false;\r\n        }\r\n        var entityScopeSet = ScopeSet.fromString(entity.target);\r\n        var requestTargetScopeSet = ScopeSet.fromString(target);\r\n        if (!requestTargetScopeSet.containsOnlyOIDCScopes()) {\r\n            requestTargetScopeSet.removeOIDCScopes(); // ignore OIDC scopes\r\n        }\r\n        else {\r\n            requestTargetScopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\r\n        }\r\n        return entityScopeSet.containsScopeSet(requestTargetScopeSet);\r\n    };\r\n    /**\r\n     * returns if a given cache entity is of the type appmetadata\r\n     * @param key\r\n     */\r\n    CacheManager.prototype.isAppMetadata = function (key) {\r\n        return key.indexOf(APP_METADATA) !== -1;\r\n    };\r\n    /**\r\n     * returns if a given cache entity is of the type authoritymetadata\r\n     * @param key\r\n     */\r\n    CacheManager.prototype.isAuthorityMetadata = function (key) {\r\n        return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\r\n    };\r\n    /**\r\n     * returns cache key used for cloud instance metadata\r\n     */\r\n    CacheManager.prototype.generateAuthorityMetadataCacheKey = function (authority) {\r\n        return AUTHORITY_METADATA_CONSTANTS.CACHE_KEY + \"-\" + this.clientId + \"-\" + authority;\r\n    };\r\n    /**\r\n     * Returns the specific credential (IdToken/AccessToken/RefreshToken) from the cache\r\n     * @param key\r\n     * @param credType\r\n     */\r\n    CacheManager.prototype.getSpecificCredential = function (key, credType) {\r\n        switch (credType) {\r\n            case CredentialType.ID_TOKEN: {\r\n                return this.getIdTokenCredential(key);\r\n            }\r\n            case CredentialType.ACCESS_TOKEN:\r\n            case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME: {\r\n                return this.getAccessTokenCredential(key);\r\n            }\r\n            case CredentialType.REFRESH_TOKEN: {\r\n                return this.getRefreshTokenCredential(key);\r\n            }\r\n            default:\r\n                return null;\r\n        }\r\n    };\r\n    /**\r\n     * Helper to convert serialized data to object\r\n     * @param obj\r\n     * @param json\r\n     */\r\n    CacheManager.toObject = function (obj, json) {\r\n        for (var propertyName in json) {\r\n            obj[propertyName] = json[propertyName];\r\n        }\r\n        return obj;\r\n    };\r\n    return CacheManager;\r\n}());\r\nvar DefaultStorageClass = /** @class */ (function (_super) {\r\n    __extends(DefaultStorageClass, _super);\r\n    function DefaultStorageClass() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    DefaultStorageClass.prototype.setAccount = function () {\r\n        var notImplErr = \"Storage interface - setAccount() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getAccount = function () {\r\n        var notImplErr = \"Storage interface - getAccount() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.setIdTokenCredential = function () {\r\n        var notImplErr = \"Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getIdTokenCredential = function () {\r\n        var notImplErr = \"Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.setAccessTokenCredential = function () {\r\n        var notImplErr = \"Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getAccessTokenCredential = function () {\r\n        var notImplErr = \"Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.setRefreshTokenCredential = function () {\r\n        var notImplErr = \"Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getRefreshTokenCredential = function () {\r\n        var notImplErr = \"Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.setAppMetadata = function () {\r\n        var notImplErr = \"Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getAppMetadata = function () {\r\n        var notImplErr = \"Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.setServerTelemetry = function () {\r\n        var notImplErr = \"Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getServerTelemetry = function () {\r\n        var notImplErr = \"Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.setAuthorityMetadata = function () {\r\n        var notImplErr = \"Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getAuthorityMetadata = function () {\r\n        var notImplErr = \"Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getAuthorityMetadataKeys = function () {\r\n        var notImplErr = \"Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.setThrottlingCache = function () {\r\n        var notImplErr = \"Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getThrottlingCache = function () {\r\n        var notImplErr = \"Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.removeItem = function () {\r\n        var notImplErr = \"Storage interface - removeItem() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.containsKey = function () {\r\n        var notImplErr = \"Storage interface - containsKey() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.getKeys = function () {\r\n        var notImplErr = \"Storage interface - getKeys() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    DefaultStorageClass.prototype.clear = function () {\r\n        var notImplErr = \"Storage interface - clear() has not been implemented for the cacheStorage interface.\";\r\n        throw AuthError.createUnexpectedError(notImplErr);\r\n    };\r\n    return DefaultStorageClass;\r\n}(CacheManager));\n\nexport { CacheManager, DefaultStorageClass };\n//# sourceMappingURL=CacheManager.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __assign, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { LogLevel } from '../logger/Logger.js';\nimport { Constants } from '../utils/Constants.js';\nimport { version } from '../packageMetadata.js';\nimport { DefaultStorageClass } from '../cache/CacheManager.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Token renewal offset default in seconds\r\nvar DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n    tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,\r\n    preventCorsPreflight: false\r\n};\r\nvar DEFAULT_LOGGER_IMPLEMENTATION = {\r\n    loggerCallback: function () {\r\n        // allow users to not set loggerCallback\r\n    },\r\n    piiLoggingEnabled: false,\r\n    logLevel: LogLevel.Info,\r\n    correlationId: \"\"\r\n};\r\nvar DEFAULT_NETWORK_IMPLEMENTATION = {\r\n    sendGetRequestAsync: function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var notImplErr;\r\n            return __generator(this, function (_a) {\r\n                notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented\";\r\n                throw AuthError.createUnexpectedError(notImplErr);\r\n            });\r\n        });\r\n    },\r\n    sendPostRequestAsync: function () {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var notImplErr;\r\n            return __generator(this, function (_a) {\r\n                notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented\";\r\n                throw AuthError.createUnexpectedError(notImplErr);\r\n            });\r\n        });\r\n    }\r\n};\r\nvar DEFAULT_LIBRARY_INFO = {\r\n    sku: Constants.SKU,\r\n    version: version,\r\n    cpu: \"\",\r\n    os: \"\"\r\n};\r\nvar DEFAULT_CLIENT_CREDENTIALS = {\r\n    clientSecret: \"\",\r\n    clientAssertion: undefined\r\n};\r\n/**\r\n * Function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param Configuration\r\n *\r\n * @returns Configuration\r\n */\r\nfunction buildClientConfiguration(_a) {\r\n    var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;\r\n    return {\r\n        authOptions: buildAuthOptions(userAuthOptions),\r\n        systemOptions: __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), userSystemOptions),\r\n        loggerOptions: __assign(__assign({}, DEFAULT_LOGGER_IMPLEMENTATION), userLoggerOption),\r\n        storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION),\r\n        networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\r\n        cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\r\n        clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\r\n        libraryInfo: __assign(__assign({}, DEFAULT_LIBRARY_INFO), libraryInfo),\r\n        serverTelemetryManager: serverTelemetryManager || null,\r\n        persistencePlugin: persistencePlugin || null,\r\n        serializableCache: serializableCache || null\r\n    };\r\n}\r\n/**\r\n * Construct authoptions from the client and platform passed values\r\n * @param authOptions\r\n */\r\nfunction buildAuthOptions(authOptions) {\r\n    return __assign({ clientCapabilities: [] }, authOptions);\r\n}\n\nexport { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration };\n//# sourceMappingURL=ClientConfiguration.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { ThrottlingUtils } from './ThrottlingUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NetworkManager = /** @class */ (function () {\r\n    function NetworkManager(networkClient, cacheManager) {\r\n        this.networkClient = networkClient;\r\n        this.cacheManager = cacheManager;\r\n    }\r\n    /**\r\n     * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n     * @param thumbprint\r\n     * @param tokenEndpoint\r\n     * @param options\r\n     */\r\n    NetworkManager.prototype.sendPostRequest = function (thumbprint, tokenEndpoint, options) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var response, e_1;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 3, , 4]);\r\n                        return [4 /*yield*/, this.networkClient.sendPostRequestAsync(tokenEndpoint, options)];\r\n                    case 2:\r\n                        response = _a.sent();\r\n                        return [3 /*break*/, 4];\r\n                    case 3:\r\n                        e_1 = _a.sent();\r\n                        if (e_1 instanceof AuthError) {\r\n                            throw e_1;\r\n                        }\r\n                        else {\r\n                            throw ClientAuthError.createNetworkError(tokenEndpoint, e_1);\r\n                        }\r\n                    case 4:\r\n                        ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n                        return [2 /*return*/, response];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return NetworkManager;\r\n}());\n\nexport { NetworkManager };\n//# sourceMappingURL=NetworkManager.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CcsCredentialType;\r\n(function (CcsCredentialType) {\r\n    CcsCredentialType[\"HOME_ACCOUNT_ID\"] = \"home_account_id\";\r\n    CcsCredentialType[\"UPN\"] = \"UPN\";\r\n})(CcsCredentialType || (CcsCredentialType = {}));\n\nexport { CcsCredentialType };\n//# sourceMappingURL=CcsCredential.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientConfiguration } from '../config/ClientConfiguration.js';\nimport { NetworkManager } from '../network/NetworkManager.js';\nimport { Logger } from '../logger/Logger.js';\nimport { HeaderNames, Constants } from '../utils/Constants.js';\nimport { name, version } from '../packageMetadata.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\r\n */\r\nvar BaseClient = /** @class */ (function () {\r\n    function BaseClient(configuration) {\r\n        // Set the configuration\r\n        this.config = buildClientConfiguration(configuration);\r\n        // Initialize the logger\r\n        this.logger = new Logger(this.config.loggerOptions, name, version);\r\n        // Initialize crypto\r\n        this.cryptoUtils = this.config.cryptoInterface;\r\n        // Initialize storage interface\r\n        this.cacheManager = this.config.storageInterface;\r\n        // Set the network interface\r\n        this.networkClient = this.config.networkInterface;\r\n        // Set the NetworkManager\r\n        this.networkManager = new NetworkManager(this.networkClient, this.cacheManager);\r\n        // Set TelemetryManager\r\n        this.serverTelemetryManager = this.config.serverTelemetryManager;\r\n        // set Authority\r\n        this.authority = this.config.authOptions.authority;\r\n    }\r\n    /**\r\n     * Creates default headers for requests to token endpoint\r\n     */\r\n    BaseClient.prototype.createTokenRequestHeaders = function (ccsCred) {\r\n        var headers = {};\r\n        headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\r\n        if (!this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n            switch (ccsCred.type) {\r\n                case CcsCredentialType.HOME_ACCOUNT_ID:\r\n                    try {\r\n                        var clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n                        headers[HeaderNames.CCS_HEADER] = \"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid;\r\n                    }\r\n                    catch (e) {\r\n                        this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n                    }\r\n                    break;\r\n                case CcsCredentialType.UPN:\r\n                    headers[HeaderNames.CCS_HEADER] = \"UPN: \" + ccsCred.credential;\r\n                    break;\r\n            }\r\n        }\r\n        return headers;\r\n    };\r\n    /**\r\n     * Http post to token endpoint\r\n     * @param tokenEndpoint\r\n     * @param queryString\r\n     * @param headers\r\n     * @param thumbprint\r\n     */\r\n    BaseClient.prototype.executePostToTokenEndpoint = function (tokenEndpoint, queryString, headers, thumbprint) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var response;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0: return [4 /*yield*/, this.networkManager.sendPostRequest(thumbprint, tokenEndpoint, { body: queryString, headers: headers })];\r\n                    case 1:\r\n                        response = _a.sent();\r\n                        if (this.config.serverTelemetryManager && response.status < 500 && response.status !== 429) {\r\n                            // Telemetry data successfully logged by server, clear Telemetry cache\r\n                            this.config.serverTelemetryManager.clearTelemetryCache();\r\n                        }\r\n                        return [2 /*return*/, response];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Updates the authority object of the client. Endpoint discovery must be completed.\r\n     * @param updatedAuthority\r\n     */\r\n    BaseClient.prototype.updateAuthority = function (updatedAuthority) {\r\n        if (!updatedAuthority.discoveryComplete()) {\r\n            throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Updated authority has not completed endpoint discovery.\");\r\n        }\r\n        this.authority = updatedAuthority;\r\n    };\r\n    return BaseClient;\r\n}());\n\nexport { BaseClient };\n//# sourceMappingURL=BaseClient.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar KeyLocation;\r\n(function (KeyLocation) {\r\n    KeyLocation[\"SW\"] = \"sw\";\r\n    KeyLocation[\"UHW\"] = \"uhw\";\r\n})(KeyLocation || (KeyLocation = {}));\r\nvar PopTokenGenerator = /** @class */ (function () {\r\n    function PopTokenGenerator(cryptoUtils) {\r\n        this.cryptoUtils = cryptoUtils;\r\n    }\r\n    PopTokenGenerator.prototype.generateCnf = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var kidThumbprint, reqCnf;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0: return [4 /*yield*/, this.cryptoUtils.getPublicKeyThumbprint(request)];\r\n                    case 1:\r\n                        kidThumbprint = _a.sent();\r\n                        reqCnf = {\r\n                            kid: kidThumbprint,\r\n                            xms_ksl: KeyLocation.SW\r\n                        };\r\n                        return [2 /*return*/, this.cryptoUtils.base64Encode(JSON.stringify(reqCnf))];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    PopTokenGenerator.prototype.signPopToken = function (accessToken, request) {\r\n        var _a;\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var tokenClaims, resourceRequestMethod, resourceRequestUri, shrClaims, resourceUrlString, resourceUrlComponents;\r\n            return __generator(this, function (_b) {\r\n                switch (_b.label) {\r\n                    case 0:\r\n                        tokenClaims = AuthToken.extractTokenClaims(accessToken, this.cryptoUtils);\r\n                        resourceRequestMethod = request.resourceRequestMethod, resourceRequestUri = request.resourceRequestUri, shrClaims = request.shrClaims;\r\n                        resourceUrlString = (resourceRequestUri) ? new UrlString(resourceRequestUri) : undefined;\r\n                        resourceUrlComponents = resourceUrlString === null || resourceUrlString === void 0 ? void 0 : resourceUrlString.getUrlComponents();\r\n                        if (!((_a = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _a === void 0 ? void 0 : _a.kid)) {\r\n                            throw ClientAuthError.createTokenClaimsRequiredError();\r\n                        }\r\n                        return [4 /*yield*/, this.cryptoUtils.signJwt({\r\n                                at: accessToken,\r\n                                ts: TimeUtils.nowSeconds(),\r\n                                m: resourceRequestMethod === null || resourceRequestMethod === void 0 ? void 0 : resourceRequestMethod.toUpperCase(),\r\n                                u: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.HostNameAndPort,\r\n                                nonce: this.cryptoUtils.createNewGuid(),\r\n                                p: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.AbsolutePath,\r\n                                q: (resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.QueryString) ? [[], resourceUrlComponents.QueryString] : undefined,\r\n                                client_claims: shrClaims || undefined\r\n                            }, tokenClaims.cnf.kid)];\r\n                    case 1: return [2 /*return*/, _b.sent()];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return PopTokenGenerator;\r\n}());\n\nexport { PopTokenGenerator };\n//# sourceMappingURL=PopTokenGenerator.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { CodeChallengeMethodValues, PromptValue } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Validates server consumable params from the \"request\" objects\r\n */\r\nvar RequestValidator = /** @class */ (function () {\r\n    function RequestValidator() {\r\n    }\r\n    /**\r\n     * Utility to check if the `redirectUri` in the request is a non-null value\r\n     * @param redirectUri\r\n     */\r\n    RequestValidator.validateRedirectUri = function (redirectUri) {\r\n        if (StringUtils.isEmpty(redirectUri)) {\r\n            throw ClientConfigurationError.createRedirectUriEmptyError();\r\n        }\r\n    };\r\n    /**\r\n     * Utility to validate prompt sent by the user in the request\r\n     * @param prompt\r\n     */\r\n    RequestValidator.validatePrompt = function (prompt) {\r\n        var promptValues = [];\r\n        for (var value in PromptValue) {\r\n            promptValues.push(PromptValue[value]);\r\n        }\r\n        if (promptValues.indexOf(prompt) < 0) {\r\n            throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n        }\r\n    };\r\n    RequestValidator.validateClaims = function (claims) {\r\n        try {\r\n            JSON.parse(claims);\r\n        }\r\n        catch (e) {\r\n            throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n        }\r\n    };\r\n    /**\r\n     * Utility to validate code_challenge and code_challenge_method\r\n     * @param codeChallenge\r\n     * @param codeChallengeMethod\r\n     */\r\n    RequestValidator.validateCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n        if (StringUtils.isEmpty(codeChallenge) || StringUtils.isEmpty(codeChallengeMethod)) {\r\n            throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n        }\r\n        else {\r\n            this.validateCodeChallengeMethod(codeChallengeMethod);\r\n        }\r\n    };\r\n    /**\r\n     * Utility to validate code_challenge_method\r\n     * @param codeChallengeMethod\r\n     */\r\n    RequestValidator.validateCodeChallengeMethod = function (codeChallengeMethod) {\r\n        if ([\r\n            CodeChallengeMethodValues.PLAIN,\r\n            CodeChallengeMethodValues.S256\r\n        ].indexOf(codeChallengeMethod) < 0) {\r\n            throw ClientConfigurationError.createInvalidCodeChallengeMethodError();\r\n        }\r\n    };\r\n    /**\r\n     * Removes unnecessary or duplicate query parameters from extraQueryParameters\r\n     * @param request\r\n     */\r\n    RequestValidator.sanitizeEQParams = function (eQParams, queryParams) {\r\n        if (!eQParams) {\r\n            return {};\r\n        }\r\n        // Remove any query parameters already included in SSO params\r\n        queryParams.forEach(function (value, key) {\r\n            if (eQParams[key]) {\r\n                delete eQParams[key];\r\n            }\r\n        });\r\n        return eQParams;\r\n    };\r\n    return RequestValidator;\r\n}());\n\nexport { RequestValidator };\n//# sourceMappingURL=RequestValidator.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { AADServerParamKeys, Constants, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';\nimport { ScopeSet } from './ScopeSet.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from './RequestValidator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RequestParameterBuilder = /** @class */ (function () {\r\n    function RequestParameterBuilder() {\r\n        this.parameters = new Map();\r\n    }\r\n    /**\r\n     * add response_type = code\r\n     */\r\n    RequestParameterBuilder.prototype.addResponseTypeCode = function () {\r\n        this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));\r\n    };\r\n    /**\r\n     * add response_mode. defaults to query.\r\n     * @param responseMode\r\n     */\r\n    RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {\r\n        this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY));\r\n    };\r\n    /**\r\n     * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n     * @param scopeSet\r\n     * @param addOidcScopes\r\n     */\r\n    RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {\r\n        if (addOidcScopes === void 0) { addOidcScopes = true; }\r\n        var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];\r\n        var scopeSet = new ScopeSet(requestScopes);\r\n        this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n    };\r\n    /**\r\n     * add clientId\r\n     * @param clientId\r\n     */\r\n    RequestParameterBuilder.prototype.addClientId = function (clientId) {\r\n        this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\r\n    };\r\n    /**\r\n     * add redirect_uri\r\n     * @param redirectUri\r\n     */\r\n    RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {\r\n        RequestValidator.validateRedirectUri(redirectUri);\r\n        this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\r\n    };\r\n    /**\r\n     * add post logout redirectUri\r\n     * @param redirectUri\r\n     */\r\n    RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {\r\n        RequestValidator.validateRedirectUri(redirectUri);\r\n        this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n    };\r\n    /**\r\n     * add id_token_hint to logout request\r\n     * @param idTokenHint\r\n     */\r\n    RequestParameterBuilder.prototype.addIdTokenHint = function (idTokenHint) {\r\n        this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n    };\r\n    /**\r\n     * add domain_hint\r\n     * @param domainHint\r\n     */\r\n    RequestParameterBuilder.prototype.addDomainHint = function (domainHint) {\r\n        this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\r\n    };\r\n    /**\r\n     * add login_hint\r\n     * @param loginHint\r\n     */\r\n    RequestParameterBuilder.prototype.addLoginHint = function (loginHint) {\r\n        this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\r\n    };\r\n    /**\r\n     * Adds the CCS (Cache Credential Service) query parameter for login_hint\r\n     * @param loginHint\r\n     */\r\n    RequestParameterBuilder.prototype.addCcsUpn = function (loginHint) {\r\n        this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"UPN:\" + loginHint));\r\n    };\r\n    /**\r\n     * Adds the CCS (Cache Credential Service) query parameter for account object\r\n     * @param loginHint\r\n     */\r\n    RequestParameterBuilder.prototype.addCcsOid = function (clientInfo) {\r\n        this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid));\r\n    };\r\n    /**\r\n     * add sid\r\n     * @param sid\r\n     */\r\n    RequestParameterBuilder.prototype.addSid = function (sid) {\r\n        this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\r\n    };\r\n    /**\r\n     * add claims\r\n     * @param claims\r\n     */\r\n    RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {\r\n        var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n        RequestValidator.validateClaims(mergedClaims);\r\n        this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\r\n    };\r\n    /**\r\n     * add correlationId\r\n     * @param correlationId\r\n     */\r\n    RequestParameterBuilder.prototype.addCorrelationId = function (correlationId) {\r\n        this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n    };\r\n    /**\r\n     * add library info query params\r\n     * @param libraryInfo\r\n     */\r\n    RequestParameterBuilder.prototype.addLibraryInfo = function (libraryInfo) {\r\n        // Telemetry Info\r\n        this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\r\n        this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\r\n        this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\r\n        this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\r\n    };\r\n    /**\r\n     * add prompt\r\n     * @param prompt\r\n     */\r\n    RequestParameterBuilder.prototype.addPrompt = function (prompt) {\r\n        RequestValidator.validatePrompt(prompt);\r\n        this.parameters.set(\"\" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));\r\n    };\r\n    /**\r\n     * add state\r\n     * @param state\r\n     */\r\n    RequestParameterBuilder.prototype.addState = function (state) {\r\n        if (!StringUtils.isEmpty(state)) {\r\n            this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\r\n        }\r\n    };\r\n    /**\r\n     * add nonce\r\n     * @param nonce\r\n     */\r\n    RequestParameterBuilder.prototype.addNonce = function (nonce) {\r\n        this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\r\n    };\r\n    /**\r\n     * add code_challenge and code_challenge_method\r\n     * - throw if either of them are not passed\r\n     * @param codeChallenge\r\n     * @param codeChallengeMethod\r\n     */\r\n    RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n        RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n        if (codeChallenge && codeChallengeMethod) {\r\n            this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n            this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n        }\r\n        else {\r\n            throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n        }\r\n    };\r\n    /**\r\n     * add the `authorization_code` passed by the user to exchange for a token\r\n     * @param code\r\n     */\r\n    RequestParameterBuilder.prototype.addAuthorizationCode = function (code) {\r\n        this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\r\n    };\r\n    /**\r\n     * add the `authorization_code` passed by the user to exchange for a token\r\n     * @param code\r\n     */\r\n    RequestParameterBuilder.prototype.addDeviceCode = function (code) {\r\n        this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\r\n    };\r\n    /**\r\n     * add the `refreshToken` passed by the user\r\n     * @param refreshToken\r\n     */\r\n    RequestParameterBuilder.prototype.addRefreshToken = function (refreshToken) {\r\n        this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n    };\r\n    /**\r\n     * add the `code_verifier` passed by the user to exchange for a token\r\n     * @param codeVerifier\r\n     */\r\n    RequestParameterBuilder.prototype.addCodeVerifier = function (codeVerifier) {\r\n        this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n    };\r\n    /**\r\n     * add client_secret\r\n     * @param clientSecret\r\n     */\r\n    RequestParameterBuilder.prototype.addClientSecret = function (clientSecret) {\r\n        this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n    };\r\n    /**\r\n     * add clientAssertion for confidential client flows\r\n     * @param clientAssertion\r\n     */\r\n    RequestParameterBuilder.prototype.addClientAssertion = function (clientAssertion) {\r\n        this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n    };\r\n    /**\r\n     * add clientAssertionType for confidential client flows\r\n     * @param clientAssertionType\r\n     */\r\n    RequestParameterBuilder.prototype.addClientAssertionType = function (clientAssertionType) {\r\n        this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n    };\r\n    /**\r\n     * add OBO assertion for confidential client flows\r\n     * @param clientAssertion\r\n     */\r\n    RequestParameterBuilder.prototype.addOboAssertion = function (oboAssertion) {\r\n        this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n    };\r\n    /**\r\n     * add grant type\r\n     * @param grantType\r\n     */\r\n    RequestParameterBuilder.prototype.addRequestTokenUse = function (tokenUse) {\r\n        this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n    };\r\n    /**\r\n     * add grant type\r\n     * @param grantType\r\n     */\r\n    RequestParameterBuilder.prototype.addGrantType = function (grantType) {\r\n        this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\r\n    };\r\n    /**\r\n     * add client info\r\n     *\r\n     */\r\n    RequestParameterBuilder.prototype.addClientInfo = function () {\r\n        this.parameters.set(CLIENT_INFO, \"1\");\r\n    };\r\n    /**\r\n     * add extraQueryParams\r\n     * @param eQparams\r\n     */\r\n    RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQparams) {\r\n        var _this = this;\r\n        RequestValidator.sanitizeEQParams(eQparams, this.parameters);\r\n        Object.keys(eQparams).forEach(function (key) {\r\n            _this.parameters.set(key, eQparams[key]);\r\n        });\r\n    };\r\n    RequestParameterBuilder.prototype.addClientCapabilitiesToClaims = function (claims, clientCapabilities) {\r\n        var mergedClaims;\r\n        // Parse provided claims into JSON object or initialize empty object\r\n        if (!claims) {\r\n            mergedClaims = {};\r\n        }\r\n        else {\r\n            try {\r\n                mergedClaims = JSON.parse(claims);\r\n            }\r\n            catch (e) {\r\n                throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n            }\r\n        }\r\n        if (clientCapabilities && clientCapabilities.length > 0) {\r\n            if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {\r\n                // Add access_token key to claims object\r\n                mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n            }\r\n            // Add xms_cc claim with provided clientCapabilities to access_token key\r\n            mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n                values: clientCapabilities\r\n            };\r\n        }\r\n        return JSON.stringify(mergedClaims);\r\n    };\r\n    /**\r\n     * adds `username` for Password Grant flow\r\n     * @param username\r\n     */\r\n    RequestParameterBuilder.prototype.addUsername = function (username) {\r\n        this.parameters.set(PasswordGrantConstants.username, username);\r\n    };\r\n    /**\r\n     * adds `password` for Password Grant flow\r\n     * @param password\r\n     */\r\n    RequestParameterBuilder.prototype.addPassword = function (password) {\r\n        this.parameters.set(PasswordGrantConstants.password, password);\r\n    };\r\n    /**\r\n     * add pop_jwk to query params\r\n     * @param cnfString\r\n     */\r\n    RequestParameterBuilder.prototype.addPopToken = function (cnfString) {\r\n        if (!StringUtils.isEmpty(cnfString)) {\r\n            this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\r\n            this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\r\n        }\r\n    };\r\n    /**\r\n     * add server telemetry fields\r\n     * @param serverTelemetryManager\r\n     */\r\n    RequestParameterBuilder.prototype.addServerTelemetry = function (serverTelemetryManager) {\r\n        this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\r\n        this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\r\n    };\r\n    /**\r\n     * Adds parameter that indicates to the server that throttling is supported\r\n     */\r\n    RequestParameterBuilder.prototype.addThrottling = function () {\r\n        this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\r\n    };\r\n    /**\r\n     * Utility to create a URL from the params map\r\n     */\r\n    RequestParameterBuilder.prototype.createQueryString = function () {\r\n        var queryParameterArray = new Array();\r\n        this.parameters.forEach(function (value, key) {\r\n            queryParameterArray.push(key + \"=\" + value);\r\n        });\r\n        return queryParameterArray.join(\"&\");\r\n    };\r\n    return RequestParameterBuilder;\r\n}());\n\nexport { RequestParameterBuilder };\n//# sourceMappingURL=RequestParameterBuilder.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ID_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-\r\n *\r\n * Value Schema:\r\n * {\r\n *      homeAccountId: home account identifier for the auth scheme,\r\n *      environment: entity that issued the token, represented as a full host\r\n *      credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n *      clientId: client ID of the application\r\n *      secret: Actual credential as a string\r\n *      realm: Full tenant or organizational identifier that the account belongs to\r\n * }\r\n */\r\nvar IdTokenEntity = /** @class */ (function (_super) {\r\n    __extends(IdTokenEntity, _super);\r\n    function IdTokenEntity() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * Create IdTokenEntity\r\n     * @param homeAccountId\r\n     * @param authenticationResult\r\n     * @param clientId\r\n     * @param authority\r\n     */\r\n    IdTokenEntity.createIdTokenEntity = function (homeAccountId, environment, idToken, clientId, tenantId, oboAssertion) {\r\n        var idTokenEntity = new IdTokenEntity();\r\n        idTokenEntity.credentialType = CredentialType.ID_TOKEN;\r\n        idTokenEntity.homeAccountId = homeAccountId;\r\n        idTokenEntity.environment = environment;\r\n        idTokenEntity.clientId = clientId;\r\n        idTokenEntity.secret = idToken;\r\n        idTokenEntity.realm = tenantId;\r\n        idTokenEntity.oboAssertion = oboAssertion;\r\n        return idTokenEntity;\r\n    };\r\n    /**\r\n     * Validates an entity: checks for all expected params\r\n     * @param entity\r\n     */\r\n    IdTokenEntity.isIdTokenEntity = function (entity) {\r\n        if (!entity) {\r\n            return false;\r\n        }\r\n        return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n            entity.hasOwnProperty(\"environment\") &&\r\n            entity.hasOwnProperty(\"credentialType\") &&\r\n            entity.hasOwnProperty(\"realm\") &&\r\n            entity.hasOwnProperty(\"clientId\") &&\r\n            entity.hasOwnProperty(\"secret\") &&\r\n            entity[\"credentialType\"] === CredentialType.ID_TOKEN);\r\n    };\r\n    return IdTokenEntity;\r\n}(CredentialEntity));\n\nexport { IdTokenEntity };\n//# sourceMappingURL=IdTokenEntity.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType, AuthenticationScheme } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { AuthToken } from '../../account/AuthToken.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ACCESS_TOKEN Credential Type\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read\r\n *\r\n * Value Schema:\r\n * {\r\n *      homeAccountId: home account identifier for the auth scheme,\r\n *      environment: entity that issued the token, represented as a full host\r\n *      credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n *      clientId: client ID of the application\r\n *      secret: Actual credential as a string\r\n *      familyId: Family ID identifier, usually only used for refresh tokens\r\n *      realm: Full tenant or organizational identifier that the account belongs to\r\n *      target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n *      cachedAt: Absolute device time when entry was created in the cache.\r\n *      expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.\r\n *      extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.\r\n *      keyId: used for POP and SSH tokenTypes\r\n *      tokenType: Type of the token issued. Usually \"Bearer\"\r\n * }\r\n */\r\nvar AccessTokenEntity = /** @class */ (function (_super) {\r\n    __extends(AccessTokenEntity, _super);\r\n    function AccessTokenEntity() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * Create AccessTokenEntity\r\n     * @param homeAccountId\r\n     * @param environment\r\n     * @param accessToken\r\n     * @param clientId\r\n     * @param tenantId\r\n     * @param scopes\r\n     * @param expiresOn\r\n     * @param extExpiresOn\r\n     */\r\n    AccessTokenEntity.createAccessTokenEntity = function (homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, oboAssertion) {\r\n        var _a;\r\n        var atEntity = new AccessTokenEntity();\r\n        atEntity.homeAccountId = homeAccountId;\r\n        atEntity.credentialType = CredentialType.ACCESS_TOKEN;\r\n        atEntity.secret = accessToken;\r\n        var currentTime = TimeUtils.nowSeconds();\r\n        atEntity.cachedAt = currentTime.toString();\r\n        /*\r\n         * Token expiry time.\r\n         * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.\r\n         */\r\n        atEntity.expiresOn = expiresOn.toString();\r\n        atEntity.extendedExpiresOn = extExpiresOn.toString();\r\n        if (refreshOn) {\r\n            atEntity.refreshOn = refreshOn.toString();\r\n        }\r\n        atEntity.environment = environment;\r\n        atEntity.clientId = clientId;\r\n        atEntity.realm = tenantId;\r\n        atEntity.target = scopes;\r\n        atEntity.oboAssertion = oboAssertion;\r\n        atEntity.tokenType = StringUtils.isEmpty(tokenType) ? AuthenticationScheme.BEARER : tokenType;\r\n        // Create Access Token With AuthScheme instead of regular access token\r\n        if (atEntity.tokenType === AuthenticationScheme.POP) {\r\n            atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n            // Make sure keyId is present and add it to credential\r\n            var tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);\r\n            if (!((_a = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _a === void 0 ? void 0 : _a.kid)) {\r\n                throw ClientAuthError.createTokenClaimsRequiredError();\r\n            }\r\n            atEntity.keyId = tokenClaims.cnf.kid;\r\n        }\r\n        return atEntity;\r\n    };\r\n    /**\r\n     * Validates an entity: checks for all expected params\r\n     * @param entity\r\n     */\r\n    AccessTokenEntity.isAccessTokenEntity = function (entity) {\r\n        if (!entity) {\r\n            return false;\r\n        }\r\n        return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n            entity.hasOwnProperty(\"environment\") &&\r\n            entity.hasOwnProperty(\"credentialType\") &&\r\n            entity.hasOwnProperty(\"realm\") &&\r\n            entity.hasOwnProperty(\"clientId\") &&\r\n            entity.hasOwnProperty(\"secret\") &&\r\n            entity.hasOwnProperty(\"target\") &&\r\n            (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN || entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));\r\n    };\r\n    return AccessTokenEntity;\r\n}(CredentialEntity));\n\nexport { AccessTokenEntity };\n//# sourceMappingURL=AccessTokenEntity.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * REFRESH_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--\r\n *\r\n * Value:\r\n * {\r\n *      homeAccountId: home account identifier for the auth scheme,\r\n *      environment: entity that issued the token, represented as a full host\r\n *      credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n *      clientId: client ID of the application\r\n *      secret: Actual credential as a string\r\n *      familyId: Family ID identifier, '1' represents Microsoft Family\r\n *      realm: Full tenant or organizational identifier that the account belongs to\r\n *      target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * }\r\n */\r\nvar RefreshTokenEntity = /** @class */ (function (_super) {\r\n    __extends(RefreshTokenEntity, _super);\r\n    function RefreshTokenEntity() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * Create RefreshTokenEntity\r\n     * @param homeAccountId\r\n     * @param authenticationResult\r\n     * @param clientId\r\n     * @param authority\r\n     */\r\n    RefreshTokenEntity.createRefreshTokenEntity = function (homeAccountId, environment, refreshToken, clientId, familyId, oboAssertion) {\r\n        var rtEntity = new RefreshTokenEntity();\r\n        rtEntity.clientId = clientId;\r\n        rtEntity.credentialType = CredentialType.REFRESH_TOKEN;\r\n        rtEntity.environment = environment;\r\n        rtEntity.homeAccountId = homeAccountId;\r\n        rtEntity.secret = refreshToken;\r\n        rtEntity.oboAssertion = oboAssertion;\r\n        if (familyId)\r\n            rtEntity.familyId = familyId;\r\n        return rtEntity;\r\n    };\r\n    /**\r\n     * Validates an entity: checks for all expected params\r\n     * @param entity\r\n     */\r\n    RefreshTokenEntity.isRefreshTokenEntity = function (entity) {\r\n        if (!entity) {\r\n            return false;\r\n        }\r\n        return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n            entity.hasOwnProperty(\"environment\") &&\r\n            entity.hasOwnProperty(\"credentialType\") &&\r\n            entity.hasOwnProperty(\"clientId\") &&\r\n            entity.hasOwnProperty(\"secret\") &&\r\n            entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN);\r\n    };\r\n    return RefreshTokenEntity;\r\n}(CredentialEntity));\n\nexport { RefreshTokenEntity };\n//# sourceMappingURL=RefreshTokenEntity.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CacheRecord = /** @class */ (function () {\r\n    function CacheRecord(accountEntity, idTokenEntity, accessTokenEntity, refreshTokenEntity, appMetadataEntity) {\r\n        this.account = accountEntity || null;\r\n        this.idToken = idTokenEntity || null;\r\n        this.accessToken = accessTokenEntity || null;\r\n        this.refreshToken = refreshTokenEntity || null;\r\n        this.appMetadata = appMetadataEntity || null;\r\n    }\r\n    return CacheRecord;\r\n}());\n\nexport { CacheRecord };\n//# sourceMappingURL=CacheRecord.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { StringUtils } from './StringUtils.js';\nimport { Constants } from './Constants.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nvar ProtocolUtils = /** @class */ (function () {\r\n    function ProtocolUtils() {\r\n    }\r\n    /**\r\n     * Appends user state with random guid, or returns random guid.\r\n     * @param userState\r\n     * @param randomGuid\r\n     */\r\n    ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {\r\n        var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n        return !StringUtils.isEmpty(userState) ? \"\" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;\r\n    };\r\n    /**\r\n     * Generates the state value used by the common library.\r\n     * @param randomGuid\r\n     * @param cryptoObj\r\n     */\r\n    ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {\r\n        if (!cryptoObj) {\r\n            throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\r\n        }\r\n        // Create a state object containing a unique id and the timestamp of the request creation\r\n        var stateObj = {\r\n            id: cryptoObj.createNewGuid()\r\n        };\r\n        if (meta) {\r\n            stateObj.meta = meta;\r\n        }\r\n        var stateString = JSON.stringify(stateObj);\r\n        return cryptoObj.base64Encode(stateString);\r\n    };\r\n    /**\r\n     * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n     * @param state\r\n     * @param cryptoObj\r\n     */\r\n    ProtocolUtils.parseRequestState = function (cryptoObj, state) {\r\n        if (!cryptoObj) {\r\n            throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\r\n        }\r\n        if (StringUtils.isEmpty(state)) {\r\n            throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\r\n        }\r\n        try {\r\n            // Split the state between library state and user passed state and decode them separately\r\n            var splitState = state.split(Constants.RESOURCE_DELIM);\r\n            var libraryState = splitState[0];\r\n            var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : \"\";\r\n            var libraryStateString = cryptoObj.base64Decode(libraryState);\r\n            var libraryStateObj = JSON.parse(libraryStateString);\r\n            return {\r\n                userRequestState: !StringUtils.isEmpty(userState) ? userState : \"\",\r\n                libraryState: libraryStateObj\r\n            };\r\n        }\r\n        catch (e) {\r\n            throw ClientAuthError.createInvalidStateError(state, e);\r\n        }\r\n    };\r\n    return ProtocolUtils;\r\n}());\n\nexport { ProtocolUtils };\n//# sourceMappingURL=ProtocolUtils.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { Separators, APP_METADATA } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * APP_METADATA Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: appmetadata-<environment>-<client_id>\r\n *\r\n * Value:\r\n * {\r\n *      clientId: client ID of the application\r\n *      environment: entity that issued the token, represented as a full host\r\n *      familyId: Family ID identifier, '1' represents Microsoft Family\r\n * }\r\n */\r\nvar AppMetadataEntity = /** @class */ (function () {\r\n    function AppMetadataEntity() {\r\n    }\r\n    /**\r\n     * Generate AppMetadata Cache Key as per the schema: appmetadata-<environment>-<client_id>\r\n     */\r\n    AppMetadataEntity.prototype.generateAppMetadataKey = function () {\r\n        return AppMetadataEntity.generateAppMetadataCacheKey(this.environment, this.clientId);\r\n    };\r\n    /**\r\n     * Generate AppMetadata Cache Key\r\n     */\r\n    AppMetadataEntity.generateAppMetadataCacheKey = function (environment, clientId) {\r\n        var appMetaDataKeyArray = [\r\n            APP_METADATA,\r\n            environment,\r\n            clientId,\r\n        ];\r\n        return appMetaDataKeyArray.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n    };\r\n    /**\r\n     * Creates AppMetadataEntity\r\n     * @param clientId\r\n     * @param environment\r\n     * @param familyId\r\n     */\r\n    AppMetadataEntity.createAppMetadataEntity = function (clientId, environment, familyId) {\r\n        var appMetadata = new AppMetadataEntity();\r\n        appMetadata.clientId = clientId;\r\n        appMetadata.environment = environment;\r\n        if (familyId) {\r\n            appMetadata.familyId = familyId;\r\n        }\r\n        return appMetadata;\r\n    };\r\n    /**\r\n     * Validates an entity: checks for all expected params\r\n     * @param entity\r\n     */\r\n    AppMetadataEntity.isAppMetadataEntity = function (key, entity) {\r\n        if (!entity) {\r\n            return false;\r\n        }\r\n        return (key.indexOf(APP_METADATA) === 0 &&\r\n            entity.hasOwnProperty(\"clientId\") &&\r\n            entity.hasOwnProperty(\"environment\"));\r\n    };\r\n    return AppMetadataEntity;\r\n}());\n\nexport { AppMetadataEntity };\n//# sourceMappingURL=AppMetadataEntity.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class instance helps track the memory changes facilitating\r\n * decisions to read from and write to the persistent cache\r\n */ var TokenCacheContext = /** @class */ (function () {\r\n    function TokenCacheContext(tokenCache, hasChanged) {\r\n        this.cache = tokenCache;\r\n        this.hasChanged = hasChanged;\r\n    }\r\n    Object.defineProperty(TokenCacheContext.prototype, \"cacheHasChanged\", {\r\n        /**\r\n         * boolean which indicates the changes in cache\r\n         */\r\n        get: function () {\r\n            return this.hasChanged;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(TokenCacheContext.prototype, \"tokenCache\", {\r\n        /**\r\n         * function to retrieve the token cache\r\n         */\r\n        get: function () {\r\n            return this.cache;\r\n        },\r\n        enumerable: false,\r\n        configurable: true\r\n    });\r\n    return TokenCacheContext;\r\n}());\n\nexport { TokenCacheContext };\n//# sourceMappingURL=TokenCacheContext.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientInfo } from '../account/ClientInfo.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from '../cache/entities/AccountEntity.js';\nimport { AuthorityType } from '../authority/AuthorityType.js';\nimport { IdTokenEntity } from '../cache/entities/IdTokenEntity.js';\nimport { AccessTokenEntity } from '../cache/entities/AccessTokenEntity.js';\nimport { RefreshTokenEntity } from '../cache/entities/RefreshTokenEntity.js';\nimport { InteractionRequiredAuthError } from '../error/InteractionRequiredAuthError.js';\nimport { CacheRecord } from '../cache/entities/CacheRecord.js';\nimport { ProtocolUtils } from '../utils/ProtocolUtils.js';\nimport { Constants, AuthenticationScheme, THE_FAMILY_ID } from '../utils/Constants.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { AppMetadataEntity } from '../cache/entities/AppMetadataEntity.js';\nimport { TokenCacheContext } from '../cache/persistence/TokenCacheContext.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class that handles response parsing.\r\n */\r\nvar ResponseHandler = /** @class */ (function () {\r\n    function ResponseHandler(clientId, cacheStorage, cryptoObj, logger, serializableCache, persistencePlugin) {\r\n        this.clientId = clientId;\r\n        this.cacheStorage = cacheStorage;\r\n        this.cryptoObj = cryptoObj;\r\n        this.logger = logger;\r\n        this.serializableCache = serializableCache;\r\n        this.persistencePlugin = persistencePlugin;\r\n    }\r\n    /**\r\n     * Function which validates server authorization code response.\r\n     * @param serverResponseHash\r\n     * @param cachedState\r\n     * @param cryptoObj\r\n     */\r\n    ResponseHandler.prototype.validateServerAuthorizationCodeResponse = function (serverResponseHash, cachedState, cryptoObj) {\r\n        if (!serverResponseHash.state || !cachedState) {\r\n            throw !serverResponseHash.state ? ClientAuthError.createStateNotFoundError(\"Server State\") : ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n        }\r\n        if (decodeURIComponent(serverResponseHash.state) !== decodeURIComponent(cachedState)) {\r\n            throw ClientAuthError.createStateMismatchError();\r\n        }\r\n        // Check for error\r\n        if (serverResponseHash.error || serverResponseHash.error_description || serverResponseHash.suberror) {\r\n            if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponseHash.error, serverResponseHash.error_description, serverResponseHash.suberror)) {\r\n                throw new InteractionRequiredAuthError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n            }\r\n            throw new ServerError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n        }\r\n        if (serverResponseHash.client_info) {\r\n            buildClientInfo(serverResponseHash.client_info, cryptoObj);\r\n        }\r\n    };\r\n    /**\r\n     * Function which validates server authorization token response.\r\n     * @param serverResponse\r\n     */\r\n    ResponseHandler.prototype.validateTokenResponse = function (serverResponse) {\r\n        // Check for error\r\n        if (serverResponse.error || serverResponse.error_description || serverResponse.suberror) {\r\n            if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n                throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror);\r\n            }\r\n            var errString = serverResponse.error_codes + \" - [\" + serverResponse.timestamp + \"]: \" + serverResponse.error_description + \" - Correlation ID: \" + serverResponse.correlation_id + \" - Trace ID: \" + serverResponse.trace_id;\r\n            throw new ServerError(serverResponse.error, errString, serverResponse.suberror);\r\n        }\r\n    };\r\n    /**\r\n     * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\r\n     * @param serverTokenResponse\r\n     * @param authority\r\n     */\r\n    ResponseHandler.prototype.handleServerTokenResponse = function (serverTokenResponse, authority, reqTimestamp, request, authCodePayload, oboAssertion, handlingRefreshTokenResponse) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var idTokenObj, requestStateObj, cacheRecord, cacheContext, key, account;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        if (serverTokenResponse.id_token) {\r\n                            idTokenObj = new AuthToken(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj);\r\n                            // token nonce check (TODO: Add a warning if no nonce is given?)\r\n                            if (authCodePayload && !StringUtils.isEmpty(authCodePayload.nonce)) {\r\n                                if (idTokenObj.claims.nonce !== authCodePayload.nonce) {\r\n                                    throw ClientAuthError.createNonceMismatchError();\r\n                                }\r\n                            }\r\n                        }\r\n                        // generate homeAccountId\r\n                        this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenObj);\r\n                        if (!!authCodePayload && !!authCodePayload.state) {\r\n                            requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\r\n                        }\r\n                        cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, idTokenObj, request.scopes, oboAssertion, authCodePayload);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, , 4, 7]);\r\n                        if (!(this.persistencePlugin && this.serializableCache)) return [3 /*break*/, 3];\r\n                        this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\r\n                        cacheContext = new TokenCacheContext(this.serializableCache, true);\r\n                        return [4 /*yield*/, this.persistencePlugin.beforeCacheAccess(cacheContext)];\r\n                    case 2:\r\n                        _a.sent();\r\n                        _a.label = 3;\r\n                    case 3:\r\n                        /*\r\n                         * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\r\n                         * If not present, we should return null, as it's the case that another application called removeAccount in between\r\n                         * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal.\r\n                         */\r\n                        if (handlingRefreshTokenResponse && cacheRecord.account) {\r\n                            key = cacheRecord.account.generateAccountKey();\r\n                            account = this.cacheStorage.getAccount(key);\r\n                            if (!account) {\r\n                                this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\r\n                                return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj)];\r\n                            }\r\n                        }\r\n                        this.cacheStorage.saveCacheRecord(cacheRecord);\r\n                        return [3 /*break*/, 7];\r\n                    case 4:\r\n                        if (!(this.persistencePlugin && this.serializableCache && cacheContext)) return [3 /*break*/, 6];\r\n                        this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\r\n                        return [4 /*yield*/, this.persistencePlugin.afterCacheAccess(cacheContext)];\r\n                    case 5:\r\n                        _a.sent();\r\n                        _a.label = 6;\r\n                    case 6: return [7 /*endfinally*/];\r\n                    case 7: return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj)];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Generates CacheRecord\r\n     * @param serverTokenResponse\r\n     * @param idTokenObj\r\n     * @param authority\r\n     */\r\n    ResponseHandler.prototype.generateCacheRecord = function (serverTokenResponse, authority, reqTimestamp, idTokenObj, requestScopes, oboAssertion, authCodePayload) {\r\n        var env = authority.getPreferredCache();\r\n        if (StringUtils.isEmpty(env)) {\r\n            throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n        }\r\n        // IdToken: non AAD scenarios can have empty realm\r\n        var cachedIdToken;\r\n        var cachedAccount;\r\n        if (!StringUtils.isEmpty(serverTokenResponse.id_token) && !!idTokenObj) {\r\n            cachedIdToken = IdTokenEntity.createIdTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.id_token || Constants.EMPTY_STRING, this.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING, oboAssertion);\r\n            cachedAccount = this.generateAccountEntity(serverTokenResponse, idTokenObj, authority, oboAssertion, authCodePayload);\r\n        }\r\n        // AccessToken\r\n        var cachedAccessToken = null;\r\n        if (!StringUtils.isEmpty(serverTokenResponse.access_token)) {\r\n            // If scopes not returned in server response, use request scopes\r\n            var responseScopes = serverTokenResponse.scope ? ScopeSet.fromString(serverTokenResponse.scope) : new ScopeSet(requestScopes || []);\r\n            /*\r\n             * Use timestamp calculated before request\r\n             * Server may return timestamps as strings, parse to numbers if so.\r\n             */\r\n            var expiresIn = (typeof serverTokenResponse.expires_in === \"string\" ? parseInt(serverTokenResponse.expires_in, 10) : serverTokenResponse.expires_in) || 0;\r\n            var extExpiresIn = (typeof serverTokenResponse.ext_expires_in === \"string\" ? parseInt(serverTokenResponse.ext_expires_in, 10) : serverTokenResponse.ext_expires_in) || 0;\r\n            var refreshIn = (typeof serverTokenResponse.refresh_in === \"string\" ? parseInt(serverTokenResponse.refresh_in, 10) : serverTokenResponse.refresh_in) || undefined;\r\n            var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n            var extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\r\n            var refreshOnSeconds = refreshIn && refreshIn > 0 ? reqTimestamp + refreshIn : undefined;\r\n            // non AAD scenarios can have empty realm\r\n            cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.access_token || Constants.EMPTY_STRING, this.clientId, idTokenObj ? idTokenObj.claims.tid || Constants.EMPTY_STRING : authority.tenant, responseScopes.printScopes(), tokenExpirationSeconds, extendedTokenExpirationSeconds, this.cryptoObj, refreshOnSeconds, serverTokenResponse.token_type, oboAssertion);\r\n        }\r\n        // refreshToken\r\n        var cachedRefreshToken = null;\r\n        if (!StringUtils.isEmpty(serverTokenResponse.refresh_token)) {\r\n            cachedRefreshToken = RefreshTokenEntity.createRefreshTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.refresh_token || Constants.EMPTY_STRING, this.clientId, serverTokenResponse.foci, oboAssertion);\r\n        }\r\n        // appMetadata\r\n        var cachedAppMetadata = null;\r\n        if (!StringUtils.isEmpty(serverTokenResponse.foci)) {\r\n            cachedAppMetadata = AppMetadataEntity.createAppMetadataEntity(this.clientId, env, serverTokenResponse.foci);\r\n        }\r\n        return new CacheRecord(cachedAccount, cachedIdToken, cachedAccessToken, cachedRefreshToken, cachedAppMetadata);\r\n    };\r\n    /**\r\n     * Generate Account\r\n     * @param serverTokenResponse\r\n     * @param idToken\r\n     * @param authority\r\n     */\r\n    ResponseHandler.prototype.generateAccountEntity = function (serverTokenResponse, idToken, authority, oboAssertion, authCodePayload) {\r\n        var authorityType = authority.authorityType;\r\n        var cloudGraphHostName = authCodePayload ? authCodePayload.cloud_graph_host_name : \"\";\r\n        var msGraphhost = authCodePayload ? authCodePayload.msgraph_host : \"\";\r\n        // ADFS does not require client_info in the response\r\n        if (authorityType === AuthorityType.Adfs) {\r\n            this.logger.verbose(\"Authority type is ADFS, creating ADFS account\");\r\n            return AccountEntity.createGenericAccount(authority, this.homeAccountIdentifier, idToken, oboAssertion, cloudGraphHostName, msGraphhost);\r\n        }\r\n        // This fallback applies to B2C as well as they fall under an AAD account type.\r\n        if (StringUtils.isEmpty(serverTokenResponse.client_info) && authority.protocolMode === \"AAD\") {\r\n            throw ClientAuthError.createClientInfoEmptyError();\r\n        }\r\n        return serverTokenResponse.client_info ?\r\n            AccountEntity.createAccount(serverTokenResponse.client_info, this.homeAccountIdentifier, authority, idToken, oboAssertion, cloudGraphHostName, msGraphhost) :\r\n            AccountEntity.createGenericAccount(authority, this.homeAccountIdentifier, idToken, oboAssertion, cloudGraphHostName, msGraphhost);\r\n    };\r\n    /**\r\n     * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\r\n     *\r\n     * Optionally takes a state string that is set as-is in the response.\r\n     *\r\n     * @param cacheRecord\r\n     * @param idTokenObj\r\n     * @param fromTokenCache\r\n     * @param stateString\r\n     */\r\n    ResponseHandler.generateAuthenticationResult = function (cryptoObj, authority, cacheRecord, fromTokenCache, request, idTokenObj, requestState) {\r\n        var _a, _b, _c;\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var accessToken, responseScopes, expiresOn, extExpiresOn, familyId, popTokenGenerator, uid, tid;\r\n            return __generator(this, function (_d) {\r\n                switch (_d.label) {\r\n                    case 0:\r\n                        accessToken = \"\";\r\n                        responseScopes = [];\r\n                        expiresOn = null;\r\n                        familyId = Constants.EMPTY_STRING;\r\n                        if (!cacheRecord.accessToken) return [3 /*break*/, 4];\r\n                        if (!(cacheRecord.accessToken.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n                        popTokenGenerator = new PopTokenGenerator(cryptoObj);\r\n                        return [4 /*yield*/, popTokenGenerator.signPopToken(cacheRecord.accessToken.secret, request)];\r\n                    case 1:\r\n                        accessToken = _d.sent();\r\n                        return [3 /*break*/, 3];\r\n                    case 2:\r\n                        accessToken = cacheRecord.accessToken.secret;\r\n                        _d.label = 3;\r\n                    case 3:\r\n                        responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n                        expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n                        extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n                        _d.label = 4;\r\n                    case 4:\r\n                        if (cacheRecord.appMetadata) {\r\n                            familyId = cacheRecord.appMetadata.familyId === THE_FAMILY_ID ? THE_FAMILY_ID : Constants.EMPTY_STRING;\r\n                        }\r\n                        uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n                        tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n                        return [2 /*return*/, {\r\n                                authority: authority.canonicalAuthority,\r\n                                uniqueId: uid,\r\n                                tenantId: tid,\r\n                                scopes: responseScopes,\r\n                                account: cacheRecord.account ? cacheRecord.account.getAccountInfo() : null,\r\n                                idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n                                idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n                                accessToken: accessToken,\r\n                                fromCache: fromTokenCache,\r\n                                expiresOn: expiresOn,\r\n                                extExpiresOn: extExpiresOn,\r\n                                familyId: familyId,\r\n                                tokenType: ((_a = cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n                                state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,\r\n                                cloudGraphHostName: ((_b = cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n                                msGraphHost: ((_c = cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING\r\n                            }];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return ResponseHandler;\r\n}());\n\nexport { ResponseHandler };\n//# sourceMappingURL=ResponseHandler.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign, __spreadArrays } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { PromptValue, Separators, GrantType, AuthenticationScheme } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { AccountEntity } from '../cache/entities/AccountEntity.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { buildClientInfoFromHomeAccountId, buildClientInfo } from '../account/ClientInfo.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Authorization Code client\r\n */\r\nvar AuthorizationCodeClient = /** @class */ (function (_super) {\r\n    __extends(AuthorizationCodeClient, _super);\r\n    function AuthorizationCodeClient(configuration) {\r\n        return _super.call(this, configuration) || this;\r\n    }\r\n    /**\r\n     * Creates the URL of the authorization request letting the user input credentials and consent to the\r\n     * application. The URL target the /authorize endpoint of the authority configured in the\r\n     * application object.\r\n     *\r\n     * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\r\n     * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\r\n     * acquireToken(AuthorizationCodeRequest)\r\n     * @param request\r\n     */\r\n    AuthorizationCodeClient.prototype.getAuthCodeUrl = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var queryString;\r\n            return __generator(this, function (_a) {\r\n                queryString = this.createAuthCodeUrlQueryString(request);\r\n                return [2 /*return*/, UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\r\n     * authorization_code_grant\r\n     * @param request\r\n     */\r\n    AuthorizationCodeClient.prototype.acquireToken = function (request, authCodePayload) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var reqTimestamp, response, responseHandler;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.info(\"in acquireToken call\");\r\n                        if (!request || StringUtils.isEmpty(request.code)) {\r\n                            throw ClientAuthError.createTokenRequestCannotBeMadeError();\r\n                        }\r\n                        reqTimestamp = TimeUtils.nowSeconds();\r\n                        return [4 /*yield*/, this.executeTokenRequest(this.authority, request)];\r\n                    case 1:\r\n                        response = _a.sent();\r\n                        responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n                        // Validate response. This function throws a server error if an error is returned by the server.\r\n                        responseHandler.validateTokenResponse(response.body);\r\n                        return [4 /*yield*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, authCodePayload)];\r\n                    case 2: return [2 /*return*/, _a.sent()];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Handles the hash fragment response from public client code request. Returns a code response used by\r\n     * the client to exchange for a token in acquireToken.\r\n     * @param hashFragment\r\n     */\r\n    AuthorizationCodeClient.prototype.handleFragmentResponse = function (hashFragment, cachedState) {\r\n        // Handle responses.\r\n        var responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\r\n        // Deserialize hash fragment response parameters.\r\n        var hashUrlString = new UrlString(hashFragment);\r\n        // Deserialize hash fragment response parameters.\r\n        var serverParams = UrlString.getDeserializedHash(hashUrlString.getHash());\r\n        // Get code response\r\n        responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState, this.cryptoUtils);\r\n        // throw when there is no auth code in the response\r\n        if (!serverParams.code) {\r\n            throw ClientAuthError.createNoAuthCodeInServerResponseError();\r\n        }\r\n        return __assign(__assign({}, serverParams), { \r\n            // Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod\r\n            code: serverParams.code });\r\n    };\r\n    /**\r\n     * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n     * Default behaviour is to redirect the user to `window.location.href`.\r\n     * @param authorityUri\r\n     */\r\n    AuthorizationCodeClient.prototype.getLogoutUri = function (logoutRequest) {\r\n        // Throw error if logoutRequest is null/undefined\r\n        if (!logoutRequest) {\r\n            throw ClientConfigurationError.createEmptyLogoutRequestError();\r\n        }\r\n        if (logoutRequest.account) {\r\n            // Clear given account.\r\n            this.cacheManager.removeAccount(AccountEntity.generateAccountCacheKey(logoutRequest.account));\r\n        }\r\n        else {\r\n            // Clear all accounts and tokens\r\n            this.cacheManager.clear();\r\n        }\r\n        var queryString = this.createLogoutUrlQueryString(logoutRequest);\r\n        // Construct logout URI.\r\n        return UrlString.appendQueryString(this.authority.endSessionEndpoint, queryString);\r\n    };\r\n    /**\r\n     * Executes POST request to token endpoint\r\n     * @param authority\r\n     * @param request\r\n     */\r\n    AuthorizationCodeClient.prototype.executeTokenRequest = function (authority, request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var thumbprint, requestBody, queryParameters, ccsCredential, clientInfo, headers, endpoint;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        thumbprint = {\r\n                            clientId: this.config.authOptions.clientId,\r\n                            authority: authority.canonicalAuthority,\r\n                            scopes: request.scopes\r\n                        };\r\n                        return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n                    case 1:\r\n                        requestBody = _a.sent();\r\n                        queryParameters = this.createTokenQueryParameters(request);\r\n                        ccsCredential = undefined;\r\n                        if (request.clientInfo) {\r\n                            try {\r\n                                clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n                                ccsCredential = {\r\n                                    credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n                                    type: CcsCredentialType.HOME_ACCOUNT_ID\r\n                                };\r\n                            }\r\n                            catch (e) {\r\n                                this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n                            }\r\n                        }\r\n                        headers = this.createTokenRequestHeaders(ccsCredential || request.ccsCredential);\r\n                        endpoint = StringUtils.isEmpty(queryParameters) ? authority.tokenEndpoint : authority.tokenEndpoint + \"?\" + queryParameters;\r\n                        return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Creates query string for the /token request\r\n     * @param request\r\n     */\r\n    AuthorizationCodeClient.prototype.createTokenQueryParameters = function (request) {\r\n        var parameterBuilder = new RequestParameterBuilder();\r\n        if (request.tokenQueryParameters) {\r\n            parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n        }\r\n        return parameterBuilder.createQueryString();\r\n    };\r\n    /**\r\n     * Generates a map for all the params to be sent to the service\r\n     * @param request\r\n     */\r\n    AuthorizationCodeClient.prototype.createTokenRequestBody = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var parameterBuilder, clientAssertion, popTokenGenerator, cnfString, correlationId, ccsCred, clientInfo, clientInfo;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        parameterBuilder = new RequestParameterBuilder();\r\n                        parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n                        // validate the redirectUri (to be a non null value)\r\n                        parameterBuilder.addRedirectUri(request.redirectUri);\r\n                        // Add scope array, parameter builder will add default scopes and dedupe\r\n                        parameterBuilder.addScopes(request.scopes);\r\n                        // add code: user set, not validated\r\n                        parameterBuilder.addAuthorizationCode(request.code);\r\n                        // Add library metadata\r\n                        parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n                        parameterBuilder.addThrottling();\r\n                        if (this.serverTelemetryManager) {\r\n                            parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n                        }\r\n                        // add code_verifier if passed\r\n                        if (request.codeVerifier) {\r\n                            parameterBuilder.addCodeVerifier(request.codeVerifier);\r\n                        }\r\n                        if (this.config.clientCredentials.clientSecret) {\r\n                            parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n                        }\r\n                        if (this.config.clientCredentials.clientAssertion) {\r\n                            clientAssertion = this.config.clientCredentials.clientAssertion;\r\n                            parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n                            parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n                        }\r\n                        parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\r\n                        parameterBuilder.addClientInfo();\r\n                        if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n                        popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n                        return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n                    case 1:\r\n                        cnfString = _a.sent();\r\n                        parameterBuilder.addPopToken(cnfString);\r\n                        _a.label = 2;\r\n                    case 2:\r\n                        correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n                        parameterBuilder.addCorrelationId(correlationId);\r\n                        if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n                            parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n                        }\r\n                        ccsCred = undefined;\r\n                        if (request.clientInfo) {\r\n                            try {\r\n                                clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n                                ccsCred = {\r\n                                    credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n                                    type: CcsCredentialType.HOME_ACCOUNT_ID\r\n                                };\r\n                            }\r\n                            catch (e) {\r\n                                this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n                            }\r\n                        }\r\n                        else {\r\n                            ccsCred = request.ccsCredential;\r\n                        }\r\n                        // Adds these as parameters in the request instead of headers to prevent CORS preflight request\r\n                        if (this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n                            switch (ccsCred.type) {\r\n                                case CcsCredentialType.HOME_ACCOUNT_ID:\r\n                                    try {\r\n                                        clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n                                        parameterBuilder.addCcsOid(clientInfo);\r\n                                    }\r\n                                    catch (e) {\r\n                                        this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n                                    }\r\n                                    break;\r\n                                case CcsCredentialType.UPN:\r\n                                    parameterBuilder.addCcsUpn(ccsCred.credential);\r\n                                    break;\r\n                            }\r\n                        }\r\n                        return [2 /*return*/, parameterBuilder.createQueryString()];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\r\n     * @param request\r\n     */\r\n    AuthorizationCodeClient.prototype.createAuthCodeUrlQueryString = function (request) {\r\n        var parameterBuilder = new RequestParameterBuilder();\r\n        parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n        var requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);\r\n        parameterBuilder.addScopes(requestScopes);\r\n        // validate the redirectUri (to be a non null value)\r\n        parameterBuilder.addRedirectUri(request.redirectUri);\r\n        // generate the correlationId if not set by the user and add\r\n        var correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n        parameterBuilder.addCorrelationId(correlationId);\r\n        // add response_mode. If not passed in it defaults to query.\r\n        parameterBuilder.addResponseMode(request.responseMode);\r\n        // add response_type = code\r\n        parameterBuilder.addResponseTypeCode();\r\n        // add library info parameters\r\n        parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n        // add client_info=1\r\n        parameterBuilder.addClientInfo();\r\n        if (request.codeChallenge && request.codeChallengeMethod) {\r\n            parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\r\n        }\r\n        if (request.prompt) {\r\n            parameterBuilder.addPrompt(request.prompt);\r\n        }\r\n        if (request.domainHint) {\r\n            parameterBuilder.addDomainHint(request.domainHint);\r\n        }\r\n        // Add sid or loginHint with preference for sid -> loginHint -> username of AccountInfo object\r\n        if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\r\n            // AAD will throw if prompt=select_account is passed with an account hint\r\n            if (request.sid && request.prompt === PromptValue.NONE) {\r\n                // SessionID is only used in silent calls\r\n                this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\r\n                parameterBuilder.addSid(request.sid);\r\n            }\r\n            else if (request.account) {\r\n                var accountSid = this.extractAccountSid(request.account);\r\n                // If account and loginHint are provided, we will check account first for sid before adding loginHint\r\n                if (accountSid && request.prompt === PromptValue.NONE) {\r\n                    // SessionId is only used in silent calls\r\n                    this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\r\n                    parameterBuilder.addSid(accountSid);\r\n                    try {\r\n                        var clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n                        parameterBuilder.addCcsOid(clientInfo);\r\n                    }\r\n                    catch (e) {\r\n                        this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n                    }\r\n                }\r\n                else if (request.loginHint) {\r\n                    this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\r\n                    parameterBuilder.addLoginHint(request.loginHint);\r\n                    parameterBuilder.addCcsUpn(request.loginHint);\r\n                }\r\n                else if (request.account.username) {\r\n                    // Fallback to account username if provided\r\n                    this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\r\n                    parameterBuilder.addLoginHint(request.account.username);\r\n                    try {\r\n                        var clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n                        parameterBuilder.addCcsOid(clientInfo);\r\n                    }\r\n                    catch (e) {\r\n                        this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n                    }\r\n                }\r\n            }\r\n            else if (request.loginHint) {\r\n                this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\r\n                parameterBuilder.addLoginHint(request.loginHint);\r\n                parameterBuilder.addCcsUpn(request.loginHint);\r\n            }\r\n        }\r\n        else {\r\n            this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\r\n        }\r\n        if (request.nonce) {\r\n            parameterBuilder.addNonce(request.nonce);\r\n        }\r\n        if (request.state) {\r\n            parameterBuilder.addState(request.state);\r\n        }\r\n        if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n            parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n        }\r\n        if (request.extraQueryParameters) {\r\n            parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n        }\r\n        return parameterBuilder.createQueryString();\r\n    };\r\n    /**\r\n     * This API validates the `EndSessionRequest` and creates a URL\r\n     * @param request\r\n     */\r\n    AuthorizationCodeClient.prototype.createLogoutUrlQueryString = function (request) {\r\n        var parameterBuilder = new RequestParameterBuilder();\r\n        if (request.postLogoutRedirectUri) {\r\n            parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\r\n        }\r\n        if (request.correlationId) {\r\n            parameterBuilder.addCorrelationId(request.correlationId);\r\n        }\r\n        if (request.idTokenHint) {\r\n            parameterBuilder.addIdTokenHint(request.idTokenHint);\r\n        }\r\n        return parameterBuilder.createQueryString();\r\n    };\r\n    /**\r\n     * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\r\n     * @param account\r\n     */\r\n    AuthorizationCodeClient.prototype.extractAccountSid = function (account) {\r\n        if (account.idTokenClaims) {\r\n            var tokenClaims = account.idTokenClaims;\r\n            return tokenClaims.sid || null;\r\n        }\r\n        return null;\r\n    };\r\n    return AuthorizationCodeClient;\r\n}(BaseClient));\n\nexport { AuthorizationCodeClient };\n//# sourceMappingURL=AuthorizationCodeClient.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { AuthenticationScheme, GrantType, Errors } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError, ClientAuthErrorMessage } from '../error/ClientAuthError.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 refresh token client\r\n */\r\nvar RefreshTokenClient = /** @class */ (function (_super) {\r\n    __extends(RefreshTokenClient, _super);\r\n    function RefreshTokenClient(configuration) {\r\n        return _super.call(this, configuration) || this;\r\n    }\r\n    RefreshTokenClient.prototype.acquireToken = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var reqTimestamp, response, responseHandler;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        reqTimestamp = TimeUtils.nowSeconds();\r\n                        return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n                    case 1:\r\n                        response = _a.sent();\r\n                        responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n                        responseHandler.validateTokenResponse(response.body);\r\n                        return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true)];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Gets cached refresh token and attaches to request, then calls acquireToken API\r\n     * @param request\r\n     */\r\n    RefreshTokenClient.prototype.acquireTokenByRefreshToken = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var isFOCI, noFamilyRTInCache, clientMismatchErrorWithFamilyRT;\r\n            return __generator(this, function (_a) {\r\n                // Cannot renew token if no request object is given.\r\n                if (!request) {\r\n                    throw ClientConfigurationError.createEmptyTokenRequestError();\r\n                }\r\n                // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n                if (!request.account) {\r\n                    throw ClientAuthError.createNoAccountInSilentRequestError();\r\n                }\r\n                isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment, this.config.authOptions.clientId);\r\n                // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\r\n                if (isFOCI) {\r\n                    try {\r\n                        return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, true)];\r\n                    }\r\n                    catch (e) {\r\n                        noFamilyRTInCache = e instanceof ClientAuthError && e.errorCode === ClientAuthErrorMessage.noTokensFoundError.code;\r\n                        clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\r\n                        // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\r\n                        if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\r\n                            return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n                            // throw in all other cases\r\n                        }\r\n                        else {\r\n                            throw e;\r\n                        }\r\n                    }\r\n                }\r\n                // fall back to application refresh token acquisition\r\n                return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\r\n     * @param request\r\n     */\r\n    RefreshTokenClient.prototype.acquireTokenWithCachedRefreshToken = function (request, foci) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var refreshToken, refreshTokenRequest;\r\n            return __generator(this, function (_a) {\r\n                refreshToken = this.cacheManager.readRefreshTokenFromCache(this.config.authOptions.clientId, request.account, foci);\r\n                // no refresh Token\r\n                if (!refreshToken) {\r\n                    throw ClientAuthError.createNoTokensFoundError();\r\n                }\r\n                refreshTokenRequest = __assign(__assign({}, request), { refreshToken: refreshToken.secret, authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER, ccsCredential: {\r\n                        credential: request.account.homeAccountId,\r\n                        type: CcsCredentialType.HOME_ACCOUNT_ID\r\n                    } });\r\n                return [2 /*return*/, this.acquireToken(refreshTokenRequest)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Constructs the network message and makes a NW call to the underlying secure token service\r\n     * @param request\r\n     * @param authority\r\n     */\r\n    RefreshTokenClient.prototype.executeTokenRequest = function (request, authority) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var requestBody, queryParameters, headers, thumbprint, endpoint;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0: return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n                    case 1:\r\n                        requestBody = _a.sent();\r\n                        queryParameters = this.createTokenQueryParameters(request);\r\n                        headers = this.createTokenRequestHeaders(request.ccsCredential);\r\n                        thumbprint = {\r\n                            clientId: this.config.authOptions.clientId,\r\n                            authority: authority.canonicalAuthority,\r\n                            scopes: request.scopes\r\n                        };\r\n                        endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParameters);\r\n                        return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Creates query string for the /token request\r\n     * @param request\r\n     */\r\n    RefreshTokenClient.prototype.createTokenQueryParameters = function (request) {\r\n        var parameterBuilder = new RequestParameterBuilder();\r\n        if (request.tokenQueryParameters) {\r\n            parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n        }\r\n        return parameterBuilder.createQueryString();\r\n    };\r\n    /**\r\n     * Helper function to create the token request body\r\n     * @param request\r\n     */\r\n    RefreshTokenClient.prototype.createTokenRequestBody = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var parameterBuilder, correlationId, clientAssertion, popTokenGenerator, _a, _b, clientInfo;\r\n            return __generator(this, function (_c) {\r\n                switch (_c.label) {\r\n                    case 0:\r\n                        parameterBuilder = new RequestParameterBuilder();\r\n                        parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n                        parameterBuilder.addScopes(request.scopes);\r\n                        parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\r\n                        parameterBuilder.addClientInfo();\r\n                        parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n                        parameterBuilder.addThrottling();\r\n                        if (this.serverTelemetryManager) {\r\n                            parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n                        }\r\n                        correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n                        parameterBuilder.addCorrelationId(correlationId);\r\n                        parameterBuilder.addRefreshToken(request.refreshToken);\r\n                        if (this.config.clientCredentials.clientSecret) {\r\n                            parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n                        }\r\n                        if (this.config.clientCredentials.clientAssertion) {\r\n                            clientAssertion = this.config.clientCredentials.clientAssertion;\r\n                            parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n                            parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n                        }\r\n                        if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n                        popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n                        _b = (_a = parameterBuilder).addPopToken;\r\n                        return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n                    case 1:\r\n                        _b.apply(_a, [_c.sent()]);\r\n                        _c.label = 2;\r\n                    case 2:\r\n                        if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n                            parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n                        }\r\n                        if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\r\n                            switch (request.ccsCredential.type) {\r\n                                case CcsCredentialType.HOME_ACCOUNT_ID:\r\n                                    try {\r\n                                        clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\r\n                                        parameterBuilder.addCcsOid(clientInfo);\r\n                                    }\r\n                                    catch (e) {\r\n                                        this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n                                    }\r\n                                    break;\r\n                                case CcsCredentialType.UPN:\r\n                                    parameterBuilder.addCcsUpn(request.ccsCredential.credential);\r\n                                    break;\r\n                            }\r\n                        }\r\n                        return [2 /*return*/, parameterBuilder.createQueryString()];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return RefreshTokenClient;\r\n}(BaseClient));\n\nexport { RefreshTokenClient };\n//# sourceMappingURL=RefreshTokenClient.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { RefreshTokenClient } from './RefreshTokenClient.js';\nimport { ClientAuthError, ClientAuthErrorMessage } from '../error/ClientAuthError.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { CacheOutcome, AuthenticationScheme } from '../utils/Constants.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentFlowClient = /** @class */ (function (_super) {\r\n    __extends(SilentFlowClient, _super);\r\n    function SilentFlowClient(configuration) {\r\n        return _super.call(this, configuration) || this;\r\n    }\r\n    /**\r\n     * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\r\n     * the given token and returns the renewed token\r\n     * @param request\r\n     */\r\n    SilentFlowClient.prototype.acquireToken = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var e_1, refreshTokenClient;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        _a.trys.push([0, 2, , 3]);\r\n                        return [4 /*yield*/, this.acquireCachedToken(request)];\r\n                    case 1: return [2 /*return*/, _a.sent()];\r\n                    case 2:\r\n                        e_1 = _a.sent();\r\n                        if (e_1 instanceof ClientAuthError && e_1.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {\r\n                            refreshTokenClient = new RefreshTokenClient(this.config);\r\n                            return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(request)];\r\n                        }\r\n                        else {\r\n                            throw e_1;\r\n                        }\r\n                    case 3: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Retrieves token from cache or throws an error if it must be refreshed.\r\n     * @param request\r\n     */\r\n    SilentFlowClient.prototype.acquireCachedToken = function (request) {\r\n        var _a, _b, _c, _d;\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var requestScopes, environment, authScheme, cacheRecord;\r\n            return __generator(this, function (_e) {\r\n                switch (_e.label) {\r\n                    case 0:\r\n                        // Cannot renew token if no request object is given.\r\n                        if (!request) {\r\n                            throw ClientConfigurationError.createEmptyTokenRequestError();\r\n                        }\r\n                        // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n                        if (!request.account) {\r\n                            throw ClientAuthError.createNoAccountInSilentRequestError();\r\n                        }\r\n                        requestScopes = new ScopeSet(request.scopes || []);\r\n                        environment = request.authority || this.authority.getPreferredCache();\r\n                        authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\r\n                        cacheRecord = this.cacheManager.readCacheRecord(request.account, this.config.authOptions.clientId, requestScopes, environment, authScheme);\r\n                        if (request.forceRefresh) {\r\n                            // Must refresh due to present force_refresh flag.\r\n                            (_a = this.serverTelemetryManager) === null || _a === void 0 ? void 0 : _a.setCacheOutcome(CacheOutcome.FORCE_REFRESH);\r\n                            throw ClientAuthError.createRefreshRequiredError();\r\n                        }\r\n                        else if (!cacheRecord.accessToken) {\r\n                            // Must refresh due to non-existent access_token.\r\n                            (_b = this.serverTelemetryManager) === null || _b === void 0 ? void 0 : _b.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);\r\n                            throw ClientAuthError.createRefreshRequiredError();\r\n                        }\r\n                        else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||\r\n                            TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n                            // Must refresh due to expired access_token.\r\n                            (_c = this.serverTelemetryManager) === null || _c === void 0 ? void 0 : _c.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);\r\n                            throw ClientAuthError.createRefreshRequiredError();\r\n                        }\r\n                        else if (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {\r\n                            // Must refresh due to the refresh_in value.\r\n                            (_d = this.serverTelemetryManager) === null || _d === void 0 ? void 0 : _d.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);\r\n                            throw ClientAuthError.createRefreshRequiredError();\r\n                        }\r\n                        else if (!StringUtils.isEmptyObj(request.claims)) {\r\n                            // Must refresh due to request parameters.\r\n                            throw ClientAuthError.createRefreshRequiredError();\r\n                        }\r\n                        if (this.config.serverTelemetryManager) {\r\n                            this.config.serverTelemetryManager.incrementCacheHits();\r\n                        }\r\n                        return [4 /*yield*/, this.generateResultFromCacheRecord(cacheRecord, request)];\r\n                    case 1: return [2 /*return*/, _e.sent()];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Helper function to build response object from the CacheRecord\r\n     * @param cacheRecord\r\n     */\r\n    SilentFlowClient.prototype.generateResultFromCacheRecord = function (cacheRecord, request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var idTokenObj;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        if (cacheRecord.idToken) {\r\n                            idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);\r\n                        }\r\n                        return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj)];\r\n                    case 1: return [2 /*return*/, _a.sent()];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return SilentFlowClient;\r\n}(BaseClient));\n\nexport { SilentFlowClient };\n//# sourceMappingURL=SilentFlowClient.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryEntity = /** @class */ (function () {\r\n    function ServerTelemetryEntity() {\r\n        this.failedRequests = [];\r\n        this.errors = [];\r\n        this.cacheHits = 0;\r\n    }\r\n    /**\r\n     * validates if a given cache entry is \"Telemetry\", parses <key,value>\r\n     * @param key\r\n     * @param entity\r\n     */\r\n    ServerTelemetryEntity.isServerTelemetryEntity = function (key, entity) {\r\n        var validateKey = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\r\n        var validateEntity = true;\r\n        if (entity) {\r\n            validateEntity =\r\n                entity.hasOwnProperty(\"failedRequests\") &&\r\n                    entity.hasOwnProperty(\"errors\") &&\r\n                    entity.hasOwnProperty(\"cacheHits\");\r\n        }\r\n        return validateKey && validateEntity;\r\n    };\r\n    return ServerTelemetryEntity;\r\n}());\n\nexport { ServerTelemetryEntity };\n//# sourceMappingURL=ServerTelemetryEntity.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS, CacheOutcome, Constants, Separators } from '../../utils/Constants.js';\nimport { ServerTelemetryEntity } from '../../cache/entities/ServerTelemetryEntity.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryManager = /** @class */ (function () {\r\n    function ServerTelemetryManager(telemetryRequest, cacheManager) {\r\n        this.cacheOutcome = CacheOutcome.NO_CACHE_HIT;\r\n        this.cacheManager = cacheManager;\r\n        this.apiId = telemetryRequest.apiId;\r\n        this.correlationId = telemetryRequest.correlationId;\r\n        this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n        this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n        this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\r\n    }\r\n    /**\r\n     * API to add MSER Telemetry to request\r\n     */\r\n    ServerTelemetryManager.prototype.generateCurrentRequestHeaderValue = function () {\r\n        var request = \"\" + this.apiId + SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR + this.cacheOutcome;\r\n        var platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n        var regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n        var requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n        return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n    };\r\n    /**\r\n     * API to add MSER Telemetry for the last failed request\r\n     */\r\n    ServerTelemetryManager.prototype.generateLastRequestHeaderValue = function () {\r\n        var lastRequests = this.getLastRequests();\r\n        var maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n        var failedRequests = lastRequests.failedRequests.slice(0, 2 * maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n        var errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n        var errorCount = lastRequests.errors.length;\r\n        // Indicate whether this header contains all data or partial data\r\n        var overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n        var platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n        return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n    };\r\n    /**\r\n     * API to cache token failures for MSER data capture\r\n     * @param error\r\n     */\r\n    ServerTelemetryManager.prototype.cacheFailedRequest = function (error) {\r\n        var lastRequests = this.getLastRequests();\r\n        if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n            // Remove a cached error to make room, first in first out\r\n            lastRequests.failedRequests.shift(); // apiId\r\n            lastRequests.failedRequests.shift(); // correlationId\r\n            lastRequests.errors.shift();\r\n        }\r\n        lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n        if (!StringUtils.isEmpty(error.subError)) {\r\n            lastRequests.errors.push(error.subError);\r\n        }\r\n        else if (!StringUtils.isEmpty(error.errorCode)) {\r\n            lastRequests.errors.push(error.errorCode);\r\n        }\r\n        else if (!!error && error.toString()) {\r\n            lastRequests.errors.push(error.toString());\r\n        }\r\n        else {\r\n            lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n        }\r\n        this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n        return;\r\n    };\r\n    /**\r\n     * Update server telemetry cache entry by incrementing cache hit counter\r\n     */\r\n    ServerTelemetryManager.prototype.incrementCacheHits = function () {\r\n        var lastRequests = this.getLastRequests();\r\n        lastRequests.cacheHits += 1;\r\n        this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n        return lastRequests.cacheHits;\r\n    };\r\n    /**\r\n     * Get the server telemetry entity from cache or initialize a new one\r\n     */\r\n    ServerTelemetryManager.prototype.getLastRequests = function () {\r\n        var initialValue = new ServerTelemetryEntity();\r\n        var lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n        return lastRequests || initialValue;\r\n    };\r\n    /**\r\n     * Remove server telemetry cache entry\r\n     */\r\n    ServerTelemetryManager.prototype.clearTelemetryCache = function () {\r\n        var lastRequests = this.getLastRequests();\r\n        var numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n        var errorCount = lastRequests.errors.length;\r\n        if (numErrorsFlushed === errorCount) {\r\n            // All errors were sent on last request, clear Telemetry cache\r\n            this.cacheManager.removeItem(this.telemetryCacheKey);\r\n        }\r\n        else {\r\n            // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n            var serverTelemEntity = new ServerTelemetryEntity();\r\n            serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed * 2); // failedRequests contains 2 items for each error\r\n            serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\r\n            this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n        }\r\n    };\r\n    /**\r\n     * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n     * @param serverTelemetryEntity\r\n     */\r\n    ServerTelemetryManager.maxErrorsToSend = function (serverTelemetryEntity) {\r\n        var i;\r\n        var maxErrors = 0;\r\n        var dataSize = 0;\r\n        var errorCount = serverTelemetryEntity.errors.length;\r\n        for (i = 0; i < errorCount; i++) {\r\n            // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n            var apiId = serverTelemetryEntity.failedRequests[2 * i] || Constants.EMPTY_STRING;\r\n            var correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] || Constants.EMPTY_STRING;\r\n            var errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n            // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n            dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\r\n            if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n                // Adding this entry to the header would still keep header size below the limit\r\n                maxErrors += 1;\r\n            }\r\n            else {\r\n                break;\r\n            }\r\n        }\r\n        return maxErrors;\r\n    };\r\n    /**\r\n     * Get the region discovery fields\r\n     *\r\n     * @returns string\r\n     */\r\n    ServerTelemetryManager.prototype.getRegionDiscoveryFields = function () {\r\n        var regionDiscoveryFields = [];\r\n        regionDiscoveryFields.push(this.regionUsed || \"\");\r\n        regionDiscoveryFields.push(this.regionSource || \"\");\r\n        regionDiscoveryFields.push(this.regionOutcome || \"\");\r\n        return regionDiscoveryFields.join(\",\");\r\n    };\r\n    /**\r\n     * Update the region discovery metadata\r\n     *\r\n     * @param regionDiscoveryMetadata\r\n     * @returns void\r\n     */\r\n    ServerTelemetryManager.prototype.updateRegionDiscoveryMetadata = function (regionDiscoveryMetadata) {\r\n        this.regionUsed = regionDiscoveryMetadata.region_used;\r\n        this.regionSource = regionDiscoveryMetadata.region_source;\r\n        this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n    };\r\n    /**\r\n     * Set cache outcome\r\n     */\r\n    ServerTelemetryManager.prototype.setCacheOutcome = function (cacheOutcome) {\r\n        this.cacheOutcome = cacheOutcome;\r\n    };\r\n    return ServerTelemetryManager;\r\n}());\n\nexport { ServerTelemetryManager };\n//# sourceMappingURL=ServerTelemetryManager.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ThrottlingConstants } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingEntity = /** @class */ (function () {\r\n    function ThrottlingEntity() {\r\n    }\r\n    /**\r\n     * validates if a given cache entry is \"Throttling\", parses <key,value>\r\n     * @param key\r\n     * @param entity\r\n     */\r\n    ThrottlingEntity.isThrottlingEntity = function (key, entity) {\r\n        var validateKey = false;\r\n        if (key) {\r\n            validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\r\n        }\r\n        var validateEntity = true;\r\n        if (entity) {\r\n            validateEntity = entity.hasOwnProperty(\"throttleTime\");\r\n        }\r\n        return validateKey && validateEntity;\r\n    };\r\n    return ThrottlingEntity;\r\n}());\n\nexport { ThrottlingEntity };\n//# sourceMappingURL=ThrottlingEntity.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserConfigurationAuthErrorMessage = {\r\n    redirectUriNotSet: {\r\n        code: \"redirect_uri_empty\",\r\n        desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n    },\r\n    postLogoutUriNotSet: {\r\n        code: \"post_logout_uri_empty\",\r\n        desc: \"A post logout redirect has not been set.\"\r\n    },\r\n    storageNotSupportedError: {\r\n        code: \"storage_not_supported\",\r\n        desc: \"Given storage configuration option was not supported.\"\r\n    },\r\n    noRedirectCallbacksSet: {\r\n        code: \"no_redirect_callbacks\",\r\n        desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\r\n            \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n    },\r\n    invalidCallbackObject: {\r\n        code: \"invalid_callback_object\",\r\n        desc: \"The object passed for the callback was invalid. \" +\r\n            \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n    },\r\n    stubPcaInstanceCalled: {\r\n        code: \"stubbed_public_client_application_called\",\r\n        desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\r\n    },\r\n    inMemRedirectUnavailable: {\r\n        code: \"in_mem_redirect_unavailable\",\r\n        desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\r\n    }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserConfigurationAuthError = /** @class */ (function (_super) {\r\n    __extends(BrowserConfigurationAuthError, _super);\r\n    function BrowserConfigurationAuthError(errorCode, errorMessage) {\r\n        var _this = _super.call(this, errorCode, errorMessage) || this;\r\n        _this.name = \"BrowserConfigurationAuthError\";\r\n        Object.setPrototypeOf(_this, BrowserConfigurationAuthError.prototype);\r\n        return _this;\r\n    }\r\n    /**\r\n     * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n     */\r\n    BrowserConfigurationAuthError.createRedirectUriEmptyError = function () {\r\n        return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code, BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n     */\r\n    BrowserConfigurationAuthError.createPostLogoutRedirectUriEmptyError = function () {\r\n        return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code, BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\r\n    };\r\n    /**\r\n     * Creates error thrown when given storage location is not supported.\r\n     * @param givenStorageLocation\r\n     */\r\n    BrowserConfigurationAuthError.createStorageNotSupportedError = function (givenStorageLocation) {\r\n        return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc + \" Given Location: \" + givenStorageLocation);\r\n    };\r\n    /**\r\n     * Creates error thrown when callback object is invalid.\r\n     * @param callbackObject\r\n     */\r\n    BrowserConfigurationAuthError.createInvalidCallbackObjectError = function (callbackObject) {\r\n        return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.invalidCallbackObject.code, BrowserConfigurationAuthErrorMessage.invalidCallbackObject.desc + \" Given value for callback function: \" + callbackObject);\r\n    };\r\n    /**\r\n     * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\r\n     */\r\n    BrowserConfigurationAuthError.createRedirectCallbacksNotSetError = function () {\r\n        return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\r\n    };\r\n    /**\r\n     * Creates error thrown when the stub instance of PublicClientApplication is called.\r\n     */\r\n    BrowserConfigurationAuthError.createStubPcaInstanceCalledError = function () {\r\n        return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code, BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\r\n    };\r\n    /*\r\n     * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\r\n     */\r\n    BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError = function () {\r\n        return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\r\n    };\r\n    return BrowserConfigurationAuthError;\r\n}(AuthError));\n\nexport { BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage };\n//# sourceMappingURL=BrowserConfigurationAuthError.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n    function BrowserStorage(cacheLocation) {\r\n        this.validateWindowStorage(cacheLocation);\r\n        this.windowStorage = window[cacheLocation];\r\n    }\r\n    BrowserStorage.prototype.validateWindowStorage = function (cacheLocation) {\r\n        if (cacheLocation !== BrowserCacheLocation.LocalStorage && cacheLocation !== BrowserCacheLocation.SessionStorage) {\r\n            throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n        }\r\n        var storageSupported = !!window[cacheLocation];\r\n        if (!storageSupported) {\r\n            throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n        }\r\n    };\r\n    BrowserStorage.prototype.getItem = function (key) {\r\n        return this.windowStorage.getItem(key);\r\n    };\r\n    BrowserStorage.prototype.setItem = function (key, value) {\r\n        this.windowStorage.setItem(key, value);\r\n    };\r\n    BrowserStorage.prototype.removeItem = function (key) {\r\n        this.windowStorage.removeItem(key);\r\n    };\r\n    BrowserStorage.prototype.getKeys = function () {\r\n        return Object.keys(this.windowStorage);\r\n    };\r\n    BrowserStorage.prototype.containsKey = function (key) {\r\n        return this.windowStorage.hasOwnProperty(key);\r\n    };\r\n    return BrowserStorage;\r\n}());\n\nexport { BrowserStorage };\n//# sourceMappingURL=BrowserStorage.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n    function MemoryStorage() {\r\n        this.cache = new Map();\r\n    }\r\n    MemoryStorage.prototype.getItem = function (key) {\r\n        return this.cache.get(key) || null;\r\n    };\r\n    MemoryStorage.prototype.setItem = function (key, value) {\r\n        this.cache.set(key, value);\r\n    };\r\n    MemoryStorage.prototype.removeItem = function (key) {\r\n        this.cache.delete(key);\r\n    };\r\n    MemoryStorage.prototype.getKeys = function () {\r\n        var cacheKeys = [];\r\n        this.cache.forEach(function (value, key) {\r\n            cacheKeys.push(key);\r\n        });\r\n        return cacheKeys;\r\n    };\r\n    MemoryStorage.prototype.containsKey = function (key) {\r\n        return this.cache.has(key);\r\n    };\r\n    MemoryStorage.prototype.clear = function () {\r\n        this.cache.clear();\r\n    };\r\n    return MemoryStorage;\r\n}());\n\nexport { MemoryStorage };\n//# sourceMappingURL=MemoryStorage.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { StringUtils, ProtocolUtils, ClientAuthError, UrlString } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserProtocolUtils = /** @class */ (function () {\r\n    function BrowserProtocolUtils() {\r\n    }\r\n    /**\r\n     * Extracts the BrowserStateObject from the state string.\r\n     * @param browserCrypto\r\n     * @param state\r\n     */\r\n    BrowserProtocolUtils.extractBrowserRequestState = function (browserCrypto, state) {\r\n        if (StringUtils.isEmpty(state)) {\r\n            return null;\r\n        }\r\n        try {\r\n            var requestStateObj = ProtocolUtils.parseRequestState(browserCrypto, state);\r\n            return requestStateObj.libraryState.meta;\r\n        }\r\n        catch (e) {\r\n            throw ClientAuthError.createInvalidStateError(state, e);\r\n        }\r\n    };\r\n    /**\r\n     * Parses properties of server response from url hash\r\n     * @param locationHash Hash from url\r\n     */\r\n    BrowserProtocolUtils.parseServerResponseFromHash = function (locationHash) {\r\n        if (!locationHash) {\r\n            return {};\r\n        }\r\n        var hashUrlString = new UrlString(locationHash);\r\n        return UrlString.getDeserializedHash(hashUrlString.getHash());\r\n    };\r\n    return BrowserProtocolUtils;\r\n}());\n\nexport { BrowserProtocolUtils };\n//# sourceMappingURL=BrowserProtocolUtils.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends, __spread } from '../_virtual/_tslib.js';\nimport { DEFAULT_CRYPTO_IMPLEMENTATION, AccountEntity, CacheManager, IdTokenEntity, AccessTokenEntity, RefreshTokenEntity, AppMetadataEntity, ServerTelemetryEntity, AuthorityMetadataEntity, ThrottlingEntity, Constants, StringUtils, PersistentCacheKeys, ProtocolUtils } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserCacheLocation, TemporaryCacheKeys } from '../utils/BrowserConstants.js';\nimport { BrowserStorage } from './BrowserStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the cache storage interface for MSAL through browser local or session storage.\r\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\r\n * parameters such as state and nonce, generally.\r\n */\r\nvar BrowserCacheManager = /** @class */ (function (_super) {\r\n    __extends(BrowserCacheManager, _super);\r\n    function BrowserCacheManager(clientId, cacheConfig, cryptoImpl, logger) {\r\n        var _this = _super.call(this, clientId, cryptoImpl) || this;\r\n        // Cookie life calculation (hours * minutes * seconds * ms)\r\n        _this.COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\r\n        _this.cacheConfig = cacheConfig;\r\n        _this.logger = logger;\r\n        _this.internalStorage = new MemoryStorage();\r\n        _this.browserStorage = _this.setupBrowserStorage(_this.cacheConfig.cacheLocation);\r\n        _this.temporaryCacheStorage = _this.setupTemporaryCacheStorage(_this.cacheConfig.cacheLocation);\r\n        // Migrate any cache entries from older versions of MSAL.\r\n        _this.migrateCacheEntries();\r\n        return _this;\r\n    }\r\n    /**\r\n     * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\r\n     * @param cacheLocation\r\n     */\r\n    BrowserCacheManager.prototype.setupBrowserStorage = function (cacheLocation) {\r\n        switch (cacheLocation) {\r\n            case BrowserCacheLocation.LocalStorage:\r\n            case BrowserCacheLocation.SessionStorage:\r\n                try {\r\n                    // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n                    return new BrowserStorage(cacheLocation);\r\n                }\r\n                catch (e) {\r\n                    this.logger.verbose(e);\r\n                    break;\r\n                }\r\n        }\r\n        this.cacheConfig.cacheLocation = BrowserCacheLocation.MemoryStorage;\r\n        return new MemoryStorage();\r\n    };\r\n    /**\r\n     *\r\n     * @param cacheLocation\r\n     */\r\n    BrowserCacheManager.prototype.setupTemporaryCacheStorage = function (cacheLocation) {\r\n        switch (cacheLocation) {\r\n            case BrowserCacheLocation.LocalStorage:\r\n            case BrowserCacheLocation.SessionStorage:\r\n                try {\r\n                    // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n                    return new BrowserStorage(BrowserCacheLocation.SessionStorage);\r\n                }\r\n                catch (e) {\r\n                    this.logger.verbose(e);\r\n                    return this.internalStorage;\r\n                }\r\n            case BrowserCacheLocation.MemoryStorage:\r\n            default:\r\n                return this.internalStorage;\r\n        }\r\n    };\r\n    /**\r\n     * Migrate all old cache entries to new schema. No rollback supported.\r\n     * @param storeAuthStateInCookie\r\n     */\r\n    BrowserCacheManager.prototype.migrateCacheEntries = function () {\r\n        var _this = this;\r\n        var idTokenKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ID_TOKEN;\r\n        var clientInfoKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n        var errorKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR;\r\n        var errorDescKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR_DESC;\r\n        var idTokenValue = this.browserStorage.getItem(idTokenKey);\r\n        var clientInfoValue = this.browserStorage.getItem(clientInfoKey);\r\n        var errorValue = this.browserStorage.getItem(errorKey);\r\n        var errorDescValue = this.browserStorage.getItem(errorDescKey);\r\n        var values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n        var keysToMigrate = [PersistentCacheKeys.ID_TOKEN, PersistentCacheKeys.CLIENT_INFO, PersistentCacheKeys.ERROR, PersistentCacheKeys.ERROR_DESC];\r\n        keysToMigrate.forEach(function (cacheKey, index) { return _this.migrateCacheEntry(cacheKey, values[index]); });\r\n    };\r\n    /**\r\n     * Utility function to help with migration.\r\n     * @param newKey\r\n     * @param value\r\n     * @param storeAuthStateInCookie\r\n     */\r\n    BrowserCacheManager.prototype.migrateCacheEntry = function (newKey, value) {\r\n        if (value) {\r\n            this.setTemporaryCache(newKey, value, true);\r\n        }\r\n    };\r\n    /**\r\n     * Parses passed value as JSON object, JSON.parse() will throw an error.\r\n     * @param input\r\n     */\r\n    BrowserCacheManager.prototype.validateAndParseJson = function (jsonValue) {\r\n        try {\r\n            var parsedJson = JSON.parse(jsonValue);\r\n            /**\r\n             * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\r\n             * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\r\n             * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\r\n             *\r\n             */\r\n            return (parsedJson && typeof parsedJson === \"object\") ? parsedJson : null;\r\n        }\r\n        catch (error) {\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * fetches the entry from the browser storage based off the key\r\n     * @param key\r\n     */\r\n    BrowserCacheManager.prototype.getItem = function (key) {\r\n        return this.browserStorage.getItem(key);\r\n    };\r\n    /**\r\n     * sets the entry in the browser storage\r\n     * @param key\r\n     * @param value\r\n     */\r\n    BrowserCacheManager.prototype.setItem = function (key, value) {\r\n        this.browserStorage.setItem(key, value);\r\n    };\r\n    /**\r\n     * fetch the account entity from the platform cache\r\n     * @param accountKey\r\n     */\r\n    BrowserCacheManager.prototype.getAccount = function (accountKey) {\r\n        var account = this.getItem(accountKey);\r\n        if (!account) {\r\n            return null;\r\n        }\r\n        var parsedAccount = this.validateAndParseJson(account);\r\n        if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\r\n            return null;\r\n        }\r\n        return CacheManager.toObject(new AccountEntity(), parsedAccount);\r\n    };\r\n    /**\r\n     * set account entity in the platform cache\r\n     * @param key\r\n     * @param value\r\n     */\r\n    BrowserCacheManager.prototype.setAccount = function (account) {\r\n        this.logger.trace(\"BrowserCacheManager.setAccount called\");\r\n        var key = account.generateAccountKey();\r\n        this.setItem(key, JSON.stringify(account));\r\n    };\r\n    /**\r\n     * generates idToken entity from a string\r\n     * @param idTokenKey\r\n     */\r\n    BrowserCacheManager.prototype.getIdTokenCredential = function (idTokenKey) {\r\n        var value = this.getItem(idTokenKey);\r\n        if (!value) {\r\n            this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n            return null;\r\n        }\r\n        var parsedIdToken = this.validateAndParseJson(value);\r\n        if (!parsedIdToken || !IdTokenEntity.isIdTokenEntity(parsedIdToken)) {\r\n            this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n            return null;\r\n        }\r\n        this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\r\n        return CacheManager.toObject(new IdTokenEntity(), parsedIdToken);\r\n    };\r\n    /**\r\n     * set IdToken credential to the platform cache\r\n     * @param idToken\r\n     */\r\n    BrowserCacheManager.prototype.setIdTokenCredential = function (idToken) {\r\n        this.logger.trace(\"BrowserCacheManager.setIdTokenCredential called\");\r\n        var idTokenKey = idToken.generateCredentialKey();\r\n        this.setItem(idTokenKey, JSON.stringify(idToken));\r\n    };\r\n    /**\r\n     * generates accessToken entity from a string\r\n     * @param key\r\n     */\r\n    BrowserCacheManager.prototype.getAccessTokenCredential = function (accessTokenKey) {\r\n        var value = this.getItem(accessTokenKey);\r\n        if (!value) {\r\n            this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n            return null;\r\n        }\r\n        var parsedAccessToken = this.validateAndParseJson(value);\r\n        if (!parsedAccessToken || !AccessTokenEntity.isAccessTokenEntity(parsedAccessToken)) {\r\n            this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n            return null;\r\n        }\r\n        this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\r\n        return CacheManager.toObject(new AccessTokenEntity(), parsedAccessToken);\r\n    };\r\n    /**\r\n     * set accessToken credential to the platform cache\r\n     * @param accessToken\r\n     */\r\n    BrowserCacheManager.prototype.setAccessTokenCredential = function (accessToken) {\r\n        this.logger.trace(\"BrowserCacheManager.setAccessTokenCredential called\");\r\n        var accessTokenKey = accessToken.generateCredentialKey();\r\n        this.setItem(accessTokenKey, JSON.stringify(accessToken));\r\n    };\r\n    /**\r\n     * generates refreshToken entity from a string\r\n     * @param refreshTokenKey\r\n     */\r\n    BrowserCacheManager.prototype.getRefreshTokenCredential = function (refreshTokenKey) {\r\n        var value = this.getItem(refreshTokenKey);\r\n        if (!value) {\r\n            this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n            return null;\r\n        }\r\n        var parsedRefreshToken = this.validateAndParseJson(value);\r\n        if (!parsedRefreshToken || !RefreshTokenEntity.isRefreshTokenEntity(parsedRefreshToken)) {\r\n            this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n            return null;\r\n        }\r\n        this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\r\n        return CacheManager.toObject(new RefreshTokenEntity(), parsedRefreshToken);\r\n    };\r\n    /**\r\n     * set refreshToken credential to the platform cache\r\n     * @param refreshToken\r\n     */\r\n    BrowserCacheManager.prototype.setRefreshTokenCredential = function (refreshToken) {\r\n        this.logger.trace(\"BrowserCacheManager.setRefreshTokenCredential called\");\r\n        var refreshTokenKey = refreshToken.generateCredentialKey();\r\n        this.setItem(refreshTokenKey, JSON.stringify(refreshToken));\r\n    };\r\n    /**\r\n     * fetch appMetadata entity from the platform cache\r\n     * @param appMetadataKey\r\n     */\r\n    BrowserCacheManager.prototype.getAppMetadata = function (appMetadataKey) {\r\n        var value = this.getItem(appMetadataKey);\r\n        if (!value) {\r\n            this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n            return null;\r\n        }\r\n        var parsedMetadata = this.validateAndParseJson(value);\r\n        if (!parsedMetadata || !AppMetadataEntity.isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\r\n            this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n            return null;\r\n        }\r\n        this.logger.trace(\"BrowserCacheManager.getAppMetadata: cache hit\");\r\n        return CacheManager.toObject(new AppMetadataEntity(), parsedMetadata);\r\n    };\r\n    /**\r\n     * set appMetadata entity to the platform cache\r\n     * @param appMetadata\r\n     */\r\n    BrowserCacheManager.prototype.setAppMetadata = function (appMetadata) {\r\n        this.logger.trace(\"BrowserCacheManager.setAppMetadata called\");\r\n        var appMetadataKey = appMetadata.generateAppMetadataKey();\r\n        this.setItem(appMetadataKey, JSON.stringify(appMetadata));\r\n    };\r\n    /**\r\n     * fetch server telemetry entity from the platform cache\r\n     * @param serverTelemetryKey\r\n     */\r\n    BrowserCacheManager.prototype.getServerTelemetry = function (serverTelemetryKey) {\r\n        var value = this.getItem(serverTelemetryKey);\r\n        if (!value) {\r\n            this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n            return null;\r\n        }\r\n        var parsedMetadata = this.validateAndParseJson(value);\r\n        if (!parsedMetadata || !ServerTelemetryEntity.isServerTelemetryEntity(serverTelemetryKey, parsedMetadata)) {\r\n            this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n            return null;\r\n        }\r\n        this.logger.trace(\"BrowserCacheManager.getServerTelemetry: cache hit\");\r\n        return CacheManager.toObject(new ServerTelemetryEntity(), parsedMetadata);\r\n    };\r\n    /**\r\n     * set server telemetry entity to the platform cache\r\n     * @param serverTelemetryKey\r\n     * @param serverTelemetry\r\n     */\r\n    BrowserCacheManager.prototype.setServerTelemetry = function (serverTelemetryKey, serverTelemetry) {\r\n        this.logger.trace(\"BrowserCacheManager.setServerTelemetry called\");\r\n        this.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\r\n    };\r\n    /**\r\n     *\r\n     */\r\n    BrowserCacheManager.prototype.getAuthorityMetadata = function (key) {\r\n        var value = this.internalStorage.getItem(key);\r\n        if (!value) {\r\n            this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: called, no cache hit\");\r\n            return null;\r\n        }\r\n        var parsedMetadata = this.validateAndParseJson(value);\r\n        if (parsedMetadata && AuthorityMetadataEntity.isAuthorityMetadataEntity(key, parsedMetadata)) {\r\n            this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\r\n            return CacheManager.toObject(new AuthorityMetadataEntity(), parsedMetadata);\r\n        }\r\n        return null;\r\n    };\r\n    /**\r\n     *\r\n     */\r\n    BrowserCacheManager.prototype.getAuthorityMetadataKeys = function () {\r\n        var _this = this;\r\n        var allKeys = this.internalStorage.getKeys();\r\n        return allKeys.filter(function (key) {\r\n            return _this.isAuthorityMetadata(key);\r\n        });\r\n    };\r\n    /**\r\n     *\r\n     * @param entity\r\n     */\r\n    BrowserCacheManager.prototype.setAuthorityMetadata = function (key, entity) {\r\n        this.logger.trace(\"BrowserCacheManager.setAuthorityMetadata called\");\r\n        this.internalStorage.setItem(key, JSON.stringify(entity));\r\n    };\r\n    /**\r\n     * fetch throttling entity from the platform cache\r\n     * @param throttlingCacheKey\r\n     */\r\n    BrowserCacheManager.prototype.getThrottlingCache = function (throttlingCacheKey) {\r\n        var value = this.getItem(throttlingCacheKey);\r\n        if (!value) {\r\n            this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n            return null;\r\n        }\r\n        var parsedThrottlingCache = this.validateAndParseJson(value);\r\n        if (!parsedThrottlingCache || !ThrottlingEntity.isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\r\n            this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n            return null;\r\n        }\r\n        this.logger.trace(\"BrowserCacheManager.getThrottlingCache: cache hit\");\r\n        return CacheManager.toObject(new ThrottlingEntity(), parsedThrottlingCache);\r\n    };\r\n    /**\r\n     * set throttling entity to the platform cache\r\n     * @param throttlingCacheKey\r\n     * @param throttlingCache\r\n     */\r\n    BrowserCacheManager.prototype.setThrottlingCache = function (throttlingCacheKey, throttlingCache) {\r\n        this.logger.trace(\"BrowserCacheManager.setThrottlingCache called\");\r\n        this.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\r\n    };\r\n    /**\r\n     * Gets cache item with given key.\r\n     * Will retrieve from cookies if storeAuthStateInCookie is set to true.\r\n     * @param key\r\n     */\r\n    BrowserCacheManager.prototype.getTemporaryCache = function (cacheKey, generateKey) {\r\n        var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n        if (this.cacheConfig.storeAuthStateInCookie) {\r\n            var itemCookie = this.getItemCookie(key);\r\n            if (itemCookie) {\r\n                this.logger.trace(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\r\n                return itemCookie;\r\n            }\r\n        }\r\n        var value = this.temporaryCacheStorage.getItem(key);\r\n        if (!value) {\r\n            // If temp cache item not found in session/memory, check local storage for items set by old versions\r\n            if (this.cacheConfig.cacheLocation === BrowserCacheLocation.LocalStorage) {\r\n                var item = this.browserStorage.getItem(key);\r\n                if (item) {\r\n                    this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage\");\r\n                    return item;\r\n                }\r\n            }\r\n            this.logger.trace(\"BrowserCacheManager.getTemporaryCache: No cache item found in local storage\");\r\n            return null;\r\n        }\r\n        this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item returned\");\r\n        return value;\r\n    };\r\n    /**\r\n     * Sets the cache item with the key and value given.\r\n     * Stores in cookie if storeAuthStateInCookie is set to true.\r\n     * This can cause cookie overflow if used incorrectly.\r\n     * @param key\r\n     * @param value\r\n     */\r\n    BrowserCacheManager.prototype.setTemporaryCache = function (cacheKey, value, generateKey) {\r\n        var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n        this.temporaryCacheStorage.setItem(key, value);\r\n        if (this.cacheConfig.storeAuthStateInCookie) {\r\n            this.logger.trace(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\r\n            this.setItemCookie(key, value);\r\n        }\r\n    };\r\n    /**\r\n     * Removes the cache item with the given key.\r\n     * Will also clear the cookie item if storeAuthStateInCookie is set to true.\r\n     * @param key\r\n     */\r\n    BrowserCacheManager.prototype.removeItem = function (key) {\r\n        this.browserStorage.removeItem(key);\r\n        this.temporaryCacheStorage.removeItem(key);\r\n        if (this.cacheConfig.storeAuthStateInCookie) {\r\n            this.logger.trace(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\r\n            this.clearItemCookie(key);\r\n        }\r\n        return true;\r\n    };\r\n    /**\r\n     * Checks whether key is in cache.\r\n     * @param key\r\n     */\r\n    BrowserCacheManager.prototype.containsKey = function (key) {\r\n        return this.browserStorage.containsKey(key) || this.temporaryCacheStorage.containsKey(key);\r\n    };\r\n    /**\r\n     * Gets all keys in window.\r\n     */\r\n    BrowserCacheManager.prototype.getKeys = function () {\r\n        return __spread(this.browserStorage.getKeys(), this.temporaryCacheStorage.getKeys());\r\n    };\r\n    /**\r\n     * Clears all cache entries created by MSAL (except tokens).\r\n     */\r\n    BrowserCacheManager.prototype.clear = function () {\r\n        var _this = this;\r\n        this.removeAllAccounts();\r\n        this.removeAppMetadata();\r\n        this.getKeys().forEach(function (cacheKey) {\r\n            // Check if key contains msal prefix; For now, we are clearing all the cache items created by MSAL.js\r\n            if ((_this.browserStorage.containsKey(cacheKey) || _this.temporaryCacheStorage.containsKey(cacheKey)) && ((cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1) || (cacheKey.indexOf(_this.clientId) !== -1))) {\r\n                _this.removeItem(cacheKey);\r\n            }\r\n        });\r\n        this.internalStorage.clear();\r\n    };\r\n    /**\r\n     * Add value to cookies\r\n     * @param cookieName\r\n     * @param cookieValue\r\n     * @param expires\r\n     */\r\n    BrowserCacheManager.prototype.setItemCookie = function (cookieName, cookieValue, expires) {\r\n        var cookieStr = encodeURIComponent(cookieName) + \"=\" + encodeURIComponent(cookieValue) + \";path=/;\";\r\n        if (expires) {\r\n            var expireTime = this.getCookieExpirationTime(expires);\r\n            cookieStr += \"expires=\" + expireTime + \";\";\r\n        }\r\n        if (this.cacheConfig.secureCookies) {\r\n            cookieStr += \"Secure;\";\r\n        }\r\n        document.cookie = cookieStr;\r\n    };\r\n    /**\r\n     * Get one item by key from cookies\r\n     * @param cookieName\r\n     */\r\n    BrowserCacheManager.prototype.getItemCookie = function (cookieName) {\r\n        var name = encodeURIComponent(cookieName) + \"=\";\r\n        var cookieList = document.cookie.split(\";\");\r\n        for (var i = 0; i < cookieList.length; i++) {\r\n            var cookie = cookieList[i];\r\n            while (cookie.charAt(0) === \" \") {\r\n                cookie = cookie.substring(1);\r\n            }\r\n            if (cookie.indexOf(name) === 0) {\r\n                return decodeURIComponent(cookie.substring(name.length, cookie.length));\r\n            }\r\n        }\r\n        return \"\";\r\n    };\r\n    /**\r\n     * Clear all msal-related cookies currently set in the browser. Should only be used to clear temporary cache items.\r\n     */\r\n    BrowserCacheManager.prototype.clearMsalCookies = function () {\r\n        var _this = this;\r\n        var cookiePrefix = Constants.CACHE_PREFIX + \".\" + this.clientId;\r\n        var cookieList = document.cookie.split(\";\");\r\n        cookieList.forEach(function (cookie) {\r\n            while (cookie.charAt(0) === \" \") {\r\n                cookie = cookie.substring(1);\r\n            }\r\n            if (cookie.indexOf(cookiePrefix) === 0) {\r\n                var cookieKey = cookie.split(\"=\")[0];\r\n                _this.clearItemCookie(cookieKey);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Clear an item in the cookies by key\r\n     * @param cookieName\r\n     */\r\n    BrowserCacheManager.prototype.clearItemCookie = function (cookieName) {\r\n        this.setItemCookie(cookieName, \"\", -1);\r\n    };\r\n    /**\r\n     * Get cookie expiration time\r\n     * @param cookieLifeDays\r\n     */\r\n    BrowserCacheManager.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n        var today = new Date();\r\n        var expr = new Date(today.getTime() + cookieLifeDays * this.COOKIE_LIFE_MULTIPLIER);\r\n        return expr.toUTCString();\r\n    };\r\n    /**\r\n     * Gets the cache object referenced by the browser\r\n     */\r\n    BrowserCacheManager.prototype.getCache = function () {\r\n        return this.browserStorage;\r\n    };\r\n    /**\r\n     * interface compat, we cannot overwrite browser cache; Functionality is supported by individual entities in browser\r\n     */\r\n    BrowserCacheManager.prototype.setCache = function () {\r\n        // sets nothing\r\n    };\r\n    /**\r\n     * Prepend msal.<client-id> to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n     * @param key\r\n     * @param addInstanceId\r\n     */\r\n    BrowserCacheManager.prototype.generateCacheKey = function (key) {\r\n        var generatedKey = this.validateAndParseJson(key);\r\n        if (!generatedKey) {\r\n            if (StringUtils.startsWith(key, Constants.CACHE_PREFIX) || StringUtils.startsWith(key, PersistentCacheKeys.ADAL_ID_TOKEN)) {\r\n                return key;\r\n            }\r\n            return Constants.CACHE_PREFIX + \".\" + this.clientId + \".\" + key;\r\n        }\r\n        return JSON.stringify(key);\r\n    };\r\n    /**\r\n     * Create authorityKey to cache authority\r\n     * @param state\r\n     */\r\n    BrowserCacheManager.prototype.generateAuthorityKey = function (stateString) {\r\n        var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n        return this.generateCacheKey(TemporaryCacheKeys.AUTHORITY + \".\" + stateId);\r\n    };\r\n    /**\r\n     * Create Nonce key to cache nonce\r\n     * @param state\r\n     */\r\n    BrowserCacheManager.prototype.generateNonceKey = function (stateString) {\r\n        var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n        return this.generateCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN + \".\" + stateId);\r\n    };\r\n    /**\r\n     * Creates full cache key for the request state\r\n     * @param stateString State string for the request\r\n     */\r\n    BrowserCacheManager.prototype.generateStateKey = function (stateString) {\r\n        // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\r\n        var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n        return this.generateCacheKey(TemporaryCacheKeys.REQUEST_STATE + \".\" + stateId);\r\n    };\r\n    /**\r\n     * Gets the cached authority based on the cached state. Returns empty if no cached state found.\r\n     */\r\n    BrowserCacheManager.prototype.getCachedAuthority = function (cachedState) {\r\n        var stateCacheKey = this.generateStateKey(cachedState);\r\n        var state = this.getTemporaryCache(stateCacheKey);\r\n        if (!state) {\r\n            return null;\r\n        }\r\n        var authorityCacheKey = this.generateAuthorityKey(state);\r\n        return this.getTemporaryCache(authorityCacheKey);\r\n    };\r\n    /**\r\n     * Updates account, authority, and state in cache\r\n     * @param serverAuthenticationRequest\r\n     * @param account\r\n     */\r\n    BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance) {\r\n        this.logger.trace(\"BrowserCacheManager.updateCacheEntries called\");\r\n        // Cache the request state\r\n        var stateCacheKey = this.generateStateKey(state);\r\n        this.setTemporaryCache(stateCacheKey, state, false);\r\n        // Cache the nonce\r\n        var nonceCacheKey = this.generateNonceKey(state);\r\n        this.setTemporaryCache(nonceCacheKey, nonce, false);\r\n        // Cache authorityKey\r\n        var authorityCacheKey = this.generateAuthorityKey(state);\r\n        this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\r\n    };\r\n    /**\r\n     * Reset all temporary cache items\r\n     * @param state\r\n     */\r\n    BrowserCacheManager.prototype.resetRequestCache = function (state) {\r\n        var _this = this;\r\n        this.logger.trace(\"BrowserCacheManager.resetRequestCache called\");\r\n        // check state and remove associated cache items\r\n        if (!StringUtils.isEmpty(state)) {\r\n            this.getKeys().forEach(function (key) {\r\n                if (key.indexOf(state) !== -1) {\r\n                    _this.removeItem(key);\r\n                }\r\n            });\r\n        }\r\n        // delete generic interactive request parameters\r\n        if (state) {\r\n            this.removeItem(this.generateStateKey(state));\r\n            this.removeItem(this.generateNonceKey(state));\r\n            this.removeItem(this.generateAuthorityKey(state));\r\n        }\r\n        this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n        this.removeItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\r\n        this.removeItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n        this.removeItem(this.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n    };\r\n    /**\r\n     * Removes temporary cache for the provided state\r\n     * @param stateString\r\n     */\r\n    BrowserCacheManager.prototype.cleanRequestByState = function (stateString) {\r\n        this.logger.trace(\"BrowserCacheManager.cleanRequestByState called\");\r\n        // Interaction is completed - remove interaction status.\r\n        if (stateString) {\r\n            var stateKey = this.generateStateKey(stateString);\r\n            var cachedState = this.temporaryCacheStorage.getItem(stateKey);\r\n            this.logger.infoPii(\"BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: \" + cachedState);\r\n            this.resetRequestCache(cachedState || \"\");\r\n        }\r\n        this.clearMsalCookies();\r\n    };\r\n    /**\r\n     * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\r\n     * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\r\n     * @param interactionType\r\n     */\r\n    BrowserCacheManager.prototype.cleanRequestByInteractionType = function (interactionType) {\r\n        var _this = this;\r\n        this.logger.trace(\"BrowserCacheManager.cleanRequestByInteractionType called\");\r\n        // Loop through all keys to find state key\r\n        this.getKeys().forEach(function (key) {\r\n            // If this key is not the state key, move on\r\n            if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\r\n                return;\r\n            }\r\n            // Retrieve state value, return if not a valid value\r\n            var stateValue = _this.temporaryCacheStorage.getItem(key);\r\n            if (!stateValue) {\r\n                return;\r\n            }\r\n            // Extract state and ensure it matches given InteractionType, then clean request cache\r\n            var parsedState = BrowserProtocolUtils.extractBrowserRequestState(_this.cryptoImpl, stateValue);\r\n            if (parsedState && parsedState.interactionType === interactionType) {\r\n                _this.logger.infoPii(\"BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: \" + stateValue);\r\n                _this.resetRequestCache(stateValue);\r\n            }\r\n        });\r\n        this.clearMsalCookies();\r\n    };\r\n    BrowserCacheManager.prototype.cacheCodeRequest = function (authCodeRequest, browserCrypto) {\r\n        this.logger.trace(\"BrowserCacheManager.cacheCodeRequest called\");\r\n        var encodedValue = browserCrypto.base64Encode(JSON.stringify(authCodeRequest));\r\n        this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\r\n    };\r\n    /**\r\n     * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\r\n     */\r\n    BrowserCacheManager.prototype.getCachedRequest = function (state, browserCrypto) {\r\n        this.logger.trace(\"BrowserCacheManager.getCachedRequest called\");\r\n        // Get token request from cache and parse as TokenExchangeParameters.\r\n        var encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\r\n        if (!encodedTokenRequest) {\r\n            throw BrowserAuthError.createNoTokenRequestCacheError();\r\n        }\r\n        var parsedRequest = this.validateAndParseJson(browserCrypto.base64Decode(encodedTokenRequest));\r\n        if (!parsedRequest) {\r\n            throw BrowserAuthError.createUnableToParseTokenRequestCacheError();\r\n        }\r\n        this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n        // Get cached authority and use if no authority is cached with request.\r\n        if (StringUtils.isEmpty(parsedRequest.authority)) {\r\n            var authorityCacheKey = this.generateAuthorityKey(state);\r\n            var cachedAuthority = this.getTemporaryCache(authorityCacheKey);\r\n            if (!cachedAuthority) {\r\n                throw BrowserAuthError.createNoCachedAuthorityError();\r\n            }\r\n            parsedRequest.authority = cachedAuthority;\r\n        }\r\n        return parsedRequest;\r\n    };\r\n    return BrowserCacheManager;\r\n}(CacheManager));\r\nvar DEFAULT_BROWSER_CACHE_MANAGER = function (clientId, logger) {\r\n    var cacheOptions = {\r\n        cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n        storeAuthStateInCookie: false,\r\n        secureCookies: false\r\n    };\r\n    return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger);\r\n};\n\nexport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER };\n//# sourceMappingURL=BrowserCacheManager.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubbedNetworkModule = {\r\n    sendGetRequestAsync: function () {\r\n        var notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\r\n        return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n    },\r\n    sendPostRequestAsync: function () {\r\n        var notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\r\n        return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n    }\r\n};\n\nexport { StubbedNetworkModule };\n//# sourceMappingURL=INetworkModule.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nvar FetchClient = /** @class */ (function () {\r\n    function FetchClient() {\r\n    }\r\n    /**\r\n     * Fetch Client for REST endpoints - Get request\r\n     * @param url\r\n     * @param headers\r\n     * @param body\r\n     */\r\n    FetchClient.prototype.sendGetRequestAsync = function (url, options) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var response, e_1, _a;\r\n            return __generator(this, function (_b) {\r\n                switch (_b.label) {\r\n                    case 0:\r\n                        _b.trys.push([0, 2, , 3]);\r\n                        return [4 /*yield*/, fetch(url, {\r\n                                method: HTTP_REQUEST_TYPE.GET,\r\n                                headers: this.getFetchHeaders(options)\r\n                            })];\r\n                    case 1:\r\n                        response = _b.sent();\r\n                        return [3 /*break*/, 3];\r\n                    case 2:\r\n                        e_1 = _b.sent();\r\n                        if (window.navigator.onLine) {\r\n                            throw BrowserAuthError.createGetRequestFailedError(e_1, url);\r\n                        }\r\n                        else {\r\n                            throw BrowserAuthError.createNoNetworkConnectivityError();\r\n                        }\r\n                    case 3:\r\n                        _b.trys.push([3, 5, , 6]);\r\n                        _a = {\r\n                            headers: this.getHeaderDict(response.headers)\r\n                        };\r\n                        return [4 /*yield*/, response.json()];\r\n                    case 4: return [2 /*return*/, (_a.body = (_b.sent()),\r\n                            _a.status = response.status,\r\n                            _a)];\r\n                    case 5:\r\n                        _b.sent();\r\n                        throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n                    case 6: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Fetch Client for REST endpoints - Post request\r\n     * @param url\r\n     * @param headers\r\n     * @param body\r\n     */\r\n    FetchClient.prototype.sendPostRequestAsync = function (url, options) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var reqBody, response, e_3, _a;\r\n            return __generator(this, function (_b) {\r\n                switch (_b.label) {\r\n                    case 0:\r\n                        reqBody = (options && options.body) || \"\";\r\n                        _b.label = 1;\r\n                    case 1:\r\n                        _b.trys.push([1, 3, , 4]);\r\n                        return [4 /*yield*/, fetch(url, {\r\n                                method: HTTP_REQUEST_TYPE.POST,\r\n                                headers: this.getFetchHeaders(options),\r\n                                body: reqBody\r\n                            })];\r\n                    case 2:\r\n                        response = _b.sent();\r\n                        return [3 /*break*/, 4];\r\n                    case 3:\r\n                        e_3 = _b.sent();\r\n                        if (window.navigator.onLine) {\r\n                            throw BrowserAuthError.createPostRequestFailedError(e_3, url);\r\n                        }\r\n                        else {\r\n                            throw BrowserAuthError.createNoNetworkConnectivityError();\r\n                        }\r\n                    case 4:\r\n                        _b.trys.push([4, 6, , 7]);\r\n                        _a = {\r\n                            headers: this.getHeaderDict(response.headers)\r\n                        };\r\n                        return [4 /*yield*/, response.json()];\r\n                    case 5: return [2 /*return*/, (_a.body = (_b.sent()),\r\n                            _a.status = response.status,\r\n                            _a)];\r\n                    case 6:\r\n                        _b.sent();\r\n                        throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n                    case 7: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Get Fetch API Headers object from string map\r\n     * @param inputHeaders\r\n     */\r\n    FetchClient.prototype.getFetchHeaders = function (options) {\r\n        var headers = new Headers();\r\n        if (!(options && options.headers)) {\r\n            return headers;\r\n        }\r\n        var optionsHeaders = options.headers;\r\n        Object.keys(optionsHeaders).forEach(function (key) {\r\n            headers.append(key, optionsHeaders[key]);\r\n        });\r\n        return headers;\r\n    };\r\n    FetchClient.prototype.getHeaderDict = function (headers) {\r\n        var headerDict = {};\r\n        headers.forEach(function (value, key) {\r\n            headerDict[key] = value;\r\n        });\r\n        return headerDict;\r\n    };\r\n    return FetchClient;\r\n}());\n\nexport { FetchClient };\n//# sourceMappingURL=FetchClient.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This client implements the XMLHttpRequest class to send GET and POST requests.\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n    function XhrClient() {\r\n    }\r\n    /**\r\n     * XhrClient for REST endpoints - Get request\r\n     * @param url\r\n     * @param headers\r\n     * @param body\r\n     */\r\n    XhrClient.prototype.sendGetRequestAsync = function (url, options) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * XhrClient for REST endpoints - Post request\r\n     * @param url\r\n     * @param headers\r\n     * @param body\r\n     */\r\n    XhrClient.prototype.sendPostRequestAsync = function (url, options) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Helper for XhrClient requests.\r\n     * @param url\r\n     * @param method\r\n     * @param options\r\n     */\r\n    XhrClient.prototype.sendRequestAsync = function (url, method, options) {\r\n        var _this = this;\r\n        return new Promise(function (resolve, reject) {\r\n            var xhr = new XMLHttpRequest();\r\n            xhr.open(method, url, /* async: */ true);\r\n            _this.setXhrHeaders(xhr, options);\r\n            xhr.onload = function () {\r\n                if (xhr.status < 200 || xhr.status >= 300) {\r\n                    if (method === HTTP_REQUEST_TYPE.POST) {\r\n                        reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n                    }\r\n                    else {\r\n                        reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n                    }\r\n                }\r\n                try {\r\n                    var jsonResponse = JSON.parse(xhr.responseText);\r\n                    var networkResponse = {\r\n                        headers: _this.getHeaderDict(xhr),\r\n                        body: jsonResponse,\r\n                        status: xhr.status\r\n                    };\r\n                    resolve(networkResponse);\r\n                }\r\n                catch (e) {\r\n                    reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\r\n                }\r\n            };\r\n            xhr.onerror = function () {\r\n                if (window.navigator.onLine) {\r\n                    if (method === HTTP_REQUEST_TYPE.POST) {\r\n                        reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n                    }\r\n                    else {\r\n                        reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n                    }\r\n                }\r\n                else {\r\n                    reject(BrowserAuthError.createNoNetworkConnectivityError());\r\n                }\r\n            };\r\n            if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\r\n                xhr.send(options.body);\r\n            }\r\n            else if (method === HTTP_REQUEST_TYPE.GET) {\r\n                xhr.send();\r\n            }\r\n            else {\r\n                throw BrowserAuthError.createHttpMethodNotImplementedError(method);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Helper to set XHR headers for request.\r\n     * @param xhr\r\n     * @param options\r\n     */\r\n    XhrClient.prototype.setXhrHeaders = function (xhr, options) {\r\n        if (options && options.headers) {\r\n            var headers_1 = options.headers;\r\n            Object.keys(headers_1).forEach(function (key) {\r\n                xhr.setRequestHeader(key, headers_1[key]);\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * Gets a string map of the headers received in the response.\r\n     *\r\n     * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\r\n     * @param xhr\r\n     */\r\n    XhrClient.prototype.getHeaderDict = function (xhr) {\r\n        var headerString = xhr.getAllResponseHeaders();\r\n        var headerArr = headerString.trim().split(/[\\r\\n]+/);\r\n        var headerDict = {};\r\n        headerArr.forEach(function (value) {\r\n            var parts = value.split(\": \");\r\n            var headerName = parts.shift();\r\n            var headerVal = parts.join(\": \");\r\n            if (headerName && headerVal) {\r\n                headerDict[headerName] = headerVal;\r\n            }\r\n        });\r\n        return headerDict;\r\n    };\r\n    return XhrClient;\r\n}());\n\nexport { XhrClient };\n//# sourceMappingURL=XhrClient.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { Constants, UrlString } from '@azure/msal-common';\nimport { FetchClient } from '../network/FetchClient.js';\nimport { XhrClient } from '../network/XhrClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType, BrowserConstants } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for browser specific functions\r\n */\r\nvar BrowserUtils = /** @class */ (function () {\r\n    function BrowserUtils() {\r\n    }\r\n    // #region Window Navigation and URL management\r\n    /**\r\n     * Clears hash from window url.\r\n     */\r\n    BrowserUtils.clearHash = function (contentWindow) {\r\n        // Office.js sets history.replaceState to null\r\n        contentWindow.location.hash = Constants.EMPTY_STRING;\r\n        if (typeof contentWindow.history.replaceState === \"function\") {\r\n            // Full removes \"#\" from url\r\n            contentWindow.history.replaceState(null, Constants.EMPTY_STRING, \"\" + contentWindow.location.pathname + contentWindow.location.search);\r\n        }\r\n    };\r\n    /**\r\n     * Replaces current hash with hash from provided url\r\n     */\r\n    BrowserUtils.replaceHash = function (url) {\r\n        var urlParts = url.split(\"#\");\r\n        urlParts.shift(); // Remove part before the hash\r\n        window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : \"\";\r\n    };\r\n    /**\r\n     * Returns boolean of whether the current window is in an iframe or not.\r\n     */\r\n    BrowserUtils.isInIframe = function () {\r\n        return window.parent !== window;\r\n    };\r\n    // #endregion\r\n    /**\r\n     * Returns current window URL as redirect uri\r\n     */\r\n    BrowserUtils.getCurrentUri = function () {\r\n        return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n    };\r\n    /**\r\n     * Gets the homepage url for the current window location.\r\n     */\r\n    BrowserUtils.getHomepage = function () {\r\n        var currentUrl = new UrlString(window.location.href);\r\n        var urlComponents = currentUrl.getUrlComponents();\r\n        return urlComponents.Protocol + \"//\" + urlComponents.HostNameAndPort + \"/\";\r\n    };\r\n    /**\r\n     * Returns best compatible network client object.\r\n     */\r\n    BrowserUtils.getBrowserNetworkClient = function () {\r\n        if (window.fetch && window.Headers) {\r\n            return new FetchClient();\r\n        }\r\n        else {\r\n            return new XhrClient();\r\n        }\r\n    };\r\n    /**\r\n     * Throws error if we have completed an auth and are\r\n     * attempting another auth request inside an iframe.\r\n     */\r\n    BrowserUtils.blockReloadInHiddenIframes = function () {\r\n        var isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\r\n        // return an error if called from the hidden iframe created by the msal js silent calls\r\n        if (isResponseHash && BrowserUtils.isInIframe()) {\r\n            throw BrowserAuthError.createBlockReloadInHiddenIframeError();\r\n        }\r\n    };\r\n    /**\r\n     * Block redirect operations in iframes unless explicitly allowed\r\n     * @param interactionType Interaction type for the request\r\n     * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\r\n     */\r\n    BrowserUtils.blockRedirectInIframe = function (interactionType, allowRedirectInIframe) {\r\n        var isIframedApp = BrowserUtils.isInIframe();\r\n        if (interactionType === InteractionType.Redirect && isIframedApp && !allowRedirectInIframe) {\r\n            // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\r\n            throw BrowserAuthError.createRedirectInIframeError(isIframedApp);\r\n        }\r\n    };\r\n    /**\r\n     * Block redirectUri loaded in popup from calling AcquireToken APIs\r\n     */\r\n    BrowserUtils.blockAcquireTokenInPopups = function () {\r\n        // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\r\n        if (window.opener && window.opener !== window && typeof window.name === \"string\" && window.name.indexOf(BrowserConstants.POPUP_NAME_PREFIX + \".\") === 0) {\r\n            throw BrowserAuthError.createBlockAcquireTokenInPopupsError();\r\n        }\r\n    };\r\n    /**\r\n     * Throws error if token requests are made in non-browser environment\r\n     * @param isBrowserEnvironment Flag indicating if environment is a browser.\r\n     */\r\n    BrowserUtils.blockNonBrowserEnvironment = function (isBrowserEnvironment) {\r\n        if (!isBrowserEnvironment) {\r\n            throw BrowserAuthError.createNonBrowserEnvironmentError();\r\n        }\r\n    };\r\n    /**\r\n     * Returns boolean of whether current browser is an Internet Explorer or Edge browser.\r\n     */\r\n    BrowserUtils.detectIEOrEdge = function () {\r\n        var ua = window.navigator.userAgent;\r\n        var msie = ua.indexOf(\"MSIE \");\r\n        var msie11 = ua.indexOf(\"Trident/\");\r\n        var msedge = ua.indexOf(\"Edge/\");\r\n        var isIE = msie > 0 || msie11 > 0;\r\n        var isEdge = msedge > 0;\r\n        return isIE || isEdge;\r\n    };\r\n    return BrowserUtils;\r\n}());\n\nexport { BrowserUtils };\n//# sourceMappingURL=BrowserUtils.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NavigationClient = /** @class */ (function () {\r\n    function NavigationClient() {\r\n    }\r\n    /**\r\n     * Navigates to other pages within the same web application\r\n     * @param url\r\n     * @param options\r\n     */\r\n    NavigationClient.prototype.navigateInternal = function (url, options) {\r\n        return NavigationClient.defaultNavigateWindow(url, options);\r\n    };\r\n    /**\r\n     * Navigates to other pages outside the web application i.e. the Identity Provider\r\n     * @param url\r\n     * @param options\r\n     */\r\n    NavigationClient.prototype.navigateExternal = function (url, options) {\r\n        return NavigationClient.defaultNavigateWindow(url, options);\r\n    };\r\n    /**\r\n     * Default navigation implementation invoked by the internal and external functions\r\n     * @param url\r\n     * @param options\r\n     */\r\n    NavigationClient.defaultNavigateWindow = function (url, options) {\r\n        if (options.noHistory) {\r\n            window.location.replace(url);\r\n        }\r\n        else {\r\n            window.location.assign(url);\r\n        }\r\n        return new Promise(function (resolve) {\r\n            setTimeout(function () {\r\n                resolve(true);\r\n            }, options.timeout);\r\n        });\r\n    };\r\n    return NavigationClient;\r\n}());\n\nexport { NavigationClient };\n//# sourceMappingURL=NavigationClient.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __assign } from '../_virtual/_tslib.js';\nimport { DEFAULT_SYSTEM_OPTIONS, StubbedNetworkModule, Constants, ProtocolMode, LogLevel } from '@azure/msal-common';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { NavigationClient } from '../navigation/NavigationClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Default timeout for popup windows and iframes in milliseconds\r\nvar DEFAULT_POPUP_TIMEOUT_MS = 60000;\r\nvar DEFAULT_IFRAME_TIMEOUT_MS = 6000;\r\nvar DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param auth\r\n * @param cache\r\n * @param system\r\n *\r\n * @returns Configuration object\r\n */\r\nfunction buildConfiguration(_a, isBrowserEnvironment) {\r\n    var userInputAuth = _a.auth, userInputCache = _a.cache, userInputSystem = _a.system;\r\n    // Default auth options for browser\r\n    var DEFAULT_AUTH_OPTIONS = {\r\n        clientId: \"\",\r\n        authority: \"\" + Constants.DEFAULT_AUTHORITY,\r\n        knownAuthorities: [],\r\n        cloudDiscoveryMetadata: \"\",\r\n        authorityMetadata: \"\",\r\n        redirectUri: \"\",\r\n        postLogoutRedirectUri: \"\",\r\n        navigateToLoginRequestUrl: true,\r\n        clientCapabilities: [],\r\n        protocolMode: ProtocolMode.AAD\r\n    };\r\n    // Default cache options for browser\r\n    var DEFAULT_CACHE_OPTIONS = {\r\n        cacheLocation: BrowserCacheLocation.SessionStorage,\r\n        storeAuthStateInCookie: false,\r\n        secureCookies: false\r\n    };\r\n    // Default logger options for browser\r\n    var DEFAULT_LOGGER_OPTIONS = {\r\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n        loggerCallback: function () { },\r\n        logLevel: LogLevel.Info,\r\n        piiLoggingEnabled: false\r\n    };\r\n    // Default system options for browser\r\n    var DEFAULT_BROWSER_SYSTEM_OPTIONS = __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), { loggerOptions: DEFAULT_LOGGER_OPTIONS, networkClient: isBrowserEnvironment ? BrowserUtils.getBrowserNetworkClient() : StubbedNetworkModule, navigationClient: new NavigationClient(), loadFrameTimeout: 0, \r\n        // If loadFrameTimeout is provided, use that as default.\r\n        windowHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_POPUP_TIMEOUT_MS, iframeHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_IFRAME_TIMEOUT_MS, navigateFrameWait: isBrowserEnvironment && BrowserUtils.detectIEOrEdge() ? 500 : 0, redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS, asyncPopups: false, allowRedirectInIframe: false });\r\n    var overlayedConfig = {\r\n        auth: __assign(__assign({}, DEFAULT_AUTH_OPTIONS), userInputAuth),\r\n        cache: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userInputCache),\r\n        system: __assign(__assign({}, DEFAULT_BROWSER_SYSTEM_OPTIONS), userInputSystem)\r\n    };\r\n    return overlayedConfig;\r\n}\n\nexport { DEFAULT_IFRAME_TIMEOUT_MS, DEFAULT_POPUP_TIMEOUT_MS, DEFAULT_REDIRECT_TIMEOUT_MS, buildConfiguration };\n//# sourceMappingURL=Configuration.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ClientAuthError, AuthorityFactory } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nvar InteractionHandler = /** @class */ (function () {\r\n    function InteractionHandler(authCodeModule, storageImpl, authCodeRequest) {\r\n        this.authModule = authCodeModule;\r\n        this.browserStorage = storageImpl;\r\n        this.authCodeRequest = authCodeRequest;\r\n    }\r\n    /**\r\n     * Function to handle response parameters from hash.\r\n     * @param locationHash\r\n     */\r\n    InteractionHandler.prototype.handleCodeResponse = function (locationHash, state, authority, networkModule) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, tokenResponse;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        // Check that location hash isn't empty.\r\n                        if (StringUtils.isEmpty(locationHash)) {\r\n                            throw BrowserAuthError.createEmptyHashError(locationHash);\r\n                        }\r\n                        stateKey = this.browserStorage.generateStateKey(state);\r\n                        requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n                        if (!requestState) {\r\n                            throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n                        }\r\n                        authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n                        nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n                        cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n                        // Assign code to request\r\n                        this.authCodeRequest.code = authCodeResponse.code;\r\n                        if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n                        return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n                    case 1:\r\n                        _a.sent();\r\n                        _a.label = 2;\r\n                    case 2:\r\n                        authCodeResponse.nonce = cachedNonce || undefined;\r\n                        authCodeResponse.state = requestState;\r\n                        return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n                    case 3:\r\n                        tokenResponse = _a.sent();\r\n                        this.browserStorage.cleanRequestByState(state);\r\n                        return [2 /*return*/, tokenResponse];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var cloudInstanceAuthorityUri, cloudInstanceAuthority;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        cloudInstanceAuthorityUri = \"https://\" + cloudInstanceHostname + \"/\" + authority.tenant + \"/\";\r\n                        return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options)];\r\n                    case 1:\r\n                        cloudInstanceAuthority = _a.sent();\r\n                        this.authModule.updateAuthority(cloudInstanceAuthority);\r\n                        return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return InteractionHandler;\r\n}());\n\nexport { InteractionHandler };\n//# sourceMappingURL=InteractionHandler.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventType;\r\n(function (EventType) {\r\n    EventType[\"LOGIN_START\"] = \"msal:loginStart\";\r\n    EventType[\"LOGIN_SUCCESS\"] = \"msal:loginSuccess\";\r\n    EventType[\"LOGIN_FAILURE\"] = \"msal:loginFailure\";\r\n    EventType[\"ACQUIRE_TOKEN_START\"] = \"msal:acquireTokenStart\";\r\n    EventType[\"ACQUIRE_TOKEN_SUCCESS\"] = \"msal:acquireTokenSuccess\";\r\n    EventType[\"ACQUIRE_TOKEN_FAILURE\"] = \"msal:acquireTokenFailure\";\r\n    EventType[\"ACQUIRE_TOKEN_NETWORK_START\"] = \"msal:acquireTokenFromNetworkStart\";\r\n    EventType[\"SSO_SILENT_START\"] = \"msal:ssoSilentStart\";\r\n    EventType[\"SSO_SILENT_SUCCESS\"] = \"msal:ssoSilentSuccess\";\r\n    EventType[\"SSO_SILENT_FAILURE\"] = \"msal:ssoSilentFailure\";\r\n    EventType[\"HANDLE_REDIRECT_START\"] = \"msal:handleRedirectStart\";\r\n    EventType[\"HANDLE_REDIRECT_END\"] = \"msal:handleRedirectEnd\";\r\n    EventType[\"POPUP_OPENED\"] = \"msal:popupOpened\";\r\n    EventType[\"LOGOUT_START\"] = \"msal:logoutStart\";\r\n    EventType[\"LOGOUT_SUCCESS\"] = \"msal:logoutSuccess\";\r\n    EventType[\"LOGOUT_FAILURE\"] = \"msal:logoutFailure\";\r\n    EventType[\"LOGOUT_END\"] = \"msal:logoutEnd\";\r\n})(EventType || (EventType = {}));\n\nexport { EventType };\n//# sourceMappingURL=EventType.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ThrottlingUtils, ClientAuthError } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, BrowserConstants, ApiId } from '../utils/BrowserConstants.js';\nimport { InteractionHandler } from './InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectHandler = /** @class */ (function (_super) {\r\n    __extends(RedirectHandler, _super);\r\n    function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, browserCrypto) {\r\n        var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;\r\n        _this.browserCrypto = browserCrypto;\r\n        return _this;\r\n    }\r\n    /**\r\n     * Redirects window to given URL.\r\n     * @param urlNavigate\r\n     */\r\n    RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var navigationOptions, navigate;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n                        if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];\r\n                        // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n                        if (params.redirectStartPage) {\r\n                            this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set to true, caching start page\");\r\n                            this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n                        }\r\n                        // Set interaction status in the library.\r\n                        this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\r\n                        this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n                        this.authModule.logger.infoPii(\"RedirectHandler.initiateAuthRequest: Navigate to:\" + requestUrl);\r\n                        navigationOptions = {\r\n                            apiId: ApiId.acquireTokenRedirect,\r\n                            timeout: params.redirectTimeout,\r\n                            noHistory: false\r\n                        };\r\n                        if (!(typeof params.onRedirectNavigate === \"function\")) return [3 /*break*/, 4];\r\n                        this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n                        navigate = params.onRedirectNavigate(requestUrl);\r\n                        if (!(navigate !== false)) return [3 /*break*/, 2];\r\n                        this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n                        return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n                    case 1:\r\n                        _a.sent();\r\n                        return [2 /*return*/];\r\n                    case 2:\r\n                        this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n                        return [2 /*return*/];\r\n                    case 3: return [3 /*break*/, 6];\r\n                    case 4:\r\n                        // Navigate window to request URL\r\n                        this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n                        return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n                    case 5:\r\n                        _a.sent();\r\n                        return [2 /*return*/];\r\n                    case 6: return [3 /*break*/, 8];\r\n                    case 7:\r\n                        // Throw error if request URL is empty.\r\n                        this.authModule.logger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n                        throw BrowserAuthError.createEmptyNavigationUriError();\r\n                    case 8: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Handle authorization code response in the window.\r\n     * @param hash\r\n     */\r\n    RedirectHandler.prototype.handleCodeResponse = function (locationHash, state, authority, networkModule, clientId) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, tokenResponse;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.authModule.logger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n                        // Check that location hash isn't empty.\r\n                        if (StringUtils.isEmpty(locationHash)) {\r\n                            throw BrowserAuthError.createEmptyHashError(locationHash);\r\n                        }\r\n                        // Interaction is completed - remove interaction status.\r\n                        this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n                        stateKey = this.browserStorage.generateStateKey(state);\r\n                        requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n                        if (!requestState) {\r\n                            throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n                        }\r\n                        authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n                        nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n                        cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n                        // Assign code to request\r\n                        this.authCodeRequest.code = authCodeResponse.code;\r\n                        if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n                        return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n                    case 1:\r\n                        _a.sent();\r\n                        _a.label = 2;\r\n                    case 2:\r\n                        authCodeResponse.nonce = cachedNonce || undefined;\r\n                        authCodeResponse.state = requestState;\r\n                        // Remove throttle if it exists\r\n                        if (clientId) {\r\n                            ThrottlingUtils.removeThrottle(this.browserStorage, clientId, this.authCodeRequest.authority, this.authCodeRequest.scopes);\r\n                        }\r\n                        return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n                    case 3:\r\n                        tokenResponse = _a.sent();\r\n                        this.browserStorage.cleanRequestByState(state);\r\n                        return [2 /*return*/, tokenResponse];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return RedirectHandler;\r\n}(InteractionHandler));\n\nexport { RedirectHandler };\n//# sourceMappingURL=RedirectHandler.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { StringUtils, Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, BrowserConstants, InteractionType } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupUtils = /** @class */ (function () {\r\n    function PopupUtils(storageImpl, logger) {\r\n        this.browserStorage = storageImpl;\r\n        this.logger = logger;\r\n        // Properly sets this reference for the unload event.\r\n        this.unloadWindow = this.unloadWindow.bind(this);\r\n    }\r\n    /**\r\n     * @hidden\r\n     *\r\n     * Configures popup window for login.\r\n     *\r\n     * @param urlNavigate\r\n     * @param title\r\n     * @param popUpWidth\r\n     * @param popUpHeight\r\n     * @ignore\r\n     * @hidden\r\n     */\r\n    PopupUtils.prototype.openPopup = function (urlNavigate, popupName, popup) {\r\n        try {\r\n            var popupWindow = void 0;\r\n            // Popup window passed in, setting url to navigate to\r\n            if (popup) {\r\n                popupWindow = popup;\r\n                this.logger.verbosePii(\"Navigating popup window to: \" + urlNavigate);\r\n                popupWindow.location.assign(urlNavigate);\r\n            }\r\n            else if (typeof popup === \"undefined\") {\r\n                // Popup will be undefined if it was not passed in\r\n                this.logger.verbosePii(\"Opening popup window to: \" + urlNavigate);\r\n                popupWindow = PopupUtils.openSizedPopup(urlNavigate, popupName);\r\n            }\r\n            // Popup will be null if popups are blocked\r\n            if (!popupWindow) {\r\n                throw BrowserAuthError.createEmptyWindowCreatedError();\r\n            }\r\n            if (popupWindow.focus) {\r\n                popupWindow.focus();\r\n            }\r\n            this.currentWindow = popupWindow;\r\n            window.addEventListener(\"beforeunload\", this.unloadWindow);\r\n            return popupWindow;\r\n        }\r\n        catch (e) {\r\n            this.logger.error(\"error opening popup \" + e.message);\r\n            this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n            throw BrowserAuthError.createPopupWindowError(e.toString());\r\n        }\r\n    };\r\n    PopupUtils.openSizedPopup = function (urlNavigate, popupName) {\r\n        /**\r\n         * adding winLeft and winTop to account for dual monitor\r\n         * using screenLeft and screenTop for IE8 and earlier\r\n         */\r\n        var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n        var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n        /**\r\n         * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n         * using document.documentElement.clientWidth for IE8 and earlier\r\n         */\r\n        var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n        var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n        var left = Math.max(0, ((width / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\r\n        var top = Math.max(0, ((height / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\r\n        return window.open(urlNavigate, popupName, \"width=\" + BrowserConstants.POPUP_WIDTH + \", height=\" + BrowserConstants.POPUP_HEIGHT + \", top=\" + top + \", left=\" + left + \", scrollbars=yes\");\r\n    };\r\n    /**\r\n     * Event callback to unload main window.\r\n     */\r\n    PopupUtils.prototype.unloadWindow = function (e) {\r\n        this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\r\n        if (this.currentWindow) {\r\n            this.currentWindow.close();\r\n        }\r\n        // Guarantees browser unload will happen, so no other errors will be thrown.\r\n        e.preventDefault();\r\n    };\r\n    /**\r\n     * Closes popup, removes any state vars created during popup calls.\r\n     * @param popupWindow\r\n     */\r\n    PopupUtils.prototype.cleanPopup = function (popupWindow) {\r\n        if (popupWindow) {\r\n            // Close window.\r\n            popupWindow.close();\r\n        }\r\n        // Remove window unload function\r\n        window.removeEventListener(\"beforeunload\", this.unloadWindow);\r\n        // Interaction is completed - remove interaction status.\r\n        this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n    };\r\n    /**\r\n     * Monitors a window until it loads a url with the same origin.\r\n     * @param popupWindow - window that is being monitored\r\n     */\r\n    PopupUtils.prototype.monitorPopupForSameOrigin = function (popupWindow) {\r\n        var _this = this;\r\n        return new Promise(function (resolve, reject) {\r\n            var intervalId = setInterval(function () {\r\n                if (popupWindow.closed) {\r\n                    // Window is closed\r\n                    _this.cleanPopup();\r\n                    clearInterval(intervalId);\r\n                    reject(BrowserAuthError.createUserCancelledError());\r\n                    return;\r\n                }\r\n                var href = Constants.EMPTY_STRING;\r\n                try {\r\n                    /*\r\n                     * Will throw if cross origin,\r\n                     * which should be caught and ignored\r\n                     * since we need the interval to keep running while on STS UI.\r\n                     */\r\n                    href = popupWindow.location.href;\r\n                }\r\n                catch (e) { }\r\n                // Don't process blank pages or cross domain\r\n                if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n                    return;\r\n                }\r\n                clearInterval(intervalId);\r\n                resolve();\r\n            }, BrowserConstants.POLL_INTERVAL_MS);\r\n        });\r\n    };\r\n    /**\r\n     * Generates the name for the popup based on the client id and request\r\n     * @param clientId\r\n     * @param request\r\n     */\r\n    PopupUtils.generatePopupName = function (clientId, request) {\r\n        return BrowserConstants.POPUP_NAME_PREFIX + \".\" + clientId + \".\" + request.scopes.join(\"-\") + \".\" + request.authority + \".\" + request.correlationId;\r\n    };\r\n    /**\r\n     * Generates the name for the popup based on the client id and request for logouts\r\n     * @param clientId\r\n     * @param request\r\n     */\r\n    PopupUtils.generateLogoutPopupName = function (clientId, request) {\r\n        var homeAccountId = request.account && request.account.homeAccountId;\r\n        return BrowserConstants.POPUP_NAME_PREFIX + \".\" + clientId + \".\" + homeAccountId + \".\" + request.correlationId;\r\n    };\r\n    return PopupUtils;\r\n}());\n\nexport { PopupUtils };\n//# sourceMappingURL=PopupUtils.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, BrowserConstants } from '../utils/BrowserConstants.js';\nimport { PopupUtils } from '../utils/PopupUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the interaction handler base class for browsers. It is written specifically for handling\r\n * popup window scenarios. It includes functions for monitoring the popup window for a hash.\r\n */\r\nvar PopupHandler = /** @class */ (function (_super) {\r\n    __extends(PopupHandler, _super);\r\n    function PopupHandler(authCodeModule, storageImpl, authCodeRequest) {\r\n        var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;\r\n        // Properly sets this reference for the unload event.\r\n        _this.popupUtils = new PopupUtils(storageImpl, authCodeModule.logger);\r\n        return _this;\r\n    }\r\n    /**\r\n     * Opens a popup window with given request Url.\r\n     * @param requestUrl\r\n     */\r\n    PopupHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n        // Check that request url is not empty.\r\n        if (!StringUtils.isEmpty(requestUrl)) {\r\n            // Set interaction status in the library.\r\n            this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\r\n            this.authModule.logger.infoPii(\"Navigate to:\" + requestUrl);\r\n            // Open the popup window to requestUrl.\r\n            return this.popupUtils.openPopup(requestUrl, params.popupName, params.popup);\r\n        }\r\n        else {\r\n            // Throw error if request URL is empty.\r\n            this.authModule.logger.error(\"Navigate url is empty\");\r\n            throw BrowserAuthError.createEmptyNavigationUriError();\r\n        }\r\n    };\r\n    /**\r\n     * Monitors a window until it loads a url with a known hash, or hits a specified timeout.\r\n     * @param popupWindow - window that is being monitored\r\n     * @param timeout - milliseconds until timeout\r\n     */\r\n    PopupHandler.prototype.monitorPopupForHash = function (popupWindow) {\r\n        var _this = this;\r\n        return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(function () {\r\n            var contentHash = popupWindow.location.hash;\r\n            BrowserUtils.clearHash(popupWindow);\r\n            _this.popupUtils.cleanPopup(popupWindow);\r\n            if (!contentHash) {\r\n                throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);\r\n            }\r\n            if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n                return contentHash;\r\n            }\r\n            else {\r\n                throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();\r\n            }\r\n        });\r\n    };\r\n    return PopupHandler;\r\n}(InteractionHandler));\n\nexport { PopupHandler };\n//# sourceMappingURL=PopupHandler.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, Constants, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentHandler = /** @class */ (function (_super) {\r\n    __extends(SilentHandler, _super);\r\n    function SilentHandler(authCodeModule, storageImpl, authCodeRequest, navigateFrameWait) {\r\n        var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;\r\n        _this.navigateFrameWait = navigateFrameWait;\r\n        return _this;\r\n    }\r\n    /**\r\n     * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n     * @param urlNavigate\r\n     * @param userRequestScopes\r\n     */\r\n    SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var _a;\r\n            return __generator(this, function (_b) {\r\n                switch (_b.label) {\r\n                    case 0:\r\n                        if (StringUtils.isEmpty(requestUrl)) {\r\n                            // Throw error if request URL is empty.\r\n                            this.authModule.logger.info(\"Navigate url is empty\");\r\n                            throw BrowserAuthError.createEmptyNavigationUriError();\r\n                        }\r\n                        if (!this.navigateFrameWait) return [3 /*break*/, 2];\r\n                        return [4 /*yield*/, this.loadFrame(requestUrl)];\r\n                    case 1:\r\n                        _a = _b.sent();\r\n                        return [3 /*break*/, 3];\r\n                    case 2:\r\n                        _a = this.loadFrameSync(requestUrl);\r\n                        _b.label = 3;\r\n                    case 3: return [2 /*return*/, _a];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n     * @param iframe\r\n     * @param timeout\r\n     */\r\n    SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {\r\n        var _this = this;\r\n        return new Promise(function (resolve, reject) {\r\n            if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n                _this.authModule.logger.warning(\"system.loadFrameTimeout or system.iframeHashTimeout set to lower (\" + timeout + \"ms) than the default (\" + DEFAULT_IFRAME_TIMEOUT_MS + \"ms). This may result in timeouts.\");\r\n            }\r\n            /*\r\n             * Polling for iframes can be purely timing based,\r\n             * since we don't need to account for interaction.\r\n             */\r\n            var nowMark = window.performance.now();\r\n            var timeoutMark = nowMark + timeout;\r\n            var intervalId = setInterval(function () {\r\n                if (window.performance.now() > timeoutMark) {\r\n                    _this.removeHiddenIframe(iframe);\r\n                    clearInterval(intervalId);\r\n                    reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n                    return;\r\n                }\r\n                var href = Constants.EMPTY_STRING;\r\n                var contentWindow = iframe.contentWindow;\r\n                try {\r\n                    /*\r\n                     * Will throw if cross origin,\r\n                     * which should be caught and ignored\r\n                     * since we need the interval to keep running while on STS UI.\r\n                     */\r\n                    href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n                }\r\n                catch (e) { }\r\n                if (StringUtils.isEmpty(href)) {\r\n                    return;\r\n                }\r\n                var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;\r\n                if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n                    // Success case\r\n                    _this.removeHiddenIframe(iframe);\r\n                    clearInterval(intervalId);\r\n                    resolve(contentHash);\r\n                    return;\r\n                }\r\n            }, BrowserConstants.POLL_INTERVAL_MS);\r\n        });\r\n    };\r\n    /**\r\n     * @hidden\r\n     * Loads iframe with authorization endpoint URL\r\n     * @ignore\r\n     */\r\n    SilentHandler.prototype.loadFrame = function (urlNavigate) {\r\n        /*\r\n         * This trick overcomes iframe navigation in IE\r\n         * IE does not load the page consistently in iframe\r\n         */\r\n        var _this = this;\r\n        return new Promise(function (resolve, reject) {\r\n            var frameHandle = _this.createHiddenIframe();\r\n            setTimeout(function () {\r\n                if (!frameHandle) {\r\n                    reject(\"Unable to load iframe\");\r\n                    return;\r\n                }\r\n                frameHandle.src = urlNavigate;\r\n                resolve(frameHandle);\r\n            }, _this.navigateFrameWait);\r\n        });\r\n    };\r\n    /**\r\n     * @hidden\r\n     * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n     * @param urlNavigate\r\n     * @param frameName\r\n     * @param logger\r\n     */\r\n    SilentHandler.prototype.loadFrameSync = function (urlNavigate) {\r\n        var frameHandle = this.createHiddenIframe();\r\n        frameHandle.src = urlNavigate;\r\n        return frameHandle;\r\n    };\r\n    /**\r\n     * @hidden\r\n     * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n     * @ignore\r\n     */\r\n    SilentHandler.prototype.createHiddenIframe = function () {\r\n        var authFrame = document.createElement(\"iframe\");\r\n        authFrame.style.visibility = \"hidden\";\r\n        authFrame.style.position = \"absolute\";\r\n        authFrame.style.width = authFrame.style.height = \"0\";\r\n        authFrame.style.border = \"0\";\r\n        authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n        document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n        return authFrame;\r\n    };\r\n    /**\r\n     * @hidden\r\n     * Removes a hidden iframe from the page.\r\n     * @ignore\r\n     */\r\n    SilentHandler.prototype.removeHiddenIframe = function (iframe) {\r\n        if (document.body === iframe.parentNode) {\r\n            document.body.removeChild(iframe);\r\n        }\r\n    };\r\n    return SilentHandler;\r\n}(InteractionHandler));\n\nexport { SilentHandler };\n//# sourceMappingURL=SilentHandler.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-browser\";\r\nvar version = \"2.14.2\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator, __assign, __spread } from '../_virtual/_tslib.js';\nimport { CryptoOps } from '../crypto/CryptoOps.js';\nimport { UrlString, ThrottlingUtils, StringUtils, PromptValue, AccountEntity, AuthorityFactory, AuthorizationCodeClient, SilentFlowClient, RefreshTokenClient, AuthenticationScheme, ServerTelemetryManager, ProtocolUtils, ResponseMode, PersistentCacheKeys, IdToken, Constants, Logger, DEFAULT_CRYPTO_IMPLEMENTATION, ServerError, InteractionRequiredAuthError } from '@azure/msal-common';\nimport { DEFAULT_BROWSER_CACHE_MANAGER, BrowserCacheManager } from '../cache/BrowserCacheManager.js';\nimport { buildConfiguration } from '../config/Configuration.js';\nimport { InteractionType, TemporaryCacheKeys, ApiId, BrowserConstants, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\nimport { RedirectHandler } from '../interaction_handler/RedirectHandler.js';\nimport { PopupHandler } from '../interaction_handler/PopupHandler.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { version, name } from '../packageMetadata.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { PopupUtils } from '../utils/PopupUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ClientApplication = /** @class */ (function () {\r\n    /**\r\n     * @constructor\r\n     * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n     *\r\n     * Important attributes in the Configuration object for auth are:\r\n     * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n     * - authority: the authority URL for your application.\r\n     * - redirect_uri: the uri of your application registered in the portal.\r\n     *\r\n     * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n     * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n     * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n     * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n     * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n     * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n     *\r\n     * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n     * Full B2C functionality will be available in this library in future versions.\r\n     *\r\n     * @param configuration Object for the MSAL PublicClientApplication instance\r\n     */\r\n    function ClientApplication(configuration) {\r\n        /*\r\n         * If loaded in an environment where window is not available,\r\n         * set internal flag to false so that further requests fail.\r\n         * This is to support server-side rendering environments.\r\n         */\r\n        this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n        // Set the configuration.\r\n        this.config = buildConfiguration(configuration, this.isBrowserEnvironment);\r\n        this.activeLocalAccountId = null;\r\n        // Array of events\r\n        this.eventCallbacks = new Map();\r\n        // Initialize logger\r\n        this.logger = new Logger(this.config.system.loggerOptions, name, version);\r\n        // Initialize the network module class.\r\n        this.networkClient = this.config.system.networkClient;\r\n        // Initialize the navigation client class.\r\n        this.navigationClient = this.config.system.navigationClient;\r\n        // Initialize redirectResponse Map\r\n        this.redirectResponse = new Map();\r\n        if (!this.isBrowserEnvironment) {\r\n            this.browserStorage = DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);\r\n            this.browserCrypto = DEFAULT_CRYPTO_IMPLEMENTATION;\r\n            return;\r\n        }\r\n        // Initialize the crypto class.\r\n        this.browserCrypto = new CryptoOps();\r\n        // Initialize the browser storage class.\r\n        this.browserStorage = new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger);\r\n    }\r\n    // #region Redirect Flow\r\n    /**\r\n     * Event handler function which allows users to fire events after the PublicClientApplication object\r\n     * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n     * auth flows.\r\n     * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n     * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n     */\r\n    ClientApplication.prototype.handleRedirectPromise = function (hash) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var loggedInAccounts, redirectResponseKey, response;\r\n            var _this = this;\r\n            return __generator(this, function (_a) {\r\n                this.emitEvent(EventType.HANDLE_REDIRECT_START, InteractionType.Redirect);\r\n                this.logger.verbose(\"handleRedirectPromise called\");\r\n                loggedInAccounts = this.getAllAccounts();\r\n                if (this.isBrowserEnvironment) {\r\n                    redirectResponseKey = hash || Constants.EMPTY_STRING;\r\n                    response = this.redirectResponse.get(redirectResponseKey);\r\n                    if (typeof response === \"undefined\") {\r\n                        this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\r\n                        response = this.handleRedirectResponse(hash)\r\n                            .then(function (result) {\r\n                            if (result) {\r\n                                // Emit login event if number of accounts change\r\n                                var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n                                if (isLoggingIn) {\r\n                                    _this.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Redirect, result);\r\n                                    _this.logger.verbose(\"handleRedirectResponse returned result, login success\");\r\n                                }\r\n                                else {\r\n                                    _this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Redirect, result);\r\n                                    _this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\r\n                                }\r\n                            }\r\n                            _this.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n                            return result;\r\n                        })\r\n                            .catch(function (e) {\r\n                            // Emit login event if there is an account\r\n                            if (loggedInAccounts.length > 0) {\r\n                                _this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n                            }\r\n                            else {\r\n                                _this.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n                            }\r\n                            _this.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n                            throw e;\r\n                        });\r\n                        this.redirectResponse.set(redirectResponseKey, response);\r\n                    }\r\n                    else {\r\n                        this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\r\n                    }\r\n                    return [2 /*return*/, response];\r\n                }\r\n                this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\r\n                return [2 /*return*/, null];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Checks if navigateToLoginRequestUrl is set, and:\r\n     * - if true, performs logic to cache and navigate\r\n     * - if false, handles hash string and parses response\r\n     * @param hash\r\n     */\r\n    ClientApplication.prototype.handleRedirectResponse = function (hash) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var responseHash, state, loginRequestUrl, loginRequestUrlNormalized, currentUrlNormalized, handleHashResult, navigationOptions, processHashOnRedirect, homepage;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        if (!this.interactionInProgress()) {\r\n                            this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n                            return [2 /*return*/, null];\r\n                        }\r\n                        responseHash = this.getRedirectResponseHash(hash || window.location.hash);\r\n                        if (!responseHash) {\r\n                            // Not a recognized server response hash or hash not associated with a redirect request\r\n                            this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\r\n                            this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n                            return [2 /*return*/, null];\r\n                        }\r\n                        try {\r\n                            state = this.validateAndExtractStateFromHash(responseHash, InteractionType.Redirect);\r\n                            BrowserUtils.clearHash(window);\r\n                            this.logger.verbose(\"State extracted from hash\");\r\n                        }\r\n                        catch (e) {\r\n                            this.logger.info(\"handleRedirectPromise was unable to extract state due to: \" + e);\r\n                            this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n                            return [2 /*return*/, null];\r\n                        }\r\n                        loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || \"\";\r\n                        loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n                        currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n                        if (!(loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl)) return [3 /*break*/, 2];\r\n                        // We are on the page we need to navigate to - handle hash\r\n                        this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\r\n                        return [4 /*yield*/, this.handleHash(responseHash, state)];\r\n                    case 1:\r\n                        handleHashResult = _a.sent();\r\n                        if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n                            // Replace current hash with non-msal hash, if present\r\n                            BrowserUtils.replaceHash(loginRequestUrl);\r\n                        }\r\n                        return [2 /*return*/, handleHashResult];\r\n                    case 2:\r\n                        if (!!this.config.auth.navigateToLoginRequestUrl) return [3 /*break*/, 3];\r\n                        this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\r\n                        return [2 /*return*/, this.handleHash(responseHash, state)];\r\n                    case 3:\r\n                        if (!!BrowserUtils.isInIframe()) return [3 /*break*/, 8];\r\n                        /*\r\n                         * Returned from authority using redirect - need to perform navigation before processing response\r\n                         * Cache the hash to be retrieved after the next redirect\r\n                         */\r\n                        this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\r\n                        navigationOptions = {\r\n                            apiId: ApiId.handleRedirectPromise,\r\n                            timeout: this.config.system.redirectNavigationTimeout,\r\n                            noHistory: true\r\n                        };\r\n                        processHashOnRedirect = true;\r\n                        if (!(!loginRequestUrl || loginRequestUrl === \"null\")) return [3 /*break*/, 5];\r\n                        homepage = BrowserUtils.getHomepage();\r\n                        // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n                        this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n                        this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n                        return [4 /*yield*/, this.navigationClient.navigateInternal(homepage, navigationOptions)];\r\n                    case 4:\r\n                        processHashOnRedirect = _a.sent();\r\n                        return [3 /*break*/, 7];\r\n                    case 5:\r\n                        // Navigate to page that initiated the redirect request\r\n                        this.logger.verbose(\"Navigating to loginRequestUrl: \" + loginRequestUrl);\r\n                        return [4 /*yield*/, this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions)];\r\n                    case 6:\r\n                        processHashOnRedirect = _a.sent();\r\n                        _a.label = 7;\r\n                    case 7:\r\n                        // If navigateInternal implementation returns false, handle the hash now\r\n                        if (!processHashOnRedirect) {\r\n                            return [2 /*return*/, this.handleHash(responseHash, state)];\r\n                        }\r\n                        _a.label = 8;\r\n                    case 8: return [2 /*return*/, null];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Gets the response hash for a redirect request\r\n     * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n     * @param hash\r\n     */\r\n    ClientApplication.prototype.getRedirectResponseHash = function (hash) {\r\n        this.logger.verbose(\"getRedirectResponseHash called\");\r\n        // Get current location hash from window or cache.\r\n        var isResponseHash = UrlString.hashContainsKnownProperties(hash);\r\n        var cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n        this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n        if (isResponseHash) {\r\n            this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n            return hash;\r\n        }\r\n        this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n        return cachedHash;\r\n    };\r\n    /**\r\n     * @param hash\r\n     * @param interactionType\r\n     */\r\n    ClientApplication.prototype.validateAndExtractStateFromHash = function (hash, interactionType) {\r\n        this.logger.verbose(\"validateAndExtractStateFromHash called\");\r\n        // Deserialize hash fragment response parameters.\r\n        var serverParams = UrlString.getDeserializedHash(hash);\r\n        if (!serverParams.state) {\r\n            throw BrowserAuthError.createHashDoesNotContainStateError();\r\n        }\r\n        var platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\r\n        if (!platformStateObj) {\r\n            throw BrowserAuthError.createUnableToParseStateError();\r\n        }\r\n        if (platformStateObj.interactionType !== interactionType) {\r\n            throw BrowserAuthError.createStateInteractionTypeMismatchError();\r\n        }\r\n        this.logger.verbose(\"Returning state from hash\");\r\n        return serverParams.state;\r\n    };\r\n    /**\r\n     * Checks if hash exists and handles in window.\r\n     * @param hash\r\n     * @param state\r\n     */\r\n    ClientApplication.prototype.handleHash = function (hash, state) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var cachedRequest, serverTelemetryManager, currentAuthority, authClient, interactionHandler, e_1;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.verbose(\"handleHash called\");\r\n                        cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\r\n                        serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise, cachedRequest.correlationId);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 4, , 5]);\r\n                        currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n                        if (!currentAuthority) {\r\n                            throw BrowserAuthError.createNoCachedAuthorityError();\r\n                        }\r\n                        return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, currentAuthority)];\r\n                    case 2:\r\n                        authClient = _a.sent();\r\n                        interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.browserCrypto);\r\n                        return [4 /*yield*/, interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient, this.config.auth.clientId)];\r\n                    case 3: return [2 /*return*/, _a.sent()];\r\n                    case 4:\r\n                        e_1 = _a.sent();\r\n                        serverTelemetryManager.cacheFailedRequest(e_1);\r\n                        this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n                        throw e_1;\r\n                    case 5: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n     * the page, so any code that follows this function will not execute.\r\n     *\r\n     * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n     * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n     *\r\n     * @param request\r\n     */\r\n    ClientApplication.prototype.acquireTokenRedirect = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var isLoggedIn, validRequest, serverTelemetryManager, authCodeRequest, authClient, interactionHandler, navigateUrl, redirectStartPage, e_2;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        // Preflight request\r\n                        this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n                        this.logger.verbose(\"acquireTokenRedirect called\");\r\n                        isLoggedIn = this.getAllAccounts().length > 0;\r\n                        if (isLoggedIn) {\r\n                            this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Redirect, request);\r\n                        }\r\n                        else {\r\n                            this.emitEvent(EventType.LOGIN_START, InteractionType.Redirect, request);\r\n                        }\r\n                        validRequest = this.preflightInteractiveRequest(request, InteractionType.Redirect);\r\n                        serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect, validRequest.correlationId);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 5, , 6]);\r\n                        return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n                    case 2:\r\n                        authCodeRequest = _a.sent();\r\n                        return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority)];\r\n                    case 3:\r\n                        authClient = _a.sent();\r\n                        interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.browserCrypto);\r\n                        return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n                    case 4:\r\n                        navigateUrl = _a.sent();\r\n                        redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n                        // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n                        return [2 /*return*/, interactionHandler.initiateAuthRequest(navigateUrl, {\r\n                                navigationClient: this.navigationClient,\r\n                                redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n                                redirectStartPage: redirectStartPage,\r\n                                onRedirectNavigate: request.onRedirectNavigate\r\n                            })];\r\n                    case 5:\r\n                        e_2 = _a.sent();\r\n                        // If logged in, emit acquire token events\r\n                        if (isLoggedIn) {\r\n                            this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e_2);\r\n                        }\r\n                        else {\r\n                            this.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e_2);\r\n                        }\r\n                        serverTelemetryManager.cacheFailedRequest(e_2);\r\n                        this.browserStorage.cleanRequestByState(validRequest.state);\r\n                        throw e_2;\r\n                    case 6: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    // #endregion\r\n    // #region Popup Flow\r\n    /**\r\n     * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n     *\r\n     * @param request\r\n     *\r\n     * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n     */\r\n    ClientApplication.prototype.acquireTokenPopup = function (request) {\r\n        var validRequest;\r\n        try {\r\n            this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n            this.logger.verbose(\"acquireTokenPopup called\");\r\n            validRequest = this.preflightInteractiveRequest(request, InteractionType.Popup);\r\n        }\r\n        catch (e) {\r\n            // Since this function is syncronous we need to reject\r\n            return Promise.reject(e);\r\n        }\r\n        var popupName = PopupUtils.generatePopupName(this.config.auth.clientId, validRequest);\r\n        // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n        if (this.config.system.asyncPopups) {\r\n            this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n            return this.acquireTokenPopupAsync(validRequest, popupName);\r\n        }\r\n        else {\r\n            // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n            this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n            var popup = PopupUtils.openSizedPopup(\"about:blank\", popupName);\r\n            return this.acquireTokenPopupAsync(validRequest, popupName, popup);\r\n        }\r\n    };\r\n    /**\r\n     * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n     * @param validRequest\r\n     * @param popupName\r\n     * @param popup\r\n     *\r\n     * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n     */\r\n    ClientApplication.prototype.acquireTokenPopupAsync = function (validRequest, popupName, popup) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var loggedInAccounts, serverTelemetryManager, authCodeRequest, authClient, navigateUrl, interactionHandler, popupParameters, popupWindow, hash, state, result, isLoggingIn, e_3;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n                        loggedInAccounts = this.getAllAccounts();\r\n                        if (loggedInAccounts.length > 0) {\r\n                            this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Popup, validRequest);\r\n                        }\r\n                        else {\r\n                            this.emitEvent(EventType.LOGIN_START, InteractionType.Popup, validRequest);\r\n                        }\r\n                        serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup, validRequest.correlationId);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 7, , 8]);\r\n                        return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n                    case 2:\r\n                        authCodeRequest = _a.sent();\r\n                        return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority)];\r\n                    case 3:\r\n                        authClient = _a.sent();\r\n                        return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n                    case 4:\r\n                        navigateUrl = _a.sent();\r\n                        interactionHandler = new PopupHandler(authClient, this.browserStorage, authCodeRequest);\r\n                        popupParameters = {\r\n                            popup: popup,\r\n                            popupName: popupName\r\n                        };\r\n                        popupWindow = interactionHandler.initiateAuthRequest(navigateUrl, popupParameters);\r\n                        this.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n                        return [4 /*yield*/, interactionHandler.monitorPopupForHash(popupWindow)];\r\n                    case 5:\r\n                        hash = _a.sent();\r\n                        state = this.validateAndExtractStateFromHash(hash, InteractionType.Popup);\r\n                        // Remove throttle if it exists\r\n                        ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest.authority, authCodeRequest.scopes);\r\n                        return [4 /*yield*/, interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient)];\r\n                    case 6:\r\n                        result = _a.sent();\r\n                        isLoggingIn = loggedInAccounts.length < this.getAllAccounts().length;\r\n                        if (isLoggingIn) {\r\n                            this.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Popup, result);\r\n                        }\r\n                        else {\r\n                            this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Popup, result);\r\n                        }\r\n                        return [2 /*return*/, result];\r\n                    case 7:\r\n                        e_3 = _a.sent();\r\n                        if (loggedInAccounts.length > 0) {\r\n                            this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Popup, null, e_3);\r\n                        }\r\n                        else {\r\n                            this.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Popup, null, e_3);\r\n                        }\r\n                        if (popup) {\r\n                            // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n                            popup.close();\r\n                        }\r\n                        serverTelemetryManager.cacheFailedRequest(e_3);\r\n                        this.browserStorage.cleanRequestByState(validRequest.state);\r\n                        throw e_3;\r\n                    case 8: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    // #endregion\r\n    // #region Silent Flow\r\n    /**\r\n     * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n     * - Any browser using a form of Intelligent Tracking Prevention\r\n     * - If there is not an established session with the service\r\n     *\r\n     * In these cases, the request must be done inside a popup or full frame redirect.\r\n     *\r\n     * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n     *\r\n     * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n     * you session on the server still exists.\r\n     * @param request {@link SsoSilentRequest}\r\n     *\r\n     * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n     */\r\n    ClientApplication.prototype.ssoSilent = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var silentTokenResult, e_4;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n                        this.logger.verbose(\"ssoSilent called\");\r\n                        this.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, request);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 3, , 4]);\r\n                        return [4 /*yield*/, this.acquireTokenByIframe(request, ApiId.ssoSilent)];\r\n                    case 2:\r\n                        silentTokenResult = _a.sent();\r\n                        this.emitEvent(EventType.SSO_SILENT_SUCCESS, InteractionType.Silent, silentTokenResult);\r\n                        return [2 /*return*/, silentTokenResult];\r\n                    case 3:\r\n                        e_4 = _a.sent();\r\n                        this.emitEvent(EventType.SSO_SILENT_FAILURE, InteractionType.Silent, null, e_4);\r\n                        throw e_4;\r\n                    case 4: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * This function uses a hidden iframe to fetch an authorization code from the eSTS. To be used for silent refresh token acquisition and renewal.\r\n     * @param request\r\n     * @param apiId - ApiId of the calling function. Used for telemetry.\r\n     */\r\n    ClientApplication.prototype.acquireTokenByIframe = function (request, apiId) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var silentRequest, serverTelemetryManager, authCodeRequest, authClient, navigateUrl, e_5;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.verbose(\"acquireTokenByIframe called\");\r\n                        // Check that we have some SSO data\r\n                        if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\r\n                            throw BrowserAuthError.createSilentSSOInsufficientInfoError();\r\n                        }\r\n                        // Check that prompt is set to none, throw error if it is set to anything else.\r\n                        if (request.prompt && request.prompt !== PromptValue.NONE) {\r\n                            throw BrowserAuthError.createSilentPromptValueError(request.prompt);\r\n                        }\r\n                        silentRequest = this.initializeAuthorizationRequest(__assign(__assign({}, request), { prompt: PromptValue.NONE }), InteractionType.Silent);\r\n                        serverTelemetryManager = this.initializeServerTelemetryManager(apiId, silentRequest.correlationId);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 6, , 7]);\r\n                        return [4 /*yield*/, this.initializeAuthorizationCodeRequest(silentRequest)];\r\n                    case 2:\r\n                        authCodeRequest = _a.sent();\r\n                        return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority)];\r\n                    case 3:\r\n                        authClient = _a.sent();\r\n                        return [4 /*yield*/, authClient.getAuthCodeUrl(silentRequest)];\r\n                    case 4:\r\n                        navigateUrl = _a.sent();\r\n                        return [4 /*yield*/, this.silentTokenHelper(navigateUrl, authCodeRequest, authClient)];\r\n                    case 5: return [2 /*return*/, _a.sent()];\r\n                    case 6:\r\n                        e_5 = _a.sent();\r\n                        serverTelemetryManager.cacheFailedRequest(e_5);\r\n                        this.browserStorage.cleanRequestByState(silentRequest.state);\r\n                        throw e_5;\r\n                    case 7: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Use this function to obtain a token before every call to the API / resource provider\r\n     *\r\n     * MSAL return's a cached token when available\r\n     * Or it send's a request to the STS to obtain a new token using a refresh token.\r\n     *\r\n     * @param {@link SilentRequest}\r\n     *\r\n     * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n     * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n     */\r\n    ClientApplication.prototype.acquireTokenByRefreshToken = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var silentRequest, serverTelemetryManager, refreshTokenClient, e_6, isServerError, isInteractionRequiredError, isInvalidGrantError;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, InteractionType.Silent, request);\r\n                        // block the reload if it occurred inside a hidden iframe\r\n                        BrowserUtils.blockReloadInHiddenIframes();\r\n                        silentRequest = __assign(__assign({}, request), this.initializeBaseRequest(request));\r\n                        serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, silentRequest.correlationId);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 4, , 7]);\r\n                        return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority)];\r\n                    case 2:\r\n                        refreshTokenClient = _a.sent();\r\n                        return [4 /*yield*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest)];\r\n                    case 3: \r\n                    // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n                    return [2 /*return*/, _a.sent()];\r\n                    case 4:\r\n                        e_6 = _a.sent();\r\n                        serverTelemetryManager.cacheFailedRequest(e_6);\r\n                        isServerError = e_6 instanceof ServerError;\r\n                        isInteractionRequiredError = e_6 instanceof InteractionRequiredAuthError;\r\n                        isInvalidGrantError = (e_6.errorCode === BrowserConstants.INVALID_GRANT_ERROR);\r\n                        if (!(isServerError && isInvalidGrantError && !isInteractionRequiredError)) return [3 /*break*/, 6];\r\n                        this.logger.verbose(\"Refresh token expired or invalid, attempting acquire token by iframe\");\r\n                        return [4 /*yield*/, this.acquireTokenByIframe(request, ApiId.acquireTokenSilent_authCode)];\r\n                    case 5: return [2 /*return*/, _a.sent()];\r\n                    case 6: throw e_6;\r\n                    case 7: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n     * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n     * @param navigateUrl\r\n     * @param userRequestScopes\r\n     */\r\n    ClientApplication.prototype.silentTokenHelper = function (navigateUrl, authCodeRequest, authClient) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var silentHandler, msalFrame, hash, state;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.config.system.navigateFrameWait);\r\n                        return [4 /*yield*/, silentHandler.initiateAuthRequest(navigateUrl)];\r\n                    case 1:\r\n                        msalFrame = _a.sent();\r\n                        return [4 /*yield*/, silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout)];\r\n                    case 2:\r\n                        hash = _a.sent();\r\n                        state = this.validateAndExtractStateFromHash(hash, InteractionType.Silent);\r\n                        // Handle response from hash string\r\n                        return [2 /*return*/, silentHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient)];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    // #endregion\r\n    // #region Logout\r\n    /**\r\n     * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n     * @param logoutRequest\r\n     * @deprecated\r\n     */\r\n    ClientApplication.prototype.logout = function (logoutRequest) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\");\r\n                return [2 /*return*/, this.logoutRedirect(logoutRequest)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n     * Default behaviour is to redirect the user to `window.location.href`.\r\n     * @param logoutRequest\r\n     */\r\n    ClientApplication.prototype.logoutRedirect = function (logoutRequest) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var validLogoutRequest, serverTelemetryManager, authClient, logoutUri, navigationOptions, navigate, e_7;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n                        this.logger.verbose(\"logoutRedirect called\");\r\n                        validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n                        serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout, validLogoutRequest.correlationId);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 9, , 10]);\r\n                        this.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\r\n                        return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority)];\r\n                    case 2:\r\n                        authClient = _a.sent();\r\n                        logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n                        if (!validLogoutRequest.account || AccountEntity.accountInfoIsEqual(validLogoutRequest.account, this.getActiveAccount(), false)) {\r\n                            this.logger.verbose(\"Setting active account to null\");\r\n                            this.setActiveAccount(null);\r\n                        }\r\n                        navigationOptions = {\r\n                            apiId: ApiId.logout,\r\n                            timeout: this.config.system.redirectNavigationTimeout,\r\n                            noHistory: false\r\n                        };\r\n                        this.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\r\n                        if (!(logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\")) return [3 /*break*/, 6];\r\n                        navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n                        if (!(navigate !== false)) return [3 /*break*/, 4];\r\n                        this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n                        return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n                    case 3:\r\n                        _a.sent();\r\n                        return [2 /*return*/];\r\n                    case 4:\r\n                        this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n                        _a.label = 5;\r\n                    case 5: return [3 /*break*/, 8];\r\n                    case 6: return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n                    case 7:\r\n                        _a.sent();\r\n                        return [2 /*return*/];\r\n                    case 8: return [3 /*break*/, 10];\r\n                    case 9:\r\n                        e_7 = _a.sent();\r\n                        serverTelemetryManager.cacheFailedRequest(e_7);\r\n                        this.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e_7);\r\n                        throw e_7;\r\n                    case 10:\r\n                        this.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n                        return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n     * @param logoutRequest\r\n     */\r\n    ClientApplication.prototype.logoutPopup = function (logoutRequest) {\r\n        var validLogoutRequest;\r\n        try {\r\n            this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n            this.logger.verbose(\"logoutPopup called\");\r\n            validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n        }\r\n        catch (e) {\r\n            // Since this function is synchronous we need to reject\r\n            return Promise.reject(e);\r\n        }\r\n        var popupName = PopupUtils.generateLogoutPopupName(this.config.auth.clientId, validLogoutRequest);\r\n        var popup;\r\n        // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n        if (this.config.system.asyncPopups) {\r\n            this.logger.verbose(\"asyncPopups set to true\");\r\n        }\r\n        else {\r\n            // asyncPopups flag is set to false. Opens popup before logging out.\r\n            this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n            popup = PopupUtils.openSizedPopup(\"about:blank\", popupName);\r\n        }\r\n        var authority = logoutRequest && logoutRequest.authority;\r\n        var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n        return this.logoutPopupAsync(validLogoutRequest, popupName, authority, popup, mainWindowRedirectUri);\r\n    };\r\n    /**\r\n     *\r\n     * @param request\r\n     * @param popupName\r\n     * @param requestAuthority\r\n     * @param popup\r\n     */\r\n    ClientApplication.prototype.logoutPopupAsync = function (validRequest, popupName, requestAuthority, popup, mainWindowRedirectUri) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var serverTelemetryManager, authClient, logoutUri, popupUtils, popupWindow, e_8, navigationOptions, absoluteUrl, e_9;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.verbose(\"logoutPopupAsync called\");\r\n                        this.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\r\n                        serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup, validRequest.correlationId);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 7, , 8]);\r\n                        this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\r\n                        return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, requestAuthority)];\r\n                    case 2:\r\n                        authClient = _a.sent();\r\n                        logoutUri = authClient.getLogoutUri(validRequest);\r\n                        if (!validRequest.account || AccountEntity.accountInfoIsEqual(validRequest.account, this.getActiveAccount(), false)) {\r\n                            this.logger.verbose(\"Setting active account to null\");\r\n                            this.setActiveAccount(null);\r\n                        }\r\n                        this.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\r\n                        popupUtils = new PopupUtils(this.browserStorage, this.logger);\r\n                        popupWindow = popupUtils.openPopup(logoutUri, popupName, popup);\r\n                        this.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n                        _a.label = 3;\r\n                    case 3:\r\n                        _a.trys.push([3, 5, , 6]);\r\n                        // Don't care if this throws an error (User Cancelled)\r\n                        return [4 /*yield*/, popupUtils.monitorPopupForSameOrigin(popupWindow)];\r\n                    case 4:\r\n                        // Don't care if this throws an error (User Cancelled)\r\n                        _a.sent();\r\n                        this.logger.verbose(\"Popup successfully redirected to postLogoutRedirectUri\");\r\n                        return [3 /*break*/, 6];\r\n                    case 5:\r\n                        e_8 = _a.sent();\r\n                        this.logger.verbose(\"Error occurred while monitoring popup for same origin. Session on server may remain active. Error: \" + e_8);\r\n                        return [3 /*break*/, 6];\r\n                    case 6:\r\n                        popupUtils.cleanPopup(popupWindow);\r\n                        if (mainWindowRedirectUri) {\r\n                            navigationOptions = {\r\n                                apiId: ApiId.logoutPopup,\r\n                                timeout: this.config.system.redirectNavigationTimeout,\r\n                                noHistory: false\r\n                            };\r\n                            absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\r\n                            this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n                            this.logger.verbosePii(\"Redirecing main window to: \" + absoluteUrl);\r\n                            this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n                        }\r\n                        else {\r\n                            this.logger.verbose(\"No main window navigation requested\");\r\n                        }\r\n                        return [3 /*break*/, 8];\r\n                    case 7:\r\n                        e_9 = _a.sent();\r\n                        if (popup) {\r\n                            // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n                            popup.close();\r\n                        }\r\n                        this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n                        this.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_9);\r\n                        serverTelemetryManager.cacheFailedRequest(e_9);\r\n                        throw e_9;\r\n                    case 8:\r\n                        this.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n                        return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    // #endregion\r\n    // #region Account APIs\r\n    /**\r\n     * Returns all accounts that MSAL currently has data for.\r\n     * (the account object is created at the time of successful login)\r\n     * or empty array when no accounts are found\r\n     * @returns Array of account objects in cache\r\n     */\r\n    ClientApplication.prototype.getAllAccounts = function () {\r\n        this.logger.verbose(\"getAllAccounts called\");\r\n        return this.isBrowserEnvironment ? this.browserStorage.getAllAccounts() : [];\r\n    };\r\n    /**\r\n     * Returns the signed in account matching username.\r\n     * (the account object is created at the time of successful login)\r\n     * or null when no matching account is found.\r\n     * This API is provided for convenience but getAccountById should be used for best reliability\r\n     * @param userName\r\n     * @returns The account object stored in MSAL\r\n     */\r\n    ClientApplication.prototype.getAccountByUsername = function (userName) {\r\n        var allAccounts = this.getAllAccounts();\r\n        if (!StringUtils.isEmpty(userName) && allAccounts && allAccounts.length) {\r\n            this.logger.verbose(\"Account matching username found, returning\");\r\n            this.logger.verbosePii(\"Returning signed-in accounts matching username: \" + userName);\r\n            return allAccounts.filter(function (accountObj) { return accountObj.username.toLowerCase() === userName.toLowerCase(); })[0] || null;\r\n        }\r\n        else {\r\n            this.logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * Returns the signed in account matching homeAccountId.\r\n     * (the account object is created at the time of successful login)\r\n     * or null when no matching account is found\r\n     * @param homeAccountId\r\n     * @returns The account object stored in MSAL\r\n     */\r\n    ClientApplication.prototype.getAccountByHomeId = function (homeAccountId) {\r\n        var allAccounts = this.getAllAccounts();\r\n        if (!StringUtils.isEmpty(homeAccountId) && allAccounts && allAccounts.length) {\r\n            this.logger.verbose(\"Account matching homeAccountId found, returning\");\r\n            this.logger.verbosePii(\"Returning signed-in accounts matching homeAccountId: \" + homeAccountId);\r\n            return allAccounts.filter(function (accountObj) { return accountObj.homeAccountId === homeAccountId; })[0] || null;\r\n        }\r\n        else {\r\n            this.logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * Returns the signed in account matching localAccountId.\r\n     * (the account object is created at the time of successful login)\r\n     * or null when no matching account is found\r\n     * @param localAccountId\r\n     * @returns The account object stored in MSAL\r\n     */\r\n    ClientApplication.prototype.getAccountByLocalId = function (localAccountId) {\r\n        var allAccounts = this.getAllAccounts();\r\n        if (!StringUtils.isEmpty(localAccountId) && allAccounts && allAccounts.length) {\r\n            this.logger.verbose(\"Account matching localAccountId found, returning\");\r\n            this.logger.verbosePii(\"Returning signed-in accounts matching localAccountId: \" + localAccountId);\r\n            return allAccounts.filter(function (accountObj) { return accountObj.localAccountId === localAccountId; })[0] || null;\r\n        }\r\n        else {\r\n            this.logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n     * @param account\r\n     */\r\n    ClientApplication.prototype.setActiveAccount = function (account) {\r\n        if (account) {\r\n            this.logger.verbose(\"setActiveAccount: Active account set\");\r\n            this.activeLocalAccountId = account.localAccountId;\r\n        }\r\n        else {\r\n            this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\r\n            this.activeLocalAccountId = null;\r\n        }\r\n    };\r\n    /**\r\n     * Gets the currently active account\r\n     */\r\n    ClientApplication.prototype.getActiveAccount = function () {\r\n        if (!this.activeLocalAccountId) {\r\n            this.logger.verbose(\"getActiveAccount: No active account\");\r\n            return null;\r\n        }\r\n        return this.getAccountByLocalId(this.activeLocalAccountId);\r\n    };\r\n    // #endregion\r\n    // #region Helpers\r\n    /**\r\n     *\r\n     * Use to get the redirect uri configured in MSAL or null.\r\n     * @param requestRedirectUri\r\n     * @returns Redirect URL\r\n     *\r\n     */\r\n    ClientApplication.prototype.getRedirectUri = function (requestRedirectUri) {\r\n        this.logger.verbose(\"getRedirectUri called\");\r\n        var redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\r\n        return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\r\n    };\r\n    /**\r\n     * Use to get the redirectStartPage either from request or use current window\r\n     * @param requestStartPage\r\n     */\r\n    ClientApplication.prototype.getRedirectStartPage = function (requestStartPage) {\r\n        this.logger.verbose(\"getRedirectStartPage called\");\r\n        var redirectStartPage = requestStartPage || window.location.href;\r\n        return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\r\n    };\r\n    /**\r\n     * Used to get a discovered version of the default authority.\r\n     * @param requestAuthority\r\n     */\r\n    ClientApplication.prototype.getDiscoveredAuthority = function (requestAuthority) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var authorityOptions;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.verbose(\"getDiscoveredAuthority called\");\r\n                        authorityOptions = {\r\n                            protocolMode: this.config.auth.protocolMode,\r\n                            knownAuthorities: this.config.auth.knownAuthorities,\r\n                            cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n                            authorityMetadata: this.config.auth.authorityMetadata\r\n                        };\r\n                        if (!requestAuthority) return [3 /*break*/, 2];\r\n                        this.logger.verbose(\"Creating discovered authority with request authority\");\r\n                        return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions)];\r\n                    case 1: return [2 /*return*/, _a.sent()];\r\n                    case 2:\r\n                        this.logger.verbose(\"Creating discovered authority with configured authority\");\r\n                        return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions)];\r\n                    case 3: return [2 /*return*/, _a.sent()];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Helper to check whether interaction is in progress.\r\n     */\r\n    ClientApplication.prototype.interactionInProgress = function () {\r\n        // Check whether value in cache is present and equal to expected value\r\n        return (this.browserStorage.getTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, true)) === BrowserConstants.INTERACTION_IN_PROGRESS_VALUE;\r\n    };\r\n    /**\r\n     * Creates an Authorization Code Client with the given authority, or the default authority.\r\n     * @param serverTelemetryManager\r\n     * @param authorityUrl\r\n     */\r\n    ClientApplication.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var clientConfig;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.verbose(\"createAuthCodeClient called\");\r\n                        return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n                    case 1:\r\n                        clientConfig = _a.sent();\r\n                        return [2 /*return*/, new AuthorizationCodeClient(clientConfig)];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Creates an Silent Flow Client with the given authority, or the default authority.\r\n     * @param serverTelemetryManager\r\n     * @param authorityUrl\r\n     */\r\n    ClientApplication.prototype.createSilentFlowClient = function (serverTelemetryManager, authorityUrl) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var clientConfig;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.verbose(\"createSilentFlowClient called\");\r\n                        return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n                    case 1:\r\n                        clientConfig = _a.sent();\r\n                        return [2 /*return*/, new SilentFlowClient(clientConfig)];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Creates a Refresh Client with the given authority, or the default authority.\r\n     * @param serverTelemetryManager\r\n     * @param authorityUrl\r\n     */\r\n    ClientApplication.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var clientConfig;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.verbose(\"createRefreshTokenClient called\");\r\n                        return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n                    case 1:\r\n                        clientConfig = _a.sent();\r\n                        return [2 /*return*/, new RefreshTokenClient(clientConfig)];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Creates a Client Configuration object with the given request authority, or the default authority.\r\n     * @param serverTelemetryManager\r\n     * @param requestAuthority\r\n     */\r\n    ClientApplication.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var discoveredAuthority;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.logger.verbose(\"getClientConfiguration called\");\r\n                        return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority)];\r\n                    case 1:\r\n                        discoveredAuthority = _a.sent();\r\n                        return [2 /*return*/, {\r\n                                authOptions: {\r\n                                    clientId: this.config.auth.clientId,\r\n                                    authority: discoveredAuthority,\r\n                                    clientCapabilities: this.config.auth.clientCapabilities\r\n                                },\r\n                                systemOptions: {\r\n                                    tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds\r\n                                },\r\n                                loggerOptions: {\r\n                                    loggerCallback: this.config.system.loggerOptions.loggerCallback,\r\n                                    piiLoggingEnabled: this.config.system.loggerOptions.piiLoggingEnabled\r\n                                },\r\n                                cryptoInterface: this.browserCrypto,\r\n                                networkInterface: this.networkClient,\r\n                                storageInterface: this.browserStorage,\r\n                                serverTelemetryManager: serverTelemetryManager,\r\n                                libraryInfo: {\r\n                                    sku: BrowserConstants.MSAL_SKU,\r\n                                    version: version,\r\n                                    cpu: \"\",\r\n                                    os: \"\"\r\n                                }\r\n                            }];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Helper to validate app environment before making a request.\r\n     * @param request\r\n     * @param interactionType\r\n     */\r\n    ClientApplication.prototype.preflightInteractiveRequest = function (request, interactionType) {\r\n        this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\");\r\n        // block the reload if it occurred inside a hidden iframe\r\n        BrowserUtils.blockReloadInHiddenIframes();\r\n        // Check if interaction is in progress. Throw error if true.\r\n        if (this.interactionInProgress()) {\r\n            throw BrowserAuthError.createInteractionInProgressError();\r\n        }\r\n        return this.initializeAuthorizationRequest(request, interactionType);\r\n    };\r\n    /**\r\n     * Helper to validate app environment before making an auth request\r\n     * * @param interactionType\r\n     */\r\n    ClientApplication.prototype.preflightBrowserEnvironmentCheck = function (interactionType) {\r\n        this.logger.verbose(\"preflightBrowserEnvironmentCheck started\");\r\n        // Block request if not in browser environment\r\n        BrowserUtils.blockNonBrowserEnvironment(this.isBrowserEnvironment);\r\n        // Block redirects if in an iframe\r\n        BrowserUtils.blockRedirectInIframe(interactionType, this.config.system.allowRedirectInIframe);\r\n        // Block auth requests inside a hidden iframe\r\n        BrowserUtils.blockReloadInHiddenIframes();\r\n        // Block redirectUri opened in a popup from calling MSAL APIs\r\n        BrowserUtils.blockAcquireTokenInPopups();\r\n        // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\r\n        if (interactionType === InteractionType.Redirect &&\r\n            this.config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\r\n            !this.config.cache.storeAuthStateInCookie) {\r\n            throw BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError();\r\n        }\r\n    };\r\n    /**\r\n     * Initializer function for all request APIs\r\n     * @param request\r\n     */\r\n    ClientApplication.prototype.initializeBaseRequest = function (request) {\r\n        this.logger.verbose(\"Initializing BaseAuthRequest\");\r\n        var authority = request.authority || this.config.auth.authority;\r\n        var scopes = __spread(((request && request.scopes) || []));\r\n        var correlationId = (request && request.correlationId) || this.browserCrypto.createNewGuid();\r\n        // Set authenticationScheme to BEARER if not explicitly set in the request\r\n        if (!request.authenticationScheme) {\r\n            request.authenticationScheme = AuthenticationScheme.BEARER;\r\n            this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\");\r\n        }\r\n        else {\r\n            this.logger.verbose(\"Authentication Scheme set to \\\"\" + request.authenticationScheme + \"\\\" as configured in Auth request\");\r\n        }\r\n        var validatedRequest = __assign(__assign({}, request), { correlationId: correlationId,\r\n            authority: authority,\r\n            scopes: scopes });\r\n        return validatedRequest;\r\n    };\r\n    /**\r\n     *\r\n     * @param apiId\r\n     * @param correlationId\r\n     * @param forceRefresh\r\n     */\r\n    ClientApplication.prototype.initializeServerTelemetryManager = function (apiId, correlationId, forceRefresh) {\r\n        this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n        var telemetryPayload = {\r\n            clientId: this.config.auth.clientId,\r\n            correlationId: correlationId,\r\n            apiId: apiId,\r\n            forceRefresh: forceRefresh || false,\r\n            wrapperSKU: this.wrapperSKU,\r\n            wrapperVer: this.wrapperVer\r\n        };\r\n        return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n    };\r\n    /**\r\n     * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n     * @param request\r\n     * @param interactionType\r\n     */\r\n    ClientApplication.prototype.initializeAuthorizationRequest = function (request, interactionType) {\r\n        this.logger.verbose(\"initializeAuthorizationRequest called\");\r\n        var redirectUri = this.getRedirectUri(request.redirectUri);\r\n        var browserState = {\r\n            interactionType: interactionType\r\n        };\r\n        var state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || \"\", browserState);\r\n        var validatedRequest = __assign(__assign({}, this.initializeBaseRequest(request)), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT });\r\n        var account = request.account || this.getActiveAccount();\r\n        if (account) {\r\n            this.logger.verbose(\"Setting validated request account\");\r\n            this.logger.verbosePii(\"Setting validated request account: \" + account);\r\n            validatedRequest.account = account;\r\n        }\r\n        // Check for ADAL SSO\r\n        if (StringUtils.isEmpty(validatedRequest.loginHint)) {\r\n            // Only check for adal token if no SSO params are being used\r\n            var adalIdTokenString = this.browserStorage.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n            if (adalIdTokenString) {\r\n                var adalIdToken = new IdToken(adalIdTokenString, this.browserCrypto);\r\n                this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n                if (adalIdToken.claims && adalIdToken.claims.upn) {\r\n                    this.logger.verbose(\"No SSO params used and ADAL token retrieved, setting ADAL upn as loginHint\");\r\n                    validatedRequest.loginHint = adalIdToken.claims.upn;\r\n                }\r\n            }\r\n        }\r\n        this.browserStorage.updateCacheEntries(validatedRequest.state, validatedRequest.nonce, validatedRequest.authority);\r\n        return validatedRequest;\r\n    };\r\n    /**\r\n     * Generates an auth code request tied to the url request.\r\n     * @param request\r\n     */\r\n    ClientApplication.prototype.initializeAuthorizationCodeRequest = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var generatedPkceParams, authCodeRequest;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0: return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];\r\n                    case 1:\r\n                        generatedPkceParams = _a.sent();\r\n                        authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: \"\", codeVerifier: generatedPkceParams.verifier });\r\n                        request.codeChallenge = generatedPkceParams.challenge;\r\n                        request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n                        return [2 /*return*/, authCodeRequest];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Initializer for the logout request.\r\n     * @param logoutRequest\r\n     */\r\n    ClientApplication.prototype.initializeLogoutRequest = function (logoutRequest) {\r\n        this.logger.verbose(\"initializeLogoutRequest called\");\r\n        // Check if interaction is in progress. Throw error if true.\r\n        if (this.interactionInProgress()) {\r\n            throw BrowserAuthError.createInteractionInProgressError();\r\n        }\r\n        var validLogoutRequest = __assign({ correlationId: this.browserCrypto.createNewGuid() }, logoutRequest);\r\n        /*\r\n         * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n         * Otherwise, use passed uri, config, or current page.\r\n         */\r\n        if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n            if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n                this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\");\r\n                validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n            }\r\n            else if (this.config.auth.postLogoutRedirectUri === null) {\r\n                this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\");\r\n            }\r\n            else if (this.config.auth.postLogoutRedirectUri) {\r\n                this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\");\r\n                validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n            }\r\n            else {\r\n                this.logger.verbose(\"Setting postLogoutRedirectUri to current page\");\r\n                validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\r\n            }\r\n        }\r\n        else {\r\n            this.logger.verbose(\"postLogoutRedirectUri passed as null, not settibng post logout redirect uri\");\r\n        }\r\n        return validLogoutRequest;\r\n    };\r\n    /**\r\n     * Emits events by calling callback with event message\r\n     * @param eventType\r\n     * @param interactionType\r\n     * @param payload\r\n     * @param error\r\n     */\r\n    ClientApplication.prototype.emitEvent = function (eventType, interactionType, payload, error) {\r\n        var _this = this;\r\n        if (this.isBrowserEnvironment) {\r\n            var message_1 = {\r\n                eventType: eventType,\r\n                interactionType: interactionType || null,\r\n                payload: payload || null,\r\n                error: error || null,\r\n                timestamp: Date.now()\r\n            };\r\n            this.logger.info(\"Emitting event: \" + eventType);\r\n            this.eventCallbacks.forEach(function (callback, callbackId) {\r\n                _this.logger.verbose(\"Emitting event to callback \" + callbackId + \": \" + eventType);\r\n                callback.apply(null, [message_1]);\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * Adds event callbacks to array\r\n     * @param callback\r\n     */\r\n    ClientApplication.prototype.addEventCallback = function (callback) {\r\n        if (this.isBrowserEnvironment) {\r\n            var callbackId = this.browserCrypto.createNewGuid();\r\n            this.eventCallbacks.set(callbackId, callback);\r\n            this.logger.verbose(\"Event callback registered with id: \" + callbackId);\r\n            return callbackId;\r\n        }\r\n        return null;\r\n    };\r\n    /**\r\n     * Removes callback with provided id from callback array\r\n     * @param callbackId\r\n     */\r\n    ClientApplication.prototype.removeEventCallback = function (callbackId) {\r\n        this.eventCallbacks.delete(callbackId);\r\n        this.logger.verbose(\"Event callback \" + callbackId + \" removed.\");\r\n    };\r\n    /**\r\n     * Returns the logger instance\r\n     */\r\n    ClientApplication.prototype.getLogger = function () {\r\n        return this.logger;\r\n    };\r\n    /**\r\n     * Replaces the default logger set in configurations with new Logger with new configurations\r\n     * @param logger Logger instance\r\n     */\r\n    ClientApplication.prototype.setLogger = function (logger) {\r\n        this.logger = logger;\r\n    };\r\n    /**\r\n     * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n     * @param sku\r\n     * @param version\r\n     */\r\n    ClientApplication.prototype.initializeWrapperLibrary = function (sku, version) {\r\n        // Validate the SKU passed in is one we expect\r\n        this.wrapperSKU = sku;\r\n        this.wrapperVer = version;\r\n    };\r\n    /**\r\n     * Sets navigation client\r\n     * @param navigationClient\r\n     */\r\n    ClientApplication.prototype.setNavigationClient = function (navigationClient) {\r\n        this.navigationClient = navigationClient;\r\n    };\r\n    return ClientApplication;\r\n}());\n\nexport { ClientApplication };\n//# sourceMappingURL=ClientApplication.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { DEFAULT_REQUEST, InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { ClientApplication } from './ClientApplication.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\r\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\r\n */\r\nvar PublicClientApplication = /** @class */ (function (_super) {\r\n    __extends(PublicClientApplication, _super);\r\n    /**\r\n     * @constructor\r\n     * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n     *\r\n     * Important attributes in the Configuration object for auth are:\r\n     * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n     * - authority: the authority URL for your application.\r\n     * - redirect_uri: the uri of your application registered in the portal.\r\n     *\r\n     * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n     * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n     * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n     * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n     * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n     * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n     *\r\n     * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n     * Full B2C functionality will be available in this library in future versions.\r\n     *\r\n     * @param configuration object for the MSAL PublicClientApplication instance\r\n     */\r\n    function PublicClientApplication(configuration) {\r\n        return _super.call(this, configuration) || this;\r\n    }\r\n    /**\r\n     * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n     * any code that follows this function will not execute.\r\n     *\r\n     * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n     * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n     *\r\n     * @param request\r\n     */\r\n    PublicClientApplication.prototype.loginRedirect = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            return __generator(this, function (_a) {\r\n                this.logger.verbose(\"loginRedirect called\");\r\n                return [2 /*return*/, this.acquireTokenRedirect(request || DEFAULT_REQUEST)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Use when initiating the login process via opening a popup window in the user's browser\r\n     *\r\n     * @param request\r\n     *\r\n     * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n     */\r\n    PublicClientApplication.prototype.loginPopup = function (request) {\r\n        this.logger.verbose(\"loginPopup called\");\r\n        return this.acquireTokenPopup(request || DEFAULT_REQUEST);\r\n    };\r\n    /**\r\n     * Silently acquire an access token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.\r\n     *\r\n     * @param {@link (SilentRequest:type)}\r\n     * @returns {Promise.<AuthenticationResult>} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n     */\r\n    PublicClientApplication.prototype.acquireTokenSilent = function (request) {\r\n        return __awaiter(this, void 0, void 0, function () {\r\n            var account, silentRequest, serverTelemetryManager, silentAuthClient, cachedToken, tokenRenewalResult, tokenRenewalError_1;\r\n            return __generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n                        this.logger.verbose(\"acquireTokenSilent called\");\r\n                        account = request.account || this.getActiveAccount();\r\n                        if (!account) {\r\n                            throw BrowserAuthError.createNoAccountError();\r\n                        }\r\n                        silentRequest = __assign(__assign(__assign({}, request), this.initializeBaseRequest(request)), { account: account, forceRefresh: request.forceRefresh || false });\r\n                        this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);\r\n                        _a.label = 1;\r\n                    case 1:\r\n                        _a.trys.push([1, 4, , 9]);\r\n                        serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, silentRequest.correlationId);\r\n                        return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority)];\r\n                    case 2:\r\n                        silentAuthClient = _a.sent();\r\n                        return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];\r\n                    case 3:\r\n                        cachedToken = _a.sent();\r\n                        this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, cachedToken);\r\n                        return [2 /*return*/, cachedToken];\r\n                    case 4:\r\n                        _a.sent();\r\n                        _a.label = 5;\r\n                    case 5:\r\n                        _a.trys.push([5, 7, , 8]);\r\n                        return [4 /*yield*/, this.acquireTokenByRefreshToken(silentRequest)];\r\n                    case 6:\r\n                        tokenRenewalResult = _a.sent();\r\n                        this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, tokenRenewalResult);\r\n                        return [2 /*return*/, tokenRenewalResult];\r\n                    case 7:\r\n                        tokenRenewalError_1 = _a.sent();\r\n                        this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError_1);\r\n                        throw tokenRenewalError_1;\r\n                    case 8: return [3 /*break*/, 9];\r\n                    case 9: return [2 /*return*/];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return PublicClientApplication;\r\n}(ClientApplication));\n\nexport { PublicClientApplication };\n//# sourceMappingURL=PublicClientApplication.js.map\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserAuthErrorMessage = {\r\n    pkceNotGenerated: {\r\n        code: \"pkce_not_created\",\r\n        desc: \"The PKCE code challenge and verifier could not be generated.\"\r\n    },\r\n    cryptoDoesNotExist: {\r\n        code: \"crypto_nonexistent\",\r\n        desc: \"The crypto object or function is not available.\"\r\n    },\r\n    httpMethodNotImplementedError: {\r\n        code: \"http_method_not_implemented\",\r\n        desc: \"The HTTP method given has not been implemented in this library.\"\r\n    },\r\n    emptyNavigateUriError: {\r\n        code: \"empty_navigate_uri\",\r\n        desc: \"Navigation URI is empty. Please check stack trace for more info.\"\r\n    },\r\n    hashEmptyError: {\r\n        code: \"hash_empty_error\",\r\n        desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash.\"\r\n    },\r\n    hashDoesNotContainStateError: {\r\n        code: \"no_state_in_hash\",\r\n        desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\r\n    },\r\n    hashDoesNotContainKnownPropertiesError: {\r\n        code: \"hash_does_not_contain_known_properties\",\r\n        desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash.\"\r\n    },\r\n    unableToParseStateError: {\r\n        code: \"unable_to_parse_state\",\r\n        desc: \"Unable to parse state. Please verify that the request originated from msal.\"\r\n    },\r\n    stateInteractionTypeMismatchError: {\r\n        code: \"state_interaction_type_mismatch\",\r\n        desc: \"Hash contains state but the interaction type does not match the caller.\"\r\n    },\r\n    interactionInProgress: {\r\n        code: \"interaction_in_progress\",\r\n        desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API.  For more visit: aka.ms/msaljs/browser-errors.\"\r\n    },\r\n    popUpWindowError: {\r\n        code: \"popup_window_error\",\r\n        desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n    },\r\n    emptyWindowError: {\r\n        code: \"empty_window_error\",\r\n        desc: \"window.open returned null or undefined window object.\"\r\n    },\r\n    userCancelledError: {\r\n        code: \"user_cancelled\",\r\n        desc: \"User cancelled the flow.\"\r\n    },\r\n    monitorPopupTimeoutError: {\r\n        code: \"monitor_window_timeout\",\r\n        desc: \"Token acquisition in popup failed due to timeout.\"\r\n    },\r\n    monitorIframeTimeoutError: {\r\n        code: \"monitor_window_timeout\",\r\n        desc: \"Token acquisition in iframe failed due to timeout.\"\r\n    },\r\n    redirectInIframeError: {\r\n        code: \"redirect_in_iframe\",\r\n        desc: \"Code flow is not supported inside an iframe. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\r\n    },\r\n    blockTokenRequestsInHiddenIframeError: {\r\n        code: \"block_iframe_reload\",\r\n        desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\r\n    },\r\n    blockAcquireTokenInPopupsError: {\r\n        code: \"block_nested_popups\",\r\n        desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\r\n    },\r\n    iframeClosedPrematurelyError: {\r\n        code: \"iframe_closed_prematurely\",\r\n        desc: \"The iframe being monitored was closed prematurely.\"\r\n    },\r\n    silentSSOInsufficientInfoError: {\r\n        code: \"silent_sso_error\",\r\n        desc: \"Silent SSO could not be completed - insufficient information was provided. Please provide either a loginHint or sid.\"\r\n    },\r\n    noAccountError: {\r\n        code: \"no_account_error\",\r\n        desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\r\n    },\r\n    silentPromptValueError: {\r\n        code: \"silent_prompt_value_error\",\r\n        desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none'.\"\r\n    },\r\n    noTokenRequestCacheError: {\r\n        code: \"no_token_request_cache_error\",\r\n        desc: \"No token request in found in cache.\"\r\n    },\r\n    unableToParseTokenRequestCacheError: {\r\n        code: \"unable_to_parse_token_request_cache_error\",\r\n        desc: \"The cached token request could not be parsed.\"\r\n    },\r\n    noCachedAuthorityError: {\r\n        code: \"no_cached_authority_error\",\r\n        desc: \"No cached authority found.\"\r\n    },\r\n    authRequestNotSet: {\r\n        code: \"auth_request_not_set_error\",\r\n        desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\r\n    },\r\n    invalidCacheType: {\r\n        code: \"invalid_cache_type\",\r\n        desc: \"Invalid cache type\"\r\n    },\r\n    notInBrowserEnvironment: {\r\n        code: \"non_browser_environment\",\r\n        desc: \"Login and token requests are not supported in non-browser environments.\"\r\n    },\r\n    databaseNotOpen: {\r\n        code: \"database_not_open\",\r\n        desc: \"Database is not open!\"\r\n    },\r\n    noNetworkConnectivity: {\r\n        code: \"no_network_connectivity\",\r\n        desc: \"No network connectivity. Check your internet connection.\"\r\n    },\r\n    postRequestFailed: {\r\n        code: \"post_request_failed\",\r\n        desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\r\n    },\r\n    getRequestFailed: {\r\n        code: \"get_request_failed\",\r\n        desc: \"Network request failed. Please check the network trace to determine root cause.\"\r\n    },\r\n    failedToParseNetworkResponse: {\r\n        code: \"failed_to_parse_response\",\r\n        desc: \"Failed to parse network response. Check network trace.\"\r\n    }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserAuthError = /** @class */ (function (_super) {\r\n    __extends(BrowserAuthError, _super);\r\n    function BrowserAuthError(errorCode, errorMessage) {\r\n        var _this = _super.call(this, errorCode, errorMessage) || this;\r\n        Object.setPrototypeOf(_this, BrowserAuthError.prototype);\r\n        _this.name = \"BrowserAuthError\";\r\n        return _this;\r\n    }\r\n    /**\r\n     * Creates an error thrown when PKCE is not implemented.\r\n     * @param errDetail\r\n     */\r\n    BrowserAuthError.createPkceNotGeneratedError = function (errDetail) {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code, BrowserAuthErrorMessage.pkceNotGenerated.desc + \" Detail:\" + errDetail);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the crypto object is unavailable.\r\n     * @param errDetail\r\n     */\r\n    BrowserAuthError.createCryptoNotAvailableError = function (errDetail) {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code, BrowserAuthErrorMessage.cryptoDoesNotExist.desc + \" Detail:\" + errDetail);\r\n    };\r\n    /**\r\n     * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\r\n     * @param method\r\n     */\r\n    BrowserAuthError.createHttpMethodNotImplementedError = function (method) {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code, BrowserAuthErrorMessage.httpMethodNotImplementedError.desc + \" Given Method: \" + method);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the navigation URI is empty.\r\n     */\r\n    BrowserAuthError.createEmptyNavigationUriError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the hash string value is unexpectedly empty.\r\n     * @param hashValue\r\n     */\r\n    BrowserAuthError.createEmptyHashError = function (hashValue) {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, BrowserAuthErrorMessage.hashEmptyError.desc + \" Given Url: \" + hashValue);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the hash string value is unexpectedly empty.\r\n     */\r\n    BrowserAuthError.createHashDoesNotContainStateError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the hash string value does not contain known properties\r\n     */\r\n    BrowserAuthError.createHashDoesNotContainKnownPropertiesError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the hash string value is unexpectedly empty.\r\n     */\r\n    BrowserAuthError.createUnableToParseStateError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\r\n     */\r\n    BrowserAuthError.createStateInteractionTypeMismatchError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\r\n     */\r\n    BrowserAuthError.createInteractionInProgressError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the popup window could not be opened.\r\n     * @param errDetail\r\n     */\r\n    BrowserAuthError.createPopupWindowError = function (errDetail) {\r\n        var errorMessage = BrowserAuthErrorMessage.popUpWindowError.desc;\r\n        errorMessage = !StringUtils.isEmpty(errDetail) ? errorMessage + \" Details: \" + errDetail : errorMessage;\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.popUpWindowError.code, errorMessage);\r\n    };\r\n    /**\r\n     * Creates an error thrown when window.open returns an empty window object.\r\n     * @param errDetail\r\n     */\r\n    BrowserAuthError.createEmptyWindowCreatedError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the user closes a popup.\r\n     */\r\n    BrowserAuthError.createUserCancelledError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code, BrowserAuthErrorMessage.userCancelledError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when monitorPopupFromHash times out for a given popup.\r\n     */\r\n    BrowserAuthError.createMonitorPopupTimeoutError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code, BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\r\n     */\r\n    BrowserAuthError.createMonitorIframeTimeoutError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code, BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when navigateWindow is called inside an iframe.\r\n     * @param windowParentCheck\r\n     */\r\n    BrowserAuthError.createRedirectInIframeError = function (windowParentCheck) {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, BrowserAuthErrorMessage.redirectInIframeError.desc + \" (window.parent !== window) => \" + windowParentCheck);\r\n    };\r\n    /**\r\n     * Creates an error thrown when an auth reload is done inside an iframe.\r\n     */\r\n    BrowserAuthError.createBlockReloadInHiddenIframeError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code, BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when a popup attempts to call an acquireToken API\r\n     * @returns\r\n     */\r\n    BrowserAuthError.createBlockAcquireTokenInPopupsError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\r\n     */\r\n    BrowserAuthError.createIframeClosedPrematurelyError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the login_hint, sid or account object is not provided in the ssoSilent API.\r\n     */\r\n    BrowserAuthError.createSilentSSOInsufficientInfoError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.silentSSOInsufficientInfoError.code, BrowserAuthErrorMessage.silentSSOInsufficientInfoError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\r\n     */\r\n    BrowserAuthError.createNoAccountError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when a given prompt value is invalid for silent requests.\r\n     */\r\n    BrowserAuthError.createSilentPromptValueError = function (givenPrompt) {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, BrowserAuthErrorMessage.silentPromptValueError.desc + \" Given value: \" + givenPrompt);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the cached token request could not be retrieved from the cache\r\n     */\r\n    BrowserAuthError.createUnableToParseTokenRequestCacheError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code, BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the token request could not be retrieved from the cache\r\n     */\r\n    BrowserAuthError.createNoTokenRequestCacheError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code, BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\r\n     */\r\n    BrowserAuthError.createAuthRequestNotSetError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code, BrowserAuthErrorMessage.authRequestNotSet.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the authority could not be retrieved from the cache\r\n     */\r\n    BrowserAuthError.createNoCachedAuthorityError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code, BrowserAuthErrorMessage.noCachedAuthorityError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown if cache type is invalid.\r\n     */\r\n    BrowserAuthError.createInvalidCacheTypeError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, \"\" + BrowserAuthErrorMessage.invalidCacheType.desc);\r\n    };\r\n    /**\r\n     * Create an error thrown when login and token requests are made from a non-browser environment\r\n     */\r\n    BrowserAuthError.createNonBrowserEnvironmentError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\r\n    };\r\n    /**\r\n     * Create an error thrown when indexDB database is not open\r\n     */\r\n    BrowserAuthError.createDatabaseNotOpenError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\r\n    };\r\n    /**\r\n     * Create an error thrown when token fetch fails due to no internet\r\n     */\r\n    BrowserAuthError.createNoNetworkConnectivityError = function () {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\r\n    };\r\n    /**\r\n     * Create an error thrown when token fetch fails due to reasons other than internet connectivity\r\n     */\r\n    BrowserAuthError.createPostRequestFailedError = function (errorDesc, endpoint) {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, BrowserAuthErrorMessage.postRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n    };\r\n    /**\r\n     * Create an error thrown when get request fails due to reasons other than internet connectivity\r\n     */\r\n    BrowserAuthError.createGetRequestFailedError = function (errorDesc, endpoint) {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, BrowserAuthErrorMessage.getRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n    };\r\n    /**\r\n     * Create an error thrown when network client fails to parse network response\r\n     */\r\n    BrowserAuthError.createFailedToParseNetworkResponseError = function (endpoint) {\r\n        return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, BrowserAuthErrorMessage.failedToParseNetworkResponse.desc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n    };\r\n    return BrowserAuthError;\r\n}(AuthError));\n\nexport { BrowserAuthError, BrowserAuthErrorMessage };\n//# sourceMappingURL=BrowserAuthError.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nfunction __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __spreadArrays };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar AuthErrorMessage = {\r\n    unexpectedError: {\r\n        code: \"unexpected_error\",\r\n        desc: \"Unexpected error in authentication.\"\r\n    }\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nvar AuthError = /** @class */ (function (_super) {\r\n    __extends(AuthError, _super);\r\n    function AuthError(errorCode, errorMessage, suberror) {\r\n        var _this = this;\r\n        var errorString = errorMessage ? errorCode + \": \" + errorMessage : errorCode;\r\n        _this = _super.call(this, errorString) || this;\r\n        Object.setPrototypeOf(_this, AuthError.prototype);\r\n        _this.errorCode = errorCode || Constants.EMPTY_STRING;\r\n        _this.errorMessage = errorMessage || \"\";\r\n        _this.subError = suberror || \"\";\r\n        _this.name = \"AuthError\";\r\n        return _this;\r\n    }\r\n    /**\r\n     * Creates an error that is thrown when something unexpected happens in the library.\r\n     * @param errDesc\r\n     */\r\n    AuthError.createUnexpectedError = function (errDesc) {\r\n        return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n    };\r\n    return AuthError;\r\n}(Error));\n\nexport { AuthError, AuthErrorMessage };\n//# sourceMappingURL=AuthError.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientAuthErrorMessage = {\r\n    clientInfoDecodingError: {\r\n        code: \"client_info_decoding_error\",\r\n        desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\r\n    },\r\n    clientInfoEmptyError: {\r\n        code: \"client_info_empty_error\",\r\n        desc: \"The client info was empty. Please review the trace to determine the root cause.\"\r\n    },\r\n    tokenParsingError: {\r\n        code: \"token_parsing_error\",\r\n        desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\r\n    },\r\n    nullOrEmptyToken: {\r\n        code: \"null_or_empty_token\",\r\n        desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\r\n    },\r\n    endpointResolutionError: {\r\n        code: \"endpoints_resolution_error\",\r\n        desc: \"Error: could not resolve endpoints. Please check network and try again.\"\r\n    },\r\n    networkError: {\r\n        code: \"network_error\",\r\n        desc: \"Network request failed. Please check network trace to determine root cause.\"\r\n    },\r\n    unableToGetOpenidConfigError: {\r\n        code: \"openid_config_error\",\r\n        desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\r\n    },\r\n    hashNotDeserialized: {\r\n        code: \"hash_not_deserialized\",\r\n        desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\r\n    },\r\n    blankGuidGenerated: {\r\n        code: \"blank_guid_generated\",\r\n        desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\r\n    },\r\n    invalidStateError: {\r\n        code: \"invalid_state\",\r\n        desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\r\n    },\r\n    stateMismatchError: {\r\n        code: \"state_mismatch\",\r\n        desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\r\n    },\r\n    stateNotFoundError: {\r\n        code: \"state_not_found\",\r\n        desc: \"State not found\"\r\n    },\r\n    nonceMismatchError: {\r\n        code: \"nonce_mismatch\",\r\n        desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\r\n    },\r\n    nonceNotFoundError: {\r\n        code: \"nonce_not_found\",\r\n        desc: \"nonce not found\"\r\n    },\r\n    noTokensFoundError: {\r\n        code: \"no_tokens_found\",\r\n        desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\r\n    },\r\n    multipleMatchingTokens: {\r\n        code: \"multiple_matching_tokens\",\r\n        desc: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n            \"Call AcquireToken again providing more requirements such as authority or account.\"\r\n    },\r\n    multipleMatchingAccounts: {\r\n        code: \"multiple_matching_accounts\",\r\n        desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\r\n    },\r\n    multipleMatchingAppMetadata: {\r\n        code: \"multiple_matching_appMetadata\",\r\n        desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\r\n    },\r\n    tokenRequestCannotBeMade: {\r\n        code: \"request_cannot_be_made\",\r\n        desc: \"Token request cannot be made without authorization code or refresh token.\"\r\n    },\r\n    appendEmptyScopeError: {\r\n        code: \"cannot_append_empty_scope\",\r\n        desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\r\n    },\r\n    removeEmptyScopeError: {\r\n        code: \"cannot_remove_empty_scope\",\r\n        desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\r\n    },\r\n    appendScopeSetError: {\r\n        code: \"cannot_append_scopeset\",\r\n        desc: \"Cannot append ScopeSet due to error.\"\r\n    },\r\n    emptyInputScopeSetError: {\r\n        code: \"empty_input_scopeset\",\r\n        desc: \"Empty input ScopeSet cannot be processed.\"\r\n    },\r\n    DeviceCodePollingCancelled: {\r\n        code: \"device_code_polling_cancelled\",\r\n        desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\r\n    },\r\n    DeviceCodeExpired: {\r\n        code: \"device_code_expired\",\r\n        desc: \"Device code is expired.\"\r\n    },\r\n    DeviceCodeUnknownError: {\r\n        code: \"device_code_unknown_error\",\r\n        desc: \"Device code stopped polling for unknown reasons.\"\r\n    },\r\n    NoAccountInSilentRequest: {\r\n        code: \"no_account_in_silent_request\",\r\n        desc: \"Please pass an account object, silent flow is not supported without account information\"\r\n    },\r\n    invalidCacheRecord: {\r\n        code: \"invalid_cache_record\",\r\n        desc: \"Cache record object was null or undefined.\"\r\n    },\r\n    invalidCacheEnvironment: {\r\n        code: \"invalid_cache_environment\",\r\n        desc: \"Invalid environment when attempting to create cache entry\"\r\n    },\r\n    noAccountFound: {\r\n        code: \"no_account_found\",\r\n        desc: \"No account found in cache for given key.\"\r\n    },\r\n    CachePluginError: {\r\n        code: \"no cache plugin set on CacheManager\",\r\n        desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\r\n    },\r\n    noCryptoObj: {\r\n        code: \"no_crypto_object\",\r\n        desc: \"No crypto object detected. This is required for the following operation: \"\r\n    },\r\n    invalidCacheType: {\r\n        code: \"invalid_cache_type\",\r\n        desc: \"Invalid cache type\"\r\n    },\r\n    unexpectedAccountType: {\r\n        code: \"unexpected_account_type\",\r\n        desc: \"Unexpected account type.\"\r\n    },\r\n    unexpectedCredentialType: {\r\n        code: \"unexpected_credential_type\",\r\n        desc: \"Unexpected credential type.\"\r\n    },\r\n    invalidAssertion: {\r\n        code: \"invalid_assertion\",\r\n        desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\r\n    },\r\n    invalidClientCredential: {\r\n        code: \"invalid_client_credential\",\r\n        desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\r\n    },\r\n    tokenRefreshRequired: {\r\n        code: \"token_refresh_required\",\r\n        desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\r\n    },\r\n    userTimeoutReached: {\r\n        code: \"user_timeout_reached\",\r\n        desc: \"User defined timeout for device code polling reached\",\r\n    },\r\n    tokenClaimsRequired: {\r\n        code: \"token_claims_cnf_required_for_signedjwt\",\r\n        desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\r\n    },\r\n    noAuthorizationCodeFromServer: {\r\n        code: \"authorization_code_missing_from_server_response\",\r\n        desc: \"Server response does not contain an authorization code to proceed\"\r\n    },\r\n    noAzureRegionDetected: {\r\n        code: \"no_azure_region_detected\",\r\n        desc: \"No azure region was detected and no fallback was made available\"\r\n    },\r\n    accessTokenEntityNullError: {\r\n        code: \"access_token_entity_null\",\r\n        desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\r\n    }\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar ClientAuthError = /** @class */ (function (_super) {\r\n    __extends(ClientAuthError, _super);\r\n    function ClientAuthError(errorCode, errorMessage) {\r\n        var _this = _super.call(this, errorCode, errorMessage) || this;\r\n        _this.name = \"ClientAuthError\";\r\n        Object.setPrototypeOf(_this, ClientAuthError.prototype);\r\n        return _this;\r\n    }\r\n    /**\r\n     * Creates an error thrown when client info object doesn't decode correctly.\r\n     * @param caughtError\r\n     */\r\n    ClientAuthError.createClientInfoDecodingError = function (caughtError) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + \" Failed with error: \" + caughtError);\r\n    };\r\n    /**\r\n     * Creates an error thrown if the client info is empty.\r\n     * @param rawClientInfo\r\n     */\r\n    ClientAuthError.createClientInfoEmptyError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code, \"\" + ClientAuthErrorMessage.clientInfoEmptyError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the id token extraction errors out.\r\n     * @param err\r\n     */\r\n    ClientAuthError.createTokenParsingError = function (caughtExtractionError) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code, ClientAuthErrorMessage.tokenParsingError.desc + \" Failed with error: \" + caughtExtractionError);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the id token string is null or empty.\r\n     * @param invalidRawTokenString\r\n     */\r\n    ClientAuthError.createTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code, ClientAuthErrorMessage.nullOrEmptyToken.desc + \" Raw Token Value: \" + invalidRawTokenString);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the endpoint discovery doesn't complete correctly.\r\n     */\r\n    ClientAuthError.createEndpointDiscoveryIncompleteError = function (errDetail) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, ClientAuthErrorMessage.endpointResolutionError.desc + \" Detail: \" + errDetail);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the fetch client throws\r\n     */\r\n    ClientAuthError.createNetworkError = function (endpoint, errDetail) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.networkError.code, ClientAuthErrorMessage.networkError.desc + \" | Fetch client threw: \" + errDetail + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\r\n     */\r\n    ClientAuthError.createUnableToGetOpenidConfigError = function (errDetail) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code, ClientAuthErrorMessage.unableToGetOpenidConfigError.desc + \" Attempted to retrieve endpoints from: \" + errDetail);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the hash cannot be deserialized.\r\n     * @param hashParamObj\r\n     */\r\n    ClientAuthError.createHashNotDeserializedError = function (hashParamObj) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code, ClientAuthErrorMessage.hashNotDeserialized.desc + \" Given Object: \" + hashParamObj);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the state cannot be parsed.\r\n     * @param invalidState\r\n     */\r\n    ClientAuthError.createInvalidStateError = function (invalidState, errorString) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" Invalid State: \" + invalidState + \", Root Err: \" + errorString);\r\n    };\r\n    /**\r\n     * Creates an error thrown when two states do not match.\r\n     */\r\n    ClientAuthError.createStateMismatchError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code, ClientAuthErrorMessage.stateMismatchError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the state is not present\r\n     * @param missingState\r\n     */\r\n    ClientAuthError.createStateNotFoundError = function (missingState) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code, ClientAuthErrorMessage.stateNotFoundError.desc + \":  \" + missingState);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the nonce does not match.\r\n     */\r\n    ClientAuthError.createNonceMismatchError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the mnonce is not present\r\n     * @param missingNonce\r\n     */\r\n    ClientAuthError.createNonceNotFoundError = function (missingNonce) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code, ClientAuthErrorMessage.nonceNotFoundError.desc + \":  \" + missingNonce);\r\n    };\r\n    /**\r\n     * Creates an error thrown when the authorization code required for a token request is null or empty.\r\n     */\r\n    ClientAuthError.createNoTokensFoundError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.noTokensFoundError.code, ClientAuthErrorMessage.noTokensFoundError.desc);\r\n    };\r\n    /**\r\n     * Throws error when multiple tokens are in cache.\r\n     */\r\n    ClientAuthError.createMultipleMatchingTokensInCacheError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, ClientAuthErrorMessage.multipleMatchingTokens.desc + \".\");\r\n    };\r\n    /**\r\n     * Throws error when multiple accounts are in cache for the given params\r\n     */\r\n    ClientAuthError.createMultipleMatchingAccountsInCacheError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code, ClientAuthErrorMessage.multipleMatchingAccounts.desc);\r\n    };\r\n    /**\r\n     * Throws error when multiple appMetada are in cache for the given clientId.\r\n     */\r\n    ClientAuthError.createMultipleMatchingAppMetadataInCacheError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code, ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\r\n    };\r\n    /**\r\n     * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\r\n     */\r\n    ClientAuthError.createTokenRequestCannotBeMadeError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\r\n    };\r\n    /**\r\n     * Throws error when attempting to append a null, undefined or empty scope to a set\r\n     * @param givenScope\r\n     */\r\n    ClientAuthError.createAppendEmptyScopeToSetError = function (givenScope) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, ClientAuthErrorMessage.appendEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n    };\r\n    /**\r\n     * Throws error when attempting to append a null, undefined or empty scope to a set\r\n     * @param givenScope\r\n     */\r\n    ClientAuthError.createRemoveEmptyScopeFromSetError = function (givenScope) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, ClientAuthErrorMessage.removeEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n    };\r\n    /**\r\n     * Throws error when attempting to append null or empty ScopeSet.\r\n     * @param appendError\r\n     */\r\n    ClientAuthError.createAppendScopeSetError = function (appendError) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, ClientAuthErrorMessage.appendScopeSetError.desc + \" Detail Error: \" + appendError);\r\n    };\r\n    /**\r\n     * Throws error if ScopeSet is null or undefined.\r\n     * @param givenScopeSet\r\n     */\r\n    ClientAuthError.createEmptyInputScopeSetError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, \"\" + ClientAuthErrorMessage.emptyInputScopeSetError.desc);\r\n    };\r\n    /**\r\n     * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\r\n     */\r\n    ClientAuthError.createDeviceCodeCancelledError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, \"\" + ClientAuthErrorMessage.DeviceCodePollingCancelled.desc);\r\n    };\r\n    /**\r\n     * Throws error if device code is expired\r\n     */\r\n    ClientAuthError.createDeviceCodeExpiredError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, \"\" + ClientAuthErrorMessage.DeviceCodeExpired.desc);\r\n    };\r\n    /**\r\n     * Throws error if device code is expired\r\n     */\r\n    ClientAuthError.createDeviceCodeUnknownError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, \"\" + ClientAuthErrorMessage.DeviceCodeUnknownError.desc);\r\n    };\r\n    /**\r\n     * Throws error when silent requests are made without an account object\r\n     */\r\n    ClientAuthError.createNoAccountInSilentRequestError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, \"\" + ClientAuthErrorMessage.NoAccountInSilentRequest.desc);\r\n    };\r\n    /**\r\n     * Throws error when cache record is null or undefined.\r\n     */\r\n    ClientAuthError.createNullOrUndefinedCacheRecord = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\r\n    };\r\n    /**\r\n     * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\r\n     */\r\n    ClientAuthError.createInvalidCacheEnvironmentError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\r\n    };\r\n    /**\r\n     * Throws error when account is not found in cache.\r\n     */\r\n    ClientAuthError.createNoAccountFoundError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\r\n    };\r\n    /**\r\n     * Throws error if ICachePlugin not set on CacheManager.\r\n     */\r\n    ClientAuthError.createCachePluginError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, \"\" + ClientAuthErrorMessage.CachePluginError.desc);\r\n    };\r\n    /**\r\n     * Throws error if crypto object not found.\r\n     * @param operationName\r\n     */\r\n    ClientAuthError.createNoCryptoObjectError = function (operationName) {\r\n        return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, \"\" + ClientAuthErrorMessage.noCryptoObj.desc + operationName);\r\n    };\r\n    /**\r\n     * Throws error if cache type is invalid.\r\n     */\r\n    ClientAuthError.createInvalidCacheTypeError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, \"\" + ClientAuthErrorMessage.invalidCacheType.desc);\r\n    };\r\n    /**\r\n     * Throws error if unexpected account type.\r\n     */\r\n    ClientAuthError.createUnexpectedAccountTypeError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, \"\" + ClientAuthErrorMessage.unexpectedAccountType.desc);\r\n    };\r\n    /**\r\n     * Throws error if unexpected credential type.\r\n     */\r\n    ClientAuthError.createUnexpectedCredentialTypeError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, \"\" + ClientAuthErrorMessage.unexpectedCredentialType.desc);\r\n    };\r\n    /**\r\n     * Throws error if client assertion is not valid.\r\n     */\r\n    ClientAuthError.createInvalidAssertionError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, \"\" + ClientAuthErrorMessage.invalidAssertion.desc);\r\n    };\r\n    /**\r\n     * Throws error if client assertion is not valid.\r\n     */\r\n    ClientAuthError.createInvalidCredentialError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, \"\" + ClientAuthErrorMessage.invalidClientCredential.desc);\r\n    };\r\n    /**\r\n     * Throws error if token cannot be retrieved from cache due to refresh being required.\r\n     */\r\n    ClientAuthError.createRefreshRequiredError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\r\n    };\r\n    /**\r\n     * Throws error if the user defined timeout is reached.\r\n     */\r\n    ClientAuthError.createUserTimeoutReachedError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\r\n    };\r\n    /*\r\n     * Throws error if token claims are not populated for a signed jwt generation\r\n     */\r\n    ClientAuthError.createTokenClaimsRequiredError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\r\n    };\r\n    /**\r\n     * Throws error when the authorization code is missing from the server response\r\n     */\r\n    ClientAuthError.createNoAuthCodeInServerResponseError = function () {\r\n        return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\r\n    };\r\n    return ClientAuthError;\r\n}(AuthError));\n\nexport { ClientAuthError, ClientAuthErrorMessage };\n//# sourceMappingURL=ClientAuthError.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { ServerError } from './ServerError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar InteractionRequiredAuthErrorMessage = [\r\n    \"interaction_required\",\r\n    \"consent_required\",\r\n    \"login_required\"\r\n];\r\nvar InteractionRequiredAuthSubErrorMessage = [\r\n    \"message_only\",\r\n    \"additional_action\",\r\n    \"basic_action\",\r\n    \"user_password_expired\",\r\n    \"consent_required\"\r\n];\r\n/**\r\n * Error thrown when user interaction is required at the auth server.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n    __extends(InteractionRequiredAuthError, _super);\r\n    function InteractionRequiredAuthError(errorCode, errorMessage, subError) {\r\n        var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n        _this.name = \"InteractionRequiredAuthError\";\r\n        Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n        return _this;\r\n    }\r\n    InteractionRequiredAuthError.isInteractionRequiredError = function (errorCode, errorString, subError) {\r\n        var isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredAuthErrorMessage.indexOf(errorCode) > -1;\r\n        var isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n        var isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredAuthErrorMessage.some(function (irErrorCode) {\r\n            return errorString.indexOf(irErrorCode) > -1;\r\n        });\r\n        return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\r\n    };\r\n    return InteractionRequiredAuthError;\r\n}(ServerError));\n\nexport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage, InteractionRequiredAuthSubErrorMessage };\n//# sourceMappingURL=InteractionRequiredAuthError.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nvar ServerError = /** @class */ (function (_super) {\r\n    __extends(ServerError, _super);\r\n    function ServerError(errorCode, errorMessage, subError) {\r\n        var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n        _this.name = \"ServerError\";\r\n        Object.setPrototypeOf(_this, ServerError.prototype);\r\n        return _this;\r\n    }\r\n    return ServerError;\r\n}(AuthError));\n\nexport { ServerError };\n//# sourceMappingURL=ServerError.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar Constants = {\r\n    LIBRARY_NAME: \"MSAL.JS\",\r\n    SKU: \"msal.js.common\",\r\n    // Prefix for all library cache entries\r\n    CACHE_PREFIX: \"msal\",\r\n    // default authority\r\n    DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n    DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n    // ADFS String\r\n    ADFS: \"adfs\",\r\n    // Default AAD Instance Discovery Endpoint\r\n    AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n    // Resource delimiter - used for certain cache entries\r\n    RESOURCE_DELIM: \"|\",\r\n    // Placeholder for non-existent account ids/objects\r\n    NO_ACCOUNT: \"NO_ACCOUNT\",\r\n    // Claims\r\n    CLAIMS: \"claims\",\r\n    // Consumer UTID\r\n    CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n    // Default scopes\r\n    OPENID_SCOPE: \"openid\",\r\n    PROFILE_SCOPE: \"profile\",\r\n    OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n    EMAIL_SCOPE: \"email\",\r\n    // Default response type for authorization code flow\r\n    CODE_RESPONSE_TYPE: \"code\",\r\n    CODE_GRANT_TYPE: \"authorization_code\",\r\n    RT_GRANT_TYPE: \"refresh_token\",\r\n    FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n    S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n    URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n    AUTHORIZATION_PENDING: \"authorization_pending\",\r\n    NOT_DEFINED: \"not_defined\",\r\n    EMPTY_STRING: \"\",\r\n    FORWARD_SLASH: \"/\",\r\n    IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n    IMDS_VERSION: \"2020-06-01\",\r\n    IMDS_TIMEOUT: 2000,\r\n    AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n    REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n    KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"]\r\n};\r\nvar OIDC_DEFAULT_SCOPES = [\r\n    Constants.OPENID_SCOPE,\r\n    Constants.PROFILE_SCOPE,\r\n    Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\nvar OIDC_SCOPES = __spreadArrays(OIDC_DEFAULT_SCOPES, [\r\n    Constants.EMAIL_SCOPE\r\n]);\r\n/**\r\n * Request header names\r\n */\r\nvar HeaderNames;\r\n(function (HeaderNames) {\r\n    HeaderNames[\"CONTENT_TYPE\"] = \"Content-Type\";\r\n    HeaderNames[\"RETRY_AFTER\"] = \"Retry-After\";\r\n    HeaderNames[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n})(HeaderNames || (HeaderNames = {}));\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nvar PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n    PersistentCacheKeys[\"ID_TOKEN\"] = \"idtoken\";\r\n    PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n    PersistentCacheKeys[\"ADAL_ID_TOKEN\"] = \"adal.idtoken\";\r\n    PersistentCacheKeys[\"ERROR\"] = \"error\";\r\n    PersistentCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n    PersistentCacheKeys[\"ACTIVE_ACCOUNT\"] = \"active-account\";\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nvar AADAuthorityConstants;\r\n(function (AADAuthorityConstants) {\r\n    AADAuthorityConstants[\"COMMON\"] = \"common\";\r\n    AADAuthorityConstants[\"ORGANIZATIONS\"] = \"organizations\";\r\n    AADAuthorityConstants[\"CONSUMERS\"] = \"consumers\";\r\n})(AADAuthorityConstants || (AADAuthorityConstants = {}));\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nvar AADServerParamKeys;\r\n(function (AADServerParamKeys) {\r\n    AADServerParamKeys[\"CLIENT_ID\"] = \"client_id\";\r\n    AADServerParamKeys[\"REDIRECT_URI\"] = \"redirect_uri\";\r\n    AADServerParamKeys[\"RESPONSE_TYPE\"] = \"response_type\";\r\n    AADServerParamKeys[\"RESPONSE_MODE\"] = \"response_mode\";\r\n    AADServerParamKeys[\"GRANT_TYPE\"] = \"grant_type\";\r\n    AADServerParamKeys[\"CLAIMS\"] = \"claims\";\r\n    AADServerParamKeys[\"SCOPE\"] = \"scope\";\r\n    AADServerParamKeys[\"ERROR\"] = \"error\";\r\n    AADServerParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n    AADServerParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n    AADServerParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n    AADServerParamKeys[\"REFRESH_TOKEN\"] = \"refresh_token\";\r\n    AADServerParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n    AADServerParamKeys[\"STATE\"] = \"state\";\r\n    AADServerParamKeys[\"NONCE\"] = \"nonce\";\r\n    AADServerParamKeys[\"PROMPT\"] = \"prompt\";\r\n    AADServerParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n    AADServerParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n    AADServerParamKeys[\"CODE\"] = \"code\";\r\n    AADServerParamKeys[\"CODE_CHALLENGE\"] = \"code_challenge\";\r\n    AADServerParamKeys[\"CODE_CHALLENGE_METHOD\"] = \"code_challenge_method\";\r\n    AADServerParamKeys[\"CODE_VERIFIER\"] = \"code_verifier\";\r\n    AADServerParamKeys[\"CLIENT_REQUEST_ID\"] = \"client-request-id\";\r\n    AADServerParamKeys[\"X_CLIENT_SKU\"] = \"x-client-SKU\";\r\n    AADServerParamKeys[\"X_CLIENT_VER\"] = \"x-client-VER\";\r\n    AADServerParamKeys[\"X_CLIENT_OS\"] = \"x-client-OS\";\r\n    AADServerParamKeys[\"X_CLIENT_CPU\"] = \"x-client-CPU\";\r\n    AADServerParamKeys[\"X_CLIENT_CURR_TELEM\"] = \"x-client-current-telemetry\";\r\n    AADServerParamKeys[\"X_CLIENT_LAST_TELEM\"] = \"x-client-last-telemetry\";\r\n    AADServerParamKeys[\"X_MS_LIB_CAPABILITY\"] = \"x-ms-lib-capability\";\r\n    AADServerParamKeys[\"POST_LOGOUT_URI\"] = \"post_logout_redirect_uri\";\r\n    AADServerParamKeys[\"ID_TOKEN_HINT\"] = \"id_token_hint\";\r\n    AADServerParamKeys[\"DEVICE_CODE\"] = \"device_code\";\r\n    AADServerParamKeys[\"CLIENT_SECRET\"] = \"client_secret\";\r\n    AADServerParamKeys[\"CLIENT_ASSERTION\"] = \"client_assertion\";\r\n    AADServerParamKeys[\"CLIENT_ASSERTION_TYPE\"] = \"client_assertion_type\";\r\n    AADServerParamKeys[\"TOKEN_TYPE\"] = \"token_type\";\r\n    AADServerParamKeys[\"REQ_CNF\"] = \"req_cnf\";\r\n    AADServerParamKeys[\"OBO_ASSERTION\"] = \"assertion\";\r\n    AADServerParamKeys[\"REQUESTED_TOKEN_USE\"] = \"requested_token_use\";\r\n    AADServerParamKeys[\"ON_BEHALF_OF\"] = \"on_behalf_of\";\r\n    AADServerParamKeys[\"FOCI\"] = \"foci\";\r\n    AADServerParamKeys[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n})(AADServerParamKeys || (AADServerParamKeys = {}));\r\n/**\r\n * Claims request keys\r\n */\r\nvar ClaimsRequestKeys;\r\n(function (ClaimsRequestKeys) {\r\n    ClaimsRequestKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n    ClaimsRequestKeys[\"XMS_CC\"] = \"xms_cc\";\r\n})(ClaimsRequestKeys || (ClaimsRequestKeys = {}));\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nvar PromptValue = {\r\n    LOGIN: \"login\",\r\n    SELECT_ACCOUNT: \"select_account\",\r\n    CONSENT: \"consent\",\r\n    NONE: \"none\",\r\n    CREATE: \"create\"\r\n};\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nvar SSOTypes;\r\n(function (SSOTypes) {\r\n    SSOTypes[\"ACCOUNT\"] = \"account\";\r\n    SSOTypes[\"SID\"] = \"sid\";\r\n    SSOTypes[\"LOGIN_HINT\"] = \"login_hint\";\r\n    SSOTypes[\"ID_TOKEN\"] = \"id_token\";\r\n    SSOTypes[\"DOMAIN_HINT\"] = \"domain_hint\";\r\n    SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n    SSOTypes[\"CONSUMERS\"] = \"consumers\";\r\n    SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n    SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nvar CodeChallengeMethodValues = {\r\n    PLAIN: \"plain\",\r\n    S256: \"S256\"\r\n};\r\n/**\r\n * allowed values for response_mode\r\n */\r\nvar ResponseMode;\r\n(function (ResponseMode) {\r\n    ResponseMode[\"QUERY\"] = \"query\";\r\n    ResponseMode[\"FRAGMENT\"] = \"fragment\";\r\n    ResponseMode[\"FORM_POST\"] = \"form_post\";\r\n})(ResponseMode || (ResponseMode = {}));\r\n/**\r\n * allowed grant_type\r\n */\r\nvar GrantType;\r\n(function (GrantType) {\r\n    GrantType[\"IMPLICIT_GRANT\"] = \"implicit\";\r\n    GrantType[\"AUTHORIZATION_CODE_GRANT\"] = \"authorization_code\";\r\n    GrantType[\"CLIENT_CREDENTIALS_GRANT\"] = \"client_credentials\";\r\n    GrantType[\"RESOURCE_OWNER_PASSWORD_GRANT\"] = \"password\";\r\n    GrantType[\"REFRESH_TOKEN_GRANT\"] = \"refresh_token\";\r\n    GrantType[\"DEVICE_CODE_GRANT\"] = \"device_code\";\r\n    GrantType[\"JWT_BEARER\"] = \"urn:ietf:params:oauth:grant-type:jwt-bearer\";\r\n})(GrantType || (GrantType = {}));\r\n/**\r\n * Account types in Cache\r\n */\r\nvar CacheAccountType;\r\n(function (CacheAccountType) {\r\n    CacheAccountType[\"MSSTS_ACCOUNT_TYPE\"] = \"MSSTS\";\r\n    CacheAccountType[\"ADFS_ACCOUNT_TYPE\"] = \"ADFS\";\r\n    CacheAccountType[\"MSAV1_ACCOUNT_TYPE\"] = \"MSA\";\r\n    CacheAccountType[\"GENERIC_ACCOUNT_TYPE\"] = \"Generic\"; // NTLM, Kerberos, FBA, Basic etc\r\n})(CacheAccountType || (CacheAccountType = {}));\r\n/**\r\n * Separators used in cache\r\n */\r\nvar Separators;\r\n(function (Separators) {\r\n    Separators[\"CACHE_KEY_SEPARATOR\"] = \"-\";\r\n    Separators[\"CLIENT_INFO_SEPARATOR\"] = \".\";\r\n})(Separators || (Separators = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CredentialType;\r\n(function (CredentialType) {\r\n    CredentialType[\"ID_TOKEN\"] = \"IdToken\";\r\n    CredentialType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n    CredentialType[\"ACCESS_TOKEN_WITH_AUTH_SCHEME\"] = \"AccessToken_With_AuthScheme\";\r\n    CredentialType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n})(CredentialType || (CredentialType = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CacheSchemaType;\r\n(function (CacheSchemaType) {\r\n    CacheSchemaType[\"ACCOUNT\"] = \"Account\";\r\n    CacheSchemaType[\"CREDENTIAL\"] = \"Credential\";\r\n    CacheSchemaType[\"ID_TOKEN\"] = \"IdToken\";\r\n    CacheSchemaType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n    CacheSchemaType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n    CacheSchemaType[\"APP_METADATA\"] = \"AppMetadata\";\r\n    CacheSchemaType[\"TEMPORARY\"] = \"TempCache\";\r\n    CacheSchemaType[\"TELEMETRY\"] = \"Telemetry\";\r\n    CacheSchemaType[\"UNDEFINED\"] = \"Undefined\";\r\n    CacheSchemaType[\"THROTTLING\"] = \"Throttling\";\r\n})(CacheSchemaType || (CacheSchemaType = {}));\r\n/**\r\n * Combine all cache types\r\n */\r\nvar CacheType;\r\n(function (CacheType) {\r\n    CacheType[CacheType[\"ADFS\"] = 1001] = \"ADFS\";\r\n    CacheType[CacheType[\"MSA\"] = 1002] = \"MSA\";\r\n    CacheType[CacheType[\"MSSTS\"] = 1003] = \"MSSTS\";\r\n    CacheType[CacheType[\"GENERIC\"] = 1004] = \"GENERIC\";\r\n    CacheType[CacheType[\"ACCESS_TOKEN\"] = 2001] = \"ACCESS_TOKEN\";\r\n    CacheType[CacheType[\"REFRESH_TOKEN\"] = 2002] = \"REFRESH_TOKEN\";\r\n    CacheType[CacheType[\"ID_TOKEN\"] = 2003] = \"ID_TOKEN\";\r\n    CacheType[CacheType[\"APP_METADATA\"] = 3001] = \"APP_METADATA\";\r\n    CacheType[CacheType[\"UNDEFINED\"] = 9999] = \"UNDEFINED\";\r\n})(CacheType || (CacheType = {}));\r\n/**\r\n * More Cache related constants\r\n */\r\nvar APP_METADATA = \"appmetadata\";\r\nvar CLIENT_INFO = \"client_info\";\r\nvar THE_FAMILY_ID = \"1\";\r\nvar AUTHORITY_METADATA_CONSTANTS = {\r\n    CACHE_KEY: \"authority-metadata\",\r\n    REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\nvar AuthorityMetadataSource;\r\n(function (AuthorityMetadataSource) {\r\n    AuthorityMetadataSource[\"CONFIG\"] = \"config\";\r\n    AuthorityMetadataSource[\"CACHE\"] = \"cache\";\r\n    AuthorityMetadataSource[\"NETWORK\"] = \"network\";\r\n})(AuthorityMetadataSource || (AuthorityMetadataSource = {}));\r\nvar SERVER_TELEM_CONSTANTS = {\r\n    SCHEMA_VERSION: 5,\r\n    MAX_CUR_HEADER_BYTES: 80,\r\n    MAX_LAST_HEADER_BYTES: 330,\r\n    MAX_CACHED_ERRORS: 50,\r\n    CACHE_KEY: \"server-telemetry\",\r\n    CATEGORY_SEPARATOR: \"|\",\r\n    VALUE_SEPARATOR: \",\",\r\n    OVERFLOW_TRUE: \"1\",\r\n    OVERFLOW_FALSE: \"0\",\r\n    UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n/**\r\n * Type of the authentication request\r\n */\r\nvar AuthenticationScheme;\r\n(function (AuthenticationScheme) {\r\n    AuthenticationScheme[\"POP\"] = \"pop\";\r\n    AuthenticationScheme[\"BEARER\"] = \"Bearer\";\r\n})(AuthenticationScheme || (AuthenticationScheme = {}));\r\n/**\r\n * Constants related to throttling\r\n */\r\nvar ThrottlingConstants = {\r\n    // Default time to throttle RequestThumbprint in seconds\r\n    DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n    // Default maximum time to throttle in seconds, overrides what the server sends back\r\n    DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n    // Prefix for storing throttling entries\r\n    THROTTLING_PREFIX: \"throttling\",\r\n    // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n    X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\r\n};\r\nvar Errors = {\r\n    INVALID_GRANT_ERROR: \"invalid_grant\",\r\n    CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n/**\r\n * Password grant parameters\r\n */\r\nvar PasswordGrantConstants;\r\n(function (PasswordGrantConstants) {\r\n    PasswordGrantConstants[\"username\"] = \"username\";\r\n    PasswordGrantConstants[\"password\"] = \"password\";\r\n})(PasswordGrantConstants || (PasswordGrantConstants = {}));\r\n/**\r\n * Response codes\r\n */\r\nvar ResponseCodes;\r\n(function (ResponseCodes) {\r\n    ResponseCodes[ResponseCodes[\"httpSuccess\"] = 200] = \"httpSuccess\";\r\n    ResponseCodes[ResponseCodes[\"httpBadRequest\"] = 400] = \"httpBadRequest\";\r\n})(ResponseCodes || (ResponseCodes = {}));\r\n/**\r\n * Region Discovery Sources\r\n */\r\nvar RegionDiscoverySources;\r\n(function (RegionDiscoverySources) {\r\n    RegionDiscoverySources[\"FAILED_AUTO_DETECTION\"] = \"1\";\r\n    RegionDiscoverySources[\"INTERNAL_CACHE\"] = \"2\";\r\n    RegionDiscoverySources[\"ENVIRONMENT_VARIABLE\"] = \"3\";\r\n    RegionDiscoverySources[\"IMDS\"] = \"4\";\r\n})(RegionDiscoverySources || (RegionDiscoverySources = {}));\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nvar RegionDiscoveryOutcomes;\r\n(function (RegionDiscoveryOutcomes) {\r\n    RegionDiscoveryOutcomes[\"CONFIGURED_MATCHES_DETECTED\"] = \"1\";\r\n    RegionDiscoveryOutcomes[\"CONFIGURED_NO_AUTO_DETECTION\"] = \"2\";\r\n    RegionDiscoveryOutcomes[\"CONFIGURED_NOT_DETECTED\"] = \"3\";\r\n    RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_SUCCESSFUL\"] = \"4\";\r\n    RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_FAILED\"] = \"5\";\r\n})(RegionDiscoveryOutcomes || (RegionDiscoveryOutcomes = {}));\r\nvar CacheOutcome;\r\n(function (CacheOutcome) {\r\n    CacheOutcome[\"NO_CACHE_HIT\"] = \"0\";\r\n    CacheOutcome[\"FORCE_REFRESH\"] = \"1\";\r\n    CacheOutcome[\"NO_CACHED_ACCESS_TOKEN\"] = \"2\";\r\n    CacheOutcome[\"CACHED_ACCESS_TOKEN_EXPIRED\"] = \"3\";\r\n    CacheOutcome[\"REFRESH_CACHED_ACCESS_TOKEN\"] = \"4\";\r\n})(CacheOutcome || (CacheOutcome = {}));\n\nexport { AADAuthorityConstants, AADServerParamKeys, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme, AuthorityMetadataSource, CLIENT_INFO, CacheAccountType, CacheOutcome, CacheSchemaType, CacheType, ClaimsRequestKeys, CodeChallengeMethodValues, Constants, CredentialType, Errors, GrantType, HeaderNames, OIDC_DEFAULT_SCOPES, OIDC_SCOPES, PasswordGrantConstants, PersistentCacheKeys, PromptValue, RegionDiscoveryOutcomes, RegionDiscoverySources, ResponseCodes, ResponseMode, SERVER_TELEM_CONSTANTS, SSOTypes, Separators, THE_FAMILY_ID, ThrottlingConstants };\n//# sourceMappingURL=Constants.js.map\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar StringUtils = /** @class */ (function () {\r\n    function StringUtils() {\r\n    }\r\n    /**\r\n     * decode a JWT\r\n     *\r\n     * @param authToken\r\n     */\r\n    StringUtils.decodeAuthToken = function (authToken) {\r\n        if (StringUtils.isEmpty(authToken)) {\r\n            throw ClientAuthError.createTokenNullOrEmptyError(authToken);\r\n        }\r\n        var tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n        var matches = tokenPartsRegex.exec(authToken);\r\n        if (!matches || matches.length < 4) {\r\n            throw ClientAuthError.createTokenParsingError(\"Given token is malformed: \" + JSON.stringify(authToken));\r\n        }\r\n        var crackedToken = {\r\n            header: matches[1],\r\n            JWSPayload: matches[2],\r\n            JWSSig: matches[3]\r\n        };\r\n        return crackedToken;\r\n    };\r\n    /**\r\n     * Check if a string is empty.\r\n     *\r\n     * @param str\r\n     */\r\n    StringUtils.isEmpty = function (str) {\r\n        return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n    };\r\n    /**\r\n     * Check if stringified object is empty\r\n     * @param strObj\r\n     */\r\n    StringUtils.isEmptyObj = function (strObj) {\r\n        if (strObj && !StringUtils.isEmpty(strObj)) {\r\n            try {\r\n                var obj = JSON.parse(strObj);\r\n                return Object.keys(obj).length === 0;\r\n            }\r\n            catch (e) { }\r\n        }\r\n        return true;\r\n    };\r\n    StringUtils.startsWith = function (str, search) {\r\n        return str.indexOf(search) === 0;\r\n    };\r\n    StringUtils.endsWith = function (str, search) {\r\n        return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\r\n    };\r\n    /**\r\n     * Parses string into an object.\r\n     *\r\n     * @param query\r\n     */\r\n    StringUtils.queryStringToObject = function (query) {\r\n        var match; // Regex for replacing addition symbol with a space\r\n        var pl = /\\+/g;\r\n        var search = /([^&=]+)=([^&]*)/g;\r\n        var decode = function (s) { return decodeURIComponent(s.replace(pl, \" \")); };\r\n        var obj = {};\r\n        match = search.exec(query);\r\n        while (match) {\r\n            obj[decode(match[1])] = decode(match[2]);\r\n            match = search.exec(query);\r\n        }\r\n        return obj;\r\n    };\r\n    /**\r\n     * Trims entries in an array.\r\n     *\r\n     * @param arr\r\n     */\r\n    StringUtils.trimArrayEntries = function (arr) {\r\n        return arr.map(function (entry) { return entry.trim(); });\r\n    };\r\n    /**\r\n     * Removes empty strings from array\r\n     * @param arr\r\n     */\r\n    StringUtils.removeEmptyStringsFromArray = function (arr) {\r\n        return arr.filter(function (entry) {\r\n            return !StringUtils.isEmpty(entry);\r\n        });\r\n    };\r\n    /**\r\n     * Attempts to parse a string into JSON\r\n     * @param str\r\n     */\r\n    StringUtils.jsonParseHelper = function (str) {\r\n        try {\r\n            return JSON.parse(str);\r\n        }\r\n        catch (e) {\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * Tests if a given string matches a given pattern, with support for wildcards and queries.\r\n     * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\r\n     * @param input String to match against\r\n     */\r\n    StringUtils.matchPattern = function (pattern, input) {\r\n        /**\r\n         * Wildcard support: https://stackoverflow.com/a/3117248/4888559\r\n         * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\r\n         */\r\n        var regex = new RegExp(pattern.replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\"));\r\n        return regex.test(input);\r\n    };\r\n    return StringUtils;\r\n}());\n\nexport { StringUtils };\n//# sourceMappingURL=StringUtils.js.map\n","import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(parent, child, allowVirtualParents) {\n    if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n    var isContained = false;\n    if (parent && child) {\n        if (allowVirtualParents) {\n            if (parent === child) {\n                isContained = true;\n            }\n            else {\n                isContained = false;\n                while (child) {\n                    var nextParent = getParent(child);\n                    if (nextParent === parent) {\n                        isContained = true;\n                        break;\n                    }\n                    child = nextParent;\n                }\n            }\n        }\n        else if (parent.contains) {\n            isContained = parent.contains(child);\n        }\n    }\n    return isContained;\n}\n//# sourceMappingURL=elementContains.js.map","import { findElementRecursive } from './findElementRecursive';\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element, attribute, doc) {\n    var elementMatch = findElementRecursive(element, function (testElement) { return testElement.hasAttribute(attribute); }, doc);\n    return elementMatch && elementMatch.getAttribute(attribute);\n}\n//# sourceMappingURL=elementContainsAttribute.js.map","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(element, matchFunction, doc) {\n    // eslint-disable-next-line no-restricted-globals\n    doc !== null && doc !== void 0 ? doc : (doc = document);\n    if (!element || element === doc.body) {\n        return null;\n    }\n    return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n//# sourceMappingURL=findElementRecursive.js.map","export var getActiveElement = function (doc) {\n    var ae = doc.activeElement;\n    while (ae === null || ae === void 0 ? void 0 : ae.shadowRoot) {\n        ae = ae.shadowRoot.activeElement;\n    }\n    return ae;\n};\n//# sourceMappingURL=getActiveElement.js.map","export var getEventTarget = function (event) {\n    var target = event.target;\n    if (target && target.shadowRoot) {\n        target = event.composedPath()[0];\n    }\n    return target;\n};\n//# sourceMappingURL=getEventTarget.js.map","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child, allowVirtualParents) {\n    var _a, _b;\n    if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n    if (!child) {\n        return null;\n    }\n    var parent = allowVirtualParents && getVirtualParent(child);\n    if (parent) {\n        return parent;\n    }\n    // Support looking for parents in shadow DOM\n    if (typeof child.assignedElements !== 'function' && ((_a = child.assignedSlot) === null || _a === void 0 ? void 0 : _a.parentNode)) {\n        // Element is slotted\n        return child.assignedSlot;\n    }\n    else if (((_b = child.parentNode) === null || _b === void 0 ? void 0 : _b.nodeType) === 11) {\n        // nodeType 11 is DOCUMENT_FRAGMENT\n        // Element is in shadow root\n        return child.parentNode.host;\n    }\n    else {\n        return child.parentNode;\n    }\n}\n//# sourceMappingURL=getParent.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child) {\n    var parent;\n    if (child && isVirtualElement(child)) {\n        parent = child._virtual.parent;\n    }\n    return parent;\n}\n//# sourceMappingURL=getVirtualParent.js.map","/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element) {\n    return element && !!element._virtual;\n}\n//# sourceMappingURL=isVirtualElement.js.map","import { findElementRecursive } from './findElementRecursive';\nimport { DATA_PORTAL_ATTRIBUTE } from './setPortalAttribute';\n/**\n * Determine whether a target is within a portal from perspective of root or optional parent.\n * This function only works against portal components that use the setPortalAttribute function.\n * If both parent and child are within the same portal this function will return false.\n * @param target - Element to query portal containment status of.\n * @param parent - Optional parent perspective. Search for containing portal stops at parent\n * (or root if parent is undefined or invalid.)\n */\nexport function portalContainsElement(target, parent, doc) {\n    var elementMatch = findElementRecursive(target, function (testElement) { return parent === testElement || testElement.hasAttribute(DATA_PORTAL_ATTRIBUTE); }, doc);\n    return elementMatch !== null && elementMatch.hasAttribute(DATA_PORTAL_ATTRIBUTE);\n}\n//# sourceMappingURL=portalContainsElement.js.map","export var DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element) {\n    element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n//# sourceMappingURL=setPortalAttribute.js.map","/**\n * Sets the virtual parent of an element.\n * Pass `undefined` as the `parent` to clear the virtual parent.\n *\n * @public\n */\nexport function setVirtualParent(child, parent) {\n    var virtualChild = child;\n    var virtualParent = parent;\n    if (!virtualChild._virtual) {\n        virtualChild._virtual = {\n            children: [],\n        };\n    }\n    var oldParent = virtualChild._virtual.parent;\n    if (oldParent && oldParent !== parent) {\n        // Remove the child from its old parent.\n        var index = oldParent._virtual.children.indexOf(virtualChild);\n        if (index > -1) {\n            oldParent._virtual.children.splice(index, 1);\n        }\n    }\n    virtualChild._virtual.parent = virtualParent || undefined;\n    if (virtualParent) {\n        if (!virtualParent._virtual) {\n            virtualParent._virtual = {\n                children: [],\n            };\n        }\n        virtualParent._virtual.children.push(virtualChild);\n    }\n}\n//# sourceMappingURL=setVirtualParent.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-0\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-0-467ee27f.woff') format('woff')\")\n        },\n        icons: {\n            'PageLink': '\\uE302',\n            'CommentSolid': '\\uE30E',\n            'ChangeEntitlements': '\\uE310',\n            'Installation': '\\uE311',\n            'WebAppBuilderModule': '\\uE313',\n            'WebAppBuilderFragment': '\\uE314',\n            'WebAppBuilderSlot': '\\uE315',\n            'BullseyeTargetEdit': '\\uE319',\n            'WebAppBuilderFragmentCreate': '\\uE31B',\n            'PageData': '\\uE31C',\n            'PageHeaderEdit': '\\uE31D',\n            'ProductList': '\\uE31E',\n            'UnpublishContent': '\\uE31F',\n            'DependencyAdd': '\\uE344',\n            'DependencyRemove': '\\uE345',\n            'EntitlementPolicy': '\\uE346',\n            'EntitlementRedemption': '\\uE347',\n            'SchoolDataSyncLogo': '\\uE34C',\n            'PinSolid12': '\\uE352',\n            'PinSolidOff12': '\\uE353',\n            'AddLink': '\\uE35E',\n            'SharepointAppIcon16': '\\uE365',\n            'DataflowsLink': '\\uE366',\n            'TimePicker': '\\uE367',\n            'UserWarning': '\\uE368',\n            'ComplianceAudit': '\\uE369',\n            'InternetSharing': '\\uE704',\n            'Brightness': '\\uE706',\n            'MapPin': '\\uE707',\n            'Airplane': '\\uE709',\n            'Tablet': '\\uE70A',\n            'QuickNote': '\\uE70B',\n            'Video': '\\uE714',\n            'People': '\\uE716',\n            'Phone': '\\uE717',\n            'Pin': '\\uE718',\n            'Shop': '\\uE719',\n            'Stop': '\\uE71A',\n            'Link': '\\uE71B',\n            'AllApps': '\\uE71D',\n            'Zoom': '\\uE71E',\n            'ZoomOut': '\\uE71F',\n            'Microphone': '\\uE720',\n            'Camera': '\\uE722',\n            'Attach': '\\uE723',\n            'Send': '\\uE724',\n            'FavoriteList': '\\uE728',\n            'PageSolid': '\\uE729',\n            'Forward': '\\uE72A',\n            'Back': '\\uE72B',\n            'Refresh': '\\uE72C',\n            'Lock': '\\uE72E',\n            'ReportHacked': '\\uE730',\n            'EMI': '\\uE731',\n            'MiniLink': '\\uE732',\n            'Blocked': '\\uE733',\n            'ReadingMode': '\\uE736',\n            'Favicon': '\\uE737',\n            'Remove': '\\uE738',\n            'Checkbox': '\\uE739',\n            'CheckboxComposite': '\\uE73A',\n            'CheckboxFill': '\\uE73B',\n            'CheckboxIndeterminate': '\\uE73C',\n            'CheckboxCompositeReversed': '\\uE73D',\n            'BackToWindow': '\\uE73F',\n            'FullScreen': '\\uE740',\n            'Print': '\\uE749',\n            'Up': '\\uE74A',\n            'Down': '\\uE74B',\n            'OEM': '\\uE74C',\n            'Save': '\\uE74E',\n            'ReturnKey': '\\uE751',\n            'Cloud': '\\uE753',\n            'Flashlight': '\\uE754',\n            'CommandPrompt': '\\uE756',\n            'Sad': '\\uE757',\n            'RealEstate': '\\uE758',\n            'SIPMove': '\\uE759',\n            'EraseTool': '\\uE75C',\n            'GripperTool': '\\uE75E',\n            'Dialpad': '\\uE75F',\n            'PageLeft': '\\uE760',\n            'PageRight': '\\uE761',\n            'MultiSelect': '\\uE762',\n            'KeyboardClassic': '\\uE765',\n            'Play': '\\uE768',\n            'Pause': '\\uE769',\n            'InkingTool': '\\uE76D',\n            'Emoji2': '\\uE76E',\n            'GripperBarHorizontal': '\\uE76F',\n            'System': '\\uE770',\n            'Personalize': '\\uE771',\n            'SearchAndApps': '\\uE773',\n            'Globe': '\\uE774',\n            'EaseOfAccess': '\\uE776',\n            'ContactInfo': '\\uE779',\n            'Unpin': '\\uE77A',\n            'Contact': '\\uE77B',\n            'Memo': '\\uE77C',\n            'IncomingCall': '\\uE77E'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-0.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-1\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-1-4d521695.woff') format('woff')\")\n        },\n        icons: {\n            'Paste': '\\uE77F',\n            'WindowsLogo': '\\uE782',\n            'Error': '\\uE783',\n            'GripperBarVertical': '\\uE784',\n            'Unlock': '\\uE785',\n            'Slideshow': '\\uE786',\n            'Trim': '\\uE78A',\n            'AutoEnhanceOn': '\\uE78D',\n            'AutoEnhanceOff': '\\uE78E',\n            'Color': '\\uE790',\n            'SaveAs': '\\uE792',\n            'Light': '\\uE793',\n            'Filters': '\\uE795',\n            'AspectRatio': '\\uE799',\n            'Contrast': '\\uE7A1',\n            'Redo': '\\uE7A6',\n            'Crop': '\\uE7A8',\n            'PhotoCollection': '\\uE7AA',\n            'Album': '\\uE7AB',\n            'Rotate': '\\uE7AD',\n            'PanoIndicator': '\\uE7B0',\n            'Translate': '\\uE7B2',\n            'RedEye': '\\uE7B3',\n            'ViewOriginal': '\\uE7B4',\n            'ThumbnailView': '\\uE7B6',\n            'Package': '\\uE7B8',\n            'Telemarketer': '\\uE7B9',\n            'Warning': '\\uE7BA',\n            'Financial': '\\uE7BB',\n            'Education': '\\uE7BE',\n            'ShoppingCart': '\\uE7BF',\n            'Train': '\\uE7C0',\n            'Move': '\\uE7C2',\n            'TouchPointer': '\\uE7C9',\n            'Merge': '\\uE7D5',\n            'TurnRight': '\\uE7DB',\n            'Ferry': '\\uE7E3',\n            'Highlight': '\\uE7E6',\n            'PowerButton': '\\uE7E8',\n            'Tab': '\\uE7E9',\n            'Admin': '\\uE7EF',\n            'TVMonitor': '\\uE7F4',\n            'Speakers': '\\uE7F5',\n            'Game': '\\uE7FC',\n            'HorizontalTabKey': '\\uE7FD',\n            'UnstackSelected': '\\uE7FE',\n            'StackIndicator': '\\uE7FF',\n            'Nav2DMapView': '\\uE800',\n            'StreetsideSplitMinimize': '\\uE802',\n            'Car': '\\uE804',\n            'Bus': '\\uE806',\n            'EatDrink': '\\uE807',\n            'SeeDo': '\\uE808',\n            'LocationCircle': '\\uE80E',\n            'Home': '\\uE80F',\n            'SwitcherStartEnd': '\\uE810',\n            'ParkingLocation': '\\uE811',\n            'IncidentTriangle': '\\uE814',\n            'Touch': '\\uE815',\n            'MapDirections': '\\uE816',\n            'CaretHollow': '\\uE817',\n            'CaretSolid': '\\uE818',\n            'History': '\\uE81C',\n            'Location': '\\uE81D',\n            'MapLayers': '\\uE81E',\n            'SearchNearby': '\\uE820',\n            'Work': '\\uE821',\n            'Recent': '\\uE823',\n            'Hotel': '\\uE824',\n            'Bank': '\\uE825',\n            'LocationDot': '\\uE827',\n            'Dictionary': '\\uE82D',\n            'ChromeBack': '\\uE830',\n            'FolderOpen': '\\uE838',\n            'PinnedFill': '\\uE842',\n            'RevToggleKey': '\\uE845',\n            'USB': '\\uE88E',\n            'Previous': '\\uE892',\n            'Next': '\\uE893',\n            'Sync': '\\uE895',\n            'Help': '\\uE897',\n            'Emoji': '\\uE899',\n            'MailForward': '\\uE89C',\n            'ClosePane': '\\uE89F',\n            'OpenPane': '\\uE8A0',\n            'PreviewLink': '\\uE8A1',\n            'ZoomIn': '\\uE8A3',\n            'Bookmarks': '\\uE8A4',\n            'Document': '\\uE8A5',\n            'ProtectedDocument': '\\uE8A6',\n            'OpenInNewWindow': '\\uE8A7',\n            'MailFill': '\\uE8A8',\n            'ViewAll': '\\uE8A9',\n            'Switch': '\\uE8AB',\n            'Rename': '\\uE8AC',\n            'Go': '\\uE8AD',\n            'Remote': '\\uE8AF',\n            'SelectAll': '\\uE8B3',\n            'Orientation': '\\uE8B4',\n            'Import': '\\uE8B5'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-1.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-10\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-10-c4ded8e4.woff') format('woff')\")\n        },\n        icons: {\n            'ViewListGroup': '\\uF248',\n            'ViewListTree': '\\uF249',\n            'TriggerAuto': '\\uF24A',\n            'TriggerUser': '\\uF24B',\n            'PivotChart': '\\uF24C',\n            'StackedBarChart': '\\uF24D',\n            'StackedLineChart': '\\uF24E',\n            'BuildQueue': '\\uF24F',\n            'BuildQueueNew': '\\uF250',\n            'UserFollowed': '\\uF25C',\n            'ContactLink': '\\uF25F',\n            'Stack': '\\uF26F',\n            'Bullseye': '\\uF272',\n            'VennDiagram': '\\uF273',\n            'FiveTileGrid': '\\uF274',\n            'FocalPoint': '\\uF277',\n            'Insert': '\\uF278',\n            'RingerRemove': '\\uF279',\n            'TeamsLogoInverse': '\\uF27A',\n            'TeamsLogo': '\\uF27B',\n            'TeamsLogoFill': '\\uF27C',\n            'SkypeForBusinessLogoFill': '\\uF27D',\n            'SharepointLogo': '\\uF27E',\n            'SharepointLogoFill': '\\uF27F',\n            'DelveLogo': '\\uF280',\n            'DelveLogoFill': '\\uF281',\n            'OfficeVideoLogo': '\\uF282',\n            'OfficeVideoLogoFill': '\\uF283',\n            'ExchangeLogo': '\\uF284',\n            'ExchangeLogoFill': '\\uF285',\n            'Signin': '\\uF286',\n            'DocumentApproval': '\\uF28B',\n            'CloneToDesktop': '\\uF28C',\n            'InstallToDrive': '\\uF28D',\n            'Blur': '\\uF28E',\n            'Build': '\\uF28F',\n            'ProcessMetaTask': '\\uF290',\n            'BranchFork2': '\\uF291',\n            'BranchLocked': '\\uF292',\n            'BranchCommit': '\\uF293',\n            'BranchCompare': '\\uF294',\n            'BranchMerge': '\\uF295',\n            'BranchPullRequest': '\\uF296',\n            'BranchSearch': '\\uF297',\n            'BranchShelveset': '\\uF298',\n            'RawSource': '\\uF299',\n            'MergeDuplicate': '\\uF29A',\n            'RowsGroup': '\\uF29B',\n            'RowsChild': '\\uF29C',\n            'Deploy': '\\uF29D',\n            'Redeploy': '\\uF29E',\n            'ServerEnviroment': '\\uF29F',\n            'VisioDiagram': '\\uF2A0',\n            'HighlightMappedShapes': '\\uF2A1',\n            'TextCallout': '\\uF2A2',\n            'IconSetsFlag': '\\uF2A4',\n            'VisioLogo': '\\uF2A7',\n            'VisioLogoFill': '\\uF2A8',\n            'VisioDocument': '\\uF2A9',\n            'TimelineProgress': '\\uF2AA',\n            'TimelineDelivery': '\\uF2AB',\n            'Backlog': '\\uF2AC',\n            'TeamFavorite': '\\uF2AD',\n            'TaskGroup': '\\uF2AE',\n            'TaskGroupMirrored': '\\uF2AF',\n            'ScopeTemplate': '\\uF2B0',\n            'AssessmentGroupTemplate': '\\uF2B1',\n            'NewTeamProject': '\\uF2B2',\n            'CommentAdd': '\\uF2B3',\n            'CommentNext': '\\uF2B4',\n            'CommentPrevious': '\\uF2B5',\n            'ShopServer': '\\uF2B6',\n            'LocaleLanguage': '\\uF2B7',\n            'QueryList': '\\uF2B8',\n            'UserSync': '\\uF2B9',\n            'UserPause': '\\uF2BA',\n            'StreamingOff': '\\uF2BB',\n            'ArrowTallUpLeft': '\\uF2BD',\n            'ArrowTallUpRight': '\\uF2BE',\n            'ArrowTallDownLeft': '\\uF2BF',\n            'ArrowTallDownRight': '\\uF2C0',\n            'FieldEmpty': '\\uF2C1',\n            'FieldFilled': '\\uF2C2',\n            'FieldChanged': '\\uF2C3',\n            'FieldNotChanged': '\\uF2C4',\n            'RingerOff': '\\uF2C5',\n            'PlayResume': '\\uF2C6',\n            'BulletedList2': '\\uF2C7',\n            'BulletedList2Mirrored': '\\uF2C8',\n            'ImageCrosshair': '\\uF2C9',\n            'GitGraph': '\\uF2CA',\n            'Repo': '\\uF2CB',\n            'RepoSolid': '\\uF2CC',\n            'FolderQuery': '\\uF2CD',\n            'FolderList': '\\uF2CE',\n            'FolderListMirrored': '\\uF2CF',\n            'LocationOutline': '\\uF2D0',\n            'POISolid': '\\uF2D1',\n            'CalculatorNotEqualTo': '\\uF2D2',\n            'BoxSubtractSolid': '\\uF2D3'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-10.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-11\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-11-2a8393d6.woff') format('woff')\")\n        },\n        icons: {\n            'BoxAdditionSolid': '\\uF2D4',\n            'BoxMultiplySolid': '\\uF2D5',\n            'BoxPlaySolid': '\\uF2D6',\n            'BoxCheckmarkSolid': '\\uF2D7',\n            'CirclePauseSolid': '\\uF2D8',\n            'CirclePause': '\\uF2D9',\n            'MSNVideosSolid': '\\uF2DA',\n            'CircleStopSolid': '\\uF2DB',\n            'CircleStop': '\\uF2DC',\n            'NavigateBack': '\\uF2DD',\n            'NavigateBackMirrored': '\\uF2DE',\n            'NavigateForward': '\\uF2DF',\n            'NavigateForwardMirrored': '\\uF2E0',\n            'UnknownSolid': '\\uF2E1',\n            'UnknownMirroredSolid': '\\uF2E2',\n            'CircleAddition': '\\uF2E3',\n            'CircleAdditionSolid': '\\uF2E4',\n            'FilePDB': '\\uF2E5',\n            'FileTemplate': '\\uF2E6',\n            'FileSQL': '\\uF2E7',\n            'FileJAVA': '\\uF2E8',\n            'FileASPX': '\\uF2E9',\n            'FileCSS': '\\uF2EA',\n            'FileSass': '\\uF2EB',\n            'FileLess': '\\uF2EC',\n            'FileHTML': '\\uF2ED',\n            'JavaScriptLanguage': '\\uF2EE',\n            'CSharpLanguage': '\\uF2EF',\n            'CSharp': '\\uF2F0',\n            'VisualBasicLanguage': '\\uF2F1',\n            'VB': '\\uF2F2',\n            'CPlusPlusLanguage': '\\uF2F3',\n            'CPlusPlus': '\\uF2F4',\n            'FSharpLanguage': '\\uF2F5',\n            'FSharp': '\\uF2F6',\n            'TypeScriptLanguage': '\\uF2F7',\n            'PythonLanguage': '\\uF2F8',\n            'PY': '\\uF2F9',\n            'CoffeeScript': '\\uF2FA',\n            'MarkDownLanguage': '\\uF2FB',\n            'FullWidth': '\\uF2FE',\n            'FullWidthEdit': '\\uF2FF',\n            'Plug': '\\uF300',\n            'PlugSolid': '\\uF301',\n            'PlugConnected': '\\uF302',\n            'PlugDisconnected': '\\uF303',\n            'UnlockSolid': '\\uF304',\n            'Variable': '\\uF305',\n            'Parameter': '\\uF306',\n            'CommentUrgent': '\\uF307',\n            'Storyboard': '\\uF308',\n            'DiffInline': '\\uF309',\n            'DiffSideBySide': '\\uF30A',\n            'ImageDiff': '\\uF30B',\n            'ImagePixel': '\\uF30C',\n            'FileBug': '\\uF30D',\n            'FileCode': '\\uF30E',\n            'FileComment': '\\uF30F',\n            'BusinessHoursSign': '\\uF310',\n            'FileImage': '\\uF311',\n            'FileSymlink': '\\uF312',\n            'AutoFillTemplate': '\\uF313',\n            'WorkItem': '\\uF314',\n            'WorkItemBug': '\\uF315',\n            'LogRemove': '\\uF316',\n            'ColumnOptions': '\\uF317',\n            'Packages': '\\uF318',\n            'BuildIssue': '\\uF319',\n            'AssessmentGroup': '\\uF31A',\n            'VariableGroup': '\\uF31B',\n            'FullHistory': '\\uF31C',\n            'Wheelchair': '\\uF31F',\n            'SingleColumnEdit': '\\uF321',\n            'DoubleColumnEdit': '\\uF322',\n            'TripleColumnEdit': '\\uF323',\n            'ColumnLeftTwoThirdsEdit': '\\uF324',\n            'ColumnRightTwoThirdsEdit': '\\uF325',\n            'StreamLogo': '\\uF329',\n            'PassiveAuthentication': '\\uF32A',\n            'AlertSolid': '\\uF331',\n            'MegaphoneSolid': '\\uF332',\n            'TaskSolid': '\\uF333',\n            'ConfigurationSolid': '\\uF334',\n            'BugSolid': '\\uF335',\n            'CrownSolid': '\\uF336',\n            'Trophy2Solid': '\\uF337',\n            'QuickNoteSolid': '\\uF338',\n            'ConstructionConeSolid': '\\uF339',\n            'PageListSolid': '\\uF33A',\n            'PageListMirroredSolid': '\\uF33B',\n            'StarburstSolid': '\\uF33C',\n            'ReadingModeSolid': '\\uF33D',\n            'SadSolid': '\\uF33E',\n            'HealthSolid': '\\uF33F',\n            'ShieldSolid': '\\uF340',\n            'GiftBoxSolid': '\\uF341',\n            'ShoppingCartSolid': '\\uF342',\n            'MailSolid': '\\uF343',\n            'ChatSolid': '\\uF344',\n            'RibbonSolid': '\\uF345'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-11.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-12\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-12-7e945a1e.woff') format('woff')\")\n        },\n        icons: {\n            'FinancialSolid': '\\uF346',\n            'FinancialMirroredSolid': '\\uF347',\n            'HeadsetSolid': '\\uF348',\n            'PermissionsSolid': '\\uF349',\n            'ParkingSolid': '\\uF34A',\n            'ParkingMirroredSolid': '\\uF34B',\n            'DiamondSolid': '\\uF34C',\n            'AsteriskSolid': '\\uF34D',\n            'OfflineStorageSolid': '\\uF34E',\n            'BankSolid': '\\uF34F',\n            'DecisionSolid': '\\uF350',\n            'Parachute': '\\uF351',\n            'ParachuteSolid': '\\uF352',\n            'FiltersSolid': '\\uF353',\n            'ColorSolid': '\\uF354',\n            'ReviewSolid': '\\uF355',\n            'ReviewRequestSolid': '\\uF356',\n            'ReviewRequestMirroredSolid': '\\uF357',\n            'ReviewResponseSolid': '\\uF358',\n            'FeedbackRequestSolid': '\\uF359',\n            'FeedbackRequestMirroredSolid': '\\uF35A',\n            'FeedbackResponseSolid': '\\uF35B',\n            'WorkItemBar': '\\uF35C',\n            'WorkItemBarSolid': '\\uF35D',\n            'Separator': '\\uF35E',\n            'NavigateExternalInline': '\\uF35F',\n            'PlanView': '\\uF360',\n            'TimelineMatrixView': '\\uF361',\n            'EngineeringGroup': '\\uF362',\n            'ProjectCollection': '\\uF363',\n            'CaretBottomRightCenter8': '\\uF364',\n            'CaretBottomLeftCenter8': '\\uF365',\n            'CaretTopRightCenter8': '\\uF366',\n            'CaretTopLeftCenter8': '\\uF367',\n            'DonutChart': '\\uF368',\n            'ChevronUnfold10': '\\uF369',\n            'ChevronFold10': '\\uF36A',\n            'DoubleChevronDown8': '\\uF36B',\n            'DoubleChevronUp8': '\\uF36C',\n            'DoubleChevronLeft8': '\\uF36D',\n            'DoubleChevronRight8': '\\uF36E',\n            'ChevronDownEnd6': '\\uF36F',\n            'ChevronUpEnd6': '\\uF370',\n            'ChevronLeftEnd6': '\\uF371',\n            'ChevronRightEnd6': '\\uF372',\n            'ContextMenu': '\\uF37C',\n            'AzureAPIManagement': '\\uF37F',\n            'AzureServiceEndpoint': '\\uF380',\n            'VSTSLogo': '\\uF381',\n            'VSTSAltLogo1': '\\uF382',\n            'VSTSAltLogo2': '\\uF383',\n            'FileTypeSolution': '\\uF387',\n            'WordLogoInverse16': '\\uF390',\n            'WordLogo16': '\\uF391',\n            'WordLogoFill16': '\\uF392',\n            'PowerPointLogoInverse16': '\\uF393',\n            'PowerPointLogo16': '\\uF394',\n            'PowerPointLogoFill16': '\\uF395',\n            'ExcelLogoInverse16': '\\uF396',\n            'ExcelLogo16': '\\uF397',\n            'ExcelLogoFill16': '\\uF398',\n            'OneNoteLogoInverse16': '\\uF399',\n            'OneNoteLogo16': '\\uF39A',\n            'OneNoteLogoFill16': '\\uF39B',\n            'OutlookLogoInverse16': '\\uF39C',\n            'OutlookLogo16': '\\uF39D',\n            'OutlookLogoFill16': '\\uF39E',\n            'PublisherLogoInverse16': '\\uF39F',\n            'PublisherLogo16': '\\uF3A0',\n            'PublisherLogoFill16': '\\uF3A1',\n            'VisioLogoInverse16': '\\uF3A2',\n            'VisioLogo16': '\\uF3A3',\n            'VisioLogoFill16': '\\uF3A4',\n            'TestBeaker': '\\uF3A5',\n            'TestBeakerSolid': '\\uF3A6',\n            'TestExploreSolid': '\\uF3A7',\n            'TestAutoSolid': '\\uF3A8',\n            'TestUserSolid': '\\uF3A9',\n            'TestImpactSolid': '\\uF3AA',\n            'TestPlan': '\\uF3AB',\n            'TestStep': '\\uF3AC',\n            'TestParameter': '\\uF3AD',\n            'TestSuite': '\\uF3AE',\n            'TestCase': '\\uF3AF',\n            'Sprint': '\\uF3B0',\n            'SignOut': '\\uF3B1',\n            'TriggerApproval': '\\uF3B2',\n            'Rocket': '\\uF3B3',\n            'AzureKeyVault': '\\uF3B4',\n            'Onboarding': '\\uF3BA',\n            'Transition': '\\uF3BC',\n            'LikeSolid': '\\uF3BF',\n            'DislikeSolid': '\\uF3C0',\n            'CRMCustomerInsightsApp': '\\uF3C8',\n            'EditCreate': '\\uF3C9',\n            'PlayReverseResume': '\\uF3E4',\n            'PlayReverse': '\\uF3E5',\n            'SearchData': '\\uF3F1',\n            'UnSetColor': '\\uF3F9',\n            'DeclineCall': '\\uF405'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-12.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-13\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-13-c3989a02.woff') format('woff')\")\n        },\n        icons: {\n            'RectangularClipping': '\\uF407',\n            'TeamsLogo16': '\\uF40A',\n            'TeamsLogoFill16': '\\uF40B',\n            'Spacer': '\\uF40D',\n            'SkypeLogo16': '\\uF40E',\n            'SkypeForBusinessLogo16': '\\uF40F',\n            'SkypeForBusinessLogoFill16': '\\uF410',\n            'FilterSolid': '\\uF412',\n            'MailUndelivered': '\\uF415',\n            'MailTentative': '\\uF416',\n            'MailTentativeMirrored': '\\uF417',\n            'MailReminder': '\\uF418',\n            'ReceiptUndelivered': '\\uF419',\n            'ReceiptTentative': '\\uF41A',\n            'ReceiptTentativeMirrored': '\\uF41B',\n            'Inbox': '\\uF41C',\n            'IRMReply': '\\uF41D',\n            'IRMReplyMirrored': '\\uF41E',\n            'IRMForward': '\\uF41F',\n            'IRMForwardMirrored': '\\uF420',\n            'VoicemailIRM': '\\uF421',\n            'EventAccepted': '\\uF422',\n            'EventTentative': '\\uF423',\n            'EventTentativeMirrored': '\\uF424',\n            'EventDeclined': '\\uF425',\n            'IDBadge': '\\uF427',\n            'BackgroundColor': '\\uF42B',\n            'OfficeFormsLogoInverse16': '\\uF433',\n            'OfficeFormsLogo': '\\uF434',\n            'OfficeFormsLogoFill': '\\uF435',\n            'OfficeFormsLogo16': '\\uF436',\n            'OfficeFormsLogoFill16': '\\uF437',\n            'OfficeFormsLogoInverse24': '\\uF43A',\n            'OfficeFormsLogo24': '\\uF43B',\n            'OfficeFormsLogoFill24': '\\uF43C',\n            'PageLock': '\\uF43F',\n            'NotExecuted': '\\uF440',\n            'NotImpactedSolid': '\\uF441',\n            'FieldReadOnly': '\\uF442',\n            'FieldRequired': '\\uF443',\n            'BacklogBoard': '\\uF444',\n            'ExternalBuild': '\\uF445',\n            'ExternalTFVC': '\\uF446',\n            'ExternalXAML': '\\uF447',\n            'IssueSolid': '\\uF448',\n            'DefectSolid': '\\uF449',\n            'LadybugSolid': '\\uF44A',\n            'NugetLogo': '\\uF44C',\n            'TFVCLogo': '\\uF44D',\n            'ProjectLogo32': '\\uF47E',\n            'ProjectLogoFill32': '\\uF47F',\n            'ProjectLogo16': '\\uF480',\n            'ProjectLogoFill16': '\\uF481',\n            'SwayLogo32': '\\uF482',\n            'SwayLogoFill32': '\\uF483',\n            'SwayLogo16': '\\uF484',\n            'SwayLogoFill16': '\\uF485',\n            'ClassNotebookLogo32': '\\uF486',\n            'ClassNotebookLogoFill32': '\\uF487',\n            'ClassNotebookLogo16': '\\uF488',\n            'ClassNotebookLogoFill16': '\\uF489',\n            'ClassNotebookLogoInverse32': '\\uF48A',\n            'ClassNotebookLogoInverse16': '\\uF48B',\n            'StaffNotebookLogo32': '\\uF48C',\n            'StaffNotebookLogoFill32': '\\uF48D',\n            'StaffNotebookLogo16': '\\uF48E',\n            'StaffNotebookLogoFill16': '\\uF48F',\n            'StaffNotebookLogoInverted32': '\\uF490',\n            'StaffNotebookLogoInverted16': '\\uF491',\n            'KaizalaLogo': '\\uF492',\n            'TaskLogo': '\\uF493',\n            'ProtectionCenterLogo32': '\\uF494',\n            'GallatinLogo': '\\uF496',\n            'Globe2': '\\uF49A',\n            'Guitar': '\\uF49B',\n            'Breakfast': '\\uF49C',\n            'Brunch': '\\uF49D',\n            'BeerMug': '\\uF49E',\n            'Vacation': '\\uF49F',\n            'Teeth': '\\uF4A0',\n            'Taxi': '\\uF4A1',\n            'Chopsticks': '\\uF4A2',\n            'SyncOccurence': '\\uF4A3',\n            'UnsyncOccurence': '\\uF4A4',\n            'GIF': '\\uF4A9',\n            'PrimaryCalendar': '\\uF4AE',\n            'SearchCalendar': '\\uF4AF',\n            'VideoOff': '\\uF4B0',\n            'MicrosoftFlowLogo': '\\uF4B1',\n            'BusinessCenterLogo': '\\uF4B2',\n            'ToDoLogoBottom': '\\uF4B3',\n            'ToDoLogoTop': '\\uF4B4',\n            'EditSolid12': '\\uF4B5',\n            'EditSolidMirrored12': '\\uF4B6',\n            'UneditableSolid12': '\\uF4B7',\n            'UneditableSolidMirrored12': '\\uF4B8',\n            'UneditableMirrored': '\\uF4B9',\n            'AdminALogo32': '\\uF4BA',\n            'AdminALogoFill32': '\\uF4BB',\n            'ToDoLogoInverse': '\\uF4BC'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-13.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-14\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-14-5cf58db8.woff') format('woff')\")\n        },\n        icons: {\n            'Snooze': '\\uF4BD',\n            'WaffleOffice365': '\\uF4E0',\n            'ImageSearch': '\\uF4E8',\n            'NewsSearch': '\\uF4E9',\n            'VideoSearch': '\\uF4EA',\n            'R': '\\uF4EB',\n            'FontColorA': '\\uF4EC',\n            'FontColorSwatch': '\\uF4ED',\n            'LightWeight': '\\uF4EE',\n            'NormalWeight': '\\uF4EF',\n            'SemiboldWeight': '\\uF4F0',\n            'GroupObject': '\\uF4F1',\n            'UngroupObject': '\\uF4F2',\n            'AlignHorizontalLeft': '\\uF4F3',\n            'AlignHorizontalCenter': '\\uF4F4',\n            'AlignHorizontalRight': '\\uF4F5',\n            'AlignVerticalTop': '\\uF4F6',\n            'AlignVerticalCenter': '\\uF4F7',\n            'AlignVerticalBottom': '\\uF4F8',\n            'HorizontalDistributeCenter': '\\uF4F9',\n            'VerticalDistributeCenter': '\\uF4FA',\n            'Ellipse': '\\uF4FB',\n            'Line': '\\uF4FC',\n            'Octagon': '\\uF4FD',\n            'Hexagon': '\\uF4FE',\n            'Pentagon': '\\uF4FF',\n            'RightTriangle': '\\uF500',\n            'HalfCircle': '\\uF501',\n            'QuarterCircle': '\\uF502',\n            'ThreeQuarterCircle': '\\uF503',\n            '6PointStar': '\\uF504',\n            '12PointStar': '\\uF505',\n            'ArrangeBringToFront': '\\uF506',\n            'ArrangeSendToBack': '\\uF507',\n            'ArrangeSendBackward': '\\uF508',\n            'ArrangeBringForward': '\\uF509',\n            'BorderDash': '\\uF50A',\n            'BorderDot': '\\uF50B',\n            'LineStyle': '\\uF50C',\n            'LineThickness': '\\uF50D',\n            'WindowEdit': '\\uF50E',\n            'HintText': '\\uF50F',\n            'MediaAdd': '\\uF510',\n            'AnchorLock': '\\uF511',\n            'AutoHeight': '\\uF512',\n            'ChartSeries': '\\uF513',\n            'ChartXAngle': '\\uF514',\n            'ChartYAngle': '\\uF515',\n            'Combobox': '\\uF516',\n            'LineSpacing': '\\uF517',\n            'Padding': '\\uF518',\n            'PaddingTop': '\\uF519',\n            'PaddingBottom': '\\uF51A',\n            'PaddingLeft': '\\uF51B',\n            'PaddingRight': '\\uF51C',\n            'NavigationFlipper': '\\uF51D',\n            'AlignJustify': '\\uF51E',\n            'TextOverflow': '\\uF51F',\n            'VisualsFolder': '\\uF520',\n            'VisualsStore': '\\uF521',\n            'PictureCenter': '\\uF522',\n            'PictureFill': '\\uF523',\n            'PicturePosition': '\\uF524',\n            'PictureStretch': '\\uF525',\n            'PictureTile': '\\uF526',\n            'Slider': '\\uF527',\n            'SliderHandleSize': '\\uF528',\n            'DefaultRatio': '\\uF529',\n            'NumberSequence': '\\uF52A',\n            'GUID': '\\uF52B',\n            'ReportAdd': '\\uF52C',\n            'DashboardAdd': '\\uF52D',\n            'MapPinSolid': '\\uF52E',\n            'WebPublish': '\\uF52F',\n            'PieSingleSolid': '\\uF530',\n            'BlockedSolid': '\\uF531',\n            'DrillDown': '\\uF532',\n            'DrillDownSolid': '\\uF533',\n            'DrillExpand': '\\uF534',\n            'DrillShow': '\\uF535',\n            'SpecialEvent': '\\uF536',\n            'OneDriveFolder16': '\\uF53B',\n            'FunctionalManagerDashboard': '\\uF542',\n            'BIDashboard': '\\uF543',\n            'CodeEdit': '\\uF544',\n            'RenewalCurrent': '\\uF545',\n            'RenewalFuture': '\\uF546',\n            'SplitObject': '\\uF547',\n            'BulkUpload': '\\uF548',\n            'DownloadDocument': '\\uF549',\n            'GreetingCard': '\\uF54B',\n            'Flower': '\\uF54E',\n            'WaitlistConfirm': '\\uF550',\n            'WaitlistConfirmMirrored': '\\uF551',\n            'LaptopSecure': '\\uF552',\n            'DragObject': '\\uF553',\n            'EntryView': '\\uF554',\n            'EntryDecline': '\\uF555',\n            'ContactCardSettings': '\\uF556',\n            'ContactCardSettingsMirrored': '\\uF557'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-14.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-15\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-15-3807251b.woff') format('woff')\")\n        },\n        icons: {\n            'CalendarSettings': '\\uF558',\n            'CalendarSettingsMirrored': '\\uF559',\n            'HardDriveLock': '\\uF55A',\n            'HardDriveUnlock': '\\uF55B',\n            'AccountManagement': '\\uF55C',\n            'ReportWarning': '\\uF569',\n            'TransitionPop': '\\uF5B2',\n            'TransitionPush': '\\uF5B3',\n            'TransitionEffect': '\\uF5B4',\n            'LookupEntities': '\\uF5B5',\n            'ExploreData': '\\uF5B6',\n            'AddBookmark': '\\uF5B7',\n            'SearchBookmark': '\\uF5B8',\n            'DrillThrough': '\\uF5B9',\n            'MasterDatabase': '\\uF5BA',\n            'CertifiedDatabase': '\\uF5BB',\n            'MaximumValue': '\\uF5BC',\n            'MinimumValue': '\\uF5BD',\n            'VisualStudioIDELogo32': '\\uF5D0',\n            'PasteAsText': '\\uF5D5',\n            'PasteAsCode': '\\uF5D6',\n            'BrowserTab': '\\uF5D7',\n            'BrowserTabScreenshot': '\\uF5D8',\n            'DesktopScreenshot': '\\uF5D9',\n            'FileYML': '\\uF5DA',\n            'ClipboardSolid': '\\uF5DC',\n            'FabricUserFolder': '\\uF5E5',\n            'FabricNetworkFolder': '\\uF5E6',\n            'BullseyeTarget': '\\uF5F0',\n            'AnalyticsView': '\\uF5F1',\n            'Video360Generic': '\\uF609',\n            'Untag': '\\uF60B',\n            'Leave': '\\uF627',\n            'Trending12': '\\uF62D',\n            'Blocked12': '\\uF62E',\n            'Warning12': '\\uF62F',\n            'CheckedOutByOther12': '\\uF630',\n            'CheckedOutByYou12': '\\uF631',\n            'CircleShapeSolid': '\\uF63C',\n            'SquareShapeSolid': '\\uF63D',\n            'TriangleShapeSolid': '\\uF63E',\n            'DropShapeSolid': '\\uF63F',\n            'RectangleShapeSolid': '\\uF640',\n            'ZoomToFit': '\\uF649',\n            'InsertColumnsLeft': '\\uF64A',\n            'InsertColumnsRight': '\\uF64B',\n            'InsertRowsAbove': '\\uF64C',\n            'InsertRowsBelow': '\\uF64D',\n            'DeleteColumns': '\\uF64E',\n            'DeleteRows': '\\uF64F',\n            'DeleteRowsMirrored': '\\uF650',\n            'DeleteTable': '\\uF651',\n            'AccountBrowser': '\\uF652',\n            'VersionControlPush': '\\uF664',\n            'StackedColumnChart2': '\\uF666',\n            'TripleColumnWide': '\\uF66E',\n            'QuadColumn': '\\uF66F',\n            'WhiteBoardApp16': '\\uF673',\n            'WhiteBoardApp32': '\\uF674',\n            'PinnedSolid': '\\uF676',\n            'InsertSignatureLine': '\\uF677',\n            'ArrangeByFrom': '\\uF678',\n            'Phishing': '\\uF679',\n            'CreateMailRule': '\\uF67A',\n            'PublishCourse': '\\uF699',\n            'DictionaryRemove': '\\uF69A',\n            'UserRemove': '\\uF69B',\n            'UserEvent': '\\uF69C',\n            'Encryption': '\\uF69D',\n            'PasswordField': '\\uF6AA',\n            'OpenInNewTab': '\\uF6AB',\n            'Hide3': '\\uF6AC',\n            'VerifiedBrandSolid': '\\uF6AD',\n            'MarkAsProtected': '\\uF6AE',\n            'AuthenticatorApp': '\\uF6B1',\n            'WebTemplate': '\\uF6B2',\n            'DefenderTVM': '\\uF6B3',\n            'MedalSolid': '\\uF6B9',\n            'D365TalentLearn': '\\uF6BB',\n            'D365TalentInsight': '\\uF6BC',\n            'D365TalentHRCore': '\\uF6BD',\n            'BacklogList': '\\uF6BF',\n            'ButtonControl': '\\uF6C0',\n            'TableGroup': '\\uF6D9',\n            'MountainClimbing': '\\uF6DB',\n            'TagUnknown': '\\uF6DF',\n            'TagUnknownMirror': '\\uF6E0',\n            'TagUnknown12': '\\uF6E1',\n            'TagUnknown12Mirror': '\\uF6E2',\n            'Link12': '\\uF6E3',\n            'Presentation': '\\uF6E4',\n            'Presentation12': '\\uF6E5',\n            'Lock12': '\\uF6E6',\n            'BuildDefinition': '\\uF6E9',\n            'ReleaseDefinition': '\\uF6EA',\n            'SaveTemplate': '\\uF6EC',\n            'UserGauge': '\\uF6ED',\n            'BlockedSiteSolid12': '\\uF70A',\n            'TagSolid': '\\uF70E',\n            'OfficeChat': '\\uF70F'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-15.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-16\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-16-9cf93f3b.woff') format('woff')\")\n        },\n        icons: {\n            'OfficeChatSolid': '\\uF710',\n            'MailSchedule': '\\uF72E',\n            'WarningSolid': '\\uF736',\n            'Blocked2Solid': '\\uF737',\n            'SkypeCircleArrow': '\\uF747',\n            'SkypeArrow': '\\uF748',\n            'SyncStatus': '\\uF751',\n            'SyncStatusSolid': '\\uF752',\n            'ProjectDocument': '\\uF759',\n            'ToDoLogoOutline': '\\uF75B',\n            'VisioOnlineLogoFill32': '\\uF75F',\n            'VisioOnlineLogo32': '\\uF760',\n            'VisioOnlineLogoCloud32': '\\uF761',\n            'VisioDiagramSync': '\\uF762',\n            'Event12': '\\uF763',\n            'EventDateMissed12': '\\uF764',\n            'UserOptional': '\\uF767',\n            'ResponsesMenu': '\\uF768',\n            'DoubleDownArrow': '\\uF769',\n            'DistributeDown': '\\uF76A',\n            'BookmarkReport': '\\uF76B',\n            'FilterSettings': '\\uF76C',\n            'GripperDotsVertical': '\\uF772',\n            'MailAttached': '\\uF774',\n            'AddIn': '\\uF775',\n            'LinkedDatabase': '\\uF779',\n            'TableLink': '\\uF77A',\n            'PromotedDatabase': '\\uF77D',\n            'BarChartVerticalFilter': '\\uF77E',\n            'BarChartVerticalFilterSolid': '\\uF77F',\n            'MicOff2': '\\uF781',\n            'MicrosoftTranslatorLogo': '\\uF782',\n            'ShowTimeAs': '\\uF787',\n            'FileRequest': '\\uF789',\n            'WorkItemAlert': '\\uF78F',\n            'PowerBILogo16': '\\uF790',\n            'PowerBILogoBackplate16': '\\uF791',\n            'BulletedListText': '\\uF792',\n            'BulletedListBullet': '\\uF793',\n            'BulletedListTextMirrored': '\\uF794',\n            'BulletedListBulletMirrored': '\\uF795',\n            'NumberedListText': '\\uF796',\n            'NumberedListNumber': '\\uF797',\n            'NumberedListTextMirrored': '\\uF798',\n            'NumberedListNumberMirrored': '\\uF799',\n            'RemoveLinkChain': '\\uF79A',\n            'RemoveLinkX': '\\uF79B',\n            'FabricTextHighlight': '\\uF79C',\n            'ClearFormattingA': '\\uF79D',\n            'ClearFormattingEraser': '\\uF79E',\n            'Photo2Fill': '\\uF79F',\n            'IncreaseIndentText': '\\uF7A0',\n            'IncreaseIndentArrow': '\\uF7A1',\n            'DecreaseIndentText': '\\uF7A2',\n            'DecreaseIndentArrow': '\\uF7A3',\n            'IncreaseIndentTextMirrored': '\\uF7A4',\n            'IncreaseIndentArrowMirrored': '\\uF7A5',\n            'DecreaseIndentTextMirrored': '\\uF7A6',\n            'DecreaseIndentArrowMirrored': '\\uF7A7',\n            'CheckListText': '\\uF7A8',\n            'CheckListCheck': '\\uF7A9',\n            'CheckListTextMirrored': '\\uF7AA',\n            'CheckListCheckMirrored': '\\uF7AB',\n            'NumberSymbol': '\\uF7AC',\n            'Coupon': '\\uF7BC',\n            'VerifiedBrand': '\\uF7BD',\n            'ReleaseGate': '\\uF7BE',\n            'ReleaseGateCheck': '\\uF7BF',\n            'ReleaseGateError': '\\uF7C0',\n            'M365InvoicingLogo': '\\uF7C1',\n            'RemoveFromShoppingList': '\\uF7D5',\n            'ShieldAlert': '\\uF7D7',\n            'FabricTextHighlightComposite': '\\uF7DA',\n            'Dataflows': '\\uF7DD',\n            'GenericScanFilled': '\\uF7DE',\n            'DiagnosticDataBarTooltip': '\\uF7DF',\n            'SaveToMobile': '\\uF7E0',\n            'Orientation2': '\\uF7E1',\n            'ScreenCast': '\\uF7E2',\n            'ShowGrid': '\\uF7E3',\n            'SnapToGrid': '\\uF7E4',\n            'ContactList': '\\uF7E5',\n            'NewMail': '\\uF7EA',\n            'EyeShadow': '\\uF7EB',\n            'FabricFolderConfirm': '\\uF7FF',\n            'InformationBarriers': '\\uF803',\n            'CommentActive': '\\uF804',\n            'ColumnVerticalSectionEdit': '\\uF806',\n            'WavingHand': '\\uF807',\n            'ShakeDevice': '\\uF80A',\n            'SmartGlassRemote': '\\uF80B',\n            'Rotate90Clockwise': '\\uF80D',\n            'Rotate90CounterClockwise': '\\uF80E',\n            'CampaignTemplate': '\\uF811',\n            'ChartTemplate': '\\uF812',\n            'PageListFilter': '\\uF813',\n            'SecondaryNav': '\\uF814',\n            'ColumnVerticalSection': '\\uF81E',\n            'SkypeCircleSlash': '\\uF825',\n            'SkypeSlash': '\\uF826'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-16.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-17\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-17-0c4ed701.woff') format('woff')\")\n        },\n        icons: {\n            'CustomizeToolbar': '\\uF828',\n            'DuplicateRow': '\\uF82A',\n            'RemoveFromTrash': '\\uF82B',\n            'MailOptions': '\\uF82C',\n            'Childof': '\\uF82D',\n            'Footer': '\\uF82E',\n            'Header': '\\uF82F',\n            'BarChartVerticalFill': '\\uF830',\n            'StackedColumnChart2Fill': '\\uF831',\n            'PlainText': '\\uF834',\n            'AccessibiltyChecker': '\\uF835',\n            'DatabaseSync': '\\uF842',\n            'ReservationOrders': '\\uF845',\n            'TabOneColumn': '\\uF849',\n            'TabTwoColumn': '\\uF84A',\n            'TabThreeColumn': '\\uF84B',\n            'BulletedTreeList': '\\uF84C',\n            'MicrosoftTranslatorLogoGreen': '\\uF852',\n            'MicrosoftTranslatorLogoBlue': '\\uF853',\n            'InternalInvestigation': '\\uF854',\n            'AddReaction': '\\uF85D',\n            'ContactHeart': '\\uF862',\n            'VisuallyImpaired': '\\uF866',\n            'EventToDoLogo': '\\uF869',\n            'Variable2': '\\uF86D',\n            'ModelingView': '\\uF871',\n            'DisconnectVirtualMachine': '\\uF873',\n            'ReportLock': '\\uF875',\n            'Uneditable2': '\\uF876',\n            'Uneditable2Mirrored': '\\uF877',\n            'BarChartVerticalEdit': '\\uF89D',\n            'GlobalNavButtonActive': '\\uF89F',\n            'PollResults': '\\uF8A0',\n            'Rerun': '\\uF8A1',\n            'QandA': '\\uF8A2',\n            'QandAMirror': '\\uF8A3',\n            'BookAnswers': '\\uF8A4',\n            'AlertSettings': '\\uF8B6',\n            'TrimStart': '\\uF8BB',\n            'TrimEnd': '\\uF8BC',\n            'TableComputed': '\\uF8F5',\n            'DecreaseIndentLegacy': '\\uE290',\n            'IncreaseIndentLegacy': '\\uE291',\n            'SizeLegacy': '\\uE2B2'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-17.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-2\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-2-63c99abf.woff') format('woff')\")\n        },\n        icons: {\n            'Picture': '\\uE8B9',\n            'ChromeClose': '\\uE8BB',\n            'ShowResults': '\\uE8BC',\n            'Message': '\\uE8BD',\n            'CalendarDay': '\\uE8BF',\n            'CalendarWeek': '\\uE8C0',\n            'MailReplyAll': '\\uE8C2',\n            'Read': '\\uE8C3',\n            'Cut': '\\uE8C6',\n            'PaymentCard': '\\uE8C7',\n            'Copy': '\\uE8C8',\n            'Important': '\\uE8C9',\n            'MailReply': '\\uE8CA',\n            'GotoToday': '\\uE8D1',\n            'Font': '\\uE8D2',\n            'FontColor': '\\uE8D3',\n            'FolderFill': '\\uE8D5',\n            'Permissions': '\\uE8D7',\n            'DisableUpdates': '\\uE8D8',\n            'Unfavorite': '\\uE8D9',\n            'Italic': '\\uE8DB',\n            'Underline': '\\uE8DC',\n            'Bold': '\\uE8DD',\n            'MoveToFolder': '\\uE8DE',\n            'Dislike': '\\uE8E0',\n            'Like': '\\uE8E1',\n            'AlignCenter': '\\uE8E3',\n            'OpenFile': '\\uE8E5',\n            'ClearSelection': '\\uE8E6',\n            'FontDecrease': '\\uE8E7',\n            'FontIncrease': '\\uE8E8',\n            'FontSize': '\\uE8E9',\n            'CellPhone': '\\uE8EA',\n            'RepeatOne': '\\uE8ED',\n            'RepeatAll': '\\uE8EE',\n            'Calculator': '\\uE8EF',\n            'Library': '\\uE8F1',\n            'PostUpdate': '\\uE8F3',\n            'NewFolder': '\\uE8F4',\n            'CalendarReply': '\\uE8F5',\n            'UnsyncFolder': '\\uE8F6',\n            'SyncFolder': '\\uE8F7',\n            'BlockContact': '\\uE8F8',\n            'Accept': '\\uE8FB',\n            'BulletedList': '\\uE8FD',\n            'Preview': '\\uE8FF',\n            'News': '\\uE900',\n            'Chat': '\\uE901',\n            'Group': '\\uE902',\n            'World': '\\uE909',\n            'Comment': '\\uE90A',\n            'DockLeft': '\\uE90C',\n            'DockRight': '\\uE90D',\n            'Repair': '\\uE90F',\n            'Accounts': '\\uE910',\n            'Street': '\\uE913',\n            'RadioBullet': '\\uE915',\n            'Stopwatch': '\\uE916',\n            'Clock': '\\uE917',\n            'WorldClock': '\\uE918',\n            'AlarmClock': '\\uE919',\n            'Photo': '\\uE91B',\n            'ActionCenter': '\\uE91C',\n            'Hospital': '\\uE91D',\n            'Timer': '\\uE91E',\n            'FullCircleMask': '\\uE91F',\n            'LocationFill': '\\uE920',\n            'ChromeMinimize': '\\uE921',\n            'ChromeRestore': '\\uE923',\n            'Annotation': '\\uE924',\n            'Fingerprint': '\\uE928',\n            'Handwriting': '\\uE929',\n            'ChromeFullScreen': '\\uE92D',\n            'Completed': '\\uE930',\n            'Label': '\\uE932',\n            'FlickDown': '\\uE935',\n            'FlickUp': '\\uE936',\n            'FlickLeft': '\\uE937',\n            'FlickRight': '\\uE938',\n            'MiniExpand': '\\uE93A',\n            'MiniContract': '\\uE93B',\n            'Streaming': '\\uE93E',\n            'MusicInCollection': '\\uE940',\n            'OneDriveLogo': '\\uE941',\n            'CompassNW': '\\uE942',\n            'Code': '\\uE943',\n            'LightningBolt': '\\uE945',\n            'CalculatorMultiply': '\\uE947',\n            'CalculatorAddition': '\\uE948',\n            'CalculatorSubtract': '\\uE949',\n            'CalculatorPercentage': '\\uE94C',\n            'CalculatorEqualTo': '\\uE94E',\n            'PrintfaxPrinterFile': '\\uE956',\n            'StorageOptical': '\\uE958',\n            'Communications': '\\uE95A',\n            'Headset': '\\uE95B',\n            'Health': '\\uE95E',\n            'Webcam2': '\\uE960',\n            'FrontCamera': '\\uE96B',\n            'ChevronUpSmall': '\\uE96D'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-2.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-3\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-3-089e217a.woff') format('woff')\")\n        },\n        icons: {\n            'ChevronDownSmall': '\\uE96E',\n            'ChevronLeftSmall': '\\uE96F',\n            'ChevronRightSmall': '\\uE970',\n            'ChevronUpMed': '\\uE971',\n            'ChevronDownMed': '\\uE972',\n            'ChevronLeftMed': '\\uE973',\n            'ChevronRightMed': '\\uE974',\n            'Devices2': '\\uE975',\n            'PC1': '\\uE977',\n            'PresenceChickletVideo': '\\uE979',\n            'Reply': '\\uE97A',\n            'HalfAlpha': '\\uE97E',\n            'ConstructionCone': '\\uE98F',\n            'DoubleChevronLeftMed': '\\uE991',\n            'Volume0': '\\uE992',\n            'Volume1': '\\uE993',\n            'Volume2': '\\uE994',\n            'Volume3': '\\uE995',\n            'Chart': '\\uE999',\n            'Robot': '\\uE99A',\n            'Manufacturing': '\\uE99C',\n            'LockSolid': '\\uE9A2',\n            'FitPage': '\\uE9A6',\n            'FitWidth': '\\uE9A7',\n            'BidiLtr': '\\uE9AA',\n            'BidiRtl': '\\uE9AB',\n            'RightDoubleQuote': '\\uE9B1',\n            'Sunny': '\\uE9BD',\n            'CloudWeather': '\\uE9BE',\n            'Cloudy': '\\uE9BF',\n            'PartlyCloudyDay': '\\uE9C0',\n            'PartlyCloudyNight': '\\uE9C1',\n            'ClearNight': '\\uE9C2',\n            'RainShowersDay': '\\uE9C3',\n            'Rain': '\\uE9C4',\n            'Thunderstorms': '\\uE9C6',\n            'RainSnow': '\\uE9C7',\n            'Snow': '\\uE9C8',\n            'BlowingSnow': '\\uE9C9',\n            'Frigid': '\\uE9CA',\n            'Fog': '\\uE9CB',\n            'Squalls': '\\uE9CC',\n            'Duststorm': '\\uE9CD',\n            'Unknown': '\\uE9CE',\n            'Precipitation': '\\uE9CF',\n            'Ribbon': '\\uE9D1',\n            'AreaChart': '\\uE9D2',\n            'Assign': '\\uE9D3',\n            'FlowChart': '\\uE9D4',\n            'CheckList': '\\uE9D5',\n            'Diagnostic': '\\uE9D9',\n            'Generate': '\\uE9DA',\n            'LineChart': '\\uE9E6',\n            'Equalizer': '\\uE9E9',\n            'BarChartHorizontal': '\\uE9EB',\n            'BarChartVertical': '\\uE9EC',\n            'Freezing': '\\uE9EF',\n            'FunnelChart': '\\uE9F1',\n            'Processing': '\\uE9F5',\n            'Quantity': '\\uE9F8',\n            'ReportDocument': '\\uE9F9',\n            'StackColumnChart': '\\uE9FC',\n            'SnowShowerDay': '\\uE9FD',\n            'HailDay': '\\uEA00',\n            'WorkFlow': '\\uEA01',\n            'HourGlass': '\\uEA03',\n            'StoreLogoMed20': '\\uEA04',\n            'TimeSheet': '\\uEA05',\n            'TriangleSolid': '\\uEA08',\n            'UpgradeAnalysis': '\\uEA0B',\n            'VideoSolid': '\\uEA0C',\n            'RainShowersNight': '\\uEA0F',\n            'SnowShowerNight': '\\uEA11',\n            'Teamwork': '\\uEA12',\n            'HailNight': '\\uEA13',\n            'PeopleAdd': '\\uEA15',\n            'Glasses': '\\uEA16',\n            'DateTime2': '\\uEA17',\n            'Shield': '\\uEA18',\n            'Header1': '\\uEA19',\n            'PageAdd': '\\uEA1A',\n            'NumberedList': '\\uEA1C',\n            'PowerBILogo': '\\uEA1E',\n            'Info2': '\\uEA1F',\n            'MusicInCollectionFill': '\\uEA36',\n            'Asterisk': '\\uEA38',\n            'ErrorBadge': '\\uEA39',\n            'CircleFill': '\\uEA3B',\n            'Record2': '\\uEA3F',\n            'AllAppsMirrored': '\\uEA40',\n            'BookmarksMirrored': '\\uEA41',\n            'BulletedListMirrored': '\\uEA42',\n            'CaretHollowMirrored': '\\uEA45',\n            'CaretSolidMirrored': '\\uEA46',\n            'ChromeBackMirrored': '\\uEA47',\n            'ClearSelectionMirrored': '\\uEA48',\n            'ClosePaneMirrored': '\\uEA49',\n            'DockLeftMirrored': '\\uEA4C',\n            'DoubleChevronLeftMedMirrored': '\\uEA4D',\n            'GoMirrored': '\\uEA4F'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-3.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-4\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-4-a656cc0a.woff') format('woff')\")\n        },\n        icons: {\n            'HelpMirrored': '\\uEA51',\n            'ImportMirrored': '\\uEA52',\n            'ImportAllMirrored': '\\uEA53',\n            'ListMirrored': '\\uEA55',\n            'MailForwardMirrored': '\\uEA56',\n            'MailReplyMirrored': '\\uEA57',\n            'MailReplyAllMirrored': '\\uEA58',\n            'MiniContractMirrored': '\\uEA59',\n            'MiniExpandMirrored': '\\uEA5A',\n            'OpenPaneMirrored': '\\uEA5B',\n            'ParkingLocationMirrored': '\\uEA5E',\n            'SendMirrored': '\\uEA63',\n            'ShowResultsMirrored': '\\uEA65',\n            'ThumbnailViewMirrored': '\\uEA67',\n            'Media': '\\uEA69',\n            'Devices3': '\\uEA6C',\n            'Focus': '\\uEA6F',\n            'VideoLightOff': '\\uEA74',\n            'Lightbulb': '\\uEA80',\n            'StatusTriangle': '\\uEA82',\n            'VolumeDisabled': '\\uEA85',\n            'Puzzle': '\\uEA86',\n            'EmojiNeutral': '\\uEA87',\n            'EmojiDisappointed': '\\uEA88',\n            'HomeSolid': '\\uEA8A',\n            'Ringer': '\\uEA8F',\n            'PDF': '\\uEA90',\n            'HeartBroken': '\\uEA92',\n            'StoreLogo16': '\\uEA96',\n            'MultiSelectMirrored': '\\uEA98',\n            'Broom': '\\uEA99',\n            'AddToShoppingList': '\\uEA9A',\n            'Cocktails': '\\uEA9D',\n            'Wines': '\\uEABF',\n            'Articles': '\\uEAC1',\n            'Cycling': '\\uEAC7',\n            'DietPlanNotebook': '\\uEAC8',\n            'Pill': '\\uEACB',\n            'ExerciseTracker': '\\uEACC',\n            'HandsFree': '\\uEAD0',\n            'Medical': '\\uEAD4',\n            'Running': '\\uEADA',\n            'Weights': '\\uEADB',\n            'Trackers': '\\uEADF',\n            'AddNotes': '\\uEAE3',\n            'AllCurrency': '\\uEAE4',\n            'BarChart4': '\\uEAE7',\n            'CirclePlus': '\\uEAEE',\n            'Coffee': '\\uEAEF',\n            'Cotton': '\\uEAF3',\n            'Market': '\\uEAFC',\n            'Money': '\\uEAFD',\n            'PieDouble': '\\uEB04',\n            'PieSingle': '\\uEB05',\n            'RemoveFilter': '\\uEB08',\n            'Savings': '\\uEB0B',\n            'Sell': '\\uEB0C',\n            'StockDown': '\\uEB0F',\n            'StockUp': '\\uEB11',\n            'Lamp': '\\uEB19',\n            'Source': '\\uEB1B',\n            'MSNVideos': '\\uEB1C',\n            'Cricket': '\\uEB1E',\n            'Golf': '\\uEB1F',\n            'Baseball': '\\uEB20',\n            'Soccer': '\\uEB21',\n            'MoreSports': '\\uEB22',\n            'AutoRacing': '\\uEB24',\n            'CollegeHoops': '\\uEB25',\n            'CollegeFootball': '\\uEB26',\n            'ProFootball': '\\uEB27',\n            'ProHockey': '\\uEB28',\n            'Rugby': '\\uEB2D',\n            'SubstitutionsIn': '\\uEB31',\n            'Tennis': '\\uEB33',\n            'Arrivals': '\\uEB34',\n            'Design': '\\uEB3C',\n            'Website': '\\uEB41',\n            'Drop': '\\uEB42',\n            'HistoricalWeather': '\\uEB43',\n            'SkiResorts': '\\uEB45',\n            'Snowflake': '\\uEB46',\n            'BusSolid': '\\uEB47',\n            'FerrySolid': '\\uEB48',\n            'AirplaneSolid': '\\uEB4C',\n            'TrainSolid': '\\uEB4D',\n            'Ticket': '\\uEB54',\n            'WifiWarning4': '\\uEB63',\n            'Devices4': '\\uEB66',\n            'AzureLogo': '\\uEB6A',\n            'BingLogo': '\\uEB6B',\n            'MSNLogo': '\\uEB6C',\n            'OutlookLogoInverse': '\\uEB6D',\n            'OfficeLogo': '\\uEB6E',\n            'SkypeLogo': '\\uEB6F',\n            'Door': '\\uEB75',\n            'EditMirrored': '\\uEB7E',\n            'GiftCard': '\\uEB8E',\n            'DoubleBookmark': '\\uEB8F',\n            'StatusErrorFull': '\\uEB90'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-4.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-5\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-5-f95ba260.woff') format('woff')\")\n        },\n        icons: {\n            'Certificate': '\\uEB95',\n            'FastForward': '\\uEB9D',\n            'Rewind': '\\uEB9E',\n            'Photo2': '\\uEB9F',\n            'OpenSource': '\\uEBC2',\n            'Movers': '\\uEBCD',\n            'CloudDownload': '\\uEBD3',\n            'Family': '\\uEBDA',\n            'WindDirection': '\\uEBE6',\n            'Bug': '\\uEBE8',\n            'SiteScan': '\\uEBEC',\n            'BrowserScreenShot': '\\uEBED',\n            'F12DevTools': '\\uEBEE',\n            'CSS': '\\uEBEF',\n            'JS': '\\uEBF0',\n            'DeliveryTruck': '\\uEBF4',\n            'ReminderPerson': '\\uEBF7',\n            'ReminderGroup': '\\uEBF8',\n            'ReminderTime': '\\uEBF9',\n            'TabletMode': '\\uEBFC',\n            'Umbrella': '\\uEC04',\n            'NetworkTower': '\\uEC05',\n            'CityNext': '\\uEC06',\n            'CityNext2': '\\uEC07',\n            'Section': '\\uEC0C',\n            'OneNoteLogoInverse': '\\uEC0D',\n            'ToggleFilled': '\\uEC11',\n            'ToggleBorder': '\\uEC12',\n            'SliderThumb': '\\uEC13',\n            'ToggleThumb': '\\uEC14',\n            'Documentation': '\\uEC17',\n            'Badge': '\\uEC1B',\n            'Giftbox': '\\uEC1F',\n            'VisualStudioLogo': '\\uEC22',\n            'HomeGroup': '\\uEC26',\n            'ExcelLogoInverse': '\\uEC28',\n            'WordLogoInverse': '\\uEC29',\n            'PowerPointLogoInverse': '\\uEC2A',\n            'Cafe': '\\uEC32',\n            'SpeedHigh': '\\uEC4A',\n            'Commitments': '\\uEC4D',\n            'ThisPC': '\\uEC4E',\n            'MusicNote': '\\uEC4F',\n            'MicOff': '\\uEC54',\n            'PlaybackRate1x': '\\uEC57',\n            'EdgeLogo': '\\uEC60',\n            'CompletedSolid': '\\uEC61',\n            'AlbumRemove': '\\uEC62',\n            'MessageFill': '\\uEC70',\n            'TabletSelected': '\\uEC74',\n            'MobileSelected': '\\uEC75',\n            'LaptopSelected': '\\uEC76',\n            'TVMonitorSelected': '\\uEC77',\n            'DeveloperTools': '\\uEC7A',\n            'Shapes': '\\uEC7C',\n            'InsertTextBox': '\\uEC7D',\n            'LowerBrightness': '\\uEC8A',\n            'WebComponents': '\\uEC8B',\n            'OfflineStorage': '\\uEC8C',\n            'DOM': '\\uEC8D',\n            'CloudUpload': '\\uEC8E',\n            'ScrollUpDown': '\\uEC8F',\n            'DateTime': '\\uEC92',\n            'Event': '\\uECA3',\n            'Cake': '\\uECA4',\n            'Org': '\\uECA6',\n            'PartyLeader': '\\uECA7',\n            'DRM': '\\uECA8',\n            'CloudAdd': '\\uECA9',\n            'AppIconDefault': '\\uECAA',\n            'Photo2Add': '\\uECAB',\n            'Photo2Remove': '\\uECAC',\n            'Calories': '\\uECAD',\n            'POI': '\\uECAF',\n            'AddTo': '\\uECC8',\n            'RadioBtnOff': '\\uECCA',\n            'RadioBtnOn': '\\uECCB',\n            'ExploreContent': '\\uECCD',\n            'Product': '\\uECDC',\n            'ProgressLoopInner': '\\uECDE',\n            'ProgressLoopOuter': '\\uECDF',\n            'Blocked2': '\\uECE4',\n            'FangBody': '\\uECEB',\n            'Toolbox': '\\uECED',\n            'PageHeader': '\\uECEE',\n            'ChatInviteFriend': '\\uECFE',\n            'Brush': '\\uECFF',\n            'Shirt': '\\uED00',\n            'Crown': '\\uED01',\n            'Diamond': '\\uED02',\n            'ScaleUp': '\\uED09',\n            'QRCode': '\\uED14',\n            'Feedback': '\\uED15',\n            'SharepointLogoInverse': '\\uED18',\n            'YammerLogo': '\\uED19',\n            'Hide': '\\uED1A',\n            'Uneditable': '\\uED1D',\n            'ReturnToSession': '\\uED24',\n            'OpenFolderHorizontal': '\\uED25',\n            'CalendarMirrored': '\\uED28'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-5.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-6\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-6-ef6fd590.woff') format('woff')\")\n        },\n        icons: {\n            'SwayLogoInverse': '\\uED29',\n            'OutOfOffice': '\\uED34',\n            'Trophy': '\\uED3F',\n            'ReopenPages': '\\uED50',\n            'EmojiTabSymbols': '\\uED58',\n            'AADLogo': '\\uED68',\n            'AccessLogo': '\\uED69',\n            'AdminALogoInverse32': '\\uED6A',\n            'AdminCLogoInverse32': '\\uED6B',\n            'AdminDLogoInverse32': '\\uED6C',\n            'AdminELogoInverse32': '\\uED6D',\n            'AdminLLogoInverse32': '\\uED6E',\n            'AdminMLogoInverse32': '\\uED6F',\n            'AdminOLogoInverse32': '\\uED70',\n            'AdminPLogoInverse32': '\\uED71',\n            'AdminSLogoInverse32': '\\uED72',\n            'AdminYLogoInverse32': '\\uED73',\n            'DelveLogoInverse': '\\uED76',\n            'ExchangeLogoInverse': '\\uED78',\n            'LyncLogo': '\\uED79',\n            'OfficeVideoLogoInverse': '\\uED7A',\n            'SocialListeningLogo': '\\uED7C',\n            'VisioLogoInverse': '\\uED7D',\n            'Balloons': '\\uED7E',\n            'Cat': '\\uED7F',\n            'MailAlert': '\\uED80',\n            'MailCheck': '\\uED81',\n            'MailLowImportance': '\\uED82',\n            'MailPause': '\\uED83',\n            'MailRepeat': '\\uED84',\n            'SecurityGroup': '\\uED85',\n            'Table': '\\uED86',\n            'VoicemailForward': '\\uED87',\n            'VoicemailReply': '\\uED88',\n            'Waffle': '\\uED89',\n            'RemoveEvent': '\\uED8A',\n            'EventInfo': '\\uED8B',\n            'ForwardEvent': '\\uED8C',\n            'WipePhone': '\\uED8D',\n            'AddOnlineMeeting': '\\uED8E',\n            'JoinOnlineMeeting': '\\uED8F',\n            'RemoveLink': '\\uED90',\n            'PeopleBlock': '\\uED91',\n            'PeopleRepeat': '\\uED92',\n            'PeopleAlert': '\\uED93',\n            'PeoplePause': '\\uED94',\n            'TransferCall': '\\uED95',\n            'AddPhone': '\\uED96',\n            'UnknownCall': '\\uED97',\n            'NoteReply': '\\uED98',\n            'NoteForward': '\\uED99',\n            'NotePinned': '\\uED9A',\n            'RemoveOccurrence': '\\uED9B',\n            'Timeline': '\\uED9C',\n            'EditNote': '\\uED9D',\n            'CircleHalfFull': '\\uED9E',\n            'Room': '\\uED9F',\n            'Unsubscribe': '\\uEDA0',\n            'Subscribe': '\\uEDA1',\n            'HardDrive': '\\uEDA2',\n            'RecurringTask': '\\uEDB2',\n            'TaskManager': '\\uEDB7',\n            'TaskManagerMirrored': '\\uEDB8',\n            'Combine': '\\uEDBB',\n            'Split': '\\uEDBC',\n            'DoubleChevronUp': '\\uEDBD',\n            'DoubleChevronLeft': '\\uEDBE',\n            'DoubleChevronRight': '\\uEDBF',\n            'TextBox': '\\uEDC2',\n            'TextField': '\\uEDC3',\n            'NumberField': '\\uEDC4',\n            'Dropdown': '\\uEDC5',\n            'PenWorkspace': '\\uEDC6',\n            'BookingsLogo': '\\uEDC7',\n            'ClassNotebookLogoInverse': '\\uEDC8',\n            'DelveAnalyticsLogo': '\\uEDCA',\n            'DocsLogoInverse': '\\uEDCB',\n            'Dynamics365Logo': '\\uEDCC',\n            'DynamicSMBLogo': '\\uEDCD',\n            'OfficeAssistantLogo': '\\uEDCE',\n            'OfficeStoreLogo': '\\uEDCF',\n            'OneNoteEduLogoInverse': '\\uEDD0',\n            'PlannerLogo': '\\uEDD1',\n            'PowerApps': '\\uEDD2',\n            'Suitcase': '\\uEDD3',\n            'ProjectLogoInverse': '\\uEDD4',\n            'CaretLeft8': '\\uEDD5',\n            'CaretRight8': '\\uEDD6',\n            'CaretUp8': '\\uEDD7',\n            'CaretDown8': '\\uEDD8',\n            'CaretLeftSolid8': '\\uEDD9',\n            'CaretRightSolid8': '\\uEDDA',\n            'CaretUpSolid8': '\\uEDDB',\n            'CaretDownSolid8': '\\uEDDC',\n            'ClearFormatting': '\\uEDDD',\n            'Superscript': '\\uEDDE',\n            'Subscript': '\\uEDDF',\n            'Strikethrough': '\\uEDE0',\n            'Export': '\\uEDE1',\n            'ExportMirrored': '\\uEDE2'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-6.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-7\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-7-2b97bb99.woff') format('woff')\")\n        },\n        icons: {\n            'SingleBookmark': '\\uEDFF',\n            'SingleBookmarkSolid': '\\uEE00',\n            'DoubleChevronDown': '\\uEE04',\n            'FollowUser': '\\uEE05',\n            'ReplyAll': '\\uEE0A',\n            'WorkforceManagement': '\\uEE0F',\n            'RecruitmentManagement': '\\uEE12',\n            'Questionnaire': '\\uEE19',\n            'ManagerSelfService': '\\uEE23',\n            'ProductionFloorManagement': '\\uEE29',\n            'ProductRelease': '\\uEE2E',\n            'ProductVariant': '\\uEE30',\n            'ReplyMirrored': '\\uEE35',\n            'ReplyAllMirrored': '\\uEE36',\n            'Medal': '\\uEE38',\n            'AddGroup': '\\uEE3D',\n            'QuestionnaireMirrored': '\\uEE4B',\n            'CloudImportExport': '\\uEE55',\n            'TemporaryUser': '\\uEE58',\n            'CaretSolid16': '\\uEE62',\n            'GroupedDescending': '\\uEE66',\n            'GroupedAscending': '\\uEE67',\n            'AwayStatus': '\\uEE6A',\n            'MyMoviesTV': '\\uEE6C',\n            'GenericScan': '\\uEE6F',\n            'AustralianRules': '\\uEE70',\n            'WifiEthernet': '\\uEE77',\n            'TrackersMirrored': '\\uEE92',\n            'DateTimeMirrored': '\\uEE93',\n            'StopSolid': '\\uEE95',\n            'DoubleChevronUp12': '\\uEE96',\n            'DoubleChevronDown12': '\\uEE97',\n            'DoubleChevronLeft12': '\\uEE98',\n            'DoubleChevronRight12': '\\uEE99',\n            'CalendarAgenda': '\\uEE9A',\n            'ConnectVirtualMachine': '\\uEE9D',\n            'AddEvent': '\\uEEB5',\n            'AssetLibrary': '\\uEEB6',\n            'DataConnectionLibrary': '\\uEEB7',\n            'DocLibrary': '\\uEEB8',\n            'FormLibrary': '\\uEEB9',\n            'FormLibraryMirrored': '\\uEEBA',\n            'ReportLibrary': '\\uEEBB',\n            'ReportLibraryMirrored': '\\uEEBC',\n            'ContactCard': '\\uEEBD',\n            'CustomList': '\\uEEBE',\n            'CustomListMirrored': '\\uEEBF',\n            'IssueTracking': '\\uEEC0',\n            'IssueTrackingMirrored': '\\uEEC1',\n            'PictureLibrary': '\\uEEC2',\n            'OfficeAddinsLogo': '\\uEEC7',\n            'OfflineOneDriveParachute': '\\uEEC8',\n            'OfflineOneDriveParachuteDisabled': '\\uEEC9',\n            'TriangleSolidUp12': '\\uEECC',\n            'TriangleSolidDown12': '\\uEECD',\n            'TriangleSolidLeft12': '\\uEECE',\n            'TriangleSolidRight12': '\\uEECF',\n            'TriangleUp12': '\\uEED0',\n            'TriangleDown12': '\\uEED1',\n            'TriangleLeft12': '\\uEED2',\n            'TriangleRight12': '\\uEED3',\n            'ArrowUpRight8': '\\uEED4',\n            'ArrowDownRight8': '\\uEED5',\n            'DocumentSet': '\\uEED6',\n            'GoToDashboard': '\\uEEED',\n            'DelveAnalytics': '\\uEEEE',\n            'ArrowUpRightMirrored8': '\\uEEEF',\n            'ArrowDownRightMirrored8': '\\uEEF0',\n            'CompanyDirectory': '\\uEF0D',\n            'OpenEnrollment': '\\uEF1C',\n            'CompanyDirectoryMirrored': '\\uEF2B',\n            'OneDriveAdd': '\\uEF32',\n            'ProfileSearch': '\\uEF35',\n            'Header2': '\\uEF36',\n            'Header3': '\\uEF37',\n            'Header4': '\\uEF38',\n            'RingerSolid': '\\uEF3A',\n            'Eyedropper': '\\uEF3C',\n            'MarketDown': '\\uEF42',\n            'CalendarWorkWeek': '\\uEF51',\n            'SidePanel': '\\uEF52',\n            'GlobeFavorite': '\\uEF53',\n            'CaretTopLeftSolid8': '\\uEF54',\n            'CaretTopRightSolid8': '\\uEF55',\n            'ViewAll2': '\\uEF56',\n            'DocumentReply': '\\uEF57',\n            'PlayerSettings': '\\uEF58',\n            'ReceiptForward': '\\uEF59',\n            'ReceiptReply': '\\uEF5A',\n            'ReceiptCheck': '\\uEF5B',\n            'Fax': '\\uEF5C',\n            'RecurringEvent': '\\uEF5D',\n            'ReplyAlt': '\\uEF5E',\n            'ReplyAllAlt': '\\uEF5F',\n            'EditStyle': '\\uEF60',\n            'EditMail': '\\uEF61',\n            'Lifesaver': '\\uEF62',\n            'LifesaverLock': '\\uEF63',\n            'InboxCheck': '\\uEF64',\n            'FolderSearch': '\\uEF65'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-7.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-8\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-8-6fdf1528.woff') format('woff')\")\n        },\n        icons: {\n            'CollapseMenu': '\\uEF66',\n            'ExpandMenu': '\\uEF67',\n            'Boards': '\\uEF68',\n            'SunAdd': '\\uEF69',\n            'SunQuestionMark': '\\uEF6A',\n            'LandscapeOrientation': '\\uEF6B',\n            'DocumentSearch': '\\uEF6C',\n            'PublicCalendar': '\\uEF6D',\n            'PublicContactCard': '\\uEF6E',\n            'PublicEmail': '\\uEF6F',\n            'PublicFolder': '\\uEF70',\n            'WordDocument': '\\uEF71',\n            'PowerPointDocument': '\\uEF72',\n            'ExcelDocument': '\\uEF73',\n            'GroupedList': '\\uEF74',\n            'ClassroomLogo': '\\uEF75',\n            'Sections': '\\uEF76',\n            'EditPhoto': '\\uEF77',\n            'Starburst': '\\uEF78',\n            'ShareiOS': '\\uEF79',\n            'AirTickets': '\\uEF7A',\n            'PencilReply': '\\uEF7B',\n            'Tiles2': '\\uEF7C',\n            'SkypeCircleCheck': '\\uEF7D',\n            'SkypeCircleClock': '\\uEF7E',\n            'SkypeCircleMinus': '\\uEF7F',\n            'SkypeMessage': '\\uEF83',\n            'ClosedCaption': '\\uEF84',\n            'ATPLogo': '\\uEF85',\n            'OfficeFormsLogoInverse': '\\uEF86',\n            'RecycleBin': '\\uEF87',\n            'EmptyRecycleBin': '\\uEF88',\n            'Hide2': '\\uEF89',\n            'Breadcrumb': '\\uEF8C',\n            'BirthdayCake': '\\uEF8D',\n            'TimeEntry': '\\uEF95',\n            'CRMProcesses': '\\uEFB1',\n            'PageEdit': '\\uEFB6',\n            'PageArrowRight': '\\uEFB8',\n            'PageRemove': '\\uEFBA',\n            'Database': '\\uEFC7',\n            'DataManagementSettings': '\\uEFC8',\n            'CRMServices': '\\uEFD2',\n            'EditContact': '\\uEFD3',\n            'ConnectContacts': '\\uEFD4',\n            'AppIconDefaultAdd': '\\uEFDA',\n            'AppIconDefaultList': '\\uEFDE',\n            'ActivateOrders': '\\uEFE0',\n            'DeactivateOrders': '\\uEFE1',\n            'ProductCatalog': '\\uEFE8',\n            'ScatterChart': '\\uEFEB',\n            'AccountActivity': '\\uEFF4',\n            'DocumentManagement': '\\uEFFC',\n            'CRMReport': '\\uEFFE',\n            'KnowledgeArticle': '\\uF000',\n            'Relationship': '\\uF003',\n            'HomeVerify': '\\uF00E',\n            'ZipFolder': '\\uF012',\n            'SurveyQuestions': '\\uF01B',\n            'TextDocument': '\\uF029',\n            'TextDocumentShared': '\\uF02B',\n            'PageCheckedOut': '\\uF02C',\n            'PageShared': '\\uF02D',\n            'SaveAndClose': '\\uF038',\n            'Script': '\\uF03A',\n            'Archive': '\\uF03F',\n            'ActivityFeed': '\\uF056',\n            'Compare': '\\uF057',\n            'EventDate': '\\uF059',\n            'ArrowUpRight': '\\uF069',\n            'CaretRight': '\\uF06B',\n            'SetAction': '\\uF071',\n            'ChatBot': '\\uF08B',\n            'CaretSolidLeft': '\\uF08D',\n            'CaretSolidDown': '\\uF08E',\n            'CaretSolidRight': '\\uF08F',\n            'CaretSolidUp': '\\uF090',\n            'PowerAppsLogo': '\\uF091',\n            'PowerApps2Logo': '\\uF092',\n            'SearchIssue': '\\uF09A',\n            'SearchIssueMirrored': '\\uF09B',\n            'FabricAssetLibrary': '\\uF09C',\n            'FabricDataConnectionLibrary': '\\uF09D',\n            'FabricDocLibrary': '\\uF09E',\n            'FabricFormLibrary': '\\uF09F',\n            'FabricFormLibraryMirrored': '\\uF0A0',\n            'FabricReportLibrary': '\\uF0A1',\n            'FabricReportLibraryMirrored': '\\uF0A2',\n            'FabricPublicFolder': '\\uF0A3',\n            'FabricFolderSearch': '\\uF0A4',\n            'FabricMovetoFolder': '\\uF0A5',\n            'FabricUnsyncFolder': '\\uF0A6',\n            'FabricSyncFolder': '\\uF0A7',\n            'FabricOpenFolderHorizontal': '\\uF0A8',\n            'FabricFolder': '\\uF0A9',\n            'FabricFolderFill': '\\uF0AA',\n            'FabricNewFolder': '\\uF0AB',\n            'FabricPictureLibrary': '\\uF0AC',\n            'PhotoVideoMedia': '\\uF0B1',\n            'AddFavorite': '\\uF0C8'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-8.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none'\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons-9\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-9-c6162b42.woff') format('woff')\")\n        },\n        icons: {\n            'AddFavoriteFill': '\\uF0C9',\n            'BufferTimeBefore': '\\uF0CF',\n            'BufferTimeAfter': '\\uF0D0',\n            'BufferTimeBoth': '\\uF0D1',\n            'PublishContent': '\\uF0D4',\n            'ClipboardList': '\\uF0E3',\n            'ClipboardListMirrored': '\\uF0E4',\n            'CannedChat': '\\uF0F2',\n            'SkypeForBusinessLogo': '\\uF0FC',\n            'TabCenter': '\\uF100',\n            'PageCheckedin': '\\uF104',\n            'PageList': '\\uF106',\n            'ReadOutLoud': '\\uF112',\n            'CaretBottomLeftSolid8': '\\uF121',\n            'CaretBottomRightSolid8': '\\uF122',\n            'FolderHorizontal': '\\uF12B',\n            'MicrosoftStaffhubLogo': '\\uF130',\n            'GiftboxOpen': '\\uF133',\n            'StatusCircleOuter': '\\uF136',\n            'StatusCircleInner': '\\uF137',\n            'StatusCircleRing': '\\uF138',\n            'StatusTriangleOuter': '\\uF139',\n            'StatusTriangleInner': '\\uF13A',\n            'StatusTriangleExclamation': '\\uF13B',\n            'StatusCircleExclamation': '\\uF13C',\n            'StatusCircleErrorX': '\\uF13D',\n            'StatusCircleInfo': '\\uF13F',\n            'StatusCircleBlock': '\\uF140',\n            'StatusCircleBlock2': '\\uF141',\n            'StatusCircleQuestionMark': '\\uF142',\n            'StatusCircleSync': '\\uF143',\n            'Toll': '\\uF160',\n            'ExploreContentSingle': '\\uF164',\n            'CollapseContent': '\\uF165',\n            'CollapseContentSingle': '\\uF166',\n            'InfoSolid': '\\uF167',\n            'GroupList': '\\uF168',\n            'ProgressRingDots': '\\uF16A',\n            'CaloriesAdd': '\\uF172',\n            'BranchFork': '\\uF173',\n            'MuteChat': '\\uF17A',\n            'AddHome': '\\uF17B',\n            'AddWork': '\\uF17C',\n            'MobileReport': '\\uF18A',\n            'ScaleVolume': '\\uF18C',\n            'HardDriveGroup': '\\uF18F',\n            'FastMode': '\\uF19A',\n            'ToggleLeft': '\\uF19E',\n            'ToggleRight': '\\uF19F',\n            'TriangleShape': '\\uF1A7',\n            'RectangleShape': '\\uF1A9',\n            'CubeShape': '\\uF1AA',\n            'Trophy2': '\\uF1AE',\n            'BucketColor': '\\uF1B6',\n            'BucketColorFill': '\\uF1B7',\n            'Taskboard': '\\uF1C2',\n            'SingleColumn': '\\uF1D3',\n            'DoubleColumn': '\\uF1D4',\n            'TripleColumn': '\\uF1D5',\n            'ColumnLeftTwoThirds': '\\uF1D6',\n            'ColumnRightTwoThirds': '\\uF1D7',\n            'AccessLogoFill': '\\uF1DB',\n            'AnalyticsLogo': '\\uF1DE',\n            'AnalyticsQuery': '\\uF1DF',\n            'NewAnalyticsQuery': '\\uF1E0',\n            'AnalyticsReport': '\\uF1E1',\n            'WordLogo': '\\uF1E3',\n            'WordLogoFill': '\\uF1E4',\n            'ExcelLogo': '\\uF1E5',\n            'ExcelLogoFill': '\\uF1E6',\n            'OneNoteLogo': '\\uF1E7',\n            'OneNoteLogoFill': '\\uF1E8',\n            'OutlookLogo': '\\uF1E9',\n            'OutlookLogoFill': '\\uF1EA',\n            'PowerPointLogo': '\\uF1EB',\n            'PowerPointLogoFill': '\\uF1EC',\n            'PublisherLogo': '\\uF1ED',\n            'PublisherLogoFill': '\\uF1EE',\n            'ScheduleEventAction': '\\uF1EF',\n            'FlameSolid': '\\uF1F3',\n            'ServerProcesses': '\\uF1FE',\n            'Server': '\\uF201',\n            'SaveAll': '\\uF203',\n            'LinkedInLogo': '\\uF20A',\n            'Decimals': '\\uF218',\n            'SidePanelMirrored': '\\uF221',\n            'ProtectRestrict': '\\uF22A',\n            'Blog': '\\uF22B',\n            'UnknownMirrored': '\\uF22E',\n            'PublicContactCardMirrored': '\\uF230',\n            'GridViewSmall': '\\uF232',\n            'GridViewMedium': '\\uF233',\n            'GridViewLarge': '\\uF234',\n            'Step': '\\uF241',\n            'StepInsert': '\\uF242',\n            'StepShared': '\\uF243',\n            'StepSharedAdd': '\\uF244',\n            'StepSharedInsert': '\\uF245',\n            'ViewDashboard': '\\uF246',\n            'ViewList': '\\uF247'\n        }\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-9.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n    if (baseUrl === void 0) { baseUrl = ''; }\n    var subset = {\n        style: {\n            MozOsxFontSmoothing: 'grayscale',\n            WebkitFontSmoothing: 'antialiased',\n            fontStyle: 'normal',\n            fontWeight: 'normal',\n            speak: 'none',\n        },\n        fontFace: {\n            fontFamily: \"\\\"FabricMDL2Icons\\\"\",\n            src: \"url('\".concat(baseUrl, \"fabric-icons-a13498cf.woff') format('woff')\"),\n        },\n        icons: {\n            GlobalNavButton: '\\uE700',\n            ChevronDown: '\\uE70D',\n            ChevronUp: '\\uE70E',\n            Edit: '\\uE70F',\n            Add: '\\uE710',\n            Cancel: '\\uE711',\n            More: '\\uE712',\n            Settings: '\\uE713',\n            Mail: '\\uE715',\n            Filter: '\\uE71C',\n            Search: '\\uE721',\n            Share: '\\uE72D',\n            BlockedSite: '\\uE72F',\n            FavoriteStar: '\\uE734',\n            FavoriteStarFill: '\\uE735',\n            CheckMark: '\\uE73E',\n            Delete: '\\uE74D',\n            ChevronLeft: '\\uE76B',\n            ChevronRight: '\\uE76C',\n            Calendar: '\\uE787',\n            Megaphone: '\\uE789',\n            Undo: '\\uE7A7',\n            Flag: '\\uE7C1',\n            Page: '\\uE7C3',\n            Pinned: '\\uE840',\n            View: '\\uE890',\n            Clear: '\\uE894',\n            Download: '\\uE896',\n            Upload: '\\uE898',\n            Folder: '\\uE8B7',\n            Sort: '\\uE8CB',\n            AlignRight: '\\uE8E2',\n            AlignLeft: '\\uE8E4',\n            Tag: '\\uE8EC',\n            AddFriend: '\\uE8FA',\n            Info: '\\uE946',\n            SortLines: '\\uE9D0',\n            List: '\\uEA37',\n            CircleRing: '\\uEA3A',\n            Heart: '\\uEB51',\n            HeartFill: '\\uEB52',\n            Tiles: '\\uECA5',\n            Embed: '\\uECCE',\n            Glimmer: '\\uECF4',\n            Ascending: '\\uEDC0',\n            Descending: '\\uEDC1',\n            SortUp: '\\uEE68',\n            SortDown: '\\uEE69',\n            SyncToPC: '\\uEE6E',\n            LargeGrid: '\\uEECB',\n            SkypeCheck: '\\uEF80',\n            SkypeClock: '\\uEF81',\n            SkypeMinus: '\\uEF82',\n            ClearFilter: '\\uEF8F',\n            Flow: '\\uEF90',\n            StatusCircleCheckmark: '\\uF13E',\n            MoreVertical: '\\uF2BC',\n        },\n    };\n    registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons.js.map","import { registerIconAlias } from '@fluentui/style-utilities';\nexport var registerIconAliases = function () {\n    registerIconAlias('trash', 'delete');\n    registerIconAlias('onedrive', 'onedrivelogo');\n    registerIconAlias('alertsolid12', 'eventdatemissed12');\n    registerIconAlias('sixpointstar', '6pointstar');\n    registerIconAlias('twelvepointstar', '12pointstar');\n    registerIconAlias('toggleon', 'toggleleft');\n    registerIconAlias('toggleoff', 'toggleright');\n};\nexport default registerIconAliases;\n//# sourceMappingURL=iconAliases.js.map","import { initializeIcons as i } from './fabric-icons';\nimport { initializeIcons as i0 } from './fabric-icons-0';\nimport { initializeIcons as i1 } from './fabric-icons-1';\nimport { initializeIcons as i2 } from './fabric-icons-2';\nimport { initializeIcons as i3 } from './fabric-icons-3';\nimport { initializeIcons as i4 } from './fabric-icons-4';\nimport { initializeIcons as i5 } from './fabric-icons-5';\nimport { initializeIcons as i6 } from './fabric-icons-6';\nimport { initializeIcons as i7 } from './fabric-icons-7';\nimport { initializeIcons as i8 } from './fabric-icons-8';\nimport { initializeIcons as i9 } from './fabric-icons-9';\nimport { initializeIcons as i10 } from './fabric-icons-10';\nimport { initializeIcons as i11 } from './fabric-icons-11';\nimport { initializeIcons as i12 } from './fabric-icons-12';\nimport { initializeIcons as i13 } from './fabric-icons-13';\nimport { initializeIcons as i14 } from './fabric-icons-14';\nimport { initializeIcons as i15 } from './fabric-icons-15';\nimport { initializeIcons as i16 } from './fabric-icons-16';\nimport { initializeIcons as i17 } from './fabric-icons-17';\nimport { FLUENT_CDN_BASE_URL } from '@fluentui/style-utilities';\nimport { registerIconAliases } from './iconAliases';\nimport { getWindow } from '@fluentui/utilities';\nvar DEFAULT_BASE_URL = \"\".concat(FLUENT_CDN_BASE_URL, \"/assets/icons/\");\nvar win = getWindow();\nexport function initializeIcons(baseUrl, options) {\n    var _a, _b;\n    if (baseUrl === void 0) { baseUrl = ((_a = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _a === void 0 ? void 0 : _a.iconBaseUrl) || ((_b = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _b === void 0 ? void 0 : _b.fontBaseUrl) || DEFAULT_BASE_URL; }\n    [i, i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17].forEach(function (initialize) { return initialize(baseUrl, options); });\n    registerIconAliases();\n}\n/* eslint-enable deprecation/deprecation */\nimport './version';\n//# sourceMappingURL=index.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/font-icons-mdl2', '8.5.47');\n//# sourceMappingURL=version.js.map","import { DEFAULT_SHADOW_CONFIG } from './shadowConfig';\n/**\n * Sets the current RTL value.\n */\nexport function setRTL(isRTL) {\n    if (_rtl !== isRTL) {\n        _rtl = isRTL;\n    }\n}\n/**\n * Gets the current RTL value.\n */\nexport function getRTL() {\n    if (_rtl === undefined) {\n        _rtl =\n            // eslint-disable-next-line no-restricted-globals\n            typeof document !== 'undefined' &&\n                // eslint-disable-next-line no-restricted-globals\n                !!document.documentElement &&\n                // eslint-disable-next-line no-restricted-globals\n                document.documentElement.getAttribute('dir') === 'rtl';\n    }\n    return _rtl;\n}\n// This has been split into 2 lines because it was working in Fabric due to the code being transpiled to es5, so this\n// was converted to var while not working in Fluent that uses babel to transpile the code to be es6-like. Splitting the\n// logic into two lines, however, allows it to work in both scenarios.\nvar _rtl;\n_rtl = getRTL();\nexport function getStyleOptions() {\n    return {\n        rtl: getRTL(),\n        shadowConfig: DEFAULT_SHADOW_CONFIG,\n    };\n}\n//# sourceMappingURL=StyleOptionsState.js.map","import { __assign } from \"tslib\";\nimport { GLOBAL_STYLESHEET_KEY, SHADOW_DOM_STYLESHEET_SETTING } from './shadowConfig';\nexport var InjectionMode = {\n    /**\n     * Avoids style injection, use getRules() to read the styles.\n     */\n    none: 0,\n    /**\n     * Inserts rules using the insertRule api.\n     */\n    insertNode: 1,\n    /**\n     * Appends rules using appendChild.\n     */\n    appendChild: 2,\n};\nexport var STYLESHEET_SETTING = '__stylesheet__';\n/**\n * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node\n * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.\n */\nvar REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);\nvar _global = {};\n// Grab window.\ntry {\n    // Why the cast?\n    // if compiled/type checked in same program with `@fluentui/font-icons-mdl2` which extends `Window` on global\n    // ( check packages/font-icons-mdl2/src/index.ts ) the definitions don't match! Thus the need of this extra assertion\n    _global = (window || {});\n}\ncatch (_a) {\n    /* leave as blank object */\n}\nvar _stylesheet;\n/**\n * Represents the state of styles registered in the page. Abstracts\n * the surface for adding styles to the stylesheet, exposes helpers\n * for reading the styles registered in server rendered scenarios.\n *\n * @public\n */\nvar Stylesheet = /** @class */ (function () {\n    function Stylesheet(config, serializedStylesheet) {\n        var _a, _b, _c, _d, _e, _f;\n        this._rules = [];\n        this._preservedRules = [];\n        this._counter = 0;\n        this._keyToClassName = {};\n        this._onInsertRuleCallbacks = [];\n        this._onResetCallbacks = [];\n        this._classNameToArgs = {};\n        // If there is no document we won't have an element to inject into.\n        this._config = __assign({ injectionMode: typeof document === 'undefined' ? InjectionMode.none : InjectionMode.insertNode, defaultPrefix: 'css', namespace: undefined, cspSettings: undefined }, config);\n        this._classNameToArgs = (_a = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.classNameToArgs) !== null && _a !== void 0 ? _a : this._classNameToArgs;\n        this._counter = (_b = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.counter) !== null && _b !== void 0 ? _b : this._counter;\n        this._keyToClassName = (_d = (_c = this._config.classNameCache) !== null && _c !== void 0 ? _c : serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.keyToClassName) !== null && _d !== void 0 ? _d : this._keyToClassName;\n        this._preservedRules = (_e = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.preservedRules) !== null && _e !== void 0 ? _e : this._preservedRules;\n        this._rules = (_f = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.rules) !== null && _f !== void 0 ? _f : this._rules;\n    }\n    /**\n     * Gets the singleton instance.\n     */\n    Stylesheet.getInstance = function (shadowConfig) {\n        _stylesheet = _global[STYLESHEET_SETTING];\n        if (_global[SHADOW_DOM_STYLESHEET_SETTING]) {\n            return _global[SHADOW_DOM_STYLESHEET_SETTING].getInstance(shadowConfig);\n        }\n        if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n            var fabricConfig = (_global === null || _global === void 0 ? void 0 : _global.FabricConfig) || {};\n            var stylesheet = new Stylesheet(fabricConfig.mergeStyles, fabricConfig.serializedStylesheet);\n            _stylesheet = stylesheet;\n            _global[STYLESHEET_SETTING] = stylesheet;\n        }\n        return _stylesheet;\n    };\n    /**\n     * Serializes the Stylesheet instance into a format which allows rehydration on creation.\n     * @returns string representation of `ISerializedStylesheet` interface.\n     */\n    Stylesheet.prototype.serialize = function () {\n        return JSON.stringify({\n            classNameToArgs: this._classNameToArgs,\n            counter: this._counter,\n            keyToClassName: this._keyToClassName,\n            preservedRules: this._preservedRules,\n            rules: this._rules,\n        });\n    };\n    /**\n     * Configures the stylesheet.\n     */\n    Stylesheet.prototype.setConfig = function (config) {\n        this._config = __assign(__assign({}, this._config), config);\n    };\n    /**\n     * Configures a reset callback.\n     *\n     * @param callback - A callback which will be called when the Stylesheet is reset.\n     * @returns function which when called un-registers provided callback.\n     */\n    Stylesheet.prototype.onReset = function (callback) {\n        var _this = this;\n        this._onResetCallbacks.push(callback);\n        return function () {\n            _this._onResetCallbacks = _this._onResetCallbacks.filter(function (cb) { return cb !== callback; });\n        };\n    };\n    /**\n     * Configures an insert rule callback.\n     *\n     * @param callback - A callback which will be called when a rule is inserted.\n     * @returns function which when called un-registers provided callback.\n     */\n    Stylesheet.prototype.onInsertRule = function (callback) {\n        var _this = this;\n        this._onInsertRuleCallbacks.push(callback);\n        return function () {\n            _this._onInsertRuleCallbacks = _this._onInsertRuleCallbacks.filter(function (cb) { return cb !== callback; });\n        };\n    };\n    /**\n     * Generates a unique classname.\n     *\n     * @param displayName - Optional value to use as a prefix.\n     */\n    Stylesheet.prototype.getClassName = function (displayName) {\n        var namespace = this._config.namespace;\n        var prefix = displayName || this._config.defaultPrefix;\n        return \"\".concat(namespace ? namespace + '-' : '').concat(prefix, \"-\").concat(this._counter++);\n    };\n    /**\n     * Used internally to cache information about a class which was\n     * registered with the stylesheet.\n     */\n    Stylesheet.prototype.cacheClassName = function (className, key, args, rules) {\n        this._keyToClassName[this._getCacheKey(key)] = className;\n        this._classNameToArgs[className] = {\n            args: args,\n            rules: rules,\n        };\n    };\n    /**\n     * Gets the appropriate classname given a key which was previously\n     * registered using cacheClassName.\n     */\n    Stylesheet.prototype.classNameFromKey = function (key) {\n        return this._keyToClassName[this._getCacheKey(key)];\n    };\n    /**\n     * Gets all classnames cache with the stylesheet.\n     */\n    Stylesheet.prototype.getClassNameCache = function () {\n        return this._keyToClassName;\n    };\n    /**\n     * Gets the arguments associated with a given classname which was\n     * previously registered using cacheClassName.\n     */\n    Stylesheet.prototype.argsFromClassName = function (className) {\n        var entry = this._classNameToArgs[className];\n        return entry && entry.args;\n    };\n    /**\n     * Gets the rules associated with a given classname which was\n     * previously registered using cacheClassName.\n     */\n    Stylesheet.prototype.insertedRulesFromClassName = function (className) {\n        var entry = this._classNameToArgs[className];\n        return entry && entry.rules;\n    };\n    /**\n     * Inserts a css rule into the stylesheet.\n     * @param preserve - Preserves the rule beyond a reset boundary.\n     */\n    Stylesheet.prototype.insertRule = function (rule, preserve, stylesheetKey) {\n        if (stylesheetKey === void 0) { stylesheetKey = GLOBAL_STYLESHEET_KEY; }\n        var injectionMode = this._config.injectionMode;\n        var element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;\n        if (preserve) {\n            this._preservedRules.push(rule);\n        }\n        if (element) {\n            switch (injectionMode) {\n                case InjectionMode.insertNode:\n                    this._insertRuleIntoSheet(element.sheet, rule);\n                    break;\n                case InjectionMode.appendChild:\n                    element.appendChild(document.createTextNode(rule));\n                    break;\n            }\n        }\n        else {\n            this._rules.push(rule);\n        }\n        // eslint-disable-next-line deprecation/deprecation\n        if (this._config.onInsertRule) {\n            // eslint-disable-next-line deprecation/deprecation\n            this._config.onInsertRule(rule);\n        }\n        this._onInsertRuleCallbacks.forEach(function (callback) {\n            return callback({ key: stylesheetKey, sheet: (element ? element.sheet : undefined), rule: rule });\n        });\n    };\n    /**\n     * Gets all rules registered with the stylesheet; only valid when\n     * using InsertionMode.none.\n     */\n    Stylesheet.prototype.getRules = function (includePreservedRules) {\n        return (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('');\n    };\n    /**\n     * Resets the internal state of the stylesheet. Only used in server\n     * rendered scenarios where we're using InsertionMode.none.\n     */\n    Stylesheet.prototype.reset = function () {\n        this._rules = [];\n        this._counter = 0;\n        this._classNameToArgs = {};\n        this._keyToClassName = {};\n        this._onResetCallbacks.forEach(function (callback) { return callback(); });\n    };\n    // Forces the regeneration of incoming styles without totally resetting the stylesheet.\n    Stylesheet.prototype.resetKeys = function () {\n        this._keyToClassName = {};\n    };\n    Stylesheet.prototype._createStyleElement = function () {\n        var _a;\n        var doc = ((_a = this._config.window) === null || _a === void 0 ? void 0 : _a.document) || document;\n        var head = doc.head;\n        var styleElement = doc.createElement('style');\n        var nodeToInsertBefore = null;\n        styleElement.setAttribute('data-merge-styles', 'true');\n        var cspSettings = this._config.cspSettings;\n        if (cspSettings) {\n            if (cspSettings.nonce) {\n                styleElement.setAttribute('nonce', cspSettings.nonce);\n            }\n        }\n        if (this._lastStyleElement) {\n            // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.\n            // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax\n            nodeToInsertBefore = this._lastStyleElement.nextElementSibling;\n        }\n        else {\n            var placeholderStyleTag = this._findPlaceholderStyleTag();\n            if (placeholderStyleTag) {\n                nodeToInsertBefore = placeholderStyleTag.nextElementSibling;\n            }\n            else {\n                nodeToInsertBefore = head.childNodes[0];\n            }\n        }\n        head.insertBefore(styleElement, head.contains(nodeToInsertBefore) ? nodeToInsertBefore : null);\n        this._lastStyleElement = styleElement;\n        return styleElement;\n    };\n    Stylesheet.prototype._insertRuleIntoSheet = function (sheet, rule) {\n        if (!sheet) {\n            return false;\n        }\n        try {\n            sheet.insertRule(rule, sheet.cssRules.length);\n            return true;\n        }\n        catch (e) {\n            // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)\n            // We need to swallow the exceptions for this scenario, otherwise we'd need to filter\n            // which could be slower and bulkier.\n        }\n        return false;\n    };\n    Stylesheet.prototype._getCacheKey = function (key) {\n        return key;\n    };\n    Stylesheet.prototype._getStyleElement = function () {\n        var _this = this;\n        if (!this._styleElement) {\n            this._styleElement = this._createStyleElement();\n            if (!REUSE_STYLE_NODE) {\n                // Reset the style element on the next frame.\n                var win = this._config.window || window;\n                win.requestAnimationFrame(function () {\n                    _this._styleElement = undefined;\n                });\n            }\n        }\n        return this._styleElement;\n    };\n    Stylesheet.prototype._findPlaceholderStyleTag = function () {\n        var head = document.head;\n        if (head) {\n            return head.querySelector('style[data-merge-styles]');\n        }\n        return null;\n    };\n    return Stylesheet;\n}());\nexport { Stylesheet };\n//# sourceMappingURL=Stylesheet.js.map","import { __spreadArray } from \"tslib\";\nimport { isShadowConfig } from './shadowConfig';\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets() {\n    var styleSets = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        styleSets[_i] = arguments[_i];\n    }\n    if (styleSets &&\n        styleSets.length === 1 &&\n        styleSets[0] &&\n        !styleSets[0].subComponentStyles &&\n        !isShadowConfig(styleSets[0])) {\n        return styleSets[0];\n    }\n    var mergedSet = {};\n    // We process sub component styles in two phases. First we collect them, then we combine them into 1 style function.\n    var workingSubcomponentStyles = {};\n    for (var _a = 0, styleSets_1 = styleSets; _a < styleSets_1.length; _a++) {\n        var currentSet = styleSets_1[_a];\n        if (currentSet && !isShadowConfig(currentSet)) {\n            for (var prop in currentSet) {\n                if (currentSet.hasOwnProperty(prop)) {\n                    if (prop === 'subComponentStyles' && currentSet.subComponentStyles !== undefined) {\n                        // subcomponent styles - style functions or objects\n                        var currentComponentStyles = currentSet.subComponentStyles;\n                        for (var subCompProp in currentComponentStyles) {\n                            if (currentComponentStyles.hasOwnProperty(subCompProp)) {\n                                if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n                                    workingSubcomponentStyles[subCompProp].push(currentComponentStyles[subCompProp]);\n                                }\n                                else {\n                                    workingSubcomponentStyles[subCompProp] = [currentComponentStyles[subCompProp]];\n                                }\n                            }\n                        }\n                        continue;\n                    }\n                    // the as any casts below is a workaround for ts 2.8.\n                    // todo: remove cast to any in ts 2.9.\n                    var mergedValue = mergedSet[prop];\n                    var currentValue = currentSet[prop];\n                    if (mergedValue === undefined) {\n                        mergedSet[prop] = currentValue;\n                    }\n                    else {\n                        mergedSet[prop] = __spreadArray(__spreadArray([], (Array.isArray(mergedValue) ? mergedValue : [mergedValue]), true), (Array.isArray(currentValue) ? currentValue : [currentValue]), true);\n                    }\n                }\n            }\n        }\n    }\n    if (Object.keys(workingSubcomponentStyles).length > 0) {\n        mergedSet.subComponentStyles = {};\n        var mergedSubStyles = mergedSet.subComponentStyles;\n        var _loop_1 = function (subCompProp) {\n            if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n                var workingSet_1 = workingSubcomponentStyles[subCompProp];\n                mergedSubStyles[subCompProp] = function (styleProps) {\n                    return concatStyleSets.apply(void 0, workingSet_1.map(function (styleFunctionOrObject) {\n                        return typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject;\n                    }));\n                };\n            }\n        };\n        // now we process the subcomponent styles if there are any\n        for (var subCompProp in workingSubcomponentStyles) {\n            _loop_1(subCompProp);\n        }\n    }\n    return mergedSet;\n}\n//# sourceMappingURL=concatStyleSets.js.map","import { concatStyleSets } from './concatStyleSets';\n/**\n * Concatenates style sets into one, but resolves functional sets using the given props.\n * @param styleProps - Props used to resolve functional sets.\n * @param allStyles - Style sets, which can be functions or objects.\n */\nexport function concatStyleSetsWithProps(styleProps) {\n    var allStyles = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        allStyles[_i - 1] = arguments[_i];\n    }\n    var result = [];\n    for (var _a = 0, allStyles_1 = allStyles; _a < allStyles_1.length; _a++) {\n        var styles = allStyles_1[_a];\n        if (styles) {\n            result.push(typeof styles === 'function' ? styles(styleProps) : styles);\n        }\n    }\n    if (result.length === 1) {\n        return result[0];\n    }\n    else if (result.length) {\n        // cliffkoh: I cannot figure out how to avoid the cast to any here.\n        // It is something to do with the use of Omit in IStyleSet.\n        // It might not be necessary once  Omit becomes part of lib.d.ts (when we remove our own Omit and rely on\n        // the official version).\n        return concatStyleSets.apply(void 0, result);\n    }\n    return {};\n}\n//# sourceMappingURL=concatStyleSetsWithProps.js.map","import { isShadowConfig } from './shadowConfig';\n/**\n * Separates the classes and style objects. Any classes that are pre-registered\n * args are auto expanded into objects.\n */\nexport function extractStyleParts(sheet) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    var classes = [];\n    var objects = [];\n    var stylesheet = sheet;\n    function _processArgs(argsList) {\n        for (var _i = 0, argsList_1 = argsList; _i < argsList_1.length; _i++) {\n            var arg = argsList_1[_i];\n            if (arg && !isShadowConfig(arg)) {\n                if (typeof arg === 'string') {\n                    if (arg.indexOf(' ') >= 0) {\n                        _processArgs(arg.split(' '));\n                    }\n                    else {\n                        var translatedArgs = stylesheet.argsFromClassName(arg);\n                        if (translatedArgs) {\n                            _processArgs(translatedArgs);\n                        }\n                        else {\n                            // Avoid adding the same class twice.\n                            if (classes.indexOf(arg) === -1) {\n                                classes.push(arg);\n                            }\n                        }\n                    }\n                }\n                else if (Array.isArray(arg)) {\n                    _processArgs(arg);\n                }\n                else if (typeof arg === 'object') {\n                    objects.push(arg);\n                }\n            }\n        }\n    }\n    _processArgs(args);\n    return {\n        classes: classes,\n        objects: objects,\n    };\n}\n//# sourceMappingURL=extractStyleParts.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers a font face.\n * @public\n */\nexport function fontFace(font) {\n    var stylesheet = Stylesheet.getInstance();\n    var rule = serializeRuleEntries(getStyleOptions(), font);\n    var className = stylesheet.classNameFromKey(rule);\n    if (className) {\n        return;\n    }\n    var name = stylesheet.getClassName();\n    stylesheet.insertRule(\"@font-face{\".concat(rule, \"}\"), true);\n    stylesheet.cacheClassName(name, rule, [], ['font-face', rule]);\n}\n//# sourceMappingURL=fontFace.js.map","var _vendorSettings;\nexport function getVendorSettings() {\n    var _a;\n    if (!_vendorSettings) {\n        // eslint-disable-next-line no-restricted-globals\n        var doc = typeof document !== 'undefined' ? document : undefined;\n        var nav = typeof navigator !== 'undefined' ? navigator : undefined;\n        var userAgent = (_a = nav === null || nav === void 0 ? void 0 : nav.userAgent) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n        if (!doc) {\n            _vendorSettings = {\n                isWebkit: true,\n                isMoz: true,\n                isOpera: true,\n                isMs: true,\n            };\n        }\n        else {\n            _vendorSettings = {\n                isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),\n                isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),\n                isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),\n                isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent))),\n            };\n        }\n    }\n    return _vendorSettings;\n}\n/**\n * Sets the vendor settings for prefixing and vendor specific operations.\n */\nexport function setVendorSettings(vendorSettings) {\n    _vendorSettings = vendorSettings;\n}\n//# sourceMappingURL=getVendorSettings.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers keyframe definitions.\n *\n * @public\n */\nexport function keyframes(timeline) {\n    var stylesheet = Stylesheet.getInstance();\n    var rulesArray = [];\n    for (var prop in timeline) {\n        if (timeline.hasOwnProperty(prop)) {\n            rulesArray.push(prop, '{', serializeRuleEntries(getStyleOptions(), timeline[prop]), '}');\n        }\n    }\n    var rules = rulesArray.join('');\n    var className = stylesheet.classNameFromKey(rules);\n    if (className) {\n        return className;\n    }\n    var name = stylesheet.getClassName();\n    stylesheet.insertRule(\"@keyframes \".concat(name, \"{\").concat(rules, \"}\"), true);\n    stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);\n    return name;\n}\n//# sourceMappingURL=keyframes.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets } from './concatStyleSets';\nimport { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { applyRegistration, styleToRegistration } from './styleToClassName';\nimport { isShadowConfig } from './shadowConfig';\nimport { Stylesheet } from './Stylesheet';\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n */\nexport function mergeStyleSets() {\n    var styleSets = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        styleSets[_i] = arguments[_i];\n    }\n    return mergeCssSets(styleSets, getStyleOptions());\n}\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(styleSets, options) {\n    var classNameSet = { subComponentStyles: {} };\n    var shadowConfig = undefined;\n    var styleSet;\n    if (isShadowConfig(styleSets[0])) {\n        shadowConfig = styleSets[0];\n        styleSet = styleSets[1];\n    }\n    else {\n        styleSet = styleSets[0];\n    }\n    shadowConfig !== null && shadowConfig !== void 0 ? shadowConfig : (shadowConfig = options === null || options === void 0 ? void 0 : options.shadowConfig);\n    var opts = __assign(__assign({}, options), { shadowConfig: shadowConfig });\n    if (!styleSet && styleSets.length <= 1) {\n        return { subComponentStyles: {} };\n    }\n    var sheet = Stylesheet.getInstance(shadowConfig);\n    opts.stylesheet = sheet;\n    var concatenatedStyleSet = concatStyleSets.apply(void 0, styleSets);\n    var registrations = [];\n    for (var styleSetArea in concatenatedStyleSet) {\n        if (concatenatedStyleSet.hasOwnProperty(styleSetArea)) {\n            if (styleSetArea === 'subComponentStyles') {\n                classNameSet.subComponentStyles = concatenatedStyleSet.subComponentStyles || {};\n                continue;\n            }\n            else if (styleSetArea === '__shadowConfig__') {\n                continue;\n            }\n            var styles = concatenatedStyleSet[styleSetArea];\n            var _a = extractStyleParts(sheet, styles), classes = _a.classes, objects = _a.objects;\n            if (objects === null || objects === void 0 ? void 0 : objects.length) {\n                var registration = styleToRegistration(opts || {}, { displayName: styleSetArea }, objects);\n                if (registration) {\n                    registrations.push(registration);\n                    classNameSet[styleSetArea] = classes.concat([registration.className]).join(' ');\n                }\n            }\n            else {\n                classNameSet[styleSetArea] = classes.join(' ');\n            }\n        }\n    }\n    for (var _i = 0, registrations_1 = registrations; _i < registrations_1.length; _i++) {\n        var registration = registrations_1[_i];\n        if (registration) {\n            applyRegistration(registration, options === null || options === void 0 ? void 0 : options.specificityMultiplier, shadowConfig);\n        }\n    }\n    return classNameSet;\n}\n//# sourceMappingURL=mergeStyleSets.js.map","import { extractStyleParts } from './extractStyleParts';\nimport { isShadowConfig } from './shadowConfig';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { styleToClassName } from './styleToClassName';\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function mergeStyles() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    return mergeCss(args, getStyleOptions());\n}\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n * Accepts a set of options that will be used when calculating styles.\n *\n * @public\n */\nexport function mergeCss(args, options) {\n    var styleArgs = args instanceof Array ? args : [args];\n    var opts = options || {};\n    var hasShadowConfig = isShadowConfig(styleArgs[0]);\n    if (hasShadowConfig) {\n        opts.shadowConfig = styleArgs[0];\n    }\n    opts.stylesheet = Stylesheet.getInstance(opts.shadowConfig);\n    var _a = extractStyleParts(opts.stylesheet, styleArgs), classes = _a.classes, objects = _a.objects;\n    if (objects.length) {\n        classes.push(styleToClassName(opts, objects));\n    }\n    return classes.join(' ');\n}\n//# sourceMappingURL=mergeStyles.js.map","export var GLOBAL_STYLESHEET_KEY = '__global__';\nexport var SHADOW_DOM_STYLESHEET_SETTING = '__shadow_dom_stylesheet__';\nexport var DEFAULT_SHADOW_CONFIG = {\n    stylesheetKey: GLOBAL_STYLESHEET_KEY,\n    inShadow: false,\n    window: undefined,\n    __isShadowConfig__: true,\n};\nexport var makeShadowConfig = function (stylesheetKey, inShadow, window) {\n    return {\n        stylesheetKey: stylesheetKey,\n        inShadow: inShadow,\n        window: window,\n        __isShadowConfig__: true,\n    };\n};\nexport var isShadowConfig = function (value) {\n    if (!(value && isRecord(value))) {\n        return false;\n    }\n    return value.__isShadowConfig__ === true;\n};\nfunction isRecord(value) {\n    return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n//# sourceMappingURL=shadowConfig.js.map","import { __spreadArray } from \"tslib\";\nimport { Stylesheet } from './Stylesheet';\nimport { kebabRules } from './transforms/kebabRules';\nimport { prefixRules } from './transforms/prefixRules';\nimport { provideUnits } from './transforms/provideUnits';\nimport { rtlifyRules } from './transforms/rtlifyRules';\nimport { tokenizeWithParentheses } from './tokenizeWithParentheses';\nvar DISPLAY_NAME = 'displayName';\nfunction getDisplayName(rules) {\n    var rootStyle = rules && rules['&'];\n    return rootStyle ? rootStyle.displayName : undefined;\n}\nvar globalSelectorRegExp = /\\:global\\((.+?)\\)/g;\n/**\n * Finds comma separated selectors in a :global() e.g. \":global(.class1, .class2, .class3)\"\n * and wraps them each in their own global \":global(.class1), :global(.class2), :global(.class3)\"\n *\n * @param selectorWithGlobals The selector to process\n * @returns The updated selector\n */\nfunction expandCommaSeparatedGlobals(selectorWithGlobals) {\n    // We the selector does not have a :global() we can shortcut\n    if (!globalSelectorRegExp.test(selectorWithGlobals)) {\n        return selectorWithGlobals;\n    }\n    var replacementInfo = [];\n    var findGlobal = /\\:global\\((.+?)\\)/g;\n    var match = null;\n    // Create a result list for global selectors so we can replace them.\n    while ((match = findGlobal.exec(selectorWithGlobals))) {\n        // Only if the found selector is a comma separated list we'll process it.\n        if (match[1].indexOf(',') > -1) {\n            replacementInfo.push([\n                match.index,\n                match.index + match[0].length,\n                // Wrap each of the found selectors in :global()\n                match[1]\n                    .split(',')\n                    .map(function (v) { return \":global(\".concat(v.trim(), \")\"); })\n                    .join(', '),\n            ]);\n        }\n    }\n    // Replace the found selectors with their wrapped variants in reverse order\n    return replacementInfo\n        .reverse()\n        .reduce(function (selector, _a) {\n        var matchIndex = _a[0], matchEndIndex = _a[1], replacement = _a[2];\n        var prefix = selector.slice(0, matchIndex);\n        var suffix = selector.slice(matchEndIndex);\n        return prefix + replacement + suffix;\n    }, selectorWithGlobals);\n}\nfunction isSelector(potentialSelector) {\n    return potentialSelector.indexOf(':global(') >= 0 || potentialSelector.indexOf(':') === 0;\n}\nfunction expandSelector(newSelector, currentSelector) {\n    if (newSelector.indexOf(':global(') >= 0) {\n        return newSelector.replace(globalSelectorRegExp, '$1');\n    }\n    else if (newSelector.indexOf(':host(') === 0) {\n        return newSelector;\n    }\n    else if (newSelector.indexOf(':') === 0) {\n        return currentSelector + newSelector;\n    }\n    else if (newSelector.indexOf('&') < 0) {\n        return currentSelector + ' ' + newSelector;\n    }\n    return newSelector;\n}\nfunction extractSelector(currentSelector, rules, selector, value, stylesheet) {\n    if (rules === void 0) { rules = { __order: [] }; }\n    if (selector.indexOf('@') === 0) {\n        selector = selector + '{' + currentSelector;\n        extractRules([value], rules, selector, stylesheet);\n    }\n    else if (selector.indexOf(',') > -1) {\n        expandCommaSeparatedGlobals(selector)\n            .split(',')\n            .map(function (s) { return s.trim(); })\n            .forEach(function (separatedSelector) {\n            return extractRules([value], rules, expandSelector(separatedSelector, currentSelector), stylesheet);\n        });\n    }\n    else {\n        extractRules([value], rules, expandSelector(selector, currentSelector), stylesheet);\n    }\n}\nfunction extractRules(args, rules, currentSelector, stylesheet) {\n    if (rules === void 0) { rules = { __order: [] }; }\n    if (currentSelector === void 0) { currentSelector = '&'; }\n    var currentRules = rules[currentSelector];\n    if (!currentRules) {\n        currentRules = {};\n        rules[currentSelector] = currentRules;\n        rules.__order.push(currentSelector);\n    }\n    for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {\n        var arg = args_1[_i];\n        // If the arg is a string, we need to look up the class map and merge.\n        if (typeof arg === 'string') {\n            var expandedRules = stylesheet.argsFromClassName(arg);\n            if (expandedRules) {\n                extractRules(expandedRules, rules, currentSelector, stylesheet);\n            }\n            // Else if the arg is an array, we need to recurse in.\n        }\n        else if (Array.isArray(arg)) {\n            extractRules(arg, rules, currentSelector, stylesheet);\n        }\n        else {\n            for (var prop in arg) {\n                if (arg.hasOwnProperty(prop)) {\n                    var propValue = arg[prop];\n                    if (prop === 'selectors') {\n                        // every child is a selector.\n                        var selectors = arg.selectors;\n                        for (var newSelector in selectors) {\n                            if (selectors.hasOwnProperty(newSelector)) {\n                                extractSelector(currentSelector, rules, newSelector, selectors[newSelector], stylesheet);\n                            }\n                        }\n                    }\n                    else if (typeof propValue === 'object' || isSelector(prop)) {\n                        // prop is a selector.\n                        if (propValue !== null && propValue !== undefined) {\n                            extractSelector(currentSelector, rules, prop, propValue, stylesheet);\n                        }\n                    }\n                    else {\n                        if (propValue !== undefined) {\n                            // Else, add the rule to the currentSelector.\n                            if (prop === 'margin' || prop === 'padding') {\n                                expandQuads(currentRules, prop, propValue);\n                            }\n                            else {\n                                currentRules[prop] = propValue;\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n    return rules;\n}\nfunction expandQuads(currentRules, name, value) {\n    var parts = typeof value === 'string' ? tokenizeWithParentheses(value) : [value];\n    if (parts.length === 0) {\n        parts.push(value);\n    }\n    if (parts[parts.length - 1] === '!important') {\n        // Remove !important from parts, and append it to each part individually\n        parts = parts.slice(0, -1).map(function (p) { return p + ' !important'; });\n    }\n    currentRules[name + 'Top'] = parts[0];\n    currentRules[name + 'Right'] = parts[1] || parts[0];\n    currentRules[name + 'Bottom'] = parts[2] || parts[0];\n    currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];\n}\nfunction getKeyForRules(options, rules) {\n    var serialized = [options.rtl ? 'rtl' : 'ltr'];\n    var hasProps = false;\n    for (var _i = 0, _a = rules.__order; _i < _a.length; _i++) {\n        var selector = _a[_i];\n        serialized.push(selector);\n        var rulesForSelector = rules[selector];\n        for (var propName in rulesForSelector) {\n            if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {\n                hasProps = true;\n                serialized.push(propName, rulesForSelector[propName]);\n            }\n        }\n    }\n    return hasProps ? serialized.join('') : undefined;\n}\nfunction repeatString(target, count) {\n    if (count <= 0) {\n        return '';\n    }\n    if (count === 1) {\n        return target;\n    }\n    return target + repeatString(target, count - 1);\n}\nexport function serializeRuleEntries(options, ruleEntries) {\n    if (!ruleEntries) {\n        return '';\n    }\n    var allEntries = [];\n    for (var entry in ruleEntries) {\n        if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {\n            allEntries.push(entry, ruleEntries[entry]);\n        }\n    }\n    // Apply transforms.\n    for (var i = 0; i < allEntries.length; i += 2) {\n        kebabRules(allEntries, i);\n        provideUnits(allEntries, i);\n        rtlifyRules(options, allEntries, i);\n        prefixRules(allEntries, i);\n    }\n    // Apply punctuation.\n    for (var i = 1; i < allEntries.length; i += 4) {\n        allEntries.splice(i, 1, ':', allEntries[i], ';');\n    }\n    return allEntries.join('');\n}\nexport function styleToRegistration(options) {\n    var _a;\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    var stylesheet = (_a = options.stylesheet) !== null && _a !== void 0 ? _a : Stylesheet.getInstance(options.shadowConfig);\n    var rules = extractRules(args, undefined, undefined, stylesheet);\n    var key = getKeyForRules(options, rules);\n    if (key) {\n        var registration = {\n            className: stylesheet.classNameFromKey(key),\n            key: key,\n            args: args,\n        };\n        if (!registration.className) {\n            registration.className = stylesheet.getClassName(getDisplayName(rules));\n            var rulesToInsert = [];\n            for (var _b = 0, _c = rules.__order; _b < _c.length; _b++) {\n                var selector = _c[_b];\n                rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));\n            }\n            registration.rulesToInsert = rulesToInsert;\n        }\n        return registration;\n    }\n    return undefined;\n}\n/**\n * Insert style to stylesheet.\n * @param registration Style registration.\n * @param specificityMultiplier Number of times classname selector is repeated in the css rule.\n * This is to increase css specificity in case it's needed. Default to 1.\n */\nexport function applyRegistration(registration, specificityMultiplier, shadowConfig, sheet) {\n    if (specificityMultiplier === void 0) { specificityMultiplier = 1; }\n    var stylesheet = sheet !== null && sheet !== void 0 ? sheet : Stylesheet.getInstance(shadowConfig);\n    var className = registration.className, key = registration.key, args = registration.args, rulesToInsert = registration.rulesToInsert;\n    if (rulesToInsert) {\n        // rulesToInsert is an ordered array of selector/rule pairs.\n        for (var i = 0; i < rulesToInsert.length; i += 2) {\n            var rules = rulesToInsert[i + 1];\n            if (rules) {\n                var selector = rulesToInsert[i];\n                selector = selector.replace(/&/g, repeatString(\".\".concat(registration.className), specificityMultiplier));\n                // Insert. Note if a media query, we must close the query with a final bracket.\n                var processedRule = \"\".concat(selector, \"{\").concat(rules, \"}\").concat(selector.indexOf('@') === 0 ? '}' : '');\n                stylesheet.insertRule(processedRule);\n            }\n        }\n        stylesheet.cacheClassName(className, key, args, rulesToInsert);\n    }\n}\nexport function styleToClassName(options) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    var registration = styleToRegistration.apply(void 0, __spreadArray([options], args, false));\n    if (registration) {\n        applyRegistration(registration, options.specificityMultiplier, options.shadowConfig, options.stylesheet);\n        return registration.className;\n    }\n    return '';\n}\n//# sourceMappingURL=styleToClassName.js.map","/**\n * Split a string into tokens separated by whitespace, except all text within parentheses\n * is treated as a single token (whitespace is ignored within parentheses).\n *\n * Unlike String.split(' '), multiple consecutive space characters are collapsed and\n * removed from the returned array (including leading and trailing spaces).\n *\n * For example:\n * `tokenizeWithParentheses(\"3px calc(var(--x) / 2) 9px    0 \")`\n *   => `[\"3px\", \"calc(var(--x) / 2)\", \"9px\", \"0\"]`\n *\n * @returns The array of tokens. Returns an empty array if the string was empty or contained only whitespace.\n */\nexport function tokenizeWithParentheses(value) {\n    var parts = [];\n    var partStart = 0;\n    var parens = 0;\n    for (var i = 0; i < value.length; i++) {\n        switch (value[i]) {\n            case '(':\n                parens++;\n                break;\n            case ')':\n                if (parens) {\n                    parens--;\n                }\n                break;\n            case '\\t':\n            case ' ':\n                if (!parens) {\n                    // Add the new part if it's not an empty string\n                    if (i > partStart) {\n                        parts.push(value.substring(partStart, i));\n                    }\n                    partStart = i + 1;\n                }\n                break;\n        }\n    }\n    // Add the last part\n    if (partStart < value.length) {\n        parts.push(value.substring(partStart));\n    }\n    return parts;\n}\n//# sourceMappingURL=tokenizeWithParentheses.js.map","var rules = {};\nexport function kebabRules(rulePairs, index) {\n    var rule = rulePairs[index];\n    if (rule.charAt(0) !== '-') {\n        rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();\n    }\n}\n//# sourceMappingURL=kebabRules.js.map","import { getVendorSettings } from '../getVendorSettings';\nvar autoPrefixNames = {\n    'user-select': 1,\n};\nexport function prefixRules(rulePairs, index) {\n    var vendorSettings = getVendorSettings();\n    var name = rulePairs[index];\n    if (autoPrefixNames[name]) {\n        var value = rulePairs[index + 1];\n        if (autoPrefixNames[name]) {\n            if (vendorSettings.isWebkit) {\n                rulePairs.push('-webkit-' + name, value);\n            }\n            if (vendorSettings.isMoz) {\n                rulePairs.push('-moz-' + name, value);\n            }\n            if (vendorSettings.isMs) {\n                rulePairs.push('-ms-' + name, value);\n            }\n            if (vendorSettings.isOpera) {\n                rulePairs.push('-o-' + name, value);\n            }\n        }\n    }\n}\n//# sourceMappingURL=prefixRules.js.map","var NON_PIXEL_NUMBER_PROPS = [\n    'column-count',\n    'font-weight',\n    'flex',\n    'flex-grow',\n    'flex-shrink',\n    'fill-opacity',\n    'opacity',\n    'order',\n    'z-index',\n    'zoom',\n];\nexport function provideUnits(rulePairs, index) {\n    var name = rulePairs[index];\n    var value = rulePairs[index + 1];\n    if (typeof value === 'number') {\n        var isNonPixelProp = NON_PIXEL_NUMBER_PROPS.indexOf(name) > -1;\n        var isVariableOrPrefixed = name.indexOf('--') > -1;\n        var unit = isNonPixelProp || isVariableOrPrefixed ? '' : 'px';\n        rulePairs[index + 1] = \"\".concat(value).concat(unit);\n    }\n}\n//# sourceMappingURL=provideUnits.js.map","var _a;\nvar LEFT = 'left';\nvar RIGHT = 'right';\nvar NO_FLIP = '@noflip';\nvar NAME_REPLACEMENTS = (_a = {},\n    _a[LEFT] = RIGHT,\n    _a[RIGHT] = LEFT,\n    _a);\nvar VALUE_REPLACEMENTS = {\n    'w-resize': 'e-resize',\n    'sw-resize': 'se-resize',\n    'nw-resize': 'ne-resize',\n};\n/**\n * RTLifies the rulePair in the array at the current index. This mutates the array for performance\n * reasons.\n */\nexport function rtlifyRules(options, rulePairs, index) {\n    if (options.rtl) {\n        var name_1 = rulePairs[index];\n        if (!name_1) {\n            return;\n        }\n        var value = rulePairs[index + 1];\n        if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {\n            rulePairs[index + 1] = value.replace(/\\s*(?:\\/\\*\\s*)?\\@noflip\\b(?:\\s*\\*\\/)?\\s*?/g, '');\n        }\n        else if (name_1.indexOf(LEFT) >= 0) {\n            rulePairs[index] = name_1.replace(LEFT, RIGHT);\n        }\n        else if (name_1.indexOf(RIGHT) >= 0) {\n            rulePairs[index] = name_1.replace(RIGHT, LEFT);\n        }\n        else if (String(value).indexOf(LEFT) >= 0) {\n            rulePairs[index + 1] = value.replace(LEFT, RIGHT);\n        }\n        else if (String(value).indexOf(RIGHT) >= 0) {\n            rulePairs[index + 1] = value.replace(RIGHT, LEFT);\n        }\n        else if (NAME_REPLACEMENTS[name_1]) {\n            rulePairs[index] = NAME_REPLACEMENTS[name_1];\n        }\n        else if (VALUE_REPLACEMENTS[value]) {\n            rulePairs[index + 1] = VALUE_REPLACEMENTS[value];\n        }\n        else {\n            switch (name_1) {\n                case 'margin':\n                case 'padding':\n                    rulePairs[index + 1] = flipQuad(value);\n                    break;\n                case 'box-shadow':\n                    rulePairs[index + 1] = negateNum(value, 0);\n                    break;\n            }\n        }\n    }\n}\n/**\n * Given a string value in a space delimited format (e.g. \"1 2 3 4\"), negates a particular value.\n */\nfunction negateNum(value, partIndex) {\n    var parts = value.split(' ');\n    var numberVal = parseInt(parts[partIndex], 10);\n    parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));\n    return parts.join(' ');\n}\n/**\n * Given a string quad, flips the left and right values.\n */\nfunction flipQuad(value) {\n    if (typeof value === 'string') {\n        var parts = value.split(' ');\n        if (parts.length === 4) {\n            return \"\".concat(parts[0], \" \").concat(parts[3], \" \").concat(parts[2], \" \").concat(parts[1]);\n        }\n    }\n    return value;\n}\n//# sourceMappingURL=rtlifyRules.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { FocusZoneDirection, FocusZoneTabbableElements } from './FocusZone.types';\nimport { KeyCodes, css, elementContains, getDocument, getElementIndexPath, getFocusableByIndexPath, getId, getNativeProps, getNextElement, getParent, getPreviousElement, getRTL, htmlElementProperties, initializeComponentRef, isElementFocusSubZone, isElementFocusZone, isElementTabbable, shouldWrapFocus, warnDeprecations, portalContainsElement, findScrollableParent, createMergedRef, isElementVisibleAndNotHidden, MergeStylesShadowRootContext, } from '@fluentui/utilities';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getTheme } from '@fluentui/style-utilities';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar TABINDEX = 'tabindex';\nvar NO_VERTICAL_WRAP = 'data-no-vertical-wrap';\nvar NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';\nvar LARGE_DISTANCE_FROM_CENTER = 999999999;\nvar LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;\nvar focusZoneStyles;\nvar focusZoneClass = 'ms-FocusZone';\n/**\n * Raises a click on a target element based on a keyboard event.\n */\nfunction raiseClickFromKeyboardEvent(target, ev) {\n    var event;\n    if (typeof MouseEvent === 'function') {\n        event = new MouseEvent('click', {\n            ctrlKey: ev === null || ev === void 0 ? void 0 : ev.ctrlKey,\n            metaKey: ev === null || ev === void 0 ? void 0 : ev.metaKey,\n            shiftKey: ev === null || ev === void 0 ? void 0 : ev.shiftKey,\n            altKey: ev === null || ev === void 0 ? void 0 : ev.altKey,\n            bubbles: ev === null || ev === void 0 ? void 0 : ev.bubbles,\n            cancelable: ev === null || ev === void 0 ? void 0 : ev.cancelable,\n        });\n    }\n    else {\n        // eslint-disable-next-line no-restricted-globals\n        event = document.createEvent('MouseEvents');\n        // eslint-disable-next-line deprecation/deprecation\n        event.initMouseEvent('click', ev ? ev.bubbles : false, ev ? ev.cancelable : false, \n        // eslint-disable-next-line no-restricted-globals\n        window, // not using getWindow() since this can only be run client side\n        0, // detail\n        0, // screen x\n        0, // screen y\n        0, // client x\n        0, // client y\n        ev ? ev.ctrlKey : false, ev ? ev.altKey : false, ev ? ev.shiftKey : false, ev ? ev.metaKey : false, 0, // button\n        null);\n    }\n    target.dispatchEvent(event);\n}\n// Helper function that will return a class for when the root is focused\nfunction getRootClass() {\n    if (!focusZoneStyles) {\n        focusZoneStyles = mergeStyles({\n            selectors: {\n                ':focus': {\n                    outline: 'none',\n                },\n            },\n        }, focusZoneClass);\n    }\n    return focusZoneStyles;\n}\nvar _allInstances = {};\nvar _outerZones = new Set();\nvar ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search', 'textarea'];\nvar ALLOW_VIRTUAL_ELEMENTS = false;\nvar FocusZone = /** @class */ (function (_super) {\n    __extends(FocusZone, _super);\n    function FocusZone(props) {\n        var _this = this;\n        var _a, _b, _c, _d;\n        _this = _super.call(this, props) || this;\n        _this._root = React.createRef();\n        _this._mergedRef = createMergedRef();\n        _this._onFocus = function (ev) {\n            if (_this._portalContainsElement(ev.target)) {\n                // If the event target is inside a portal do not process the event.\n                return;\n            }\n            var _a = _this.props, onActiveElementChanged = _a.onActiveElementChanged, \n            // eslint-disable-next-line deprecation/deprecation\n            doNotAllowFocusEventToPropagate = _a.doNotAllowFocusEventToPropagate, stopFocusPropagation = _a.stopFocusPropagation, \n            // eslint-disable-next-line deprecation/deprecation\n            onFocusNotification = _a.onFocusNotification, onFocus = _a.onFocus, shouldFocusInnerElementWhenReceivedFocus = _a.shouldFocusInnerElementWhenReceivedFocus, defaultTabbableElement = _a.defaultTabbableElement;\n            var isImmediateDescendant = _this._isImmediateDescendantOfZone(ev.target);\n            var newActiveElement;\n            if (isImmediateDescendant) {\n                newActiveElement = ev.target;\n            }\n            else {\n                var parentElement = ev.target;\n                while (parentElement && parentElement !== _this._root.current) {\n                    if (isElementTabbable(parentElement, undefined, _this._inShadowRoot) &&\n                        _this._isImmediateDescendantOfZone(parentElement)) {\n                        newActiveElement = parentElement;\n                        break;\n                    }\n                    parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n                }\n            }\n            // If an inner focusable element should be focused when FocusZone container receives focus\n            if (shouldFocusInnerElementWhenReceivedFocus && ev.target === _this._root.current) {\n                var maybeElementToFocus = defaultTabbableElement &&\n                    typeof defaultTabbableElement === 'function' &&\n                    _this._root.current &&\n                    defaultTabbableElement(_this._root.current);\n                // try to focus defaultTabbable element\n                if (maybeElementToFocus && isElementTabbable(maybeElementToFocus, undefined, _this._inShadowRoot)) {\n                    newActiveElement = maybeElementToFocus;\n                    maybeElementToFocus.focus();\n                }\n                else {\n                    // force focus on first focusable element\n                    _this.focus(true);\n                    if (_this._activeElement) {\n                        // set to null as new active element was handled in method above\n                        newActiveElement = null;\n                    }\n                }\n            }\n            var initialElementFocused = !_this._activeElement;\n            // If the new active element is a child of this zone and received focus,\n            // update alignment an immediate descendant\n            if (newActiveElement && newActiveElement !== _this._activeElement) {\n                if (isImmediateDescendant || initialElementFocused) {\n                    _this._setFocusAlignment(newActiveElement, true, true);\n                }\n                _this._activeElement = newActiveElement;\n                if (initialElementFocused) {\n                    _this._updateTabIndexes();\n                }\n            }\n            if (onActiveElementChanged) {\n                onActiveElementChanged(_this._activeElement, ev);\n            }\n            if (stopFocusPropagation || doNotAllowFocusEventToPropagate) {\n                ev.stopPropagation();\n            }\n            if (onFocus) {\n                onFocus(ev);\n            }\n            else if (onFocusNotification) {\n                onFocusNotification();\n            }\n        };\n        _this._onBlur = function () {\n            _this._setParkedFocus(false);\n        };\n        _this._onMouseDown = function (ev) {\n            if (_this._portalContainsElement(ev.target)) {\n                // If the event target is inside a portal do not process the event.\n                return;\n            }\n            var disabled = _this.props.disabled;\n            if (disabled) {\n                return;\n            }\n            var target = ev.target;\n            var path = [];\n            while (target && target !== _this._root.current) {\n                path.push(target);\n                target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n            }\n            while (path.length) {\n                target = path.pop();\n                if (target && isElementTabbable(target, undefined, _this._inShadowRoot)) {\n                    _this._setActiveElement(target, true);\n                }\n                if (isElementFocusZone(target)) {\n                    // Stop here since the focus zone will take care of its own children.\n                    break;\n                }\n            }\n        };\n        /**\n         * Handle the keystrokes.\n         */\n        _this._onKeyDown = function (ev, theme) {\n            if (_this._portalContainsElement(ev.target)) {\n                // If the event target is inside a portal do not process the event.\n                return;\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = _this.props, direction = _a.direction, disabled = _a.disabled, isInnerZoneKeystroke = _a.isInnerZoneKeystroke, pagingSupportDisabled = _a.pagingSupportDisabled, shouldEnterInnerZone = _a.shouldEnterInnerZone;\n            if (disabled) {\n                return;\n            }\n            if (_this.props.onKeyDown) {\n                _this.props.onKeyDown(ev);\n            }\n            // If the default has been prevented, do not process keyboard events.\n            if (ev.isDefaultPrevented()) {\n                return;\n            }\n            if (_this._getDocument().activeElement === _this._root.current && _this._isInnerZone) {\n                // If this element has focus, it is being controlled by a parent.\n                // Ignore the keystroke.\n                return;\n            }\n            if (((shouldEnterInnerZone && shouldEnterInnerZone(ev)) || (isInnerZoneKeystroke && isInnerZoneKeystroke(ev))) &&\n                _this._isImmediateDescendantOfZone(ev.target)) {\n                // Try to focus\n                var innerZone = _this._getFirstInnerZone();\n                if (innerZone) {\n                    if (!innerZone.focus(true)) {\n                        return;\n                    }\n                }\n                else if (isElementFocusSubZone(ev.target)) {\n                    if (!_this.focusElement(getNextElement(ev.target, ev.target.firstChild, true))) {\n                        return;\n                    }\n                }\n                else {\n                    return;\n                }\n            }\n            else if (ev.altKey) {\n                return;\n            }\n            else {\n                // eslint-disable-next-line @fluentui/deprecated-keyboard-event-props, deprecation/deprecation\n                switch (ev.which) {\n                    case KeyCodes.space:\n                        if (_this._shouldRaiseClicksOnSpace && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.left:\n                        if (direction !== FocusZoneDirection.vertical) {\n                            _this._preventDefaultWhenHandled(ev);\n                            if (_this._moveFocusLeft(theme)) {\n                                break;\n                            }\n                        }\n                        return;\n                    case KeyCodes.right:\n                        if (direction !== FocusZoneDirection.vertical) {\n                            _this._preventDefaultWhenHandled(ev);\n                            if (_this._moveFocusRight(theme)) {\n                                break;\n                            }\n                        }\n                        return;\n                    case KeyCodes.up:\n                        if (direction !== FocusZoneDirection.horizontal) {\n                            _this._preventDefaultWhenHandled(ev);\n                            if (_this._moveFocusUp()) {\n                                break;\n                            }\n                        }\n                        return;\n                    case KeyCodes.down:\n                        if (direction !== FocusZoneDirection.horizontal) {\n                            _this._preventDefaultWhenHandled(ev);\n                            if (_this._moveFocusDown()) {\n                                break;\n                            }\n                        }\n                        return;\n                    case KeyCodes.pageDown:\n                        if (!pagingSupportDisabled && _this._moveFocusPaging(true)) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.pageUp:\n                        if (!pagingSupportDisabled && _this._moveFocusPaging(false)) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.tab:\n                        if (\n                        // eslint-disable-next-line deprecation/deprecation\n                        _this.props.allowTabKey ||\n                            _this.props.handleTabKey === FocusZoneTabbableElements.all ||\n                            (_this.props.handleTabKey === FocusZoneTabbableElements.inputOnly &&\n                                _this._isElementInput(ev.target))) {\n                            var focusChanged = false;\n                            _this._processingTabKey = true;\n                            if (direction === FocusZoneDirection.vertical ||\n                                !_this._shouldWrapFocus(_this._activeElement, NO_HORIZONTAL_WRAP)) {\n                                focusChanged = ev.shiftKey ? _this._moveFocusUp() : _this._moveFocusDown();\n                            }\n                            else {\n                                var tabWithDirection = getRTL(theme) ? !ev.shiftKey : ev.shiftKey;\n                                focusChanged = tabWithDirection ? _this._moveFocusLeft(theme) : _this._moveFocusRight(theme);\n                            }\n                            _this._processingTabKey = false;\n                            if (focusChanged) {\n                                break;\n                            }\n                            else if (_this.props.shouldResetActiveElementWhenTabFromZone) {\n                                _this._activeElement = null;\n                            }\n                        }\n                        return;\n                    case KeyCodes.home:\n                        if (_this._isContentEditableElement(ev.target) ||\n                            (_this._isElementInput(ev.target) &&\n                                !_this._shouldInputLoseFocus(ev.target, false))) {\n                            return false;\n                        }\n                        var firstChild = _this._root.current && _this._root.current.firstChild;\n                        if (_this._root.current &&\n                            firstChild &&\n                            _this.focusElement(getNextElement(_this._root.current, firstChild, true))) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.end:\n                        if (_this._isContentEditableElement(ev.target) ||\n                            (_this._isElementInput(ev.target) &&\n                                !_this._shouldInputLoseFocus(ev.target, true))) {\n                            return false;\n                        }\n                        var lastChild = _this._root.current && _this._root.current.lastChild;\n                        if (_this._root.current &&\n                            _this.focusElement(getPreviousElement(_this._root.current, lastChild, true, true, true))) {\n                            break;\n                        }\n                        return;\n                    case KeyCodes.enter:\n                        if (_this._shouldRaiseClicksOnEnter && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n                            break;\n                        }\n                        return;\n                    default:\n                        return;\n                }\n            }\n            ev.preventDefault();\n            ev.stopPropagation();\n        };\n        _this._getHorizontalDistanceFromCenter = function (isForward, \n        // eslint-disable-next-line deprecation/deprecation\n        activeRect, \n        // eslint-disable-next-line deprecation/deprecation\n        targetRect) {\n            // eslint-disable-next-line deprecation/deprecation\n            var leftAlignment = _this._focusAlignment.left || _this._focusAlignment.x || 0;\n            // ClientRect values can be floats that differ by very small fractions of a decimal.\n            // If the difference between top and bottom are within a pixel then we should treat\n            // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n            // but without Math.Floor they will be handled incorrectly.\n            var targetRectTop = Math.floor(targetRect.top);\n            var activeRectBottom = Math.floor(activeRect.bottom);\n            var targetRectBottom = Math.floor(targetRect.bottom);\n            var activeRectTop = Math.floor(activeRect.top);\n            var isValidCandidateOnpagingDown = isForward && targetRectTop > activeRectBottom;\n            var isValidCandidateOnpagingUp = !isForward && targetRectBottom < activeRectTop;\n            if (isValidCandidateOnpagingDown || isValidCandidateOnpagingUp) {\n                if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n                    return 0;\n                }\n                return Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n            }\n            if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n                return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n            }\n            return LARGE_DISTANCE_FROM_CENTER;\n        };\n        // Manage componentRef resolution.\n        initializeComponentRef(_this);\n        if (process.env.NODE_ENV !== 'production') {\n            warnDeprecations('FocusZone', props, {\n                rootProps: undefined,\n                allowTabKey: 'handleTabKey',\n                elementType: 'as',\n                ariaDescribedBy: 'aria-describedby',\n                ariaLabelledBy: 'aria-labelledby',\n            });\n        }\n        _this._id = getId('FocusZone');\n        _this._focusAlignment = {\n            left: 0,\n            top: 0,\n        };\n        _this._processingTabKey = false;\n        var shouldRaiseClicksFallback = (_b = (_a = props.shouldRaiseClicks) !== null && _a !== void 0 ? _a : FocusZone.defaultProps.shouldRaiseClicks) !== null && _b !== void 0 ? _b : true;\n        _this._shouldRaiseClicksOnEnter = (_c = props.shouldRaiseClicksOnEnter) !== null && _c !== void 0 ? _c : shouldRaiseClicksFallback;\n        _this._shouldRaiseClicksOnSpace = (_d = props.shouldRaiseClicksOnSpace) !== null && _d !== void 0 ? _d : shouldRaiseClicksFallback;\n        return _this;\n    }\n    /** Used for testing purposes only. */\n    FocusZone.getOuterZones = function () {\n        return _outerZones.size;\n    };\n    /**\n     * Handle global tab presses so that we can patch tabindexes on the fly.\n     * HEADS UP: This must not be an arrow function in order to be referentially equal among instances\n     * for ref counting to work correctly!\n     */\n    FocusZone._onKeyDownCapture = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation, @fluentui/deprecated-keyboard-event-props\n        if (ev.which === KeyCodes.tab) {\n            _outerZones.forEach(function (zone) { return zone._updateTabIndexes(); });\n        }\n    };\n    FocusZone.prototype.componentDidMount = function () {\n        var _a;\n        var root = this._root.current;\n        this._inShadowRoot = !!((_a = this.context) === null || _a === void 0 ? void 0 : _a.shadowRoot);\n        _allInstances[this._id] = this;\n        if (root) {\n            var parentElement = getParent(root, ALLOW_VIRTUAL_ELEMENTS);\n            while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {\n                if (isElementFocusZone(parentElement)) {\n                    this._isInnerZone = true;\n                    break;\n                }\n                parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n            }\n            if (!this._isInnerZone) {\n                _outerZones.add(this);\n                this._root.current && this._root.current.addEventListener('keydown', FocusZone._onKeyDownCapture, true);\n            }\n            this._root.current && this._root.current.addEventListener('blur', this._onBlur, true);\n            // Assign initial tab indexes so that we can set initial focus as appropriate.\n            this._updateTabIndexes();\n            if (this.props.defaultTabbableElement && typeof this.props.defaultTabbableElement === 'string') {\n                this._activeElement = this._getDocument().querySelector(this.props.defaultTabbableElement);\n                // eslint-disable-next-line deprecation/deprecation\n            }\n            else if (this.props.defaultActiveElement) {\n                // eslint-disable-next-line deprecation/deprecation\n                this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement);\n            }\n            if (this.props.shouldFocusOnMount) {\n                this.focus();\n            }\n        }\n    };\n    FocusZone.prototype.componentDidUpdate = function () {\n        var _a;\n        var root = this._root.current;\n        var doc = this._getDocument();\n        this._inShadowRoot = !!((_a = this.context) === null || _a === void 0 ? void 0 : _a.shadowRoot);\n        // If either _activeElement or _defaultFocusElement are no longer contained by _root,\n        // reset those variables (and update tab indexes) to avoid memory leaks\n        if ((this._activeElement && !elementContains(this._root.current, this._activeElement, ALLOW_VIRTUAL_ELEMENTS)) ||\n            (this._defaultFocusElement &&\n                !elementContains(this._root.current, this._defaultFocusElement, ALLOW_VIRTUAL_ELEMENTS))) {\n            this._activeElement = null;\n            this._defaultFocusElement = null;\n            this._updateTabIndexes();\n        }\n        if (!this.props.preventFocusRestoration &&\n            doc &&\n            this._lastIndexPath &&\n            (doc.activeElement === doc.body || doc.activeElement === null || doc.activeElement === root)) {\n            // The element has been removed after the render, attempt to restore focus.\n            var elementToFocus = getFocusableByIndexPath(root, this._lastIndexPath);\n            if (elementToFocus) {\n                this._setActiveElement(elementToFocus, true);\n                elementToFocus.focus();\n                this._setParkedFocus(false);\n            }\n            else {\n                // We had a focus path to restore, but now that path is unresolvable. Park focus\n                // on the container until we can try again.\n                this._setParkedFocus(true);\n            }\n        }\n    };\n    FocusZone.prototype.componentWillUnmount = function () {\n        delete _allInstances[this._id];\n        if (!this._isInnerZone) {\n            _outerZones.delete(this);\n            this._root.current && this._root.current.removeEventListener('keydown', FocusZone._onKeyDownCapture, true);\n        }\n        if (this._root.current) {\n            this._root.current.removeEventListener('blur', this._onBlur, true);\n        }\n        this._activeElement = null;\n        this._defaultFocusElement = null;\n    };\n    FocusZone.prototype.render = function () {\n        var _this = this;\n        // eslint-disable-next-line deprecation/deprecation\n        var _a = this.props, tag = _a.as, elementType = _a.elementType, rootProps = _a.rootProps, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className;\n        var divProps = getNativeProps(this.props, htmlElementProperties);\n        var Tag = tag || elementType || 'div';\n        // Note, right before rendering/reconciling proceeds, we need to record if focus\n        // was in the zone before the update. This helper will track this and, if focus\n        // was actually in the zone, what the index path to the element is at this time.\n        // Then, later in componentDidUpdate, we can evaluate if we need to restore it in\n        // the case the element was removed.\n        this._evaluateFocusBeforeRender();\n        // Only support RTL defined in global theme, not contextual theme/RTL.\n        var theme = getTheme();\n        return (React.createElement(Tag, __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, divProps, rootProps, { \n            // Once the getClassName correctly memoizes inputs this should\n            // be replaced so that className is passed to getRootClass and is included there so\n            // the class names will always be in the same order.\n            className: css(getRootClass(), className), \n            // eslint-disable-next-line deprecation/deprecation\n            ref: this._mergedRef(this.props.elementRef, this._root), \"data-focuszone-id\": this._id, \n            // eslint-disable-next-line react/jsx-no-bind\n            onKeyDown: function (ev) { return _this._onKeyDown(ev, theme); }, onFocus: this._onFocus, onMouseDownCapture: this._onMouseDown }), this.props.children));\n    };\n    /**\n     * Sets focus to the first tabbable item in the zone.\n     * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n     * if focus is already in the focus zone.\n     * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n     * @returns True if focus could be set to an active element, false if no operation was taken.\n     */\n    FocusZone.prototype.focus = function (forceIntoFirstElement, bypassHiddenElements) {\n        if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n        if (bypassHiddenElements === void 0) { bypassHiddenElements = false; }\n        if (this._root.current) {\n            if (!forceIntoFirstElement &&\n                this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n                this._isInnerZone) {\n                var ownerZoneElement = this._getOwnerZone(this._root.current);\n                if (ownerZoneElement !== this._root.current) {\n                    var ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n                    return !!ownerZone && ownerZone.focusElement(this._root.current);\n                }\n                return false;\n            }\n            else if (!forceIntoFirstElement &&\n                this._activeElement &&\n                elementContains(this._root.current, this._activeElement) &&\n                isElementTabbable(this._activeElement, undefined, this._inShadowRoot) &&\n                (!bypassHiddenElements || isElementVisibleAndNotHidden(this._activeElement))) {\n                this._activeElement.focus();\n                return true;\n            }\n            else {\n                var firstChild = this._root.current.firstChild;\n                return this.focusElement(getNextElement(this._root.current, firstChild, true, undefined, undefined, undefined, undefined, undefined, bypassHiddenElements));\n            }\n        }\n        return false;\n    };\n    /**\n     * Sets focus to the last tabbable item in the zone.\n     * @returns True if focus could be set to an active element, false if no operation was taken.\n     */\n    FocusZone.prototype.focusLast = function () {\n        if (this._root.current) {\n            var lastChild = this._root.current && this._root.current.lastChild;\n            return this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true));\n        }\n        return false;\n    };\n    /**\n     * Sets focus to a specific child element within the zone. This can be used in conjunction with\n     * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n     * location and then focus.)\n     * @param element - The child element within the zone to focus.\n     * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n     * @returns True if focus could be set to an active element, false if no operation was taken.\n     */\n    FocusZone.prototype.focusElement = function (element, forceAlignment) {\n        // eslint-disable-next-line deprecation/deprecation\n        var _a = this.props, onBeforeFocus = _a.onBeforeFocus, shouldReceiveFocus = _a.shouldReceiveFocus;\n        if ((shouldReceiveFocus && !shouldReceiveFocus(element)) || (onBeforeFocus && !onBeforeFocus(element))) {\n            return false;\n        }\n        if (element) {\n            // when we set focus to a specific child, we should recalculate the alignment depending on its position.\n            this._setActiveElement(element, forceAlignment);\n            if (this._activeElement) {\n                this._activeElement.focus();\n            }\n            return true;\n        }\n        return false;\n    };\n    /**\n     * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference,\n     * rather than a center based on the last horizontal motion.\n     * @param point - the new reference point.\n     */\n    FocusZone.prototype.setFocusAlignment = function (point) {\n        this._focusAlignment = point;\n    };\n    Object.defineProperty(FocusZone.prototype, \"defaultFocusElement\", {\n        get: function () {\n            return this._defaultFocusElement;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(FocusZone.prototype, \"activeElement\", {\n        get: function () {\n            return this._activeElement;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    FocusZone.prototype._evaluateFocusBeforeRender = function () {\n        var root = this._root.current;\n        var doc = this._getDocument();\n        if (doc) {\n            var focusedElement = doc.activeElement;\n            // Only update the index path if we are not parked on the root.\n            if (focusedElement !== root) {\n                var shouldRestoreFocus = elementContains(root, focusedElement, false);\n                this._lastIndexPath = shouldRestoreFocus ? getElementIndexPath(root, focusedElement) : undefined;\n            }\n        }\n    };\n    /**\n     * When focus is in the zone at render time but then all focusable elements are removed,\n     * we \"park\" focus temporarily on the root. Once we update with focusable children, we restore\n     * focus to the closest path from previous. If the user tabs away from the parked container,\n     * we restore focusability to the pre-parked state.\n     */\n    FocusZone.prototype._setParkedFocus = function (isParked) {\n        var root = this._root.current;\n        if (root && this._isParked !== isParked) {\n            this._isParked = isParked;\n            if (isParked) {\n                if (!this.props.allowFocusRoot) {\n                    this._parkedTabIndex = root.getAttribute('tabindex');\n                    root.setAttribute('tabindex', '-1');\n                }\n                root.focus();\n            }\n            else if (!this.props.allowFocusRoot) {\n                if (this._parkedTabIndex) {\n                    root.setAttribute('tabindex', this._parkedTabIndex);\n                    this._parkedTabIndex = undefined;\n                }\n                else {\n                    root.removeAttribute('tabindex');\n                }\n            }\n        }\n    };\n    FocusZone.prototype._setActiveElement = function (element, forceAlignment) {\n        var previousActiveElement = this._activeElement;\n        this._activeElement = element;\n        if (previousActiveElement) {\n            if (isElementFocusZone(previousActiveElement)) {\n                this._updateTabIndexes(previousActiveElement);\n            }\n            previousActiveElement.tabIndex = -1;\n        }\n        if (this._activeElement) {\n            if (!this._focusAlignment || forceAlignment) {\n                this._setFocusAlignment(element, true, true);\n            }\n            this._activeElement.tabIndex = 0;\n        }\n    };\n    FocusZone.prototype._preventDefaultWhenHandled = function (ev) {\n        this.props.preventDefaultWhenHandled && ev.preventDefault();\n    };\n    /**\n     * Walk up the dom try to find a focusable element.\n     */\n    FocusZone.prototype._tryInvokeClickForFocusable = function (targetElement, ev) {\n        var target = targetElement;\n        if (target === this._root.current) {\n            return false;\n        }\n        do {\n            if (target.tagName === 'BUTTON' ||\n                target.tagName === 'A' ||\n                target.tagName === 'INPUT' ||\n                target.tagName === 'TEXTAREA' ||\n                target.tagName === 'SUMMARY') {\n                return false;\n            }\n            if (this._isImmediateDescendantOfZone(target) &&\n                target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n                target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true') {\n                raiseClickFromKeyboardEvent(target, ev);\n                return true;\n            }\n            target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n        } while (target !== this._root.current);\n        return false;\n    };\n    /**\n     * Traverse to find first child zone.\n     */\n    FocusZone.prototype._getFirstInnerZone = function (rootElement) {\n        rootElement = rootElement || this._activeElement || this._root.current;\n        if (!rootElement) {\n            return null;\n        }\n        if (isElementFocusZone(rootElement)) {\n            return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n        }\n        var child = rootElement.firstElementChild;\n        while (child) {\n            if (isElementFocusZone(child)) {\n                return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n            }\n            var match = this._getFirstInnerZone(child);\n            if (match) {\n                return match;\n            }\n            child = child.nextElementSibling;\n        }\n        return null;\n    };\n    FocusZone.prototype._moveFocus = function (isForward, \n    // eslint-disable-next-line deprecation/deprecation\n    getDistanceFromCenter, ev, useDefaultWrap) {\n        if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n        var element = this._activeElement;\n        var candidateDistance = -1;\n        var candidateElement = undefined;\n        var changedFocus = false;\n        var isBidirectional = this.props.direction === FocusZoneDirection.bidirectional;\n        if (!element || !this._root.current) {\n            return false;\n        }\n        if (this._isElementInput(element)) {\n            if (!this._shouldInputLoseFocus(element, isForward)) {\n                return false;\n            }\n        }\n        var activeRect = isBidirectional ? element.getBoundingClientRect() : null;\n        do {\n            element = (isForward ? getNextElement(this._root.current, element) : getPreviousElement(this._root.current, element));\n            if (isBidirectional) {\n                if (element) {\n                    var targetRect = element.getBoundingClientRect();\n                    // eslint-disable-next-line deprecation/deprecation\n                    var elementDistance = getDistanceFromCenter(activeRect, targetRect);\n                    if (elementDistance === -1 && candidateDistance === -1) {\n                        candidateElement = element;\n                        break;\n                    }\n                    if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {\n                        candidateDistance = elementDistance;\n                        candidateElement = element;\n                    }\n                    if (candidateDistance >= 0 && elementDistance < 0) {\n                        break;\n                    }\n                }\n            }\n            else {\n                candidateElement = element;\n                break;\n            }\n        } while (element);\n        // Focus the closest candidate\n        if (candidateElement && candidateElement !== this._activeElement) {\n            changedFocus = true;\n            this.focusElement(candidateElement);\n        }\n        else if (this.props.isCircularNavigation && useDefaultWrap) {\n            if (isForward) {\n                return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n            }\n            else {\n                return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n            }\n        }\n        return changedFocus;\n    };\n    FocusZone.prototype._moveFocusDown = function () {\n        var _this = this;\n        var targetTop = -1;\n        // eslint-disable-next-line deprecation/deprecation\n        var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n        if (\n        // eslint-disable-next-line deprecation/deprecation\n        this._moveFocus(true, function (activeRect, targetRect) {\n            var distance = -1;\n            // ClientRect values can be floats that differ by very small fractions of a decimal.\n            // If the difference between top and bottom are within a pixel then we should treat\n            // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n            // but without Math.Floor they will be handled incorrectly.\n            var targetRectTop = Math.floor(targetRect.top);\n            var activeRectBottom = Math.floor(activeRect.bottom);\n            if (targetRectTop < activeRectBottom) {\n                if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n                    return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n                }\n                return LARGE_DISTANCE_FROM_CENTER;\n            }\n            if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {\n                targetTop = targetRectTop;\n                if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n                    distance = 0;\n                }\n                else {\n                    distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n                }\n            }\n            return distance;\n        })) {\n            this._setFocusAlignment(this._activeElement, false, true);\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._moveFocusUp = function () {\n        var _this = this;\n        var targetTop = -1;\n        // eslint-disable-next-line deprecation/deprecation\n        var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n        if (\n        // eslint-disable-next-line deprecation/deprecation\n        this._moveFocus(false, function (activeRect, targetRect) {\n            var distance = -1;\n            // ClientRect values can be floats that differ by very small fractions of a decimal.\n            // If the difference between top and bottom are within a pixel then we should treat\n            // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n            // but without Math.Floor they will be handled incorrectly.\n            var targetRectBottom = Math.floor(targetRect.bottom);\n            var targetRectTop = Math.floor(targetRect.top);\n            var activeRectTop = Math.floor(activeRect.top);\n            if (targetRectBottom > activeRectTop) {\n                if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n                    return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n                }\n                return LARGE_DISTANCE_FROM_CENTER;\n            }\n            if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {\n                targetTop = targetRectTop;\n                if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n                    distance = 0;\n                }\n                else {\n                    distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n                }\n            }\n            return distance;\n        })) {\n            this._setFocusAlignment(this._activeElement, false, true);\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._moveFocusLeft = function (theme) {\n        var _this = this;\n        var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n        if (this._moveFocus(getRTL(theme), \n        // eslint-disable-next-line deprecation/deprecation\n        function (activeRect, targetRect) {\n            var distance = -1;\n            var topBottomComparison;\n            if (getRTL(theme)) {\n                // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.\n                // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.\n                // This is important, because we want to be comparing the top of the target rect\n                // with the bottom of the active rect.\n                topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n            }\n            else {\n                topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n            }\n            if (topBottomComparison &&\n                targetRect.right <= activeRect.right &&\n                _this.props.direction !== FocusZoneDirection.vertical) {\n                distance = activeRect.right - targetRect.right;\n            }\n            else if (!shouldWrap) {\n                distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n            }\n            return distance;\n        }, undefined /*ev*/, shouldWrap)) {\n            this._setFocusAlignment(this._activeElement, true, false);\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._moveFocusRight = function (theme) {\n        var _this = this;\n        var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n        if (this._moveFocus(!getRTL(theme), \n        // eslint-disable-next-line deprecation/deprecation\n        function (activeRect, targetRect) {\n            var distance = -1;\n            var topBottomComparison;\n            if (getRTL(theme)) {\n                // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.\n                // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.\n                // This is important, because we want to be comparing the bottom of the target rect\n                // with the top of the active rect.\n                topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n            }\n            else {\n                topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n            }\n            if (topBottomComparison &&\n                targetRect.left >= activeRect.left &&\n                _this.props.direction !== FocusZoneDirection.vertical) {\n                distance = targetRect.left - activeRect.left;\n            }\n            else if (!shouldWrap) {\n                distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n            }\n            return distance;\n        }, undefined /*ev*/, shouldWrap)) {\n            this._setFocusAlignment(this._activeElement, true, false);\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._moveFocusPaging = function (isForward, useDefaultWrap) {\n        if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n        var element = this._activeElement;\n        if (!element || !this._root.current) {\n            return false;\n        }\n        if (this._isElementInput(element)) {\n            if (!this._shouldInputLoseFocus(element, isForward)) {\n                return false;\n            }\n        }\n        var scrollableParent = findScrollableParent(element);\n        if (!scrollableParent) {\n            return false;\n        }\n        var candidateDistance = -1;\n        var candidateElement = undefined;\n        var targetTop = -1;\n        var targetBottom = -1;\n        var pagesize = scrollableParent.clientHeight;\n        var activeRect = element.getBoundingClientRect();\n        do {\n            element = isForward\n                ? getNextElement(this._root.current, element)\n                : getPreviousElement(this._root.current, element);\n            if (element) {\n                var targetRect = element.getBoundingClientRect();\n                var targetRectTop = Math.floor(targetRect.top);\n                var activeRectBottom = Math.floor(activeRect.bottom);\n                var targetRectBottom = Math.floor(targetRect.bottom);\n                var activeRectTop = Math.floor(activeRect.top);\n                var elementDistance = this._getHorizontalDistanceFromCenter(isForward, activeRect, targetRect);\n                var isElementPassedPageSizeOnPagingDown = isForward && targetRectTop > activeRectBottom + pagesize;\n                var isElementPassedPageSizeOnPagingUp = !isForward && targetRectBottom < activeRectTop - pagesize;\n                if (isElementPassedPageSizeOnPagingDown || isElementPassedPageSizeOnPagingUp) {\n                    break;\n                }\n                if (elementDistance > -1) {\n                    // for paging down\n                    if (isForward && targetRectTop > targetTop) {\n                        targetTop = targetRectTop;\n                        candidateDistance = elementDistance;\n                        candidateElement = element;\n                    }\n                    else if (!isForward && targetRectBottom < targetBottom) {\n                        // for paging up\n                        targetBottom = targetRectBottom;\n                        candidateDistance = elementDistance;\n                        candidateElement = element;\n                    }\n                    else if (candidateDistance === -1 || elementDistance <= candidateDistance) {\n                        candidateDistance = elementDistance;\n                        candidateElement = element;\n                    }\n                }\n            }\n        } while (element);\n        var changedFocus = false;\n        // Focus the closest candidate\n        if (candidateElement && candidateElement !== this._activeElement) {\n            changedFocus = true;\n            this.focusElement(candidateElement);\n            this._setFocusAlignment(candidateElement, false, true);\n        }\n        else if (this.props.isCircularNavigation && useDefaultWrap) {\n            if (isForward) {\n                return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n            }\n            return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n        }\n        return changedFocus;\n    };\n    FocusZone.prototype._setFocusAlignment = function (element, isHorizontal, isVertical) {\n        if (this.props.direction === FocusZoneDirection.bidirectional &&\n            (!this._focusAlignment || isHorizontal || isVertical)) {\n            var rect = element.getBoundingClientRect();\n            var left = rect.left + rect.width / 2;\n            var top_1 = rect.top + rect.height / 2;\n            if (!this._focusAlignment) {\n                this._focusAlignment = { left: left, top: top_1 };\n            }\n            if (isHorizontal) {\n                this._focusAlignment.left = left;\n            }\n            if (isVertical) {\n                this._focusAlignment.top = top_1;\n            }\n        }\n    };\n    FocusZone.prototype._isImmediateDescendantOfZone = function (element) {\n        return this._getOwnerZone(element) === this._root.current;\n    };\n    FocusZone.prototype._getOwnerZone = function (element) {\n        var parentElement = getParent(element, ALLOW_VIRTUAL_ELEMENTS);\n        while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {\n            if (isElementFocusZone(parentElement)) {\n                return parentElement;\n            }\n            parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n        }\n        return parentElement;\n    };\n    FocusZone.prototype._updateTabIndexes = function (element) {\n        if (!this._activeElement &&\n            this.props.defaultTabbableElement &&\n            typeof this.props.defaultTabbableElement === 'function') {\n            this._activeElement = this.props.defaultTabbableElement(this._root.current);\n        }\n        if (!element && this._root.current) {\n            this._defaultFocusElement = null;\n            element = this._root.current;\n            if (this._activeElement && !elementContains(element, this._activeElement)) {\n                this._activeElement = null;\n            }\n        }\n        // If active element changes state to disabled, set it to null.\n        // Otherwise, we lose keyboard accessibility to other elements in focus zone.\n        if (this._activeElement && !isElementTabbable(this._activeElement, undefined, this._inShadowRoot)) {\n            this._activeElement = null;\n        }\n        var childNodes = element && element.children;\n        for (var childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {\n            var child = childNodes[childIndex];\n            if (!isElementFocusZone(child)) {\n                // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.\n                if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {\n                    child.setAttribute(TABINDEX, '-1');\n                }\n                if (isElementTabbable(child, undefined, this._inShadowRoot)) {\n                    if (this.props.disabled) {\n                        child.setAttribute(TABINDEX, '-1');\n                    }\n                    else if (!this._isInnerZone &&\n                        ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n                        this._defaultFocusElement = child;\n                        if (child.getAttribute(TABINDEX) !== '0') {\n                            child.setAttribute(TABINDEX, '0');\n                        }\n                    }\n                    else if (child.getAttribute(TABINDEX) !== '-1') {\n                        child.setAttribute(TABINDEX, '-1');\n                    }\n                }\n                else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {\n                    // Disgusting IE hack. Sad face.\n                    child.setAttribute('focusable', 'false');\n                }\n            }\n            else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n                if (!this._isInnerZone &&\n                    ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n                    this._defaultFocusElement = child;\n                    if (child.getAttribute(TABINDEX) !== '0') {\n                        child.setAttribute(TABINDEX, '0');\n                    }\n                }\n                else if (child.getAttribute(TABINDEX) !== '-1') {\n                    child.setAttribute(TABINDEX, '-1');\n                }\n            }\n            this._updateTabIndexes(child);\n        }\n    };\n    FocusZone.prototype._isContentEditableElement = function (element) {\n        return element && element.getAttribute('contenteditable') === 'true';\n    };\n    FocusZone.prototype._isElementInput = function (element) {\n        if (element &&\n            element.tagName &&\n            (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')) {\n            return true;\n        }\n        return false;\n    };\n    FocusZone.prototype._shouldInputLoseFocus = function (element, isForward) {\n        // If a tab was used, we want to focus on the next element.\n        if (!this._processingTabKey &&\n            element &&\n            element.type &&\n            ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1) {\n            var selectionStart = element.selectionStart;\n            var selectionEnd = element.selectionEnd;\n            var isRangeSelected = selectionStart !== selectionEnd;\n            var inputValue = element.value;\n            var isReadonly = element.readOnly;\n            // We shouldn't lose focus in the following cases:\n            // 1. There is range selected.\n            // 2. When selection start is larger than 0 and it is backward and not readOnly.\n            // 3. when selection start is not the end of length, it is forward and not readOnly.\n            // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit\n            // tab) and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is\n            // determined by calling the callback shouldInputLoseFocusOnArrowKey\n            if (isRangeSelected ||\n                (selectionStart > 0 && !isForward && !isReadonly) ||\n                (selectionStart !== inputValue.length && isForward && !isReadonly) ||\n                (!!this.props.handleTabKey &&\n                    !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))) {\n                return false;\n            }\n        }\n        return true;\n    };\n    FocusZone.prototype._shouldWrapFocus = function (element, noWrapDataAttribute) {\n        return this.props.checkForNoWrap ? shouldWrapFocus(element, noWrapDataAttribute) : true;\n    };\n    /**\n     * Returns true if the element is a descendant of the FocusZone through a React portal.\n     */\n    FocusZone.prototype._portalContainsElement = function (element) {\n        return element && !!this._root.current && portalContainsElement(element, this._root.current);\n    };\n    FocusZone.prototype._getDocument = function () {\n        return getDocument(this._root.current);\n    };\n    FocusZone.contextType = MergeStylesShadowRootContext;\n    FocusZone.defaultProps = {\n        isCircularNavigation: false,\n        direction: FocusZoneDirection.bidirectional,\n        shouldRaiseClicks: true,\n        // Hardcoding uncontrolled flag for proper interop with FluentUI V9.\n        'data-tabster': '{\"uncontrolled\": {}}',\n    };\n    return FocusZone;\n}(React.Component));\nexport { FocusZone };\n//# sourceMappingURL=FocusZone.js.map","/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneTabbableElements = {\n    /** Tabbing is not allowed */\n    none: 0,\n    /** All tabbing action is allowed */\n    all: 1,\n    /** Tabbing is allowed only on input elements */\n    inputOnly: 2,\n};\n/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneDirection;\n(function (FocusZoneDirection) {\n    /** Only react to up/down arrows. */\n    FocusZoneDirection[FocusZoneDirection[\"vertical\"] = 0] = \"vertical\";\n    /** Only react to left/right arrows. */\n    FocusZoneDirection[FocusZoneDirection[\"horizontal\"] = 1] = \"horizontal\";\n    /** React to all arrows. */\n    FocusZoneDirection[FocusZoneDirection[\"bidirectional\"] = 2] = \"bidirectional\";\n    /**\n     * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n     * Right and Left arrow keys are swapped in RTL mode.\n     */\n    FocusZoneDirection[FocusZoneDirection[\"domOrder\"] = 3] = \"domOrder\";\n})(FocusZoneDirection || (FocusZoneDirection = {}));\n//# sourceMappingURL=FocusZone.types.js.map","import { Async } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to provide an Async instance that is automatically cleaned up on dismount.\n */\nexport function useAsync() {\n    var asyncRef = React.useRef();\n    if (!asyncRef.current) {\n        asyncRef.current = new Async();\n    }\n    React.useEffect(function () {\n        return function () {\n            var _a;\n            (_a = asyncRef.current) === null || _a === void 0 ? void 0 : _a.dispose();\n            asyncRef.current = undefined;\n        };\n    }, []);\n    return asyncRef.current;\n}\n//# sourceMappingURL=useAsync.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to store a value and generate callbacks for setting the value to true or false.\n * The identity of the callbacks will always stay the same.\n *\n * @param initialState - Initial value\n * @returns Array with the current value and an object containing the updater callbacks.\n */\nexport function useBoolean(initialState) {\n    var _a = React.useState(initialState), value = _a[0], setValue = _a[1];\n    var setTrue = useConst(function () { return function () {\n        setValue(true);\n    }; });\n    var setFalse = useConst(function () { return function () {\n        setValue(false);\n    }; });\n    var toggle = useConst(function () { return function () {\n        setValue(function (currentValue) { return !currentValue; });\n    }; });\n    return [value, { setTrue: setTrue, setFalse: setFalse, toggle: toggle }];\n}\n//# sourceMappingURL=useBoolean.js.map","import * as React from 'react';\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue) {\n    // Use useRef to store the value because it's the least expensive built-in hook that works here\n    // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n    // internally due to reducer handling which we don't need)\n    var ref = React.useRef();\n    if (ref.current === undefined) {\n        // Box the value in an object so we can tell if it's initialized even if the initializer\n        // returns/is undefined\n        ref.current = {\n            value: typeof initialValue === 'function' ? initialValue() : initialValue,\n        };\n    }\n    return ref.current.value;\n}\n//# sourceMappingURL=useConst.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nexport function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {\n    var _a = React.useState(defaultUncontrolledValue), value = _a[0], setValue = _a[1];\n    var isControlled = useConst(controlledValue !== undefined);\n    var currentValue = isControlled ? controlledValue : value;\n    // Duplicate the current value and onChange in refs so they're accessible from\n    // setValueOrCallOnChange without creating a new callback every time\n    var valueRef = React.useRef(currentValue);\n    var onChangeRef = React.useRef(onChange);\n    React.useEffect(function () {\n        valueRef.current = currentValue;\n        onChangeRef.current = onChange;\n    });\n    // To match the behavior of the setter returned by React.useState, this callback's identity\n    // should never change. This means it MUST NOT directly reference variables that can change.\n    var setValueOrCallOnChange = useConst(function () { return function (update, ev) {\n        // Assuming here that TValue is not a function, because a controllable value will typically\n        // be something a user can enter as input\n        var newValue = typeof update === 'function' ? update(valueRef.current) : update;\n        if (onChangeRef.current) {\n            onChangeRef.current(ev, newValue);\n        }\n        if (!isControlled) {\n            setValue(newValue);\n        }\n    }; });\n    return [currentValue, setValueOrCallOnChange];\n}\n//# sourceMappingURL=useControllableValue.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nimport { useIsomorphicLayoutEffect } from '@fluentui/utilities';\n/**\n * Modified `useCallback` that returns the same function reference every time, but internally calls\n * the most-recently passed callback implementation. Can be useful in situations such as:\n * - Event handler dependencies change too frequently, such as user props which might change on\n *   every render, or volatile values such as useState/useDispatch\n * - Callback must be referenced in a captured context (such as a window event handler or unmount\n *   handler that's registered once) but needs access to the latest props\n *\n * In general, prefer `useCallback` unless you've encountered one of the problems above.\n *\n * https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n *\n * @param fn - The callback function that will be used\n * @returns A function which is referentially stable but internally calls the most recently passed callback\n */\nexport function useEventCallback(fn) {\n    var callbackRef = React.useRef(function () {\n        throw new Error('Cannot call an event handler while rendering');\n    });\n    useIsomorphicLayoutEffect(function () {\n        callbackRef.current = fn;\n    }, [fn]);\n    // useConst rather than useCallback to ensure the reference is always stable\n    // (useCallback's deps list is an optimization, not a guarantee)\n    return useConst(function () { return function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        var callback = callbackRef.current;\n        return callback.apply(void 0, args);\n    }; });\n}\n//# sourceMappingURL=useEventCallback.js.map","import * as React from 'react';\nimport { getId } from '@fluentui/utilities';\n/**\n * Hook to generate a unique ID in the global scope (spanning across duplicate copies of the same library).\n *\n * @param prefix - Optional prefix for the ID\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n *  without conditioning the hook call\n * @returns The ID\n */\nexport function useId(prefix, providedId) {\n    // getId should only be called once since it updates the global constant for the next ID value.\n    // (While an extra update isn't likely to cause problems in practice, it's better to avoid it.)\n    var ref = React.useRef(providedId);\n    if (!ref.current) {\n        ref.current = getId(prefix);\n    }\n    return ref.current;\n}\n//# sourceMappingURL=useId.js.map","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */\nexport function useMergedRefs() {\n    var refs = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        refs[_i] = arguments[_i];\n    }\n    var mergedCallback = React.useCallback(function (value) {\n        // Update the \"current\" prop hanging on the function.\n        mergedCallback.current = value;\n        for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {\n            var ref = refs_1[_i];\n            if (typeof ref === 'function') {\n                ref(value);\n            }\n            else if (ref) {\n                // work around the immutability of the React.Ref type\n                ref.current = value;\n            }\n        }\n    }, __spreadArray([], refs, true));\n    return mergedCallback;\n}\n//# sourceMappingURL=useMergedRefs.js.map","import { on } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\nexport function useOnEvent(element, eventName, callback, useCapture) {\n    // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n    var callbackRef = React.useRef(callback);\n    callbackRef.current = callback;\n    React.useEffect(function () {\n        var actualElement = element && 'current' in element ? element.current : element;\n        if (!actualElement || !actualElement.addEventListener) {\n            return;\n        }\n        var dispose = on(actualElement, eventName, function (ev) { return callbackRef.current(ev); }, useCapture);\n        return dispose;\n    }, [element, eventName, useCapture]);\n}\n//# sourceMappingURL=useOnEvent.js.map","import { useRef, useEffect } from 'react';\n/**\n * Hook keeping track of a given value from a previous execution of the component the Hook is used in.\n *\n * See [React Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state)\n */\nexport function usePrevious(value) {\n    var ref = useRef();\n    useEffect(function () {\n        ref.current = value;\n    });\n    return ref.current;\n}\n//# sourceMappingURL=usePrevious.js.map","import { getDocument } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\nexport function useTarget(target, hostElement) {\n    var _a, _b, _c;\n    var previousTargetProp = React.useRef();\n    var targetRef = React.useRef(null);\n    /**\n     * Stores an instance of Window, used to check\n     * for server side rendering and if focus was lost.\n     */\n    var targetWindow = useWindow();\n    // If the target element changed, find the new one. If we are tracking\n    // target with class name, always find element because we do not know if\n    // fabric has rendered a new element and disposed the old element.\n    if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n        var currentElement = hostElement === null || hostElement === void 0 ? void 0 : hostElement.current;\n        if (target) {\n            if (typeof target === 'string') {\n                // If element is part of shadow dom, then querySelector on shadow root, else query on document\n                if ((_a = currentElement === null || currentElement === void 0 ? void 0 : currentElement.getRootNode()) === null || _a === void 0 ? void 0 : _a.host) {\n                    targetRef.current = (_c = (_b = currentElement === null || currentElement === void 0 ? void 0 : currentElement.getRootNode()) === null || _b === void 0 ? void 0 : _b.querySelector(target)) !== null && _c !== void 0 ? _c : null;\n                }\n                else {\n                    var currentDoc = getDocument(currentElement);\n                    targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n                }\n            }\n            else if ('stopPropagation' in target) {\n                targetRef.current = target;\n            }\n            else if ('getBoundingClientRect' in target) {\n                targetRef.current = target;\n            }\n            else if ('current' in target) {\n                targetRef.current = target.current;\n            }\n            else {\n                targetRef.current = target;\n            }\n        }\n        previousTargetProp.current = target;\n    }\n    return [targetRef, targetWindow];\n}\n//# sourceMappingURL=useTarget.js.map","import * as React from 'react';\n/**\n * Hook which synchronously executes a callback when the component is about to unmount.\n *\n * @param callback - Function to call during unmount.\n */\nexport var useUnmount = function (callback) {\n    var unmountRef = React.useRef(callback);\n    unmountRef.current = callback;\n    React.useEffect(function () { return function () {\n        var _a;\n        (_a = unmountRef.current) === null || _a === void 0 ? void 0 : _a.call(unmountRef);\n    }; }, []);\n};\n//# sourceMappingURL=useUnmount.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { warn, warnControlledUsage, warnConditionallyRequiredProps, warnDeprecations, warnMutuallyExclusive, } from '@fluentui/utilities';\nimport { usePrevious } from './usePrevious';\nimport { useConst } from './useConst';\nvar warningId = 0;\n/**\n * Only in development mode, display console warnings when certain conditions are met.\n * Note that all warnings except `controlledUsage` will only be shown on first render\n * (new `controlledUsage` warnings may be shown later due to prop changes).\n */\nexport function useWarnings(options) {\n    if (process.env.NODE_ENV !== 'production') {\n        var name_1 = options.name, props = options.props, _a = options.other, other = _a === void 0 ? [] : _a, conditionallyRequired = options.conditionallyRequired, deprecations = options.deprecations, mutuallyExclusive = options.mutuallyExclusive, controlledUsage = options.controlledUsage;\n        /* eslint-disable react-hooks/rules-of-hooks -- build-time conditional */\n        var hasWarnedRef = React.useRef(false);\n        var componentId = useConst(function () { return \"useWarnings_\".concat(warningId++); });\n        var oldProps = usePrevious(props);\n        /* eslint-enable react-hooks/rules-of-hooks */\n        // Warn synchronously (not in useEffect) on first render to make debugging easier.\n        if (!hasWarnedRef.current) {\n            hasWarnedRef.current = true;\n            for (var _i = 0, other_1 = other; _i < other_1.length; _i++) {\n                var warning = other_1[_i];\n                warn(warning);\n            }\n            if (conditionallyRequired) {\n                for (var _b = 0, conditionallyRequired_1 = conditionallyRequired; _b < conditionallyRequired_1.length; _b++) {\n                    var req = conditionallyRequired_1[_b];\n                    warnConditionallyRequiredProps(name_1, props, req.requiredProps, req.conditionalPropName, req.condition);\n                }\n            }\n            deprecations && warnDeprecations(name_1, props, deprecations);\n            mutuallyExclusive && warnMutuallyExclusive(name_1, props, mutuallyExclusive);\n        }\n        // Controlled usage warnings may be displayed on either first or subsequent renders due to\n        // prop changes. Note that it's safe to run this synchronously (not in useEffect) even in\n        // concurrent mode because `warnControlledUsage` internally tracks which warnings have been\n        // displayed for each component instance (so nothing will be displayed twice).\n        controlledUsage && warnControlledUsage(__assign(__assign({}, controlledUsage), { componentId: componentId, props: props, componentName: name_1, oldProps: oldProps }));\n    }\n}\n//# sourceMappingURL=useWarnings.js.map","import * as React from 'react';\nvar PortalCompatContext = React.createContext(undefined);\nvar portalCompatContextDefaultValue = function() {\n    return function() {\n        return undefined;\n    };\n};\nexport var PortalCompatContextProvider = PortalCompatContext.Provider;\nexport function usePortalCompat() {\n    var _React_useContext;\n    return (_React_useContext = React.useContext(PortalCompatContext)) !== null && _React_useContext !== void 0 ? _React_useContext : portalCompatContextDefaultValue;\n}\n","import * as React from 'react';\n/**\n * Context for providing the window.\n */\n// eslint-disable-next-line @fluentui/no-context-default-value\nexport var WindowContext = React.createContext({\n    // eslint-disable-next-line no-restricted-globals\n    window: typeof window === 'object' ? window : undefined,\n});\n/**\n * Hook to access the window object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useWindow = function () { return React.useContext(WindowContext).window; };\n/**\n * Hook to access the document object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useDocument = function () { var _a; return (_a = React.useContext(WindowContext).window) === null || _a === void 0 ? void 0 : _a.document; };\n/**\n * Component to provide the window object contextually. This is useful when rendering content to an element\n * contained within a child window or iframe element, where event handlers and styling must be projected\n * to an alternative window or document.\n */\nexport var WindowProvider = function (props) {\n    return React.createElement(WindowContext.Provider, { value: props }, props.children);\n};\n//# sourceMappingURL=WindowProvider.js.map","export var DirectionalHint = {\n    /**\n     * Appear above the target element, with the left edges of the callout and target aligning.\n     */\n    topLeftEdge: 0,\n    /**\n     * Appear above the target element, with the centers of the callout and target aligning.\n     */\n    topCenter: 1,\n    /**\n     * Appear above the target element, with the right edges of the callout and target aligning.\n     */\n    topRightEdge: 2,\n    /**\n     * Appear above the target element, aligning with the target element such that the callout tends toward\n     * the center of the screen.\n     */\n    topAutoEdge: 3,\n    /**\n     * Appear below the target element, with the left edges of the callout and target aligning.\n     */\n    bottomLeftEdge: 4,\n    /**\n     * Appear below the target element, with the centers of the callout and target aligning.\n     */\n    bottomCenter: 5,\n    /**\n     * Appear below the target element, with the right edges of the callout and target aligning.\n     */\n    bottomRightEdge: 6,\n    /**\n     * Appear below the target element, aligning with the target element such that the callout tends toward\n     * the center of the screen.\n     */\n    bottomAutoEdge: 7,\n    /**\n     * Appear to the left of the target element, with the top edges of the callout and target aligning.\n     */\n    leftTopEdge: 8,\n    /**\n     * Appear to the left of the target element, with the centers of the callout and target aligning.\n     */\n    leftCenter: 9,\n    /**\n     * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n     */\n    leftBottomEdge: 10,\n    /**\n     * Appear to the right of the target element, with the top edges of the callout and target aligning.\n     */\n    rightTopEdge: 11,\n    /**\n     * Appear to the right of the target element, with the centers of the callout and target aligning.\n     */\n    rightCenter: 12,\n    /**\n     * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n     */\n    rightBottomEdge: 13,\n};\n//# sourceMappingURL=DirectionalHint.js.map","import { memoizeFunction } from '../../Utilities';\nimport { getGlobalClassNames, mergeStyleSets } from '../../Styling';\nexport var ButtonGlobalClassNames = {\n    msButton: 'ms-Button',\n    msButtonHasMenu: 'ms-Button--hasMenu',\n    msButtonIcon: 'ms-Button-icon',\n    msButtonMenuIcon: 'ms-Button-menuIcon',\n    msButtonLabel: 'ms-Button-label',\n    msButtonDescription: 'ms-Button-description',\n    msButtonScreenReaderText: 'ms-Button-screenReaderText',\n    msButtonFlexContainer: 'ms-Button-flexContainer',\n    msButtonTextContainer: 'ms-Button-textContainer',\n};\nexport var getBaseButtonClassNames = memoizeFunction(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, hasMenu, checked, expanded, isSplit) {\n    var _a, _b;\n    var classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n    var isExpanded = expanded && !isSplit;\n    return mergeStyleSets(styles.__shadowConfig__, {\n        root: [\n            classNames.msButton,\n            styles.root,\n            variantClassName,\n            checked && ['is-checked', styles.rootChecked],\n            isExpanded && [\n                'is-expanded',\n                styles.rootExpanded,\n                (_a = {},\n                    _a[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconExpandedHovered,\n                    // menuIcon falls back to rootExpandedHovered to support original behavior\n                    _a[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n                    _a[':hover'] = styles.rootExpandedHovered,\n                    _a),\n            ],\n            hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n            disabled && ['is-disabled', styles.rootDisabled],\n            !disabled &&\n                !isExpanded &&\n                !checked && (_b = {\n                    ':hover': styles.rootHovered\n                },\n                _b[\":hover .\".concat(classNames.msButtonLabel)] = styles.labelHovered,\n                _b[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconHovered,\n                _b[\":hover .\".concat(classNames.msButtonDescription)] = styles.descriptionHovered,\n                _b[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconHovered,\n                _b[':focus'] = styles.rootFocused,\n                _b[':active'] = styles.rootPressed,\n                _b[\":active .\".concat(classNames.msButtonIcon)] = styles.iconPressed,\n                _b[\":active .\".concat(classNames.msButtonDescription)] = styles.descriptionPressed,\n                _b[\":active .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconPressed,\n                _b),\n            disabled && checked && [styles.rootCheckedDisabled],\n            !disabled &&\n                checked && {\n                ':hover': styles.rootCheckedHovered,\n                ':active': styles.rootCheckedPressed,\n            },\n            className,\n        ],\n        flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n        textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n        icon: [\n            classNames.msButtonIcon,\n            iconClassName,\n            styles.icon,\n            isExpanded && styles.iconExpanded,\n            checked && styles.iconChecked,\n            disabled && styles.iconDisabled,\n        ],\n        label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n        menuIcon: [\n            classNames.msButtonMenuIcon,\n            menuIconClassName,\n            styles.menuIcon,\n            checked && styles.menuIconChecked,\n            disabled && !isSplit && styles.menuIconDisabled,\n            !disabled &&\n                !isExpanded &&\n                !checked && {\n                ':hover': styles.menuIconHovered,\n                ':active': styles.menuIconPressed,\n            },\n            isExpanded && ['is-expanded', styles.menuIconExpanded],\n        ],\n        description: [\n            classNames.msButtonDescription,\n            styles.description,\n            checked && styles.descriptionChecked,\n            disabled && styles.descriptionDisabled,\n        ],\n        screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n    });\n});\n//# sourceMappingURL=BaseButton.classNames.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, assign, buttonProperties, createMergedRef, css, getId, getNativeProps, initializeComponentRef, memoizeFunction, mergeAriaAttributeValues, nullRender, portalContainsElement, setFocusVisibility, warnConditionallyRequiredProps, warnDeprecations, Async, EventGroup, FocusRects, FocusRectsContext, KeyCodes, } from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport { composeComponentAs } from '../../Utilities';\nvar TouchIdleDelay = 500; /* ms */\nvar COMPONENT_NAME = 'BaseButton';\n/**\n * {@docCategory Button}\n */\nvar BaseButton = /** @class */ (function (_super) {\n    __extends(BaseButton, _super);\n    function BaseButton(props) {\n        var _this = _super.call(this, props) || this;\n        _this._buttonElement = React.createRef();\n        _this._splitButtonContainer = React.createRef();\n        _this._mergedRef = createMergedRef();\n        _this._renderedVisibleMenu = false;\n        _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n            return __assign(__assign({}, keytipProps), { hasMenu: true });\n        });\n        _this._onRenderIcon = function (buttonProps, defaultRender) {\n            var iconProps = _this.props.iconProps;\n            if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n                var className = iconProps.className, imageProps = iconProps.imageProps, rest = __rest(iconProps, [\"className\", \"imageProps\"]);\n                // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n                // do not have this prop.\n                if (iconProps.styles) {\n                    return React.createElement(Icon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n                }\n                if (iconProps.iconName) {\n                    return React.createElement(FontIcon, __assign({ className: css(_this._classNames.icon, className) }, rest));\n                }\n                if (imageProps) {\n                    return React.createElement(ImageIcon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n                }\n            }\n            return null;\n        };\n        _this._onRenderTextContents = function () {\n            var _a = _this.props, text = _a.text, children = _a.children, \n            // eslint-disable-next-line deprecation/deprecation\n            _b = _a.secondaryText, \n            // eslint-disable-next-line deprecation/deprecation\n            secondaryText = _b === void 0 ? _this.props.description : _b, _c = _a.onRenderText, onRenderText = _c === void 0 ? _this._onRenderText : _c, _d = _a.onRenderDescription, onRenderDescription = _d === void 0 ? _this._onRenderDescription : _d;\n            if (text || typeof children === 'string' || secondaryText) {\n                return (React.createElement(\"span\", { className: _this._classNames.textContainer },\n                    onRenderText(_this.props, _this._onRenderText),\n                    onRenderDescription(_this.props, _this._onRenderDescription)));\n            }\n            return [onRenderText(_this.props, _this._onRenderText), onRenderDescription(_this.props, _this._onRenderDescription)];\n        };\n        _this._onRenderText = function () {\n            var text = _this.props.text;\n            var children = _this.props.children;\n            // For backwards compat, we should continue to take in the text content from children.\n            if (text === undefined && typeof children === 'string') {\n                text = children;\n            }\n            if (_this._hasText()) {\n                return (React.createElement(\"span\", { key: _this._labelId, className: _this._classNames.label, id: _this._labelId }, text));\n            }\n            return null;\n        };\n        _this._onRenderChildren = function () {\n            var children = _this.props.children;\n            // If children is just a string, either it or the text will be rendered via onRenderLabel\n            // If children is another component, it will be rendered after text\n            if (typeof children === 'string') {\n                return null;\n            }\n            return children;\n        };\n        _this._onRenderDescription = function (props) {\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = props.secondaryText, secondaryText = _a === void 0 ? _this.props.description : _a;\n            // ms-Button-description is only shown when the button type is compound.\n            // In other cases it will not be displayed.\n            return secondaryText ? (React.createElement(\"span\", { key: _this._descriptionId, className: _this._classNames.description, id: _this._descriptionId }, secondaryText)) : null;\n        };\n        _this._onRenderAriaDescription = function () {\n            var ariaDescription = _this.props.ariaDescription;\n            // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n            // otherwise it will be assigned to descriptionSpan.\n            return ariaDescription ? (React.createElement(\"span\", { className: _this._classNames.screenReaderText, id: _this._ariaDescriptionId }, ariaDescription)) : null;\n        };\n        _this._onRenderMenuIcon = function (props) {\n            var menuIconProps = _this.props.menuIconProps;\n            return React.createElement(FontIcon, __assign({ iconName: \"ChevronDown\" }, menuIconProps, { className: _this._classNames.menuIcon }));\n        };\n        _this._onRenderMenu = function (menuProps) {\n            var MenuType = _this.props.menuAs ? composeComponentAs(_this.props.menuAs, ContextualMenu) : ContextualMenu;\n            return React.createElement(MenuType, __assign({}, menuProps));\n        };\n        _this._onDismissMenu = function (ev) {\n            var menuProps = _this.props.menuProps;\n            if (menuProps && menuProps.onDismiss) {\n                menuProps.onDismiss(ev);\n            }\n            if (!ev || !ev.defaultPrevented) {\n                _this._dismissMenu();\n            }\n        };\n        _this._dismissMenu = function () {\n            _this._menuShouldFocusOnMount = undefined;\n            _this._menuShouldFocusOnContainer = undefined;\n            _this.setState({ menuHidden: true });\n        };\n        _this._openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n            if (shouldFocusOnMount === void 0) { shouldFocusOnMount = true; }\n            if (_this.props.menuProps) {\n                _this._menuShouldFocusOnContainer = shouldFocusOnContainer;\n                _this._menuShouldFocusOnMount = shouldFocusOnMount;\n                _this._renderedVisibleMenu = true;\n                _this.setState({ menuHidden: false });\n            }\n        };\n        _this._onToggleMenu = function (shouldFocusOnContainer) {\n            var shouldFocusOnMount = true;\n            if (_this.props.menuProps && _this.props.menuProps.shouldFocusOnMount === false) {\n                shouldFocusOnMount = false;\n            }\n            _this.state.menuHidden ? _this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : _this._dismissMenu();\n        };\n        _this._onSplitContainerFocusCapture = function (ev) {\n            var container = _this._splitButtonContainer.current;\n            // If the target is coming from the portal we do not need to set focus on the container.\n            if (!container || (ev.target && portalContainsElement(ev.target, container))) {\n                return;\n            }\n            // We should never be able to focus the individual buttons in a split button. Focus\n            // should always remain on the container.\n            container.focus();\n        };\n        _this._onSplitButtonPrimaryClick = function (ev) {\n            if (!_this.state.menuHidden) {\n                _this._dismissMenu();\n            }\n            // toggle split buttons need two separate targets, even for touch\n            var singleTouchTarget = _this._processingTouch && !_this.props.toggle;\n            if (!singleTouchTarget && _this.props.onClick) {\n                _this.props.onClick(ev);\n            }\n            else if (singleTouchTarget) {\n                _this._onMenuClick(ev);\n            }\n        };\n        _this._onKeyDown = function (ev) {\n            // explicity cancelling event so click won't fire after this\n            // eslint-disable-next-line deprecation/deprecation\n            if (_this.props.disabled && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n            else if (!_this.props.disabled) {\n                if (_this.props.menuProps) {\n                    _this._onMenuKeyDown(ev);\n                }\n                else if (_this.props.onKeyDown !== undefined) {\n                    _this.props.onKeyDown(ev); // not cancelling event because it's not disabled\n                }\n            }\n        };\n        _this._onKeyUp = function (ev) {\n            if (!_this.props.disabled && _this.props.onKeyUp !== undefined) {\n                _this.props.onKeyUp(ev); // not cancelling event because it's not disabled\n            }\n        };\n        _this._onKeyPress = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            if (!_this.props.disabled && _this.props.onKeyPress !== undefined) {\n                // eslint-disable-next-line deprecation/deprecation\n                _this.props.onKeyPress(ev); // not cancelling event because it's not disabled\n            }\n        };\n        _this._onMouseUp = function (ev) {\n            if (!_this.props.disabled && _this.props.onMouseUp !== undefined) {\n                _this.props.onMouseUp(ev); // not cancelling event because it's not disabled\n            }\n        };\n        _this._onMouseDown = function (ev) {\n            if (!_this.props.disabled && _this.props.onMouseDown !== undefined) {\n                _this.props.onMouseDown(ev); // not cancelling event because it's not disabled\n            }\n        };\n        _this._onClick = function (ev) {\n            if (!_this.props.disabled) {\n                if (_this.props.menuProps) {\n                    _this._onMenuClick(ev);\n                }\n                else if (_this.props.onClick !== undefined) {\n                    _this.props.onClick(ev); // not cancelling event because it's not disabled\n                }\n            }\n        };\n        _this._onSplitButtonContainerKeyDown = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n                if (_this._buttonElement.current) {\n                    _this._buttonElement.current.click();\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                }\n            }\n            else {\n                _this._onMenuKeyDown(ev);\n            }\n        };\n        _this._onMenuKeyDown = function (ev) {\n            var _a;\n            if (_this.props.disabled) {\n                return;\n            }\n            if (_this.props.onKeyDown) {\n                _this.props.onKeyDown(ev);\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            var isUp = ev.which === KeyCodes.up;\n            // eslint-disable-next-line deprecation/deprecation\n            var isDown = ev.which === KeyCodes.down;\n            if (!ev.defaultPrevented && _this._isValidMenuOpenKey(ev)) {\n                var onMenuClick = _this.props.onMenuClick;\n                if (onMenuClick) {\n                    onMenuClick(ev, _this.props);\n                }\n                _this._onToggleMenu(false);\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n                // We manually set the focus visibility to true if opening via Enter or Space to account for the scenario where\n                // a user clicks on the button, closes the menu and then opens it via keyboard. In this scenario our default logic\n                // for setting focus visibility is not triggered since there is no keyboard navigation present beforehand.\n                setFocusVisibility(true, ev.target, (_a = _this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n            }\n            if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {\n                // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items\n                // We need to re-render the menu with shouldFocusOnMount as true.\n                if (!_this.state.menuHidden && _this.props.menuProps) {\n                    var currentShouldFocusOnMount = _this._menuShouldFocusOnMount !== undefined\n                        ? _this._menuShouldFocusOnMount\n                        : _this.props.menuProps.shouldFocusOnMount;\n                    if (!currentShouldFocusOnMount) {\n                        ev.preventDefault();\n                        ev.stopPropagation();\n                        _this._menuShouldFocusOnMount = true;\n                        _this.forceUpdate();\n                    }\n                }\n            }\n        };\n        _this._onTouchStart = function () {\n            if (_this._isSplitButton &&\n                _this._splitButtonContainer.current &&\n                !('onpointerdown' in _this._splitButtonContainer.current)) {\n                _this._handleTouchAndPointerEvent();\n            }\n        };\n        _this._onMenuClick = function (ev) {\n            var _a = _this.props, onMenuClick = _a.onMenuClick, menuProps = _a.menuProps;\n            if (onMenuClick) {\n                onMenuClick(ev, _this.props);\n            }\n            // focus on the container by default when the menu is opened with a click event\n            // this differentiates from a keyboard interaction triggering the click event\n            var shouldFocusOnContainer = typeof (menuProps === null || menuProps === void 0 ? void 0 : menuProps.shouldFocusOnContainer) === 'boolean'\n                ? menuProps.shouldFocusOnContainer\n                : ev.nativeEvent.pointerType === 'mouse';\n            if (!ev.defaultPrevented) {\n                _this._onToggleMenu(shouldFocusOnContainer);\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n        };\n        initializeComponentRef(_this);\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', _this.props.split);\n        warnDeprecations(COMPONENT_NAME, props, {\n            rootProps: undefined,\n            description: 'secondaryText',\n            toggled: 'checked',\n        });\n        _this._labelId = getId();\n        _this._descriptionId = getId();\n        _this._ariaDescriptionId = getId();\n        _this.state = {\n            menuHidden: true,\n        };\n        return _this;\n    }\n    Object.defineProperty(BaseButton.prototype, \"_isSplitButton\", {\n        get: function () {\n            return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    BaseButton.prototype.render = function () {\n        var _a;\n        var _b = this.props, ariaDescription = _b.ariaDescription, ariaLabel = _b.ariaLabel, ariaHidden = _b.ariaHidden, className = _b.className, disabled = _b.disabled, allowDisabledFocus = _b.allowDisabledFocus, primaryDisabled = _b.primaryDisabled, \n        // eslint-disable-next-line deprecation/deprecation\n        _c = _b.secondaryText, \n        // eslint-disable-next-line deprecation/deprecation\n        secondaryText = _c === void 0 ? this.props.description : _c, href = _b.href, iconProps = _b.iconProps, menuIconProps = _b.menuIconProps, styles = _b.styles, checked = _b.checked, variantClassName = _b.variantClassName, theme = _b.theme, toggle = _b.toggle, getClassNames = _b.getClassNames, role = _b.role;\n        var menuHidden = this.state.menuHidden;\n        // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n        var isPrimaryButtonDisabled = disabled || primaryDisabled;\n        this._classNames = getClassNames\n            ? getClassNames(theme, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, checked, !menuHidden, !!this.props.menuProps, this.props.split, !!allowDisabledFocus)\n            : getBaseButtonClassNames(theme, styles, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, !!this.props.menuProps, checked, !menuHidden, this.props.split);\n        var _d = this, _ariaDescriptionId = _d._ariaDescriptionId, _labelId = _d._labelId, _descriptionId = _d._descriptionId;\n        // Anchor tag cannot be disabled hence in disabled state rendering\n        // anchor button as normal button\n        var renderAsAnchor = !isPrimaryButtonDisabled && !!href;\n        var tag = renderAsAnchor ? 'a' : 'button';\n        var nativeProps = getNativeProps(\n        // eslint-disable-next-line deprecation/deprecation\n        assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? anchorProperties : buttonProperties, [\n            'disabled', // let disabled buttons be focused and styled as disabled.\n        ]);\n        // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n        var resolvedAriaLabel = ariaLabel || nativeProps['aria-label'];\n        // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n        // aria-describedby. Otherwise default to undefined so property does not appear in output.\n        var ariaDescribedBy = undefined;\n        if (ariaDescription) {\n            ariaDescribedBy = _ariaDescriptionId;\n        }\n        else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n            // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n            // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n            ariaDescribedBy = _descriptionId;\n        }\n        else if (nativeProps['aria-describedby']) {\n            ariaDescribedBy = nativeProps['aria-describedby'];\n        }\n        // If an explicit aria-labelledby is given, use that and we're done.\n        // If any kind of description is given (which will end up as an aria-describedby attribute)\n        // and no ariaLabel is specified, set the labelledby element.\n        // Otherwise, the button is labeled implicitly by the descendent text on the button (if it exists).\n        var ariaLabelledBy = undefined;\n        if (nativeProps['aria-labelledby']) {\n            ariaLabelledBy = nativeProps['aria-labelledby'];\n        }\n        else if (ariaDescribedBy && !resolvedAriaLabel) {\n            ariaLabelledBy = this._hasText() ? _labelId : undefined;\n        }\n        var dataIsFocusable = this.props['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n            ? false\n            : true;\n        var isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n        // if isCheckboxTypeRole, always return a checked value.\n        // Otherwise only return checked value if toggle is set to true.\n        // This is because role=\"checkbox\" always needs to have an aria-checked value\n        // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n        var checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n        var buttonProps = assign(nativeProps, (_a = {\n                className: this._classNames.root,\n                // eslint-disable-next-line deprecation/deprecation\n                ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n                disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n                onKeyDown: this._onKeyDown,\n                onKeyPress: this._onKeyPress,\n                onKeyUp: this._onKeyUp,\n                onMouseDown: this._onMouseDown,\n                onMouseUp: this._onMouseUp,\n                onClick: this._onClick,\n                'aria-label': resolvedAriaLabel,\n                'aria-labelledby': ariaLabelledBy,\n                'aria-describedby': ariaDescribedBy,\n                'aria-disabled': isPrimaryButtonDisabled,\n                'data-is-focusable': dataIsFocusable\n            },\n            // aria-pressed attribute should only be present for toggle buttons\n            // aria-checked attribute should only be present for toggle buttons with checkbox type role\n            _a[isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed'] = checkedOrPressedValue,\n            _a));\n        if (ariaHidden) {\n            buttonProps['aria-hidden'] = true;\n        }\n        if (this._isSplitButton) {\n            return this._onRenderSplitButtonContent(tag, buttonProps);\n        }\n        else if (this.props.menuProps) {\n            var _e = this.props.menuProps.id, id = _e === void 0 ? \"\".concat(this._labelId, \"-menu\") : _e;\n            assign(buttonProps, {\n                'aria-expanded': !menuHidden,\n                'aria-controls': !menuHidden ? id : null,\n                'aria-haspopup': true,\n            });\n        }\n        return this._onRenderContent(tag, buttonProps);\n    };\n    BaseButton.prototype.componentDidMount = function () {\n        // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n        // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n        // because React does not support Pointer events yet.\n        if (this._isSplitButton && this._splitButtonContainer.current) {\n            if ('onpointerdown' in this._splitButtonContainer.current) {\n                this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n            }\n            if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n                this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n            }\n        }\n    };\n    BaseButton.prototype.componentDidUpdate = function (prevProps, prevState) {\n        // If Button's menu was closed, run onAfterMenuDismiss.\n        if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n            this.props.onAfterMenuDismiss();\n        }\n    };\n    BaseButton.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n        this._events.dispose();\n    };\n    BaseButton.prototype.focus = function () {\n        var _a, _b;\n        if (this._isSplitButton && this._splitButtonContainer.current) {\n            setFocusVisibility(true, undefined, (_a = this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n            this._splitButtonContainer.current.focus();\n        }\n        else if (this._buttonElement.current) {\n            setFocusVisibility(true, undefined, (_b = this.context) === null || _b === void 0 ? void 0 : _b.registeredProviders);\n            this._buttonElement.current.focus();\n        }\n    };\n    BaseButton.prototype.dismissMenu = function () {\n        this._dismissMenu();\n    };\n    BaseButton.prototype.openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n        this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n    };\n    BaseButton.prototype._onRenderContent = function (tag, buttonProps) {\n        var _this = this;\n        var props = this.props;\n        var Tag = tag;\n        var menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderAriaDescription, onRenderAriaDescription = _b === void 0 ? this._onRenderAriaDescription : _b, _c = props.onRenderChildren, onRenderChildren = _c === void 0 ? this._onRenderChildren : _c, \n        // eslint-disable-next-line deprecation/deprecation\n        _d = props.onRenderMenu, \n        // eslint-disable-next-line deprecation/deprecation\n        onRenderMenu = _d === void 0 ? this._onRenderMenu : _d, _e = props.onRenderMenuIcon, onRenderMenuIcon = _e === void 0 ? this._onRenderMenuIcon : _e, disabled = props.disabled;\n        var keytipProps = props.keytipProps;\n        if (keytipProps && menuProps) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        var Button = function (keytipAttributes) { return (React.createElement(Tag, __assign({}, buttonProps, keytipAttributes),\n            React.createElement(\"span\", { className: _this._classNames.flexContainer, \"data-automationid\": \"splitbuttonprimary\" },\n                onRenderIcon(props, _this._onRenderIcon),\n                _this._onRenderTextContents(),\n                onRenderAriaDescription(props, _this._onRenderAriaDescription),\n                onRenderChildren(props, _this._onRenderChildren),\n                !_this._isSplitButton &&\n                    (menuProps || menuIconProps || _this.props.onRenderMenuIcon) &&\n                    onRenderMenuIcon(_this.props, _this._onRenderMenuIcon),\n                menuProps &&\n                    !menuProps.doNotLayer &&\n                    _this._shouldRenderMenu() &&\n                    onRenderMenu(_this._getMenuProps(menuProps), _this._onRenderMenu)))); };\n        var Content = keytipProps ? (\n        // If we're making a split button, we won't put the keytip here\n        React.createElement(KeytipData, { keytipProps: !this._isSplitButton ? keytipProps : undefined, ariaDescribedBy: buttonProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return Button(keytipAttributes); })) : (Button());\n        if (menuProps && menuProps.doNotLayer) {\n            return (React.createElement(React.Fragment, null,\n                Content,\n                this._shouldRenderMenu() && onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)));\n        }\n        return (React.createElement(React.Fragment, null,\n            Content,\n            React.createElement(FocusRects, null)));\n    };\n    /**\n     * Method to help determine if the menu's component tree should\n     * be rendered. It takes into account whether the menu is expanded,\n     * whether it is a persisted menu and whether it has been shown to the user.\n     */\n    BaseButton.prototype._shouldRenderMenu = function () {\n        var menuHidden = this.state.menuHidden;\n        // eslint-disable-next-line deprecation/deprecation\n        var _a = this.props, persistMenu = _a.persistMenu, renderPersistedMenuHiddenOnMount = _a.renderPersistedMenuHiddenOnMount;\n        if (!menuHidden) {\n            // Always should render a menu when it is expanded\n            return true;\n        }\n        else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n            // _renderedVisibleMenu ensures that the first rendering of\n            // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n            return true;\n        }\n        return false;\n    };\n    BaseButton.prototype._hasText = function () {\n        // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n        // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n        // text to be undefined in order for props.children to be used as a fallback.\n        // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n        return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n    };\n    BaseButton.prototype._getMenuProps = function (menuProps) {\n        var persistMenu = this.props.persistMenu;\n        var menuHidden = this.state.menuHidden;\n        // the accessible menu label (accessible name) has a relationship to the button.\n        // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n        // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n        if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n            menuProps = __assign(__assign({}, menuProps), { labelElementId: this._labelId });\n        }\n        return __assign(__assign({ id: this._labelId + '-menu', directionalHint: DirectionalHint.bottomLeftEdge }, menuProps), { shouldFocusOnContainer: this._menuShouldFocusOnContainer, shouldFocusOnMount: this._menuShouldFocusOnMount, hidden: persistMenu ? menuHidden : undefined, className: css('ms-BaseButton-menuhost', menuProps.className), target: this._isSplitButton ? this._splitButtonContainer.current : this._buttonElement.current, onDismiss: this._onDismissMenu });\n    };\n    BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) {\n        var _this = this;\n        var _a = this.props, _b = _a.styles, styles = _b === void 0 ? {} : _b, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, getSplitButtonClassNames = _a.getSplitButtonClassNames, primaryDisabled = _a.primaryDisabled, menuProps = _a.menuProps, toggle = _a.toggle, role = _a.role, primaryActionButtonProps = _a.primaryActionButtonProps;\n        var keytipProps = this.props.keytipProps;\n        var menuHidden = this.state.menuHidden;\n        var classNames = getSplitButtonClassNames\n            ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)\n            : styles && getBaseSplitButtonClassNames(styles, !!disabled, !menuHidden, !!checked, !!primaryDisabled);\n        assign(buttonProps, {\n            onClick: undefined,\n            onPointerDown: undefined,\n            onPointerUp: undefined,\n            tabIndex: -1,\n            'data-is-focusable': false,\n        });\n        if (keytipProps && menuProps) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        var containerProps = getNativeProps(buttonProps, [], ['disabled']);\n        // Add additional props to apply on primary action button\n        if (primaryActionButtonProps) {\n            assign(buttonProps, primaryActionButtonProps);\n        }\n        var SplitButton = function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, containerProps, { \"data-ktp-target\": keytipAttributes ? keytipAttributes['data-ktp-target'] : undefined, role: role ? role : 'button', \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": !menuHidden, \"aria-pressed\": toggle ? !!checked : undefined, \"aria-describedby\": mergeAriaAttributeValues(buttonProps['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), className: classNames && classNames.splitButtonContainer, onKeyDown: _this._onSplitButtonContainerKeyDown, onTouchStart: _this._onTouchStart, ref: _this._splitButtonContainer, \"data-is-focusable\": true, onClick: !disabled && !primaryDisabled ? _this._onSplitButtonPrimaryClick : undefined, tabIndex: (!disabled && !primaryDisabled) || allowDisabledFocus ? 0 : undefined, \"aria-roledescription\": buttonProps['aria-roledescription'], onFocusCapture: _this._onSplitContainerFocusCapture }),\n            React.createElement(\"span\", { style: { display: 'flex', width: '100%' } },\n                _this._onRenderContent(tag, buttonProps),\n                _this._onRenderSplitButtonMenuButton(classNames, keytipAttributes),\n                _this._onRenderSplitButtonDivider(classNames)))); };\n        return keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return SplitButton(keytipAttributes); })) : (SplitButton());\n    };\n    BaseButton.prototype._onRenderSplitButtonDivider = function (classNames) {\n        if (classNames && classNames.divider) {\n            var onClick = function (ev) {\n                ev.stopPropagation();\n            };\n            return React.createElement(\"span\", { className: classNames.divider, \"aria-hidden\": true, onClick: onClick });\n        }\n        return null;\n    };\n    BaseButton.prototype._onRenderSplitButtonMenuButton = function (classNames, keytipAttributes) {\n        var _a = this.props, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, disabled = _a.disabled, splitButtonMenuProps = _a.splitButtonMenuProps, splitButtonAriaLabel = _a.splitButtonAriaLabel, primaryDisabled = _a.primaryDisabled;\n        var menuHidden = this.state.menuHidden;\n        var menuIconProps = this.props.menuIconProps;\n        if (menuIconProps === undefined) {\n            menuIconProps = {\n                iconName: 'ChevronDown',\n            };\n        }\n        var splitButtonProps = __assign(__assign({}, splitButtonMenuProps), { styles: classNames, checked: checked, disabled: disabled, allowDisabledFocus: allowDisabledFocus, onClick: this._onMenuClick, menuProps: undefined, iconProps: __assign(__assign({}, menuIconProps), { className: this._classNames.menuIcon }), ariaLabel: splitButtonAriaLabel, 'aria-haspopup': true, 'aria-expanded': !menuHidden, 'data-is-focusable': false });\n        // Add data-ktp-execute-target to the split button if the keytip is defined\n        return (React.createElement(BaseButton, __assign({}, splitButtonProps, { \"data-ktp-execute-target\": keytipAttributes ? keytipAttributes['data-ktp-execute-target'] : keytipAttributes, onMouseDown: this._onMouseDown, tabIndex: primaryDisabled && !allowDisabledFocus ? 0 : -1 })));\n    };\n    BaseButton.prototype._onPointerDown = function (ev) {\n        var onPointerDown = this.props.onPointerDown;\n        if (onPointerDown) {\n            onPointerDown(ev);\n        }\n        if (ev.pointerType === 'touch') {\n            this._handleTouchAndPointerEvent();\n            ev.preventDefault();\n            ev.stopImmediatePropagation();\n        }\n    };\n    BaseButton.prototype._handleTouchAndPointerEvent = function () {\n        var _this = this;\n        // If we already have an existing timeout from a previous touch and pointer event\n        // cancel that timeout so we can set a new one.\n        if (this._lastTouchTimeoutId !== undefined) {\n            this._async.clearTimeout(this._lastTouchTimeoutId);\n            this._lastTouchTimeoutId = undefined;\n        }\n        this._processingTouch = true;\n        this._lastTouchTimeoutId = this._async.setTimeout(function () {\n            _this._processingTouch = false;\n            _this._lastTouchTimeoutId = undefined;\n            // Touch and pointer events don't focus the button naturally,\n            // so adding an imperative focus call to guarantee this behavior.\n            // Only focus the button if a splitbutton menu is not open\n            if (_this.state.menuHidden) {\n                _this.focus();\n            }\n        }, TouchIdleDelay);\n    };\n    /**\n     * Returns if the user hits a valid keyboard key to open the menu\n     * @param ev - the keyboard event\n     * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.\n     */\n    BaseButton.prototype._isValidMenuOpenKey = function (ev) {\n        if (this.props.menuTriggerKeyCode) {\n            // eslint-disable-next-line deprecation/deprecation\n            return ev.which === this.props.menuTriggerKeyCode;\n        }\n        else if (this.props.menuProps) {\n            // eslint-disable-next-line deprecation/deprecation\n            return ev.which === KeyCodes.down && (ev.altKey || ev.metaKey);\n        }\n        // Note: When enter is pressed, we will let the event continue to propagate\n        // to trigger the onClick event on the button\n        return false;\n    };\n    BaseButton.defaultProps = {\n        baseClassName: 'ms-Button',\n        styles: {},\n        split: false,\n    };\n    // needed to access registeredProviders when manually setting focus visibility\n    BaseButton.contextType = FocusRectsContext;\n    return BaseButton;\n}(React.Component));\nexport { BaseButton };\n//# sourceMappingURL=BaseButton.js.map","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nvar noOutline = {\n    outline: 0,\n};\nvar iconStyle = function (fontSize) {\n    return {\n        fontSize: fontSize,\n        margin: '0 4px',\n        height: '16px',\n        lineHeight: '16px',\n        textAlign: 'center',\n        flexShrink: 0,\n    };\n};\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport var getStyles = memoizeFunction(function (theme) {\n    var _a, _b;\n    var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n    var border = semanticColors.buttonBorder;\n    var disabledBackground = semanticColors.disabledBackground;\n    var disabledText = semanticColors.disabledText;\n    var buttonHighContrastFocus = {\n        left: -2,\n        top: -2,\n        bottom: -2,\n        right: -2,\n        outlineColor: 'ButtonText',\n    };\n    return {\n        root: [\n            getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n            theme.fonts.medium,\n            {\n                border: '1px solid ' + border,\n                borderRadius: effects.roundedCorner2,\n                boxSizing: 'border-box',\n                cursor: 'pointer',\n                display: 'inline-block',\n                padding: '0 16px',\n                textDecoration: 'none',\n                textAlign: 'center',\n                userSelect: 'none',\n                // IE11 workaround for preventing shift of child elements of a button when active.\n                ':active > span': {\n                    position: 'relative',\n                    left: 0,\n                    top: 0,\n                },\n            },\n        ],\n        rootDisabled: [\n            getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n            {\n                backgroundColor: disabledBackground,\n                borderColor: disabledBackground,\n                color: disabledText,\n                cursor: 'default',\n                ':hover': noOutline,\n                ':focus': noOutline,\n            },\n        ],\n        iconDisabled: (_a = {\n                color: disabledText\n            },\n            _a[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _a),\n        menuIconDisabled: (_b = {\n                color: disabledText\n            },\n            _b[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _b),\n        flexContainer: {\n            display: 'flex',\n            height: '100%',\n            flexWrap: 'nowrap',\n            justifyContent: 'center',\n            alignItems: 'center',\n        },\n        description: {\n            display: 'block',\n        },\n        textContainer: {\n            flexGrow: 1,\n            display: 'block',\n        },\n        icon: iconStyle(fonts.mediumPlus.fontSize),\n        menuIcon: iconStyle(fonts.small.fontSize),\n        label: {\n            margin: '0 4px',\n            lineHeight: '100%',\n            display: 'block',\n        },\n        screenReaderText: hiddenContentStyle,\n    };\n});\n//# sourceMappingURL=BaseButton.styles.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar splitButtonDividerBaseStyles = function () {\n    return {\n        position: 'absolute',\n        width: 1,\n        right: 31,\n        top: 8,\n        bottom: 8,\n    };\n};\nexport function standardStyles(theme) {\n    var _a, _b, _c, _d, _e;\n    var s = theme.semanticColors, p = theme.palette;\n    var buttonBackground = s.buttonBackground;\n    var buttonBackgroundPressed = s.buttonBackgroundPressed;\n    var buttonBackgroundHovered = s.buttonBackgroundHovered;\n    var buttonBackgroundDisabled = s.buttonBackgroundDisabled;\n    var buttonText = s.buttonText;\n    var buttonTextHovered = s.buttonTextHovered;\n    var buttonTextDisabled = s.buttonTextDisabled;\n    var buttonTextChecked = s.buttonTextChecked;\n    var buttonTextCheckedHovered = s.buttonTextCheckedHovered;\n    return {\n        root: {\n            backgroundColor: buttonBackground,\n            color: buttonText,\n        },\n        rootHovered: (_a = {\n                backgroundColor: buttonBackgroundHovered,\n                color: buttonTextHovered\n            },\n            _a[HighContrastSelector] = {\n                borderColor: 'Highlight',\n                color: 'Highlight',\n            },\n            _a),\n        rootPressed: {\n            backgroundColor: buttonBackgroundPressed,\n            color: buttonTextChecked,\n        },\n        rootExpanded: {\n            backgroundColor: buttonBackgroundPressed,\n            color: buttonTextChecked,\n        },\n        rootChecked: {\n            backgroundColor: buttonBackgroundPressed,\n            color: buttonTextChecked,\n        },\n        rootCheckedHovered: {\n            backgroundColor: buttonBackgroundPressed,\n            color: buttonTextCheckedHovered,\n        },\n        rootDisabled: (_b = {\n                color: buttonTextDisabled,\n                backgroundColor: buttonBackgroundDisabled\n            },\n            _b[HighContrastSelector] = {\n                color: 'GrayText',\n                borderColor: 'GrayText',\n                backgroundColor: 'Window',\n            },\n            _b),\n        // Split button styles\n        splitButtonContainer: (_c = {},\n            _c[HighContrastSelector] = {\n                border: 'none',\n            },\n            _c),\n        splitButtonMenuButton: {\n            color: p.white,\n            backgroundColor: 'transparent',\n            ':hover': (_d = {\n                    backgroundColor: p.neutralLight\n                },\n                _d[HighContrastSelector] = {\n                    color: 'Highlight',\n                },\n                _d),\n        },\n        splitButtonMenuButtonDisabled: {\n            backgroundColor: s.buttonBackgroundDisabled,\n            ':hover': {\n                backgroundColor: s.buttonBackgroundDisabled,\n            },\n        },\n        splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), (_e = { backgroundColor: p.neutralTertiaryAlt }, _e[HighContrastSelector] = {\n            backgroundColor: 'WindowText',\n        }, _e)),\n        splitButtonDividerDisabled: {\n            backgroundColor: theme.palette.neutralTertiaryAlt,\n        },\n        splitButtonMenuButtonChecked: {\n            backgroundColor: p.neutralQuaternaryAlt,\n            ':hover': {\n                backgroundColor: p.neutralQuaternaryAlt,\n            },\n        },\n        splitButtonMenuButtonExpanded: {\n            backgroundColor: p.neutralQuaternaryAlt,\n            ':hover': {\n                backgroundColor: p.neutralQuaternaryAlt,\n            },\n        },\n        splitButtonMenuIcon: {\n            color: s.buttonText,\n        },\n        splitButtonMenuIconDisabled: {\n            color: s.buttonTextDisabled,\n        },\n    };\n}\nexport function primaryStyles(theme) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n    var p = theme.palette, s = theme.semanticColors;\n    return {\n        root: (_a = {\n                backgroundColor: s.primaryButtonBackground,\n                border: \"1px solid \".concat(s.primaryButtonBackground),\n                color: s.primaryButtonText\n            },\n            _a[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n            _a[\".\".concat(IsFocusVisibleClassName, \" &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus\")] = {\n                ':after': {\n                    border: \"none\",\n                    outlineColor: p.white,\n                },\n            },\n            _a),\n        rootHovered: (_b = {\n                backgroundColor: s.primaryButtonBackgroundHovered,\n                border: \"1px solid \".concat(s.primaryButtonBackgroundHovered),\n                color: s.primaryButtonTextHovered\n            },\n            _b[HighContrastSelector] = {\n                color: 'Window',\n                backgroundColor: 'Highlight',\n                borderColor: 'Highlight',\n            },\n            _b),\n        rootPressed: (_c = {\n                backgroundColor: s.primaryButtonBackgroundPressed,\n                border: \"1px solid \".concat(s.primaryButtonBackgroundPressed),\n                color: s.primaryButtonTextPressed\n            },\n            _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n            _c),\n        rootExpanded: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            color: s.primaryButtonTextPressed,\n        },\n        rootChecked: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            color: s.primaryButtonTextPressed,\n        },\n        rootCheckedHovered: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            color: s.primaryButtonTextPressed,\n        },\n        rootDisabled: (_d = {\n                color: s.primaryButtonTextDisabled,\n                backgroundColor: s.primaryButtonBackgroundDisabled\n            },\n            _d[HighContrastSelector] = {\n                color: 'GrayText',\n                borderColor: 'GrayText',\n                backgroundColor: 'Window',\n            },\n            _d),\n        // Split button styles\n        splitButtonContainer: (_e = {},\n            _e[HighContrastSelector] = {\n                border: 'none',\n            },\n            _e),\n        splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), (_f = { backgroundColor: p.white }, _f[HighContrastSelector] = {\n            backgroundColor: 'Window',\n        }, _f)),\n        splitButtonMenuButton: (_g = {\n                backgroundColor: s.primaryButtonBackground,\n                color: s.primaryButtonText\n            },\n            _g[HighContrastSelector] = {\n                backgroundColor: 'Canvas',\n            },\n            _g[':hover'] = (_h = {\n                    backgroundColor: s.primaryButtonBackgroundHovered\n                },\n                _h[HighContrastSelector] = {\n                    color: 'Highlight',\n                },\n                _h),\n            _g),\n        splitButtonMenuButtonDisabled: {\n            backgroundColor: s.primaryButtonBackgroundDisabled,\n            ':hover': {\n                backgroundColor: s.primaryButtonBackgroundDisabled,\n            },\n        },\n        splitButtonMenuButtonChecked: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            ':hover': {\n                backgroundColor: s.primaryButtonBackgroundPressed,\n            },\n        },\n        splitButtonMenuButtonExpanded: {\n            backgroundColor: s.primaryButtonBackgroundPressed,\n            ':hover': {\n                backgroundColor: s.primaryButtonBackgroundPressed,\n            },\n        },\n        splitButtonMenuIcon: {\n            color: s.primaryButtonText,\n        },\n        splitButtonMenuIconDisabled: (_j = {\n                color: p.neutralTertiary\n            },\n            _j[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _j),\n    };\n}\n//# sourceMappingURL=ButtonThemes.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './DefaultButton.styles';\n/**\n * {@docCategory Button}\n */\nvar DefaultButton = /** @class */ (function (_super) {\n    __extends(DefaultButton, _super);\n    function DefaultButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    DefaultButton.prototype.render = function () {\n        var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n        return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--primary' : 'ms-Button--default', styles: getStyles(theme, styles, primary), onRenderDescription: nullRender })));\n    };\n    DefaultButton = __decorate([\n        customizable('DefaultButton', ['theme', 'styles'], true)\n    ], DefaultButton);\n    return DefaultButton;\n}(React.Component));\nexport { DefaultButton };\n//# sourceMappingURL=DefaultButton.js.map","import { concatStyleSets, FontWeights } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nvar DEFAULT_BUTTON_HEIGHT = '32px';\nvar DEFAULT_BUTTON_MIN_WIDTH = '80px';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n    var baseButtonStyles = getBaseButtonStyles(theme);\n    var splitButtonStyles = getSplitButtonStyles(theme);\n    var defaultButtonStyles = {\n        root: {\n            minWidth: DEFAULT_BUTTON_MIN_WIDTH,\n            height: DEFAULT_BUTTON_HEIGHT,\n        },\n        label: {\n            fontWeight: FontWeights.semibold,\n        },\n    };\n    return concatStyleSets(baseButtonStyles, defaultButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=DefaultButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './IconButton.styles';\n/**\n * {@docCategory Button}\n */\nvar IconButton = /** @class */ (function (_super) {\n    __extends(IconButton, _super);\n    function IconButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    IconButton.prototype.render = function () {\n        var _a = this.props, styles = _a.styles, theme = _a.theme;\n        return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--icon\", styles: getStyles(theme, styles), onRenderText: nullRender, onRenderDescription: nullRender })));\n    };\n    IconButton = __decorate([\n        customizable('IconButton', ['theme', 'styles'], true)\n    ], IconButton);\n    return IconButton;\n}(React.Component));\nexport { IconButton };\n//# sourceMappingURL=IconButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n    var _a;\n    var baseButtonStyles = getBaseButtonStyles(theme);\n    var splitButtonStyles = getSplitButtonStyles(theme);\n    var palette = theme.palette, semanticColors = theme.semanticColors;\n    var iconButtonStyles = {\n        root: {\n            padding: '0 4px',\n            width: '32px',\n            height: '32px',\n            backgroundColor: 'transparent',\n            border: 'none',\n            color: semanticColors.link,\n        },\n        rootHovered: (_a = {\n                color: palette.themeDarkAlt,\n                backgroundColor: palette.neutralLighter\n            },\n            _a[HighContrastSelector] = {\n                borderColor: 'Highlight',\n                color: 'Highlight',\n            },\n            _a),\n        rootHasMenu: {\n            width: 'auto',\n        },\n        rootPressed: {\n            color: palette.themeDark,\n            backgroundColor: palette.neutralLight,\n        },\n        rootExpanded: {\n            color: palette.themeDark,\n            backgroundColor: palette.neutralLight,\n        },\n        rootChecked: {\n            color: palette.themeDark,\n            backgroundColor: palette.neutralLight,\n        },\n        rootCheckedHovered: {\n            color: palette.themeDark,\n            backgroundColor: palette.neutralQuaternaryAlt,\n        },\n        rootDisabled: {\n            color: palette.neutralTertiaryAlt,\n        },\n    };\n    return concatStyleSets(baseButtonStyles, iconButtonStyles, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=IconButton.styles.js.map","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nexport var SplitButtonGlobalClassNames = {\n    msSplitButtonDivider: 'ms-SplitButton-divider',\n};\nexport var getSplitButtonClassNames = memoizeFunction(function (styles, disabled, expanded, checked, primaryDisabled) {\n    return {\n        root: mergeStyles(styles.splitButtonMenuButton, expanded && [styles.splitButtonMenuButtonExpanded], disabled && [styles.splitButtonMenuButtonDisabled], checked && !disabled && [styles.splitButtonMenuButtonChecked], primaryDisabled &&\n            !disabled && [\n            {\n                ':focus': styles.splitButtonMenuFocused,\n            },\n        ]),\n        splitButtonContainer: mergeStyles(styles.splitButtonContainer, !disabled &&\n            checked && [\n            styles.splitButtonContainerChecked,\n            {\n                ':hover': styles.splitButtonContainerCheckedHovered,\n            },\n        ], !disabled &&\n            !checked && [\n            {\n                ':hover': styles.splitButtonContainerHovered,\n                ':focus': styles.splitButtonContainerFocused,\n            },\n        ], disabled && styles.splitButtonContainerDisabled),\n        icon: mergeStyles(styles.splitButtonMenuIcon, disabled && styles.splitButtonMenuIconDisabled, !disabled && primaryDisabled && styles.splitButtonMenuIcon),\n        flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n        divider: mergeStyles(SplitButtonGlobalClassNames.msSplitButtonDivider, styles.splitButtonDivider, (primaryDisabled || disabled) && styles.splitButtonDividerDisabled),\n    };\n});\n//# sourceMappingURL=SplitButton.classNames.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, concatStyleSets, getFocusStyle, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;\n    var effects = theme.effects, palette = theme.palette, semanticColors = theme.semanticColors;\n    var buttonHighContrastFocus = {\n        left: -2,\n        top: -2,\n        bottom: -2,\n        right: -2,\n        border: 'none',\n    };\n    var splitButtonDividerBaseStyles = {\n        position: 'absolute',\n        width: 1,\n        right: 31,\n        top: 8,\n        bottom: 8,\n    };\n    var splitButtonStyles = {\n        splitButtonContainer: [\n            getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2, pointerEvents: 'none' }),\n            {\n                display: 'inline-flex',\n                '.ms-Button--default': {\n                    borderTopRightRadius: '0',\n                    borderBottomRightRadius: '0',\n                    borderRight: 'none',\n                    flexGrow: '1',\n                },\n                '.ms-Button--primary': (_a = {\n                        borderTopRightRadius: '0',\n                        borderBottomRightRadius: '0',\n                        border: 'none',\n                        flexGrow: '1',\n                        ':hover': {\n                            border: 'none',\n                        },\n                        ':active': {\n                            border: 'none',\n                        }\n                    },\n                    _a[HighContrastSelector] = __assign(__assign({ color: 'WindowText', backgroundColor: 'Window', border: '1px solid WindowText', borderRightWidth: '0' }, getHighContrastNoAdjustStyle()), { ':hover': {\n                            backgroundColor: 'Highlight',\n                            border: '1px solid Highlight',\n                            borderRightWidth: '0',\n                            color: 'HighlightText',\n                        }, ':active': {\n                            border: '1px solid Highlight',\n                        } }),\n                    _a),\n                '.ms-Button--default + .ms-Button': (_b = {},\n                    _b[HighContrastSelector] = {\n                        border: '1px solid WindowText',\n                        borderLeftWidth: '0',\n                        ':hover': {\n                            backgroundColor: 'HighlightText',\n                            borderColor: 'Highlight',\n                            color: 'Highlight',\n                            '.ms-Button-menuIcon': __assign({ backgroundColor: 'HighlightText', color: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                        },\n                    },\n                    _b),\n                '.ms-Button--default + .ms-Button[aria-expanded=\"true\"]': (_c = {},\n                    _c[HighContrastSelector] = {\n                        backgroundColor: 'HighlightText',\n                        borderColor: 'Highlight',\n                        color: 'Highlight',\n                        '.ms-Button-menuIcon': __assign({ backgroundColor: 'HighlightText', color: 'Highlight' }, getHighContrastNoAdjustStyle()),\n                    },\n                    _c),\n                '.ms-Button--primary + .ms-Button': (_d = {\n                        border: 'none'\n                    },\n                    _d[HighContrastSelector] = {\n                        border: '1px solid WindowText',\n                        borderLeftWidth: '0',\n                        ':hover': {\n                            borderLeftWidth: '0',\n                            backgroundColor: 'Highlight',\n                            borderColor: 'Highlight',\n                            color: 'HighlightText',\n                            '.ms-Button-menuIcon': __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'HighlightText' }),\n                        },\n                    },\n                    _d),\n                '.ms-Button--primary + .ms-Button[aria-expanded=\"true\"]': __assign(__assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()), { '.ms-Button-menuIcon': {\n                        color: 'HighlightText',\n                    } }),\n                '.ms-Button.is-disabled': (_e = {},\n                    _e[HighContrastSelector] = {\n                        color: 'GrayText',\n                        borderColor: 'GrayText',\n                        backgroundColor: 'Window',\n                    },\n                    _e),\n            },\n        ],\n        splitButtonContainerHovered: {\n            '.ms-Button--default.is-disabled': (_f = {\n                    backgroundColor: semanticColors.buttonBackgroundDisabled,\n                    color: semanticColors.buttonTextDisabled\n                },\n                _f[HighContrastSelector] = {\n                    color: 'GrayText',\n                    borderColor: 'GrayText',\n                    backgroundColor: 'Window',\n                },\n                _f),\n            '.ms-Button--primary.is-disabled': (_g = {\n                    backgroundColor: semanticColors.primaryButtonBackgroundDisabled,\n                    color: semanticColors.primaryButtonTextDisabled\n                },\n                _g[HighContrastSelector] = {\n                    color: 'GrayText',\n                    borderColor: 'GrayText',\n                    backgroundColor: 'Window',\n                },\n                _g),\n        },\n        splitButtonContainerChecked: {\n            '.ms-Button--primary': (_h = {},\n                _h[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _h),\n        },\n        splitButtonContainerCheckedHovered: {\n            '.ms-Button--primary': (_j = {},\n                _j[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _j),\n        },\n        splitButtonContainerFocused: {\n            outline: 'none!important',\n        },\n        splitButtonMenuButton: (_k = {\n                padding: 6,\n                height: 'auto',\n                boxSizing: 'border-box',\n                borderRadius: 0,\n                borderTopRightRadius: effects.roundedCorner2,\n                borderBottomRightRadius: effects.roundedCorner2,\n                border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n                borderLeft: 'none',\n                outline: 'transparent',\n                userSelect: 'none',\n                display: 'inline-block',\n                textDecoration: 'none',\n                textAlign: 'center',\n                cursor: 'pointer',\n                verticalAlign: 'top',\n                width: 32,\n                marginLeft: -1,\n                marginTop: 0,\n                marginRight: 0,\n                marginBottom: 0\n            },\n            _k[HighContrastSelector] = {\n                '.ms-Button-menuIcon': {\n                    color: 'WindowText',\n                },\n            },\n            _k),\n        splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles), (_l = {}, _l[HighContrastSelector] = {\n            backgroundColor: 'WindowText',\n        }, _l)),\n        splitButtonDividerDisabled: __assign(__assign({}, splitButtonDividerBaseStyles), (_m = {}, _m[HighContrastSelector] = {\n            backgroundColor: 'GrayText',\n        }, _m)),\n        splitButtonMenuButtonDisabled: (_o = {\n                pointerEvents: 'none',\n                border: 'none',\n                ':hover': {\n                    cursor: 'default',\n                },\n                '.ms-Button--primary': (_p = {},\n                    _p[HighContrastSelector] = {\n                        color: 'GrayText',\n                        borderColor: 'GrayText',\n                        backgroundColor: 'Window',\n                    },\n                    _p),\n                '.ms-Button-menuIcon': (_q = {},\n                    _q[HighContrastSelector] = {\n                        color: 'GrayText',\n                    },\n                    _q)\n            },\n            _o[HighContrastSelector] = {\n                color: 'GrayText',\n                border: '1px solid GrayText',\n                backgroundColor: 'Window',\n            },\n            _o),\n        splitButtonFlexContainer: {\n            display: 'flex',\n            height: '100%',\n            flexWrap: 'nowrap',\n            justifyContent: 'center',\n            alignItems: 'center',\n        },\n        splitButtonContainerDisabled: (_r = {\n                outline: 'none',\n                border: 'none'\n            },\n            _r[HighContrastSelector] = __assign({ color: 'GrayText', borderColor: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n            _r),\n        splitButtonMenuFocused: __assign({}, getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 })),\n    };\n    return concatStyleSets(splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=SplitButton.styles.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nexport var Callout = React.forwardRef(function (_a, forwardedRef) {\n    var layerProps = _a.layerProps, doNotLayer = _a.doNotLayer, rest = __rest(_a, [\"layerProps\", \"doNotLayer\"]);\n    var content = React.createElement(CalloutContent, __assign({}, rest, { doNotLayer: doNotLayer, ref: forwardedRef }));\n    return doNotLayer ? content : React.createElement(Layer, __assign({}, layerProps), content);\n});\nCallout.displayName = 'Callout';\n//# sourceMappingURL=Callout.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { css, divProperties, elementContains, focusFirstChild, getNativeProps, on, shallowCompare, getPropsWithDefaults, } from '../../Utilities';\nimport { calculateGapSpace, getRectangleFromTarget } from '../../utilities/positioning/positioning';\nimport { positionCallout, RectangleEdge, positionCard, getBoundsFromTargetWindow } from '../../Positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\nimport { useMergedRefs, useAsync, useConst, useTarget, useOnEvent } from '@fluentui/react-hooks';\nimport { useWindowEx } from '../../utilities/dom';\nvar COMPONENT_NAME = 'CalloutContentBase';\nvar ANIMATIONS = (_a = {},\n    _a[RectangleEdge.top] = AnimationClassNames.slideUpIn10,\n    _a[RectangleEdge.bottom] = AnimationClassNames.slideDownIn10,\n    _a[RectangleEdge.left] = AnimationClassNames.slideLeftIn10,\n    _a[RectangleEdge.right] = AnimationClassNames.slideRightIn10,\n    _a);\nvar BEAK_ORIGIN_POSITION = { top: 0, left: 0 };\n// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.\n// To help ensure that edge will respect the offscreen style opacity\n// filter needs to be added as an additional way to set opacity.\n// Also set pointer-events: none so that the callout will not occlude the element it is\n// going to be positioned against\nvar OFF_SCREEN_STYLE = {\n    opacity: 0,\n    filter: 'opacity(0)',\n    pointerEvents: 'none',\n};\n// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element\n// This constant array can be used to filter these out of native props spread on callout root and apply them together on\n// calloutMain (the Popup component within the callout)\nvar ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\nvar DEFAULT_PROPS = {\n    preventDismissOnLostFocus: false,\n    preventDismissOnScroll: false,\n    preventDismissOnResize: false,\n    isBeakVisible: true,\n    beakWidth: 16,\n    gapSpace: 0,\n    minPagePadding: 8,\n    directionalHint: DirectionalHint.bottomAutoEdge,\n};\nvar getClassNames = classNamesFunction({\n    disableCaching: true, // disabling caching because stylesProp.position mutates often\n});\n/**\n * (Hook) to return a function to lazily fetch the bounds of the target element for the callout.\n */\nfunction useBounds(_a, targetRef, targetWindow) {\n    var bounds = _a.bounds, _b = _a.minPagePadding, minPagePadding = _b === void 0 ? DEFAULT_PROPS.minPagePadding : _b, target = _a.target;\n    var _c = React.useState(false), targetWindowResized = _c[0], setTargetWindowResized = _c[1];\n    var cachedBounds = React.useRef();\n    var getBounds = React.useCallback(function () {\n        if (!cachedBounds.current || targetWindowResized) {\n            var currentBounds = typeof bounds === 'function' ? (targetWindow ? bounds(target, targetWindow) : undefined) : bounds;\n            if (!currentBounds && targetWindow) {\n                currentBounds = getBoundsFromTargetWindow(targetRef.current, targetWindow);\n                currentBounds = {\n                    top: currentBounds.top + minPagePadding,\n                    left: currentBounds.left + minPagePadding,\n                    right: currentBounds.right - minPagePadding,\n                    bottom: currentBounds.bottom - minPagePadding,\n                    width: currentBounds.width - minPagePadding * 2,\n                    height: currentBounds.height - minPagePadding * 2,\n                };\n            }\n            cachedBounds.current = currentBounds;\n            targetWindowResized && setTargetWindowResized(false);\n        }\n        return cachedBounds.current;\n    }, [bounds, minPagePadding, target, targetRef, targetWindow, targetWindowResized]);\n    var async = useAsync();\n    useOnEvent(targetWindow, 'resize', async.debounce(function () {\n        setTargetWindowResized(true);\n    }, 500, { leading: true }));\n    return getBounds;\n}\n/**\n * (Hook) to return the maximum available height for the Callout to render into.\n */\nfunction useMaxHeight(_a, getBounds, targetRef, positions) {\n    var _b;\n    var calloutMaxHeight = _a.calloutMaxHeight, finalHeight = _a.finalHeight, directionalHint = _a.directionalHint, directionalHintFixed = _a.directionalHintFixed, hidden = _a.hidden, gapSpace = _a.gapSpace, beakWidth = _a.beakWidth, isBeakVisible = _a.isBeakVisible, coverTarget = _a.coverTarget;\n    var _c = React.useState(), maxHeight = _c[0], setMaxHeight = _c[1];\n    var _d = (_b = positions === null || positions === void 0 ? void 0 : positions.elementPosition) !== null && _b !== void 0 ? _b : {}, top = _d.top, bottom = _d.bottom;\n    var targetRect = (targetRef === null || targetRef === void 0 ? void 0 : targetRef.current) ? getRectangleFromTarget(targetRef.current) : undefined;\n    React.useEffect(function () {\n        var _a;\n        var bounds = (_a = getBounds()) !== null && _a !== void 0 ? _a : {};\n        var topBounds = bounds.top;\n        var bottomBounds = bounds.bottom;\n        var calculatedHeight;\n        // If aligned to top edge of target and not covering target, update bottom bounds to the\n        // top of the target (accounting for gap space and beak)\n        if ((positions === null || positions === void 0 ? void 0 : positions.targetEdge) === RectangleEdge.top && (targetRect === null || targetRect === void 0 ? void 0 : targetRect.top) && !coverTarget) {\n            bottomBounds = targetRect.top - calculateGapSpace(isBeakVisible, beakWidth, gapSpace);\n        }\n        if (typeof top === 'number' && bottomBounds) {\n            calculatedHeight = bottomBounds - top;\n        }\n        else if (typeof bottom === 'number' && typeof topBounds === 'number' && bottomBounds) {\n            calculatedHeight = bottomBounds - topBounds - bottom;\n        }\n        if ((!calloutMaxHeight && !hidden) ||\n            (calloutMaxHeight && calculatedHeight && calloutMaxHeight > calculatedHeight)) {\n            setMaxHeight(calculatedHeight);\n        }\n        else if (calloutMaxHeight) {\n            setMaxHeight(calloutMaxHeight);\n        }\n        else {\n            setMaxHeight(undefined);\n        }\n    }, [\n        bottom,\n        calloutMaxHeight,\n        finalHeight,\n        directionalHint,\n        directionalHintFixed,\n        getBounds,\n        hidden,\n        positions,\n        top,\n        gapSpace,\n        beakWidth,\n        isBeakVisible,\n        targetRect,\n        coverTarget,\n    ]);\n    return maxHeight;\n}\n/**\n * (Hook) to find the current position of Callout. If Callout is resized then a new position is calculated.\n */\nfunction usePositions(props, hostElement, calloutElement, targetRef, getBounds, popupRef) {\n    var _a = React.useState(), positions = _a[0], setPositions = _a[1];\n    var positionAttempts = React.useRef(0);\n    var previousTarget = React.useRef();\n    var async = useAsync();\n    var hidden = props.hidden, target = props.target, finalHeight = props.finalHeight, calloutMaxHeight = props.calloutMaxHeight, onPositioned = props.onPositioned, directionalHint = props.directionalHint, hideOverflow = props.hideOverflow, preferScrollResizePositioning = props.preferScrollResizePositioning;\n    var win = useWindowEx();\n    var localRef = React.useRef();\n    var popupStyles;\n    if (localRef.current !== popupRef.current) {\n        localRef.current = popupRef.current;\n        popupStyles = popupRef.current ? win === null || win === void 0 ? void 0 : win.getComputedStyle(popupRef.current) : undefined;\n    }\n    var popupOverflowY = popupStyles === null || popupStyles === void 0 ? void 0 : popupStyles.overflowY;\n    React.useEffect(function () {\n        if (!hidden) {\n            var timerId_1 = async.requestAnimationFrame(function () {\n                var _a, _b;\n                if (hostElement.current && calloutElement) {\n                    var currentProps = __assign(__assign({}, props), { target: targetRef.current, bounds: getBounds() });\n                    // duplicate calloutElement & remove useMaxHeight's maxHeight for position calc\n                    var dupeCalloutElement = calloutElement.cloneNode(true);\n                    dupeCalloutElement.style.maxHeight = calloutMaxHeight ? \"\".concat(calloutMaxHeight) : '';\n                    dupeCalloutElement.style.visibility = 'hidden';\n                    (_a = calloutElement.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(dupeCalloutElement);\n                    var previousPositions = previousTarget.current === target ? positions : undefined;\n                    // only account for scroll resizing if styles allow callout to scroll\n                    // (popup styles determine if callout will scroll)\n                    var isOverflowYHidden = hideOverflow || popupOverflowY === 'clip' || popupOverflowY === 'hidden';\n                    var shouldScroll = preferScrollResizePositioning && !isOverflowYHidden;\n                    // If there is a finalHeight given then we assume that the user knows and will handle\n                    // additional positioning adjustments so we should call positionCard\n                    var newPositions = finalHeight\n                        ? positionCard(currentProps, hostElement.current, dupeCalloutElement, previousPositions, win)\n                        : positionCallout(currentProps, hostElement.current, dupeCalloutElement, previousPositions, shouldScroll, undefined, win);\n                    // clean up duplicate calloutElement\n                    (_b = calloutElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(dupeCalloutElement);\n                    // Set the new position only when the positions do not exist or one of the new callout positions\n                    // is different. The position should not change if the position is within 2 decimal places.\n                    if ((!positions && newPositions) ||\n                        (positions && newPositions && !arePositionsEqual(positions, newPositions) && positionAttempts.current < 5)) {\n                        // We should not reposition the callout more than a few times, if it is then the content is likely resizing\n                        // and we should stop trying to reposition to prevent a stack overflow.\n                        positionAttempts.current++;\n                        setPositions(newPositions);\n                    }\n                    else if (positionAttempts.current > 0) {\n                        // Only call the onPositioned callback if the callout has been re-positioned at least once.\n                        positionAttempts.current = 0;\n                        onPositioned === null || onPositioned === void 0 ? void 0 : onPositioned(positions);\n                    }\n                }\n            }, calloutElement);\n            previousTarget.current = target;\n            return function () {\n                async.cancelAnimationFrame(timerId_1);\n                previousTarget.current = undefined;\n            };\n        }\n        else {\n            // When the callout is hidden, clear position state so that it is not accidentally used next render.\n            setPositions(undefined);\n            positionAttempts.current = 0;\n        }\n    }, [\n        hidden,\n        directionalHint,\n        async,\n        calloutElement,\n        calloutMaxHeight,\n        hostElement,\n        targetRef,\n        finalHeight,\n        getBounds,\n        onPositioned,\n        positions,\n        props,\n        target,\n        hideOverflow,\n        preferScrollResizePositioning,\n        popupOverflowY,\n        win,\n    ]);\n    return positions;\n}\n/**\n * (Hook) to set up behavior to automatically focus the callout when it appears, if indicated by props.\n */\nfunction useAutoFocus(_a, positions, calloutElement) {\n    var hidden = _a.hidden, setInitialFocus = _a.setInitialFocus;\n    var async = useAsync();\n    var hasPositions = !!positions;\n    React.useEffect(function () {\n        if (!hidden && setInitialFocus && hasPositions && calloutElement) {\n            var timerId_2 = async.requestAnimationFrame(function () { return focusFirstChild(calloutElement); }, calloutElement);\n            return function () { return async.cancelAnimationFrame(timerId_2); };\n        }\n    }, [hidden, hasPositions, async, calloutElement, setInitialFocus]);\n}\n/**\n * (Hook) to set up various handlers to dismiss the popup when it loses focus or the window scrolls or similar cases.\n */\nfunction useDismissHandlers(_a, positions, hostElement, targetRef, targetWindow) {\n    var hidden = _a.hidden, onDismiss = _a.onDismiss, \n    // eslint-disable-next-line deprecation/deprecation\n    preventDismissOnScroll = _a.preventDismissOnScroll, \n    // eslint-disable-next-line deprecation/deprecation\n    preventDismissOnResize = _a.preventDismissOnResize, \n    // eslint-disable-next-line deprecation/deprecation\n    preventDismissOnLostFocus = _a.preventDismissOnLostFocus, dismissOnTargetClick = _a.dismissOnTargetClick, shouldDismissOnWindowFocus = _a.shouldDismissOnWindowFocus, preventDismissOnEvent = _a.preventDismissOnEvent;\n    var isMouseDownOnPopup = React.useRef(false);\n    var async = useAsync();\n    var mouseDownHandlers = useConst([\n        function () {\n            isMouseDownOnPopup.current = true;\n        },\n        function () {\n            isMouseDownOnPopup.current = false;\n        },\n    ]);\n    var positionsExists = !!positions;\n    React.useEffect(function () {\n        var dismissOnScroll = function (ev) {\n            if (positionsExists && !preventDismissOnScroll) {\n                dismissOnClickOrScroll(ev);\n            }\n        };\n        var dismissOnResize = function (ev) {\n            if (!preventDismissOnResize && !(preventDismissOnEvent && preventDismissOnEvent(ev))) {\n                onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n            }\n        };\n        var dismissOnLostFocus = function (ev) {\n            if (!preventDismissOnLostFocus) {\n                dismissOnClickOrScroll(ev);\n            }\n        };\n        var dismissOnClickOrScroll = function (ev) {\n            var eventPaths = ev.composedPath ? ev.composedPath() : [];\n            var target = eventPaths.length > 0 ? eventPaths[0] : ev.target;\n            var isEventTargetOutsideCallout = hostElement.current && !elementContains(hostElement.current, target);\n            // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n            if (isEventTargetOutsideCallout && isMouseDownOnPopup.current) {\n                isMouseDownOnPopup.current = false;\n                return;\n            }\n            if ((!targetRef.current && isEventTargetOutsideCallout) ||\n                (ev.target !== targetWindow &&\n                    isEventTargetOutsideCallout &&\n                    (!targetRef.current ||\n                        'stopPropagation' in targetRef.current ||\n                        dismissOnTargetClick ||\n                        (target !== targetRef.current && !elementContains(targetRef.current, target))))) {\n                if (preventDismissOnEvent && preventDismissOnEvent(ev)) {\n                    return;\n                }\n                onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n            }\n        };\n        var dismissOnTargetWindowBlur = function (ev) {\n            // Do nothing\n            if (!shouldDismissOnWindowFocus) {\n                return;\n            }\n            if (((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n                (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n                !(targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.hasFocus()) &&\n                ev.relatedTarget === null) {\n                onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n            }\n        };\n        // This is added so the callout will dismiss when the window is scrolled\n        // but not when something inside the callout is scrolled. The delay seems\n        // to be required to avoid React firing an async focus event in IE from\n        // the target changing focus quickly prior to rendering the callout.\n        var disposablesPromise = new Promise(function (resolve) {\n            async.setTimeout(function () {\n                if (!hidden && targetWindow) {\n                    var disposables_1 = [\n                        on(targetWindow, 'scroll', dismissOnScroll, true),\n                        on(targetWindow, 'resize', dismissOnResize, true),\n                        on(targetWindow.document.documentElement, 'focus', dismissOnLostFocus, true),\n                        on(targetWindow.document.documentElement, 'click', dismissOnLostFocus, true),\n                        on(targetWindow, 'blur', dismissOnTargetWindowBlur, true),\n                    ];\n                    resolve(function () {\n                        disposables_1.forEach(function (dispose) { return dispose(); });\n                    });\n                }\n            }, 0);\n        });\n        return function () {\n            disposablesPromise.then(function (dispose) { return dispose(); });\n        };\n    }, [\n        hidden,\n        async,\n        hostElement,\n        targetRef,\n        targetWindow,\n        onDismiss,\n        shouldDismissOnWindowFocus,\n        dismissOnTargetClick,\n        preventDismissOnLostFocus,\n        preventDismissOnResize,\n        preventDismissOnScroll,\n        positionsExists,\n        preventDismissOnEvent,\n    ]);\n    return mouseDownHandlers;\n}\nexport var CalloutContentBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var styles = props.styles, style = props.style, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, className = props.className, isBeakVisible = props.isBeakVisible, children = props.children, beakWidth = props.beakWidth, calloutWidth = props.calloutWidth, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer, finalHeight = props.finalHeight, _a = props.hideOverflow, hideOverflow = _a === void 0 ? !!finalHeight : _a, backgroundColor = props.backgroundColor, calloutMaxHeight = props.calloutMaxHeight, onScroll = props.onScroll, \n    // eslint-disable-next-line deprecation/deprecation\n    _b = props.shouldRestoreFocus, \n    // eslint-disable-next-line deprecation/deprecation\n    shouldRestoreFocus = _b === void 0 ? true : _b, target = props.target, hidden = props.hidden, onLayerMounted = props.onLayerMounted, popupProps = props.popupProps;\n    var hostElement = React.useRef(null);\n    var popupRef = React.useRef(null);\n    var mergedPopupRefs = useMergedRefs(popupRef, popupProps === null || popupProps === void 0 ? void 0 : popupProps.ref);\n    var _c = React.useState(null), calloutElement = _c[0], setCalloutElement = _c[1];\n    var calloutCallback = React.useCallback(function (calloutEl) {\n        setCalloutElement(calloutEl);\n    }, []);\n    var rootRef = useMergedRefs(hostElement, forwardedRef);\n    var _d = useTarget(props.target, {\n        current: calloutElement,\n    }), targetRef = _d[0], targetWindow = _d[1];\n    var getBounds = useBounds(props, targetRef, targetWindow);\n    var positions = usePositions(props, hostElement, calloutElement, targetRef, getBounds, mergedPopupRefs);\n    var maxHeight = useMaxHeight(props, getBounds, targetRef, positions);\n    var _e = useDismissHandlers(props, positions, hostElement, targetRef, targetWindow), mouseDownOnPopup = _e[0], mouseUpOnPopup = _e[1];\n    // do not set both top and bottom css props from positions\n    // instead, use maxHeight\n    var isForcedInBounds = (positions === null || positions === void 0 ? void 0 : positions.elementPosition.top) && (positions === null || positions === void 0 ? void 0 : positions.elementPosition.bottom);\n    var cssPositions = __assign(__assign({}, positions === null || positions === void 0 ? void 0 : positions.elementPosition), { maxHeight: maxHeight });\n    if (isForcedInBounds) {\n        cssPositions.bottom = undefined;\n    }\n    useAutoFocus(props, positions, calloutElement);\n    React.useEffect(function () {\n        if (!hidden) {\n            onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if hidden changes\n    }, [hidden]);\n    // If there is no target window then we are likely in server side rendering and we should not render anything.\n    if (!targetWindow) {\n        return null;\n    }\n    var overflowYHidden = hideOverflow;\n    var beakVisible = isBeakVisible && !!target;\n    var classNames = getClassNames(styles, {\n        theme: props.theme,\n        className: className,\n        overflowYHidden: overflowYHidden,\n        calloutWidth: calloutWidth,\n        positions: positions,\n        beakWidth: beakWidth,\n        backgroundColor: backgroundColor,\n        calloutMaxWidth: calloutMaxWidth,\n        calloutMinWidth: calloutMinWidth,\n        doNotLayer: doNotLayer,\n    });\n    var overflowStyle = __assign(__assign({ maxHeight: calloutMaxHeight ? calloutMaxHeight : '100%' }, style), (overflowYHidden && { overflowY: 'hidden' }));\n    var visibilityStyle = props.hidden ? { visibility: 'hidden' } : undefined;\n    // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.\n    return (React.createElement(\"div\", { ref: rootRef, className: classNames.container, style: visibilityStyle },\n        React.createElement(\"div\", __assign({}, getNativeProps(props, divProperties, ARIA_ROLE_ATTRIBUTES), { className: css(classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? __assign({}, cssPositions) : OFF_SCREEN_STYLE, \n            // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout.\n            // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n            tabIndex: -1, ref: calloutCallback }),\n            beakVisible && React.createElement(\"div\", { className: classNames.beak, style: getBeakPosition(positions) }),\n            beakVisible && React.createElement(\"div\", { className: classNames.beakCurtain }),\n            React.createElement(Popup\n            // don't use getNativeElementProps for role and roledescription because it will also\n            // pass through data-* props (resulting in them being used in two places)\n            , __assign({ \n                // don't use getNativeElementProps for role and roledescription because it will also\n                // pass through data-* props (resulting in them being used in two places)\n                role: props.role, \"aria-roledescription\": props['aria-roledescription'], ariaDescribedBy: ariaDescribedBy, ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy, className: classNames.calloutMain, onDismiss: props.onDismiss, onMouseDown: mouseDownOnPopup, onMouseUp: mouseUpOnPopup, onRestoreFocus: props.onRestoreFocus, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle }, popupProps, { ref: mergedPopupRefs }), children))));\n}), function (previousProps, nextProps) {\n    if (!nextProps.shouldUpdateWhenHidden && previousProps.hidden && nextProps.hidden) {\n        // Do not update when hidden.\n        return true;\n    }\n    return shallowCompare(previousProps, nextProps);\n});\n/**\n * (Utility) to find and return the current `Callout` Beak position.\n *\n * @param positions\n */\nfunction getBeakPosition(positions) {\n    var _a, _b;\n    var beakPositionStyle = __assign(__assign({}, (_a = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _a === void 0 ? void 0 : _a.elementPosition), { display: ((_b = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _b === void 0 ? void 0 : _b.hideBeak) ? 'none' : undefined });\n    if (!beakPositionStyle.top && !beakPositionStyle.bottom && !beakPositionStyle.left && !beakPositionStyle.right) {\n        beakPositionStyle.left = BEAK_ORIGIN_POSITION.left;\n        beakPositionStyle.top = BEAK_ORIGIN_POSITION.top;\n    }\n    return beakPositionStyle;\n}\n/**\n * (Utility) used to compare two different elementPositions to determine whether they are equal.\n *\n * @param prevElementPositions\n * @param newElementPosition\n */\nfunction arePositionsEqual(prevElementPositions, newElementPosition) {\n    return (comparePositions(prevElementPositions.elementPosition, newElementPosition.elementPosition) &&\n        comparePositions(prevElementPositions.beakPosition.elementPosition, newElementPosition.beakPosition.elementPosition));\n}\n/**\n * (Utility) used in **arePositionsEqual** to compare two different elementPositions.\n *\n * @param prevElementPositions\n * @param newElementPositions\n */\nfunction comparePositions(prevElementPositions, newElementPositions) {\n    for (var key in newElementPositions) {\n        if (newElementPositions.hasOwnProperty(key)) {\n            var oldPositionEdge = prevElementPositions[key];\n            var newPositionEdge = newElementPositions[key];\n            if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n                if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n                    return false;\n                }\n            }\n            else {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nCalloutContentBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=CalloutContent.base.js.map","import { styled } from '../../Utilities';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\nexport var CalloutContent = styled(CalloutContentBase, getStyles, undefined, {\n    scope: 'CalloutContent',\n});\n//# sourceMappingURL=CalloutContent.js.map","import { HighContrastSelector, focusClear, getGlobalClassNames, ZIndexes } from '../../Styling';\nfunction getBeakStyle(beakWidth) {\n    return {\n        height: beakWidth,\n        width: beakWidth,\n    };\n}\nvar GlobalClassNames = {\n    container: 'ms-Callout-container',\n    root: 'ms-Callout',\n    beak: 'ms-Callout-beak',\n    beakCurtain: 'ms-Callout-beakCurtain',\n    calloutMain: 'ms-Callout-main',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var theme = props.theme, className = props.className, overflowYHidden = props.overflowYHidden, calloutWidth = props.calloutWidth, beakWidth = props.beakWidth, backgroundColor = props.backgroundColor, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var semanticColors = theme.semanticColors, effects = theme.effects;\n    return {\n        container: [\n            classNames.container,\n            {\n                position: 'relative',\n            },\n        ],\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                position: 'absolute',\n                display: 'flex',\n                zIndex: doNotLayer ? ZIndexes.Layer : undefined,\n                boxSizing: 'border-box',\n                borderRadius: effects.roundedCorner2,\n                boxShadow: effects.elevation16,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        borderWidth: 1,\n                        borderStyle: 'solid',\n                        borderColor: 'WindowText',\n                    },\n                    _a),\n            },\n            focusClear(),\n            className,\n            !!calloutWidth && { width: calloutWidth },\n            !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\n            !!calloutMinWidth && { minWidth: calloutMinWidth },\n        ],\n        beak: [\n            classNames.beak,\n            {\n                position: 'absolute',\n                backgroundColor: semanticColors.menuBackground,\n                boxShadow: 'inherit',\n                border: 'inherit',\n                boxSizing: 'border-box',\n                transform: 'rotate(45deg)',\n            },\n            getBeakStyle(beakWidth),\n            backgroundColor && {\n                backgroundColor: backgroundColor,\n            },\n        ],\n        beakCurtain: [\n            classNames.beakCurtain,\n            {\n                position: 'absolute',\n                top: 0,\n                right: 0,\n                bottom: 0,\n                left: 0,\n                backgroundColor: semanticColors.menuBackground,\n                borderRadius: effects.roundedCorner2,\n            },\n        ],\n        calloutMain: [\n            classNames.calloutMain,\n            {\n                backgroundColor: semanticColors.menuBackground,\n                overflowX: 'hidden',\n                overflowY: 'auto',\n                position: 'relative',\n                width: '100%',\n                borderRadius: effects.roundedCorner2,\n            },\n            overflowYHidden && {\n                overflowY: 'hidden',\n            },\n            backgroundColor && {\n                backgroundColor: backgroundColor,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=CalloutContent.styles.js.map","import { __assign, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { ContextualMenuItemType } from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, FocusZoneTabbableElements } from '../../FocusZone';\nimport { divProperties, getNativeProps, shallowCompare, assign, classNamesFunction, css, getFirstFocusable, getLastFocusable, getRTL, KeyCodes, shouldWrapFocus, isIOS, isMac, memoizeFunction, getPropsWithDefaults, getDocument, FocusRects, composeComponentAs, } from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { Callout } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport { ContextualMenuSplitButton, ContextualMenuButton, ContextualMenuAnchor, } from './ContextualMenuItemWrapper/index';\nimport { concatStyleSetsWithProps } from '../../Styling';\nimport { getItemStyles } from './ContextualMenu.classNames';\nimport { useTarget, usePrevious, useAsync, useWarnings, useId, useIsomorphicLayoutEffect, } from '@fluentui/react-hooks';\nimport { useResponsiveMode, ResponsiveMode } from '../../ResponsiveMode';\nimport { MenuContext } from '../../utilities/MenuContext/index';\nvar getClassNames = classNamesFunction();\nvar getContextualMenuItemClassNames = classNamesFunction();\n// The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\nvar DEFAULT_PROPS = {\n    items: [],\n    shouldFocusOnMount: true,\n    gapSpace: 0,\n    directionalHint: DirectionalHint.bottomAutoEdge,\n    beakWidth: 16,\n};\n/* return number of menu items, excluding headers and dividers */\nfunction getItemCount(items) {\n    var totalItemCount = 0;\n    for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n        var item = items_1[_i];\n        if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n            var itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n            totalItemCount += itemCount;\n        }\n    }\n    return totalItemCount;\n}\nexport function getSubmenuItems(item, options) {\n    var target = options === null || options === void 0 ? void 0 : options.target;\n    // eslint-disable-next-line deprecation/deprecation\n    var items = item.subMenuProps ? item.subMenuProps.items : item.items;\n    if (items) {\n        var overrideItems = [];\n        for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {\n            var subItem = items_2[_i];\n            if (subItem.preferMenuTargetAsEventTarget) {\n                // For sub-items which need an overridden target, intercept `onClick`\n                var onClick = subItem.onClick, contextItem = __rest(subItem, [\"onClick\"]);\n                overrideItems.push(__assign(__assign({}, contextItem), { onClick: getOnClickWithOverrideTarget(onClick, target) }));\n            }\n            else {\n                overrideItems.push(subItem);\n            }\n        }\n        return overrideItems;\n    }\n}\n/**\n * Returns true if a list of menu items can contain a checkbox\n */\nexport function canAnyMenuItemsCheck(items) {\n    return items.some(function (item) {\n        if (item.canCheck) {\n            return true;\n        }\n        // If the item is a section, check if any of the items in the section can check.\n        if (item.sectionProps && item.sectionProps.items.some(function (submenuItem) { return submenuItem.canCheck === true; })) {\n            return true;\n        }\n        return false;\n    });\n}\nvar NavigationIdleDelay = 250; /* ms */\nvar COMPONENT_NAME = 'ContextualMenu';\nvar _getMenuItemStylesFunction = memoizeFunction(function () {\n    var styles = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        styles[_i] = arguments[_i];\n    }\n    return function (styleProps) {\n        return concatStyleSetsWithProps.apply(void 0, __spreadArray([styleProps, getItemStyles], styles, false));\n    };\n});\n//#region Custom hooks\nfunction useVisibility(props, targetWindow) {\n    var _a = props.hidden, hidden = _a === void 0 ? false : _a, onMenuDismissed = props.onMenuDismissed, onMenuOpened = props.onMenuOpened;\n    var previousHidden = usePrevious(hidden);\n    var onMenuOpenedRef = React.useRef(onMenuOpened);\n    var onMenuClosedRef = React.useRef(onMenuDismissed);\n    var propsRef = React.useRef(props);\n    onMenuOpenedRef.current = onMenuOpened;\n    onMenuClosedRef.current = onMenuDismissed;\n    propsRef.current = props;\n    React.useEffect(function () {\n        var _a, _b;\n        // Don't issue dismissed callbacks on initial mount\n        if (hidden && previousHidden === false) {\n            (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current);\n        }\n        else if (!hidden && previousHidden !== false) {\n            (_b = onMenuOpenedRef.current) === null || _b === void 0 ? void 0 : _b.call(onMenuOpenedRef, propsRef.current);\n        }\n    }, [hidden, previousHidden]);\n    // Issue onDismissedCallback on unmount\n    React.useEffect(function () { return function () { var _a; return (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current); }; }, []);\n}\nfunction useSubMenuState(_a, dismiss) {\n    var hidden = _a.hidden, items = _a.items, theme = _a.theme, className = _a.className, id = _a.id, menuTarget = _a.target;\n    var _b = React.useState(), expandedMenuItemKey = _b[0], setExpandedMenuItemKey = _b[1];\n    var _c = React.useState(), submenuTarget = _c[0], setSubmenuTarget = _c[1];\n    /** True if the menu was expanded by mouse click OR hover (as opposed to by keyboard) */\n    var _d = React.useState(), shouldFocusOnContainer = _d[0], setShouldFocusOnContainer = _d[1];\n    var subMenuId = useId(COMPONENT_NAME, id);\n    var closeSubMenu = React.useCallback(function () {\n        setShouldFocusOnContainer(undefined);\n        setExpandedMenuItemKey(undefined);\n        setSubmenuTarget(undefined);\n    }, []);\n    var openSubMenu = React.useCallback(function (_a, target, focusContainer) {\n        var submenuItemKey = _a.key;\n        if (expandedMenuItemKey === submenuItemKey) {\n            return;\n        }\n        target.focus();\n        setShouldFocusOnContainer(focusContainer);\n        setExpandedMenuItemKey(submenuItemKey);\n        setSubmenuTarget(target);\n    }, [expandedMenuItemKey]);\n    React.useEffect(function () {\n        if (hidden) {\n            closeSubMenu();\n        }\n    }, [hidden, closeSubMenu]);\n    var onSubMenuDismiss = useOnSubmenuDismiss(dismiss, closeSubMenu);\n    var getSubmenuProps = function () {\n        var item = findItemByKeyFromItems(expandedMenuItemKey, items);\n        var submenuProps = null;\n        if (item) {\n            submenuProps = {\n                items: getSubmenuItems(item, { target: menuTarget }),\n                target: submenuTarget,\n                onDismiss: onSubMenuDismiss,\n                isSubMenu: true,\n                id: subMenuId,\n                shouldFocusOnMount: true,\n                shouldFocusOnContainer: shouldFocusOnContainer,\n                directionalHint: getRTL(theme) ? DirectionalHint.leftTopEdge : DirectionalHint.rightTopEdge,\n                className: className,\n                gapSpace: 0,\n                isBeakVisible: false,\n            };\n            if (item.subMenuProps) {\n                assign(submenuProps, item.subMenuProps);\n            }\n            if (item.preferMenuTargetAsEventTarget) {\n                var onItemClick = item.onItemClick;\n                submenuProps.onItemClick = getOnClickWithOverrideTarget(onItemClick, menuTarget);\n            }\n        }\n        return submenuProps;\n    };\n    return [expandedMenuItemKey, openSubMenu, getSubmenuProps, onSubMenuDismiss];\n}\nfunction useShouldUpdateFocusOnMouseMove(_a) {\n    var delayUpdateFocusOnHover = _a.delayUpdateFocusOnHover, hidden = _a.hidden;\n    var shouldUpdateFocusOnMouseEvent = React.useRef(!delayUpdateFocusOnHover);\n    var gotMouseMove = React.useRef(false);\n    React.useEffect(function () {\n        shouldUpdateFocusOnMouseEvent.current = !delayUpdateFocusOnHover;\n        gotMouseMove.current = hidden ? false : !delayUpdateFocusOnHover && gotMouseMove.current;\n    }, [delayUpdateFocusOnHover, hidden]);\n    var onMenuFocusCapture = React.useCallback(function () {\n        if (delayUpdateFocusOnHover) {\n            shouldUpdateFocusOnMouseEvent.current = false;\n        }\n    }, [delayUpdateFocusOnHover]);\n    return [shouldUpdateFocusOnMouseEvent, gotMouseMove, onMenuFocusCapture];\n}\nfunction usePreviousActiveElement(_a, targetWindow, hostElement) {\n    var hidden = _a.hidden, onRestoreFocus = _a.onRestoreFocus;\n    var previousActiveElement = React.useRef();\n    var tryFocusPreviousActiveElement = React.useCallback(function (options) {\n        var _a, _b;\n        if (onRestoreFocus) {\n            onRestoreFocus(options);\n        }\n        else if (options === null || options === void 0 ? void 0 : options.documentContainsFocus) {\n            // Make sure that the focus method actually exists\n            // In some cases the object might exist but not be a real element.\n            // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n            (_b = (_a = previousActiveElement.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n        }\n    }, [onRestoreFocus]);\n    useIsomorphicLayoutEffect(function () {\n        var _a, _b;\n        if (!hidden) {\n            var newElement = targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement;\n            if (!((_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.contains(newElement)) && newElement.tagName !== 'BODY') {\n                previousActiveElement.current = newElement;\n            }\n        }\n        else if (previousActiveElement.current) {\n            tryFocusPreviousActiveElement({\n                originalElement: previousActiveElement.current,\n                containsFocus: true,\n                documentContainsFocus: ((_b = getDocument()) === null || _b === void 0 ? void 0 : _b.hasFocus()) || false,\n            });\n            previousActiveElement.current = undefined;\n        }\n    }, [hidden, targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement, tryFocusPreviousActiveElement, hostElement]);\n    return [tryFocusPreviousActiveElement];\n}\nfunction useKeyHandlers(_a, dismiss, hostElement, openSubMenu) {\n    var theme = _a.theme, isSubMenu = _a.isSubMenu, _b = _a.focusZoneProps, _c = _b === void 0 ? {} : _b, checkForNoWrap = _c.checkForNoWrap, _d = _c.direction, focusZoneDirection = _d === void 0 ? FocusZoneDirection.vertical : _d;\n    /** True if the most recent keydown event was for alt (option) or meta (command). */\n    var lastKeyDownWasAltOrMeta = React.useRef();\n    /**\n     * Calls `shouldHandleKey` to determine whether the keyboard event should be handled;\n     * if so, stops event propagation and dismisses menu(s).\n     * @param ev - The keyboard event.\n     * @param shouldHandleKey - Returns whether we should handle this keyboard event.\n     * @param dismissAllMenus - If true, dismiss all menus. Otherwise, dismiss only the current menu.\n     * Only does anything if `shouldHandleKey` returns true.\n     * @returns Whether the event was handled.\n     */\n    var keyHandler = function (ev, shouldHandleKey, dismissAllMenus) {\n        var handled = false;\n        if (shouldHandleKey(ev)) {\n            dismiss(ev, dismissAllMenus);\n            ev.preventDefault();\n            ev.stopPropagation();\n            handled = true;\n        }\n        return handled;\n    };\n    /**\n     * Checks if the submenu should be closed\n     */\n    var shouldCloseSubMenu = function (ev) {\n        var submenuCloseKey = getRTL(theme) ? KeyCodes.right : KeyCodes.left;\n        // eslint-disable-next-line deprecation/deprecation\n        if (ev.which !== submenuCloseKey || !isSubMenu) {\n            return false;\n        }\n        return !!(focusZoneDirection === FocusZoneDirection.vertical ||\n            (checkForNoWrap && !shouldWrapFocus(ev.target, 'data-no-horizontal-wrap')));\n    };\n    var shouldHandleKeyDown = function (ev) {\n        return (\n        // eslint-disable-next-line deprecation/deprecation\n        ev.which === KeyCodes.escape ||\n            shouldCloseSubMenu(ev) ||\n            // eslint-disable-next-line deprecation/deprecation\n            (ev.which === KeyCodes.up && (ev.altKey || ev.metaKey)));\n    };\n    var onKeyDown = function (ev) {\n        // Take note if we are processing an alt (option) or meta (command) keydown.\n        // See comment in shouldHandleKeyUp for reasoning.\n        lastKeyDownWasAltOrMeta.current = isAltOrMeta(ev);\n        // On Mac, pressing escape dismisses all levels of native context menus\n        // eslint-disable-next-line deprecation/deprecation\n        var dismissAllMenus = ev.which === KeyCodes.escape && (isMac() || isIOS());\n        return keyHandler(ev, shouldHandleKeyDown, dismissAllMenus);\n    };\n    /**\n     * We close the menu on key up only if ALL of the following are true:\n     * - Most recent key down was alt or meta (command)\n     * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n     *   expand/collapse the menu)\n     * - We're not on a Mac (or iOS)\n     *\n     * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n     * closing any open context menus. There is not a similar behavior on Macs.\n     */\n    var shouldHandleKeyUp = function (ev) {\n        var keyPressIsAltOrMetaAlone = lastKeyDownWasAltOrMeta.current && isAltOrMeta(ev);\n        lastKeyDownWasAltOrMeta.current = false;\n        return !!keyPressIsAltOrMetaAlone && !(isIOS() || isMac());\n    };\n    var onKeyUp = function (ev) {\n        return keyHandler(ev, shouldHandleKeyUp, true /* dismissAllMenus */);\n    };\n    var onMenuKeyDown = function (ev) {\n        // Mark as handled if onKeyDown returns true (for handling collapse cases)\n        // or if we are attempting to expand a submenu\n        var handled = onKeyDown(ev);\n        if (handled || !hostElement.current) {\n            return;\n        }\n        // If we have a modifier key being pressed, we do not want to move focus.\n        // Otherwise, handle up and down keys.\n        var hasModifier = !!(ev.altKey || ev.metaKey);\n        // eslint-disable-next-line deprecation/deprecation\n        var isUp = ev.which === KeyCodes.up;\n        // eslint-disable-next-line deprecation/deprecation\n        var isDown = ev.which === KeyCodes.down;\n        if (!hasModifier && (isUp || isDown)) {\n            var elementToFocus = isUp\n                ? getLastFocusable(hostElement.current, hostElement.current.lastChild, true)\n                : getFirstFocusable(hostElement.current, hostElement.current.firstChild, true);\n            if (elementToFocus) {\n                elementToFocus.focus();\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n        }\n    };\n    var onItemKeyDown = function (item, ev) {\n        var openKey = getRTL(theme) ? KeyCodes.left : KeyCodes.right;\n        if (!item.disabled &&\n            // eslint-disable-next-line deprecation/deprecation\n            (ev.which === openKey || ev.which === KeyCodes.enter || (ev.which === KeyCodes.down && (ev.altKey || ev.metaKey)))) {\n            openSubMenu(item, ev.currentTarget);\n            ev.preventDefault();\n        }\n    };\n    return [onKeyDown, onKeyUp, onMenuKeyDown, onItemKeyDown];\n}\nfunction useScrollHandler(asyncTracker) {\n    var isScrollIdle = React.useRef(true);\n    var scrollIdleTimeoutId = React.useRef();\n    /**\n     * Scroll handler for the callout to make sure the mouse events\n     * for updating focus are not interacting during scroll\n     */\n    var onScroll = function () {\n        if (!isScrollIdle.current && scrollIdleTimeoutId.current !== undefined) {\n            asyncTracker.clearTimeout(scrollIdleTimeoutId.current);\n            scrollIdleTimeoutId.current = undefined;\n        }\n        else {\n            isScrollIdle.current = false;\n        }\n        scrollIdleTimeoutId.current = asyncTracker.setTimeout(function () {\n            isScrollIdle.current = true;\n        }, NavigationIdleDelay);\n    };\n    return [onScroll, isScrollIdle];\n}\nfunction useOnSubmenuDismiss(dismiss, closeSubMenu) {\n    var isMountedRef = React.useRef(false);\n    React.useEffect(function () {\n        isMountedRef.current = true;\n        return function () {\n            isMountedRef.current = false;\n        };\n    }, []);\n    /**\n     * This function is called ASYNCHRONOUSLY, and so there is a chance it is called\n     * after the component is unmounted. The isMountedRef is added to prevent\n     * from calling setState() after unmount. Do NOT copy this pattern in synchronous\n     * code.\n     */\n    var onSubMenuDismiss = function (ev, dismissAll) {\n        if (dismissAll) {\n            dismiss(ev, dismissAll);\n        }\n        else if (isMountedRef.current) {\n            closeSubMenu();\n        }\n    };\n    return onSubMenuDismiss;\n}\nfunction useSubmenuEnterTimer(_a, asyncTracker) {\n    var _b = _a.subMenuHoverDelay, subMenuHoverDelay = _b === void 0 ? NavigationIdleDelay : _b;\n    var enterTimerRef = React.useRef(undefined);\n    var cancelSubMenuTimer = function () {\n        if (enterTimerRef.current !== undefined) {\n            asyncTracker.clearTimeout(enterTimerRef.current);\n            enterTimerRef.current = undefined;\n        }\n    };\n    var startSubmenuTimer = function (onTimerExpired) {\n        enterTimerRef.current = asyncTracker.setTimeout(function () {\n            onTimerExpired();\n            cancelSubMenuTimer();\n        }, subMenuHoverDelay);\n    };\n    return [cancelSubMenuTimer, startSubmenuTimer, enterTimerRef];\n}\nfunction useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss) {\n    var menuTarget = props.target;\n    var onItemMouseEnterBase = function (item, ev, target) {\n        if (shouldUpdateFocusOnMouseEvent.current) {\n            gotMouseMove.current = true;\n        }\n        if (shouldIgnoreMouseEvent()) {\n            return;\n        }\n        updateFocusOnMouseEvent(item, ev, target);\n    };\n    var onItemMouseMoveBase = function (item, ev, target) {\n        var targetElement = ev.currentTarget;\n        // Always do this check to make sure we record a mouseMove if needed (even if we are timed out)\n        if (shouldUpdateFocusOnMouseEvent.current) {\n            gotMouseMove.current = true;\n        }\n        else {\n            return;\n        }\n        if (!isScrollIdle.current ||\n            subMenuEntryTimer.current !== undefined ||\n            targetElement === (targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement)) {\n            return;\n        }\n        updateFocusOnMouseEvent(item, ev, target);\n    };\n    var shouldIgnoreMouseEvent = function () {\n        return !isScrollIdle.current || !gotMouseMove.current;\n    };\n    var onMouseItemLeave = function (item, ev) {\n        var _a;\n        if (shouldIgnoreMouseEvent()) {\n            return;\n        }\n        cancelSubMenuTimer();\n        if (expandedMenuItemKey !== undefined) {\n            return;\n        }\n        /**\n         * IE11 focus() method forces parents to scroll to top of element.\n         * Edge and IE expose a setActive() function for focusable divs that\n         * sets the page focus but does not scroll the parent element.\n         */\n        if (hostElement.current.setActive) {\n            try {\n                hostElement.current.setActive();\n            }\n            catch (e) {\n                /* no-op */\n            }\n        }\n        else {\n            (_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.focus();\n        }\n    };\n    /**\n     * Handles updating focus when mouseEnter or mouseMove fire.\n     * As part of updating focus, This function will also update\n     * the expand/collapse state accordingly.\n     */\n    var updateFocusOnMouseEvent = function (item, ev, target) {\n        var targetElement = target ? target : ev.currentTarget;\n        if (item.key === expandedMenuItemKey) {\n            return;\n        }\n        cancelSubMenuTimer();\n        // If the menu is not expanded we can update focus without any delay\n        if (expandedMenuItemKey === undefined) {\n            targetElement.focus();\n        }\n        // Delay updating expanding/dismissing the submenu\n        // and only set focus if we have not already done so\n        if (hasSubmenu(item)) {\n            ev.stopPropagation();\n            startSubmenuTimer(function () {\n                targetElement.focus();\n                openSubMenu(item, targetElement, true);\n            });\n        }\n        else {\n            startSubmenuTimer(function () {\n                onSubMenuDismiss(ev);\n                targetElement.focus();\n            });\n        }\n    };\n    var onItemClick = function (item, ev) {\n        onItemClickBase(item, ev, ev.currentTarget);\n    };\n    var onItemClickBase = function (item, ev, target) {\n        var items = getSubmenuItems(item, { target: menuTarget });\n        // Cancel an async menu item hover timeout action from being taken and instead\n        // just trigger the click event instead.\n        cancelSubMenuTimer();\n        if (!hasSubmenu(item) && (!items || !items.length)) {\n            // This is an item without a menu. Click it.\n            executeItemClick(item, ev);\n        }\n        else {\n            if (item.key !== expandedMenuItemKey) {\n                // This has a collapsed sub menu. Expand it.\n                // focus on the container by default when the menu is opened with a click event\n                // this differentiates from a keyboard interaction triggering the click event\n                var shouldFocusOnContainer = typeof props.shouldFocusOnContainer === 'boolean'\n                    ? props.shouldFocusOnContainer\n                    : ev.nativeEvent.pointerType === 'mouse';\n                openSubMenu(item, target, shouldFocusOnContainer);\n            }\n        }\n        ev.stopPropagation();\n        ev.preventDefault();\n    };\n    var onAnchorClick = function (item, ev) {\n        executeItemClick(item, ev);\n        ev.stopPropagation();\n    };\n    var executeItemClick = function (item, ev) {\n        if (item.disabled || item.isDisabled) {\n            return;\n        }\n        if (item.preferMenuTargetAsEventTarget) {\n            overrideTarget(ev, menuTarget);\n        }\n        var shouldDismiss = false;\n        if (item.onClick) {\n            shouldDismiss = !!item.onClick(ev, item);\n        }\n        else if (props.onItemClick) {\n            shouldDismiss = !!props.onItemClick(ev, item);\n        }\n        if (shouldDismiss || !ev.defaultPrevented) {\n            dismiss(ev, true);\n        }\n    };\n    return [\n        onItemMouseEnterBase,\n        onItemMouseMoveBase,\n        onMouseItemLeave,\n        onItemClick,\n        onAnchorClick,\n        executeItemClick,\n        onItemClickBase,\n    ];\n}\n//#endregion\nexport var ContextualMenuBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var _a;\n    var _b = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults), ref = _b.ref, props = __rest(_b, [\"ref\"]);\n    var hostElement = React.useRef(null);\n    var asyncTracker = useAsync();\n    var menuId = useId(COMPONENT_NAME, props.id);\n    useWarnings({\n        name: COMPONENT_NAME,\n        props: props,\n        deprecations: {\n            getMenuClassNames: 'styles',\n        },\n    });\n    var dismiss = function (ev, dismissAll) { var _a; return (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props, ev, dismissAll); };\n    var _c = useTarget(props.target, hostElement), targetRef = _c[0], targetWindow = _c[1];\n    var tryFocusPreviousActiveElement = usePreviousActiveElement(props, targetWindow, hostElement)[0];\n    var _d = useSubMenuState(props, dismiss), expandedMenuItemKey = _d[0], openSubMenu = _d[1], getSubmenuProps = _d[2], onSubMenuDismiss = _d[3];\n    var _e = useShouldUpdateFocusOnMouseMove(props), shouldUpdateFocusOnMouseEvent = _e[0], gotMouseMove = _e[1], onMenuFocusCapture = _e[2];\n    var _f = useScrollHandler(asyncTracker), onScroll = _f[0], isScrollIdle = _f[1];\n    var _g = useSubmenuEnterTimer(props, asyncTracker), cancelSubMenuTimer = _g[0], startSubmenuTimer = _g[1], subMenuEntryTimer = _g[2];\n    var responsiveMode = useResponsiveMode(hostElement, props.responsiveMode);\n    useVisibility(props, targetWindow);\n    var _h = useKeyHandlers(props, dismiss, hostElement, openSubMenu), onKeyDown = _h[0], onKeyUp = _h[1], onMenuKeyDown = _h[2], onItemKeyDown = _h[3];\n    var _j = useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss), onItemMouseEnterBase = _j[0], onItemMouseMoveBase = _j[1], onMouseItemLeave = _j[2], onItemClick = _j[3], onAnchorClick = _j[4], executeItemClick = _j[5], onItemClickBase = _j[6];\n    //#region Render helpers\n    var onDefaultRenderMenuList = function (menuListProps, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames, defaultRender) {\n        var indexCorrection = 0;\n        var items = menuListProps.items, totalItemCount = menuListProps.totalItemCount, hasCheckmarks = menuListProps.hasCheckmarks, hasIcons = menuListProps.hasIcons;\n        return (React.createElement(\"ul\", { className: menuClassNames.list, onKeyDown: onKeyDown, onKeyUp: onKeyUp, role: 'presentation' }, items.map(function (item, index) {\n            var menuItem = renderMenuItem(item, index, indexCorrection, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n            if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n                var indexIncrease = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n                indexCorrection += indexIncrease;\n            }\n            return menuItem;\n        })));\n    };\n    var renderFocusZone = function (children, adjustedFocusZoneProps) {\n        var _a = props.focusZoneAs, ChildrenRenderer = _a === void 0 ? FocusZone : _a;\n        return React.createElement(ChildrenRenderer, __assign({}, adjustedFocusZoneProps), children);\n    };\n    /**\n     * !!!IMPORTANT!!! Avoid mutating `item: IContextualMenuItem` argument. It will\n     * cause the menu items to always re-render because the component update is based on shallow comparison.\n     */\n    var renderMenuItem = function (item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames) {\n        var _a;\n        var renderedItems = [];\n        var iconProps = item.iconProps || { iconName: 'None' };\n        var getItemClassNames = item.getItemClassNames, // eslint-disable-line deprecation/deprecation\n        itemProps = item.itemProps;\n        var styles = itemProps ? itemProps.styles : undefined;\n        // We only send a dividerClassName when the item to be rendered is a divider.\n        // For all other cases, the default divider style is used.\n        var dividerClassName = item.itemType === ContextualMenuItemType.Divider ? item.className : undefined;\n        var subMenuIconClassName = item.submenuIconProps ? item.submenuIconProps.className : '';\n        // eslint-disable-next-line deprecation/deprecation\n        var itemClassNames;\n        // IContextualMenuItem#getItemClassNames for backwards compatibility\n        // otherwise uses mergeStyles for class names.\n        if (getItemClassNames) {\n            itemClassNames = getItemClassNames(props.theme, isItemDisabled(item), expandedMenuItemKey === item.key, !!getIsChecked(item), !!item.href, iconProps.iconName !== 'None', item.className, dividerClassName, iconProps.className, subMenuIconClassName, item.primaryDisabled);\n        }\n        else {\n            var itemStyleProps = {\n                theme: props.theme,\n                disabled: isItemDisabled(item),\n                expanded: expandedMenuItemKey === item.key,\n                checked: !!getIsChecked(item),\n                isAnchorLink: !!item.href,\n                knownIcon: iconProps.iconName !== 'None',\n                itemClassName: item.className,\n                dividerClassName: dividerClassName,\n                iconClassName: iconProps.className,\n                subMenuClassName: subMenuIconClassName,\n                primaryDisabled: item.primaryDisabled,\n            };\n            // We need to generate default styles then override if styles are provided\n            // since the ContextualMenu currently handles item classNames.\n            itemClassNames = getContextualMenuItemClassNames(_getMenuItemStylesFunction((_a = menuClassNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.menuItem, styles), itemStyleProps);\n        }\n        // eslint-disable-next-line deprecation/deprecation\n        if (item.text === '-' || item.name === '-') {\n            item.itemType = ContextualMenuItemType.Divider;\n        }\n        switch (item.itemType) {\n            case ContextualMenuItemType.Divider:\n                renderedItems.push(renderSeparator(index, itemClassNames));\n                break;\n            case ContextualMenuItemType.Header:\n                renderedItems.push(renderSeparator(index, itemClassNames));\n                var headerItem = renderHeaderMenuItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n                renderedItems.push(renderListItem(headerItem, item.key || index, itemClassNames, item.title));\n                break;\n            case ContextualMenuItemType.Section:\n                renderedItems.push(renderSectionItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons));\n                break;\n            default:\n                var defaultRenderNormalItem = function () {\n                    return renderNormalItem(item, itemClassNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n                };\n                var menuItem = props.onRenderContextualMenuItem\n                    ? props.onRenderContextualMenuItem(item, defaultRenderNormalItem)\n                    : defaultRenderNormalItem();\n                renderedItems.push(renderListItem(menuItem, item.key || index, itemClassNames, item.title));\n                break;\n        }\n        // Since multiple nodes *could* be rendered, wrap them all in a fragment with this item's key.\n        // This ensures the reconciler handles multi-item output per-node correctly and does not re-mount content.\n        return React.createElement(React.Fragment, { key: item.key }, renderedItems);\n    };\n    var defaultMenuItemRenderer = function (item, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames) {\n        var index = item.index, focusableElementIndex = item.focusableElementIndex, totalItemCount = item.totalItemCount, hasCheckmarks = item.hasCheckmarks, hasIcons = item.hasIcons;\n        return renderMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n    };\n    var renderSectionItem = function (sectionItem, \n    // eslint-disable-next-line deprecation/deprecation\n    itemClassNames, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames, index, hasCheckmarks, hasIcons) {\n        var sectionProps = sectionItem.sectionProps;\n        if (!sectionProps) {\n            return;\n        }\n        var headerItem;\n        var groupProps;\n        if (sectionProps.title) {\n            var headerContextualMenuItem = undefined;\n            var ariaLabelledby = '';\n            if (typeof sectionProps.title === 'string') {\n                // Since title is a user-facing string, it needs to be stripped\n                // of whitespace in order to build a valid element ID\n                var id_1 = menuId + sectionProps.title.replace(/\\s/g, '');\n                headerContextualMenuItem = {\n                    key: \"section-\".concat(sectionProps.title, \"-title\"),\n                    itemType: ContextualMenuItemType.Header,\n                    text: sectionProps.title,\n                    id: id_1,\n                };\n                ariaLabelledby = id_1;\n            }\n            else {\n                var id_2 = sectionProps.title.id || menuId + sectionProps.title.key.replace(/\\s/g, '');\n                headerContextualMenuItem = __assign(__assign({}, sectionProps.title), { id: id_2 });\n                ariaLabelledby = id_2;\n            }\n            if (headerContextualMenuItem) {\n                groupProps = {\n                    role: 'group',\n                    'aria-labelledby': ariaLabelledby,\n                };\n                headerItem = renderHeaderMenuItem(headerContextualMenuItem, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n            }\n        }\n        if (sectionProps.items && sectionProps.items.length > 0) {\n            var correctedIndex_1 = 0;\n            return (React.createElement(\"li\", { role: \"presentation\", key: sectionProps.key || sectionItem.key || \"section-\".concat(index) },\n                React.createElement(\"div\", __assign({}, groupProps),\n                    React.createElement(\"ul\", { className: menuClassNames.list, role: \"presentation\" },\n                        sectionProps.topDivider && renderSeparator(index, itemClassNames, true, true),\n                        headerItem && renderListItem(headerItem, sectionItem.key || index, itemClassNames, sectionItem.title),\n                        sectionProps.items.map(function (contextualMenuItem, itemsIndex) {\n                            var menuItem = renderMenuItem(contextualMenuItem, itemsIndex, correctedIndex_1, getItemCount(sectionProps.items), hasCheckmarks, hasIcons, menuClassNames);\n                            if (contextualMenuItem.itemType !== ContextualMenuItemType.Divider &&\n                                contextualMenuItem.itemType !== ContextualMenuItemType.Header) {\n                                var indexIncrease = contextualMenuItem.customOnRenderListLength\n                                    ? contextualMenuItem.customOnRenderListLength\n                                    : 1;\n                                correctedIndex_1 += indexIncrease;\n                            }\n                            return menuItem;\n                        }),\n                        sectionProps.bottomDivider && renderSeparator(index, itemClassNames, false, true)))));\n        }\n    };\n    var renderListItem = function (content, key, classNames, // eslint-disable-line deprecation/deprecation\n    title) {\n        return (React.createElement(\"li\", { role: \"presentation\", title: title, key: key, className: classNames.item }, content));\n    };\n    var renderSeparator = function (index, classNames, // eslint-disable-line deprecation/deprecation\n    top, fromSection) {\n        if (fromSection || index > 0) {\n            return (React.createElement(\"li\", { role: \"separator\", key: 'separator-' + index + (top === undefined ? '' : top ? '-top' : '-bottom'), className: classNames.divider, \"aria-hidden\": \"true\" }));\n        }\n        return null;\n    };\n    var renderNormalItem = function (item, classNames, // eslint-disable-line deprecation/deprecation\n    index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n        if (item.onRender) {\n            return item.onRender(__assign({ 'aria-posinset': focusableElementIndex + 1, 'aria-setsize': totalItemCount }, item), dismiss);\n        }\n        var contextualMenuItemAs = props.contextualMenuItemAs;\n        var commonProps = {\n            item: item,\n            classNames: classNames,\n            index: index,\n            focusableElementIndex: focusableElementIndex,\n            totalItemCount: totalItemCount,\n            hasCheckmarks: hasCheckmarks,\n            hasIcons: hasIcons,\n            contextualMenuItemAs: contextualMenuItemAs,\n            onItemMouseEnter: onItemMouseEnterBase,\n            onItemMouseLeave: onMouseItemLeave,\n            onItemMouseMove: onItemMouseMoveBase,\n            onItemMouseDown: onItemMouseDown,\n            executeItemClick: executeItemClick,\n            onItemKeyDown: onItemKeyDown,\n            expandedMenuItemKey: expandedMenuItemKey,\n            openSubMenu: openSubMenu,\n            dismissSubMenu: onSubMenuDismiss,\n            dismissMenu: dismiss,\n        };\n        if (item.href) {\n            var ContextualMenuAnchorAs = ContextualMenuAnchor;\n            if (item.contextualMenuItemWrapperAs) {\n                ContextualMenuAnchorAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuAnchorAs);\n            }\n            return React.createElement(ContextualMenuAnchorAs, __assign({}, commonProps, { onItemClick: onAnchorClick }));\n        }\n        if (item.split && hasSubmenu(item)) {\n            var ContextualMenuSplitButtonAs = ContextualMenuSplitButton;\n            if (item.contextualMenuItemWrapperAs) {\n                ContextualMenuSplitButtonAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuSplitButtonAs);\n            }\n            return (React.createElement(ContextualMenuSplitButtonAs, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase, onTap: cancelSubMenuTimer })));\n        }\n        var ContextualMenuButtonAs = ContextualMenuButton;\n        if (item.contextualMenuItemWrapperAs) {\n            ContextualMenuButtonAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuButtonAs);\n        }\n        return React.createElement(ContextualMenuButtonAs, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase }));\n    };\n    var renderHeaderMenuItem = function (item, \n    // eslint-disable-next-line deprecation/deprecation\n    itemClassNames, \n    // eslint-disable-next-line deprecation/deprecation\n    menuClassNames, index, hasCheckmarks, hasIcons) {\n        var ChildrenRenderer = ContextualMenuItem;\n        if (item.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(item.contextualMenuItemAs, ChildrenRenderer);\n        }\n        if (props.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(props.contextualMenuItemAs, ChildrenRenderer);\n        }\n        var itemProps = item.itemProps, id = item.id;\n        var divHtmlProperties = itemProps && getNativeProps(itemProps, divProperties);\n        return (\n        // eslint-disable-next-line deprecation/deprecation\n        React.createElement(\"div\", __assign({ id: id, className: menuClassNames.header }, divHtmlProperties, { style: item.style }),\n            React.createElement(ChildrenRenderer, __assign({ item: item, classNames: itemClassNames, index: index, onCheckmarkClick: hasCheckmarks ? onItemClick : undefined, hasIcons: hasIcons }, itemProps))));\n    };\n    //#endregion\n    //#region Main render\n    var isBeakVisible = props.isBeakVisible;\n    var items = props.items, labelElementId = props.labelElementId, id = props.id, className = props.className, beakWidth = props.beakWidth, directionalHint = props.directionalHint, directionalHintForRTL = props.directionalHintForRTL, alignTargetEdge = props.alignTargetEdge, gapSpace = props.gapSpace, coverTarget = props.coverTarget, ariaLabel = props.ariaLabel, doNotLayer = props.doNotLayer, target = props.target, bounds = props.bounds, useTargetWidth = props.useTargetWidth, useTargetAsMinWidth = props.useTargetAsMinWidth, directionalHintFixed = props.directionalHintFixed, shouldFocusOnMount = props.shouldFocusOnMount, shouldFocusOnContainer = props.shouldFocusOnContainer, title = props.title, styles = props.styles, theme = props.theme, calloutProps = props.calloutProps, _k = props.onRenderSubMenu, onRenderSubMenu = _k === void 0 ? onDefaultRenderSubMenu : _k, _l = props.onRenderMenuList, onRenderMenuList = _l === void 0 ? function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); } : _l, focusZoneProps = props.focusZoneProps, \n    // eslint-disable-next-line deprecation/deprecation\n    getMenuClassNames = props.getMenuClassNames;\n    var classNames = getMenuClassNames\n        ? getMenuClassNames(theme, className)\n        : getClassNames(styles, {\n            theme: theme,\n            className: className,\n        });\n    var hasIcons = itemsHaveIcons(items);\n    function itemsHaveIcons(contextualMenuItems) {\n        for (var _i = 0, contextualMenuItems_1 = contextualMenuItems; _i < contextualMenuItems_1.length; _i++) {\n            var item = contextualMenuItems_1[_i];\n            if (item.iconProps) {\n                return true;\n            }\n            if (item.itemType === ContextualMenuItemType.Section &&\n                item.sectionProps &&\n                itemsHaveIcons(item.sectionProps.items)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    var adjustedFocusZoneProps = __assign(__assign({ direction: FocusZoneDirection.vertical, handleTabKey: FocusZoneTabbableElements.all, isCircularNavigation: true, 'data-tabster': '{\"uncontrolled\": {}, \"focusable\": { \"excludeFromMover\": true }}' }, focusZoneProps), { className: css(classNames.root, (_a = props.focusZoneProps) === null || _a === void 0 ? void 0 : _a.className) });\n    var hasCheckmarks = canAnyMenuItemsCheck(items);\n    var submenuProps = expandedMenuItemKey && props.hidden !== true ? getSubmenuProps() : null;\n    isBeakVisible = isBeakVisible === undefined ? responsiveMode <= ResponsiveMode.medium : isBeakVisible;\n    /**\n     * When useTargetWidth is true, get the width of the target element and apply it for the context menu container\n     */\n    var contextMenuStyle;\n    var targetAsHtmlElement = targetRef.current;\n    if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {\n        var targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();\n        var targetWidth = targetBoundingRect.width - 2; /* Accounts for 1px border */\n        if (useTargetWidth) {\n            contextMenuStyle = {\n                width: targetWidth,\n            };\n        }\n        else if (useTargetAsMinWidth) {\n            contextMenuStyle = {\n                minWidth: targetWidth,\n            };\n        }\n    }\n    // The menu should only return if items were provided, if no items were provided then it should not appear.\n    if (items && items.length > 0) {\n        var totalItemCount_1 = getItemCount(items);\n        var calloutStyles_1 = classNames.subComponentStyles\n            ? classNames.subComponentStyles.callout\n            : undefined;\n        return (React.createElement(MenuContext.Consumer, null, function (menuContext) { return (React.createElement(Callout, __assign({ styles: calloutStyles_1, onRestoreFocus: tryFocusPreviousActiveElement }, calloutProps, { target: target || menuContext.target, isBeakVisible: isBeakVisible, beakWidth: beakWidth, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, gapSpace: gapSpace, coverTarget: coverTarget, doNotLayer: doNotLayer, className: css('ms-ContextualMenu-Callout', calloutProps && calloutProps.className), setInitialFocus: shouldFocusOnMount, onDismiss: props.onDismiss || menuContext.onDismiss, onScroll: onScroll, bounds: bounds, directionalHintFixed: directionalHintFixed, alignTargetEdge: alignTargetEdge, hidden: props.hidden || menuContext.hidden, ref: forwardedRef }),\n            React.createElement(\"div\", { style: contextMenuStyle, ref: hostElement, id: id, className: classNames.container, tabIndex: shouldFocusOnContainer ? 0 : -1, onKeyDown: onMenuKeyDown, onKeyUp: onKeyUp, onFocusCapture: onMenuFocusCapture, \"aria-label\": ariaLabel, \"aria-labelledby\": labelElementId, role: 'menu' },\n                title && React.createElement(\"div\", { className: classNames.title },\n                    \" \",\n                    title,\n                    \" \"),\n                items && items.length\n                    ? renderFocusZone(onRenderMenuList({\n                        ariaLabel: ariaLabel,\n                        items: items,\n                        totalItemCount: totalItemCount_1,\n                        hasCheckmarks: hasCheckmarks,\n                        hasIcons: hasIcons,\n                        defaultMenuItemRenderer: function (item) {\n                            return defaultMenuItemRenderer(item, classNames);\n                        },\n                        labelElementId: labelElementId,\n                    }, function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); }), adjustedFocusZoneProps)\n                    : null,\n                submenuProps && onRenderSubMenu(submenuProps, onDefaultRenderSubMenu)),\n            React.createElement(FocusRects, null))); }));\n    }\n    else {\n        return null;\n    }\n    //#endregion\n}), function (prevProps, newProps) {\n    if (!newProps.shouldUpdateWhenHidden && prevProps.hidden && newProps.hidden) {\n        // Do not update when hidden.\n        return true;\n    }\n    return shallowCompare(prevProps, newProps);\n});\nContextualMenuBase.displayName = 'ContextualMenuBase';\n/**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\nfunction isAltOrMeta(ev) {\n    // eslint-disable-next-line deprecation/deprecation\n    return ev.which === KeyCodes.alt || ev.key === 'Meta';\n}\nfunction onItemMouseDown(item, ev) {\n    var _a;\n    (_a = item.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(item, item, ev);\n}\nfunction onDefaultRenderSubMenu(subMenuProps, defaultRender) {\n    throw Error('ContextualMenuBase: onRenderSubMenu callback is null or undefined. ' +\n        'Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.');\n}\n/**\n * Returns the item that matches a given key if any.\n * @param key - The key of the item to match\n * @param items - The items to look for the key\n */\nfunction findItemByKeyFromItems(key, items) {\n    for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {\n        var item = items_3[_i];\n        if (item.itemType === ContextualMenuItemType.Section && item.sectionProps) {\n            var match = findItemByKeyFromItems(key, item.sectionProps.items);\n            if (match) {\n                return match;\n            }\n        }\n        else if (item.key && item.key === key) {\n            return item;\n        }\n    }\n}\nfunction getOnClickWithOverrideTarget(onClick, target) {\n    return onClick\n        ? function (ev, item) {\n            overrideTarget(ev, target);\n            return onClick(ev, item);\n        }\n        : onClick;\n}\nfunction overrideTarget(ev, target) {\n    if (ev && target) {\n        ev.persist();\n        if (target instanceof Event) {\n            ev.target = target.target;\n        }\n        else if (target instanceof Element) {\n            ev.target = target;\n        }\n    }\n}\n//# sourceMappingURL=ContextualMenu.base.js.map","import { getDividerClassNames } from '../Divider/VerticalDivider.classNames';\nimport { getMenuItemStyles } from './ContextualMenu.cnstyles';\nimport { mergeStyleSets, getGlobalClassNames, getScreenSelector, ScreenWidthMaxMedium, hiddenContentStyle, } from '../../Styling';\nimport { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities';\nvar CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getSplitButtonVerticalDividerClassNames = memoizeFunction(\n/* eslint-disable deprecation/deprecation */\nfunction (theme) {\n    var _a;\n    return mergeStyleSets(getDividerClassNames(theme), {\n        /* eslint-enable deprecation/deprecation */\n        wrapper: {\n            position: 'absolute',\n            right: 28,\n            selectors: (_a = {},\n                _a[MediumScreenSelector] = {\n                    right: 32, // fontSize of the icon increased from 12px to 16px\n                },\n                _a),\n        },\n        divider: {\n            height: 16,\n            width: 1,\n        },\n    });\n});\nvar GlobalClassNames = {\n    item: 'ms-ContextualMenu-item',\n    divider: 'ms-ContextualMenu-divider',\n    root: 'ms-ContextualMenu-link',\n    isChecked: 'is-checked',\n    isExpanded: 'is-expanded',\n    isDisabled: 'is-disabled',\n    linkContent: 'ms-ContextualMenu-linkContent',\n    linkContentMenu: 'ms-ContextualMenu-linkContent',\n    icon: 'ms-ContextualMenu-icon',\n    iconColor: 'ms-ContextualMenu-iconColor',\n    checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon',\n    subMenuIcon: 'ms-ContextualMenu-submenuIcon',\n    label: 'ms-ContextualMenu-itemText',\n    secondaryText: 'ms-ContextualMenu-secondaryText',\n    splitMenu: 'ms-ContextualMenu-splitMenu',\n    screenReaderText: 'ms-ContextualMenu-screenReaderText',\n};\n/**\n * @deprecated Will be removed in \\>= 7.0.\n * This is a package-internal method that has been depended on.\n * It is being kept in this form for backwards compatibility.\n * @internal\n */\n// TODO: Audit perf. impact of and potentially remove memoizeFunction.\n// https://github.com/microsoft/fluentui/issues/5534\nexport var getItemClassNames = memoizeFunction(function (theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className) {\n    var _a, _b, _c, _d;\n    var styles = getMenuItemStyles(theme);\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return mergeStyleSets({\n        item: [classNames.item, styles.item, itemClassName],\n        divider: [classNames.divider, styles.divider, dividerClassName],\n        root: [\n            classNames.root,\n            styles.root,\n            checked && [classNames.isChecked, styles.rootChecked],\n            isAnchorLink && styles.anchorLink,\n            expanded && [classNames.isExpanded, styles.rootExpanded],\n            disabled && [classNames.isDisabled, styles.rootDisabled],\n            !disabled &&\n                !expanded && [\n                {\n                    selectors: (_a = {\n                            ':hover': styles.rootHovered,\n                            ':active': styles.rootPressed\n                        },\n                        // eslint-disable-next-line @fluentui/max-len\n                        _a[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus:hover\")] = styles.rootFocused,\n                        _a[\".\".concat(IsFocusVisibleClassName, \" &:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:hover\")] = {\n                            background: 'inherit;',\n                        },\n                        _a),\n                },\n            ],\n            className,\n        ],\n        splitPrimary: [\n            styles.root,\n            {\n                width: \"calc(100% - \".concat(CONTEXTUAL_SPLIT_MENU_MINWIDTH, \")\"),\n            },\n            checked && ['is-checked', styles.rootChecked],\n            (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled],\n            !(disabled || primaryDisabled) &&\n                !checked && [\n                {\n                    selectors: (_b = {\n                            ':hover': styles.rootHovered\n                        },\n                        // when hovering over the splitPrimary also affect the splitMenu\n                        _b[\":hover ~ .\".concat(classNames.splitMenu)] = styles.rootHovered,\n                        _b[':active'] = styles.rootPressed,\n                        // eslint-disable-next-line @fluentui/max-len\n                        _b[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus:hover\")] = styles.rootFocused,\n                        _b[\".\".concat(IsFocusVisibleClassName, \" &:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:hover\")] = {\n                            background: 'inherit;',\n                        },\n                        _b),\n                },\n            ],\n        ],\n        splitMenu: [\n            classNames.splitMenu,\n            styles.root,\n            {\n                flexBasis: '0',\n                padding: '0 8px',\n                minWidth: CONTEXTUAL_SPLIT_MENU_MINWIDTH,\n            },\n            expanded && ['is-expanded', styles.rootExpanded],\n            disabled && ['is-disabled', styles.rootDisabled],\n            !disabled &&\n                !expanded && [\n                {\n                    selectors: (_c = {\n                            ':hover': styles.rootHovered,\n                            ':active': styles.rootPressed\n                        },\n                        // eslint-disable-next-line @fluentui/max-len\n                        _c[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus:hover\")] = styles.rootFocused,\n                        _c[\".\".concat(IsFocusVisibleClassName, \" &:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:hover\")] = {\n                            background: 'inherit;',\n                        },\n                        _c),\n                },\n            ],\n        ],\n        anchorLink: styles.anchorLink,\n        linkContent: [classNames.linkContent, styles.linkContent],\n        linkContentMenu: [\n            classNames.linkContentMenu,\n            styles.linkContent,\n            {\n                justifyContent: 'center',\n            },\n        ],\n        icon: [\n            classNames.icon,\n            knownIcon && styles.iconColor,\n            styles.icon,\n            iconClassName,\n            disabled && [classNames.isDisabled, styles.iconDisabled],\n        ],\n        iconColor: styles.iconColor,\n        checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName],\n        subMenuIcon: [\n            classNames.subMenuIcon,\n            styles.subMenuIcon,\n            subMenuClassName,\n            expanded && { color: theme.palette.neutralPrimary },\n            disabled && [styles.iconDisabled],\n        ],\n        label: [classNames.label, styles.label],\n        secondaryText: [classNames.secondaryText, styles.secondaryText],\n        splitContainer: [\n            styles.splitButtonFlexContainer,\n            !disabled &&\n                !checked && [\n                {\n                    selectors: (_d = {},\n                        // eslint-disable-next-line @fluentui/max-len\n                        _d[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus:hover\")] = styles.rootFocused,\n                        _d),\n                },\n            ],\n        ],\n        screenReaderText: [\n            classNames.screenReaderText,\n            styles.screenReaderText,\n            hiddenContentStyle,\n            { visibility: 'hidden' },\n        ],\n    });\n});\n/**\n * Wrapper function for generating ContextualMenuItem classNames which adheres to\n * the getStyles API, but invokes memoized className generator function with\n * primitive values.\n *\n * @param props - the ContextualMenuItem style props used to generate its styles.\n */\nexport var getItemStyles = function (props) {\n    var theme = props.theme, disabled = props.disabled, expanded = props.expanded, checked = props.checked, isAnchorLink = props.isAnchorLink, knownIcon = props.knownIcon, itemClassName = props.itemClassName, dividerClassName = props.dividerClassName, iconClassName = props.iconClassName, subMenuClassName = props.subMenuClassName, primaryDisabled = props.primaryDisabled, className = props.className;\n    // eslint-disable-next-line deprecation/deprecation\n    return getItemClassNames(theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className);\n};\n//# sourceMappingURL=ContextualMenu.classNames.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getScreenSelector, ScreenWidthMaxMedium, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getMenuItemStyles = memoizeFunction(function (theme) {\n    var _a, _b, _c, _d, _e;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts, palette = theme.palette;\n    var ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n    var ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n    var ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n    var ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n    var menuItemStyles = {\n        item: [\n            fonts.medium,\n            {\n                color: semanticColors.bodyText,\n                position: 'relative',\n                boxSizing: 'border-box',\n            },\n        ],\n        divider: {\n            display: 'block',\n            height: '1px',\n            backgroundColor: ContextualMenuItemDividerColor,\n            position: 'relative',\n        },\n        root: [\n            getFocusStyle(theme),\n            fonts.medium,\n            {\n                color: semanticColors.bodyText,\n                backgroundColor: 'transparent',\n                border: 'none',\n                width: '100%',\n                height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                display: 'block',\n                cursor: 'pointer',\n                padding: '0px 8px 0 4px',\n                textAlign: 'left',\n            },\n        ],\n        rootDisabled: {\n            color: semanticColors.disabledBodyText,\n            cursor: 'default',\n            pointerEvents: 'none',\n            selectors: (_a = {},\n                _a[HighContrastSelector] = {\n                    // ensure disabled text looks different than enabled\n                    color: 'GrayText',\n                    opacity: 1,\n                },\n                _a),\n        },\n        rootHovered: {\n            backgroundColor: ContextualMenuItemBackgroundHoverColor,\n            color: ContextualMenuItemTextHoverColor,\n            selectors: {\n                '.ms-ContextualMenu-icon': {\n                    color: palette.themeDarkAlt,\n                },\n                '.ms-ContextualMenu-submenuIcon': {\n                    color: palette.neutralPrimary,\n                },\n            },\n        },\n        rootFocused: {\n            backgroundColor: palette.white,\n        },\n        rootChecked: {\n            selectors: {\n                '.ms-ContextualMenu-checkmarkIcon': {\n                    color: palette.neutralPrimary,\n                },\n            },\n        },\n        rootPressed: {\n            backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n            selectors: {\n                '.ms-ContextualMenu-icon': {\n                    color: palette.themeDark,\n                },\n                '.ms-ContextualMenu-submenuIcon': {\n                    color: palette.neutralPrimary,\n                },\n            },\n        },\n        rootExpanded: {\n            backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n            color: semanticColors.bodyTextChecked,\n            selectors: (_b = {\n                    '.ms-ContextualMenu-submenuIcon': (_c = {},\n                        _c[HighContrastSelector] = {\n                            // icons inside of anchor tags are not properly inheriting color in high contrast\n                            color: 'inherit',\n                        },\n                        _c)\n                },\n                _b[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n                _b),\n        },\n        linkContent: {\n            whiteSpace: 'nowrap',\n            height: 'inherit',\n            display: 'flex',\n            alignItems: 'center',\n            maxWidth: '100%',\n        },\n        anchorLink: {\n            padding: '0px 8px 0 4px',\n            textRendering: 'auto',\n            color: 'inherit',\n            letterSpacing: 'normal',\n            wordSpacing: 'normal',\n            textTransform: 'none',\n            textIndent: '0px',\n            textShadow: 'none',\n            textDecoration: 'none',\n            boxSizing: 'border-box',\n        },\n        label: {\n            margin: '0 4px',\n            verticalAlign: 'middle',\n            display: 'inline-block',\n            flexGrow: '1',\n            textOverflow: 'ellipsis',\n            whiteSpace: 'nowrap',\n            overflow: 'hidden',\n        },\n        secondaryText: {\n            color: theme.palette.neutralSecondary,\n            paddingLeft: '20px',\n            textAlign: 'right',\n        },\n        icon: {\n            display: 'inline-block',\n            minHeight: '1px',\n            maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n            fontSize: IconFontSizes.medium,\n            width: IconFontSizes.medium,\n            margin: '0 4px',\n            verticalAlign: 'middle',\n            flexShrink: '0',\n            selectors: (_d = {},\n                _d[MediumScreenSelector] = {\n                    fontSize: IconFontSizes.large,\n                    width: IconFontSizes.large,\n                },\n                _d),\n        },\n        iconColor: {\n            color: semanticColors.menuIcon,\n        },\n        iconDisabled: {\n            color: semanticColors.disabledBodyText,\n        },\n        checkmarkIcon: {\n            color: semanticColors.bodySubtext,\n        },\n        subMenuIcon: {\n            height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n            lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n            color: palette.neutralSecondary,\n            textAlign: 'center',\n            display: 'inline-block',\n            verticalAlign: 'middle',\n            flexShrink: '0',\n            fontSize: IconFontSizes.small,\n            selectors: (_e = {\n                    ':hover': {\n                        color: palette.neutralPrimary,\n                    },\n                    ':active': {\n                        color: palette.neutralPrimary,\n                    }\n                },\n                _e[MediumScreenSelector] = {\n                    fontSize: IconFontSizes.medium, // 16px\n                },\n                _e),\n        },\n        splitButtonFlexContainer: [\n            getFocusStyle(theme),\n            {\n                display: 'flex',\n                height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                flexWrap: 'nowrap',\n                justifyContent: 'center',\n                alignItems: 'flex-start',\n            },\n        ],\n    };\n    return concatStyleSets(menuItemStyles);\n});\n//# sourceMappingURL=ContextualMenu.cnstyles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { styled, composeRenderFunction } from '../../Utilities';\nimport { ContextualMenuBase } from './ContextualMenu.base';\nimport { getStyles } from './ContextualMenu.styles';\nfunction onRenderSubMenu(subMenuProps) {\n    return React.createElement(LocalContextualMenu, __assign({}, subMenuProps));\n}\n// This is to prevent cyclic import with ContextualMenu.base.tsx.\nvar LocalContextualMenu = styled(ContextualMenuBase, getStyles, function (props) { return ({\n    onRenderSubMenu: props.onRenderSubMenu\n        ? composeRenderFunction(props.onRenderSubMenu, onRenderSubMenu)\n        : onRenderSubMenu,\n}); }, { scope: 'ContextualMenu' });\n/**\n * ContextualMenu description\n */\nexport var ContextualMenu = LocalContextualMenu;\nContextualMenu.displayName = 'ContextualMenu';\n//# sourceMappingURL=ContextualMenu.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nimport { CONTEXTUAL_MENU_ITEM_HEIGHT } from './ContextualMenu.cnstyles';\nvar GlobalClassNames = {\n    root: 'ms-ContextualMenu',\n    container: 'ms-ContextualMenu-container',\n    list: 'ms-ContextualMenu-list',\n    header: 'ms-ContextualMenu-header',\n    title: 'ms-ContextualMenu-title',\n    isopen: 'is-open',\n};\nexport var getStyles = function (props) {\n    var className = props.className, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n    return {\n        root: [\n            theme.fonts.medium,\n            classNames.root,\n            classNames.isopen,\n            {\n                backgroundColor: semanticColors.menuBackground,\n                minWidth: '180px',\n            },\n            className,\n        ],\n        container: [\n            classNames.container,\n            {\n                selectors: {\n                    ':focus': { outline: 0 },\n                },\n            },\n        ],\n        list: [\n            classNames.list,\n            classNames.isopen,\n            {\n                listStyleType: 'none',\n                margin: '0',\n                padding: '0',\n            },\n        ],\n        header: [\n            classNames.header,\n            fonts.small,\n            {\n                fontWeight: FontWeights.semibold,\n                color: semanticColors.menuHeader,\n                background: 'none',\n                backgroundColor: 'transparent',\n                border: 'none',\n                height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n                cursor: 'default',\n                padding: '0px 6px',\n                userSelect: 'none',\n                textAlign: 'left',\n            },\n        ],\n        title: [\n            classNames.title,\n            {\n                fontSize: fonts.mediumPlus.fontSize,\n                paddingRight: '14px',\n                paddingLeft: '14px',\n                paddingBottom: '5px',\n                paddingTop: '5px',\n                backgroundColor: semanticColors.menuItemBackgroundPressed,\n            },\n        ],\n        subComponentStyles: {\n            callout: {\n                root: {\n                    boxShadow: effects.elevation8,\n                },\n            },\n            menuItem: {},\n        },\n    };\n};\n//# sourceMappingURL=ContextualMenu.styles.js.map","export { DirectionalHint } from '../../common/DirectionalHint';\n/**\n * {@docCategory ContextualMenu}\n */\nexport var ContextualMenuItemType;\n(function (ContextualMenuItemType) {\n    ContextualMenuItemType[ContextualMenuItemType[\"Normal\"] = 0] = \"Normal\";\n    ContextualMenuItemType[ContextualMenuItemType[\"Divider\"] = 1] = \"Divider\";\n    ContextualMenuItemType[ContextualMenuItemType[\"Header\"] = 2] = \"Header\";\n    ContextualMenuItemType[ContextualMenuItemType[\"Section\"] = 3] = \"Section\";\n})(ContextualMenuItemType || (ContextualMenuItemType = {}));\n//# sourceMappingURL=ContextualMenu.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nvar defaultIconRenderer = function (props) {\n    var item = props.item, classNames = props.classNames;\n    var iconProps = item.iconProps;\n    return React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon }));\n};\nvar renderItemIcon = function (props) {\n    var item = props.item, hasIcons = props.hasIcons;\n    if (!hasIcons) {\n        return null;\n    }\n    if (item.onRenderIcon) {\n        return item.onRenderIcon(props, defaultIconRenderer);\n    }\n    return defaultIconRenderer(props);\n};\nvar renderCheckMarkIcon = function (_a) {\n    var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;\n    var isItemChecked = getIsChecked(item);\n    if (onCheckmarkClick) {\n        // Ensures that the item is passed as the first argument to the checkmark click callback.\n        var onClick = function (e) { return onCheckmarkClick(item, e); };\n        return (React.createElement(Icon, { iconName: item.canCheck !== false && isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, \n            // eslint-disable-next-line react/jsx-no-bind\n            onClick: onClick }));\n    }\n    return null;\n};\nvar renderItemName = function (_a) {\n    var item = _a.item, classNames = _a.classNames;\n    /* eslint-disable deprecation/deprecation */\n    if (item.text || item.name) {\n        return React.createElement(\"span\", { className: classNames.label }, item.text || item.name);\n    }\n    /* eslint-enable deprecation/deprecation */\n    return null;\n};\nvar renderSecondaryText = function (_a) {\n    var item = _a.item, classNames = _a.classNames;\n    if (item.secondaryText) {\n        return React.createElement(\"span\", { className: classNames.secondaryText }, item.secondaryText);\n    }\n    return null;\n};\nvar renderSubMenuIcon = function (_a) {\n    var item = _a.item, classNames = _a.classNames, theme = _a.theme;\n    if (hasSubmenu(item)) {\n        return (React.createElement(Icon, __assign({ iconName: getRTL(theme) ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon })));\n    }\n    return null;\n};\nvar ContextualMenuItemBase = /** @class */ (function (_super) {\n    __extends(ContextualMenuItemBase, _super);\n    function ContextualMenuItemBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this.openSubMenu = function () {\n            var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget;\n            if (getSubmenuTarget) {\n                var submenuTarget = getSubmenuTarget();\n                if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n                    openSubMenu(item, submenuTarget);\n                }\n            }\n        };\n        _this.dismissSubMenu = function () {\n            var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu;\n            if (hasSubmenu(item) && dismissSubMenu) {\n                dismissSubMenu();\n            }\n        };\n        _this.dismissMenu = function (dismissAll) {\n            var dismissMenu = _this.props.dismissMenu;\n            if (dismissMenu) {\n                dismissMenu(undefined /* ev */, dismissAll);\n            }\n        };\n        initializeComponentRef(_this);\n        return _this;\n    }\n    ContextualMenuItemBase.prototype.render = function () {\n        var _a = this.props, item = _a.item, classNames = _a.classNames;\n        var renderContent = item.onRenderContent || this._renderLayout;\n        return (React.createElement(\"div\", { className: item.split ? classNames.linkContentMenu : classNames.linkContent }, renderContent(this.props, {\n            renderCheckMarkIcon: renderCheckMarkIcon,\n            renderItemIcon: renderItemIcon,\n            renderItemName: renderItemName,\n            renderSecondaryText: renderSecondaryText,\n            renderSubMenuIcon: renderSubMenuIcon,\n        })));\n    };\n    ContextualMenuItemBase.prototype._renderLayout = function (props, defaultRenders) {\n        return (React.createElement(React.Fragment, null,\n            defaultRenders.renderCheckMarkIcon(props),\n            defaultRenders.renderItemIcon(props),\n            defaultRenders.renderItemName(props),\n            defaultRenders.renderSecondaryText(props),\n            defaultRenders.renderSubMenuIcon(props)));\n    };\n    return ContextualMenuItemBase;\n}(React.Component));\nexport { ContextualMenuItemBase };\n//# sourceMappingURL=ContextualMenuItem.base.js.map","import { styled } from '../../Utilities';\nimport { ContextualMenuItemBase } from './ContextualMenuItem.base';\nimport { getItemStyles } from './ContextualMenu.classNames';\n/**\n * ContextualMenuItem description\n */\nexport var ContextualMenuItem = styled(ContextualMenuItemBase, getItemStyles, undefined, { scope: 'ContextualMenuItem' });\n//# sourceMappingURL=ContextualMenuItem.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuAnchor = /** @class */ (function (_super) {\n    __extends(ContextualMenuAnchor, _super);\n    function ContextualMenuAnchor() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._anchor = React.createRef();\n        _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n            return __assign(__assign({}, keytipProps), { hasMenu: true });\n        });\n        _this._getSubmenuTarget = function () {\n            return _this._anchor.current ? _this._anchor.current : undefined;\n        };\n        _this._onItemClick = function (ev) {\n            var _a = _this.props, item = _a.item, onItemClick = _a.onItemClick;\n            if (onItemClick) {\n                onItemClick(item, ev);\n            }\n        };\n        _this._renderAriaDescription = function (ariaDescription, className) {\n            // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n            return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n        };\n        return _this;\n    }\n    ContextualMenuAnchor.prototype.render = function () {\n        var _this = this;\n        var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, expandedMenuItemKey = _a.expandedMenuItemKey, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n        var ChildrenRenderer = ContextualMenuItem;\n        if (this.props.item.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(this.props.item.contextualMenuItemAs, ChildrenRenderer);\n        }\n        if (this.props.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(this.props.contextualMenuItemAs, ChildrenRenderer);\n        }\n        var anchorRel = item.rel;\n        if (item.target && item.target.toLowerCase() === '_blank') {\n            anchorRel = anchorRel ? anchorRel : 'nofollow noopener noreferrer'; // Safe default to prevent tabjacking\n        }\n        var itemHasSubmenu = hasSubmenu(item);\n        var nativeProps = getNativeProps(item, anchorProperties);\n        var disabled = isItemDisabled(item);\n        var itemProps = item.itemProps, ariaDescription = item.ariaDescription;\n        var keytipProps = item.keytipProps;\n        if (keytipProps && itemHasSubmenu) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n        // the description in it to be added to ariaDescribedBy\n        if (ariaDescription) {\n            this._ariaDescriptionId = getId();\n        }\n        var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, nativeProps['aria-describedby']);\n        var additionalItemProperties = {\n            'aria-describedby': ariaDescribedByIds,\n        };\n        return (React.createElement(\"div\", null,\n            React.createElement(KeytipData, { keytipProps: item.keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"a\", __assign({}, additionalItemProperties, nativeProps, keytipAttributes, { ref: _this._anchor, href: item.href, target: item.target, rel: anchorRel, className: classNames.root, role: \"menuitem\", \"aria-haspopup\": itemHasSubmenu || undefined, \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, \"aria-disabled\": isItemDisabled(item), \n                // eslint-disable-next-line deprecation/deprecation\n                style: item.style, onClick: _this._onItemClick, onMouseEnter: _this._onItemMouseEnter, onMouseLeave: _this._onItemMouseLeave, onMouseMove: _this._onItemMouseMove, onKeyDown: itemHasSubmenu ? _this._onItemKeyDown : undefined }),\n                React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n                _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); })));\n    };\n    return ContextualMenuAnchor;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuAnchor };\n//# sourceMappingURL=ContextualMenuAnchor.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuButton = /** @class */ (function (_super) {\n    __extends(ContextualMenuButton, _super);\n    function ContextualMenuButton() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._btn = React.createRef();\n        _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n            return __assign(__assign({}, keytipProps), { hasMenu: true });\n        });\n        _this._renderAriaDescription = function (ariaDescription, className) {\n            // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n            return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n        };\n        _this._getSubmenuTarget = function () {\n            return _this._btn.current ? _this._btn.current : undefined;\n        };\n        return _this;\n    }\n    ContextualMenuButton.prototype.render = function () {\n        var _this = this;\n        var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, contextualMenuItemAs = _a.contextualMenuItemAs, expandedMenuItemKey = _a.expandedMenuItemKey, onItemMouseDown = _a.onItemMouseDown, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n        var ChildrenRenderer = ContextualMenuItem;\n        if (item.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(item.contextualMenuItemAs, ChildrenRenderer);\n        }\n        if (contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(contextualMenuItemAs, ChildrenRenderer);\n        }\n        var isChecked = getIsChecked(item);\n        var canCheck = isChecked !== null;\n        var defaultRole = getMenuItemAriaRole(item);\n        var itemHasSubmenu = hasSubmenu(item);\n        var itemProps = item.itemProps, ariaLabel = item.ariaLabel, ariaDescription = item.ariaDescription;\n        var buttonNativeProperties = getNativeProps(item, buttonProperties);\n        // Do not add the disabled attribute to the button so that it is focusable\n        delete buttonNativeProperties.disabled;\n        var itemRole = item.role || defaultRole;\n        // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n        // the description in it to be added to ariaDescribedBy\n        if (ariaDescription) {\n            this._ariaDescriptionId = getId();\n        }\n        var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, buttonNativeProperties['aria-describedby']);\n        var itemButtonProperties = {\n            className: classNames.root,\n            onClick: this._onItemClick,\n            onKeyDown: itemHasSubmenu ? this._onItemKeyDown : undefined,\n            onMouseEnter: this._onItemMouseEnter,\n            onMouseLeave: this._onItemMouseLeave,\n            onMouseDown: function (ev) {\n                return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n            },\n            onMouseMove: this._onItemMouseMove,\n            href: item.href,\n            title: item.title,\n            'aria-label': ariaLabel,\n            'aria-describedby': ariaDescribedByIds,\n            'aria-haspopup': itemHasSubmenu || undefined,\n            'aria-expanded': itemHasSubmenu ? item.key === expandedMenuItemKey : undefined,\n            'aria-posinset': focusableElementIndex + 1,\n            'aria-setsize': totalItemCount,\n            'aria-disabled': isItemDisabled(item),\n            'aria-checked': (itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio') && canCheck ? !!isChecked : undefined,\n            'aria-selected': itemRole === 'menuitem' && canCheck ? !!isChecked : undefined,\n            role: itemRole,\n            // eslint-disable-next-line deprecation/deprecation\n            style: item.style,\n        };\n        var keytipProps = item.keytipProps;\n        if (keytipProps && itemHasSubmenu) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        return (React.createElement(KeytipData, { keytipProps: keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"button\", __assign({ ref: _this._btn }, buttonNativeProperties, itemButtonProperties, keytipAttributes),\n            React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n            _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n    };\n    return ContextualMenuButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuButton };\n//# sourceMappingURL=ContextualMenuButton.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, shallowCompare } from '../../../Utilities';\nvar ContextualMenuItemWrapper = /** @class */ (function (_super) {\n    __extends(ContextualMenuItemWrapper, _super);\n    function ContextualMenuItemWrapper(props) {\n        var _this = _super.call(this, props) || this;\n        _this._onItemMouseEnter = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n            if (onItemMouseEnter) {\n                onItemMouseEnter(item, ev, ev.currentTarget);\n            }\n        };\n        _this._onItemClick = function (ev) {\n            var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n            if (onItemClickBase) {\n                onItemClickBase(item, ev, ev.currentTarget);\n            }\n        };\n        _this._onItemMouseLeave = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseLeave = _a.onItemMouseLeave;\n            if (onItemMouseLeave) {\n                onItemMouseLeave(item, ev);\n            }\n        };\n        _this._onItemKeyDown = function (ev) {\n            var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n            if (onItemKeyDown) {\n                onItemKeyDown(item, ev);\n            }\n        };\n        _this._onItemMouseMove = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n            if (onItemMouseMove) {\n                onItemMouseMove(item, ev, ev.currentTarget);\n            }\n        };\n        _this._getSubmenuTarget = function () {\n            return undefined;\n        };\n        initializeComponentRef(_this);\n        return _this;\n    }\n    ContextualMenuItemWrapper.prototype.shouldComponentUpdate = function (newProps) {\n        return !shallowCompare(newProps, this.props);\n    };\n    return ContextualMenuItemWrapper;\n}(React.Component));\nexport { ContextualMenuItemWrapper };\n//# sourceMappingURL=ContextualMenuItemWrapper.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, KeyCodes, mergeAriaAttributeValues, memoizeFunction, Async, EventGroup, getId, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { getSplitButtonVerticalDividerClassNames } from '../ContextualMenu.classNames';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, getMenuItemAriaRole, hasSubmenu, isItemDisabled } from '../../../utilities/contextualMenu/index';\nimport { VerticalDivider } from '../../../Divider';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nvar TouchIdleDelay = 500; /* ms */\nvar ContextualMenuSplitButton = /** @class */ (function (_super) {\n    __extends(ContextualMenuSplitButton, _super);\n    function ContextualMenuSplitButton(props) {\n        var _this = _super.call(this, props) || this;\n        _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n            return __assign(__assign({}, keytipProps), { hasMenu: true });\n        });\n        _this._onItemKeyDown = function (ev) {\n            var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n            // eslint-disable-next-line deprecation/deprecation\n            if (ev.which === KeyCodes.enter) {\n                _this._executeItemClick(ev);\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n            else if (onItemKeyDown) {\n                onItemKeyDown(item, ev);\n            }\n        };\n        _this._getSubmenuTarget = function () {\n            return _this._splitButton;\n        };\n        _this._renderAriaDescription = function (ariaDescription, className) {\n            // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n            return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n        };\n        _this._onItemMouseEnterPrimary = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n            if (onItemMouseEnter) {\n                onItemMouseEnter(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n            }\n        };\n        _this._onItemMouseEnterIcon = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n            if (onItemMouseEnter) {\n                onItemMouseEnter(item, ev, _this._splitButton);\n            }\n        };\n        _this._onItemMouseMovePrimary = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n            if (onItemMouseMove) {\n                onItemMouseMove(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n            }\n        };\n        _this._onItemMouseMoveIcon = function (ev) {\n            var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n            if (onItemMouseMove) {\n                onItemMouseMove(item, ev, _this._splitButton);\n            }\n        };\n        _this._onIconItemClick = function (ev) {\n            var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n            if (onItemClickBase) {\n                onItemClickBase(item, ev, (_this._splitButton ? _this._splitButton : ev.currentTarget));\n            }\n        };\n        _this._executeItemClick = function (ev) {\n            var _a = _this.props, item = _a.item, executeItemClick = _a.executeItemClick, onItemClick = _a.onItemClick;\n            if (item.disabled || item.isDisabled) {\n                return;\n            }\n            if (_this._processingTouch && !item.canCheck && onItemClick) {\n                return onItemClick(item, ev);\n            }\n            if (executeItemClick) {\n                executeItemClick(item, ev);\n            }\n        };\n        _this._onTouchStart = function (ev) {\n            if (_this._splitButton && !('onpointerdown' in _this._splitButton)) {\n                _this._handleTouchAndPointerEvent(ev);\n            }\n        };\n        _this._onPointerDown = function (ev) {\n            if (ev.pointerType === 'touch') {\n                _this._handleTouchAndPointerEvent(ev);\n                ev.preventDefault();\n                ev.stopImmediatePropagation();\n            }\n        };\n        _this._async = new Async(_this);\n        _this._events = new EventGroup(_this);\n        _this._dismissLabelId = getId();\n        return _this;\n    }\n    ContextualMenuSplitButton.prototype.componentDidMount = function () {\n        if (this._splitButton && 'onpointerdown' in this._splitButton) {\n            this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);\n        }\n    };\n    ContextualMenuSplitButton.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n        this._events.dispose();\n    };\n    ContextualMenuSplitButton.prototype.render = function () {\n        var _this = this;\n        var _a;\n        var _b = this.props, item = _b.item, classNames = _b.classNames, index = _b.index, focusableElementIndex = _b.focusableElementIndex, totalItemCount = _b.totalItemCount, hasCheckmarks = _b.hasCheckmarks, hasIcons = _b.hasIcons, onItemMouseLeave = _b.onItemMouseLeave, expandedMenuItemKey = _b.expandedMenuItemKey;\n        var itemHasSubmenu = hasSubmenu(item);\n        var keytipProps = item.keytipProps;\n        if (keytipProps) {\n            keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n        }\n        // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n        // the description in it to be added to ariaDescribedBy\n        var ariaDescription = item.ariaDescription;\n        if (ariaDescription) {\n            this._ariaDescriptionId = getId();\n        }\n        var ariaChecked = (_a = getIsChecked(item)) !== null && _a !== void 0 ? _a : undefined;\n        return (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"div\", { \"data-ktp-target\": keytipAttributes['data-ktp-target'], ref: function (splitButton) { return (_this._splitButton = splitButton); }, role: getMenuItemAriaRole(item), \"aria-label\": item.ariaLabel, className: classNames.splitContainer, \"aria-disabled\": isItemDisabled(item), \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-haspopup\": true, \"aria-describedby\": mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? _this._ariaDescriptionId : undefined, keytipAttributes['aria-describedby']), \"aria-checked\": ariaChecked, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, onMouseEnter: _this._onItemMouseEnterPrimary, onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(_this, __assign(__assign({}, item), { subMenuProps: null, items: null })) : undefined, onMouseMove: _this._onItemMouseMovePrimary, onKeyDown: _this._onItemKeyDown, onClick: _this._executeItemClick, onTouchStart: _this._onTouchStart, tabIndex: 0, \"data-is-focusable\": true, \"aria-roledescription\": item['aria-roledescription'] },\n            _this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks, hasIcons),\n            _this._renderSplitDivider(item),\n            _this._renderSplitIconButton(item, classNames, index, keytipAttributes),\n            _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n    };\n    ContextualMenuSplitButton.prototype._renderSplitPrimaryButton = function (item, \n    // eslint-disable-next-line deprecation/deprecation\n    classNames, index, hasCheckmarks, hasIcons) {\n        var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemClick = _a.onItemClick;\n        var itemProps = {\n            key: item.key,\n            disabled: isItemDisabled(item) || item.primaryDisabled,\n            /* eslint-disable deprecation/deprecation */\n            name: item.name,\n            text: item.text || item.name,\n            secondaryText: item.secondaryText,\n            /* eslint-enable deprecation/deprecation */\n            className: classNames.splitPrimary,\n            canCheck: item.canCheck,\n            isChecked: item.isChecked,\n            checked: item.checked,\n            iconProps: item.iconProps,\n            id: this._dismissLabelId,\n            onRenderIcon: item.onRenderIcon,\n            data: item.data,\n            'data-is-focusable': false,\n        };\n        var itemComponentProps = item.itemProps;\n        return (React.createElement(\"button\", __assign({}, getNativeProps(itemProps, buttonProperties)),\n            React.createElement(ChildrenRenderer, __assign({ \"data-is-focusable\": false, item: itemProps, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons }, itemComponentProps))));\n    };\n    ContextualMenuSplitButton.prototype._renderSplitDivider = function (item) {\n        var getDividerClassNames = item.getSplitButtonVerticalDividerClassNames || getSplitButtonVerticalDividerClassNames;\n        return React.createElement(VerticalDivider, { getClassNames: getDividerClassNames });\n    };\n    ContextualMenuSplitButton.prototype._renderSplitIconButton = function (item, classNames, // eslint-disable-line deprecation/deprecation\n    index, keytipAttributes) {\n        var _a = this.props, onItemMouseLeave = _a.onItemMouseLeave, onItemMouseDown = _a.onItemMouseDown, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n        var ChildrenRenderer = ContextualMenuItem;\n        if (this.props.item.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(this.props.item.contextualMenuItemAs, ChildrenRenderer);\n        }\n        if (this.props.contextualMenuItemAs) {\n            ChildrenRenderer = composeComponentAs(this.props.contextualMenuItemAs, ChildrenRenderer);\n        }\n        var itemProps = {\n            onClick: this._onIconItemClick,\n            disabled: isItemDisabled(item),\n            className: classNames.splitMenu,\n            subMenuProps: item.subMenuProps,\n            submenuIconProps: item.submenuIconProps,\n            split: true,\n            key: item.key,\n            'aria-labelledby': this._dismissLabelId,\n        };\n        var buttonProps = __assign(__assign({}, getNativeProps(itemProps, buttonProperties)), {\n            onMouseEnter: this._onItemMouseEnterIcon,\n            onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,\n            onMouseDown: function (ev) {\n                return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n            },\n            onMouseMove: this._onItemMouseMoveIcon,\n            'data-is-focusable': false,\n            'data-ktp-execute-target': keytipAttributes['data-ktp-execute-target'],\n            'aria-haspopup': true,\n        });\n        var itemComponentProps = item.itemProps;\n        return (React.createElement(\"button\", __assign({}, buttonProps),\n            React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: itemProps, classNames: classNames, index: index, hasIcons: false, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: this._getSubmenuTarget }, itemComponentProps))));\n    };\n    ContextualMenuSplitButton.prototype._handleTouchAndPointerEvent = function (ev) {\n        var _this = this;\n        var onTap = this.props.onTap;\n        if (onTap) {\n            onTap(ev);\n        }\n        // If we already have an existing timeout from a previous touch/pointer event\n        // cancel that timeout so we can set a new one.\n        if (this._lastTouchTimeoutId) {\n            this._async.clearTimeout(this._lastTouchTimeoutId);\n            this._lastTouchTimeoutId = undefined;\n        }\n        this._processingTouch = true;\n        this._lastTouchTimeoutId = this._async.setTimeout(function () {\n            _this._processingTouch = false;\n            _this._lastTouchTimeoutId = undefined;\n        }, TouchIdleDelay);\n    };\n    return ContextualMenuSplitButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuSplitButton };\n//# sourceMappingURL=ContextualMenuSplitButton.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var VerticalDividerBase = React.forwardRef(function (props, ref) {\n    // eslint-disable-next-line deprecation/deprecation\n    var styles = props.styles, theme = props.theme, deprecatedGetClassNames = props.getClassNames, className = props.className;\n    var classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className: className });\n    return (React.createElement(\"span\", { className: classNames.wrapper, ref: ref },\n        React.createElement(\"span\", { className: classNames.divider })));\n});\nVerticalDividerBase.displayName = 'VerticalDividerBase';\n//# sourceMappingURL=VerticalDivider.base.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport var getDividerClassNames = memoizeFunction(\n// eslint-disable-next-line deprecation/deprecation\nfunction (theme) {\n    return mergeStyleSets({\n        wrapper: {\n            display: 'inline-flex',\n            height: '100%',\n            alignItems: 'center',\n        },\n        divider: {\n            width: 1,\n            height: '100%',\n            backgroundColor: theme.palette.neutralTertiaryAlt,\n        },\n    });\n});\n//# sourceMappingURL=VerticalDivider.classNames.js.map","import { getStyles } from './VerticalDivider.styles';\nimport { VerticalDividerBase } from './VerticalDivider.base';\nimport { styled } from '../../Utilities';\nexport var VerticalDivider = styled(VerticalDividerBase, getStyles, undefined, {\n    scope: 'VerticalDivider',\n});\n//# sourceMappingURL=VerticalDivider.js.map","export var getStyles = function (props) {\n    // eslint-disable-next-line deprecation/deprecation\n    var theme = props.theme, getClassNames = props.getClassNames, className = props.className;\n    if (!theme) {\n        throw new Error('Theme is undefined or null.');\n    }\n    if (getClassNames) {\n        var names = getClassNames(theme);\n        return {\n            wrapper: [names.wrapper],\n            divider: [names.divider],\n        };\n    }\n    return {\n        wrapper: [\n            {\n                display: 'inline-flex',\n                height: '100%',\n                alignItems: 'center',\n            },\n            className,\n        ],\n        divider: [\n            {\n                width: 1,\n                height: '100%',\n                backgroundColor: theme.palette.neutralTertiaryAlt,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=VerticalDivider.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getDocument, getNativeProps, getRTL, memoizeFunction, Customizer, FocusRectsProvider, } from '../../Utilities';\nimport { createTheme } from '../../Styling';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFabricTheme = memoizeFunction(function (theme, isRTL) { return createTheme(__assign(__assign({}, theme), { rtl: isRTL })); });\nvar getDir = function (_a) {\n    var theme = _a.theme, dir = _a.dir;\n    var contextDir = getRTL(theme) ? 'rtl' : 'ltr';\n    var pageDir = getRTL() ? 'rtl' : 'ltr';\n    var componentDir = dir ? dir : contextDir;\n    return {\n        // If Fabric dir !== contextDir\n        // Or If contextDir !== pageDir\n        // Then we need to set dir of the Fabric root\n        rootDir: componentDir !== contextDir || componentDir !== pageDir ? componentDir : dir,\n        // If dir !== contextDir || pageDir\n        // then set contextual theme around content\n        needsTheme: componentDir !== contextDir,\n    };\n};\nexport var FabricBase = React.forwardRef(function (props, ref) {\n    var className = props.className, theme = props.theme, applyTheme = props.applyTheme, applyThemeToBody = props.applyThemeToBody, styles = props.styles;\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        applyTheme: applyTheme,\n        className: className,\n    });\n    var rootElement = React.useRef(null);\n    useApplyThemeToBody(applyThemeToBody, classNames, rootElement);\n    return React.createElement(React.Fragment, null, useRenderedContent(props, classNames, rootElement, ref));\n});\nFabricBase.displayName = 'FabricBase';\nfunction useRenderedContent(props, _a, rootElement, ref) {\n    var root = _a.root;\n    var _b = props.as, Root = _b === void 0 ? 'div' : _b, dir = props.dir, theme = props.theme;\n    var divProps = getNativeProps(props, divProperties, ['dir']);\n    var _c = getDir(props), rootDir = _c.rootDir, needsTheme = _c.needsTheme;\n    var renderedContent = (React.createElement(FocusRectsProvider, { providerRef: rootElement },\n        React.createElement(Root, __assign({ dir: rootDir }, divProps, { className: root, ref: useMergedRefs(rootElement, ref) }))));\n    // Create the contextual theme if component direction does not match parent direction.\n    if (needsTheme) {\n        // Disabling ThemeProvider here because theme doesn't need to be re-provided by ThemeProvider if dir has changed.\n        renderedContent = (\n        // eslint-disable-next-line deprecation/deprecation\n        React.createElement(Customizer, { settings: { theme: getFabricTheme(theme, dir === 'rtl') } }, renderedContent));\n    }\n    return renderedContent;\n}\nfunction useApplyThemeToBody(applyThemeToBody, _a, rootElement) {\n    var bodyThemed = _a.bodyThemed;\n    React.useEffect(function () {\n        if (applyThemeToBody) {\n            var currentDoc_1 = getDocument(rootElement.current);\n            if (currentDoc_1) {\n                currentDoc_1.body.classList.add(bodyThemed);\n                return function () {\n                    currentDoc_1.body.classList.remove(bodyThemed);\n                };\n            }\n        }\n    }, [bodyThemed, applyThemeToBody, rootElement]);\n    return rootElement;\n}\n//# sourceMappingURL=Fabric.base.js.map","import { styled } from '../../Utilities';\nimport { FabricBase } from './Fabric.base';\nimport { getStyles } from './Fabric.styles';\n/**\n * @deprecated This component is deprecated as of `@fluentui/react` version 8. Use `ThemeProvider` instead.\n */\nexport var Fabric = styled(FabricBase, getStyles, undefined, {\n    scope: 'Fabric',\n});\n//# sourceMappingURL=Fabric.js.map","import { getGlobalClassNames } from '../../Styling';\nvar inheritFont = { fontFamily: 'inherit' };\nvar GlobalClassNames = {\n    root: 'ms-Fabric',\n    bodyThemed: 'ms-Fabric-bodyThemed',\n};\nexport var getStyles = function (props) {\n    var applyTheme = props.applyTheme, className = props.className, preventBlanketFontInheritance = props.preventBlanketFontInheritance, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                color: theme.palette.neutralPrimary,\n            },\n            !preventBlanketFontInheritance && {\n                '& button': inheritFont,\n                '& input': inheritFont,\n                '& textarea': inheritFont,\n            },\n            // apply theme to only if applyTheme is true\n            applyTheme && {\n                color: theme.semanticColors.bodyText,\n                backgroundColor: theme.semanticColors.bodyBackground,\n            },\n            className,\n        ],\n        bodyThemed: [\n            {\n                backgroundColor: theme.semanticColors.bodyBackground,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=Fabric.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getActiveElement, getEventTarget, elementContains, getNativeProps, divProperties, getFirstTabbable, getLastTabbable, getNextElement, focusAsync, getPropsWithDefaults, modalize, on, useHasMergeStylesShadowRootContext, } from '../../Utilities';\nimport { useId, useConst, useMergedRefs, useEventCallback, usePrevious, useUnmount } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nimport { useWindowEx } from '../../utilities/dom';\nvar COMPONENT_NAME = 'FocusTrapZone';\nvar DEFAULT_PROPS = {\n    disabled: false,\n    disableFirstFocus: false,\n    forceFocusInsideTrap: true,\n    isClickableOutsideFocusTrap: false,\n    // Hardcoding completely uncontrolled flag for proper interop with FluentUI V9.\n    'data-tabster': '{\"uncontrolled\": {\"completely\": true}}',\n};\nvar useComponentRef = function (componentRef, previouslyFocusedElement, focusFTZ) {\n    React.useImperativeHandle(componentRef, function () { return ({\n        get previouslyFocusedElement() {\n            return previouslyFocusedElement;\n        },\n        focus: focusFTZ,\n    }); }, [focusFTZ, previouslyFocusedElement]);\n};\nexport var FocusTrapZone = React.forwardRef(function (propsWithoutDefaults, ref) {\n    var _a;\n    var root = React.useRef(null);\n    var firstBumper = React.useRef(null);\n    var lastBumper = React.useRef(null);\n    var mergedRootRef = useMergedRefs(root, ref);\n    var doc = useDocument();\n    var win = useWindowEx();\n    var inShadow = useHasMergeStylesShadowRootContext();\n    var isFirstRender = (_a = usePrevious(false)) !== null && _a !== void 0 ? _a : true;\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var internalState = useConst({\n        hasFocus: false,\n        focusStackId: useId('ftz-', props.id),\n    });\n    var children = props.children, componentRef = props.componentRef, disabled = props.disabled, disableFirstFocus = props.disableFirstFocus, forceFocusInsideTrap = props.forceFocusInsideTrap, focusPreviouslyFocusedInnerElement = props.focusPreviouslyFocusedInnerElement, \n    // eslint-disable-next-line deprecation/deprecation\n    firstFocusableSelector = props.firstFocusableSelector, firstFocusableTarget = props.firstFocusableTarget, \n    // eslint-disable-next-line deprecation/deprecation\n    _b = props.disableRestoreFocus, \n    // eslint-disable-next-line deprecation/deprecation\n    disableRestoreFocus = _b === void 0 ? props.ignoreExternalFocusing : _b, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, enableAriaHiddenSiblings = props.enableAriaHiddenSiblings;\n    var bumperProps = {\n        'aria-hidden': true,\n        style: {\n            pointerEvents: 'none',\n            position: 'fixed', // 'fixed' prevents browsers from scrolling to bumpers when viewport does not contain them\n        },\n        tabIndex: disabled ? -1 : 0,\n        'data-is-visible': true,\n        'data-is-focus-trap-zone-bumper': true,\n    };\n    var focusElementAsync = React.useCallback(function (element) {\n        if (element !== firstBumper.current && element !== lastBumper.current) {\n            focusAsync(element);\n        }\n    }, []);\n    /**\n     * Callback to force focus into FTZ (named to avoid overlap with global focus() callback).\n     * useEventCallback always returns the same callback reference but updates the implementation\n     * every render to avoid stale captured values.\n     */\n    var focusFTZ = useEventCallback(function () {\n        if (!root.current) {\n            return; // not done mounting\n        }\n        var previouslyFocusedElementInTrapZone = internalState.previouslyFocusedElementInTrapZone;\n        if (focusPreviouslyFocusedInnerElement &&\n            previouslyFocusedElementInTrapZone &&\n            elementContains(root.current, previouslyFocusedElementInTrapZone)) {\n            // focus on the last item that had focus in the zone before we left the zone\n            focusElementAsync(previouslyFocusedElementInTrapZone);\n            return;\n        }\n        var firstFocusableChild = null;\n        if (typeof firstFocusableTarget === 'string') {\n            firstFocusableChild = root.current.querySelector(firstFocusableTarget);\n        }\n        else if (firstFocusableTarget) {\n            firstFocusableChild = firstFocusableTarget(root.current);\n        }\n        else if (firstFocusableSelector) {\n            var focusSelector = typeof firstFocusableSelector === 'string' ? firstFocusableSelector : firstFocusableSelector();\n            firstFocusableChild = root.current.querySelector('.' + focusSelector);\n        }\n        // Fall back to first element if query selector did not match any elements.\n        if (!firstFocusableChild) {\n            firstFocusableChild = getNextElement(root.current, root.current.firstChild, false, false, false, true, undefined, undefined, undefined, inShadow);\n        }\n        if (firstFocusableChild) {\n            focusElementAsync(firstFocusableChild);\n        }\n    });\n    /** Used in root div focus/blur handlers */\n    var focusBumper = function (isFirstBumper) {\n        if (disabled || !root.current) {\n            return;\n        }\n        var nextFocusable = isFirstBumper === internalState.hasFocus\n            ? getLastTabbable(root.current, lastBumper.current, true, false, inShadow)\n            : getFirstTabbable(root.current, firstBumper.current, true, false, inShadow);\n        if (nextFocusable) {\n            if (nextFocusable === firstBumper.current || nextFocusable === lastBumper.current) {\n                // This can happen when FTZ contains no tabbable elements.\n                // focusFTZ() will take care of finding a focusable element in FTZ.\n                focusFTZ();\n            }\n            else {\n                nextFocusable.focus();\n            }\n        }\n    };\n    /** Root div blur handler (doesn't need useCallback since it's for a native element) */\n    var onRootBlurCapture = function (ev) {\n        var _a;\n        (_a = props.onBlurCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n        var relatedTarget = ev.relatedTarget;\n        if (ev.relatedTarget === null) {\n            // In IE11, due to lack of support, event.relatedTarget is always\n            // null making every onBlur call to be \"outside\" of the root\n            // even when it's not. Using document.activeElement is another way\n            // for us to be able to get what the relatedTarget without relying\n            // on the event\n            relatedTarget = getActiveElement(doc);\n        }\n        if (!elementContains(root.current, relatedTarget)) {\n            internalState.hasFocus = false;\n        }\n    };\n    /** Root div focus handler (doesn't need useCallback since it's for a native element) */\n    var onRootFocusCapture = function (ev) {\n        var _a;\n        (_a = props.onFocusCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n        if (ev.target === firstBumper.current) {\n            focusBumper(true);\n        }\n        else if (ev.target === lastBumper.current) {\n            focusBumper(false);\n        }\n        internalState.hasFocus = true;\n        if (ev.target !== ev.currentTarget && !(ev.target === firstBumper.current || ev.target === lastBumper.current)) {\n            // every time focus changes within the trap zone, remember the focused element so that\n            // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))\n            internalState.previouslyFocusedElementInTrapZone = getEventTarget(ev.nativeEvent);\n        }\n    };\n    /** Called to restore focus on unmount or props change. (useEventCallback ensures latest prop values are used.) */\n    var returnFocusToInitiator = useEventCallback(function (elementToFocusOnDismiss) {\n        FocusTrapZone.focusStack = FocusTrapZone.focusStack.filter(function (value) { return internalState.focusStackId !== value; });\n        if (!doc) {\n            return;\n        }\n        // Do not use getActiveElement() here.\n        // When the FTZ is in shadow DOM focus returns to the\n        // shadow host rather than body so we need to be\n        // able to inspect that\n        var activeElement = doc.activeElement;\n        if (!disableRestoreFocus &&\n            typeof (elementToFocusOnDismiss === null || elementToFocusOnDismiss === void 0 ? void 0 : elementToFocusOnDismiss.focus) === 'function' &&\n            // only restore focus if the current focused element is within the FTZ, or if nothing is focused\n            (elementContains(root.current, activeElement) || activeElement === doc.body || activeElement.shadowRoot)) {\n            focusElementAsync(elementToFocusOnDismiss);\n        }\n    });\n    /** Called in window event handlers. (useEventCallback ensures latest prop values are used.) */\n    var forceFocusOrClickInTrap = useEventCallback(function (ev) {\n        // be sure to use the latest values here\n        if (disabled) {\n            return;\n        }\n        if (internalState.focusStackId === FocusTrapZone.focusStack.slice(-1)[0]) {\n            var targetElement = getEventTarget(ev);\n            if (targetElement && !elementContains(root.current, targetElement)) {\n                if (doc && getActiveElement(doc) === doc.body) {\n                    setTimeout(function () {\n                        if (doc && getActiveElement(doc) === doc.body) {\n                            focusFTZ();\n                            internalState.hasFocus = true; // set focus here since we stop event propagation\n                        }\n                    }, 0);\n                }\n                else {\n                    focusFTZ();\n                    internalState.hasFocus = true; // set focus here since we stop event propagation\n                }\n                ev.preventDefault();\n                ev.stopPropagation();\n            }\n        }\n    });\n    // Update window event handlers when relevant props change\n    React.useEffect(function () {\n        var disposables = [];\n        if (forceFocusInsideTrap) {\n            disposables.push(on(win, 'focus', forceFocusOrClickInTrap, true));\n        }\n        if (!isClickableOutsideFocusTrap) {\n            disposables.push(on(win, 'click', forceFocusOrClickInTrap, true));\n        }\n        return function () {\n            disposables.forEach(function (dispose) { return dispose(); });\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n    }, [forceFocusInsideTrap, isClickableOutsideFocusTrap, win]);\n    // On prop change or first render, focus the FTZ and update focusStack if appropriate\n    React.useEffect(function () {\n        // Do nothing if disabled, or if it's a re-render and forceFocusInsideTrap is false\n        // (to match existing behavior, the FTZ handles first focus even if forceFocusInsideTrap\n        // is false, though it's debatable whether it should do this)\n        if (disabled || (!isFirstRender && !forceFocusInsideTrap) || !root.current) {\n            return;\n        }\n        // Transition from forceFocusInsideTrap / FTZ disabled to enabled (or initial mount)\n        FocusTrapZone.focusStack.push(internalState.focusStackId);\n        var elementToFocusOnDismiss = props.elementToFocusOnDismiss || getActiveElement(doc);\n        if (!disableFirstFocus && !elementContains(root.current, elementToFocusOnDismiss)) {\n            focusFTZ();\n        }\n        // To match existing behavior, always return focus on cleanup (even if we didn't handle\n        // initial focus), but it's debatable whether that's correct\n        return function () { return returnFocusToInitiator(elementToFocusOnDismiss); };\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n    }, [forceFocusInsideTrap, disabled]);\n    // Handle modalization separately from first focus\n    React.useEffect(function () {\n        if (!disabled && enableAriaHiddenSiblings) {\n            var unmodalize = modalize(root.current);\n            return unmodalize;\n        }\n    }, [disabled, enableAriaHiddenSiblings, root]);\n    // Cleanup lifecyle method for internalState.\n    useUnmount(function () {\n        // Dispose of element references so the DOM Nodes can be garbage-collected\n        delete internalState.previouslyFocusedElementInTrapZone;\n    });\n    useComponentRef(componentRef, internalState.previouslyFocusedElementInTrapZone, focusFTZ);\n    return (React.createElement(\"div\", __assign({ \"aria-labelledby\": props.ariaLabelledBy }, getNativeProps(props, divProperties), { ref: mergedRootRef, onFocusCapture: onRootFocusCapture, onBlurCapture: onRootBlurCapture }),\n        React.createElement(\"div\", __assign({}, bumperProps, { ref: firstBumper })),\n        children,\n        React.createElement(\"div\", __assign({}, bumperProps, { ref: lastBumper }))));\n});\nFocusTrapZone.displayName = COMPONENT_NAME;\nFocusTrapZone.focusStack = [];\n//# sourceMappingURL=FocusTrapZone.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon } from '../../Styling';\nexport var getIconContent = memoizeFunction(function (iconName) {\n    var _a = getIcon(iconName) || {\n        subset: {},\n        code: undefined,\n    }, code = _a.code, subset = _a.subset;\n    if (!code) {\n        return null;\n    }\n    return {\n        children: code,\n        iconClassName: subset.className,\n        fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n        mergeImageProps: subset.mergeImageProps,\n    };\n}, undefined, true /*ignoreNullOrUndefinedResult */);\n/**\n * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var FontIcon = function (props) {\n    var iconName = props.iconName, className = props.className, _a = props.style, style = _a === void 0 ? {} : _a;\n    var iconContent = getIconContent(iconName) || {};\n    var iconClassName = iconContent.iconClassName, children = iconContent.children, fontFamily = iconContent.fontFamily, mergeImageProps = iconContent.mergeImageProps;\n    var nativeProps = getNativeProps(props, htmlElementProperties);\n    var accessibleName = props['aria-label'] || props.title;\n    var containerProps = props['aria-label'] || props['aria-labelledby'] || props.title\n        ? {\n            role: mergeImageProps ? undefined : 'img',\n        }\n        : {\n            'aria-hidden': true,\n        };\n    var finalChildren = children;\n    if (mergeImageProps) {\n        if (typeof children === 'object' && typeof children.props === 'object' && accessibleName) {\n            finalChildren = React.cloneElement(children, { alt: accessibleName });\n        }\n    }\n    return (React.createElement(\"i\", __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n        ? {\n            title: undefined,\n            'aria-label': undefined,\n        }\n        : {}), { className: css(MS_ICON, classNames.root, iconClassName, !iconName && classNames.placeholder, className), \n        // Apply the font family this way to ensure it doesn't get overridden by Fabric Core ms-Icon styles\n        // https://github.com/microsoft/fluentui/issues/10449\n        style: __assign({ fontFamily: fontFamily }, style) }), finalChildren));\n};\n/**\n * Memoized helper for rendering a FontIcon.\n * @param iconName - The name of the icon to use from the icon font.\n * @param className - Class name for styling the icon.\n * @param ariaLabel - Label for the icon for the benefit of screen readers.\n * {@docCategory Icon}\n */\nexport var getFontIcon = memoizeFunction(function (iconName, className, ariaLabel) {\n    return FontIcon({ iconName: iconName, className: className, 'aria-label': ariaLabel });\n});\n//# sourceMappingURL=FontIcon.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconType } from './Icon.types';\nimport { Image } from '../Image/Image';\nimport { ImageLoadState } from '../Image/Image.types';\nimport { getNativeProps, htmlElementProperties, classNamesFunction } from '../../Utilities';\nimport { getIconContent } from './FontIcon';\nvar getClassNames = classNamesFunction({\n    // Icon is used a lot by other components.\n    // It's likely to see expected cases which pass different className to the Icon.\n    // Therefore setting a larger cache size.\n    cacheSize: 100,\n});\nvar IconBase = /** @class */ (function (_super) {\n    __extends(IconBase, _super);\n    function IconBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._onImageLoadingStateChange = function (state) {\n            if (_this.props.imageProps && _this.props.imageProps.onLoadingStateChange) {\n                _this.props.imageProps.onLoadingStateChange(state);\n            }\n            if (state === ImageLoadState.error) {\n                _this.setState({ imageLoadError: true });\n            }\n        };\n        _this.state = {\n            imageLoadError: false,\n        };\n        return _this;\n    }\n    IconBase.prototype.render = function () {\n        var _a = this.props, children = _a.children, className = _a.className, styles = _a.styles, iconName = _a.iconName, imageErrorAs = _a.imageErrorAs, theme = _a.theme;\n        var isPlaceholder = typeof iconName === 'string' && iconName.length === 0;\n        var isImage = \n        // eslint-disable-next-line deprecation/deprecation\n        !!this.props.imageProps || this.props.iconType === IconType.image || this.props.iconType === IconType.Image;\n        var iconContent = getIconContent(iconName) || {};\n        var iconClassName = iconContent.iconClassName, iconContentChildren = iconContent.children, mergeImageProps = iconContent.mergeImageProps;\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            iconClassName: iconClassName,\n            isImage: isImage,\n            isPlaceholder: isPlaceholder,\n        });\n        var RootType = isImage ? 'span' : 'i';\n        var nativeProps = getNativeProps(this.props, htmlElementProperties, [\n            'aria-label',\n        ]);\n        var imageLoadError = this.state.imageLoadError;\n        var imageProps = __assign(__assign({}, this.props.imageProps), { onLoadingStateChange: this._onImageLoadingStateChange });\n        var ImageType = (imageLoadError && imageErrorAs) || Image;\n        // eslint-disable-next-line deprecation/deprecation\n        var ariaLabel = this.props['aria-label'] || this.props.ariaLabel;\n        var accessibleName = imageProps.alt || ariaLabel || this.props.title;\n        var hasName = !!(accessibleName ||\n            this.props['aria-labelledby'] ||\n            imageProps['aria-label'] ||\n            imageProps['aria-labelledby']);\n        var containerProps = hasName\n            ? {\n                role: isImage || mergeImageProps ? undefined : 'img',\n                'aria-label': isImage || mergeImageProps ? undefined : accessibleName,\n            }\n            : {\n                'aria-hidden': true,\n            };\n        var finalIconContentChildren = iconContentChildren;\n        if (mergeImageProps && iconContentChildren && typeof iconContentChildren === 'object' && accessibleName) {\n            finalIconContentChildren = React.cloneElement(iconContentChildren, {\n                alt: accessibleName,\n            });\n        }\n        return (React.createElement(RootType, __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n            ? {\n                title: undefined,\n                'aria-label': undefined,\n            }\n            : {}), { className: classNames.root }), isImage ? React.createElement(ImageType, __assign({}, imageProps)) : children || finalIconContentChildren));\n    };\n    return IconBase;\n}(React.Component));\nexport { IconBase };\n//# sourceMappingURL=Icon.base.js.map","import { styled } from '../../Utilities';\nimport { IconBase } from './Icon.base';\nimport { getStyles } from './Icon.styles';\n/**\n * Legacy Icon component which can be targeted by customization. It's recommended to use `FontIcon`\n * or `ImageIcon` instead, especially in scenarios where rendering performance is important.\n * {@docCategory Icon}\n */\nexport var Icon = styled(IconBase, getStyles, undefined, {\n    scope: 'Icon',\n}, true);\nIcon.displayName = 'Icon';\n//# sourceMappingURL=Icon.js.map","import { mergeStyleSets } from '../../Styling';\n/** Class names used in themeable and non-themeable Icon components */\nexport var classNames = mergeStyleSets({\n    root: {\n        display: 'inline-block',\n    },\n    placeholder: [\n        'ms-Icon-placeHolder',\n        {\n            width: '1em',\n        },\n    ],\n    image: [\n        'ms-Icon-imageContainer',\n        {\n            overflow: 'hidden',\n        },\n    ],\n});\n/** Class name used only in non-themeable Icon components */\nexport var MS_ICON = 'ms-Icon';\nexport var getStyles = function (props) {\n    var className = props.className, iconClassName = props.iconClassName, isPlaceholder = props.isPlaceholder, isImage = props.isImage, styles = props.styles;\n    return {\n        root: [\n            isPlaceholder && classNames.placeholder,\n            classNames.root,\n            isImage && classNames.image,\n            iconClassName,\n            className,\n            styles && styles.root,\n            // eslint-disable-next-line deprecation/deprecation\n            styles && styles.imageContainer,\n        ],\n    };\n};\n//# sourceMappingURL=Icon.styles.js.map","/**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n * {@docCategory Icon}\n */\nexport var IconType;\n(function (IconType) {\n    /**\n     * Render using the fabric icon font.\n     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n     */\n    IconType[IconType[\"default\"] = 0] = \"default\";\n    /**\n     * Render using an image, where imageProps would be used.\n     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n     */\n    IconType[IconType[\"image\"] = 1] = \"image\";\n    /**\n     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n     */\n    IconType[IconType[\"Default\"] = 100000] = \"Default\";\n    /**\n     * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n     */\n    IconType[IconType[\"Image\"] = 100001] = \"Image\";\n})(IconType || (IconType = {}));\n//# sourceMappingURL=Icon.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var ImageIcon = function (props) {\n    var className = props.className, imageProps = props.imageProps;\n    var nativeProps = getNativeProps(props, htmlElementProperties, [\n        'aria-label',\n        'aria-labelledby',\n        'title',\n        'aria-describedby',\n    ]);\n    var altText = imageProps.alt || props['aria-label'];\n    var hasName = altText ||\n        props['aria-labelledby'] ||\n        props.title ||\n        imageProps['aria-label'] ||\n        imageProps['aria-labelledby'] ||\n        imageProps.title;\n    // move naming or describing attributes from the container (where they are invalid) to the image\n    var imageNameProps = {\n        'aria-labelledby': props['aria-labelledby'],\n        'aria-describedby': props['aria-describedby'],\n        title: props.title,\n    };\n    var containerProps = hasName\n        ? {}\n        : {\n            'aria-hidden': true,\n        };\n    return (React.createElement(\"div\", __assign({}, containerProps, nativeProps, { className: css(MS_ICON, classNames.root, classNames.image, className) }),\n        React.createElement(Image, __assign({}, imageNameProps, imageProps, { alt: hasName ? altText : '' }))));\n};\n//# sourceMappingURL=ImageIcon.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nimport { useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar SVG_REGEX = /\\.svg$/i;\nvar KEY_PREFIX = 'fabricImage';\nfunction useLoadState(props, imageElement) {\n    var onLoadingStateChange = props.onLoadingStateChange, onLoad = props.onLoad, onError = props.onError, src = props.src;\n    var _a = React.useState(ImageLoadState.notLoaded), loadState = _a[0], setLoadState = _a[1];\n    useIsomorphicLayoutEffect(function () {\n        // If the src property changes, reset the load state\n        // (does nothing if the load state is already notLoaded)\n        setLoadState(ImageLoadState.notLoaded);\n    }, [src]);\n    // eslint-disable-next-line react-hooks/exhaustive-deps -- intended to run every render\n    React.useEffect(function () {\n        if (loadState === ImageLoadState.notLoaded) {\n            // testing if naturalWidth and naturalHeight are greater than zero is better than checking\n            // .complete, because .complete will also be set to true if the image breaks. However,\n            // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back\n            // to checking .complete for these images.\n            var isLoaded = imageElement.current\n                ? (src && imageElement.current.naturalWidth > 0 && imageElement.current.naturalHeight > 0) ||\n                    (imageElement.current.complete && SVG_REGEX.test(src))\n                : false;\n            if (isLoaded) {\n                setLoadState(ImageLoadState.loaded);\n            }\n        }\n    });\n    React.useEffect(function () {\n        onLoadingStateChange === null || onLoadingStateChange === void 0 ? void 0 : onLoadingStateChange(loadState);\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when loadState changes\n    }, [loadState]);\n    var onImageLoaded = React.useCallback(function (ev) {\n        onLoad === null || onLoad === void 0 ? void 0 : onLoad(ev);\n        if (src) {\n            setLoadState(ImageLoadState.loaded);\n        }\n    }, [src, onLoad]);\n    var onImageError = React.useCallback(function (ev) {\n        onError === null || onError === void 0 ? void 0 : onError(ev);\n        setLoadState(ImageLoadState.error);\n    }, [onError]);\n    return [loadState, onImageLoaded, onImageError];\n}\nexport var ImageBase = React.forwardRef(function (props, forwardedRef) {\n    var frameElement = React.useRef();\n    var imageElement = React.useRef();\n    var _a = useLoadState(props, imageElement), loadState = _a[0], onImageLoaded = _a[1], onImageError = _a[2];\n    var imageProps = getNativeProps(props, imgProperties, [\n        'width',\n        'height',\n    ]);\n    var src = props.src, alt = props.alt, width = props.width, height = props.height, _b = props.shouldFadeIn, shouldFadeIn = _b === void 0 ? true : _b, shouldStartVisible = props.shouldStartVisible, className = props.className, imageFit = props.imageFit, role = props.role, maximizeFrame = props.maximizeFrame, styles = props.styles, theme = props.theme, loading = props.loading;\n    var coverStyle = useCoverStyle(props, loadState, imageElement, frameElement);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        width: width,\n        height: height,\n        maximizeFrame: maximizeFrame,\n        shouldFadeIn: shouldFadeIn,\n        shouldStartVisible: shouldStartVisible,\n        isLoaded: loadState === ImageLoadState.loaded || (loadState === ImageLoadState.notLoaded && props.shouldStartVisible),\n        isLandscape: coverStyle === ImageCoverStyle.landscape,\n        isCenter: imageFit === ImageFit.center,\n        isCenterContain: imageFit === ImageFit.centerContain,\n        isCenterCover: imageFit === ImageFit.centerCover,\n        isContain: imageFit === ImageFit.contain,\n        isCover: imageFit === ImageFit.cover,\n        isNone: imageFit === ImageFit.none,\n        isError: loadState === ImageLoadState.error,\n        isNotImageFit: imageFit === undefined,\n    });\n    // If image dimensions aren't specified, the natural size of the image is used.\n    return (React.createElement(\"div\", { className: classNames.root, style: { width: width, height: height }, ref: frameElement },\n        React.createElement(\"img\", __assign({}, imageProps, { onLoad: onImageLoaded, onError: onImageError, key: KEY_PREFIX + props.src || '', className: classNames.image, ref: useMergedRefs(imageElement, forwardedRef), src: src, alt: alt, role: role, loading: loading }))));\n});\nImageBase.displayName = 'ImageBase';\nfunction useCoverStyle(props, loadState, imageElement, frameElement) {\n    var previousLoadState = React.useRef(loadState);\n    var coverStyle = React.useRef();\n    if (coverStyle === undefined ||\n        (previousLoadState.current === ImageLoadState.notLoaded && loadState === ImageLoadState.loaded)) {\n        coverStyle.current = computeCoverStyle(props, loadState, imageElement, frameElement);\n    }\n    previousLoadState.current = loadState;\n    return coverStyle.current;\n}\nfunction computeCoverStyle(props, loadState, imageElement, frameElement) {\n    var imageFit = props.imageFit, width = props.width, height = props.height;\n    // Do not compute cover style if it was already specified in props\n    if (props.coverStyle !== undefined) {\n        return props.coverStyle;\n    }\n    else if (loadState === ImageLoadState.loaded &&\n        (imageFit === ImageFit.cover ||\n            imageFit === ImageFit.contain ||\n            imageFit === ImageFit.centerContain ||\n            imageFit === ImageFit.centerCover) &&\n        imageElement.current &&\n        frameElement.current) {\n        // Determine the desired ratio using the width and height props.\n        // If those props aren't available, measure measure the frame.\n        var desiredRatio = void 0;\n        if (typeof width === 'number' &&\n            typeof height === 'number' &&\n            imageFit !== ImageFit.centerContain &&\n            imageFit !== ImageFit.centerCover) {\n            desiredRatio = width / height;\n        }\n        else {\n            desiredRatio = frameElement.current.clientWidth / frameElement.current.clientHeight;\n        }\n        // Examine the source image to determine its original ratio.\n        var naturalRatio = imageElement.current.naturalWidth / imageElement.current.naturalHeight;\n        // Should we crop from the top or the sides?\n        if (naturalRatio > desiredRatio) {\n            return ImageCoverStyle.landscape;\n        }\n    }\n    return ImageCoverStyle.portrait;\n}\n//# sourceMappingURL=Image.base.js.map","import { styled } from '../../Utilities';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\nexport var Image = styled(ImageBase, getStyles, undefined, {\n    scope: 'Image',\n}, true);\nImage.displayName = 'Image';\n//# sourceMappingURL=Image.js.map","import { AnimationClassNames, getGlobalClassNames } from '../../Styling';\nimport { getWindow } from '../../Utilities';\nvar GlobalClassNames = {\n    root: 'ms-Image',\n    rootMaximizeFrame: 'ms-Image--maximizeFrame',\n    image: 'ms-Image-image',\n    imageCenter: 'ms-Image-image--center',\n    imageContain: 'ms-Image-image--contain',\n    imageCover: 'ms-Image-image--cover',\n    imageCenterContain: 'ms-Image-image--centerContain',\n    imageCenterCover: 'ms-Image-image--centerCover',\n    imageNone: 'ms-Image-image--none',\n    imageLandscape: 'ms-Image-image--landscape',\n    imagePortrait: 'ms-Image-image--portrait',\n};\nexport var getStyles = function (props) {\n    var className = props.className, width = props.width, height = props.height, maximizeFrame = props.maximizeFrame, isLoaded = props.isLoaded, shouldFadeIn = props.shouldFadeIn, shouldStartVisible = props.shouldStartVisible, isLandscape = props.isLandscape, isCenter = props.isCenter, isContain = props.isContain, isCover = props.isCover, isCenterContain = props.isCenterContain, isCenterCover = props.isCenterCover, isNone = props.isNone, isError = props.isError, isNotImageFit = props.isNotImageFit, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var ImageFitStyles = {\n        position: 'absolute',\n        left: '50% /* @noflip */',\n        top: '50%',\n        transform: 'translate(-50%,-50%)', // @todo test RTL renders transform: translate(50%,-50%);\n    };\n    // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n    var window = getWindow();\n    var supportsObjectFit = window !== undefined &&\n        // eslint-disable-next-line @fluentui/max-len\n        // cast needed as vendor prefixed `msMaxTouchPoints` api is no longer part of TS lib declaration - introduced with TS 4.4\n        window.navigator.msMaxTouchPoints === undefined;\n    var fallbackObjectFitStyles = (isContain && isLandscape) || (isCover && !isLandscape)\n        ? { width: '100%', height: 'auto' }\n        : { width: 'auto', height: '100%' };\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                overflow: 'hidden',\n            },\n            maximizeFrame && [\n                classNames.rootMaximizeFrame,\n                {\n                    height: '100%',\n                    width: '100%',\n                },\n            ],\n            isLoaded && shouldFadeIn && !shouldStartVisible && AnimationClassNames.fadeIn400,\n            (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {\n                position: 'relative',\n            },\n            className,\n        ],\n        image: [\n            classNames.image,\n            {\n                display: 'block',\n                opacity: 0,\n            },\n            isLoaded && [\n                'is-loaded',\n                {\n                    opacity: 1,\n                },\n            ],\n            isCenter && [classNames.imageCenter, ImageFitStyles],\n            isContain && [\n                classNames.imageContain,\n                supportsObjectFit && {\n                    width: '100%',\n                    height: '100%',\n                    objectFit: 'contain',\n                },\n                !supportsObjectFit && fallbackObjectFitStyles,\n                !supportsObjectFit && ImageFitStyles,\n            ],\n            isCover && [\n                classNames.imageCover,\n                supportsObjectFit && {\n                    width: '100%',\n                    height: '100%',\n                    objectFit: 'cover',\n                },\n                !supportsObjectFit && fallbackObjectFitStyles,\n                !supportsObjectFit && ImageFitStyles,\n            ],\n            isCenterContain && [\n                classNames.imageCenterContain,\n                isLandscape && {\n                    maxWidth: '100%',\n                },\n                !isLandscape && {\n                    maxHeight: '100%',\n                },\n                ImageFitStyles,\n            ],\n            isCenterCover && [\n                classNames.imageCenterCover,\n                isLandscape && {\n                    maxHeight: '100%',\n                },\n                !isLandscape && {\n                    maxWidth: '100%',\n                },\n                ImageFitStyles,\n            ],\n            isNone && [\n                classNames.imageNone,\n                {\n                    width: 'auto',\n                    height: 'auto',\n                },\n            ],\n            isNotImageFit && [\n                !!width &&\n                    !height && {\n                    height: 'auto',\n                    width: '100%',\n                },\n                !width &&\n                    !!height && {\n                    height: '100%',\n                    width: 'auto',\n                },\n                !!width &&\n                    !!height && {\n                    height: '100%',\n                    width: '100%',\n                },\n            ],\n            isLandscape && classNames.imageLandscape,\n            !isLandscape && classNames.imagePortrait,\n            !isLoaded && 'is-notLoaded',\n            shouldFadeIn && 'is-fadeIn',\n            isError && 'is-error',\n        ],\n    };\n};\n//# sourceMappingURL=Image.styles.js.map","/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport var ImageFit;\n(function (ImageFit) {\n    /**\n     * The image is not scaled. The image is centered and cropped within the content box.\n     */\n    ImageFit[ImageFit[\"center\"] = 0] = \"center\";\n    /**\n     * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n     * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n     * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n     */\n    ImageFit[ImageFit[\"contain\"] = 1] = \"contain\";\n    /**\n     * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n     * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n     */\n    ImageFit[ImageFit[\"cover\"] = 2] = \"cover\";\n    /**\n     * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n     * frame will have empty space.\n     */\n    ImageFit[ImageFit[\"none\"] = 3] = \"none\";\n    /**\n     * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n     * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n     * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n     */\n    ImageFit[ImageFit[\"centerCover\"] = 4] = \"centerCover\";\n    /**\n     * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n     * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n     * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n     */\n    ImageFit[ImageFit[\"centerContain\"] = 5] = \"centerContain\";\n})(ImageFit || (ImageFit = {}));\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport var ImageCoverStyle;\n(function (ImageCoverStyle) {\n    /**\n     * The image will be shown at 100% height of container and the width will be scaled accordingly\n     */\n    ImageCoverStyle[ImageCoverStyle[\"landscape\"] = 0] = \"landscape\";\n    /**\n     * The image will be shown at 100% width of container and the height will be scaled accordingly\n     */\n    ImageCoverStyle[ImageCoverStyle[\"portrait\"] = 1] = \"portrait\";\n})(ImageCoverStyle || (ImageCoverStyle = {}));\n/**\n * {@docCategory Image}\n */\nexport var ImageLoadState;\n(function (ImageLoadState) {\n    /**\n     * The image has not yet been loaded, and there is no error yet.\n     */\n    ImageLoadState[ImageLoadState[\"notLoaded\"] = 0] = \"notLoaded\";\n    /**\n     * The image has been loaded successfully.\n     */\n    ImageLoadState[ImageLoadState[\"loaded\"] = 1] = \"loaded\";\n    /**\n     * An error has been encountered while loading the image.\n     */\n    ImageLoadState[ImageLoadState[\"error\"] = 2] = \"error\";\n    /**\n     * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n     */\n    ImageLoadState[ImageLoadState[\"errorLoaded\"] = 3] = \"errorLoaded\";\n})(ImageLoadState || (ImageLoadState = {}));\n//# sourceMappingURL=Image.types.js.map","import { __rest } from \"tslib\";\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\n/**\n * A small element to help the target component correctly read out its aria-describedby for its Keytip\n * {@docCategory Keytips}\n */\nexport var KeytipData = function (props) {\n    var _a;\n    var children = props.children, keytipDataProps = __rest(props, [\"children\"]);\n    var _b = useKeytipData(keytipDataProps), keytipId = _b.keytipId, ariaDescribedBy = _b.ariaDescribedBy;\n    return children((_a = {},\n        _a[DATAKTP_TARGET] = keytipId,\n        _a[DATAKTP_EXECUTE_TARGET] = keytipId,\n        _a['aria-describedby'] = ariaDescribedBy,\n        _a));\n};\n//# sourceMappingURL=KeytipData.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { useConst, useIsomorphicLayoutEffect, usePrevious } from '@fluentui/react-hooks';\nimport { mergeAriaAttributeValues } from '../../Utilities';\nimport { KeytipManager, mergeOverflows, sequencesToID, getAriaDescribedBy } from '../../utilities/keytips/index';\n/**\n * Hook that creates attributes for components which are enabled with Keytip.\n */\nexport function useKeytipData(options) {\n    var uniqueId = React.useRef();\n    var keytipProps = options.keytipProps\n        ? __assign({ disabled: options.disabled }, options.keytipProps) : undefined;\n    var keytipManager = useConst(KeytipManager.getInstance());\n    var prevOptions = usePrevious(options);\n    // useLayoutEffect used to strictly emulate didUpdate/didMount behavior\n    useIsomorphicLayoutEffect(function () {\n        if (uniqueId.current &&\n            keytipProps &&\n            ((prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.keytipProps) !== options.keytipProps || (prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.disabled) !== options.disabled)) {\n            keytipManager.update(keytipProps, uniqueId.current);\n        }\n    });\n    useIsomorphicLayoutEffect(function () {\n        // Register Keytip in KeytipManager\n        if (keytipProps) {\n            uniqueId.current = keytipManager.register(keytipProps);\n        }\n        return function () {\n            // Unregister Keytip in KeytipManager\n            keytipProps && keytipManager.unregister(keytipProps, uniqueId.current);\n        };\n        // this is meant to run only at mount, and updates are handled separately\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n    var nativeKeytipProps = {\n        ariaDescribedBy: undefined,\n        keytipId: undefined,\n    };\n    if (keytipProps) {\n        nativeKeytipProps = getKeytipData(keytipManager, keytipProps, options.ariaDescribedBy);\n    }\n    return nativeKeytipProps;\n}\n/**\n * Gets the aria- and data- attributes to attach to the component\n * @param keytipProps - options for Keytip\n * @param describedByPrepend - ariaDescribedBy value to prepend\n */\nfunction getKeytipData(keytipManager, keytipProps, describedByPrepend) {\n    // Add the parent overflow sequence if necessary\n    var newKeytipProps = keytipManager.addParentOverflow(keytipProps);\n    // Construct aria-describedby and data-ktp-id attributes\n    var ariaDescribedBy = mergeAriaAttributeValues(describedByPrepend, getAriaDescribedBy(newKeytipProps.keySequences));\n    var keySequences = __spreadArray([], newKeytipProps.keySequences, true);\n    if (newKeytipProps.overflowSetSequence) {\n        keySequences = mergeOverflows(keySequences, newKeytipProps.overflowSetSequence);\n    }\n    var keytipId = sequencesToID(keySequences);\n    return {\n        ariaDescribedBy: ariaDescribedBy,\n        keytipId: keytipId,\n    };\n}\n//# sourceMappingURL=useKeytipData.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction({\n    // Label is used a lot by other components.\n    // It's likely to see expected cases which pass different className to the Label.\n    // Therefore setting a larger cache size.\n    cacheSize: 100,\n});\nvar LabelBase = /** @class */ (function (_super) {\n    __extends(LabelBase, _super);\n    function LabelBase() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    LabelBase.prototype.render = function () {\n        var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'label' : _b, children = _a.children, className = _a.className, disabled = _a.disabled, styles = _a.styles, required = _a.required, theme = _a.theme;\n        var classNames = getClassNames(styles, {\n            className: className,\n            disabled: disabled,\n            required: required,\n            theme: theme,\n        });\n        return (React.createElement(RootType, __assign({}, getNativeProps(this.props, divProperties), { className: classNames.root }), children));\n    };\n    return LabelBase;\n}(React.Component));\nexport { LabelBase };\n//# sourceMappingURL=Label.base.js.map","import { styled } from '../../Utilities';\nimport { LabelBase } from './Label.base';\nimport { getStyles } from './Label.styles';\nexport var Label = styled(LabelBase, getStyles, undefined, {\n    scope: 'Label',\n});\n//# sourceMappingURL=Label.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getHighContrastNoAdjustStyle } from '../../Styling';\nexport var getStyles = function (props) {\n    var _a;\n    var theme = props.theme, className = props.className, disabled = props.disabled, required = props.required;\n    var semanticColors = theme.semanticColors;\n    // Tokens\n    var labelFontWeight = FontWeights.semibold;\n    var labelColor = semanticColors.bodyText;\n    var labelDisabledColor = semanticColors.disabledBodyText;\n    var labelRequiredStarColor = semanticColors.errorText;\n    return {\n        root: [\n            'ms-Label',\n            theme.fonts.medium,\n            {\n                fontWeight: labelFontWeight,\n                color: labelColor,\n                boxSizing: 'border-box',\n                boxShadow: 'none',\n                margin: 0,\n                display: 'block',\n                padding: '5px 0',\n                wordWrap: 'break-word',\n                overflowWrap: 'break-word',\n            },\n            disabled && {\n                color: labelDisabledColor,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                    _a),\n            },\n            required && {\n                selectors: {\n                    '::after': {\n                        content: \"' *'\",\n                        color: labelRequiredStarColor,\n                        paddingRight: 12,\n                    },\n                },\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=Label.styles.js.map","import { __assign } from \"tslib\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \"react-portal-compat-context\" uses v9 configs via path aliases\nimport { usePortalCompat } from '@fluentui/react-portal-compat-context';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Fabric } from '../../Fabric';\nimport { classNamesFunction, css, getDocument, setPortalAttribute, setVirtualParent, FocusRectsProvider, FocusRectsContext, IsFocusVisibleClassName, } from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer, getLayerHost, createDefaultLayerHost, } from './Layer.notification';\nimport { useIsomorphicLayoutEffect, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFocusVisibility = function (providerRef) {\n    if (providerRef === null || providerRef === void 0 ? void 0 : providerRef.current) {\n        return providerRef.current.classList.contains(IsFocusVisibleClassName);\n    }\n    return false;\n};\nexport var LayerBase = React.forwardRef(function (props, ref) {\n    var registerPortalEl = usePortalCompat();\n    var rootRef = React.useRef(null);\n    var mergedRef = useMergedRefs(rootRef, ref);\n    var layerRef = React.useRef();\n    var fabricElementRef = React.useRef(null);\n    var focusContext = React.useContext(FocusRectsContext);\n    // Tracks if the layer mount events need to be raised.\n    // Required to allow the DOM to render after the layer element is added.\n    var _a = React.useState(false), needRaiseLayerMount = _a[0], setNeedRaiseLayerMount = _a[1];\n    // Sets the focus visible className when the FocusRectsProvider for the layer is rendered\n    // This allows the current focus visibility style to be carried over to the layer content\n    var focusRectsRef = React.useCallback(function (el) {\n        var isFocusVisible = getFocusVisibility(focusContext === null || focusContext === void 0 ? void 0 : focusContext.providerRef);\n        if (el && isFocusVisible) {\n            el.classList.add(IsFocusVisibleClassName);\n        }\n    }, [focusContext]);\n    var children = props.children, className = props.className, eventBubblingEnabled = props.eventBubblingEnabled, fabricProps = props.fabricProps, hostId = props.hostId, insertFirst = props.insertFirst, _b = props.onLayerDidMount, onLayerDidMount = _b === void 0 ? function () { return undefined; } : _b, \n    // eslint-disable-next-line deprecation/deprecation\n    _c = props.onLayerMounted, \n    // eslint-disable-next-line deprecation/deprecation\n    onLayerMounted = _c === void 0 ? function () { return undefined; } : _c, onLayerWillUnmount = props.onLayerWillUnmount, styles = props.styles, theme = props.theme;\n    var fabricRef = useMergedRefs(fabricElementRef, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.ref, focusRectsRef);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        isNotHost: !hostId,\n    });\n    // Returns the user provided hostId props element, the default target selector,\n    // or undefined if document doesn't exist.\n    var getHost = function (doc, shadowRoot) {\n        var _a, _b;\n        if (shadowRoot === void 0) { shadowRoot = null; }\n        var root = shadowRoot !== null && shadowRoot !== void 0 ? shadowRoot : doc;\n        if (hostId) {\n            var layerHost = getLayerHost(hostId);\n            if (layerHost) {\n                return (_a = layerHost.rootRef.current) !== null && _a !== void 0 ? _a : null;\n            }\n            return (_b = root.getElementById(hostId)) !== null && _b !== void 0 ? _b : null;\n        }\n        else {\n            var defaultHostSelector = getDefaultTarget();\n            // Find the host.\n            var host = defaultHostSelector ? root.querySelector(defaultHostSelector) : null;\n            // If no host is available, create a container for injecting layers in.\n            // Having a container scopes layout computation.\n            if (!host) {\n                host = createDefaultLayerHost(doc, shadowRoot);\n            }\n            return host;\n        }\n    };\n    // Removes the current layer element's parentNode and runs onLayerWillUnmount prop if provided.\n    var removeLayerElement = function () {\n        onLayerWillUnmount === null || onLayerWillUnmount === void 0 ? void 0 : onLayerWillUnmount();\n        var elem = layerRef.current;\n        // Clear ref before removing from the DOM\n        layerRef.current = undefined;\n        if (elem && elem.parentNode) {\n            elem.parentNode.removeChild(elem);\n        }\n    };\n    // If a doc or host exists, it will remove and update layer parentNodes.\n    var createLayerElement = function () {\n        var _a, _b, _c, _d;\n        var doc = getDocument(rootRef.current);\n        var shadowRoot = ((_b = (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.getRootNode()) === null || _b === void 0 ? void 0 : _b.host)\n            ? (_c = rootRef === null || rootRef === void 0 ? void 0 : rootRef.current) === null || _c === void 0 ? void 0 : _c.getRootNode()\n            : undefined;\n        if (!doc || (!doc && !shadowRoot)) {\n            return;\n        }\n        var host = getHost(doc, shadowRoot);\n        if (!host) {\n            return;\n        }\n        // Tabster in V9 sets aria-hidden on the elements outside of the modal dialog. And it doesn't set aria-hidden\n        // on the virtual children of the dialog. But the host element itself is not a virtual child of a dialog, it\n        // might contain virtual children. noDirectAriaHidden flag makes Tabster to poke inside the element and set\n        // aria-hidden on the children (if they are not virtual children of the active V9 dialog) not on the host element.\n        // To avoid importing Tabster as a dependency here, we just set a flag on the host element which is checked by\n        // Tabster.\n        if (!host.__tabsterElementFlags) {\n            host.__tabsterElementFlags = {};\n        }\n        host.__tabsterElementFlags.noDirectAriaHidden = true;\n        // Remove and re-create any previous existing layer elements.\n        removeLayerElement();\n        var el = ((_d = host.ownerDocument) !== null && _d !== void 0 ? _d : doc).createElement('div');\n        el.className = classNames.root;\n        setPortalAttribute(el);\n        setVirtualParent(el, rootRef.current);\n        insertFirst ? host.insertBefore(el, host.firstChild) : host.appendChild(el);\n        layerRef.current = el;\n        setNeedRaiseLayerMount(true);\n    };\n    useIsomorphicLayoutEffect(function () {\n        createLayerElement();\n        // Check if the user provided a hostId prop and register the layer with the ID.\n        if (hostId) {\n            registerLayer(hostId, createLayerElement);\n        }\n        var unregisterPortalEl = layerRef.current ? registerPortalEl(layerRef.current) : undefined;\n        return function () {\n            if (unregisterPortalEl) {\n                unregisterPortalEl();\n            }\n            removeLayerElement();\n            if (hostId) {\n                unregisterLayer(hostId, createLayerElement);\n            }\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should run if the hostId updates.\n    }, [hostId]);\n    React.useEffect(function () {\n        if (layerRef.current && needRaiseLayerMount) {\n            onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n            onLayerDidMount === null || onLayerDidMount === void 0 ? void 0 : onLayerDidMount();\n            setNeedRaiseLayerMount(false);\n        }\n    }, [needRaiseLayerMount, onLayerMounted, onLayerDidMount]);\n    useDebugWarnings(props);\n    return (React.createElement(\"span\", { className: \"ms-layer\", ref: mergedRef }, layerRef.current &&\n        ReactDOM.createPortal(React.createElement(FocusRectsProvider, { layerRoot: true, providerRef: fabricRef },\n            React.createElement(Fabric, __assign({}, (!eventBubblingEnabled && getFilteredEvents()), fabricProps, { className: css(classNames.content, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.className), ref: fabricRef }), children)), layerRef.current)));\n});\nLayerBase.displayName = 'LayerBase';\nvar filteredEventProps;\nvar onFilterEvent = function (ev) {\n    // We should just be able to check ev.bubble here and only stop events that are bubbling up. However, even though\n    // mouseenter and mouseleave do NOT bubble up, they are showing up as bubbling. Therefore we stop events based on\n    // event name rather than ev.bubble.\n    if (ev.eventPhase === Event.BUBBLING_PHASE &&\n        ev.type !== 'mouseenter' &&\n        ev.type !== 'mouseleave' &&\n        ev.type !== 'touchstart' &&\n        ev.type !== 'touchend') {\n        ev.stopPropagation();\n    }\n};\nfunction getFilteredEvents() {\n    if (!filteredEventProps) {\n        filteredEventProps = {};\n        [\n            'onClick',\n            'onContextMenu',\n            'onDoubleClick',\n            'onDrag',\n            'onDragEnd',\n            'onDragEnter',\n            'onDragExit',\n            'onDragLeave',\n            'onDragOver',\n            'onDragStart',\n            'onDrop',\n            'onMouseDown',\n            'onMouseEnter',\n            'onMouseLeave',\n            'onMouseMove',\n            'onMouseOver',\n            'onMouseOut',\n            'onMouseUp',\n            'onTouchMove',\n            'onTouchStart',\n            'onTouchCancel',\n            'onTouchEnd',\n            'onKeyDown',\n            'onKeyPress',\n            'onKeyUp',\n            'onFocus',\n            'onBlur',\n            'onChange',\n            'onInput',\n            'onInvalid',\n            'onSubmit',\n        ].forEach(function (name) { return (filteredEventProps[name] = onFilterEvent); });\n    }\n    return filteredEventProps;\n}\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: 'Layer',\n            props: props,\n            deprecations: { onLayerMounted: 'onLayerDidMount' },\n        });\n    }\n}\n//# sourceMappingURL=Layer.base.js.map","import { styled } from '../../Utilities';\nimport { LayerBase } from './Layer.base';\nimport { getStyles } from './Layer.styles';\nexport var Layer = styled(LayerBase, getStyles, undefined, {\n    scope: 'Layer',\n    fields: ['hostId', 'theme', 'styles'],\n});\n//# sourceMappingURL=Layer.js.map","var _layersByHostId = {};\nvar _layerHostsById = {};\nvar defaultHostId = 'fluent-default-layer-host';\nvar _defaultHostSelector = \"#\".concat(defaultHostId);\n/**\n * Register a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function registerLayer(hostId, callback) {\n    if (!_layersByHostId[hostId]) {\n        _layersByHostId[hostId] = [];\n    }\n    _layersByHostId[hostId].push(callback);\n    var layerHosts = _layerHostsById[hostId];\n    if (layerHosts) {\n        for (var _i = 0, layerHosts_1 = layerHosts; _i < layerHosts_1.length; _i++) {\n            var layerHost = layerHosts_1[_i];\n            layerHost.notifyLayersChanged();\n        }\n    }\n}\n/**\n * Unregister a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function unregisterLayer(hostId, callback) {\n    var layers = _layersByHostId[hostId];\n    if (layers) {\n        var idx = layers.indexOf(callback);\n        if (idx >= 0) {\n            layers.splice(idx, 1);\n            if (layers.length === 0) {\n                delete _layersByHostId[hostId];\n            }\n        }\n    }\n    var layerHosts = _layerHostsById[hostId];\n    if (layerHosts) {\n        for (var _i = 0, layerHosts_2 = layerHosts; _i < layerHosts_2.length; _i++) {\n            var layerHost = layerHosts_2[_i];\n            layerHost.notifyLayersChanged();\n        }\n    }\n}\n/**\n * Gets the number of layers currently registered with a host id.\n * @param hostId - Id of the layer host.\n * @returns The number of layers currently registered with the host.\n */\nexport function getLayerCount(hostId) {\n    var layers = _layerHostsById[hostId];\n    return layers ? layers.length : 0;\n}\n/**\n * Gets the Layer Host instance associated with a hostId, if applicable.\n * @param hostId - Id of the layer host\n * @returns A component ref for the associated layer host.\n */\nexport function getLayerHost(hostId) {\n    var layerHosts = _layerHostsById[hostId];\n    return (layerHosts && layerHosts[0]) || undefined;\n}\n/**\n * Registers a Layer Host with an associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function registerLayerHost(hostId, layerHost) {\n    var layerHosts = _layerHostsById[hostId] || (_layerHostsById[hostId] = []);\n    // Insert this at the start of an array to avoid race conditions between mount and unmount.\n    // If a LayerHost is re-mounted, and mount of the new instance may occur before the unmount of the old one.\n    // Putting the new instance at the start of this array ensures that calls to `getLayerHost` will immediately\n    // get the new one even if the old one is around briefly.\n    layerHosts.unshift(layerHost);\n}\n/**\n * Unregisters a Layer Host from the associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function unregisterLayerHost(hostId, layerHost) {\n    var layerHosts = _layerHostsById[hostId];\n    if (layerHosts) {\n        var idx = layerHosts.indexOf(layerHost);\n        if (idx >= 0) {\n            layerHosts.splice(idx, 1);\n        }\n        if (layerHosts.length === 0) {\n            delete _layerHostsById[hostId];\n        }\n    }\n}\n/**\n * When no default layer host is provided, this function is executed to create the default host.\n */\nexport function createDefaultLayerHost(doc, shadowRoot) {\n    if (shadowRoot === void 0) { shadowRoot = null; }\n    var host = doc.createElement('div');\n    host.setAttribute('id', defaultHostId);\n    host.style.cssText = 'position:fixed;z-index:1000000';\n    if (shadowRoot) {\n        shadowRoot.appendChild(host);\n    }\n    else {\n        doc === null || doc === void 0 ? void 0 : doc.body.appendChild(host);\n    }\n    // doc?.body.appendChild(host);\n    return host;\n}\n/**\n * This function can be optionally called to clean up the default layer host as needed.\n */\nexport function cleanupDefaultLayerHost(doc, shadowRoot) {\n    if (shadowRoot === void 0) { shadowRoot = null; }\n    var root = shadowRoot !== null && shadowRoot !== void 0 ? shadowRoot : doc;\n    var host = root.querySelector(\"#\".concat(defaultHostId));\n    if (host) {\n        root.removeChild(host);\n    }\n}\n/**\n * Used for notifying applicable Layers that a host is available/unavailable and to re-evaluate Layers that\n * care about the specific host.\n */\nexport function notifyHostChanged(id) {\n    if (_layersByHostId[id]) {\n        _layersByHostId[id].forEach(function (callback) { return callback(); });\n    }\n}\n/**\n * Sets the default target selector to use when determining the host in which\n * Layered content will be injected into. If not provided, an element will be\n * created at the end of the document body.\n *\n * Passing in a falsy value will clear the default target and reset back to\n * using a created element at the end of document body.\n */\nexport function setDefaultTarget(selector) {\n    _defaultHostSelector = selector;\n}\n/**\n * Get the default target selector when determining a host\n */\nexport function getDefaultTarget() {\n    return _defaultHostSelector;\n}\n//# sourceMappingURL=Layer.notification.js.map","import { ZIndexes, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Layer',\n    rootNoHost: 'ms-Layer--fixed',\n    content: 'ms-Layer-content',\n};\nexport var getStyles = function (props) {\n    var className = props.className, isNotHost = props.isNotHost, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            isNotHost && [\n                classNames.rootNoHost,\n                {\n                    position: 'fixed',\n                    zIndex: ZIndexes.Layer,\n                    top: 0,\n                    left: 0,\n                    bottom: 0,\n                    right: 0,\n                    visibility: 'hidden',\n                },\n            ],\n            className,\n        ],\n        content: [\n            classNames.content,\n            {\n                visibility: 'visible',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=Layer.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, divProperties, enableBodyScroll, disableBodyScroll, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OverlayBase = /** @class */ (function (_super) {\n    __extends(OverlayBase, _super);\n    function OverlayBase(props) {\n        var _this = _super.call(this, props) || this;\n        initializeComponentRef(_this);\n        var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n        _this._allowTouchBodyScroll = allowTouchBodyScroll;\n        return _this;\n    }\n    OverlayBase.prototype.componentDidMount = function () {\n        !this._allowTouchBodyScroll && disableBodyScroll();\n    };\n    OverlayBase.prototype.componentWillUnmount = function () {\n        !this._allowTouchBodyScroll && enableBodyScroll();\n    };\n    OverlayBase.prototype.render = function () {\n        var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;\n        var divProps = getNativeProps(this.props, divProperties);\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            isDark: isDark,\n        });\n        return React.createElement(\"div\", __assign({}, divProps, { className: classNames.root }));\n    };\n    return OverlayBase;\n}(React.Component));\nexport { OverlayBase };\n//# sourceMappingURL=Overlay.base.js.map","import { styled } from '../../Utilities';\nimport { OverlayBase } from './Overlay.base';\nimport { getStyles } from './Overlay.styles';\nexport var Overlay = styled(OverlayBase, getStyles, undefined, {\n    scope: 'Overlay',\n});\n//# sourceMappingURL=Overlay.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Overlay',\n    rootDark: 'ms-Overlay--dark',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;\n    var palette = theme.palette;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                backgroundColor: palette.whiteTranslucent40,\n                top: 0,\n                right: 0,\n                bottom: 0,\n                left: 0,\n                position: 'absolute',\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        border: '1px solid WindowText',\n                        opacity: 0,\n                    },\n                    _a),\n            },\n            isNone && {\n                visibility: 'hidden',\n            },\n            isDark && [\n                classNames.rootDark,\n                {\n                    backgroundColor: palette.blackTranslucent40,\n                },\n            ],\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=Overlay.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Layer } from '../../Layer';\nimport { Overlay } from '../../Overlay';\nimport { Popup } from '../../Popup';\nimport { allowScrollOnElement, allowOverscrollOnElement, classNamesFunction, divProperties, elementContains, getId, getNativeProps, getRTL, css, warnDeprecations, Async, EventGroup, initializeComponentRef, } from '../../Utilities';\nimport { FocusTrapZone } from '../FocusTrapZone/index';\nimport { PanelType } from './Panel.types';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { getDocumentEx, getWindowEx } from '../../utilities/dom';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Panel';\nvar PanelVisibilityState;\n(function (PanelVisibilityState) {\n    PanelVisibilityState[PanelVisibilityState[\"closed\"] = 0] = \"closed\";\n    PanelVisibilityState[PanelVisibilityState[\"animatingOpen\"] = 1] = \"animatingOpen\";\n    PanelVisibilityState[PanelVisibilityState[\"open\"] = 2] = \"open\";\n    PanelVisibilityState[PanelVisibilityState[\"animatingClosed\"] = 3] = \"animatingClosed\";\n})(PanelVisibilityState || (PanelVisibilityState = {}));\nvar PanelBase = /** @class */ (function (_super) {\n    __extends(PanelBase, _super);\n    function PanelBase(props) {\n        var _this = _super.call(this, props) || this;\n        _this._panel = React.createRef();\n        _this._animationCallback = null;\n        _this._hasCustomNavigation = !!(_this.props.onRenderNavigation || _this.props.onRenderNavigationContent);\n        _this.dismiss = function (ev) {\n            if (_this.props.onDismiss && _this.isActive) {\n                _this.props.onDismiss(ev);\n            }\n            if (!ev || (ev && !ev.defaultPrevented)) {\n                _this.close();\n            }\n        };\n        // Allow the user to scroll within the panel but not on the body\n        _this._allowScrollOnPanel = function (elt) {\n            if (elt) {\n                if (_this._allowTouchBodyScroll) {\n                    allowOverscrollOnElement(elt, _this._events);\n                }\n                else {\n                    allowScrollOnElement(elt, _this._events);\n                }\n            }\n            else {\n                _this._events.off(_this._scrollableContent);\n            }\n            _this._scrollableContent = elt;\n        };\n        _this._onRenderNavigation = function (props) {\n            if (!_this.props.onRenderNavigationContent && !_this.props.onRenderNavigation && !_this.props.hasCloseButton) {\n                return null;\n            }\n            var _a = _this.props.onRenderNavigationContent, onRenderNavigationContent = _a === void 0 ? _this._onRenderNavigationContent : _a;\n            return (React.createElement(\"div\", { className: _this._classNames.navigation }, onRenderNavigationContent(props, _this._onRenderNavigationContent)));\n        };\n        _this._onRenderNavigationContent = function (props) {\n            var _a;\n            var closeButtonAriaLabel = props.closeButtonAriaLabel, hasCloseButton = props.hasCloseButton, _b = props.onRenderHeader, onRenderHeader = _b === void 0 ? _this._onRenderHeader : _b;\n            if (hasCloseButton) {\n                var iconButtonStyles = (_a = _this._classNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.closeButton();\n                return (React.createElement(React.Fragment, null,\n                    !_this._hasCustomNavigation && onRenderHeader(_this.props, _this._onRenderHeader, _this._headerTextId),\n                    React.createElement(IconButton, { styles: iconButtonStyles, className: _this._classNames.closeButton, onClick: _this._onPanelClick, ariaLabel: closeButtonAriaLabel, title: closeButtonAriaLabel, \"data-is-visible\": true, iconProps: { iconName: 'Cancel' } })));\n            }\n            return null;\n        };\n        _this._onRenderHeader = function (props, defaultRender, headerTextId) {\n            var headerText = props.headerText, _a = props.headerTextProps, headerTextProps = _a === void 0 ? {} : _a;\n            if (headerText) {\n                return (React.createElement(\"div\", { className: _this._classNames.header },\n                    React.createElement(\"div\", __assign({ id: headerTextId, role: \"heading\", \"aria-level\": 1 }, headerTextProps, { className: css(_this._classNames.headerText, headerTextProps.className) }), headerText)));\n            }\n            return null;\n        };\n        _this._onRenderBody = function (props) {\n            return React.createElement(\"div\", { className: _this._classNames.content }, props.children);\n        };\n        _this._onRenderFooter = function (props) {\n            var _a = _this.props.onRenderFooterContent, onRenderFooterContent = _a === void 0 ? null : _a;\n            if (onRenderFooterContent) {\n                return (React.createElement(\"div\", { className: _this._classNames.footer },\n                    React.createElement(\"div\", { className: _this._classNames.footerInner }, onRenderFooterContent())));\n            }\n            return null;\n        };\n        _this._animateTo = function (newVisibilityState) {\n            if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpen) {\n                _this.props.onOpen();\n            }\n            _this._animationCallback = _this._async.setTimeout(function () {\n                _this.setState({ visibility: newVisibilityState });\n                _this._onTransitionComplete(newVisibilityState);\n            }, 200);\n        };\n        _this._clearExistingAnimationTimer = function () {\n            if (_this._animationCallback !== null) {\n                _this._async.clearTimeout(_this._animationCallback);\n            }\n        };\n        _this._onPanelClick = function (ev) {\n            _this.dismiss(ev);\n        };\n        _this._onTransitionComplete = function (newVisibilityState) {\n            _this._updateFooterPosition();\n            if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpened) {\n                _this.props.onOpened();\n            }\n            if (newVisibilityState === PanelVisibilityState.closed && _this.props.onDismissed) {\n                _this.props.onDismissed();\n            }\n        };\n        var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n        _this._allowTouchBodyScroll = allowTouchBodyScroll;\n        initializeComponentRef(_this);\n        warnDeprecations(COMPONENT_NAME, props, {\n            ignoreExternalFocusing: 'focusTrapZoneProps',\n            forceFocusInsideTrap: 'focusTrapZoneProps',\n            firstFocusableSelector: 'focusTrapZoneProps',\n        });\n        _this.state = {\n            isFooterSticky: false,\n            // intentionally ignore props so animation takes place during componentDidMount\n            visibility: PanelVisibilityState.closed,\n            id: getId('Panel'),\n        };\n        return _this;\n    }\n    PanelBase.getDerivedStateFromProps = function (nextProps, prevState) {\n        if (nextProps.isOpen === undefined) {\n            return null; // no state update\n        }\n        if (nextProps.isOpen &&\n            (prevState.visibility === PanelVisibilityState.closed ||\n                prevState.visibility === PanelVisibilityState.animatingClosed)) {\n            return { visibility: PanelVisibilityState.animatingOpen };\n        }\n        if (!nextProps.isOpen &&\n            (prevState.visibility === PanelVisibilityState.open ||\n                prevState.visibility === PanelVisibilityState.animatingOpen)) {\n            return { visibility: PanelVisibilityState.animatingClosed };\n        }\n        return null;\n    };\n    PanelBase.prototype.componentDidMount = function () {\n        this._async = new Async(this);\n        this._events = new EventGroup(this);\n        var win = getWindowEx(this.context);\n        var doc = getDocumentEx(this.context);\n        this._events.on(win, 'resize', this._updateFooterPosition);\n        if (this._shouldListenForOuterClick(this.props)) {\n            this._events.on(doc === null || doc === void 0 ? void 0 : doc.body, 'mousedown', this._dismissOnOuterClick, true);\n        }\n        if (this.props.isOpen) {\n            this.setState({ visibility: PanelVisibilityState.animatingOpen });\n        }\n    };\n    PanelBase.prototype.componentDidUpdate = function (previousProps, previousState) {\n        var shouldListenOnOuterClick = this._shouldListenForOuterClick(this.props);\n        var previousShouldListenOnOuterClick = this._shouldListenForOuterClick(previousProps);\n        if (this.state.visibility !== previousState.visibility) {\n            this._clearExistingAnimationTimer();\n            if (this.state.visibility === PanelVisibilityState.animatingOpen) {\n                this._animateTo(PanelVisibilityState.open);\n            }\n            else if (this.state.visibility === PanelVisibilityState.animatingClosed) {\n                this._animateTo(PanelVisibilityState.closed);\n            }\n        }\n        var doc = getDocumentEx(this.context);\n        if (shouldListenOnOuterClick && !previousShouldListenOnOuterClick) {\n            this._events.on(doc === null || doc === void 0 ? void 0 : doc.body, 'mousedown', this._dismissOnOuterClick, true);\n        }\n        else if (!shouldListenOnOuterClick && previousShouldListenOnOuterClick) {\n            this._events.off(doc === null || doc === void 0 ? void 0 : doc.body, 'mousedown', this._dismissOnOuterClick, true);\n        }\n    };\n    PanelBase.prototype.componentWillUnmount = function () {\n        this._async.dispose();\n        this._events.dispose();\n    };\n    PanelBase.prototype.render = function () {\n        var _a = this.props, _b = _a.className, className = _b === void 0 ? '' : _b, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, \n        /* eslint-disable deprecation/deprecation */\n        firstFocusableSelector = _a.firstFocusableSelector, focusTrapZoneProps = _a.focusTrapZoneProps, forceFocusInsideTrap = _a.forceFocusInsideTrap, hasCloseButton = _a.hasCloseButton, headerText = _a.headerText, _c = _a.headerClassName, headerClassName = _c === void 0 ? '' : _c, ignoreExternalFocusing = _a.ignoreExternalFocusing, isBlocking = _a.isBlocking, isFooterAtBottom = _a.isFooterAtBottom, isLightDismiss = _a.isLightDismiss, isHiddenOnDismiss = _a.isHiddenOnDismiss, layerProps = _a.layerProps, overlayProps = _a.overlayProps, popupProps = _a.popupProps, type = _a.type, styles = _a.styles, theme = _a.theme, customWidth = _a.customWidth, _d = _a.onLightDismissClick, onLightDismissClick = _d === void 0 ? this._onPanelClick : _d, _e = _a.onRenderNavigation, onRenderNavigation = _e === void 0 ? this._onRenderNavigation : _e, _f = _a.onRenderHeader, onRenderHeader = _f === void 0 ? this._onRenderHeader : _f, _g = _a.onRenderBody, onRenderBody = _g === void 0 ? this._onRenderBody : _g, _h = _a.onRenderFooter, onRenderFooter = _h === void 0 ? this._onRenderFooter : _h;\n        var _j = this.state, isFooterSticky = _j.isFooterSticky, visibility = _j.visibility, id = _j.id;\n        var isLeft = type === PanelType.smallFixedNear || type === PanelType.customNear ? true : false;\n        var isRTL = getRTL(theme);\n        var isOnRightSide = isRTL ? isLeft : !isLeft;\n        var customWidthStyles = type === PanelType.custom || type === PanelType.customNear ? { width: customWidth } : {};\n        var nativeProps = getNativeProps(this.props, divProperties);\n        var isOpen = this.isActive;\n        var isAnimating = visibility === PanelVisibilityState.animatingClosed || visibility === PanelVisibilityState.animatingOpen;\n        this._headerTextId = headerText && id + '-headerText';\n        if (!isOpen && !isAnimating && !isHiddenOnDismiss) {\n            return null;\n        }\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n            focusTrapZoneClassName: focusTrapZoneProps ? focusTrapZoneProps.className : undefined,\n            hasCloseButton: hasCloseButton,\n            headerClassName: headerClassName,\n            isAnimating: isAnimating,\n            isFooterSticky: isFooterSticky,\n            isFooterAtBottom: isFooterAtBottom,\n            isOnRightSide: isOnRightSide,\n            isOpen: isOpen,\n            isHiddenOnDismiss: isHiddenOnDismiss,\n            type: type,\n            hasCustomNavigation: this._hasCustomNavigation,\n        });\n        var _k = this, _classNames = _k._classNames, _allowTouchBodyScroll = _k._allowTouchBodyScroll;\n        var overlay;\n        if (isBlocking && isOpen) {\n            overlay = (React.createElement(Overlay, __assign({ className: _classNames.overlay, isDarkThemed: false, onClick: isLightDismiss ? onLightDismissClick : undefined, allowTouchBodyScroll: _allowTouchBodyScroll }, overlayProps)));\n        }\n        return (React.createElement(Layer, __assign({}, layerProps),\n            React.createElement(Popup, __assign({ role: \"dialog\", \"aria-modal\": isBlocking ? 'true' : undefined, ariaLabelledBy: this._headerTextId ? this._headerTextId : undefined, onDismiss: this.dismiss, className: _classNames.hiddenPanel, enableAriaHiddenSiblings: isOpen ? true : false }, popupProps),\n                React.createElement(\"div\", __assign({ \"aria-hidden\": !isOpen && isAnimating }, nativeProps, { ref: this._panel, className: _classNames.root }),\n                    overlay,\n                    React.createElement(FocusTrapZone, __assign({ ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: !isBlocking || (isHiddenOnDismiss && !isOpen) ? false : forceFocusInsideTrap, firstFocusableSelector: firstFocusableSelector, isClickableOutsideFocusTrap: true }, focusTrapZoneProps, { className: _classNames.main, style: customWidthStyles, elementToFocusOnDismiss: elementToFocusOnDismiss }),\n                        React.createElement(\"div\", { className: _classNames.contentInner },\n                            React.createElement(\"div\", { ref: this._allowScrollOnPanel, className: _classNames.scrollableContent, \"data-is-scrollable\": true },\n                                React.createElement(\"div\", { className: _classNames.commands, \"data-is-visible\": true }, onRenderNavigation(this.props, this._onRenderNavigation)),\n                                (this._hasCustomNavigation || !hasCloseButton) &&\n                                    onRenderHeader(this.props, this._onRenderHeader, this._headerTextId),\n                                onRenderBody(this.props, this._onRenderBody),\n                                onRenderFooter(this.props, this._onRenderFooter))))))));\n    };\n    PanelBase.prototype.open = function () {\n        if (this.props.isOpen !== undefined) {\n            return;\n        }\n        if (this.isActive) {\n            return;\n        }\n        this.setState({ visibility: PanelVisibilityState.animatingOpen });\n    };\n    PanelBase.prototype.close = function () {\n        if (this.props.isOpen !== undefined) {\n            return;\n        }\n        if (!this.isActive) {\n            return;\n        }\n        this.setState({ visibility: PanelVisibilityState.animatingClosed });\n    };\n    Object.defineProperty(PanelBase.prototype, \"isActive\", {\n        /** isActive is true when panel is open or opening. */\n        get: function () {\n            return (this.state.visibility === PanelVisibilityState.open ||\n                this.state.visibility === PanelVisibilityState.animatingOpen);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    PanelBase.prototype._shouldListenForOuterClick = function (props) {\n        return !!props.isBlocking && !!props.isOpen;\n    };\n    PanelBase.prototype._updateFooterPosition = function () {\n        var scrollableContent = this._scrollableContent;\n        if (scrollableContent) {\n            var height = scrollableContent.clientHeight;\n            var innerHeight_1 = scrollableContent.scrollHeight;\n            this.setState({\n                isFooterSticky: height < innerHeight_1 ? true : false,\n            });\n        }\n    };\n    PanelBase.prototype._dismissOnOuterClick = function (ev) {\n        var panel = this._panel.current;\n        if (this.isActive && panel && !ev.defaultPrevented) {\n            if (!elementContains(panel, ev.target)) {\n                if (this.props.onOuterClick) {\n                    this.props.onOuterClick(ev);\n                }\n                else {\n                    this.dismiss(ev);\n                }\n            }\n        }\n    };\n    PanelBase.defaultProps = {\n        isHiddenOnDismiss: false,\n        isOpen: undefined,\n        isBlocking: true,\n        hasCloseButton: true,\n        type: PanelType.smallFixedFar,\n    };\n    PanelBase.contextType = WindowContext;\n    return PanelBase;\n}(React.Component));\nexport { PanelBase };\n//# sourceMappingURL=Panel.base.js.map","import { styled } from '../../Utilities';\nimport { PanelBase } from './Panel.base';\nimport { getStyles } from './Panel.styles';\n/**\n * Panel description\n */\nexport var Panel = styled(PanelBase, getStyles, undefined, {\n    scope: 'Panel',\n});\n//# sourceMappingURL=Panel.js.map","var _a, _b, _c, _d, _e;\nimport { __assign } from \"tslib\";\nimport { PanelType } from './Panel.types';\nimport { AnimationClassNames, AnimationVariables, getGlobalClassNames, HighContrastSelector, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinUhfMobile, IconFontSizes, } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Panel',\n    main: 'ms-Panel-main',\n    commands: 'ms-Panel-commands',\n    contentInner: 'ms-Panel-contentInner',\n    scrollableContent: 'ms-Panel-scrollableContent',\n    navigation: 'ms-Panel-navigation',\n    closeButton: 'ms-Panel-closeButton ms-PanelAction-close',\n    header: 'ms-Panel-header',\n    headerText: 'ms-Panel-headerText',\n    content: 'ms-Panel-content',\n    footer: 'ms-Panel-footer',\n    footerInner: 'ms-Panel-footerInner',\n    isOpen: 'is-open',\n    hasCloseButton: 'ms-Panel--hasCloseButton',\n    smallFluid: 'ms-Panel--smFluid',\n    smallFixedNear: 'ms-Panel--smLeft',\n    smallFixedFar: 'ms-Panel--sm',\n    medium: 'ms-Panel--md',\n    large: 'ms-Panel--lg',\n    largeFixed: 'ms-Panel--fixed',\n    extraLarge: 'ms-Panel--xl',\n    custom: 'ms-Panel--custom',\n    customNear: 'ms-Panel--customLeft',\n};\nvar panelWidth = {\n    full: '100%',\n    auto: 'auto',\n    xs: 272,\n    sm: 340,\n    md1: 592,\n    md2: 644,\n    lg: 940,\n};\nvar panelMargin = {\n    auto: 'auto',\n    none: 0,\n    md: 48,\n    lg: 428,\n    xl: 176,\n};\n// Following consts are used below in `getPanelBreakpoints()` function to provide\n// necessary fallbacks for different types of Panel in different breakpoints.\nvar smallPanelSelectors = (_a = {},\n    _a[\"@media (min-width: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n        width: panelWidth.sm,\n    },\n    _a);\nvar mediumPanelSelectors = (_b = {},\n    _b[\"@media (min-width: \".concat(ScreenWidthMinLarge, \"px)\")] = {\n        width: panelWidth.md1,\n    },\n    _b[\"@media (min-width: \".concat(ScreenWidthMinXLarge, \"px)\")] = {\n        width: panelWidth.md2,\n    },\n    _b);\nvar largePanelSelectors = (_c = {},\n    _c[\"@media (min-width: \".concat(ScreenWidthMinUhfMobile, \"px)\")] = {\n        left: panelMargin.md,\n        width: panelWidth.auto,\n    },\n    _c[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n        left: panelMargin.lg,\n    },\n    _c);\nvar largeFixedPanelSelectors = (_d = {},\n    _d[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n        left: panelMargin.auto,\n        width: panelWidth.lg,\n    },\n    _d);\nvar extraLargePanelSelectors = (_e = {},\n    _e[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n        left: panelMargin.xl,\n    },\n    _e);\n// Make sure Panels have fallbacks to different breakpoints by reusing same selectors.\n// This is done in the effort to follow design redlines.\nvar getPanelBreakpoints = function (type) {\n    var selectors;\n    // Panel types `smallFluid`, `smallFixedNear`, `custom` and `customNear`\n    // are not checked in here because they render the same in all the breakpoints\n    // and have the checks done separately in the `getStyles` function below.\n    switch (type) {\n        case PanelType.smallFixedFar:\n            selectors = __assign({}, smallPanelSelectors);\n            break;\n        case PanelType.medium:\n            selectors = __assign(__assign({}, smallPanelSelectors), mediumPanelSelectors);\n            break;\n        case PanelType.large:\n            selectors = __assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors);\n            break;\n        case PanelType.largeFixed:\n            selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), largeFixedPanelSelectors);\n            break;\n        case PanelType.extraLarge:\n            selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), extraLargePanelSelectors);\n            break;\n        default:\n            break;\n    }\n    return selectors;\n};\nvar commandBarHeight = '44px';\nvar sharedPaddingStyles = {\n    paddingLeft: '24px',\n    paddingRight: '24px',\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d;\n    var className = props.className, focusTrapZoneClassName = props.focusTrapZoneClassName, hasCloseButton = props.hasCloseButton, headerClassName = props.headerClassName, isAnimating = props.isAnimating, isFooterSticky = props.isFooterSticky, isFooterAtBottom = props.isFooterAtBottom, isOnRightSide = props.isOnRightSide, isOpen = props.isOpen, isHiddenOnDismiss = props.isHiddenOnDismiss, hasCustomNavigation = props.hasCustomNavigation, theme = props.theme, _e = props.type, type = _e === void 0 ? PanelType.smallFixedFar : _e;\n    var effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var isCustomPanel = type === PanelType.custom || type === PanelType.customNear;\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            isOpen && classNames.isOpen,\n            hasCloseButton && classNames.hasCloseButton,\n            {\n                pointerEvents: 'none',\n                position: 'absolute',\n                top: 0,\n                left: 0,\n                right: 0,\n                bottom: 0,\n            },\n            isCustomPanel && isOnRightSide && classNames.custom,\n            isCustomPanel && !isOnRightSide && classNames.customNear,\n            className,\n        ],\n        overlay: [\n            {\n                pointerEvents: 'auto',\n                cursor: 'pointer',\n            },\n            isOpen && isAnimating && AnimationClassNames.fadeIn100,\n            !isOpen && isAnimating && AnimationClassNames.fadeOut100,\n        ],\n        hiddenPanel: [\n            !isOpen &&\n                !isAnimating &&\n                isHiddenOnDismiss && {\n                visibility: 'hidden',\n            },\n        ],\n        main: [\n            classNames.main,\n            {\n                backgroundColor: semanticColors.bodyBackground,\n                boxShadow: effects.elevation64,\n                pointerEvents: 'auto',\n                position: 'absolute',\n                display: 'flex',\n                flexDirection: 'column',\n                overflowX: 'hidden',\n                overflowY: 'auto',\n                WebkitOverflowScrolling: 'touch',\n                bottom: 0,\n                top: 0,\n                // left, right, width are overridden depending on the type of the Panel and the screen breakpoint.\n                left: panelMargin.auto,\n                right: panelMargin.none,\n                width: panelWidth.full,\n                selectors: __assign((_a = {}, _a[HighContrastSelector] = {\n                    borderLeft: \"3px solid \".concat(semanticColors.variantBorder),\n                    borderRight: \"3px solid \".concat(semanticColors.variantBorder),\n                }, _a), getPanelBreakpoints(type)),\n            },\n            type === PanelType.smallFluid && {\n                left: panelMargin.none,\n            },\n            type === PanelType.smallFixedNear && {\n                left: panelMargin.none,\n                right: panelMargin.auto,\n                width: panelWidth.xs,\n            },\n            type === PanelType.customNear && {\n                right: 'auto',\n                left: 0,\n            },\n            isCustomPanel && {\n                maxWidth: '100vw',\n            },\n            isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideRightIn40,\n            isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideLeftIn40,\n            !isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideLeftOut40,\n            !isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideRightOut40,\n            focusTrapZoneClassName,\n        ],\n        commands: [\n            classNames.commands,\n            {\n                // Ensures that the sticky header always has a background to prevent overlaps on scroll.\n                backgroundColor: semanticColors.bodyBackground,\n                paddingTop: 18,\n                selectors: (_b = {},\n                    _b[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n                        position: 'sticky',\n                        top: 0,\n                        zIndex: 1,\n                    },\n                    _b),\n            },\n            hasCustomNavigation && {\n                paddingTop: 'inherit',\n            },\n        ],\n        navigation: [\n            classNames.navigation,\n            {\n                display: 'flex',\n                justifyContent: 'flex-end',\n            },\n            hasCustomNavigation && {\n                height: commandBarHeight,\n            },\n        ],\n        contentInner: [\n            classNames.contentInner,\n            {\n                display: 'flex',\n                flexDirection: 'column',\n                flexGrow: 1,\n                overflowY: 'hidden',\n            },\n        ],\n        header: [\n            classNames.header,\n            sharedPaddingStyles,\n            {\n                alignSelf: 'flex-start',\n            },\n            hasCloseButton &&\n                !hasCustomNavigation && {\n                flexGrow: 1,\n            },\n            hasCustomNavigation && {\n                // Ensure that title doesn't shrink if screen is too small\n                flexShrink: 0,\n            },\n        ],\n        headerText: [\n            classNames.headerText,\n            fonts.xLarge,\n            {\n                color: semanticColors.bodyText,\n                lineHeight: '27px',\n                overflowWrap: 'break-word',\n                wordWrap: 'break-word',\n                wordBreak: 'break-word',\n                hyphens: 'auto',\n            },\n            headerClassName,\n        ],\n        scrollableContent: [\n            classNames.scrollableContent,\n            {\n                overflowY: 'auto',\n            },\n            isFooterAtBottom && {\n                flexGrow: 1,\n                display: 'inherit',\n                flexDirection: 'inherit',\n            },\n        ],\n        content: [\n            classNames.content,\n            sharedPaddingStyles,\n            {\n                paddingBottom: 20,\n            },\n            isFooterAtBottom && {\n                selectors: (_c = {},\n                    _c[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n                        flexGrow: 1,\n                    },\n                    _c),\n            },\n        ],\n        footer: [\n            classNames.footer,\n            {\n                // Ensure that footer doesn't shrink if screen is too small\n                flexShrink: 0,\n                borderTop: '1px solid transparent',\n                transition: \"opacity \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction2),\n                selectors: (_d = {},\n                    _d[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n                        position: 'sticky',\n                        bottom: 0,\n                    },\n                    _d),\n            },\n            isFooterSticky && {\n                backgroundColor: semanticColors.bodyBackground,\n                borderTopColor: semanticColors.variantBorder,\n            },\n        ],\n        footerInner: [\n            classNames.footerInner,\n            sharedPaddingStyles,\n            {\n                paddingBottom: 16,\n                paddingTop: 16,\n            },\n        ],\n        subComponentStyles: {\n            closeButton: {\n                root: [\n                    classNames.closeButton,\n                    {\n                        marginRight: 14,\n                        color: theme.palette.neutralSecondary,\n                        fontSize: IconFontSizes.large,\n                    },\n                    hasCustomNavigation && {\n                        marginRight: 0,\n                        height: 'auto',\n                        width: '44px',\n                    },\n                ],\n                rootHovered: {\n                    color: theme.palette.neutralPrimary,\n                },\n            },\n        },\n    };\n};\n//# sourceMappingURL=Panel.styles.js.map","/**\n * {@docCategory Panel}\n */\nexport var PanelType;\n(function (PanelType) {\n    /**\n     * Renders the Panel with a `fluid` (full screen) width.\n     * Recommended for use on small screen breakpoints.\n     * - Small (320-479): full screen width, 16px left/right padding\n     * - Medium (480-639): full screen width, 16px left/right padding\n     * - Large (640-1023): full screen width, 32px left/right padding\n     * - XLarge (1024-1365): full screen width, 32px left/right padding\n     * - XXLarge (1366-up): full screen width, 40px left/right padding\n     */\n    PanelType[PanelType[\"smallFluid\"] = 0] = \"smallFluid\";\n    /**\n     * Renders the Panel in fixed-width `small` size, anchored to the far side (right in LTR mode).\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639): 340px width, 16px left/right padding\n     * - Large (640-1023): 340px width, 32px left/right padding\n     * - XLarge (1024-1365): 340px width, 32px left/right padding\n     * - XXLarge (1366-up): 340px width, 40px left/right padding\n     */\n    PanelType[PanelType[\"smallFixedFar\"] = 1] = \"smallFixedFar\";\n    /**\n     * Renders the Panel in fixed-width `small` size, anchored to the near side (left in LTR mode).\n     * - Small (320-479): 272px width, 16px left/right padding\n     * - Medium (480-639): 272px width, 16px left/right padding\n     * - Large (640-1023): 272px width, 32px left/right padding\n     * - XLarge (1024-1365): 272px width, 32px left/right padding\n     * - XXLarge (1366-up): 272px width, 40px left/right padding\n     */\n    PanelType[PanelType[\"smallFixedNear\"] = 2] = \"smallFixedNear\";\n    /**\n     * Renders the Panel in `medium` size, anchored to the far side (right in LTR mode).\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n     * - Large (640-1023): 592px width, 32px left/right padding\n     * - XLarge (1024-1365): 644px width, 32px left/right padding\n     * - XXLarge (1366-up): 644px width, 40px left/right padding\n     */\n    PanelType[PanelType[\"medium\"] = 3] = \"medium\";\n    /**\n     * Renders the Panel in `large` size, anchored to the far side (right in LTR mode).\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639):  adapts to `PanelType.smallFixedFar` at this breakpoint\n     * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n     * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n     * - XXLarge (1366-up): 428px fixed left margin, fluid width, 40px left/right padding\n     */\n    PanelType[PanelType[\"large\"] = 4] = \"large\";\n    /**\n     * Renders the Panel in `large` size, anchored to the far side (right in LTR mode), with a fixed width at\n     * XX-Large breakpoint.\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n     * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n     * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n     * - XXLarge (1366-up): 940px width, 40px left/right padding\n     */\n    PanelType[PanelType[\"largeFixed\"] = 5] = \"largeFixed\";\n    /**\n     * Renders the Panel in `extra large` size, anchored to the far side (right in LTR mode).\n     * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n     * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n     * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n     * - XLarge (1024-1365): adapts to `PanelType.large` at this breakpoint\n     * - XXLarge (1366-1919): 176px fixed left margin, fluid width, 40px left/right padding\n     * - XXXLarge (1920-up): 176px fixed left margin, fluid width, 40px left/right padding\n     */\n    PanelType[PanelType[\"extraLarge\"] = 6] = \"extraLarge\";\n    /**\n     * Renders the Panel in `custom` size using `customWidth`, anchored to the far side (right in LTR mode).\n     * - Has a fixed width provided by the `customWidth` prop\n     * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n     * taking up 100% of the viewport width\n     */\n    PanelType[PanelType[\"custom\"] = 7] = \"custom\";\n    /**\n     * Renders the Panel in `custom` size using `customWidth`, anchored to the near side (left in LTR mode).\n     * - Has a fixed width provided by the `customWidth` prop\n     * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n     * taking up 100% of the viewport width\n     */\n    PanelType[PanelType[\"customNear\"] = 8] = \"customNear\";\n})(PanelType || (PanelType = {}));\n//# sourceMappingURL=Panel.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, divProperties, doesElementContainFocus, getDocument, getNativeProps, getPropsWithDefaults, getWindow, modalize, } from '../../Utilities';\nimport { useMergedRefs, useAsync, useOnEvent } from '@fluentui/react-hooks';\nimport { useWindow } from '@fluentui/react-window-provider';\nfunction useScrollbarAsync(props, root) {\n    var async = useAsync();\n    var _a = React.useState(false), needsVerticalScrollBarState = _a[0], setNeedsVerticalScrollBar = _a[1];\n    React.useEffect(function () {\n        async.requestAnimationFrame(function () {\n            var _a;\n            // If overflowY is overridden, don't waste time calculating whether the scrollbar is necessary.\n            if (props.style && props.style.overflowY) {\n                return;\n            }\n            var needsVerticalScrollBar = false;\n            if (root && root.current && ((_a = root.current) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {\n                // ClientHeight returns the client height of an element rounded to an\n                // integer. On some browsers at different zoom levels this rounding\n                // can generate different results for the root container and child even\n                // though they are the same height. This causes us to show a scroll bar\n                // when not needed. Ideally we would use BoundingClientRect().height\n                // instead however seems that the API is 90% slower than using ClientHeight.\n                // Therefore instead we will calculate the difference between heights and\n                // allow for a 1px difference to still be considered ok and not show the\n                // scroll bar.\n                var rootHeight = root.current.clientHeight;\n                var firstChildHeight = root.current.firstElementChild.clientHeight;\n                if (rootHeight > 0 && firstChildHeight > rootHeight) {\n                    needsVerticalScrollBar = firstChildHeight - rootHeight > 1;\n                }\n            }\n            if (needsVerticalScrollBarState !== needsVerticalScrollBar) {\n                setNeedsVerticalScrollBar(needsVerticalScrollBar);\n            }\n        });\n        return function () { return async.dispose(); };\n    });\n    return needsVerticalScrollBarState;\n}\nfunction defaultFocusRestorer(options) {\n    var originalElement = options.originalElement, containsFocus = options.containsFocus;\n    if (originalElement && containsFocus && originalElement !== getWindow()) {\n        // Make sure that the focus method actually exists\n        // In some cases the object might exist but not be a real element.\n        // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n        // This is wrapped in a setTimeout because of a React 16 bug that is resolved in 17.\n        // Once we move to 17, the setTimeout should be removed (ref: https://github.com/facebook/react/issues/17894#issuecomment-656094405)\n        setTimeout(function () {\n            var _a;\n            (_a = originalElement.focus) === null || _a === void 0 ? void 0 : _a.call(originalElement);\n        }, 0);\n    }\n}\nfunction useRestoreFocus(props, root) {\n    var _a = props.onRestoreFocus, onRestoreFocus = _a === void 0 ? defaultFocusRestorer : _a;\n    var originalFocusedElement = React.useRef();\n    var containsFocus = React.useRef(false);\n    React.useEffect(function () {\n        originalFocusedElement.current = getDocument().activeElement;\n        if (doesElementContainFocus(root.current)) {\n            containsFocus.current = true;\n        }\n        return function () {\n            var _a;\n            onRestoreFocus === null || onRestoreFocus === void 0 ? void 0 : onRestoreFocus({\n                originalElement: originalFocusedElement.current,\n                containsFocus: containsFocus.current,\n                documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n            });\n            // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n            originalFocusedElement.current = undefined;\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n    }, []);\n    useOnEvent(root, 'focus', React.useCallback(function () {\n        containsFocus.current = true;\n    }, []), true);\n    useOnEvent(root, 'blur', React.useCallback(function (ev) {\n        /** The popup should update this._containsFocus when:\n         * relatedTarget exists AND\n         * the relatedTarget is not contained within the popup.\n         * If the relatedTarget is within the popup, that means the popup still has focus\n         * and focused moved from one element to another within the popup.\n         * If relatedTarget is undefined or null that usually means that a\n         * keyboard event occurred and focus didn't change\n         */\n        if (root.current && ev.relatedTarget && !root.current.contains(ev.relatedTarget)) {\n            containsFocus.current = false;\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n    }, []), true);\n}\nfunction useHideSiblingNodes(props, root) {\n    // eslint-disable-next-line deprecation/deprecation\n    var shouldHideSiblings = String(props['aria-modal']).toLowerCase() === 'true' && props.enableAriaHiddenSiblings;\n    React.useEffect(function () {\n        if (!(shouldHideSiblings && root.current)) {\n            return;\n        }\n        var unmodalize = modalize(root.current);\n        return unmodalize;\n    }, [root, shouldHideSiblings]);\n}\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nexport var Popup = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults({ shouldRestoreFocus: true, enableAriaHiddenSiblings: true }, propsWithoutDefaults);\n    var root = React.useRef();\n    var mergedRootRef = useMergedRefs(root, forwardedRef);\n    useHideSiblingNodes(props, root);\n    useRestoreFocus(props, root);\n    var role = props.role, className = props.className, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, style = props.style, children = props.children, onDismiss = props.onDismiss;\n    var needsVerticalScrollBar = useScrollbarAsync(props, root);\n    var onKeyDown = React.useCallback(function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        switch (ev.which) {\n            case KeyCodes.escape:\n                if (onDismiss) {\n                    onDismiss(ev);\n                    ev.preventDefault();\n                    ev.stopPropagation();\n                }\n                break;\n        }\n    }, [onDismiss]);\n    var win = useWindow();\n    useOnEvent(win, 'keydown', onKeyDown);\n    return (React.createElement(\"div\", __assign({ ref: mergedRootRef }, getNativeProps(props, divProperties), { className: className, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onKeyDown: onKeyDown, style: __assign({ overflowY: needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), children));\n});\nPopup.displayName = 'Popup';\n//# sourceMappingURL=Popup.js.map","import * as React from 'react';\nexport var MenuContext = React.createContext({});\nexport var useMenuContext = function () {\n    return React.useContext(MenuContext);\n};\n//# sourceMappingURL=MenuContext.js.map","/**\n * Determines the effective checked state of a menu item.\n *\n * @param item {IContextualMenuItem} to get the check state of.\n * @returns {true} if the item is checked.\n * @returns {false} if the item is unchecked.\n * @returns {null} if the item is not checkable.\n */\nexport function getIsChecked(item) {\n    if (item.canCheck) {\n        return !!(item.isChecked || item.checked);\n    }\n    if (typeof item.isChecked === 'boolean') {\n        return item.isChecked;\n    }\n    if (typeof item.checked === 'boolean') {\n        return item.checked;\n    }\n    // Item is not checkable.\n    return null;\n}\nexport function hasSubmenu(item) {\n    // eslint-disable-next-line deprecation/deprecation\n    return !!(item.subMenuProps || item.items);\n}\nexport function isItemDisabled(item) {\n    return !!(item.isDisabled || item.disabled);\n}\nexport function getMenuItemAriaRole(item) {\n    var isChecked = getIsChecked(item);\n    var canCheck = isChecked !== null;\n    return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n//# sourceMappingURL=contextualMenuUtility.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n    /** Width \\<= 479px */\n    ResponsiveMode[ResponsiveMode[\"small\"] = 0] = \"small\";\n    /** Width \\> 479px and \\<= 639px */\n    ResponsiveMode[ResponsiveMode[\"medium\"] = 1] = \"medium\";\n    /** Width \\> 639px and \\<= 1023px */\n    ResponsiveMode[ResponsiveMode[\"large\"] = 2] = \"large\";\n    /** Width \\> 1023px and \\<= 1365px */\n    ResponsiveMode[ResponsiveMode[\"xLarge\"] = 3] = \"xLarge\";\n    /** Width \\> 1365px and \\<= 1919px */\n    ResponsiveMode[ResponsiveMode[\"xxLarge\"] = 4] = \"xxLarge\";\n    /** Width \\> 1919px */\n    ResponsiveMode[ResponsiveMode[\"xxxLarge\"] = 5] = \"xxxLarge\";\n    ResponsiveMode[ResponsiveMode[\"unknown\"] = 999] = \"unknown\";\n})(ResponsiveMode || (ResponsiveMode = {}));\nvar RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nvar _defaultMode;\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nvar _lastMode;\n/**\n * Allows a server rendered scenario to provide a **default** responsive mode.\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function setResponsiveMode(responsiveMode) {\n    _defaultMode = responsiveMode;\n}\n/**\n * Initializes the responsive mode to the current window size. This can be used to avoid\n * a re-render during first component mount since the window would otherwise not be measured\n * until after mounting.\n *\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function initializeResponsiveMode(element) {\n    var currentWindow = getWindow(element);\n    if (currentWindow) {\n        getResponsiveMode(currentWindow);\n    }\n}\nexport function getInitialResponsiveMode() {\n    var _a;\n    return (_a = _defaultMode !== null && _defaultMode !== void 0 ? _defaultMode : _lastMode) !== null && _a !== void 0 ? _a : ResponsiveMode.large;\n}\n/**\n * @deprecated Decorator usage is deprecated. Either call `getResponsiveMode` manually, or\n * use the `useResponsiveMode` hook within a function component.\n */\nexport function withResponsiveMode(ComposedComponent) {\n    var _a;\n    // eslint-disable-next-line deprecation/deprecation\n    var resultClass = (_a = /** @class */ (function (_super) {\n            __extends(WithResponsiveMode, _super);\n            function WithResponsiveMode(props) {\n                var _this = _super.call(this, props) || this;\n                _this._onResize = function () {\n                    var responsiveMode = getResponsiveMode(_this.context.window);\n                    if (responsiveMode !== _this.state.responsiveMode) {\n                        _this.setState({\n                            responsiveMode: responsiveMode,\n                        });\n                    }\n                };\n                _this._events = new EventGroup(_this);\n                _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n                _this.state = {\n                    responsiveMode: getInitialResponsiveMode(),\n                };\n                return _this;\n            }\n            WithResponsiveMode.prototype.componentDidMount = function () {\n                this._events.on(this.context.window, 'resize', this._onResize);\n                this._onResize();\n            };\n            WithResponsiveMode.prototype.componentWillUnmount = function () {\n                this._events.dispose();\n            };\n            WithResponsiveMode.prototype.render = function () {\n                var responsiveMode = this.state.responsiveMode;\n                return responsiveMode === ResponsiveMode.unknown ? null : (React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));\n            };\n            return WithResponsiveMode;\n        }(BaseDecorator)),\n        _a.contextType = WindowContext,\n        _a);\n    return hoistStatics(ComposedComponent, resultClass);\n}\nfunction getWidthOfCurrentWindow(currentWindow) {\n    try {\n        return currentWindow.document.documentElement.clientWidth;\n    }\n    catch (e) {\n        return currentWindow.innerWidth;\n    }\n}\n/**\n * Hook to get the current responsive mode (window size category).\n * @param currentWindow - Use this window when determining the responsive mode.\n */\nexport function getResponsiveMode(currentWindow) {\n    var responsiveMode = ResponsiveMode.small;\n    if (currentWindow) {\n        try {\n            while (getWidthOfCurrentWindow(currentWindow) > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n                responsiveMode++;\n            }\n        }\n        catch (e) {\n            // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n            responsiveMode = getInitialResponsiveMode();\n        }\n        // Tracking last mode just gives us a better default in future renders,\n        // which avoids starting with the wrong value if we've measured once.\n        _lastMode = responsiveMode;\n    }\n    else {\n        if (_defaultMode !== undefined) {\n            responsiveMode = _defaultMode;\n        }\n        else {\n            throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +\n                'Call setResponsiveMode to define what the responsive mode is.');\n        }\n    }\n    return responsiveMode;\n}\n//# sourceMappingURL=withResponsiveMode.js.map","import { useDocument, useWindow } from '@fluentui/react-window-provider';\n/**\n * NOTE: the check for `window`/`document` is a bit verbose and perhaps\n * overkill but it ensures the prior assumbed behavior of directly\n * calling `window`/`document` is preserved.\n *\n * It is possible to set `window` to undefined on `WindowProvider` so\n * we'll fallback to directly accessing the global in that (hopefully unlikely)\n * case.\n */\n/**\n * Get a reference to the `document` object.\n * Use this in place of the global `document` in React function components.\n * @returns Document | undefined\n */\nexport var useDocumentEx = function () {\n    var _a;\n    // eslint-disable-next-line no-restricted-globals\n    return ((_a = useDocument()) !== null && _a !== void 0 ? _a : typeof document !== 'undefined') ? document : undefined;\n};\n/**\n * Get a reference to the `window` object.\n * Use this in place of the global `window` in React function components.\n * @returns Window | undefined\n */\nexport var useWindowEx = function () {\n    var _a;\n    // eslint-disable-next-line no-restricted-globals\n    return ((_a = useWindow()) !== null && _a !== void 0 ? _a : typeof window !== 'undefined') ? window : undefined;\n};\n/**\n * Get a reference to the `document` object.\n * Use this in place of the global `document` in React class components.\n *\n * @param ctx - Class component WindowContext\n * @returns Document | undefined\n */\nexport var getDocumentEx = function (ctx) {\n    var _a, _b;\n    // eslint-disable-next-line no-restricted-globals\n    return ((_b = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.window) === null || _a === void 0 ? void 0 : _a.document) !== null && _b !== void 0 ? _b : typeof document !== 'undefined') ? document : undefined;\n};\n/**\n * Get a reference to the `window` object.\n * Use this in place of the global `window` in React class components.\n *\n * @param ctx - Class component WindowContext\n * @returns Window | undefined\n */\nexport var getWindowEx = function (ctx) {\n    var _a;\n    // eslint-disable-next-line no-restricted-globals\n    return ((_a = ctx === null || ctx === void 0 ? void 0 : ctx.window) !== null && _a !== void 0 ? _a : typeof window !== 'undefined') ? window : undefined;\n};\n//# sourceMappingURL=dom.js.map","import * as React from 'react';\nimport { getWindow } from '@fluentui/utilities';\nimport { useOnEvent } from '@fluentui/react-hooks';\nimport { getResponsiveMode, getInitialResponsiveMode } from '../decorators/withResponsiveMode';\nimport { useWindow } from '../../WindowProvider';\n/**\n * Hook to get the current responsive mode (window size category).\n * @param elementRef - Use this element's parent window when determining the responsive mode.\n * @param overrideResponsiveMode - Override the responsive mode. If this param is present, it's always returned.\n */\nexport var useResponsiveMode = function (elementRef, overrideResponsiveMode) {\n    var _a = React.useState(getInitialResponsiveMode()), lastResponsiveMode = _a[0], setLastResponsiveMode = _a[1];\n    var onResize = React.useCallback(function () {\n        var newResponsiveMode = getResponsiveMode(getWindow(elementRef.current));\n        // Setting the same value should not cause a re-render.\n        if (lastResponsiveMode !== newResponsiveMode) {\n            setLastResponsiveMode(newResponsiveMode);\n        }\n    }, [elementRef, lastResponsiveMode]);\n    var win = useWindow();\n    useOnEvent(win, 'resize', onResize);\n    // Call resize function initially on mount, or if the override changes from defined to undefined\n    // (the effect will run on all override changes, but onResize will only be called if it changed to undefined)\n    React.useEffect(function () {\n        if (overrideResponsiveMode === undefined) {\n            onResize();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- only meant to run on mount or when override changes\n    }, [overrideResponsiveMode]);\n    return overrideResponsiveMode !== null && overrideResponsiveMode !== void 0 ? overrideResponsiveMode : lastResponsiveMode;\n};\n//# sourceMappingURL=useResponsiveMode.js.map","export var KTP_PREFIX = 'ktp';\nexport var KTP_SEPARATOR = '-';\nexport var KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport var DATAKTP_TARGET = 'data-ktp-target';\nexport var DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport var DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport var KTP_LAYER_ID = 'ktp-layer-id';\nexport var KTP_ARIA_SEPARATOR = ', ';\n// Events\nexport var KeytipEvents;\n(function (KeytipEvents) {\n    KeytipEvents.KEYTIP_ADDED = 'keytipAdded';\n    KeytipEvents.KEYTIP_REMOVED = 'keytipRemoved';\n    KeytipEvents.KEYTIP_UPDATED = 'keytipUpdated';\n    KeytipEvents.PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n    KeytipEvents.PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n    KeytipEvents.PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n    KeytipEvents.ENTER_KEYTIP_MODE = 'enterKeytipMode';\n    KeytipEvents.EXIT_KEYTIP_MODE = 'exitKeytipMode';\n})(KeytipEvents || (KeytipEvents = {}));\n//# sourceMappingURL=KeytipConstants.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { EventGroup, getId } from '../../Utilities';\nimport { KeytipEvents } from '../../utilities/keytips/KeytipConstants';\n/**\n * This class is responsible for handling registering, updating, and unregistering of keytips\n */\nvar KeytipManager = /** @class */ (function () {\n    function KeytipManager() {\n        this.keytips = {};\n        this.persistedKeytips = {};\n        this.sequenceMapping = {};\n        // This is (and should be) updated and kept in sync\n        // with the inKeytipMode in KeytipLayer.\n        this.inKeytipMode = false;\n        // Boolean that gets checked before entering keytip mode by the KeytipLayer\n        // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)\n        this.shouldEnterKeytipMode = true;\n        // Boolean to indicate whether to delay firing an event to update subscribers of\n        // keytip data changed.\n        this.delayUpdatingKeytipChange = false;\n    }\n    /**\n     * Static function to get singleton KeytipManager instance\n     *\n     * @returns Singleton KeytipManager instance\n     */\n    KeytipManager.getInstance = function () {\n        return this._instance;\n    };\n    /**\n     * Initialization code to set set parameters to define\n     * how the KeytipManager handles keytip data.\n     *\n     * @param delayUpdatingKeytipChange - T/F if we should delay notifiying keytip subscribers\n     * of keytip changes\n     */\n    KeytipManager.prototype.init = function (delayUpdatingKeytipChange) {\n        this.delayUpdatingKeytipChange = delayUpdatingKeytipChange;\n    };\n    /**\n     * Registers a keytip\n     *\n     * @param keytipProps - Keytip to register\n     * @param persisted - T/F if this keytip should be persisted, default is false\n     * @returns Unique ID for this keytip\n     */\n    KeytipManager.prototype.register = function (keytipProps, persisted) {\n        if (persisted === void 0) { persisted = false; }\n        var props = keytipProps;\n        if (!persisted) {\n            // Add the overflowSetSequence if necessary\n            props = this.addParentOverflow(keytipProps);\n            this.sequenceMapping[props.keySequences.toString()] = props;\n        }\n        // Create a unique keytip\n        var uniqueKeytip = this._getUniqueKtp(props);\n        // Add to dictionary\n        persisted\n            ? (this.persistedKeytips[uniqueKeytip.uniqueID] = uniqueKeytip)\n            : (this.keytips[uniqueKeytip.uniqueID] = uniqueKeytip);\n        // We only want to add something new if we are currently showing keytip mode\n        if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n            var event_1 = persisted ? KeytipEvents.PERSISTED_KEYTIP_ADDED : KeytipEvents.KEYTIP_ADDED;\n            EventGroup.raise(this, event_1, {\n                keytip: props,\n                uniqueID: uniqueKeytip.uniqueID,\n            });\n        }\n        return uniqueKeytip.uniqueID;\n    };\n    /**\n     * Update a keytip\n     *\n     * @param keytipProps - Keytip to update\n     * @param uniqueID - Unique ID of this keytip\n     */\n    KeytipManager.prototype.update = function (keytipProps, uniqueID) {\n        var newKeytipProps = this.addParentOverflow(keytipProps);\n        var uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);\n        var oldKeyTip = this.keytips[uniqueID];\n        if (oldKeyTip) {\n            // Update everything except 'visible'\n            uniqueKeytip.keytip.visible = oldKeyTip.keytip.visible;\n            // Update keytip in this.keytips\n            this.keytips[uniqueID] = uniqueKeytip;\n            // Update the sequence to be up to date\n            delete this.sequenceMapping[oldKeyTip.keytip.keySequences.toString()];\n            this.sequenceMapping[uniqueKeytip.keytip.keySequences.toString()] = uniqueKeytip.keytip;\n            // Raise event only if we are currently in keytip mode\n            if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n                EventGroup.raise(this, KeytipEvents.KEYTIP_UPDATED, {\n                    keytip: uniqueKeytip.keytip,\n                    uniqueID: uniqueKeytip.uniqueID,\n                });\n            }\n        }\n    };\n    /**\n     * Unregisters a keytip\n     *\n     * @param keytipToRemove - IKeytipProps of the keytip to remove\n     * @param uniqueID - Unique ID of this keytip\n     * @param persisted - T/F if this keytip should be persisted, default is false\n     */\n    KeytipManager.prototype.unregister = function (keytipToRemove, uniqueID, persisted) {\n        if (persisted === void 0) { persisted = false; }\n        persisted ? delete this.persistedKeytips[uniqueID] : delete this.keytips[uniqueID];\n        !persisted && delete this.sequenceMapping[keytipToRemove.keySequences.toString()];\n        var event = persisted ? KeytipEvents.PERSISTED_KEYTIP_REMOVED : KeytipEvents.KEYTIP_REMOVED;\n        // Update keytips only if we're in keytip mode\n        if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n            EventGroup.raise(this, event, {\n                keytip: keytipToRemove,\n                uniqueID: uniqueID,\n            });\n        }\n    };\n    /**\n     * Manual call to enter keytip mode\n     */\n    KeytipManager.prototype.enterKeytipMode = function () {\n        EventGroup.raise(this, KeytipEvents.ENTER_KEYTIP_MODE);\n    };\n    /**\n     * Manual call to exit keytip mode\n     */\n    KeytipManager.prototype.exitKeytipMode = function () {\n        EventGroup.raise(this, KeytipEvents.EXIT_KEYTIP_MODE);\n    };\n    /**\n     * Gets all IKeytipProps from this.keytips\n     *\n     * @returns All keytips stored in the manager\n     */\n    KeytipManager.prototype.getKeytips = function () {\n        var _this = this;\n        return Object.keys(this.keytips).map(function (key) { return _this.keytips[key].keytip; });\n    };\n    /**\n     * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it\n     *\n     * @param keytipProps - Keytip props to add overflowSetSequence to if necessary\n     * @returns - Modified keytip props, if needed to be modified\n     */\n    KeytipManager.prototype.addParentOverflow = function (keytipProps) {\n        var fullSequence = __spreadArray([], keytipProps.keySequences, true);\n        fullSequence.pop();\n        if (fullSequence.length !== 0) {\n            var parentKeytip = this.sequenceMapping[fullSequence.toString()];\n            if (parentKeytip && parentKeytip.overflowSetSequence) {\n                return __assign(__assign({}, keytipProps), { overflowSetSequence: parentKeytip.overflowSetSequence });\n            }\n        }\n        return keytipProps;\n    };\n    /**\n     * Public function to bind for overflow items that have a submenu\n     */\n    KeytipManager.prototype.menuExecute = function (overflowButtonSequences, keytipSequences) {\n        EventGroup.raise(this, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, {\n            overflowButtonSequences: overflowButtonSequences,\n            keytipSequences: keytipSequences,\n        });\n    };\n    /**\n     * Creates an IUniqueKeytip object\n     *\n     * @param keytipProps - IKeytipProps\n     * @param uniqueID - Unique ID, will default to the next unique ID if not passed\n     * @returns IUniqueKeytip object\n     */\n    KeytipManager.prototype._getUniqueKtp = function (keytipProps, uniqueID) {\n        if (uniqueID === void 0) { uniqueID = getId(); }\n        return { keytip: __assign({}, keytipProps), uniqueID: uniqueID };\n    };\n    KeytipManager._instance = new KeytipManager();\n    return KeytipManager;\n}());\nexport { KeytipManager };\n//# sourceMappingURL=KeytipManager.js.map","import { __spreadArray } from \"tslib\";\nimport { KTP_SEPARATOR, KTP_PREFIX, DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, KTP_LAYER_ID } from './KeytipConstants';\nimport { addElementAtIndex } from '../../Utilities';\n/**\n * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified\n * keySequences should not include the initial keytip 'start' sequence.\n *\n * @param keySequences - Full path of IKeySequences for one keytip.\n * @returns String to use for the keytip ID.\n */\nexport function sequencesToID(keySequences) {\n    return keySequences.reduce(function (prevValue, keySequence) {\n        return prevValue + KTP_SEPARATOR + keySequence.split('').join(KTP_SEPARATOR);\n    }, KTP_PREFIX);\n}\n/**\n * Merges an overflow sequence with a key sequence.\n *\n * @param keySequences - Full sequence for one keytip.\n * @param overflowKeySequences - Full overflow keytip sequence.\n * @returns Sequence that will be used by the keytip when in the overflow.\n */\nexport function mergeOverflows(keySequences, overflowKeySequences) {\n    var overflowSequenceLen = overflowKeySequences.length;\n    var overflowSequence = __spreadArray([], overflowKeySequences, true).pop();\n    var newKeySequences = __spreadArray([], keySequences, true);\n    return addElementAtIndex(newKeySequences, overflowSequenceLen - 1, overflowSequence);\n}\n/**\n * Constructs the data-ktp-target attribute selector from a full key sequence.\n *\n * @param keySequences - Full string[] for a Keytip.\n * @returns String selector to use to query for the keytip target.\n */\nexport function ktpTargetFromSequences(keySequences) {\n    return '[' + DATAKTP_TARGET + '=\"' + sequencesToID(keySequences) + '\"]';\n}\n/**\n * Constructs the data-ktp-execute-target attribute selector from a keytip ID.\n *\n * @param keytipId - ID of the Keytip.\n * @returns String selector to use to query for the keytip execute target.\n */\nexport function ktpTargetFromId(keytipId) {\n    return '[' + DATAKTP_EXECUTE_TARGET + '=\"' + keytipId + '\"]';\n}\n/**\n * Gets the aria-describedby value to put on the component with this keytip.\n *\n * @param keySequences - KeySequences of the keytip.\n * @returns The aria-describedby value to set on the component with this keytip.\n */\nexport function getAriaDescribedBy(keySequences) {\n    var describedby = ' ' + KTP_LAYER_ID;\n    if (!keySequences.length) {\n        // Return just the layer ID\n        return describedby;\n    }\n    return describedby + ' ' + sequencesToID(keySequences);\n}\n//# sourceMappingURL=KeytipUtils.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL, getWindow } from '../../Utilities';\nimport { RectangleEdge } from './positioning.types';\nimport { Rectangle } from '../../Utilities';\nfunction _createPositionData(targetEdge, alignmentEdge, isAuto) {\n    return {\n        targetEdge: targetEdge,\n        alignmentEdge: alignmentEdge,\n        isAuto: isAuto,\n    };\n}\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nvar DirectionalDictionary = (_a = {},\n    _a[DirectionalHint.topLeftEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.left),\n    _a[DirectionalHint.topCenter] = _createPositionData(RectangleEdge.top),\n    _a[DirectionalHint.topRightEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.right),\n    _a[DirectionalHint.topAutoEdge] = _createPositionData(RectangleEdge.top, undefined, true),\n    _a[DirectionalHint.bottomLeftEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n    _a[DirectionalHint.bottomCenter] = _createPositionData(RectangleEdge.bottom),\n    _a[DirectionalHint.bottomRightEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n    _a[DirectionalHint.bottomAutoEdge] = _createPositionData(RectangleEdge.bottom, undefined, true),\n    _a[DirectionalHint.leftTopEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.top),\n    _a[DirectionalHint.leftCenter] = _createPositionData(RectangleEdge.left),\n    _a[DirectionalHint.leftBottomEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n    _a[DirectionalHint.rightTopEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.top),\n    _a[DirectionalHint.rightCenter] = _createPositionData(RectangleEdge.right),\n    _a[DirectionalHint.rightBottomEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n    _a);\nfunction _isRectangleWithinBounds(rect, boundingRect) {\n    if (rect.top < boundingRect.top) {\n        return false;\n    }\n    if (rect.bottom > boundingRect.bottom) {\n        return false;\n    }\n    if (rect.left < boundingRect.left) {\n        return false;\n    }\n    if (rect.right > boundingRect.right) {\n        return false;\n    }\n    return true;\n}\n/**\n * Gets all of the edges of a rectangle that are outside of the given bounds.\n * If there are no out of bounds edges it returns an empty array.\n */\nfunction _getOutOfBoundsEdges(rect, boundingRect) {\n    var outOfBounds = [];\n    if (rect.top < boundingRect.top) {\n        outOfBounds.push(RectangleEdge.top);\n    }\n    if (rect.bottom > boundingRect.bottom) {\n        outOfBounds.push(RectangleEdge.bottom);\n    }\n    if (rect.left < boundingRect.left) {\n        outOfBounds.push(RectangleEdge.left);\n    }\n    if (rect.right > boundingRect.right) {\n        outOfBounds.push(RectangleEdge.right);\n    }\n    return outOfBounds;\n}\nfunction _getEdgeValue(rect, edge) {\n    return rect[RectangleEdge[edge]];\n}\nfunction _setEdgeValue(rect, edge, value) {\n    rect[RectangleEdge[edge]] = value;\n    return rect;\n}\n/**\n * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as\n * the itself already contains the other coordinate.\n * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.\n */\nfunction _getCenterValue(rect, edge) {\n    var edges = _getFlankingEdges(edge);\n    return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\n/**\n * Flips the value depending on the edge.\n * If the edge is a \"positive\" edge, Top or Left, then the value should stay as it is.\n * If the edge is a \"negative\" edge, Bottom or Right, then the value should be flipped.\n * This is to account for the fact that the coordinates are effectively reserved in certain cases for the\n * \"negative\" edges.\n *\n * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2:\n * If edge 1 is greater than edge 2 then it is out of bounds. This is reversed for top edge 1 and top edge 2.\n * If top edge 1 is less than edge 2 then it is out of bounds.\n */\nfunction _getRelativeEdgeValue(edge, value) {\n    if (edge > 0) {\n        return value;\n    }\n    else {\n        return value * -1;\n    }\n}\nfunction _getRelativeRectEdgeValue(edge, rect) {\n    return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\nfunction _getRelativeEdgeDifference(rect, hostRect, edge) {\n    var edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n    return _getRelativeEdgeValue(edge, edgeDifference);\n}\n/**\n * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.\n * For example, if it's a bottom edge it will only change y coordinates.\n * if maintainSize is set to false, it will only adjust the specified edge value\n */\nfunction _moveEdge(rect, edge, newValue, maintainSize) {\n    if (maintainSize === void 0) { maintainSize = true; }\n    var difference = _getEdgeValue(rect, edge) - newValue;\n    var returnRect = _setEdgeValue(rect, edge, newValue);\n    if (maintainSize) {\n        returnRect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n    }\n    return returnRect;\n}\n/**\n * Aligns the edge on the passed in rect to the target. If there is a gap then it will have that space between the two.\n */\nfunction _alignEdges(rect, target, edge, gap) {\n    if (gap === void 0) { gap = 0; }\n    return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\n/**\n * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.\n * For instance if targetEdge is bottom, then the rects top will be moved to match it.\n */\nfunction _alignOppositeEdges(rect, target, targetEdge, gap) {\n    if (gap === void 0) { gap = 0; }\n    var oppositeEdge = targetEdge * -1;\n    var adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n    return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect, bounds, edge) {\n    var adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n    return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\n/**\n * Returns a measure of how much a rectangle is out of bounds for a given alignment;\n * this can be used to compare which rectangle is more or less out of bounds.\n * A value of 0 means the rectangle is entirely in bounds\n */\nfunction _getOutOfBoundsDegree(rect, bounds) {\n    var breakingEdges = _getOutOfBoundsEdges(rect, bounds);\n    var total = 0;\n    for (var _i = 0, breakingEdges_1 = breakingEdges; _i < breakingEdges_1.length; _i++) {\n        var edge = breakingEdges_1[_i];\n        total += Math.pow(_getRelativeEdgeDifference(rect, bounds, edge), 2);\n    }\n    return total;\n}\n/**\n * Returns true if scroll-resizing will move the target edge within the bounding rectangle,\n * and there is room between the target edge and the bounding edge for scrolled content.\n * Returns false otherwise.\n */\nfunction _canScrollResizeToFitEdge(target, bounding, targetEdge, minimumScrollResizeHeight) {\n    if (minimumScrollResizeHeight === void 0) { minimumScrollResizeHeight = 200; }\n    // Only scroll vertically to fit - cannot scroll to fit right or left edges\n    if (targetEdge !== RectangleEdge.bottom && targetEdge !== RectangleEdge.top) {\n        return false;\n    }\n    return _getRelativeEdgeDifference(target, bounding, targetEdge) >= minimumScrollResizeHeight;\n}\n/**\n * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the least bad option should be returned.\n */\nfunction _flipToFit(rect, target, bounding, positionData, shouldScroll, minimumScrollResizeHeight, gap) {\n    if (shouldScroll === void 0) { shouldScroll = false; }\n    if (gap === void 0) { gap = 0; }\n    var directions = [\n        RectangleEdge.left,\n        RectangleEdge.right,\n        RectangleEdge.bottom,\n        RectangleEdge.top,\n    ];\n    // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, so the order should be updated.\n    if (getRTL()) {\n        directions[0] *= -1;\n        directions[1] *= -1;\n    }\n    var currentEstimate = rect;\n    var currentEdge = positionData.targetEdge;\n    var currentAlignment = positionData.alignmentEdge;\n    // keep track of least bad option, in case no sides fit\n    var oobDegree;\n    var bestEdge = currentEdge;\n    var bestAlignment = currentAlignment;\n    // Keep switching sides until one is found with enough space.\n    // If all sides don't fit then return the unmodified element.\n    for (var i = 0; i < 4; i++) {\n        if (_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {\n            // Edge is in bounds, return current estimate\n            return {\n                elementRectangle: currentEstimate,\n                targetEdge: currentEdge,\n                alignmentEdge: currentAlignment,\n            };\n        }\n        else if (shouldScroll && _canScrollResizeToFitEdge(target, bounding, currentEdge, minimumScrollResizeHeight)) {\n            // Scrolling will allow edge to fit, move the estimate currentEdge inside the bounds and return\n            switch (currentEdge) {\n                case RectangleEdge.bottom:\n                    currentEstimate.bottom = bounding.bottom;\n                    break;\n                case RectangleEdge.top:\n                    currentEstimate.top = bounding.top;\n                    break;\n            }\n            return {\n                elementRectangle: currentEstimate,\n                targetEdge: currentEdge,\n                alignmentEdge: currentAlignment,\n                forcedInBounds: true,\n            };\n        }\n        else {\n            // update least-bad edges\n            var currentOOBDegree = _getOutOfBoundsDegree(currentEstimate, bounding);\n            if (!oobDegree || currentOOBDegree < oobDegree) {\n                oobDegree = currentOOBDegree;\n                bestEdge = currentEdge;\n                bestAlignment = currentAlignment;\n            }\n            directions.splice(directions.indexOf(currentEdge), 1);\n            if (directions.length > 0) {\n                if (directions.indexOf(currentEdge * -1) > -1) {\n                    currentEdge = currentEdge * -1;\n                }\n                else {\n                    currentAlignment = currentEdge;\n                    currentEdge = directions.slice(-1)[0];\n                }\n                currentEstimate = _estimatePosition(rect, target, { targetEdge: currentEdge, alignmentEdge: currentAlignment }, gap);\n            }\n        }\n    }\n    // nothing fits, use least-bad option\n    currentEstimate = _estimatePosition(rect, target, { targetEdge: bestEdge, alignmentEdge: bestAlignment }, gap);\n    return {\n        elementRectangle: currentEstimate,\n        targetEdge: bestEdge,\n        alignmentEdge: bestAlignment,\n    };\n}\n/**\n * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges\n * into position, when `alignTargetEdge` is specified.\n */\nfunction _flipAlignmentEdge(elementEstimate, target, gap, coverTarget) {\n    var alignmentEdge = elementEstimate.alignmentEdge, targetEdge = elementEstimate.targetEdge, elementRectangle = elementEstimate.elementRectangle;\n    var oppositeEdge = alignmentEdge * -1;\n    var newEstimate = _estimatePosition(elementRectangle, target, { targetEdge: targetEdge, alignmentEdge: oppositeEdge }, gap, coverTarget);\n    return {\n        elementRectangle: newEstimate,\n        targetEdge: targetEdge,\n        alignmentEdge: oppositeEdge,\n    };\n}\n/**\n * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in\n * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.\n */\nfunction _adjustFitWithinBounds(element, target, bounding, positionData, shouldScroll, minimumScrollResizeHeight, gap, directionalHintFixed, coverTarget) {\n    if (shouldScroll === void 0) { shouldScroll = false; }\n    if (gap === void 0) { gap = 0; }\n    var alignmentEdge = positionData.alignmentEdge, alignTargetEdge = positionData.alignTargetEdge;\n    var elementEstimate = {\n        elementRectangle: element,\n        targetEdge: positionData.targetEdge,\n        alignmentEdge: alignmentEdge,\n    };\n    if (!directionalHintFixed && !coverTarget) {\n        elementEstimate = _flipToFit(element, target, bounding, positionData, shouldScroll, minimumScrollResizeHeight, gap);\n    }\n    var outOfBounds = _getOutOfBoundsEdges(elementEstimate.elementRectangle, bounding);\n    // if directionalHintFixed is specified, we need to force the target edge to not change\n    // we need *-1 because targetEdge refers to the target's edge; the callout edge is the opposite\n    var fixedEdge = directionalHintFixed ? -elementEstimate.targetEdge : undefined;\n    if (outOfBounds.length > 0) {\n        if (alignTargetEdge) {\n            // The edge opposite to the alignment edge might be out of bounds.\n            // Flip alignment to see if we can get it within bounds.\n            if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {\n                var flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n                if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n                    return flippedElementEstimate;\n                }\n                else {\n                    // If the flipped elements edges are still out of bounds, try nudging it.\n                    elementEstimate = _alignOutOfBoundsEdges(_getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding), elementEstimate, bounding, fixedEdge);\n                }\n            }\n            else {\n                elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n            }\n        }\n        else {\n            elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n        }\n    }\n    return elementEstimate;\n}\n/**\n * Iterates through a list of out of bounds edges and tries to nudge and align them.\n * @param outOfBoundsEdges - Array of edges that are out of bounds\n * @param elementEstimate - The current element positioning estimate\n * @param bounding - The current bounds\n * @param preserveEdge - Specify an edge that should not be modified\n */\nfunction _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding, preserveEdge) {\n    for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {\n        var direction = outOfBoundsEdges_1[_i];\n        var edgeAttempt = void 0;\n        // if preserveEdge is specified, do not call _alignEdges, skip directly to _moveEdge\n        // this is because _alignEdges will move the opposite edge\n        if (preserveEdge && preserveEdge === direction * -1) {\n            edgeAttempt = _moveEdge(elementEstimate.elementRectangle, direction, _getEdgeValue(bounding, direction), false);\n            elementEstimate.forcedInBounds = true;\n        }\n        else {\n            edgeAttempt = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n            var inBounds = _isEdgeInBounds(edgeAttempt, bounding, direction * -1);\n            // only update estimate if the attempt didn't break out of the opposite bounding edge\n            if (!inBounds) {\n                edgeAttempt = _moveEdge(edgeAttempt, direction * -1, _getEdgeValue(bounding, direction * -1), false);\n                elementEstimate.forcedInBounds = true;\n            }\n        }\n        elementEstimate.elementRectangle = edgeAttempt;\n    }\n    return elementEstimate;\n}\n/**\n * Moves the middle point on an edge to the point given.\n * Only moves in one direction. For instance if a bottom edge is passed in, then\n * the bottom edge will be moved in the x axis to match the point.\n */\nfunction _centerEdgeToPoint(rect, edge, point) {\n    var positiveEdge = _getFlankingEdges(edge).positiveEdge;\n    var elementMiddle = _getCenterValue(rect, edge);\n    var distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n    return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\n/**\n * Moves the element rectangle to be appropriately positioned relative to a given target.\n * Does not flip or adjust the element.\n */\nfunction _estimatePosition(elementToPosition, target, positionData, gap, coverTarget) {\n    if (gap === void 0) { gap = 0; }\n    var estimatedElementPosition = new Rectangle(elementToPosition.left, elementToPosition.right, elementToPosition.top, elementToPosition.bottom);\n    var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;\n    var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n    estimatedElementPosition = coverTarget\n        ? _alignEdges(estimatedElementPosition, target, targetEdge, gap)\n        : _alignOppositeEdges(estimatedElementPosition, target, targetEdge, gap);\n    // if no alignment edge is provided it's supposed to be centered.\n    if (!alignmentEdge) {\n        var targetMiddlePoint = _getCenterValue(target, targetEdge);\n        estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n    }\n    else {\n        estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n    }\n    return estimatedElementPosition;\n}\n/**\n * Returns the non-opposite edges of the target edge.\n * For instance if bottom is passed in then left and right will be returned.\n */\nfunction _getFlankingEdges(edge) {\n    if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n        return {\n            positiveEdge: RectangleEdge.left,\n            negativeEdge: RectangleEdge.right,\n        };\n    }\n    else {\n        return {\n            positiveEdge: RectangleEdge.top,\n            negativeEdge: RectangleEdge.bottom,\n        };\n    }\n}\n/**\n * Retrieve the final value for the return edge of `elementRectangle`. If the `elementRectangle` is closer to one side\n * of the bounds versus the other, the return edge is flipped to grow inward.\n */\nfunction _finalizeReturnEdge(elementRectangle, returnEdge, bounds) {\n    if (bounds &&\n        Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n            Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))) {\n        return returnEdge * -1;\n    }\n    return returnEdge;\n}\n/**\n * Whether or not the considered edge of the elementRectangle is lying on the edge of the bounds\n * @param elementRectangle The rectangle whose edge we are considering\n * @param bounds The rectangle marking the bounds\n * @param edge The target edge we're considering\n * @returns If the target edge of the elementRectangle is in the same location as that edge of the bounds\n */\nfunction _isEdgeOnBounds(elementRectangle, edge, bounds) {\n    return bounds !== undefined && _getEdgeValue(elementRectangle, edge) === _getEdgeValue(bounds, edge);\n}\n/**\n * Finalizes the element position based on the hostElement. Only returns the\n * rectangle values to position such that they are anchored to the target.\n * This helps prevent resizing from looking very strange.\n * For instance, if the target edge is top and aligned with the left side then\n * the bottom and left values are returned so as the Callout shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge, forceWithinBounds) {\n    var returnValue = {};\n    var hostRect = _getRectangleFromElement(hostElement);\n    var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n    var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n    // If we are finalizing the return edge, choose the edge such that we grow away from the bounds\n    // If we are not finalizing the return edge but the opposite edge is flush against the bounds,\n    // choose that as the anchor edge so the element rect can grow away from the bounds' edge\n    // In this case there will not be a visual difference because there is no more room for the elementRectangle to grow\n    // in the usual direction\n    if (!doNotFinalizeReturnEdge || _isEdgeOnBounds(elementRectangle, getOppositeEdge(returnEdge), bounds)) {\n        returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n    }\n    returnValue[RectangleEdge[elementEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n    returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n    // if the positioned element will still overflow, return all four edges with in-bounds values\n    if (forceWithinBounds) {\n        returnValue[RectangleEdge[elementEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge * -1);\n        returnValue[RectangleEdge[returnEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge * -1);\n    }\n    return returnValue;\n}\n// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.\n// We still want to position the beak based on it's midpoint which does not change. It will\n// be at (beakwidth / 2, beakwidth / 2)\nfunction _calculateActualBeakWidthInPixels(beakWidth) {\n    return Math.sqrt(beakWidth * beakWidth * 2);\n}\n/**\n * Returns the appropriate IPositionData based on the props altered for RTL.\n * If directionalHintForRTL is passed in that is used if the page is RTL.\n * If directionalHint is specified, no directionalHintForRTL is available, and the page is RTL, the hint will be\n * flipped (e.g. bottomLeftEdge would become bottomRightEdge).\n *\n * If there is no directionalHint passed in, bottomAutoEdge is chosen automatically.\n */\nfunction _getPositionData(directionalHint, directionalHintForRTL, previousPositions) {\n    if (directionalHint === void 0) { directionalHint = DirectionalHint.bottomAutoEdge; }\n    if (previousPositions) {\n        return {\n            alignmentEdge: previousPositions.alignmentEdge,\n            isAuto: previousPositions.isAuto,\n            targetEdge: previousPositions.targetEdge,\n        };\n    }\n    var positionInformation = __assign({}, DirectionalDictionary[directionalHint]);\n    if (getRTL()) {\n        // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.\n        if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {\n            positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;\n        }\n        return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n    }\n    return positionInformation;\n}\n/**\n * Gets the alignment data for the given information. This only really matters if the positioning is Auto.\n * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to\n * the center of the page.\n */\nfunction _getAlignmentData(positionData, target, boundingRect, coverTarget, alignTargetEdge) {\n    if (positionData.isAuto) {\n        positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n    }\n    positionData.alignTargetEdge = alignTargetEdge;\n    return positionData;\n}\nfunction getClosestEdge(targetEdge, target, boundingRect) {\n    var targetCenter = _getCenterValue(target, targetEdge);\n    var boundingCenter = _getCenterValue(boundingRect, targetEdge);\n    var _a = _getFlankingEdges(targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n    if (targetCenter <= boundingCenter) {\n        return positiveEdge;\n    }\n    else {\n        return negativeEdge;\n    }\n}\nfunction _positionElementWithinBounds(elementToPosition, target, bounding, positionData, gap, shouldScroll, minimumScrollResizeHeight, directionalHintFixed, coverTarget) {\n    if (shouldScroll === void 0) { shouldScroll = false; }\n    var estimatedElementPosition = _estimatePosition(elementToPosition, target, positionData, gap, coverTarget);\n    if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n        return {\n            elementRectangle: estimatedElementPosition,\n            targetEdge: positionData.targetEdge,\n            alignmentEdge: positionData.alignmentEdge,\n        };\n    }\n    else {\n        return _adjustFitWithinBounds(estimatedElementPosition, target, bounding, positionData, shouldScroll, minimumScrollResizeHeight, gap, directionalHintFixed, coverTarget);\n    }\n}\nfunction _finalizeBeakPosition(elementPosition, positionedBeak, bounds) {\n    var targetEdge = elementPosition.targetEdge * -1;\n    // The \"host\" element that we will use to help position the beak.\n    var actualElement = new Rectangle(0, elementPosition.elementRectangle.width, 0, elementPosition.elementRectangle.height);\n    var returnValue = {};\n    var returnEdge = _finalizeReturnEdge(elementPosition.elementRectangle, elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge, bounds);\n    // only show the beak if the callout is not fully covering the target\n    var beakEdgeDifference = _getRelativeEdgeDifference(elementPosition.elementRectangle, elementPosition.targetRectangle, targetEdge);\n    var showBeak = beakEdgeDifference > Math.abs(_getEdgeValue(positionedBeak, targetEdge));\n    returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n    returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n    return {\n        elementPosition: __assign({}, returnValue),\n        closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n        targetEdge: targetEdge,\n        hideBeak: !showBeak,\n    };\n}\nfunction _positionBeak(beakWidth, elementPosition) {\n    var target = elementPosition.targetRectangle;\n    /**\n     * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and\n     * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,\n     * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels\n     * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.\n     */\n    var _a = _getFlankingEdges(elementPosition.targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n    var beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n    var elementBounds = new Rectangle(beakWidth / 2, elementPosition.elementRectangle.width - beakWidth / 2, beakWidth / 2, elementPosition.elementRectangle.height - beakWidth / 2);\n    var beakPosition = new Rectangle(0, beakWidth, 0, beakWidth);\n    beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n    beakPosition = _centerEdgeToPoint(beakPosition, elementPosition.targetEdge * -1, beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle));\n    if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n        beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n    }\n    else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n        beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n    }\n    return beakPosition;\n}\nfunction _getRectangleFromElement(element) {\n    // eslint-disable-next-line deprecation/deprecation\n    var clientRect = element.getBoundingClientRect();\n    return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\nfunction _getRectangleFromIRect(rect) {\n    return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\nfunction _getTargetRect(bounds, target) {\n    var targetRectangle;\n    if (target) {\n        // eslint-disable-next-line no-extra-boolean-cast\n        if (!!target.preventDefault) {\n            var ev = target;\n            targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n            // eslint-disable-next-line no-extra-boolean-cast\n        }\n        else if (!!target.getBoundingClientRect) {\n            targetRectangle = _getRectangleFromElement(target);\n            // HTMLImgElements can have x and y values. The check for it being a point must go last.\n        }\n        else {\n            var rectOrPoint = target;\n            // eslint-disable-next-line deprecation/deprecation\n            var left = rectOrPoint.left || rectOrPoint.x;\n            // eslint-disable-next-line deprecation/deprecation\n            var top_1 = rectOrPoint.top || rectOrPoint.y;\n            var right = rectOrPoint.right || left;\n            var bottom = rectOrPoint.bottom || top_1;\n            targetRectangle = new Rectangle(left, right, top_1, bottom);\n        }\n        if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n            var outOfBounds = _getOutOfBoundsEdges(targetRectangle, bounds);\n            for (var _i = 0, outOfBounds_1 = outOfBounds; _i < outOfBounds_1.length; _i++) {\n                var direction = outOfBounds_1[_i];\n                targetRectangle[RectangleEdge[direction]] = bounds[RectangleEdge[direction]];\n            }\n        }\n    }\n    else {\n        targetRectangle = new Rectangle(0, 0, 0, 0);\n    }\n    return targetRectangle;\n}\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(targetRectangle, targetEdge, gapSpace, bounds, coverTarget) {\n    var maxHeight = 0;\n    var directionalHint = DirectionalDictionary[targetEdge];\n    // If cover target is set, then the max height should be calculated using the opposite of the target edge since\n    // that's the direction that the callout will expand in.\n    // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge\n    // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height\n    // is (bottom of target) - (top of screen) - gapSpace.\n    var target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n    if (target === RectangleEdge.top) {\n        maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n    }\n    else if (target === RectangleEdge.bottom) {\n        maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n    }\n    else {\n        maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n    }\n    return maxHeight > 0 ? maxHeight : bounds.height;\n}\nfunction _positionElementRelative(props, elementToPosition, boundingRect, previousPositions, shouldScroll, minimumScrollResizeHeight) {\n    if (shouldScroll === void 0) { shouldScroll = false; }\n    var gap = props.gapSpace ? props.gapSpace : 0;\n    var targetRect = _getTargetRect(boundingRect, props.target);\n    var positionData = _getAlignmentData(_getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions), targetRect, boundingRect, props.coverTarget, props.alignTargetEdge);\n    var positionedElement = _positionElementWithinBounds(_getRectangleFromElement(elementToPosition), targetRect, boundingRect, positionData, gap, shouldScroll, minimumScrollResizeHeight, props.directionalHintFixed, props.coverTarget);\n    return __assign(__assign({}, positionedElement), { targetRectangle: targetRect });\n}\nfunction _finalizePositionData(positionedElement, hostElement, bounds, coverTarget, doNotFinalizeReturnEdge) {\n    var finalizedElement = _finalizeElementPosition(positionedElement.elementRectangle, hostElement, positionedElement.targetEdge, bounds, positionedElement.alignmentEdge, coverTarget, doNotFinalizeReturnEdge, positionedElement.forcedInBounds);\n    return {\n        elementPosition: finalizedElement,\n        targetEdge: positionedElement.targetEdge,\n        alignmentEdge: positionedElement.alignmentEdge,\n    };\n}\nfunction _positionElement(props, hostElement, elementToPosition, previousPositions, win) {\n    var theWin = win !== null && win !== void 0 ? win : getWindow();\n    var boundingRect = props.bounds\n        ? _getRectangleFromIRect(props.bounds)\n        : new Rectangle(0, theWin.innerWidth - getScrollbarWidth(), 0, theWin.innerHeight);\n    var positionedElement = _positionElementRelative(props, elementToPosition, boundingRect, previousPositions);\n    return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\nfunction _calculateGapSpace(isBeakVisible, beakWidth, gapSpace) {\n    if (beakWidth === void 0) { beakWidth = 0; }\n    if (gapSpace === void 0) { gapSpace = 0; }\n    return _calculateActualBeakWidthInPixels(isBeakVisible ? beakWidth : 0) / 2 + gapSpace;\n}\nfunction _positionCallout(props, hostElement, callout, previousPositions, shouldScroll, minimumScrollResizeHeight, doNotFinalizeReturnEdge, win) {\n    if (shouldScroll === void 0) { shouldScroll = false; }\n    var theWin = win !== null && win !== void 0 ? win : getWindow();\n    var beakWidth = props.isBeakVisible ? props.beakWidth || 0 : 0;\n    var gap = _calculateGapSpace(props.isBeakVisible, props.beakWidth, props.gapSpace);\n    var positionProps = props;\n    positionProps.gapSpace = gap;\n    var boundingRect = props.bounds\n        ? _getRectangleFromIRect(props.bounds)\n        : new Rectangle(0, theWin.innerWidth - getScrollbarWidth(), 0, theWin.innerHeight);\n    var positionedElement = _positionElementRelative(positionProps, callout, boundingRect, previousPositions, shouldScroll, minimumScrollResizeHeight);\n    var beakPositioned = _positionBeak(beakWidth, positionedElement);\n    var finalizedBeakPosition = _finalizeBeakPosition(positionedElement, beakPositioned, boundingRect);\n    return __assign(__assign({}, _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge)), { beakPosition: finalizedBeakPosition });\n}\nfunction _positionCard(props, hostElement, callout, previousPositions, win) {\n    var theWin = win !== null && win !== void 0 ? win : getWindow();\n    return _positionCallout(props, hostElement, callout, previousPositions, false, undefined, true, theWin);\n}\nfunction _getRectangleFromTarget(target) {\n    var _a, _b, _c, _d;\n    var mouseTarget = target;\n    var elementTarget = target;\n    var rectOrPointTarget = target;\n    var targetRect;\n    // eslint-disable-next-line deprecation/deprecation\n    var left = (_a = rectOrPointTarget.left) !== null && _a !== void 0 ? _a : rectOrPointTarget.x;\n    // eslint-disable-next-line deprecation/deprecation\n    var top = (_b = rectOrPointTarget.top) !== null && _b !== void 0 ? _b : rectOrPointTarget.y;\n    var right = (_c = rectOrPointTarget.right) !== null && _c !== void 0 ? _c : left;\n    var bottom = (_d = rectOrPointTarget.bottom) !== null && _d !== void 0 ? _d : top;\n    // eslint-disable-next-line no-extra-boolean-cast -- may not actually be a MouseEvent\n    if (!!mouseTarget.stopPropagation) {\n        targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n    }\n    else if (left !== undefined && top !== undefined) {\n        targetRect = new Rectangle(left, right, top, bottom);\n    }\n    else {\n        targetRect = _getRectangleFromElement(elementTarget);\n    }\n    return targetRect;\n}\n// END PRIVATE FUNCTIONS\nexport var __positioningTestPackage = {\n    _finalizePositionData: _finalizePositionData,\n    _finalizeBeakPosition: _finalizeBeakPosition,\n    _calculateActualBeakWidthInPixels: _calculateActualBeakWidthInPixels,\n    _positionElementWithinBounds: _positionElementWithinBounds,\n    _positionBeak: _positionBeak,\n    _getPositionData: _getPositionData,\n    _getMaxHeightFromTargetRectangle: _getMaxHeightFromTargetRectangle,\n};\n/**\n * Used to position an element relative to the given positioning props.\n * If positioning has been completed before, previousPositions can be passed to ensure that the positioning element\n * repositions based on its previous targets rather than starting with directionalhint.\n */\nexport function positionElement(props, hostElement, elementToPosition, previousPositions, win) {\n    return _positionElement(props, hostElement, elementToPosition, previousPositions, win);\n}\nexport function positionCallout(props, hostElement, elementToPosition, previousPositions, shouldScroll, minimumScrollResizeHeight, win) {\n    return _positionCallout(props, hostElement, elementToPosition, previousPositions, shouldScroll, minimumScrollResizeHeight, undefined, win);\n}\nexport function positionCard(props, hostElement, elementToPosition, previousPositions, win) {\n    return _positionCard(props, hostElement, elementToPosition, previousPositions, win);\n}\n/**\n * Gets the maximum height that a rectangle can have in order to fit below or above a target.\n * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder\n * of the target given.\n * If no bounds are provided then the window is treated as the bounds.\n */\nexport function getMaxHeight(target, targetEdge, gapSpace, bounds, coverTarget, win) {\n    if (gapSpace === void 0) { gapSpace = 0; }\n    var theWin = win !== null && win !== void 0 ? win : getWindow();\n    var targetRect = _getRectangleFromTarget(target);\n    var boundingRectangle = bounds\n        ? _getRectangleFromIRect(bounds)\n        : new Rectangle(0, theWin.innerWidth - getScrollbarWidth(), 0, theWin.innerHeight);\n    return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge) {\n    return edge * -1;\n}\nfunction _getBoundsFromTargetWindow(target, targetWindow) {\n    var segments = undefined;\n    if (targetWindow.getWindowSegments) {\n        segments = targetWindow.getWindowSegments();\n    }\n    // Identify if we're dealing with single screen scenarios.\n    if (segments === undefined || segments.length <= 1) {\n        return {\n            top: 0,\n            left: 0,\n            right: targetWindow.innerWidth,\n            bottom: targetWindow.innerHeight,\n            width: targetWindow.innerWidth,\n            height: targetWindow.innerHeight,\n        };\n    }\n    // Logic for determining dual screen scenarios.\n    var x = 0;\n    var y = 0;\n    // If the target is an Element get coordinates for its center.\n    if (target !== null && !!target.getBoundingClientRect) {\n        var clientRect = target.getBoundingClientRect();\n        x = (clientRect.left + clientRect.right) / 2;\n        y = (clientRect.top + clientRect.bottom) / 2;\n    }\n    // If the target is not null get x-axis and y-axis coordinates directly.\n    else if (target !== null) {\n        // eslint-disable-next-line deprecation/deprecation\n        x = target.left || target.x;\n        // eslint-disable-next-line deprecation/deprecation\n        y = target.top || target.y;\n    }\n    var bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n    // Define which window segment are the coordinates in and calculate bounds based on that.\n    for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {\n        var segment = segments_1[_i];\n        if (x && segment.left <= x && segment.right >= x && y && segment.top <= y && segment.bottom >= y) {\n            bounds = {\n                top: segment.top,\n                left: segment.left,\n                right: segment.right,\n                bottom: segment.bottom,\n                width: segment.width,\n                height: segment.height,\n            };\n        }\n    }\n    return bounds;\n}\nexport function getBoundsFromTargetWindow(target, targetWindow) {\n    return _getBoundsFromTargetWindow(target, targetWindow);\n}\nexport function calculateGapSpace(isBeakVisible, beakWidth, gapSpace) {\n    return _calculateGapSpace(isBeakVisible, beakWidth, gapSpace);\n}\nexport function getRectangleFromTarget(target) {\n    return _getRectangleFromTarget(target);\n}\n//# sourceMappingURL=positioning.js.map","export var RectangleEdge;\n(function (RectangleEdge) {\n    RectangleEdge[RectangleEdge[\"top\"] = 1] = \"top\";\n    RectangleEdge[RectangleEdge[\"bottom\"] = -1] = \"bottom\";\n    RectangleEdge[RectangleEdge[\"left\"] = 2] = \"left\";\n    RectangleEdge[RectangleEdge[\"right\"] = -2] = \"right\";\n})(RectangleEdge || (RectangleEdge = {}));\nexport var Position;\n(function (Position) {\n    Position[Position[\"top\"] = 0] = \"top\";\n    Position[Position[\"bottom\"] = 1] = \"bottom\";\n    Position[Position[\"start\"] = 2] = \"start\";\n    Position[Position[\"end\"] = 3] = \"end\";\n})(Position || (Position = {}));\n//# sourceMappingURL=positioning.types.js.map","import { setVersion } from './setVersion';\nexport { setVersion };\nsetVersion('@fluentui/set-version', '6.0.0');\n//# sourceMappingURL=index.js.map","// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -\n// this cache is local to the module closure inside this bundle\nvar packagesCache = {};\n// Cache access to window to avoid IE11 memory leak.\nvar _win = undefined;\ntry {\n    _win = window;\n}\ncatch (e) {\n    /* no-op */\n}\nexport function setVersion(packageName, packageVersion) {\n    if (typeof _win !== 'undefined') {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var packages = (_win.__packages__ = _win.__packages__ || {});\n        // We allow either the global packages or local packages caches to invalidate so testing can\n        // just clear the global to set this state\n        if (!packages[packageName] || !packagesCache[packageName]) {\n            packagesCache[packageName] = packageVersion;\n            var versions = (packages[packageName] = packages[packageName] || []);\n            versions.push(packageVersion);\n        }\n    }\n}\n//# sourceMappingURL=setVersion.js.map","export var FLUENT_CDN_BASE_URL = 'https://res.cdn.office.net/files/fabric-cdn-prod_20240129.001';\n//# sourceMappingURL=cdn.js.map","import { buildClassMap } from '../utilities/index';\nimport { AnimationStyles } from '../styles/index';\n/**\n * {@docCategory AnimationClassNames}\n */\nexport var AnimationClassNames = buildClassMap(AnimationStyles);\n//# sourceMappingURL=AnimationClassNames.js.map","export { AnimationClassNames, FontClassNames, ColorClassNames } from './classNames/index';\nexport { AnimationStyles, AnimationVariables, DefaultPalette, DefaultEffects, DefaultFontStyles, registerDefaultFontFaces, FontSizes, FontWeights, IconFontSizes, createFontStyles, hiddenContentStyle, PulsingBeaconAnimationStyles, getGlobalClassNames, \n// eslint-disable-next-line deprecation/deprecation\ngetFocusStyle, getFocusOutlineStyle, getInputFocusStyle, getThemedContext, focusClear, ThemeSettingName, getTheme, loadTheme, createTheme, registerOnThemeChangeCallback, removeOnThemeChangeCallback, HighContrastSelector, HighContrastSelectorWhite, HighContrastSelectorBlack, \n// eslint-disable-next-line deprecation/deprecation\nEdgeChromiumHighContrastSelector, ScreenWidthMinSmall, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinXXXLarge, ScreenWidthMaxSmall, ScreenWidthMaxMedium, ScreenWidthMaxLarge, ScreenWidthMaxXLarge, ScreenWidthMaxXXLarge, ScreenWidthMinUhfMobile, getScreenSelector, getHighContrastNoAdjustStyle, \n// eslint-disable-next-line deprecation/deprecation\ngetEdgeChromiumNoHighContrastAdjustSelector, normalize, noWrap, getFadedOverflowStyle, getPlaceholderStyles, ZIndexes, } from './styles/index';\nexport { buildClassMap, getIcon, registerIcons, registerIconAlias, unregisterIcons, setIconOptions, getIconClassName, } from './utilities/index';\nexport { InjectionMode, Stylesheet, concatStyleSets, concatStyleSetsWithProps, fontFace, keyframes, mergeStyleSets, mergeStyles, } from './MergeStyles';\nexport { FLUENT_CDN_BASE_URL } from './cdn';\nimport './version';\n// Ensure theme is initialized when this package is referenced.\nimport { initializeThemeInCustomizations } from './styles/theme';\ninitializeThemeInCustomizations();\n//# sourceMappingURL=index.js.map","export var HighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var HighContrastSelectorWhite = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: black-on-white), screen and (forced-colors: active) and (prefers-color-scheme: light)';\nexport var HighContrastSelectorBlack = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: white-on-black), screen and (forced-colors: active) and (prefers-color-scheme: dark)';\n/**\n * @deprecated Use `HighContrastSelector`\n */\nexport var EdgeChromiumHighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var ScreenWidthMinSmall = 320;\nexport var ScreenWidthMinMedium = 480;\nexport var ScreenWidthMinLarge = 640;\nexport var ScreenWidthMinXLarge = 1024;\nexport var ScreenWidthMinXXLarge = 1366;\nexport var ScreenWidthMinXXXLarge = 1920;\nexport var ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;\nexport var ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;\nexport var ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;\nexport var ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;\nexport var ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;\nexport var ScreenWidthMinUhfMobile = 768;\nexport function getScreenSelector(min, max) {\n    var minSelector = typeof min === 'number' ? \" and (min-width: \".concat(min, \"px)\") : '';\n    var maxSelector = typeof max === 'number' ? \" and (max-width: \".concat(max, \"px)\") : '';\n    return \"@media only screen\".concat(minSelector).concat(maxSelector);\n}\n/**\n * The style which turns off high contrast adjustment in browsers.\n */\nexport function getHighContrastNoAdjustStyle() {\n    return {\n        forcedColorAdjust: 'none',\n        MsHighContrastAdjust: 'none',\n    };\n}\n/**\n * The style which turns off high contrast adjustment in (only) Edge Chromium browser.\n *  @deprecated Use `getHighContrastNoAdjustStyle`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getEdgeChromiumNoHighContrastAdjustSelector() {\n    var _a;\n    return _a = {},\n        // eslint-disable-next-line deprecation/deprecation\n        _a[EdgeChromiumHighContrastSelector] = {\n            forcedColorAdjust: 'none',\n            MsHighContrastAdjust: 'none',\n        },\n        _a;\n}\n//# sourceMappingURL=CommonStyles.js.map","// This file mimics styles and mixins from _General.Mixins.scss\nexport var normalize = {\n    boxShadow: 'none',\n    margin: 0,\n    padding: 0,\n    boxSizing: 'border-box',\n};\nexport var noWrap = {\n    overflow: 'hidden',\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=GeneralStyles.js.map","import { HighContrastSelector } from './CommonStyles';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nimport { ZIndexes } from './zIndexes';\nexport function getFocusStyle(theme, insetOrOptions, position, highContrastStyle, borderColor, outlineColor, isFocusedOnly, borderRadius) {\n    if (typeof insetOrOptions === 'number' || !insetOrOptions) {\n        return _getFocusStyleInternal(theme, {\n            inset: insetOrOptions,\n            position: position,\n            highContrastStyle: highContrastStyle,\n            borderColor: borderColor,\n            outlineColor: outlineColor,\n            isFocusedOnly: isFocusedOnly,\n            borderRadius: borderRadius,\n        });\n    }\n    else {\n        return _getFocusStyleInternal(theme, insetOrOptions);\n    }\n}\nfunction _getFocusStyleInternal(theme, options) {\n    var _a, _b;\n    if (options === void 0) { options = {}; }\n    var borderRadius = options.borderRadius, _c = options.inset, inset = _c === void 0 ? 0 : _c, _d = options.width, width = _d === void 0 ? 1 : _d, _e = options.position, position = _e === void 0 ? 'relative' : _e, highContrastStyle = options.highContrastStyle, _f = options.borderColor, borderColor = _f === void 0 ? theme.palette.white : _f, _g = options.outlineColor, outlineColor = _g === void 0 ? theme.palette.neutralSecondary : _g, _h = options.isFocusedOnly, isFocusedOnly = _h === void 0 ? true : _h, pointerEvents = options.pointerEvents;\n    return {\n        // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.\n        outline: 'transparent',\n        // Requirement because pseudo-element is absolutely positioned.\n        position: position,\n        selectors: (_a = {\n                // Clear the focus border in Firefox.\n                // Reference: http://stackoverflow.com/a/199319/1436671\n                '::-moz-focus-inner': {\n                    border: '0',\n                }\n            },\n            // When the element that uses this mixin is in a :focus state, add a pseudo-element to\n            // create a border.\n            _a[\".\".concat(IsFocusVisibleClassName, \" &\").concat(isFocusedOnly ? ':focus' : '', \":after, :host(.\").concat(IsFocusVisibleClassName, \") &\").concat(isFocusedOnly ? ':focus' : '', \":after\")] = {\n                content: '\"\"',\n                position: 'absolute',\n                pointerEvents: pointerEvents,\n                left: inset + 1,\n                top: inset + 1,\n                bottom: inset + 1,\n                right: inset + 1,\n                border: \"\".concat(width, \"px solid \").concat(borderColor),\n                outline: \"\".concat(width, \"px solid \").concat(outlineColor),\n                zIndex: ZIndexes.FocusStyle,\n                borderRadius: borderRadius,\n                selectors: (_b = {},\n                    _b[HighContrastSelector] = highContrastStyle,\n                    _b),\n            },\n            _a),\n    };\n}\n/**\n * Generates style to clear browser specific focus styles.\n */\nexport function focusClear() {\n    return {\n        selectors: {\n            '&::-moz-focus-inner': {\n                // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671\n                border: 0,\n            },\n            '&': {\n                // Clear browser specific focus styles and use transparent as placeholder for focus style\n                outline: 'transparent',\n            },\n        },\n    };\n}\n/**\n * Generates a style which can be used to set a border on focus.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border (default 0)\n * @param width - The border width in pixels (default 1)\n * @param color - Color of the outline (default `theme.palette.neutralSecondary`)\n * @returns The style object.\n */\nexport function getFocusOutlineStyle(theme, inset, width, color) {\n    var _a;\n    if (inset === void 0) { inset = 0; }\n    if (width === void 0) { width = 1; }\n    return {\n        selectors: (_a = {},\n            _a[\":global(\".concat(IsFocusVisibleClassName, \") &:focus\")] = {\n                outline: \"\".concat(width, \" solid \").concat(color || theme.palette.neutralSecondary),\n                outlineOffset: \"\".concat(-inset, \"px\"),\n            },\n            _a),\n    };\n}\n/**\n * Generates text input border styles on focus.\n *\n * @param borderColor - Color of the border.\n * @param borderRadius - Radius of the border.\n * @param borderType - Type of the border.\n * @param borderPosition - Position of the border relative to the input element (default to -1\n * as it's the most common border width of the input element)\n * @returns The style object.\n */\nexport var getInputFocusStyle = function (borderColor, borderRadius, borderType, borderPosition) {\n    var _a, _b, _c;\n    if (borderType === void 0) { borderType = 'border'; }\n    if (borderPosition === void 0) { borderPosition = -1; }\n    var isBorderBottom = borderType === 'borderBottom';\n    return {\n        borderColor: borderColor,\n        selectors: {\n            ':after': (_a = {\n                    pointerEvents: 'none',\n                    content: \"''\",\n                    position: 'absolute',\n                    left: isBorderBottom ? 0 : borderPosition,\n                    top: borderPosition,\n                    bottom: borderPosition,\n                    right: isBorderBottom ? 0 : borderPosition\n                },\n                _a[borderType] = \"2px solid \".concat(borderColor),\n                _a.borderRadius = borderRadius,\n                _a.width = borderType === 'borderBottom' ? '100%' : undefined,\n                _a.selectors = (_b = {},\n                    _b[HighContrastSelector] = (_c = {},\n                        _c[borderType === 'border' ? 'borderColor' : 'borderBottomColor'] = 'Highlight',\n                        _c),\n                    _b),\n                _a),\n        },\n    };\n};\n//# sourceMappingURL=getFocusStyle.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nimport { memoizeFunction } from '@fluentui/utilities';\n/**\n * Internal memoized function which simply takes in the class map and the\n * disable boolean. These immutable values can be memoized.\n */\nvar _getGlobalClassNames = memoizeFunction(function (classNames, disableGlobalClassNames) {\n    var styleSheet = Stylesheet.getInstance();\n    if (disableGlobalClassNames) {\n        // disable global classnames\n        return Object.keys(classNames).reduce(function (acc, className) {\n            acc[className] = styleSheet.getClassName(classNames[className]);\n            return acc;\n        }, {});\n    }\n    // use global classnames\n    return classNames;\n});\n/**\n * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`\n * Note that calls to this function are memoized.\n *\n * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in\n * the same instance on each call to benefit from memoization.\n * @param theme - The theme to check the flag on\n * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.\n */\nexport function getGlobalClassNames(classNames, theme, disableGlobalClassNames) {\n    return _getGlobalClassNames(classNames, disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames);\n}\n//# sourceMappingURL=getGlobalClassNames.js.map","export var hiddenContentStyle = {\n    position: 'absolute',\n    width: 1,\n    height: 1,\n    margin: -1,\n    padding: 0,\n    border: 0,\n    overflow: 'hidden',\n    whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=hiddenContentStyle.js.map","import { __assign } from \"tslib\";\nimport { Customizations, getWindow } from '@fluentui/utilities';\nimport { loadTheme as legacyLoadTheme } from '@microsoft/load-themed-styles';\nimport { createTheme } from '@fluentui/theme';\nexport { createTheme } from '@fluentui/theme';\nvar _theme = createTheme({});\nvar _onThemeChangeCallbacks = [];\nexport var ThemeSettingName = 'theme';\nexport function initializeThemeInCustomizations() {\n    var _a;\n    var _b, _c;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    var win = getWindow();\n    if ((_b = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _b === void 0 ? void 0 : _b.legacyTheme) {\n        // does everything the `else` clause does and more, such as invoke legacy theming\n        loadTheme(win.FabricConfig.legacyTheme);\n    }\n    else if (!Customizations.getSettings([ThemeSettingName]).theme) {\n        if ((_c = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _c === void 0 ? void 0 : _c.theme) {\n            _theme = createTheme(win.FabricConfig.theme);\n        }\n        // Set the default theme.\n        Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n    }\n}\ninitializeThemeInCustomizations();\n/**\n * Gets the theme object\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function getTheme(depComments) {\n    if (depComments === void 0) { depComments = false; }\n    if (depComments === true) {\n        _theme = createTheme({}, depComments);\n    }\n    return _theme;\n}\n/**\n * Registers a callback that gets called whenever the theme changes.\n * This should only be used when the component cannot automatically get theme changes through its state.\n * This will not register duplicate callbacks.\n */\nexport function registerOnThemeChangeCallback(callback) {\n    if (_onThemeChangeCallbacks.indexOf(callback) === -1) {\n        _onThemeChangeCallbacks.push(callback);\n    }\n}\n/**\n * See registerOnThemeChangeCallback().\n * Removes previously registered callbacks.\n */\nexport function removeOnThemeChangeCallback(callback) {\n    var i = _onThemeChangeCallbacks.indexOf(callback);\n    if (i === -1) {\n        return;\n    }\n    _onThemeChangeCallbacks.splice(i, 1);\n}\n/**\n * Applies the theme, while filling in missing slots.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function loadTheme(theme, depComments) {\n    var _a;\n    if (depComments === void 0) { depComments = false; }\n    _theme = createTheme(theme, depComments);\n    // Invoke the legacy method of theming the page as well.\n    legacyLoadTheme(__assign(__assign(__assign(__assign({}, _theme.palette), _theme.semanticColors), _theme.effects), _loadFonts(_theme)));\n    Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n    _onThemeChangeCallbacks.forEach(function (callback) {\n        try {\n            callback(_theme);\n        }\n        catch (e) {\n            // don't let a bad callback break everything else\n        }\n    });\n    return _theme;\n}\n/**\n * Loads font variables into a JSON object.\n * @param theme - The theme object\n */\nfunction _loadFonts(theme) {\n    var lines = {};\n    for (var _i = 0, _a = Object.keys(theme.fonts); _i < _a.length; _i++) {\n        var fontName = _a[_i];\n        var font = theme.fonts[fontName];\n        for (var _b = 0, _c = Object.keys(font); _b < _c.length; _b++) {\n            var propName = _c[_b];\n            var name_1 = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);\n            var value = font[propName];\n            if (propName === 'fontSize' && typeof value === 'number') {\n                // if it's a number, convert it to px by default like our theming system does\n                value = value + 'px';\n            }\n            lines[name_1] = value;\n        }\n    }\n    return lines;\n}\n//# sourceMappingURL=theme.js.map","export var ZIndexes;\n(function (ZIndexes) {\n    ZIndexes.Nav = 1;\n    /**\n     * @deprecated Do not use\n     */\n    ZIndexes.ScrollablePane = 1;\n    ZIndexes.FocusStyle = 1;\n    ZIndexes.Coachmark = 1000;\n    ZIndexes.Layer = 1000000;\n    ZIndexes.KeytipLayer = 1000001;\n})(ZIndexes || (ZIndexes = {}));\n//# sourceMappingURL=zIndexes.js.map","import { mergeStyles } from '../MergeStyles';\n/**\n * Builds a class names object from a given map.\n *\n * @param styles - Map of unprocessed styles.\n * @returns Map of property name to class name.\n */\nexport function buildClassMap(styles) {\n    var classes = {};\n    var _loop_1 = function (styleName) {\n        if (styles.hasOwnProperty(styleName)) {\n            var className_1;\n            Object.defineProperty(classes, styleName, {\n                get: function () {\n                    if (className_1 === undefined) {\n                        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                        className_1 = mergeStyles(styles[styleName]).toString();\n                    }\n                    return className_1;\n                },\n                enumerable: true,\n                configurable: true,\n            });\n        }\n    };\n    for (var styleName in styles) {\n        _loop_1(styleName);\n    }\n    return classes;\n}\n//# sourceMappingURL=buildClassMap.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings, warn } from '@fluentui/utilities';\nimport { fontFace, mergeStyles, Stylesheet } from '@fluentui/merge-styles';\nvar ICON_SETTING_NAME = 'icons';\nvar _iconSettings = GlobalSettings.getValue(ICON_SETTING_NAME, {\n    __options: {\n        disableWarnings: false,\n        warnOnMissingIcons: true,\n    },\n    __remapped: {},\n});\n// Reset icon registration on stylesheet resets.\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n    stylesheet.onReset(function () {\n        for (var name_1 in _iconSettings) {\n            if (_iconSettings.hasOwnProperty(name_1) && !!_iconSettings[name_1].subset) {\n                _iconSettings[name_1].subset.className = undefined;\n            }\n        }\n    });\n}\n/**\n * Normalizes an icon name for consistent mapping.\n * Current implementation is to convert the icon name to lower case.\n *\n * @param name - Icon name to normalize.\n * @returns {string} Normalized icon name to use for indexing and mapping.\n */\nvar normalizeIconName = function (name) { return name.toLowerCase(); };\n/**\n * Registers a given subset of icons.\n *\n * @param iconSubset - the icon subset definition.\n */\nexport function registerIcons(iconSubset, options) {\n    var subset = __assign(__assign({}, iconSubset), { isRegistered: false, className: undefined });\n    var icons = iconSubset.icons;\n    // Grab options, optionally mix user provided ones on top.\n    options = options ? __assign(__assign({}, _iconSettings.__options), options) : _iconSettings.__options;\n    for (var iconName in icons) {\n        if (icons.hasOwnProperty(iconName)) {\n            var code = icons[iconName];\n            var normalizedIconName = normalizeIconName(iconName);\n            if (_iconSettings[normalizedIconName]) {\n                _warnDuplicateIcon(iconName);\n            }\n            else {\n                _iconSettings[normalizedIconName] = {\n                    code: code,\n                    subset: subset,\n                };\n            }\n        }\n    }\n}\n/**\n * Unregisters icons by name.\n *\n * @param iconNames - List of icons to unregister.\n */\nexport function unregisterIcons(iconNames) {\n    var options = _iconSettings.__options;\n    var _loop_1 = function (iconName) {\n        var normalizedIconName = normalizeIconName(iconName);\n        if (_iconSettings[normalizedIconName]) {\n            delete _iconSettings[normalizedIconName];\n        }\n        else {\n            // Warn that we are trying to delete an icon that doesn't exist\n            if (!options.disableWarnings) {\n                warn(\"The icon \\\"\".concat(iconName, \"\\\" tried to unregister but was not registered.\"));\n            }\n        }\n        // Delete any aliases for this iconName\n        if (_iconSettings.__remapped[normalizedIconName]) {\n            delete _iconSettings.__remapped[normalizedIconName];\n        }\n        // Delete any items that were an alias for this iconName\n        Object.keys(_iconSettings.__remapped).forEach(function (key) {\n            if (_iconSettings.__remapped[key] === normalizedIconName) {\n                delete _iconSettings.__remapped[key];\n            }\n        });\n    };\n    for (var _i = 0, iconNames_1 = iconNames; _i < iconNames_1.length; _i++) {\n        var iconName = iconNames_1[_i];\n        _loop_1(iconName);\n    }\n}\n/**\n * Remaps one icon name to another.\n */\nexport function registerIconAlias(iconName, mappedToName) {\n    _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);\n}\n/**\n * Gets an icon definition. If an icon is requested but the subset has yet to be registered,\n * it will get registered immediately.\n *\n * @public\n * @param name - Name of icon.\n */\nexport function getIcon(name) {\n    var icon = undefined;\n    var options = _iconSettings.__options;\n    name = name ? normalizeIconName(name) : '';\n    name = _iconSettings.__remapped[name] || name;\n    if (name) {\n        icon = _iconSettings[name];\n        if (icon) {\n            var subset = icon.subset;\n            if (subset && subset.fontFace) {\n                if (!subset.isRegistered) {\n                    fontFace(subset.fontFace);\n                    subset.isRegistered = true;\n                }\n                if (!subset.className) {\n                    subset.className = mergeStyles(subset.style, {\n                        fontFamily: subset.fontFace.fontFamily,\n                        fontWeight: subset.fontFace.fontWeight || 'normal',\n                        fontStyle: subset.fontFace.fontStyle || 'normal',\n                    });\n                }\n            }\n        }\n        else {\n            // eslint-disable-next-line deprecation/deprecation\n            if (!options.disableWarnings && options.warnOnMissingIcons) {\n                warn(\"The icon \\\"\".concat(name, \"\\\" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.\"));\n            }\n        }\n    }\n    return icon;\n}\n/**\n * Sets the icon options.\n *\n * @public\n */\nexport function setIconOptions(options) {\n    _iconSettings.__options = __assign(__assign({}, _iconSettings.__options), options);\n}\nvar _missingIcons = [];\nvar _missingIconsTimer = undefined;\nfunction _warnDuplicateIcon(iconName) {\n    var options = _iconSettings.__options;\n    var warningDelay = 2000;\n    var maxIconsInMessage = 10;\n    if (!options.disableWarnings) {\n        _missingIcons.push(iconName);\n        if (_missingIconsTimer === undefined) {\n            _missingIconsTimer = setTimeout(function () {\n                warn(\"Some icons were re-registered. Applications should only call registerIcons for any given \" +\n                    \"icon once. Redefining what an icon is may have unintended consequences. Duplicates \" +\n                    \"include: \\n\" +\n                    _missingIcons.slice(0, maxIconsInMessage).join(', ') +\n                    (_missingIcons.length > maxIconsInMessage ? \" (+ \".concat(_missingIcons.length - maxIconsInMessage, \" more)\") : ''));\n                _missingIconsTimer = undefined;\n                _missingIcons = [];\n            }, warningDelay);\n        }\n    }\n}\n//# sourceMappingURL=icons.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/style-utilities', '8.10.18');\n//# sourceMappingURL=version.js.map","// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport var DefaultPalette = {\n    themeDarker: '#004578',\n    themeDark: '#005a9e',\n    themeDarkAlt: '#106ebe',\n    themePrimary: '#0078d4',\n    themeSecondary: '#2b88d8',\n    themeTertiary: '#71afe5',\n    themeLight: '#c7e0f4',\n    themeLighter: '#deecf9',\n    themeLighterAlt: '#eff6fc',\n    black: '#000000',\n    blackTranslucent40: 'rgba(0,0,0,.4)',\n    neutralDark: '#201f1e',\n    neutralPrimary: '#323130',\n    neutralPrimaryAlt: '#3b3a39',\n    neutralSecondary: '#605e5c',\n    neutralSecondaryAlt: '#8a8886',\n    neutralTertiary: '#a19f9d',\n    neutralTertiaryAlt: '#c8c6c4',\n    neutralQuaternary: '#d2d0ce',\n    neutralQuaternaryAlt: '#e1dfdd',\n    neutralLight: '#edebe9',\n    neutralLighter: '#f3f2f1',\n    neutralLighterAlt: '#faf9f8',\n    accent: '#0078d4',\n    white: '#ffffff',\n    whiteTranslucent40: 'rgba(255,255,255,.4)',\n    yellowDark: '#d29200',\n    yellow: '#ffb900',\n    yellowLight: '#fff100',\n    orange: '#d83b01',\n    orangeLight: '#ea4300',\n    orangeLighter: '#ff8c00',\n    redDark: '#a4262c',\n    red: '#e81123',\n    magentaDark: '#5c005c',\n    magenta: '#b4009e',\n    magentaLight: '#e3008c',\n    purpleDark: '#32145a',\n    purple: '#5c2d91',\n    purpleLight: '#b4a0ff',\n    blueDark: '#002050',\n    blueMid: '#00188f',\n    blue: '#0078d4',\n    blueLight: '#00bcf2',\n    tealDark: '#004b50',\n    teal: '#008272',\n    tealLight: '#00b294',\n    greenDark: '#004b1c',\n    green: '#107c10',\n    greenLight: '#bad80a',\n};\n//# sourceMappingURL=DefaultPalette.js.map","import { DefaultPalette } from './colors/index';\nimport { DefaultEffects } from './effects/index';\nimport { DefaultFontStyles } from './fonts/index';\nimport { mergeThemes } from './mergeThemes';\nimport { DefaultSpacing } from './spacing/index';\nimport { makeSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Creates a custom theme definition.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme, depComments) {\n    if (theme === void 0) { theme = {}; }\n    if (depComments === void 0) { depComments = false; }\n    var isInverted = !!theme.isInverted;\n    var baseTheme = {\n        palette: DefaultPalette,\n        effects: DefaultEffects,\n        fonts: DefaultFontStyles,\n        spacing: DefaultSpacing,\n        isInverted: isInverted,\n        disableGlobalClassNames: false,\n        semanticColors: makeSemanticColors(DefaultPalette, DefaultEffects, undefined, isInverted, depComments),\n        rtl: undefined,\n    };\n    return mergeThemes(baseTheme, theme);\n}\n//# sourceMappingURL=createTheme.js.map","import { Depths } from './FluentDepths';\nexport var DefaultEffects = {\n    elevation4: Depths.depth4,\n    elevation8: Depths.depth8,\n    elevation16: Depths.depth16,\n    elevation64: Depths.depth64,\n    roundedCorner2: '2px',\n    roundedCorner4: '4px',\n    roundedCorner6: '6px',\n};\n//# sourceMappingURL=DefaultEffects.js.map","export var Depths;\n(function (Depths) {\n    Depths.depth0 = '0 0 0 0 transparent';\n    Depths.depth4 = '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)';\n    Depths.depth8 = '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)';\n    Depths.depth16 = '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)';\n    Depths.depth64 = '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)';\n})(Depths || (Depths = {}));\n//# sourceMappingURL=FluentDepths.js.map","import { fontFace } from '@fluentui/merge-styles';\nimport { FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport { createFontStyles } from './createFontStyles';\nimport { getLanguage, getWindow } from '@fluentui/utilities';\n// Default urls.\nvar DefaultBaseUrl = 'https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets';\n// Standard font styling.\nexport var DefaultFontStyles = createFontStyles(getLanguage());\nfunction _registerFontFace(fontFamily, url, fontWeight, localFontName) {\n    fontFamily = \"'\".concat(fontFamily, \"'\");\n    var localFontSrc = localFontName !== undefined ? \"local('\".concat(localFontName, \"'),\") : '';\n    fontFace({\n        fontFamily: fontFamily,\n        src: localFontSrc + \"url('\".concat(url, \".woff2') format('woff2'),\") + \"url('\".concat(url, \".woff') format('woff')\"),\n        fontWeight: fontWeight,\n        fontStyle: 'normal',\n        fontDisplay: 'swap',\n    });\n}\nfunction _registerFontFaceSet(baseUrl, fontFamily, cdnFolder, cdnFontName, localFontName) {\n    if (cdnFontName === void 0) { cdnFontName = 'segoeui'; }\n    var urlBase = \"\".concat(baseUrl, \"/\").concat(cdnFolder, \"/\").concat(cdnFontName);\n    _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n    _registerFontFace(fontFamily, urlBase + '-semilight', FontWeights.semilight, localFontName && localFontName + ' SemiLight');\n    _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n    _registerFontFace(fontFamily, urlBase + '-semibold', FontWeights.semibold, localFontName && localFontName + ' SemiBold');\n    _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\nexport function registerDefaultFontFaces(baseUrl) {\n    if (baseUrl) {\n        var fontUrl = \"\".concat(baseUrl, \"/fonts\");\n        // Produce @font-face definitions for all supported web fonts.\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n        _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n        _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n        // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n        // the font-face generated above to use the 'semilight' weight instead.\n        _registerFontFace('Leelawadee UI Web', \"\".concat(fontUrl, \"/leelawadeeui-thai/leelawadeeui-semilight\"), FontWeights.light);\n        // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n        // the font-face generated above to use the 'bold' weight instead.\n        _registerFontFace('Leelawadee UI Web', \"\".concat(fontUrl, \"/leelawadeeui-thai/leelawadeeui-bold\"), FontWeights.semibold);\n    }\n}\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl() {\n    var _a, _b;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    var fabricConfig = (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.FabricConfig;\n    return (_b = fabricConfig === null || fabricConfig === void 0 ? void 0 : fabricConfig.fontBaseUrl) !== null && _b !== void 0 ? _b : DefaultBaseUrl;\n}\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n//# sourceMappingURL=DefaultFontStyles.js.map","// Font face names to be registered.\nexport var LocalizedFontNames;\n(function (LocalizedFontNames) {\n    LocalizedFontNames.Arabic = 'Segoe UI Web (Arabic)';\n    LocalizedFontNames.Cyrillic = 'Segoe UI Web (Cyrillic)';\n    LocalizedFontNames.EastEuropean = 'Segoe UI Web (East European)';\n    LocalizedFontNames.Greek = 'Segoe UI Web (Greek)';\n    LocalizedFontNames.Hebrew = 'Segoe UI Web (Hebrew)';\n    LocalizedFontNames.Thai = 'Leelawadee UI Web';\n    LocalizedFontNames.Vietnamese = 'Segoe UI Web (Vietnamese)';\n    LocalizedFontNames.WestEuropean = 'Segoe UI Web (West European)';\n    LocalizedFontNames.Selawik = 'Selawik Web';\n    LocalizedFontNames.Armenian = 'Segoe UI Web (Armenian)';\n    LocalizedFontNames.Georgian = 'Segoe UI Web (Georgian)';\n})(LocalizedFontNames || (LocalizedFontNames = {}));\n// Font families with fallbacks, for the general regions.\nexport var LocalizedFontFamilies;\n(function (LocalizedFontFamilies) {\n    LocalizedFontFamilies.Arabic = \"'\".concat(LocalizedFontNames.Arabic, \"'\");\n    LocalizedFontFamilies.ChineseSimplified = \"'Microsoft Yahei UI', Verdana, Simsun\";\n    LocalizedFontFamilies.ChineseTraditional = \"'Microsoft Jhenghei UI', Pmingliu\";\n    LocalizedFontFamilies.Cyrillic = \"'\".concat(LocalizedFontNames.Cyrillic, \"'\");\n    LocalizedFontFamilies.EastEuropean = \"'\".concat(LocalizedFontNames.EastEuropean, \"'\");\n    LocalizedFontFamilies.Greek = \"'\".concat(LocalizedFontNames.Greek, \"'\");\n    LocalizedFontFamilies.Hebrew = \"'\".concat(LocalizedFontNames.Hebrew, \"'\");\n    LocalizedFontFamilies.Hindi = \"'Nirmala UI'\";\n    LocalizedFontFamilies.Japanese = \"'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka\";\n    LocalizedFontFamilies.Korean = \"'Malgun Gothic', Gulim\";\n    LocalizedFontFamilies.Selawik = \"'\".concat(LocalizedFontNames.Selawik, \"'\");\n    LocalizedFontFamilies.Thai = \"'Leelawadee UI Web', 'Kmer UI'\";\n    LocalizedFontFamilies.Vietnamese = \"'\".concat(LocalizedFontNames.Vietnamese, \"'\");\n    LocalizedFontFamilies.WestEuropean = \"'\".concat(LocalizedFontNames.WestEuropean, \"'\");\n    LocalizedFontFamilies.Armenian = \"'\".concat(LocalizedFontNames.Armenian, \"'\");\n    LocalizedFontFamilies.Georgian = \"'\".concat(LocalizedFontNames.Georgian, \"'\");\n})(LocalizedFontFamilies || (LocalizedFontFamilies = {}));\n// Standard font sizes.\nexport var FontSizes;\n(function (FontSizes) {\n    FontSizes.size10 = '10px';\n    FontSizes.size12 = '12px';\n    FontSizes.size14 = '14px';\n    FontSizes.size16 = '16px';\n    FontSizes.size18 = '18px';\n    FontSizes.size20 = '20px';\n    FontSizes.size24 = '24px';\n    FontSizes.size28 = '28px';\n    FontSizes.size32 = '32px';\n    FontSizes.size42 = '42px';\n    FontSizes.size68 = '68px';\n    FontSizes.mini = '10px';\n    FontSizes.xSmall = '10px';\n    FontSizes.small = '12px';\n    FontSizes.smallPlus = '12px';\n    FontSizes.medium = '14px';\n    FontSizes.mediumPlus = '16px';\n    FontSizes.icon = '16px';\n    FontSizes.large = '18px';\n    FontSizes.xLarge = '20px';\n    FontSizes.xLargePlus = '24px';\n    FontSizes.xxLarge = '28px';\n    FontSizes.xxLargePlus = '32px';\n    FontSizes.superLarge = '42px';\n    FontSizes.mega = '68px';\n})(FontSizes || (FontSizes = {}));\n// Standard font weights.\nexport var FontWeights;\n(function (FontWeights) {\n    FontWeights.light = 100;\n    FontWeights.semilight = 300;\n    FontWeights.regular = 400;\n    FontWeights.semibold = 600;\n    FontWeights.bold = 700;\n})(FontWeights || (FontWeights = {}));\n// Standard Icon Sizes.\nexport var IconFontSizes;\n(function (IconFontSizes) {\n    IconFontSizes.xSmall = '10px';\n    IconFontSizes.small = '12px';\n    IconFontSizes.medium = '16px';\n    IconFontSizes.large = '20px';\n})(IconFontSizes || (IconFontSizes = {}));\n//# sourceMappingURL=FluentFonts.js.map","import { FontSizes, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\n// Fallback fonts, if specified system or web fonts are unavailable.\nvar FontFamilyFallbacks = \"'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif\";\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nvar defaultFontFamily = \"'Segoe UI', '\".concat(LocalizedFontNames.WestEuropean, \"'\");\n// Mapping of language prefix to to font family.\nvar LanguageToFontMap = {\n    ar: LocalizedFontFamilies.Arabic,\n    bg: LocalizedFontFamilies.Cyrillic,\n    cs: LocalizedFontFamilies.EastEuropean,\n    el: LocalizedFontFamilies.Greek,\n    et: LocalizedFontFamilies.EastEuropean,\n    he: LocalizedFontFamilies.Hebrew,\n    hi: LocalizedFontFamilies.Hindi,\n    hr: LocalizedFontFamilies.EastEuropean,\n    hu: LocalizedFontFamilies.EastEuropean,\n    ja: LocalizedFontFamilies.Japanese,\n    kk: LocalizedFontFamilies.EastEuropean,\n    ko: LocalizedFontFamilies.Korean,\n    lt: LocalizedFontFamilies.EastEuropean,\n    lv: LocalizedFontFamilies.EastEuropean,\n    pl: LocalizedFontFamilies.EastEuropean,\n    ru: LocalizedFontFamilies.Cyrillic,\n    sk: LocalizedFontFamilies.EastEuropean,\n    'sr-latn': LocalizedFontFamilies.EastEuropean,\n    th: LocalizedFontFamilies.Thai,\n    tr: LocalizedFontFamilies.EastEuropean,\n    uk: LocalizedFontFamilies.Cyrillic,\n    vi: LocalizedFontFamilies.Vietnamese,\n    'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n    'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n    hy: LocalizedFontFamilies.Armenian,\n    ka: LocalizedFontFamilies.Georgian,\n};\nfunction _fontFamilyWithFallbacks(fontFamily) {\n    return \"\".concat(fontFamily, \", \").concat(FontFamilyFallbacks);\n}\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language) {\n    for (var lang in LanguageToFontMap) {\n        if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            return LanguageToFontMap[lang];\n        }\n    }\n    return defaultFontFamily;\n}\nfunction _createFont(size, weight, fontFamily) {\n    return {\n        fontFamily: fontFamily,\n        MozOsxFontSmoothing: 'grayscale',\n        WebkitFontSmoothing: 'antialiased',\n        fontSize: size,\n        fontWeight: weight,\n    };\n}\nexport function createFontStyles(localeCode) {\n    var localizedFont = _getLocalizedFontFamily(localeCode);\n    var fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n    var fontStyles = {\n        tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n        xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n        small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n        smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n        medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n        mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n        large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n        xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n        xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n        xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n        xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n        superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n        mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n    };\n    return fontStyles;\n}\n//# sourceMappingURL=createFontStyles.js.map","import { merge } from '@fluentui/utilities';\nimport { getSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Merge a partial/full theme into a full theme and returns a merged full theme.\n */\nexport function mergeThemes(theme, partialTheme) {\n    var _a, _b, _c;\n    if (partialTheme === void 0) { partialTheme = {}; }\n    var mergedTheme = merge({}, theme, partialTheme, {\n        semanticColors: getSemanticColors(partialTheme.palette, partialTheme.effects, partialTheme.semanticColors, partialTheme.isInverted === undefined ? theme.isInverted : partialTheme.isInverted),\n    });\n    if (((_a = partialTheme.palette) === null || _a === void 0 ? void 0 : _a.themePrimary) && !((_b = partialTheme.palette) === null || _b === void 0 ? void 0 : _b.accent)) {\n        mergedTheme.palette.accent = partialTheme.palette.themePrimary;\n    }\n    if (partialTheme.defaultFontStyle) {\n        for (var _i = 0, _d = Object.keys(mergedTheme.fonts); _i < _d.length; _i++) {\n            var fontStyle = _d[_i];\n            mergedTheme.fonts[fontStyle] = merge(mergedTheme.fonts[fontStyle], partialTheme.defaultFontStyle, (_c = partialTheme === null || partialTheme === void 0 ? void 0 : partialTheme.fonts) === null || _c === void 0 ? void 0 : _c[fontStyle]);\n        }\n    }\n    return mergedTheme;\n}\n//# sourceMappingURL=mergeThemes.js.map","import { keyframes } from '@fluentui/merge-styles';\n/* Register the keyframes */\nvar EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nvar EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nvar DURATION_1 = '0.167s';\nvar DURATION_2 = '0.267s';\nvar DURATION_3 = '0.367s';\nvar DURATION_4 = '0.467s';\nvar FADE_IN = keyframes({\n    from: { opacity: 0 },\n    to: { opacity: 1 },\n});\nvar FADE_OUT = keyframes({\n    from: { opacity: 1 },\n    to: { opacity: 0, visibility: 'hidden' },\n});\nvar SLIDE_RIGHT_IN10 = _createSlideInX(-10);\nvar SLIDE_RIGHT_IN20 = _createSlideInX(-20);\nvar SLIDE_RIGHT_IN40 = _createSlideInX(-40);\nvar SLIDE_RIGHT_IN400 = _createSlideInX(-400);\nvar SLIDE_LEFT_IN10 = _createSlideInX(10);\nvar SLIDE_LEFT_IN20 = _createSlideInX(20);\nvar SLIDE_LEFT_IN40 = _createSlideInX(40);\nvar SLIDE_LEFT_IN400 = _createSlideInX(400);\nvar SLIDE_UP_IN10 = _createSlideInY(10);\nvar SLIDE_UP_IN20 = _createSlideInY(20);\nvar SLIDE_DOWN_IN10 = _createSlideInY(-10);\nvar SLIDE_DOWN_IN20 = _createSlideInY(-20);\nvar SLIDE_RIGHT_OUT10 = _createSlideOutX(10);\nvar SLIDE_RIGHT_OUT20 = _createSlideOutX(20);\nvar SLIDE_RIGHT_OUT40 = _createSlideOutX(40);\nvar SLIDE_RIGHT_OUT400 = _createSlideOutX(400);\nvar SLIDE_LEFT_OUT10 = _createSlideOutX(-10);\nvar SLIDE_LEFT_OUT20 = _createSlideOutX(-20);\nvar SLIDE_LEFT_OUT40 = _createSlideOutX(-40);\nvar SLIDE_LEFT_OUT400 = _createSlideOutX(-400);\nvar SLIDE_UP_OUT10 = _createSlideOutY(-10);\nvar SLIDE_UP_OUT20 = _createSlideOutY(-20);\nvar SLIDE_DOWN_OUT10 = _createSlideOutY(10);\nvar SLIDE_DOWN_OUT20 = _createSlideOutY(20);\nvar SCALE_UP100 = keyframes({\n    from: { transform: 'scale3d(.98,.98,1)' },\n    to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_DOWN98 = keyframes({\n    from: { transform: 'scale3d(1,1,1)' },\n    to: { transform: 'scale3d(.98,.98,1)' },\n});\nvar SCALE_DOWN100 = keyframes({\n    from: { transform: 'scale3d(1.03,1.03,1)' },\n    to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_UP103 = keyframes({\n    from: { transform: 'scale3d(1,1,1)' },\n    to: { transform: 'scale3d(1.03,1.03,1)' },\n});\nvar ROTATE90 = keyframes({\n    from: { transform: 'rotateZ(0deg)' },\n    to: { transform: 'rotateZ(90deg)' },\n});\nvar ROTATE_N90 = keyframes({\n    from: { transform: 'rotateZ(0deg)' },\n    to: { transform: 'rotateZ(-90deg)' },\n});\n/**\n * Exporting raw duraction values and easing functions to be used in custom animations\n */\nexport var AnimationVariables = {\n    easeFunction1: EASING_FUNCTION_1,\n    easeFunction2: EASING_FUNCTION_2,\n    durationValue1: DURATION_1,\n    durationValue2: DURATION_2,\n    durationValue3: DURATION_3,\n    durationValue4: DURATION_4,\n};\n/**\n * All Fabric standard animations, exposed as json objects referencing predefined\n * keyframes. These objects can be mixed in with other class definitions.\n */\nexport var AnimationStyles = {\n    slideRightIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN10), DURATION_3, EASING_FUNCTION_1),\n    slideRightIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN20), DURATION_3, EASING_FUNCTION_1),\n    slideRightIn40: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN40), DURATION_3, EASING_FUNCTION_1),\n    slideRightIn400: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN400), DURATION_3, EASING_FUNCTION_1),\n    slideLeftIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN10), DURATION_3, EASING_FUNCTION_1),\n    slideLeftIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN20), DURATION_3, EASING_FUNCTION_1),\n    slideLeftIn40: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN40), DURATION_3, EASING_FUNCTION_1),\n    slideLeftIn400: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN400), DURATION_3, EASING_FUNCTION_1),\n    slideUpIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_UP_IN10), DURATION_3, EASING_FUNCTION_1),\n    slideUpIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_UP_IN20), DURATION_3, EASING_FUNCTION_1),\n    slideDownIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_DOWN_IN10), DURATION_3, EASING_FUNCTION_1),\n    slideDownIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_DOWN_IN20), DURATION_3, EASING_FUNCTION_1),\n    slideRightOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT10), DURATION_3, EASING_FUNCTION_1),\n    slideRightOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT20), DURATION_3, EASING_FUNCTION_1),\n    slideRightOut40: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT40), DURATION_3, EASING_FUNCTION_1),\n    slideRightOut400: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT400), DURATION_3, EASING_FUNCTION_1),\n    slideLeftOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT10), DURATION_3, EASING_FUNCTION_1),\n    slideLeftOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT20), DURATION_3, EASING_FUNCTION_1),\n    slideLeftOut40: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT40), DURATION_3, EASING_FUNCTION_1),\n    slideLeftOut400: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT400), DURATION_3, EASING_FUNCTION_1),\n    slideUpOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_UP_OUT10), DURATION_3, EASING_FUNCTION_1),\n    slideUpOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_UP_OUT20), DURATION_3, EASING_FUNCTION_1),\n    slideDownOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_DOWN_OUT10), DURATION_3, EASING_FUNCTION_1),\n    slideDownOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_DOWN_OUT20), DURATION_3, EASING_FUNCTION_1),\n    scaleUpIn100: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SCALE_UP100), DURATION_3, EASING_FUNCTION_1),\n    scaleDownIn100: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SCALE_DOWN100), DURATION_3, EASING_FUNCTION_1),\n    scaleUpOut103: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SCALE_UP103), DURATION_1, EASING_FUNCTION_2),\n    scaleDownOut98: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SCALE_DOWN98), DURATION_1, EASING_FUNCTION_2),\n    fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),\n    fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),\n    fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),\n    fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),\n    fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),\n    fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),\n    fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),\n    fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),\n    rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),\n    rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2),\n    // expandCollapse 100/200/400, delay 100/200\n};\nfunction _createAnimation(animationName, animationDuration, animationTimingFunction) {\n    return {\n        animationName: animationName,\n        animationDuration: animationDuration,\n        animationTimingFunction: animationTimingFunction,\n        animationFillMode: 'both',\n    };\n}\nfunction _createSlideInX(fromX) {\n    return keyframes({\n        from: { transform: \"translate3d(\".concat(fromX, \"px,0,0)\"), pointerEvents: 'none' },\n        to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n    });\n}\nfunction _createSlideInY(fromY) {\n    return keyframes({\n        from: { transform: \"translate3d(0,\".concat(fromY, \"px,0)\"), pointerEvents: 'none' },\n        to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n    });\n}\nfunction _createSlideOutX(toX) {\n    return keyframes({\n        from: { transform: \"translate3d(0,0,0)\" },\n        to: { transform: \"translate3d(\".concat(toX, \"px,0,0)\") },\n    });\n}\nfunction _createSlideOutY(toY) {\n    return keyframes({\n        from: { transform: \"translate3d(0,0,0)\" },\n        to: { transform: \"translate3d(0,\".concat(toY, \"px,0)\") },\n    });\n}\n//# sourceMappingURL=AnimationStyles.js.map","export var DefaultSpacing = {\n    s2: '4px',\n    s1: '8px',\n    m: '16px',\n    l1: '20px',\n    l2: '32px',\n};\n//# sourceMappingURL=DefaultSpacing.js.map","import { __assign } from \"tslib\";\n/** Generates all the semantic slot colors based on the theme so far\n * We'll use these as fallbacks for semantic slots that the passed in theme did not define.\n * The caller must still mix in the customized semantic slots at the end.\n */\nexport function makeSemanticColors(p, e, s, isInverted, depComments) {\n    if (depComments === void 0) { depComments = false; }\n    var semanticColors = __assign({ primaryButtonBorder: 'transparent', errorText: !isInverted ? '#a4262c' : '#F1707B', messageText: !isInverted ? '#323130' : '#F3F2F1', messageLink: !isInverted ? '#005A9E' : '#6CB8F6', messageLinkHovered: !isInverted ? '#004578' : '#82C7FF', infoIcon: !isInverted ? '#605e5c' : '#C8C6C4', errorIcon: !isInverted ? '#A80000' : '#F1707B', blockingIcon: !isInverted ? '#FDE7E9' : '#442726', warningIcon: !isInverted ? '#797775' : '#C8C6C4', severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100', successIcon: !isInverted ? '#107C10' : '#92C353', infoBackground: !isInverted ? '#f3f2f1' : '#323130', errorBackground: !isInverted ? '#FDE7E9' : '#442726', blockingBackground: !isInverted ? '#FDE7E9' : '#442726', warningBackground: !isInverted ? '#FFF4CE' : '#433519', severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F', successBackground: !isInverted ? '#DFF6DD' : '#393D1B', \n        // deprecated\n        warningHighlight: !isInverted ? '#ffb900' : '#fff100', successText: !isInverted ? '#107C10' : '#92c353' }, s);\n    var fullSemanticColors = getSemanticColors(p, e, semanticColors, isInverted);\n    return _fixDeprecatedSlots(fullSemanticColors, depComments);\n}\n/**\n * Map partial platte and effects to partial semantic colors.\n */\nexport function getSemanticColors(p, e, s, isInverted, depComments) {\n    if (depComments === void 0) { depComments = false; }\n    var result = {};\n    // map palette\n    var _a = p || {}, white = _a.white, black = _a.black, themePrimary = _a.themePrimary, themeDark = _a.themeDark, themeDarker = _a.themeDarker, themeDarkAlt = _a.themeDarkAlt, themeLighter = _a.themeLighter, neutralLight = _a.neutralLight, neutralLighter = _a.neutralLighter, neutralDark = _a.neutralDark, neutralQuaternary = _a.neutralQuaternary, neutralQuaternaryAlt = _a.neutralQuaternaryAlt, neutralPrimary = _a.neutralPrimary, neutralSecondary = _a.neutralSecondary, neutralSecondaryAlt = _a.neutralSecondaryAlt, neutralTertiary = _a.neutralTertiary, neutralTertiaryAlt = _a.neutralTertiaryAlt, neutralLighterAlt = _a.neutralLighterAlt, accent = _a.accent;\n    if (white) {\n        result.bodyBackground = white;\n        result.bodyFrameBackground = white;\n        result.accentButtonText = white;\n        result.buttonBackground = white;\n        result.primaryButtonText = white;\n        result.primaryButtonTextHovered = white;\n        result.primaryButtonTextPressed = white;\n        result.inputBackground = white;\n        result.inputForegroundChecked = white;\n        result.listBackground = white;\n        result.menuBackground = white;\n        result.cardStandoutBackground = white;\n    }\n    if (black) {\n        result.bodyTextChecked = black;\n        result.buttonTextCheckedHovered = black;\n    }\n    if (themePrimary) {\n        result.link = themePrimary;\n        result.primaryButtonBackground = themePrimary;\n        result.inputBackgroundChecked = themePrimary;\n        result.inputIcon = themePrimary;\n        result.inputFocusBorderAlt = themePrimary;\n        result.menuIcon = themePrimary;\n        result.menuHeader = themePrimary;\n        result.accentButtonBackground = themePrimary;\n    }\n    if (themeDark) {\n        result.primaryButtonBackgroundPressed = themeDark;\n        result.inputBackgroundCheckedHovered = themeDark;\n        result.inputIconHovered = themeDark;\n    }\n    if (themeDarker) {\n        result.linkHovered = themeDarker;\n    }\n    if (themeDarkAlt) {\n        result.primaryButtonBackgroundHovered = themeDarkAlt;\n    }\n    if (themeLighter) {\n        result.inputPlaceholderBackgroundChecked = themeLighter;\n    }\n    if (neutralLight) {\n        result.bodyBackgroundChecked = neutralLight;\n        result.bodyFrameDivider = neutralLight;\n        result.bodyDivider = neutralLight;\n        result.variantBorder = neutralLight;\n        result.buttonBackgroundCheckedHovered = neutralLight;\n        result.buttonBackgroundPressed = neutralLight;\n        result.listItemBackgroundChecked = neutralLight;\n        result.listHeaderBackgroundPressed = neutralLight;\n        result.menuItemBackgroundPressed = neutralLight;\n        // eslint-disable-next-line deprecation/deprecation\n        result.menuItemBackgroundChecked = neutralLight;\n    }\n    if (neutralLighter) {\n        result.bodyBackgroundHovered = neutralLighter;\n        result.buttonBackgroundHovered = neutralLighter;\n        result.buttonBackgroundDisabled = neutralLighter;\n        result.buttonBorderDisabled = neutralLighter;\n        result.primaryButtonBackgroundDisabled = neutralLighter;\n        result.disabledBackground = neutralLighter;\n        result.listItemBackgroundHovered = neutralLighter;\n        result.listHeaderBackgroundHovered = neutralLighter;\n        result.menuItemBackgroundHovered = neutralLighter;\n    }\n    if (neutralQuaternary) {\n        result.primaryButtonTextDisabled = neutralQuaternary;\n        result.disabledSubtext = neutralQuaternary;\n    }\n    if (neutralQuaternaryAlt) {\n        result.listItemBackgroundCheckedHovered = neutralQuaternaryAlt;\n    }\n    if (neutralTertiary) {\n        result.disabledBodyText = neutralTertiary;\n        result.variantBorderHovered = (s === null || s === void 0 ? void 0 : s.variantBorderHovered) || neutralTertiary;\n        result.buttonTextDisabled = neutralTertiary;\n        result.inputIconDisabled = neutralTertiary;\n        result.disabledText = neutralTertiary;\n    }\n    if (neutralPrimary) {\n        result.bodyText = neutralPrimary;\n        result.actionLink = neutralPrimary;\n        result.buttonText = neutralPrimary;\n        result.inputBorderHovered = neutralPrimary;\n        result.inputText = neutralPrimary;\n        result.listText = neutralPrimary;\n        result.menuItemText = neutralPrimary;\n    }\n    if (neutralLighterAlt) {\n        result.bodyStandoutBackground = neutralLighterAlt;\n        result.defaultStateBackground = neutralLighterAlt;\n    }\n    if (neutralDark) {\n        result.actionLinkHovered = neutralDark;\n        result.buttonTextHovered = neutralDark;\n        result.buttonTextChecked = neutralDark;\n        result.buttonTextPressed = neutralDark;\n        result.inputTextHovered = neutralDark;\n        result.menuItemTextHovered = neutralDark;\n    }\n    if (neutralSecondary) {\n        result.bodySubtext = neutralSecondary;\n        result.focusBorder = neutralSecondary;\n        result.inputBorder = neutralSecondary;\n        result.smallInputBorder = neutralSecondary;\n        result.inputPlaceholderText = neutralSecondary;\n    }\n    if (neutralSecondaryAlt) {\n        result.buttonBorder = neutralSecondaryAlt;\n    }\n    if (neutralTertiaryAlt) {\n        result.disabledBodySubtext = neutralTertiaryAlt;\n        result.disabledBorder = neutralTertiaryAlt;\n        result.buttonBackgroundChecked = neutralTertiaryAlt;\n        result.menuDivider = neutralTertiaryAlt;\n    }\n    if (accent) {\n        result.accentButtonBackground = accent;\n    }\n    // map effects\n    if (e === null || e === void 0 ? void 0 : e.elevation4) {\n        result.cardShadow = e.elevation4;\n    }\n    if (!isInverted && (e === null || e === void 0 ? void 0 : e.elevation8)) {\n        result.cardShadowHovered = e.elevation8;\n    }\n    else if (result.variantBorderHovered) {\n        result.cardShadowHovered = '0 0 1px ' + result.variantBorderHovered;\n    }\n    result = __assign(__assign({}, result), s);\n    return result;\n}\nfunction _fixDeprecatedSlots(s, depComments) {\n    // Add @deprecated tag as comment if enabled\n    var dep = '';\n    if (depComments === true) {\n        dep = ' /* @deprecated */';\n    }\n    /* eslint-disable deprecation/deprecation */\n    s.listTextColor = s.listText + dep;\n    s.menuItemBackgroundChecked += dep;\n    s.warningHighlight += dep;\n    s.warningText = s.messageText + dep;\n    s.successText += dep;\n    /* eslint-enable deprecation/deprecation */\n    return s;\n}\n//# sourceMappingURL=makeSemanticColors.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nvar Async = /** @class */ (function () {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    function Async(parent, onError) {\n        this._timeoutIds = null;\n        this._immediateIds = null;\n        this._intervalIds = null;\n        this._animationFrameIds = null;\n        this._isDisposed = false;\n        this._parent = parent || null;\n        this._onErrorHandler = onError;\n        this._noop = function () {\n            /* do nothing */\n        };\n    }\n    /**\n     * Dispose function, clears all async operations.\n     */\n    Async.prototype.dispose = function () {\n        var id;\n        this._isDisposed = true;\n        this._parent = null;\n        // Clear timeouts.\n        if (this._timeoutIds) {\n            for (id in this._timeoutIds) {\n                if (this._timeoutIds.hasOwnProperty(id)) {\n                    this.clearTimeout(parseInt(id, 10));\n                }\n            }\n            this._timeoutIds = null;\n        }\n        // Clear immediates.\n        if (this._immediateIds) {\n            for (id in this._immediateIds) {\n                if (this._immediateIds.hasOwnProperty(id)) {\n                    this.clearImmediate(parseInt(id, 10));\n                }\n            }\n            this._immediateIds = null;\n        }\n        // Clear intervals.\n        if (this._intervalIds) {\n            for (id in this._intervalIds) {\n                if (this._intervalIds.hasOwnProperty(id)) {\n                    this.clearInterval(parseInt(id, 10));\n                }\n            }\n            this._intervalIds = null;\n        }\n        // Clear animation frames.\n        if (this._animationFrameIds) {\n            for (id in this._animationFrameIds) {\n                if (this._animationFrameIds.hasOwnProperty(id)) {\n                    this.cancelAnimationFrame(parseInt(id, 10));\n                }\n            }\n            this._animationFrameIds = null;\n        }\n    };\n    /**\n     * SetTimeout override, which will auto cancel the timeout during dispose.\n     * @param callback - Callback to execute.\n     * @param duration - Duration in milliseconds.\n     * @returns The setTimeout id.\n     */\n    Async.prototype.setTimeout = function (callback, duration) {\n        var _this = this;\n        var timeoutId = 0;\n        if (!this._isDisposed) {\n            if (!this._timeoutIds) {\n                this._timeoutIds = {};\n            }\n            timeoutId = setTimeout(function () {\n                // Time to execute the timeout, enqueue it as a foreground task to be executed.\n                try {\n                    // Now delete the record and call the callback.\n                    if (_this._timeoutIds) {\n                        delete _this._timeoutIds[timeoutId];\n                    }\n                    callback.apply(_this._parent);\n                }\n                catch (e) {\n                    _this._logError(e);\n                }\n            }, duration);\n            this._timeoutIds[timeoutId] = true;\n        }\n        return timeoutId;\n    };\n    /**\n     * Clears the timeout.\n     * @param id - Id to cancel.\n     */\n    Async.prototype.clearTimeout = function (id) {\n        if (this._timeoutIds && this._timeoutIds[id]) {\n            clearTimeout(id);\n            delete this._timeoutIds[id];\n        }\n    };\n    /**\n     * SetImmediate override, which will auto cancel the immediate during dispose.\n     * @param callback - Callback to execute.\n     * @param targetElement - Optional target element to use for identifying the correct window.\n     * @returns The setTimeout id.\n     */\n    Async.prototype.setImmediate = function (callback, targetElement) {\n        var _this = this;\n        var immediateId = 0;\n        var win = getWindow(targetElement);\n        if (!this._isDisposed) {\n            if (!this._immediateIds) {\n                this._immediateIds = {};\n            }\n            var setImmediateCallback = function () {\n                // Time to execute the timeout, enqueue it as a foreground task to be executed.\n                try {\n                    // Now delete the record and call the callback.\n                    if (_this._immediateIds) {\n                        delete _this._immediateIds[immediateId];\n                    }\n                    callback.apply(_this._parent);\n                }\n                catch (e) {\n                    _this._logError(e);\n                }\n            };\n            immediateId = win.setTimeout(setImmediateCallback, 0);\n            this._immediateIds[immediateId] = true;\n        }\n        return immediateId;\n    };\n    /**\n     * Clears the immediate.\n     * @param id - Id to cancel.\n     * @param targetElement - Optional target element to use for identifying the correct window.\n     */\n    Async.prototype.clearImmediate = function (id, targetElement) {\n        var win = getWindow(targetElement);\n        if (this._immediateIds && this._immediateIds[id]) {\n            win.clearTimeout(id);\n            delete this._immediateIds[id];\n        }\n    };\n    /**\n     * SetInterval override, which will auto cancel the timeout during dispose.\n     * @param callback - Callback to execute.\n     * @param duration - Duration in milliseconds.\n     * @returns The setTimeout id.\n     */\n    Async.prototype.setInterval = function (callback, duration) {\n        var _this = this;\n        var intervalId = 0;\n        if (!this._isDisposed) {\n            if (!this._intervalIds) {\n                this._intervalIds = {};\n            }\n            intervalId = setInterval(function () {\n                // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n                try {\n                    callback.apply(_this._parent);\n                }\n                catch (e) {\n                    _this._logError(e);\n                }\n            }, duration);\n            this._intervalIds[intervalId] = true;\n        }\n        return intervalId;\n    };\n    /**\n     * Clears the interval.\n     * @param id - Id to cancel.\n     */\n    Async.prototype.clearInterval = function (id) {\n        if (this._intervalIds && this._intervalIds[id]) {\n            clearInterval(id);\n            delete this._intervalIds[id];\n        }\n    };\n    /**\n     * Creates a function that, when executed, will only call the func function at most once per\n     * every wait milliseconds. Provide an options object to indicate that func should be invoked\n     * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n     * function will return the result of the last func call.\n     *\n     * Note: If leading and trailing options are true func will be called on the trailing edge of\n     * the timeout only if the throttled function is invoked more than once during the wait timeout.\n     *\n     * @param func - The function to throttle.\n     * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n     * @param options - The options object.\n     * @returns The new throttled function.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    Async.prototype.throttle = function (func, wait, options) {\n        var _this = this;\n        if (this._isDisposed) {\n            return this._noop;\n        }\n        var waitMS = wait || 0;\n        var leading = true;\n        var trailing = true;\n        var lastExecuteTime = 0;\n        var lastResult;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var lastArgs;\n        var timeoutId = null;\n        if (options && typeof options.leading === 'boolean') {\n            leading = options.leading;\n        }\n        if (options && typeof options.trailing === 'boolean') {\n            trailing = options.trailing;\n        }\n        var callback = function (userCall) {\n            var now = Date.now();\n            var delta = now - lastExecuteTime;\n            var waitLength = leading ? waitMS - delta : waitMS;\n            if (delta >= waitMS && (!userCall || leading)) {\n                lastExecuteTime = now;\n                if (timeoutId) {\n                    _this.clearTimeout(timeoutId);\n                    timeoutId = null;\n                }\n                lastResult = func.apply(_this._parent, lastArgs);\n            }\n            else if (timeoutId === null && trailing) {\n                timeoutId = _this.setTimeout(callback, waitLength);\n            }\n            return lastResult;\n        };\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var resultFunction = (function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            lastArgs = args;\n            return callback(true);\n        });\n        return resultFunction;\n    };\n    /**\n     * Creates a function that will delay the execution of func until after wait milliseconds have\n     * elapsed since the last time it was invoked. Provide an options object to indicate that func\n     * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n     * to the debounced function will return the result of the last func call.\n     *\n     * Note: If leading and trailing options are true func will be called on the trailing edge of\n     * the timeout only if the debounced function is invoked more than once during the wait\n     * timeout.\n     *\n     * @param func - The function to debounce.\n     * @param wait - The number of milliseconds to delay.\n     * @param options - The options object.\n     * @returns The new debounced function.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    Async.prototype.debounce = function (func, wait, options) {\n        var _this = this;\n        if (this._isDisposed) {\n            var noOpFunction = (function () {\n                /** Do nothing */\n            });\n            noOpFunction.cancel = function () {\n                return;\n            };\n            noOpFunction.flush = (function () { return null; });\n            noOpFunction.pending = function () { return false; };\n            return noOpFunction;\n        }\n        var waitMS = wait || 0;\n        var leading = false;\n        var trailing = true;\n        var maxWait = null;\n        var lastCallTime = 0;\n        var lastExecuteTime = Date.now();\n        var lastResult;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var lastArgs;\n        var timeoutId = null;\n        if (options && typeof options.leading === 'boolean') {\n            leading = options.leading;\n        }\n        if (options && typeof options.trailing === 'boolean') {\n            trailing = options.trailing;\n        }\n        if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n            maxWait = options.maxWait;\n        }\n        var markExecuted = function (time) {\n            if (timeoutId) {\n                _this.clearTimeout(timeoutId);\n                timeoutId = null;\n            }\n            lastExecuteTime = time;\n        };\n        var invokeFunction = function (time) {\n            markExecuted(time);\n            lastResult = func.apply(_this._parent, lastArgs);\n        };\n        var callback = function (userCall) {\n            var now = Date.now();\n            var executeImmediately = false;\n            if (userCall) {\n                if (leading && now - lastCallTime >= waitMS) {\n                    executeImmediately = true;\n                }\n                lastCallTime = now;\n            }\n            var delta = now - lastCallTime;\n            var waitLength = waitMS - delta;\n            var maxWaitDelta = now - lastExecuteTime;\n            var maxWaitExpired = false;\n            if (maxWait !== null) {\n                // maxWait only matters when there is a pending callback\n                if (maxWaitDelta >= maxWait && timeoutId) {\n                    maxWaitExpired = true;\n                }\n                else {\n                    waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n                }\n            }\n            if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n                invokeFunction(now);\n            }\n            else if ((timeoutId === null || !userCall) && trailing) {\n                timeoutId = _this.setTimeout(callback, waitLength);\n            }\n            return lastResult;\n        };\n        var pending = function () {\n            return !!timeoutId;\n        };\n        var cancel = function () {\n            if (pending()) {\n                // Mark the debounced function as having executed\n                markExecuted(Date.now());\n            }\n        };\n        var flush = function () {\n            if (pending()) {\n                invokeFunction(Date.now());\n            }\n            return lastResult;\n        };\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var resultFunction = (function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            lastArgs = args;\n            return callback(true);\n        });\n        resultFunction.cancel = cancel;\n        resultFunction.flush = flush;\n        resultFunction.pending = pending;\n        return resultFunction;\n    };\n    Async.prototype.requestAnimationFrame = function (callback, targetElement) {\n        var _this = this;\n        var animationFrameId = 0;\n        var win = getWindow(targetElement);\n        if (!this._isDisposed) {\n            if (!this._animationFrameIds) {\n                this._animationFrameIds = {};\n            }\n            var animationFrameCallback = function () {\n                try {\n                    // Now delete the record and call the callback.\n                    if (_this._animationFrameIds) {\n                        delete _this._animationFrameIds[animationFrameId];\n                    }\n                    callback.apply(_this._parent);\n                }\n                catch (e) {\n                    _this._logError(e);\n                }\n            };\n            animationFrameId = win.requestAnimationFrame\n                ? win.requestAnimationFrame(animationFrameCallback)\n                : win.setTimeout(animationFrameCallback, 0);\n            this._animationFrameIds[animationFrameId] = true;\n        }\n        return animationFrameId;\n    };\n    Async.prototype.cancelAnimationFrame = function (id, targetElement) {\n        var win = getWindow(targetElement);\n        if (this._animationFrameIds && this._animationFrameIds[id]) {\n            win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n            delete this._animationFrameIds[id];\n        }\n    };\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    Async.prototype._logError = function (e) {\n        if (this._onErrorHandler) {\n            this._onErrorHandler(e);\n        }\n    };\n    return Async;\n}());\nexport { Async };\n//# sourceMappingURL=Async.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async } from './Async';\nimport { EventGroup } from './EventGroup';\nimport { warnConditionallyRequiredProps } from './warn/warnConditionallyRequiredProps';\nimport { warnMutuallyExclusive } from './warn/warnMutuallyExclusive';\nimport { warnDeprecations } from './warn/warnDeprecations';\n/**\n * BaseComponent class, which provides basic helpers for all components.\n *\n * @public\n * {@docCategory BaseComponent}\n *\n * @deprecated Do not use. We are moving away from class component.\n */\nvar BaseComponent = /** @class */ (function (_super) {\n    __extends(BaseComponent, _super);\n    /**\n     * BaseComponent constructor\n     * @param props - The props for the component.\n     * @param context - The context for the component.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    function BaseComponent(props, context) {\n        var _this = _super.call(this, props, context) || this;\n        // eslint-disable-next-line deprecation/deprecation\n        _makeAllSafe(_this, BaseComponent.prototype, [\n            'componentDidMount',\n            'shouldComponentUpdate',\n            'getSnapshotBeforeUpdate',\n            'render',\n            'componentDidUpdate',\n            'componentWillUnmount',\n        ]);\n        return _this;\n    }\n    /**\n     * When the component receives props, make sure the componentRef is updated.\n     */\n    BaseComponent.prototype.componentDidUpdate = function (prevProps, prevState) {\n        this._updateComponentRef(prevProps, this.props);\n    };\n    /**\n     * When the component has mounted, update the componentRef.\n     */\n    BaseComponent.prototype.componentDidMount = function () {\n        this._setComponentRef(this.props.componentRef, this);\n    };\n    /**\n     * If we have disposables, dispose them automatically on unmount.\n     */\n    BaseComponent.prototype.componentWillUnmount = function () {\n        this._setComponentRef(this.props.componentRef, null);\n        if (this.__disposables) {\n            for (var i = 0, len = this._disposables.length; i < len; i++) {\n                var disposable = this.__disposables[i];\n                if (disposable.dispose) {\n                    disposable.dispose();\n                }\n            }\n            this.__disposables = null;\n        }\n    };\n    Object.defineProperty(BaseComponent.prototype, \"className\", {\n        /**\n         * Gets the object's class name.\n         */\n        get: function () {\n            if (!this.__className) {\n                var funcNameRegex = /function (.{1,})\\(/;\n                var results = funcNameRegex.exec(this.constructor.toString());\n                this.__className = results && results.length > 1 ? results[1] : '';\n            }\n            return this.__className;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BaseComponent.prototype, \"_disposables\", {\n        /**\n         * Allows subclasses to push things to this._disposables to be auto disposed.\n         */\n        get: function () {\n            if (!this.__disposables) {\n                this.__disposables = [];\n            }\n            return this.__disposables;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BaseComponent.prototype, \"_async\", {\n        /**\n         * Gets the async instance associated with the component, created on demand. The async instance gives\n         * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks\n         * will be cleared/ignored automatically after unmounting. The helpers within the async object also\n         * preserve the this pointer so that you don't need to \"bind\" the callbacks.\n         */\n        get: function () {\n            if (!this.__async) {\n                this.__async = new Async(this);\n                this._disposables.push(this.__async);\n            }\n            return this.__async;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BaseComponent.prototype, \"_events\", {\n        /**\n         * Gets the event group instance assocaited with the component, created on demand. The event instance\n         * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks\n         * will be automatically disconnected after unmounting. The helpers within the events object also\n         * preserve the this reference so that you don't need to \"bind\" the callbacks.\n         */\n        get: function () {\n            if (!this.__events) {\n                this.__events = new EventGroup(this);\n                this._disposables.push(this.__events);\n            }\n            return this.__events;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Helper to return a memoized ref resolver function.\n     * @param refName - Name of the member to assign the ref to.\n     * @returns A function instance keyed from the given refname.\n     * @deprecated Use `createRef` from React.createRef.\n     */\n    BaseComponent.prototype._resolveRef = function (refName) {\n        var _this = this;\n        if (!this.__resolves) {\n            this.__resolves = {};\n        }\n        if (!this.__resolves[refName]) {\n            this.__resolves[refName] = function (ref) {\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                return (_this[refName] = ref);\n            };\n        }\n        return this.__resolves[refName];\n    };\n    /**\n     * Updates the componentRef (by calling it with \"this\" when necessary.)\n     */\n    BaseComponent.prototype._updateComponentRef = function (currentProps, newProps) {\n        if (newProps === void 0) { newProps = {}; }\n        // currentProps *should* always be defined, but verify that just in case a subclass is manually\n        // calling a lifecycle method with no parameters (which has happened) or other odd usage.\n        if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {\n            this._setComponentRef(currentProps.componentRef, null);\n            this._setComponentRef(newProps.componentRef, this);\n        }\n    };\n    /**\n     * Warns when a deprecated props are being used.\n     *\n     * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n     * either null or a replacement prop name.\n     */\n    BaseComponent.prototype._warnDeprecations = function (deprecationMap) {\n        warnDeprecations(this.className, this.props, deprecationMap);\n    };\n    /**\n     * Warns when props which are mutually exclusive with each other are both used.\n     *\n     * @param mutuallyExclusiveMap - The map of mutually exclusive props.\n     */\n    BaseComponent.prototype._warnMutuallyExclusive = function (mutuallyExclusiveMap) {\n        warnMutuallyExclusive(this.className, this.props, mutuallyExclusiveMap);\n    };\n    /**\n     * Warns when props are required if a condition is met.\n     *\n     * @param requiredProps - The name of the props that are required when the condition is met.\n     * @param conditionalPropName - The name of the prop that the condition is based on.\n     * @param condition - Whether the condition is met.\n     */\n    BaseComponent.prototype._warnConditionallyRequiredProps = function (requiredProps, conditionalPropName, condition) {\n        warnConditionallyRequiredProps(this.className, this.props, requiredProps, conditionalPropName, condition);\n    };\n    BaseComponent.prototype._setComponentRef = function (ref, value) {\n        if (!this._skipComponentRefResolution && ref) {\n            if (typeof ref === 'function') {\n                ref(value);\n            }\n            if (typeof ref === 'object') {\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                ref.current = value;\n            }\n        }\n    };\n    return BaseComponent;\n}(React.Component));\nexport { BaseComponent };\n/**\n * Helper to override a given method with a wrapper method that can try/catch the original, but also\n * ensures that the BaseComponent's methods are called before the subclass's. This ensures that\n * componentWillUnmount in the base is called and that things in the _disposables array are disposed.\n */\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeAllSafe(obj, prototype, methodNames) {\n    for (var i = 0, len = methodNames.length; i < len; i++) {\n        _makeSafe(obj, prototype, methodNames[i]);\n    }\n}\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeSafe(obj, prototype, methodName) {\n    /* eslint-disable @typescript-eslint/no-explicit-any */\n    var classMethod = obj[methodName];\n    var prototypeMethod = prototype[methodName];\n    if (classMethod || prototypeMethod) {\n        obj[methodName] = function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            /* eslint-enable @typescript-eslint/no-explicit-any */\n            var retVal;\n            if (prototypeMethod) {\n                retVal = prototypeMethod.apply(this, args);\n            }\n            if (classMethod !== prototypeMethod) {\n                retVal = classMethod.apply(this, args);\n            }\n            return retVal;\n        };\n    }\n}\n/**\n * Simple constant function for returning null, used to render empty templates in JSX.\n *\n * @public\n */\nexport function nullRender() {\n    return null;\n}\n//# sourceMappingURL=BaseComponent.js.map","import { getDocument } from './dom';\nimport { assign } from './object';\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n *  If the target is an HTMLElement, the event will be attached to the element and can be\n *  triggered as usual (like clicking for onClick).\n *  The event can be triggered by calling EventGroup.raise() here. If the target is an\n *  HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n *  handled here in EventGroup, and the handler is called in the context of the parent\n *  (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nvar EventGroup = /** @class */ (function () {\n    /** parent: the context in which events attached to non-HTMLElements are called */\n    function EventGroup(parent) {\n        this._id = EventGroup._uniqueId++;\n        this._parent = parent;\n        this._eventRecords = [];\n    }\n    /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n     *  Events raised here by default have bubbling set to false and cancelable set to true.\n     *  This applies also to built-in events being raised manually here on HTMLElements,\n     *  which may lead to unexpected behavior if it differs from the defaults.\n     *\n     */\n    EventGroup.raise = function (target, eventName, eventArgs, bubbleEvent, doc) {\n        var retVal;\n        var theDoc = doc !== null && doc !== void 0 ? doc : getDocument();\n        if (EventGroup._isElement(target)) {\n            if (typeof theDoc !== 'undefined' && theDoc.createEvent) {\n                var ev = theDoc.createEvent('HTMLEvents');\n                // eslint-disable-next-line deprecation/deprecation\n                ev.initEvent(eventName, bubbleEvent || false, true);\n                assign(ev, eventArgs);\n                retVal = target.dispatchEvent(ev);\n            }\n            else if (typeof theDoc !== 'undefined' && theDoc.createEventObject) {\n                // IE8\n                var evObj = theDoc.createEventObject(eventArgs);\n                // cannot set cancelBubble on evObj, fireEvent will overwrite it\n                target.fireEvent('on' + eventName, evObj);\n            }\n        }\n        else {\n            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n            // @ts-ignore  -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n            while (target && retVal !== false) {\n                var events = target.__events__;\n                var eventRecords = events ? events[eventName] : null;\n                if (eventRecords) {\n                    for (var id in eventRecords) {\n                        if (eventRecords.hasOwnProperty(id)) {\n                            var eventRecordList = eventRecords[id];\n                            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                            // @ts-ignore  -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n                            for (var listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n                                var record = eventRecordList[listIndex];\n                                if (record.objectCallback) {\n                                    retVal = record.objectCallback.call(record.parent, eventArgs);\n                                }\n                            }\n                        }\n                    }\n                }\n                // If the target has a parent, bubble the event up.\n                target = bubbleEvent ? target.parent : null;\n            }\n        }\n        return retVal;\n    };\n    EventGroup.isObserved = function (target, eventName) {\n        var events = target && target.__events__;\n        return !!events && !!events[eventName];\n    };\n    /** Check to see if the target has declared support of the given event. */\n    EventGroup.isDeclared = function (target, eventName) {\n        var declaredEvents = target && target.__declaredEvents;\n        return !!declaredEvents && !!declaredEvents[eventName];\n    };\n    EventGroup.stopPropagation = function (event) {\n        if (event.stopPropagation) {\n            event.stopPropagation();\n        }\n        else {\n            // IE8\n            event.cancelBubble = true;\n        }\n    };\n    EventGroup._isElement = function (target) {\n        return (!!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)));\n    };\n    EventGroup.prototype.dispose = function () {\n        if (!this._isDisposed) {\n            this._isDisposed = true;\n            this.off();\n            this._parent = null;\n        }\n    };\n    /** On the target, attach a set of events, where the events object is a name to function mapping. */\n    EventGroup.prototype.onAll = function (target, events, useCapture) {\n        for (var eventName in events) {\n            if (events.hasOwnProperty(eventName)) {\n                this.on(target, eventName, events[eventName], useCapture);\n            }\n        }\n    };\n    /**\n     * On the target, attach an event whose handler will be called in the context of the parent\n     * of this instance of EventGroup.\n     */\n    EventGroup.prototype.on = function (target, eventName, callback, options) {\n        var _this = this;\n        if (eventName.indexOf(',') > -1) {\n            var events = eventName.split(/[ ,]+/);\n            for (var i = 0; i < events.length; i++) {\n                this.on(target, events[i], callback, options);\n            }\n        }\n        else {\n            var parent_1 = this._parent;\n            var eventRecord = {\n                target: target,\n                eventName: eventName,\n                parent: parent_1,\n                callback: callback,\n                options: options,\n            };\n            // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n            var events = (target.__events__ = target.__events__ || {});\n            events[eventName] =\n                events[eventName] ||\n                    {\n                        count: 0,\n                    };\n            events[eventName][this._id] = events[eventName][this._id] || [];\n            events[eventName][this._id].push(eventRecord);\n            events[eventName].count++;\n            if (EventGroup._isElement(target)) {\n                var processElementEvent = function () {\n                    var args = [];\n                    for (var _i = 0; _i < arguments.length; _i++) {\n                        args[_i] = arguments[_i];\n                    }\n                    if (_this._isDisposed) {\n                        return;\n                    }\n                    var result;\n                    try {\n                        result = callback.apply(parent_1, args);\n                        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                        // @ts-ignore  -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n                        if (result === false && args[0]) {\n                            var e = args[0];\n                            if (e.preventDefault) {\n                                e.preventDefault();\n                            }\n                            if (e.stopPropagation) {\n                                e.stopPropagation();\n                            }\n                            e.cancelBubble = true;\n                        }\n                    }\n                    catch (e) {\n                        // ignore\n                    }\n                    return result;\n                };\n                eventRecord.elementCallback = processElementEvent;\n                if (target.addEventListener) {\n                    target.addEventListener(eventName, processElementEvent, options);\n                }\n                else if (target.attachEvent) {\n                    // IE8\n                    target.attachEvent('on' + eventName, processElementEvent);\n                }\n            }\n            else {\n                var processObjectEvent = function () {\n                    var args = [];\n                    for (var _i = 0; _i < arguments.length; _i++) {\n                        args[_i] = arguments[_i];\n                    }\n                    if (_this._isDisposed) {\n                        return;\n                    }\n                    return callback.apply(parent_1, args);\n                };\n                eventRecord.objectCallback = processObjectEvent;\n            }\n            // Remember the record locally, so that it can be removed.\n            this._eventRecords.push(eventRecord);\n        }\n    };\n    EventGroup.prototype.off = function (target, eventName, callback, options) {\n        for (var i = 0; i < this._eventRecords.length; i++) {\n            var eventRecord = this._eventRecords[i];\n            if ((!target || target === eventRecord.target) &&\n                (!eventName || eventName === eventRecord.eventName) &&\n                (!callback || callback === eventRecord.callback) &&\n                (typeof options !== 'boolean' || options === eventRecord.options)) {\n                var events = eventRecord.target.__events__;\n                var targetArrayLookup = events[eventRecord.eventName];\n                var targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n                // We may have already target's entries, so check for null.\n                if (targetArray) {\n                    if (targetArray.length === 1 || !callback) {\n                        targetArrayLookup.count -= targetArray.length;\n                        delete events[eventRecord.eventName][this._id];\n                    }\n                    else {\n                        targetArrayLookup.count--;\n                        targetArray.splice(targetArray.indexOf(eventRecord), 1);\n                    }\n                    if (!targetArrayLookup.count) {\n                        delete events[eventRecord.eventName];\n                    }\n                }\n                if (eventRecord.elementCallback) {\n                    if (eventRecord.target.removeEventListener) {\n                        eventRecord.target.removeEventListener(eventRecord.eventName, eventRecord.elementCallback, eventRecord.options);\n                    }\n                    else if (eventRecord.target.detachEvent) {\n                        // IE8\n                        eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n                    }\n                }\n                this._eventRecords.splice(i--, 1);\n            }\n        }\n    };\n    /** Trigger the given event in the context of this instance of EventGroup. */\n    EventGroup.prototype.raise = function (eventName, eventArgs, bubbleEvent) {\n        return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n    };\n    /** Declare an event as being supported by this instance of EventGroup. */\n    EventGroup.prototype.declare = function (event) {\n        var declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n        if (typeof event === 'string') {\n            declaredEvents[event] = true;\n        }\n        else {\n            for (var i = 0; i < event.length; i++) {\n                declaredEvents[event[i]] = true;\n            }\n        }\n    };\n    EventGroup._uniqueId = 0;\n    return EventGroup;\n}());\nexport { EventGroup };\n//# sourceMappingURL=EventGroup.js.map","import * as React from 'react';\nimport { FocusRectsContext } from './useFocusRects';\nexport var FocusRectsProvider = function (props) {\n    var providerRef = props.providerRef, layerRoot = props.layerRoot;\n    var registeredProviders = React.useState([])[0];\n    var parentContext = React.useContext(FocusRectsContext);\n    // Inherit the parent context if it exists, unless this is a layer root.\n    // This allows the topmost provider element in the DOM tree to handle the focus events.\n    // Since layers are in a separate HTML tree from their parent, they shouldn't use the parent's providerRef.\n    var inheritParentContext = parentContext !== undefined && !layerRoot;\n    var context = React.useMemo(function () {\n        return inheritParentContext\n            ? undefined\n            : {\n                providerRef: providerRef,\n                registeredProviders: registeredProviders,\n                registerProvider: function (ref) {\n                    // Register this child provider with the current context, and any parent contexts\n                    registeredProviders.push(ref);\n                    parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerProvider(ref);\n                },\n                unregisterProvider: function (ref) {\n                    parentContext === null || parentContext === void 0 ? void 0 : parentContext.unregisterProvider(ref);\n                    var i = registeredProviders.indexOf(ref);\n                    if (i >= 0) {\n                        registeredProviders.splice(i, 1);\n                    }\n                },\n            };\n    }, [providerRef, registeredProviders, parentContext, inheritParentContext]);\n    React.useEffect(function () {\n        if (context) {\n            context.registerProvider(context.providerRef);\n            return function () { return context.unregisterProvider(context.providerRef); };\n        }\n    }, [context]);\n    // Create a new context provider if this is not inheriting from the parent.\n    if (context) {\n        return React.createElement(FocusRectsContext.Provider, { value: context }, props.children);\n    }\n    else {\n        return React.createElement(React.Fragment, null, props.children);\n    }\n};\n//# sourceMappingURL=FocusRectsProvider.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Storing global state in local module variables has issues when more than one copy\n * if the module gets loaded on the page (due to a bundling error or simply by consuming\n * a prebundled script.)\n *\n * This file contains helpers to deal with the getting and setting local state, and allows\n * callers to get called back when it mutates.\n */\nvar GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';\nvar CALLBACK_STATE_PROP_NAME = '__callbacks__';\nvar _counter = 0;\n/**\n * Global settings helper, which stores settings in the global (window) namespace.\n * If window is not provided, it will store settings in module scope. Provides a\n * way to observe changes as well when their values change.\n *\n * @public\n * {@docCategory GlobalSettings}\n */\nvar GlobalSettings = /** @class */ (function () {\n    function GlobalSettings() {\n    }\n    GlobalSettings.getValue = function (key, defaultValue) {\n        var globalSettings = _getGlobalSettings();\n        if (globalSettings[key] === undefined) {\n            globalSettings[key] = typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n        }\n        return globalSettings[key];\n    };\n    GlobalSettings.setValue = function (key, value) {\n        var globalSettings = _getGlobalSettings();\n        var callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];\n        var oldValue = globalSettings[key];\n        if (value !== oldValue) {\n            globalSettings[key] = value;\n            var changeDescription = {\n                oldValue: oldValue,\n                value: value,\n                key: key,\n            };\n            for (var id in callbacks) {\n                if (callbacks.hasOwnProperty(id)) {\n                    callbacks[id](changeDescription);\n                }\n            }\n        }\n        return value;\n    };\n    GlobalSettings.addChangeListener = function (cb) {\n        // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.\n        // (It's faster to delete a key than it is to look up the index of an object and splice an array.)\n        var id = cb.__id__;\n        var callbacks = _getCallbacks();\n        if (!id) {\n            id = cb.__id__ = String(_counter++);\n        }\n        callbacks[id] = cb;\n    };\n    GlobalSettings.removeChangeListener = function (cb) {\n        var callbacks = _getCallbacks();\n        delete callbacks[cb.__id__];\n    };\n    return GlobalSettings;\n}());\nexport { GlobalSettings };\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getGlobalSettings() {\n    var _a;\n    var win = getWindow();\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    var globalObj = win || {};\n    if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {\n        globalObj[GLOBAL_SETTINGS_PROP_NAME] = (_a = {},\n            _a[CALLBACK_STATE_PROP_NAME] = {},\n            _a);\n    }\n    return globalObj[GLOBAL_SETTINGS_PROP_NAME];\n}\nfunction _getCallbacks() {\n    var globalSettings = _getGlobalSettings();\n    return globalSettings[CALLBACK_STATE_PROP_NAME];\n}\n//# sourceMappingURL=GlobalSettings.js.map","/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport var KeyCodes = {\n    backspace: 8,\n    tab: 9,\n    enter: 13,\n    shift: 16,\n    ctrl: 17,\n    alt: 18,\n    pauseBreak: 19,\n    capslock: 20,\n    escape: 27,\n    space: 32,\n    pageUp: 33,\n    pageDown: 34,\n    end: 35,\n    home: 36,\n    left: 37,\n    up: 38,\n    right: 39,\n    down: 40,\n    insert: 45,\n    del: 46,\n    zero: 48,\n    one: 49,\n    two: 50,\n    three: 51,\n    four: 52,\n    five: 53,\n    six: 54,\n    seven: 55,\n    eight: 56,\n    nine: 57,\n    colon: 58,\n    a: 65,\n    b: 66,\n    c: 67,\n    d: 68,\n    e: 69,\n    f: 70,\n    g: 71,\n    h: 72,\n    i: 73,\n    j: 74,\n    k: 75,\n    l: 76,\n    m: 77,\n    n: 78,\n    o: 79,\n    p: 80,\n    q: 81,\n    r: 82,\n    s: 83,\n    t: 84,\n    u: 85,\n    v: 86,\n    w: 87,\n    x: 88,\n    y: 89,\n    z: 90,\n    leftWindow: 91,\n    rightWindow: 92,\n    select: 93,\n    /* eslint-disable @typescript-eslint/naming-convention */\n    zero_numpad: 96,\n    one_numpad: 97,\n    two_numpad: 98,\n    three_numpad: 99,\n    four_numpad: 100,\n    five_numpad: 101,\n    six_numpad: 102,\n    seven_numpad: 103,\n    eight_numpad: 104,\n    nine_numpad: 105,\n    /* eslint-enable @typescript-eslint/naming-convention */\n    multiply: 106,\n    add: 107,\n    subtract: 109,\n    decimalPoint: 110,\n    divide: 111,\n    f1: 112,\n    f2: 113,\n    f3: 114,\n    f4: 115,\n    f5: 116,\n    f6: 117,\n    f7: 118,\n    f8: 119,\n    f9: 120,\n    f10: 121,\n    f11: 122,\n    f12: 123,\n    numlock: 144,\n    scrollLock: 145,\n    semicolon: 186,\n    equalSign: 187,\n    comma: 188,\n    dash: 189,\n    period: 190,\n    forwardSlash: 191,\n    graveAccent: 192,\n    openBracket: 219,\n    backSlash: 220,\n    closeBracket: 221,\n    singleQuote: 222,\n};\n//# sourceMappingURL=KeyCodes.js.map","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nvar Rectangle = /** @class */ (function () {\n    function Rectangle(left, right, top, bottom) {\n        if (left === void 0) { left = 0; }\n        if (right === void 0) { right = 0; }\n        if (top === void 0) { top = 0; }\n        if (bottom === void 0) { bottom = 0; }\n        this.top = top;\n        this.bottom = bottom;\n        this.left = left;\n        this.right = right;\n    }\n    Object.defineProperty(Rectangle.prototype, \"width\", {\n        /**\n         * Calculated automatically by subtracting the right from left\n         */\n        get: function () {\n            return this.right - this.left;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Rectangle.prototype, \"height\", {\n        /**\n         * Calculated automatically by subtracting the bottom from top.\n         */\n        get: function () {\n            return this.bottom - this.top;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n     */\n    Rectangle.prototype.equals = function (rect) {\n        // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n        // should be rounded, like .999999 should round to 1.\n        return (parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n            parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n            parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n            parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4)));\n    };\n    return Rectangle;\n}());\nexport { Rectangle };\n//# sourceMappingURL=Rectangle.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns a single function which will call each of the given functions in the context of the\n * parent.\n */\nexport function appendFunction(parent) {\n    var functions = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        functions[_i - 1] = arguments[_i];\n    }\n    if (functions.length < 2) {\n        return functions[0];\n    }\n    return function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        functions.forEach(function (f) { return f && f.apply(parent, args); });\n    };\n}\n//# sourceMappingURL=appendFunction.js.map","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues() {\n    var ariaAttributes = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        ariaAttributes[_i] = arguments[_i];\n    }\n    var mergedAttribute = ariaAttributes\n        .filter(function (arg) { return arg; })\n        .join(' ')\n        .trim();\n    return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n//# sourceMappingURL=aria.js.map","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array, cb, fromIndex) {\n    if (fromIndex === void 0) { fromIndex = 0; }\n    var index = -1;\n    for (var i = fromIndex; array && i < array.length; i++) {\n        if (cb(array[i], i)) {\n            index = i;\n            break;\n        }\n    }\n    return index;\n}\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array, cb) {\n    var index = findIndex(array, cb);\n    if (index < 0) {\n        return undefined;\n    }\n    return array[index];\n}\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size, getItem) {\n    var array = [];\n    for (var i = 0; i < size; i++) {\n        array.push(getItem(i));\n    }\n    return array;\n}\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items, columnCount) {\n    return items.reduce(function (rows, currentValue, index) {\n        if (index % columnCount === 0) {\n            rows.push([currentValue]);\n        }\n        else {\n            rows[rows.length - 1].push(currentValue);\n        }\n        return rows;\n    }, []);\n}\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array, index) {\n    return array.filter(function (_, i) { return index !== i; });\n}\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array, newElement, index) {\n    var copy = array.slice();\n    copy[index] = newElement;\n    return copy;\n}\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array, index, itemToAdd) {\n    var copy = array.slice();\n    copy.splice(index, 0, itemToAdd);\n    return copy;\n}\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array) {\n    var result = [];\n    array.forEach(function (item) { return (result = result.concat(item)); });\n    return result;\n}\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1, array2) {\n    if (array1.length !== array2.length) {\n        return false;\n    }\n    for (var i = 0; i < array1.length; i++) {\n        if (array1[i] !== array2[i]) {\n            return false;\n        }\n    }\n    return true;\n}\n//# sourceMappingURL=array.js.map","import { mergeCssSets, Stylesheet } from '@fluentui/merge-styles';\nimport { getRTL } from './rtl';\nimport { getWindow } from './dom';\nvar MAX_CACHE_COUNT = 50;\nvar DEFAULT_SPECIFICITY_MULTIPLIER = 5;\nvar _memoizedClassNames = 0;\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n    stylesheet.onReset(function () { return _memoizedClassNames++; });\n}\n// Note that because of the caching nature within the classNames memoization,\n// I've disabled this rule to simply be able to work with any types.\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// This represents a prop we attach to each Map to indicate the cached return value\n// associated with the graph node.\nvar retVal = '__retval__';\n/**\n * Creates a getClassNames function which calls getStyles given the props, and injects them\n * into mergeStyleSets.\n *\n * Note that the props you pass in on every render should be in the same order and\n * immutable (numbers, strings, and booleans). This will allow the results to be memoized. Violating\n * these will cause extra recalcs to occur.\n */\nexport function classNamesFunction(options) {\n    // We build a trie where each node is a Map. The map entry key represents an argument\n    // value, and the entry value is another node (Map). Each node has a `__retval__`\n    // property which is used to hold the cached response.\n    if (options === void 0) { options = {}; }\n    // To derive the response, we can simply ensure the arguments are added or already\n    // exist in the trie. At the last node, if there is a `__retval__` we return that. Otherwise\n    // we call the `getStyles` api to evaluate, cache on the property, and return that.\n    // let map: IRecursiveMemoNode = new Map();\n    var windowMap = new Map();\n    var styleCalcCount = 0;\n    var getClassNamesCount = 0;\n    var currentMemoizedClassNames = _memoizedClassNames;\n    var getClassNames = function (styleFunctionOrObject, styleProps) {\n        var _a;\n        if (styleProps === void 0) { styleProps = {}; }\n        // If useStaticStyles is true, styleFunctionOrObject returns slot to classname mappings.\n        // If there is also no style overrides, we can skip merge styles completely and\n        // simply return the result from the style funcion.\n        if (options.useStaticStyles &&\n            typeof styleFunctionOrObject === 'function' &&\n            styleFunctionOrObject.__noStyleOverride__) {\n            return styleFunctionOrObject(styleProps);\n        }\n        getClassNamesCount++;\n        var shadowConfig = styleFunctionOrObject\n            ? styleFunctionOrObject.__shadowConfig__\n            : undefined;\n        var key = shadowConfig && shadowConfig.window ? shadowConfig.window : '__default__';\n        if (!windowMap.has(key)) {\n            windowMap.set(key, new Map());\n        }\n        var current = windowMap.get(key);\n        // let current: Map<any, any> = map;\n        var theme = styleProps.theme;\n        var rtl = theme && theme.rtl !== undefined ? theme.rtl : getRTL();\n        var disableCaching = options.disableCaching;\n        // On reset of our stylesheet, reset memoized cache.\n        if (currentMemoizedClassNames !== _memoizedClassNames) {\n            currentMemoizedClassNames = _memoizedClassNames;\n            // map = new Map();\n            windowMap.set(key, new Map());\n            current = windowMap.get(key);\n            styleCalcCount = 0;\n        }\n        if (!options.disableCaching) {\n            current = _traverseMap(windowMap.get(key), styleFunctionOrObject);\n            current = _traverseMap(current, styleProps);\n        }\n        if (disableCaching || !current[retVal]) {\n            if (styleFunctionOrObject === undefined) {\n                current[retVal] = {};\n            }\n            else {\n                current[retVal] = mergeCssSets([\n                    (typeof styleFunctionOrObject === 'function'\n                        ? styleFunctionOrObject(styleProps)\n                        : styleFunctionOrObject),\n                ], {\n                    shadowConfig: styleFunctionOrObject.__shadowConfig__,\n                    rtl: !!rtl,\n                    specificityMultiplier: options.useStaticStyles ? DEFAULT_SPECIFICITY_MULTIPLIER : undefined,\n                });\n            }\n            if (!disableCaching) {\n                styleCalcCount++;\n            }\n        }\n        if (styleCalcCount > (options.cacheSize || MAX_CACHE_COUNT)) {\n            var win = getWindow();\n            if ((_a = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _a === void 0 ? void 0 : _a.enableClassNameCacheFullWarning) {\n                // eslint-disable-next-line no-console\n                console.warn(\"Styles are being recalculated too frequently. Cache miss rate is \".concat(styleCalcCount, \"/\").concat(getClassNamesCount, \".\"));\n                // eslint-disable-next-line no-console\n                console.trace();\n            }\n            windowMap.get(key).clear();\n            styleCalcCount = 0;\n            // Mutate the options passed in, that's all we can do.\n            options.disableCaching = true;\n        }\n        // Note: the retVal is an attached property on the Map; not a key in the Map. We use this attached property to\n        // cache the return value for this branch of the graph.\n        return current[retVal];\n    };\n    return getClassNames;\n}\nfunction _traverseEdge(current, value) {\n    value = _normalizeValue(value);\n    if (!current.has(value)) {\n        current.set(value, new Map());\n    }\n    return current.get(value);\n}\nfunction _traverseMap(current, inputs) {\n    if (typeof inputs === 'function') {\n        var cachedInputsFromStyled = inputs.__cachedInputs__;\n        if (cachedInputsFromStyled) {\n            // The styled helper will generate the styles function and will attach the cached\n            // inputs (consisting of the default styles, customzied styles, and user provided styles.)\n            // These should be used as cache keys for deriving the memoized value.\n            for (var _i = 0, _a = inputs.__cachedInputs__; _i < _a.length; _i++) {\n                var input = _a[_i];\n                current = _traverseEdge(current, input);\n            }\n        }\n        else {\n            current = _traverseEdge(current, inputs);\n        }\n    }\n    else if (typeof inputs === 'object') {\n        for (var propName in inputs) {\n            if (inputs.hasOwnProperty(propName)) {\n                current = _traverseEdge(current, inputs[propName]);\n            }\n        }\n    }\n    return current;\n}\nfunction _normalizeValue(value) {\n    switch (value) {\n        case undefined:\n            return '__undefined__';\n        case null:\n            return '__null__';\n        default:\n            return value;\n    }\n}\n//# sourceMappingURL=classNamesFunction.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { createMemoizer } from '../memoize';\nfunction createComposedComponent(outer) {\n    var Outer = outer;\n    var outerMemoizer = createMemoizer(function (inner) {\n        if (outer === inner) {\n            throw new Error('Attempted to compose a component with itself.');\n        }\n        var Inner = inner;\n        var innerMemoizer = createMemoizer(function (defaultRender) {\n            var InnerWithDefaultRender = function (innerProps) {\n                return React.createElement(Inner, __assign({}, innerProps, { defaultRender: defaultRender }));\n            };\n            return InnerWithDefaultRender;\n        });\n        var OuterWithDefaultRender = function (outerProps) {\n            var defaultRender = outerProps.defaultRender;\n            return React.createElement(Outer, __assign({}, outerProps, { defaultRender: defaultRender ? innerMemoizer(defaultRender) : Inner }));\n        };\n        return OuterWithDefaultRender;\n    });\n    return outerMemoizer;\n}\nvar componentAsMemoizer = createMemoizer(createComposedComponent);\n/**\n * Composes two components which conform to the `IComponentAs` specification; that is, two\n * components which accept a `defaultRender` prop, which is a 'default' implementation of\n * a component which accepts the same overall props.\n *\n * @public\n */\nexport function composeComponentAs(outer, inner) {\n    return componentAsMemoizer(outer)(inner);\n}\n//# sourceMappingURL=composeComponentAs.js.map","import { arraysEqual } from './array';\n/**\n * Set up a ref resolver function given internal state managed for the ref.\n * @param local Set\n */\nvar createResolver = function (local) {\n    return function (newValue) {\n        for (var _i = 0, _a = local.refs; _i < _a.length; _i++) {\n            var ref = _a[_i];\n            if (typeof ref === 'function') {\n                ref(newValue);\n            }\n            else if (ref) {\n                // work around the immutability of the React.Ref type\n                ref.current = newValue;\n            }\n        }\n    };\n};\n/**\n * Helper to merge refs from within class components.\n */\nexport var createMergedRef = function (value) {\n    var local = {\n        refs: [],\n    };\n    return function () {\n        var newRefs = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            newRefs[_i] = arguments[_i];\n        }\n        if (!local.resolver || !arraysEqual(local.refs, newRefs)) {\n            local.resolver = createResolver(local);\n        }\n        local.refs = newRefs;\n        return local.resolver;\n    };\n};\n//# sourceMappingURL=createMergedRef.js.map","/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    var classes = [];\n    for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n        var arg = args_1[_a];\n        if (arg) {\n            if (typeof arg === 'string') {\n                classes.push(arg);\n            }\n            else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n                classes.push(arg.toString());\n            }\n            else {\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                for (var key in arg) {\n                    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                    if (arg[key]) {\n                        classes.push(key);\n                    }\n                }\n            }\n        }\n    }\n    return classes.join(' ');\n}\n//# sourceMappingURL=css.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings } from '../GlobalSettings';\nvar CustomizationsGlobalKey = 'customizations';\nvar NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };\nvar _allSettings = GlobalSettings.getValue(CustomizationsGlobalKey, {\n    settings: {},\n    scopedSettings: {},\n    inCustomizerContext: false,\n});\nvar _events = [];\nvar Customizations = /** @class */ (function () {\n    function Customizations() {\n    }\n    Customizations.reset = function () {\n        _allSettings.settings = {};\n        _allSettings.scopedSettings = {};\n    };\n    /** Apply global Customization settings.\n     * @example Customizations.applySettings(\\{ theme: \\{...\\} \\});\n     */\n    Customizations.applySettings = function (settings) {\n        _allSettings.settings = __assign(__assign({}, _allSettings.settings), settings);\n        Customizations._raiseChange();\n    };\n    /** Apply Customizations to a particular named scope, like a component.\n     * @example Customizations.applyScopedSettings('Nav', \\{ styles: () =\\> \\{\\} \\});\n     */\n    Customizations.applyScopedSettings = function (scopeName, settings) {\n        _allSettings.scopedSettings[scopeName] = __assign(__assign({}, _allSettings.scopedSettings[scopeName]), settings);\n        Customizations._raiseChange();\n    };\n    Customizations.getSettings = function (properties, scopeName, localSettings) {\n        if (localSettings === void 0) { localSettings = NO_CUSTOMIZATIONS; }\n        var settings = {};\n        var localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};\n        var globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};\n        for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n            var property = properties_1[_i];\n            settings[property] =\n                localScopedSettings[property] ||\n                    localSettings.settings[property] ||\n                    globalScopedSettings[property] ||\n                    _allSettings.settings[property];\n        }\n        return settings;\n    };\n    /** Used to run some code that sets Customizations without triggering an update until the end.\n     * Useful for applying Customizations that don't affect anything currently rendered, or for\n     * applying many customizations at once.\n     * @param suppressUpdate - Do not raise the change event at the end, preventing all updates\n     */\n    Customizations.applyBatchedUpdates = function (code, suppressUpdate) {\n        Customizations._suppressUpdates = true;\n        try {\n            code();\n        }\n        catch (_a) {\n            /* do nothing */\n        }\n        Customizations._suppressUpdates = false;\n        if (!suppressUpdate) {\n            Customizations._raiseChange();\n        }\n    };\n    Customizations.observe = function (onChange) {\n        _events.push(onChange);\n    };\n    Customizations.unobserve = function (onChange) {\n        _events = _events.filter(function (cb) { return cb !== onChange; });\n    };\n    Customizations._raiseChange = function () {\n        if (!Customizations._suppressUpdates) {\n            _events.forEach(function (cb) { return cb(); });\n        }\n    };\n    return Customizations;\n}());\nexport { Customizations };\n//# sourceMappingURL=Customizations.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\nimport { mergeCustomizations } from './mergeCustomizations';\n/**\n * The Customizer component allows for default props to be mixed into components which\n * are decorated with the customizable() decorator, or use the styled HOC. This enables\n * injection scenarios like:\n *\n * 1. render svg icons instead of the icon font within all buttons\n * 2. inject a custom theme object into a component\n *\n * Props are provided via the settings prop which should be one of the following:\n * - A json map which contains 1 or more name/value pairs representing injectable props.\n * - A function that receives the current settings and returns the new ones that apply to the scope\n *\n * @public\n *\n * @deprecated This component is deprecated for purpose of applying theme to components\n * as of `@fluentui/react` version 8. Use `ThemeProvider` for applying theme instead.\n */\nvar Customizer = /** @class */ (function (_super) {\n    __extends(Customizer, _super);\n    function Customizer() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._onCustomizationChange = function () { return _this.forceUpdate(); };\n        return _this;\n    }\n    Customizer.prototype.componentDidMount = function () {\n        Customizations.observe(this._onCustomizationChange);\n    };\n    Customizer.prototype.componentWillUnmount = function () {\n        Customizations.unobserve(this._onCustomizationChange);\n    };\n    Customizer.prototype.render = function () {\n        var _this = this;\n        var contextTransform = this.props.contextTransform;\n        return (React.createElement(CustomizerContext.Consumer, null, function (parentContext) {\n            var newContext = mergeCustomizations(_this.props, parentContext);\n            if (contextTransform) {\n                newContext = contextTransform(newContext);\n            }\n            return React.createElement(CustomizerContext.Provider, { value: newContext }, _this.props.children);\n        }));\n    };\n    return Customizer;\n}(React.Component));\nexport { Customizer };\n//# sourceMappingURL=Customizer.js.map","import * as React from 'react';\nexport var CustomizerContext = React.createContext({\n    customizations: {\n        inCustomizerContext: false,\n        settings: {},\n        scopedSettings: {},\n    },\n});\n//# sourceMappingURL=CustomizerContext.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { hoistStatics } from '../hoistStatics';\nimport { CustomizerContext } from './CustomizerContext';\nimport { concatStyleSets, makeShadowConfig } from '@fluentui/merge-styles';\nimport { MergeStylesShadowRootConsumer } from '../shadowDom/contexts/MergeStylesShadowRootConsumer';\nimport { getWindow } from '../dom/getWindow';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { memoizeFunction } from '../memoize';\nvar memoizedMakeShadowConfig = memoizeFunction(makeShadowConfig);\nvar mergeComponentStyles = memoizeFunction(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction (defaultStyles, componentStyles, shadowConfig) {\n    return __assign(__assign(__assign({}, defaultStyles), componentStyles), { __shadowConfig__: shadowConfig });\n});\nexport function customizable(scope, fields, concatStyles) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    return function customizableFactory(ComposedComponent) {\n        var _a;\n        var resultClass = (_a = /** @class */ (function (_super) {\n                __extends(ComponentWithInjectedProps, _super);\n                function ComponentWithInjectedProps(props) {\n                    var _this = _super.call(this, props) || this;\n                    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                    _this._styleCache = {};\n                    _this._onSettingChanged = _this._onSettingChanged.bind(_this);\n                    return _this;\n                }\n                ComponentWithInjectedProps.prototype.componentDidMount = function () {\n                    Customizations.observe(this._onSettingChanged);\n                };\n                ComponentWithInjectedProps.prototype.componentWillUnmount = function () {\n                    Customizations.unobserve(this._onSettingChanged);\n                };\n                ComponentWithInjectedProps.prototype.render = function () {\n                    var _this = this;\n                    return (React.createElement(MergeStylesShadowRootConsumer, { stylesheetKey: scope }, function (inShadow) {\n                        return (React.createElement(CustomizerContext.Consumer, null, function (context) {\n                            var _a;\n                            var defaultProps = Customizations.getSettings(fields, scope, context.customizations);\n                            var win = (_a = _this.context.window) !== null && _a !== void 0 ? _a : getWindow();\n                            var shadowConfig = memoizedMakeShadowConfig(scope, inShadow, win);\n                            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                            var componentProps = _this.props;\n                            // If defaultProps.styles is a function, evaluate it before calling concatStyleSets\n                            if (defaultProps.styles && typeof defaultProps.styles === 'function') {\n                                defaultProps.styles = defaultProps.styles(__assign(__assign({}, defaultProps), componentProps));\n                            }\n                            // If concatStyles is true and custom styles have been defined compute those styles\n                            if (concatStyles && defaultProps.styles) {\n                                if (_this._styleCache.default !== defaultProps.styles ||\n                                    _this._styleCache.component !== componentProps.styles) {\n                                    var mergedStyles = concatStyleSets(defaultProps.styles, componentProps.styles);\n                                    mergedStyles.__shadowConfig__ = shadowConfig;\n                                    _this._styleCache.default = defaultProps.styles;\n                                    _this._styleCache.component = componentProps.styles;\n                                    _this._styleCache.merged = mergedStyles;\n                                }\n                                return (React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: _this._styleCache.merged })));\n                            }\n                            var styles = mergeComponentStyles(defaultProps.styles, componentProps.styles, shadowConfig);\n                            return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: styles }));\n                        }));\n                    }));\n                };\n                ComponentWithInjectedProps.prototype._onSettingChanged = function () {\n                    this.forceUpdate();\n                };\n                return ComponentWithInjectedProps;\n            }(React.Component)),\n            _a.displayName = 'Customized' + scope,\n            _a.contextType = WindowContext,\n            _a);\n        return hoistStatics(ComposedComponent, resultClass);\n    };\n}\n//# sourceMappingURL=customizable.js.map","import { mergeSettings, mergeScopedSettings } from './mergeSettings';\n/**\n * Merge props and customizations giving priority to props over context.\n * NOTE: This function will always perform multiple merge operations. Use with caution.\n * @param props - New settings to merge in.\n * @param parentContext - Context containing current settings.\n * @returns Merged customizations.\n */\nexport function mergeCustomizations(props, parentContext) {\n    var _a = (parentContext || {}).customizations, customizations = _a === void 0 ? { settings: {}, scopedSettings: {} } : _a;\n    return {\n        customizations: {\n            settings: mergeSettings(customizations.settings, props.settings),\n            scopedSettings: mergeScopedSettings(customizations.scopedSettings, props.scopedSettings),\n            inCustomizerContext: true,\n        },\n    };\n}\n//# sourceMappingURL=mergeCustomizations.js.map","import { __assign } from \"tslib\";\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings, newSettings) {\n    if (oldSettings === void 0) { oldSettings = {}; }\n    var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n    return mergeSettingsWith(oldSettings);\n}\nexport function mergeScopedSettings(oldSettings, newSettings) {\n    if (oldSettings === void 0) { oldSettings = {}; }\n    var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n    return mergeSettingsWith(oldSettings);\n}\nfunction _isSettingsFunction(settings) {\n    return typeof settings === 'function';\n}\nfunction _settingsMergeWith(newSettings) {\n    return function (settings) { return (newSettings ? __assign(__assign({}, settings), newSettings) : settings); };\n}\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps) {\n    if (scopedSettingsFromProps === void 0) { scopedSettingsFromProps = {}; }\n    return function (oldScopedSettings) {\n        var newScopedSettings = __assign({}, oldScopedSettings);\n        for (var scopeName in scopedSettingsFromProps) {\n            if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n                newScopedSettings[scopeName] = __assign(__assign({}, oldScopedSettings[scopeName]), scopedSettingsFromProps[scopeName]);\n            }\n        }\n        return newScopedSettings;\n    };\n}\n//# sourceMappingURL=mergeSettings.js.map","import * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\n/**\n * Hook to get Customizations settings from Customizations singleton or CustomizerContext.\n * It will trigger component state update on settings change observed.\n */\nexport function useCustomizationSettings(properties, scopeName) {\n    var forceUpdate = useForceUpdate();\n    var customizations = React.useContext(CustomizerContext).customizations;\n    var inCustomizerContext = customizations.inCustomizerContext;\n    React.useEffect(function () {\n        if (!inCustomizerContext) {\n            Customizations.observe(forceUpdate);\n        }\n        return function () {\n            if (!inCustomizerContext) {\n                Customizations.unobserve(forceUpdate);\n            }\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- exclude forceUpdate\n    }, [inCustomizerContext]);\n    return Customizations.getSettings(properties, scopeName, customizations);\n}\nfunction useForceUpdate() {\n    var _a = React.useState(0), setValue = _a[1];\n    return function () { return setValue(function (value) { return ++value; }); };\n}\n//# sourceMappingURL=useCustomizationSettings.js.map","/**\n * Verifies if an application can use DOM.\n */\nexport function canUseDOM() {\n    return (\n    // eslint-disable-next-line no-restricted-globals\n    typeof window !== 'undefined' &&\n        !!(\n        // eslint-disable-next-line no-restricted-globals, deprecation/deprecation\n        (window.document && window.document.createElement)));\n}\n//# sourceMappingURL=canUseDOM.js.map","import { canUseDOM } from './canUseDOM';\n/**\n * Helper to get the document object. Note that in popup window cases, document\n * might be the wrong document, which is why we look at ownerDocument for the\n * truth.\n *\n * @public\n */\nexport function getDocument(rootElement) {\n    // eslint-disable-next-line no-restricted-globals\n    if (!canUseDOM() || typeof document === 'undefined') {\n        return undefined;\n    }\n    else {\n        var el = rootElement;\n        // eslint-disable-next-line no-restricted-globals\n        return el && el.ownerDocument ? el.ownerDocument : document;\n    }\n}\n//# sourceMappingURL=getDocument.js.map","import { canUseDOM } from './canUseDOM';\nvar _window = undefined;\n// Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\ntry {\n    // eslint-disable-next-line no-restricted-globals\n    _window = window;\n}\ncatch (e) {\n    /* no-op */\n}\n/**\n * Helper to get the window object. The helper will make sure to use a cached variable\n * of \"window\", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the\n * window object won't match the \"global\" window object, and for these scenarios, you should\n * pass in an element hosted within the popup.\n *\n * @public\n */\nexport function getWindow(rootElement) {\n    if (!canUseDOM() || typeof _window === 'undefined') {\n        return undefined;\n    }\n    else {\n        var el = rootElement;\n        return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;\n    }\n}\n//# sourceMappingURL=getWindow.js.map","export function on(element, eventName, callback, options) {\n    element.addEventListener(eventName, callback, options);\n    return function () { return element.removeEventListener(eventName, callback, options); };\n}\n//# sourceMappingURL=on.js.map","import { appendFunction } from './appendFunction';\n/**\n * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.\n */\nexport function extendComponent(parent, methods) {\n    for (var name_1 in methods) {\n        if (methods.hasOwnProperty(name_1)) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            parent[name_1] = appendFunction(parent, parent[name_1], methods[name_1]);\n        }\n    }\n}\n//# sourceMappingURL=extendComponent.js.map","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(rootElement, currentElement, includeElementsInFocusZones, includeShadowRoots) {\n    return getNextElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, undefined, undefined, undefined, includeShadowRoots);\n}\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(rootElement, currentElement, includeElementsInFocusZones, includeShadowRoots) {\n    return getPreviousElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, undefined, undefined, includeShadowRoots);\n}\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at.  This element is the first one checked,\n * and iteration continues forward.  Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode, includeShadowRoots) {\n    if (checkNode === void 0) { checkNode = true; }\n    return getNextElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/, undefined, includeShadowRoots);\n}\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at.  This element is the first one checked,\n * and iteration continues in reverse.  Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode, includeShadowRoots) {\n    if (checkNode === void 0) { checkNode = true; }\n    return getPreviousElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/, includeShadowRoots);\n}\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement, bypassHiddenElements, includeShadowRoots) {\n    var element = getNextElement(rootElement, rootElement, true, false, false, true, undefined, undefined, bypassHiddenElements, includeShadowRoots);\n    if (element) {\n        focusAsync(element);\n        return true;\n    }\n    return false;\n}\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(rootElement, currentElement, checkNode, suppressParentTraversal, traverseChildren, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots) {\n    var _a;\n    if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n        return null;\n    }\n    var isCurrentElementVisible = isElementVisible(currentElement);\n    // Check its children.\n    if (traverseChildren &&\n        isCurrentElementVisible &&\n        (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n        var lastElementChild = (currentElement.lastElementChild ||\n            (includeShadowRoots && ((_a = currentElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.lastElementChild)));\n        var childMatch = getPreviousElement(rootElement, lastElementChild, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n        if (childMatch) {\n            if ((tabbable && isElementTabbable(childMatch, true, includeShadowRoots)) || !tabbable) {\n                return childMatch;\n            }\n            var childMatchSiblingMatch = getPreviousElement(rootElement, childMatch.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n            if (childMatchSiblingMatch) {\n                return childMatchSiblingMatch;\n            }\n            var childMatchParent = childMatch.parentElement;\n            // At this point if we have not found any potential matches\n            // start looking at the rest of the subtree under the currentParent.\n            // NOTE: We do not want to recurse here because doing so could\n            // cause elements to get skipped.\n            while (childMatchParent && childMatchParent !== currentElement) {\n                var childMatchParentMatch = getPreviousElement(rootElement, childMatchParent.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n                if (childMatchParentMatch) {\n                    return childMatchParentMatch;\n                }\n                childMatchParent = childMatchParent.parentElement;\n            }\n        }\n    }\n    // Check the current node, if it's not the first traversal.\n    if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable, includeShadowRoots)) {\n        return currentElement;\n    }\n    // Check its previous sibling.\n    var siblingMatch = getPreviousElement(rootElement, currentElement.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n    if (siblingMatch) {\n        return siblingMatch;\n    }\n    // Check its parent.\n    if (!suppressParentTraversal) {\n        return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n    }\n    return null;\n}\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements, includeShadowRoots) {\n    var _a;\n    if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n        return null;\n    }\n    var checkElementVisibility = bypassHiddenElements ? isElementVisibleAndNotHidden : isElementVisible;\n    var isCurrentElementVisible = checkElementVisibility(currentElement);\n    // Check the current node, if it's not the first traversal.\n    if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable, includeShadowRoots)) {\n        return currentElement;\n    }\n    // Check its children.\n    if (!suppressChildTraversal &&\n        isCurrentElementVisible &&\n        (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n        var firstElementchild = (currentElement.firstElementChild ||\n            (includeShadowRoots && ((_a = currentElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.firstElementChild)));\n        var childMatch = getNextElement(rootElement, firstElementchild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements, includeShadowRoots);\n        if (childMatch) {\n            return childMatch;\n        }\n    }\n    if (currentElement === rootElement) {\n        return null;\n    }\n    // Check its sibling.\n    var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements, includeShadowRoots);\n    if (siblingMatch) {\n        return siblingMatch;\n    }\n    if (!suppressParentTraversal) {\n        return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements, includeShadowRoots);\n    }\n    return null;\n}\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element) {\n    // If the element is not valid, return false.\n    if (!element || !element.getAttribute) {\n        return false;\n    }\n    var visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n    // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n    if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n        return visibilityAttribute === 'true';\n    }\n    // Fallback to other methods of determining actual visibility.\n    return (element.offsetHeight !== 0 ||\n        element.offsetParent !== null ||\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        element.isVisible === true); // used as a workaround for testing.\n}\n/**\n * Determines if an element is visible and not hidden\n * @param element - Element to check\n * @returns Returns true if the given element is visible and not hidden\n *\n * @public\n */\nexport function isElementVisibleAndNotHidden(element, win) {\n    var theWin = win !== null && win !== void 0 ? win : getWindow();\n    return (!!element &&\n        isElementVisible(element) &&\n        !element.hidden &&\n        theWin.getComputedStyle(element).visibility !== 'hidden');\n}\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element, checkTabIndex, checkShadowRoot) {\n    if (checkShadowRoot === void 0) { checkShadowRoot = true; }\n    // If this element is null or is disabled, it is not considered tabbable.\n    if (!element || element.disabled) {\n        return false;\n    }\n    var tabIndex = 0;\n    var tabIndexAttributeValue = null;\n    if (element && element.getAttribute) {\n        tabIndexAttributeValue = element.getAttribute('tabIndex');\n        if (tabIndexAttributeValue) {\n            tabIndex = parseInt(tabIndexAttributeValue, 10);\n        }\n    }\n    var isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n    var isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n    var delegatesFocus = checkShadowRoot && element.shadowRoot ? !!element.shadowRoot.delegatesFocus : false;\n    var result = !!element &&\n        isFocusableAttribute !== 'false' &&\n        (element.tagName === 'A' ||\n            element.tagName === 'BUTTON' ||\n            element.tagName === 'INPUT' ||\n            element.tagName === 'TEXTAREA' ||\n            element.tagName === 'SELECT' ||\n            isFocusableAttribute === 'true' ||\n            isTabIndexSet ||\n            delegatesFocus);\n    return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element) {\n    return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element) {\n    return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element) {\n    var doc = getDocument(element);\n    var currentActiveElement = doc && doc.activeElement;\n    if (currentActiveElement && elementContains(element, currentActiveElement)) {\n        return true;\n    }\n    return false;\n}\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(element, noWrapDataAttribute, doc) {\n    var theDoc = doc !== null && doc !== void 0 ? doc : getDocument();\n    return elementContainsAttribute(element, noWrapDataAttribute, theDoc) === 'true' ? false : true;\n}\nvar animationId = undefined;\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element) {\n    if (element) {\n        var win = getWindow(element);\n        if (win) {\n            // cancel any previous focus queues\n            if (animationId !== undefined) {\n                win.cancelAnimationFrame(animationId);\n            }\n            // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n            animationId = win.requestAnimationFrame(function () {\n                element && element.focus();\n                // We are done focusing for this frame, so reset the queued focus element\n                animationId = undefined;\n            });\n        }\n    }\n}\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent, path) {\n    var element = parent;\n    for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n        var index = path_1[_i];\n        var nextChild = element.children[Math.min(index, element.children.length - 1)];\n        if (!nextChild) {\n            break;\n        }\n        element = nextChild;\n    }\n    element =\n        isElementTabbable(element) && isElementVisible(element)\n            ? element\n            : getNextElement(parent, element, true) || getPreviousElement(parent, element);\n    return element;\n}\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement, toElement) {\n    var path = [];\n    while (toElement && fromElement && toElement !== fromElement) {\n        var parent_1 = getParent(toElement, true);\n        if (parent_1 === null) {\n            return [];\n        }\n        path.unshift(Array.prototype.indexOf.call(parent_1.children, toElement));\n        toElement = parent_1;\n    }\n    return path;\n}\n//# sourceMappingURL=focus.js.map","import { getWindow } from './dom/getWindow';\nimport { Stylesheet } from '@fluentui/merge-styles';\n// Initialize global window id.\nvar CURRENT_ID_PROPERTY = '__currentId__';\nvar DEFAULT_ID_STRING = 'id__';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar _global = getWindow() || {};\nif (_global[CURRENT_ID_PROPERTY] === undefined) {\n    _global[CURRENT_ID_PROPERTY] = 0;\n}\nvar _initializedStylesheetResets = false;\n/**\n * Generates a unique id in the global scope (this spans across duplicate copies of the same library.)\n *\n * @public\n */\nexport function getId(prefix) {\n    if (!_initializedStylesheetResets) {\n        // Configure ids to reset on stylesheet resets.\n        var stylesheet = Stylesheet.getInstance();\n        if (stylesheet && stylesheet.onReset) {\n            stylesheet.onReset(resetIds);\n        }\n        _initializedStylesheetResets = true;\n    }\n    var index = _global[CURRENT_ID_PROPERTY]++;\n    return (prefix === undefined ? DEFAULT_ID_STRING : prefix) + index;\n}\n/**\n * Resets id counter to an (optional) number.\n *\n * @public\n */\nexport function resetIds(counter) {\n    if (counter === void 0) { counter = 0; }\n    _global[CURRENT_ID_PROPERTY] = counter;\n}\n//# sourceMappingURL=getId.js.map","import { __assign } from \"tslib\";\n/**\n * Function to apply default values to a component props object. This function is intended for function components,\n * to maintain parity with the `defaultProps` feature of class components. It accounts for properties that are\n * specified, but undefined.\n * @param defaultProps- An object with default values for various properties\n * @param propsWithoutDefaults- The props object passed into the component\n */\nexport function getPropsWithDefaults(defaultProps, propsWithoutDefaults) {\n    var props = __assign({}, propsWithoutDefaults);\n    for (var _i = 0, _a = Object.keys(defaultProps); _i < _a.length; _i++) {\n        var key = _a[_i];\n        if (props[key] === undefined) {\n            props[key] = defaultProps[key];\n        }\n    }\n    return props;\n}\n//# sourceMappingURL=getPropsWithDefaults.js.map","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\nexport function hoistStatics(source, dest) {\n    for (var name_1 in source) {\n        if (source.hasOwnProperty(name_1)) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            dest[name_1] = source[name_1];\n        }\n    }\n    return dest;\n}\n//# sourceMappingURL=hoistStatics.js.map","import { extendComponent } from './extendComponent';\n/**\n * Helper to manage componentRef resolution. Internally appends logic to\n * lifetime methods to resolve componentRef to the passed in object.\n *\n * Usage: call initializeComponentRef(this) in the constructor,\n */\nexport function initializeComponentRef(obj) {\n    extendComponent(obj, {\n        componentDidMount: _onMount,\n        componentDidUpdate: _onUpdate,\n        componentWillUnmount: _onUnmount,\n    });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onMount() {\n    _setComponentRef(this.props.componentRef, this);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUpdate(prevProps) {\n    if (prevProps.componentRef !== this.props.componentRef) {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        _setComponentRef(prevProps.componentRef, null);\n        _setComponentRef(this.props.componentRef, this);\n    }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUnmount() {\n    _setComponentRef(this.props.componentRef, null);\n}\nfunction _setComponentRef(componentRef, value) {\n    if (componentRef) {\n        if (typeof componentRef === 'object') {\n            componentRef.current = value;\n        }\n        else if (typeof componentRef === 'function') {\n            componentRef(value);\n        }\n    }\n}\n//# sourceMappingURL=initializeComponentRef.js.map","var _a;\nimport { KeyCodes } from './KeyCodes';\nvar DirectionalKeyCodes = (_a = {},\n    _a[KeyCodes.up] = 1,\n    _a[KeyCodes.down] = 1,\n    _a[KeyCodes.left] = 1,\n    _a[KeyCodes.right] = 1,\n    _a[KeyCodes.home] = 1,\n    _a[KeyCodes.end] = 1,\n    _a[KeyCodes.tab] = 1,\n    _a[KeyCodes.pageUp] = 1,\n    _a[KeyCodes.pageDown] = 1,\n    _a);\n/**\n * Returns true if the keycode is a directional keyboard key.\n */\nexport function isDirectionalKeyCode(which) {\n    return !!DirectionalKeyCodes[which];\n}\n/**\n * Adds a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to add global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function addDirectionalKeyCode(which) {\n    DirectionalKeyCodes[which] = 1;\n}\n/**\n * Removes a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to remove global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function removeDirectionalKeyCode(which) {\n    delete DirectionalKeyCodes[which];\n}\n//# sourceMappingURL=keyboard.js.map","import { getDocument } from './dom/getDocument';\nimport * as localStorage from './localStorage';\nimport * as sessionStorage from './sessionStorage';\n// Default to undefined so that we initialize on first read.\nvar _language;\nvar STORAGE_KEY = 'language';\n/**\n * Gets the language set for the page.\n * @param persistenceType - Where to persist the value. Default is `sessionStorage` if available.\n */\nexport function getLanguage(persistenceType) {\n    if (persistenceType === void 0) { persistenceType = 'sessionStorage'; }\n    if (_language === undefined) {\n        var doc = getDocument();\n        var savedLanguage = persistenceType === 'localStorage'\n            ? localStorage.getItem(STORAGE_KEY)\n            : persistenceType === 'sessionStorage'\n                ? sessionStorage.getItem(STORAGE_KEY)\n                : undefined;\n        if (savedLanguage) {\n            _language = savedLanguage;\n        }\n        if (_language === undefined && doc) {\n            _language = doc.documentElement.getAttribute('lang');\n        }\n        if (_language === undefined) {\n            _language = 'en';\n        }\n    }\n    return _language;\n}\nexport function setLanguage(language, persistenceParam) {\n    var doc = getDocument();\n    if (doc) {\n        doc.documentElement.setAttribute('lang', language);\n    }\n    var persistenceType = persistenceParam === true ? 'none' : !persistenceParam ? 'sessionStorage' : persistenceParam;\n    if (persistenceType === 'localStorage') {\n        localStorage.setItem(STORAGE_KEY, language);\n    }\n    else if (persistenceType === 'sessionStorage') {\n        sessionStorage.setItem(STORAGE_KEY, language);\n    }\n    _language = language;\n}\n//# sourceMappingURL=language.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from local storage without throwing an exception\n * @param key The key of the item to fetch from local storage\n */\nexport function getItem(key) {\n    var result = null;\n    try {\n        var win = getWindow();\n        result = win ? win.localStorage.getItem(key) : null;\n    }\n    catch (e) {\n        /* Eat the exception */\n    }\n    return result;\n}\n/**\n * Inserts an item into local storage without throwing an exception\n * @param key The key of the item to add to local storage\n * @param data The data to put into local storage\n */\nexport function setItem(key, data) {\n    try {\n        var win = getWindow();\n        win && win.localStorage.setItem(key, data);\n    }\n    catch (e) {\n        /* Eat the exception */\n    }\n}\n//# sourceMappingURL=localStorage.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nvar _initializedStylesheetResets = false;\nvar _resetCounter = 0;\nvar _emptyObject = { empty: true };\nvar _dictionary = {};\nvar _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;\n/**\n *  Test utility for providing a custom weakmap.\n *\n * @internal\n * */\nexport function setMemoizeWeakMap(weakMap) {\n    _weakMap = weakMap;\n}\n/**\n * Reset memoizations.\n */\nexport function resetMemoizations() {\n    _resetCounter++;\n}\n/**\n * Memoize decorator to be used on class methods. WARNING: the `this` reference\n * will be inaccessible within a memoized method, given that a cached method's `this`\n * would not be instance-specific.\n *\n * @public\n */\nexport function memoize(_target, _key, descriptor) {\n    // We bind to \"null\" to prevent people from inadvertently pulling values from \"this\",\n    // rather than passing them in as input values which can be memoized.\n    var fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));\n    return {\n        configurable: true,\n        get: function () {\n            return fn;\n        },\n    };\n}\n/**\n * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.\n * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise\n * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in\n * undefined for a value and relying on a default function will execute it the first time, but will not\n * re-evaluate subsequent times which may have been unexpected.\n *\n * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is\n * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard\n * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.\n *\n * @public\n * @param cb - The function to memoize.\n * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.\n * @param ignoreNullOrUndefinedResult - Flag to decide whether to cache callback result if it is undefined/null.\n * If the flag is set to true, the callback result is recomputed every time till the callback result is\n * not undefined/null for the first time, and then the non-undefined/null version gets cached.\n * @returns A memoized version of the function.\n */\nexport function memoizeFunction(cb, maxCacheSize, ignoreNullOrUndefinedResult) {\n    if (maxCacheSize === void 0) { maxCacheSize = 100; }\n    if (ignoreNullOrUndefinedResult === void 0) { ignoreNullOrUndefinedResult = false; }\n    // Avoid breaking scenarios which don't have weak map.\n    if (!_weakMap) {\n        return cb;\n    }\n    if (!_initializedStylesheetResets) {\n        var stylesheet = Stylesheet.getInstance();\n        if (stylesheet && stylesheet.onReset) {\n            Stylesheet.getInstance().onReset(resetMemoizations);\n        }\n        _initializedStylesheetResets = true;\n    }\n    var rootNode;\n    var cacheSize = 0;\n    var localResetCounter = _resetCounter;\n    return function memoizedFunction() {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        var currentNode = rootNode;\n        if (rootNode === undefined ||\n            localResetCounter !== _resetCounter ||\n            (maxCacheSize > 0 && cacheSize > maxCacheSize)) {\n            rootNode = _createNode();\n            cacheSize = 0;\n            localResetCounter = _resetCounter;\n        }\n        currentNode = rootNode;\n        // Traverse the tree until we find the match.\n        for (var i = 0; i < args.length; i++) {\n            var arg = _normalizeArg(args[i]);\n            if (!currentNode.map.has(arg)) {\n                currentNode.map.set(arg, _createNode());\n            }\n            currentNode = currentNode.map.get(arg);\n        }\n        if (!currentNode.hasOwnProperty('value')) {\n            currentNode.value = cb.apply(void 0, args);\n            cacheSize++;\n        }\n        if (ignoreNullOrUndefinedResult && (currentNode.value === null || currentNode.value === undefined)) {\n            currentNode.value = cb.apply(void 0, args);\n        }\n        return currentNode.value;\n    };\n}\n/**\n * Creates a memoizer for a single-value function, backed by a WeakMap.\n * With a WeakMap, the memoized values are only kept as long as the source objects,\n * ensuring that there is no memory leak.\n *\n * This function assumes that the input values passed to the wrapped function will be\n * `function` or `object` types. To memoize functions which accept other inputs, use\n * `memoizeFunction`, which memoizes against arbitrary inputs using a lookup cache.\n *\n * @public\n */\nexport function createMemoizer(getValue) {\n    if (!_weakMap) {\n        // Without a `WeakMap` implementation, memoization is not possible.\n        return getValue;\n    }\n    var cache = new _weakMap();\n    function memoizedGetValue(input) {\n        if (!input || (typeof input !== 'function' && typeof input !== 'object')) {\n            // A WeakMap can only be used to test against reference values, i.e. 'function' and 'object'.\n            // All other inputs cannot be memoized against in this manner.\n            return getValue(input);\n        }\n        if (cache.has(input)) {\n            return cache.get(input);\n        }\n        var value = getValue(input);\n        cache.set(input, value);\n        return value;\n    }\n    return memoizedGetValue;\n}\nfunction _normalizeArg(val) {\n    if (!val) {\n        return _emptyObject;\n    }\n    else if (typeof val === 'object' || typeof val === 'function') {\n        return val;\n    }\n    else if (!_dictionary[val]) {\n        _dictionary[val] = { val: val };\n    }\n    return _dictionary[val];\n}\nfunction _createNode() {\n    return {\n        map: _weakMap ? new _weakMap() : null,\n    };\n}\n//# sourceMappingURL=memoize.js.map","/**\n * Simple deep merge function. Takes all arguments and returns a deep copy of the objects merged\n * together in the order provided. If an object creates a circular reference, it will assign the\n * original reference.\n */\nexport function merge(target) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n        var arg = args_1[_a];\n        _merge(target || {}, arg);\n    }\n    return target;\n}\n/**\n * The _merge helper iterates through all props on source and assigns them to target.\n * When the value is an object, we will create a deep clone of the object. However if\n * there is a circular reference, the value will not be deep cloned and will persist\n * the reference.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _merge(target, source, circularReferences) {\n    if (circularReferences === void 0) { circularReferences = []; }\n    circularReferences.push(source);\n    for (var name_1 in source) {\n        if (source.hasOwnProperty(name_1)) {\n            if (name_1 !== '__proto__' && name_1 !== 'constructor' && name_1 !== 'prototype') {\n                var value = source[name_1];\n                if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n                    var isCircularReference = circularReferences.indexOf(value) > -1;\n                    target[name_1] = (isCircularReference ? value : _merge(target[name_1] || {}, value, circularReferences));\n                }\n                else {\n                    target[name_1] = value;\n                }\n            }\n        }\n    }\n    circularReferences.pop();\n    return target;\n}\n//# sourceMappingURL=merge.js.map","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport var isIOS = function () {\n    // eslint-disable-next-line no-restricted-globals\n    if (!window || !window.navigator || !window.navigator.userAgent) {\n        return false;\n    }\n    // eslint-disable-next-line no-restricted-globals\n    return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n//# sourceMappingURL=mobileDetector.js.map","/**\n * The helper functions here will make the target element as modal to screen readers, by placing aria-hidden on elements\n * that are siblings to the target element and the target element's ancestors (because aria-hidden gets inherited).\n * That way, all other elements on the page are hidden to the screen reader.\n */\nimport { getDocument } from './dom/getDocument';\n/** Tag names to ignore when modalizing */\nvar tagsToIgnore = ['TEMPLATE', 'STYLE', 'SCRIPT'];\n/**\n * Call this on a target element to make it modal to screen readers.\n * Returns a function that undoes the changes it made.\n */\nexport function modalize(target) {\n    var targetDocument = getDocument(target);\n    if (!targetDocument) {\n        // can't do this in SSR\n        return function () { return undefined; };\n    }\n    var affectedNodes = [];\n    // start at target, then recurse and do the same for parent, until we reach <body>\n    while (target !== targetDocument.body && target.parentElement) {\n        // grab all siblings of current element\n        for (var _i = 0, _a = target.parentElement.children; _i < _a.length; _i++) {\n            var sibling = _a[_i];\n            // but ignore elements that are already aria-hidden\n            var ariaHidden = sibling.getAttribute('aria-hidden');\n            if (sibling !== target && (ariaHidden === null || ariaHidden === void 0 ? void 0 : ariaHidden.toLowerCase()) !== 'true' && tagsToIgnore.indexOf(sibling.tagName) === -1) {\n                affectedNodes.push([sibling, ariaHidden]);\n            }\n        }\n        target = target.parentElement;\n    }\n    // take all those elements and set aria-hidden=true on them\n    affectedNodes.forEach(function (_a) {\n        var node = _a[0];\n        node.setAttribute('aria-hidden', 'true');\n    });\n    return function () {\n        unmodalize(affectedNodes);\n        affectedNodes = []; // dispose\n    };\n}\n/**\n * Undoes the changes that modalize() did.\n */\nfunction unmodalize(affectedNodes) {\n    affectedNodes.forEach(function (_a) {\n        var node = _a[0], originalValue = _a[1];\n        // Restore the original value (false or unset)\n        if (originalValue) {\n            node.setAttribute('aria-hidden', originalValue);\n        }\n        else {\n            node.removeAttribute('aria-hidden');\n        }\n    });\n}\n//# sourceMappingURL=modalize.js.map","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowCompare(a, b) {\n    if (!a || !b) {\n        // only return true if both a and b are falsy\n        return !a && !b;\n    }\n    for (var propName in a) {\n        if (a.hasOwnProperty(propName)) {\n            if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {\n                return false;\n            }\n        }\n    }\n    for (var propName in b) {\n        if (b.hasOwnProperty(propName)) {\n            if (!a.hasOwnProperty(propName)) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function assign(target) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return filteredAssign.apply(this, [null, target].concat(args));\n}\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filteredAssign(isAllowed, target) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    target = target || {};\n    for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n        var sourceObject = args_1[_a];\n        if (sourceObject) {\n            for (var propName in sourceObject) {\n                if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n                    target[propName] = sourceObject[propName];\n                }\n            }\n        }\n    }\n    return target;\n}\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntheEnum, callback) {\n    // map<any> to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call\n    return Object.keys(theEnum)\n        .map(function (p) {\n        // map on each property name as a string\n        if (String(Number(p)) !== p) {\n            // if the property is not just a number (because enums in TypeScript will map both ways)\n            return callback(p, theEnum[p]);\n        }\n        return undefined;\n    })\n        .filter(function (v) { return !!v; }); // only return elements with values\n}\n/**\n * Get all values in an object dictionary\n *\n * @param obj - The dictionary to get values for\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function values(obj) {\n    return Object.keys(obj).reduce(function (arr, key) {\n        arr.push(obj[key]);\n        return arr;\n    }, []);\n}\n/**\n * Tiny helper to do the minimal amount of work in duplicating an object but omitting some\n * props. This ends up faster than using object ...rest or reduce to filter.\n *\n * This behaves very much like filteredAssign, but does not merge many objects together,\n * uses an exclusion object map, and avoids spreads all for optimal performance.\n *\n * See perf test for background:\n * https://jsperf.com/omit-vs-rest-vs-reduce/1\n *\n * @param obj - The object to clone\n * @param exclusions - The array of keys to exclude\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function omit(obj, exclusions) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    var result = {};\n    for (var key in obj) {\n        if (exclusions.indexOf(key) === -1 && obj.hasOwnProperty(key)) {\n            result[key] = obj[key];\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=object.js.map","import { getWindow } from './dom/getWindow';\nvar isMacResult;\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset) {\n    var _a;\n    if (typeof isMacResult === 'undefined' || reset) {\n        var win = getWindow();\n        // In certain SSR frameworks, `window` will be defined even on the server but `navigator` will be undefined\n        var userAgent = (_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent;\n        isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n    }\n    return !!isMacResult;\n}\n//# sourceMappingURL=osDetector.js.map","var toObjectMap = function () {\n    var items = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        items[_i] = arguments[_i];\n    }\n    var result = {};\n    for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {\n        var item = items_1[_a];\n        var keys = Array.isArray(item) ? item : Object.keys(item);\n        for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) {\n            var key = keys_1[_b];\n            result[key] = 1;\n        }\n    }\n    return result;\n};\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementEvents = toObjectMap([\n    'onCopy',\n    'onCut',\n    'onPaste',\n    'onCompositionEnd',\n    'onCompositionStart',\n    'onCompositionUpdate',\n    'onFocus',\n    'onFocusCapture',\n    'onBlur',\n    'onBlurCapture',\n    'onChange',\n    'onInput',\n    'onSubmit',\n    'onLoad',\n    'onError',\n    'onKeyDown',\n    'onKeyDownCapture',\n    'onKeyPress',\n    'onKeyUp',\n    'onAbort',\n    'onCanPlay',\n    'onCanPlayThrough',\n    'onDurationChange',\n    'onEmptied',\n    'onEncrypted',\n    'onEnded',\n    'onLoadedData',\n    'onLoadedMetadata',\n    'onLoadStart',\n    'onPause',\n    'onPlay',\n    'onPlaying',\n    'onProgress',\n    'onRateChange',\n    'onSeeked',\n    'onSeeking',\n    'onStalled',\n    'onSuspend',\n    'onTimeUpdate',\n    'onVolumeChange',\n    'onWaiting',\n    'onClick',\n    'onClickCapture',\n    'onContextMenu',\n    'onDoubleClick',\n    'onDrag',\n    'onDragEnd',\n    'onDragEnter',\n    'onDragExit',\n    'onDragLeave',\n    'onDragOver',\n    'onDragStart',\n    'onDrop',\n    'onMouseDown',\n    'onMouseDownCapture',\n    'onMouseEnter',\n    'onMouseLeave',\n    'onMouseMove',\n    'onMouseOut',\n    'onMouseOver',\n    'onMouseUp',\n    'onMouseUpCapture',\n    'onSelect',\n    'onTouchCancel',\n    'onTouchEnd',\n    'onTouchMove',\n    'onTouchStart',\n    'onScroll',\n    'onWheel',\n    'onPointerCancel',\n    'onPointerDown',\n    'onPointerEnter',\n    'onPointerLeave',\n    'onPointerMove',\n    'onPointerOut',\n    'onPointerOver',\n    'onPointerUp',\n    'onGotPointerCapture',\n    'onLostPointerCapture',\n]);\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementProperties = toObjectMap([\n    'accessKey',\n    'children',\n    'className',\n    'contentEditable',\n    'dir',\n    'draggable',\n    'hidden',\n    'htmlFor',\n    'id',\n    'lang',\n    'ref',\n    'role',\n    'style',\n    'tabIndex',\n    'title',\n    'translate',\n    'spellCheck',\n    'name', // global\n]);\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */\nexport var htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents);\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport var labelProperties = toObjectMap(htmlElementProperties, [\n    'form', // button, fieldset, input, label, meter, object, output, select, textarea\n]);\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */\nexport var audioProperties = toObjectMap(htmlElementProperties, [\n    'height',\n    'loop',\n    'muted',\n    'preload',\n    'src',\n    'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */\nexport var videoProperties = toObjectMap(audioProperties, [\n    'poster', // video\n]);\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport var olProperties = toObjectMap(htmlElementProperties, [\n    'start', // ol\n]);\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport var liProperties = toObjectMap(htmlElementProperties, [\n    'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport var anchorProperties = toObjectMap(htmlElementProperties, [\n    'download',\n    'href',\n    'hrefLang',\n    'media',\n    'rel',\n    'target',\n    'type', // a, button, input, link, menu, object, script, source, style\n]);\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport var buttonProperties = toObjectMap(htmlElementProperties, [\n    'autoFocus',\n    'disabled',\n    'form',\n    'formAction',\n    'formEncType',\n    'formMethod',\n    'formNoValidate',\n    'formTarget',\n    'type',\n    'value', // button, input, li, option, meter, progress, param,\n]);\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */\nexport var inputProperties = toObjectMap(buttonProperties, [\n    'accept',\n    'alt',\n    'autoCapitalize',\n    'autoComplete',\n    'checked',\n    'dirname',\n    'form',\n    'height',\n    'inputMode',\n    'list',\n    'max',\n    'maxLength',\n    'min',\n    'minLength',\n    'multiple',\n    'pattern',\n    'placeholder',\n    'readOnly',\n    'required',\n    'src',\n    'step',\n    'size',\n    'type',\n    'value',\n    'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */\nexport var textAreaProperties = toObjectMap(buttonProperties, [\n    'autoCapitalize',\n    'cols',\n    'dirname',\n    'form',\n    'maxLength',\n    'minLength',\n    'placeholder',\n    'readOnly',\n    'required',\n    'rows',\n    'wrap', // textarea\n]);\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */\nexport var selectProperties = toObjectMap(buttonProperties, [\n    'form',\n    'multiple',\n    'required', // input, select, textarea\n]);\nexport var optionProperties = toObjectMap(htmlElementProperties, [\n    'selected',\n    'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport var tableProperties = toObjectMap(htmlElementProperties, [\n    'cellPadding',\n    'cellSpacing', // table\n]);\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport var trProperties = htmlElementProperties;\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport var thProperties = toObjectMap(htmlElementProperties, [\n    'rowSpan',\n    'scope', // th\n]);\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport var tdProperties = toObjectMap(htmlElementProperties, [\n    'colSpan',\n    'headers',\n    'rowSpan',\n    'scope', // th\n]);\nexport var colGroupProperties = toObjectMap(htmlElementProperties, [\n    'span', // col, colgroup\n]);\nexport var colProperties = toObjectMap(htmlElementProperties, [\n    'span', // col, colgroup\n]);\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport var formProperties = toObjectMap(htmlElementProperties, [\n    'acceptCharset',\n    'action',\n    'encType',\n    'encType',\n    'method',\n    'noValidate',\n    'target', // form\n]);\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */\nexport var iframeProperties = toObjectMap(htmlElementProperties, [\n    'allow',\n    'allowFullScreen',\n    'allowPaymentRequest',\n    'allowTransparency',\n    'csp',\n    'height',\n    'importance',\n    'referrerPolicy',\n    'sandbox',\n    'src',\n    'srcDoc',\n    'width', // canvas, embed, iframe, img, input, object, video,\n]);\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */\nexport var imgProperties = toObjectMap(htmlElementProperties, [\n    'alt',\n    'crossOrigin',\n    'height',\n    'src',\n    'srcSet',\n    'useMap',\n    'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport var imageProperties = imgProperties;\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport var divProperties = htmlElementProperties;\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropsNames - The array or record of allowed prop names.\n * @returns The filtered props\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops, allowedPropNames, excludedPropNames) {\n    // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n    // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n    // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n    // return native props.\n    // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n    var isArray = Array.isArray(allowedPropNames);\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    var result = {};\n    var keys = Object.keys(props);\n    for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n        var key = keys_2[_i];\n        var isNativeProp = (!isArray && allowedPropNames[key]) ||\n            (isArray && allowedPropNames.indexOf(key) >= 0) ||\n            key.indexOf('data-') === 0 ||\n            key.indexOf('aria-') === 0;\n        if (isNativeProp && (!excludedPropNames || (excludedPropNames === null || excludedPropNames === void 0 ? void 0 : excludedPropNames.indexOf(key)) === -1)) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            result[key] = props[key];\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=properties.js.map","import { createMemoizer } from '../memoize';\nfunction createComposedRenderFunction(outer) {\n    var outerMemoizer = createMemoizer(function (inner) {\n        var innerMemoizer = createMemoizer(function (defaultRender) {\n            return function (innerProps) {\n                return inner(innerProps, defaultRender);\n            };\n        });\n        return function (outerProps, defaultRender) {\n            return outer(outerProps, defaultRender ? innerMemoizer(defaultRender) : inner);\n        };\n    });\n    return outerMemoizer;\n}\nvar memoizer = createMemoizer(createComposedRenderFunction);\n/**\n * Composes two 'render functions' to produce a final render function that renders\n * the outer function, passing the inner function as 'default render'. The inner function\n * is then passed the original 'default render' prop.\n * @public\n */\nexport function composeRenderFunction(outer, inner) {\n    return memoizer(outer)(inner);\n}\n//# sourceMappingURL=composeRenderFunction.js.map","import { KeyCodes } from './KeyCodes';\nimport { getDocument } from './dom/getDocument';\nimport { getItem, setItem } from './sessionStorage';\nimport { setRTL as mergeStylesSetRTL } from '@fluentui/merge-styles';\nvar RTL_LOCAL_STORAGE_KEY = 'isRTL';\n// Default to undefined so that we initialize on first read.\nvar _isRTL;\n/**\n * Gets the rtl state of the page (returns true if in rtl.)\n */\nexport function getRTL(theme) {\n    if (theme === void 0) { theme = {}; }\n    if (theme.rtl !== undefined) {\n        return theme.rtl;\n    }\n    if (_isRTL === undefined) {\n        // Fabric supports persisting the RTL setting between page refreshes via session storage\n        var savedRTL = getItem(RTL_LOCAL_STORAGE_KEY);\n        if (savedRTL !== null) {\n            _isRTL = savedRTL === '1';\n            setRTL(_isRTL);\n        }\n        var doc = getDocument();\n        if (_isRTL === undefined && doc) {\n            _isRTL = ((doc.body && doc.body.getAttribute('dir')) || doc.documentElement.getAttribute('dir')) === 'rtl';\n            mergeStylesSetRTL(_isRTL);\n        }\n    }\n    return !!_isRTL;\n}\n/**\n * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)\n */\nexport function setRTL(isRTL, persistSetting) {\n    if (persistSetting === void 0) { persistSetting = false; }\n    var doc = getDocument();\n    if (doc) {\n        doc.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');\n    }\n    if (persistSetting) {\n        setItem(RTL_LOCAL_STORAGE_KEY, isRTL ? '1' : '0');\n    }\n    _isRTL = isRTL;\n    mergeStylesSetRTL(_isRTL);\n}\n/**\n * Returns the given key, but flips right/left arrows if necessary.\n */\nexport function getRTLSafeKeyCode(key, theme) {\n    if (theme === void 0) { theme = {}; }\n    if (getRTL(theme)) {\n        if (key === KeyCodes.left) {\n            key = KeyCodes.right;\n        }\n        else if (key === KeyCodes.right) {\n            key = KeyCodes.left;\n        }\n    }\n    return key;\n}\n//# sourceMappingURL=rtl.js.map","import { getDocument } from './dom/getDocument';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getWindow } from './dom/getWindow';\nvar _scrollbarWidth;\nvar _bodyScrollDisabledCount = 0;\nvar DisabledScrollClassName = mergeStyles({\n    overflow: 'hidden !important',\n});\n/**\n * Placing this attribute on scrollable divs optimizes detection to know\n * if the div is scrollable or not (given we can avoid expensive operations\n * like getComputedStyle.)\n *\n * @public\n */\nexport var DATA_IS_SCROLLABLE_ATTRIBUTE = 'data-is-scrollable';\n/**\n * Allows the user to scroll within a element,\n * while preventing the user from scrolling the body\n */\nexport var allowScrollOnElement = function (element, events) {\n    var window = getWindow(element);\n    if (!element || !window) {\n        return;\n    }\n    var _previousClientY = 0;\n    var _element = null;\n    var computedStyles = window.getComputedStyle(element);\n    // remember the clientY for future calls of _preventOverscrolling\n    var _saveClientY = function (event) {\n        if (event.targetTouches.length === 1) {\n            _previousClientY = event.targetTouches[0].clientY;\n        }\n    };\n    // prevent the body from scrolling when the user attempts\n    // to scroll past the top or bottom of the element\n    var _preventOverscrolling = function (event) {\n        // only respond to a single-finger touch\n        if (event.targetTouches.length !== 1) {\n            return;\n        }\n        // prevent the body touchmove handler from firing\n        // so that scrolling is allowed within the element\n        event.stopPropagation();\n        if (!_element) {\n            return;\n        }\n        var clientY = event.targetTouches[0].clientY - _previousClientY;\n        var scrollableParent = findScrollableParent(event.target);\n        if (scrollableParent && _element !== scrollableParent) {\n            _element = scrollableParent;\n            computedStyles = window.getComputedStyle(_element);\n        }\n        var scrollTop = _element.scrollTop;\n        var isColumnReverse = (computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.flexDirection) === 'column-reverse';\n        // if the element is scrolled to the top,\n        // prevent the user from scrolling up\n        if (scrollTop === 0 && (isColumnReverse ? clientY < 0 : clientY > 0)) {\n            event.preventDefault();\n        }\n        // if the element is scrolled to the bottom,\n        // prevent the user from scrolling down\n        if (_element.scrollHeight - Math.abs(Math.ceil(scrollTop)) <= _element.clientHeight &&\n            (isColumnReverse ? clientY > 0 : clientY < 0)) {\n            event.preventDefault();\n        }\n    };\n    events.on(element, 'touchstart', _saveClientY, { passive: false });\n    events.on(element, 'touchmove', _preventOverscrolling, { passive: false });\n    _element = element;\n};\n/**\n * Same as allowScrollOnElement but does not prevent overscrolling.\n */\nexport var allowOverscrollOnElement = function (element, events) {\n    if (!element) {\n        return;\n    }\n    var _allowElementScroll = function (event) {\n        event.stopPropagation();\n    };\n    events.on(element, 'touchmove', _allowElementScroll, { passive: false });\n};\nvar _disableIosBodyScroll = function (event) {\n    event.preventDefault();\n};\n/**\n * Disables the body scrolling.\n *\n * @public\n */\nexport function disableBodyScroll() {\n    var doc = getDocument();\n    if (doc && doc.body && !_bodyScrollDisabledCount) {\n        doc.body.classList.add(DisabledScrollClassName);\n        doc.body.addEventListener('touchmove', _disableIosBodyScroll, { passive: false, capture: false });\n    }\n    _bodyScrollDisabledCount++;\n}\n/**\n * Enables the body scrolling.\n *\n * @public\n */\nexport function enableBodyScroll() {\n    if (_bodyScrollDisabledCount > 0) {\n        var doc = getDocument();\n        if (doc && doc.body && _bodyScrollDisabledCount === 1) {\n            doc.body.classList.remove(DisabledScrollClassName);\n            doc.body.removeEventListener('touchmove', _disableIosBodyScroll);\n        }\n        _bodyScrollDisabledCount--;\n    }\n}\n/**\n * Calculates the width of a scrollbar for the browser/os.\n *\n * @public\n */\nexport function getScrollbarWidth(doc) {\n    if (_scrollbarWidth === undefined) {\n        var theDoc = doc !== null && doc !== void 0 ? doc : getDocument();\n        var scrollDiv = theDoc.createElement('div');\n        scrollDiv.style.setProperty('width', '100px');\n        scrollDiv.style.setProperty('height', '100px');\n        scrollDiv.style.setProperty('overflow', 'scroll');\n        scrollDiv.style.setProperty('position', 'absolute');\n        scrollDiv.style.setProperty('top', '-9999px');\n        theDoc.body.appendChild(scrollDiv);\n        // Get the scrollbar width\n        _scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n        // Delete the DIV\n        theDoc.body.removeChild(scrollDiv);\n    }\n    return _scrollbarWidth;\n}\n/**\n * Traverses up the DOM for the element with the data-is-scrollable=true attribute, or returns\n * document.body.\n *\n * @public\n */\nexport function findScrollableParent(startingElement) {\n    var el = startingElement;\n    var doc = getDocument(startingElement);\n    // First do a quick scan for the scrollable attribute.\n    while (el && el !== doc.body) {\n        if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) === 'true') {\n            return el;\n        }\n        el = el.parentElement;\n    }\n    // If we haven't found it, the use the slower method: compute styles to evaluate if overflow is set.\n    el = startingElement;\n    while (el && el !== doc.body) {\n        if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) !== 'false') {\n            var computedStyles = getComputedStyle(el);\n            var overflowY = computedStyles ? computedStyles.getPropertyValue('overflow-y') : '';\n            if (overflowY && (overflowY === 'scroll' || overflowY === 'auto')) {\n                return el;\n            }\n        }\n        el = el.parentElement;\n    }\n    // Fall back to window scroll.\n    if (!el || el === doc.body) {\n        el = getWindow(startingElement);\n    }\n    return el;\n}\n//# sourceMappingURL=scroll.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from session storage without throwing an exception\n * @param key The key of the item to fetch from session storage\n */\nexport function getItem(key) {\n    var result = null;\n    try {\n        var win = getWindow();\n        result = win ? win.sessionStorage.getItem(key) : null;\n    }\n    catch (e) {\n        /* Eat the exception */\n    }\n    return result;\n}\n/**\n * Inserts an item into session storage without throwing an exception\n * @param key The key of the item to add to session storage\n * @param data The data to put into session storage\n */\nexport function setItem(key, data) {\n    var _a;\n    try {\n        (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.sessionStorage.setItem(key, data);\n    }\n    catch (e) {\n        /* Eat the exception */\n    }\n}\n//# sourceMappingURL=sessionStorage.js.map","import { getWindow } from './dom/getWindow';\nexport var IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';\nexport var IsFocusHiddenClassName = 'ms-Fabric--isFocusHidden';\nfunction updateClassList(el, enabled) {\n    if (el) {\n        el.classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName);\n        el.classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName);\n    }\n}\n/**\n * Sets the visibility of focus styling.\n *\n * By default, focus styles (the box surrounding a focused Button, for example) only show up when navigational\n * keypresses occur (through Tab, arrows, PgUp/PgDn, Home and End), and are hidden when mouse interactions occur.\n * This API provides an imperative way to turn them on/off.\n *\n * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page,\n * and want focus to show up.\n *\n * @param enabled - Whether to turn focus visibility on or off.\n * @param target - Optional target from which to get window in case no `providerElem` has been specified.\n * @param registeredProviders - Array of provider refs that are associated with a FocusRectsProvider. If no array\n *                              is passed in, the classnames are attached to the document body that contains `target`.\n */\nexport function setFocusVisibility(enabled, target, registeredProviders) {\n    var _a;\n    if (registeredProviders) {\n        registeredProviders.forEach(function (ref) { return updateClassList(ref.current, enabled); });\n    }\n    else {\n        updateClassList((_a = getWindow(target)) === null || _a === void 0 ? void 0 : _a.document.body, enabled);\n    }\n}\n//# sourceMappingURL=setFocusVisibility.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { GLOBAL_STYLESHEET_KEY, ShadowDomStylesheet, makeShadowConfig, DEFAULT_SHADOW_CONFIG, } from '@fluentui/merge-styles';\nimport { getWindow } from '../../dom';\nimport { useAdoptedStylesheet as useAdoptedStylesheetDefault, useAdoptedStylesheetEx as useAdoptedStylesheetExDefault, } from '../hooks/useAdoptedStylesheet';\nimport { useShadowConfig as useShadowConfigDefault } from '../hooks/useShadowConfig';\nimport { useHasMergeStylesShadowRootContext as useHasMergeStylesShadowRootContextDefault, useMergeStylesShadowRootContext as useMergeStylesShadowRootContextDefault, } from '../hooks/useMergeStylesShadowRoot';\nimport { useMergeStylesRootStylesheets as useMergeStylesRootStylesheetsDefault } from '../hooks/useMergeStylesRootStylesheets';\nimport { useStyled as useStyledDefault } from '../hooks/useStyled';\nimport { useWindow as useWindowDefault } from '@fluentui/react-window-provider';\nvar noop = function () { return false; };\nvar noopShadow = function () { return DEFAULT_SHADOW_CONFIG; };\nvar noopRootStylesheets = function () { return new Map(); };\nvar noopUndefined = function () { return undefined; };\nexport var MergeStylesRootContext = React.createContext({\n    stylesheets: new Map(),\n    useAdoptedStylesheetEx: noop,\n    useAdoptedStylesheet: noop,\n    useShadowConfig: noopShadow,\n    useMergeStylesShadowRootContext: noopUndefined,\n    useHasMergeStylesShadowRootContext: noop,\n    useMergeStylesRootStylesheets: noopRootStylesheets,\n    useWindow: noopUndefined,\n    useStyled: noopUndefined,\n});\n/**\n * Root context provider for mergeStyles shadow DOM.\n * Typically this is placed at the render root of your React application.\n */\nexport var MergeStylesRootProvider = function (_a) {\n    var userSheets = _a.stylesheets, userWindow = _a.window, useAdoptedStylesheet = _a.useAdoptedStylesheet, useAdoptedStylesheetEx = _a.useAdoptedStylesheetEx, useShadowConfig = _a.useShadowConfig, useMergeStylesShadowRootContext = _a.useMergeStylesShadowRootContext, useHasMergeStylesShadowRootContext = _a.useHasMergeStylesShadowRootContext, useMergeStylesRootStylesheets = _a.useMergeStylesRootStylesheets, useWindow = _a.useWindow, useStyled = _a.useStyled, props = __rest(_a, [\"stylesheets\", \"window\", \"useAdoptedStylesheet\", \"useAdoptedStylesheetEx\", \"useShadowConfig\", \"useMergeStylesShadowRootContext\", \"useHasMergeStylesShadowRootContext\", \"useMergeStylesRootStylesheets\", \"useWindow\", \"useStyled\"]);\n    var win = userWindow !== null && userWindow !== void 0 ? userWindow : getWindow();\n    var _b = React.useState(function () { return userSheets || new Map(); }), stylesheets = _b[0], setStylesheets = _b[1];\n    var sheetHandler = React.useCallback(function (_a) {\n        var key = _a.key, sheet = _a.sheet;\n        setStylesheets(function (prev) {\n            var next = new Map(prev);\n            next.set(key, sheet);\n            return next;\n        });\n    }, []);\n    // Udapte stylesheets based on user style sheet changes\n    React.useEffect(function () {\n        setStylesheets(userSheets || new Map());\n    }, [userSheets]);\n    // Wire up listener for adopted stylesheets\n    React.useEffect(function () {\n        if (!win) {\n            return;\n        }\n        var sheet = ShadowDomStylesheet.getInstance(makeShadowConfig(GLOBAL_STYLESHEET_KEY, false, win));\n        var off = sheet.onAddSheet(sheetHandler);\n        return function () {\n            off();\n        };\n    }, [win, sheetHandler]);\n    // Read stylesheets from window on mount\n    React.useEffect(function () {\n        if (!win) {\n            return;\n        }\n        var changed = false;\n        var next = new Map(stylesheets);\n        var sheet = ShadowDomStylesheet.getInstance(makeShadowConfig(GLOBAL_STYLESHEET_KEY, false, win));\n        var adoptedSheets = sheet.getAdoptedSheets();\n        adoptedSheets.forEach(function (adoptedSheet, key) {\n            next.set(key, adoptedSheet);\n            changed = true;\n        });\n        if (changed) {\n            setStylesheets(next);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n    var value = React.useMemo(function () {\n        return {\n            stylesheets: stylesheets,\n            useAdoptedStylesheet: useAdoptedStylesheet || useAdoptedStylesheetDefault,\n            useAdoptedStylesheetEx: useAdoptedStylesheetEx || useAdoptedStylesheetExDefault,\n            useShadowConfig: useShadowConfig || useShadowConfigDefault,\n            useMergeStylesShadowRootContext: useMergeStylesShadowRootContext || useMergeStylesShadowRootContextDefault,\n            useHasMergeStylesShadowRootContext: useHasMergeStylesShadowRootContext || useHasMergeStylesShadowRootContextDefault,\n            useMergeStylesRootStylesheets: useMergeStylesRootStylesheets || useMergeStylesRootStylesheetsDefault,\n            useWindow: useWindow || useWindowDefault,\n            useStyled: useStyled || useStyledDefault,\n        };\n    }, [\n        stylesheets,\n        useAdoptedStylesheet,\n        useAdoptedStylesheetEx,\n        useShadowConfig,\n        useMergeStylesShadowRootContext,\n        useHasMergeStylesShadowRootContext,\n        useMergeStylesRootStylesheets,\n        useWindow,\n        useStyled,\n    ]);\n    return React.createElement(MergeStylesRootContext.Provider, __assign({ value: value }, props));\n};\n//# sourceMappingURL=MergeStylesRootContext.js.map","import { GLOBAL_STYLESHEET_KEY } from '@fluentui/merge-styles';\nimport { useMergeStylesHooks } from '../hooks/useMergeStylesHooks';\nimport { useMergeStylesShadowRootContext } from '../hooks/useMergeStylesShadowRoot';\nexport var MergeStylesShadowRootConsumer = function (_a) {\n    var stylesheetKey = _a.stylesheetKey, children = _a.children;\n    var _b = useMergeStylesHooks(), useAdoptedStylesheetEx = _b.useAdoptedStylesheetEx, useMergeStylesRootStylesheets = _b.useMergeStylesRootStylesheets, useWindow = _b.useWindow;\n    var shadowCtx = useMergeStylesShadowRootContext();\n    var rootMergeStyles = useMergeStylesRootStylesheets();\n    var win = useWindow();\n    useAdoptedStylesheetEx(GLOBAL_STYLESHEET_KEY, shadowCtx, rootMergeStyles, win);\n    useAdoptedStylesheetEx(stylesheetKey, shadowCtx, rootMergeStyles, win);\n    return children(!!shadowCtx);\n};\n//# sourceMappingURL=MergeStylesShadowRootConsumer.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { GLOBAL_STYLESHEET_KEY } from '@fluentui/merge-styles';\nimport { useMergeStylesHooks } from '../hooks/useMergeStylesHooks';\nexport var MergeStylesShadowRootContext = React.createContext(undefined);\n/**\n * Context for a shadow root.\n */\nexport var MergeStylesShadowRootProvider = function (_a) {\n    var shadowRoot = _a.shadowRoot, props = __rest(_a, [\"shadowRoot\"]);\n    var value = React.useMemo(function () {\n        return {\n            stylesheets: new Map(),\n            shadowRoot: shadowRoot,\n        };\n    }, [shadowRoot]);\n    return (React.createElement(MergeStylesShadowRootContext.Provider, __assign({ value: value }, props),\n        React.createElement(GlobalStyles, null),\n        props.children));\n};\nvar GlobalStyles = function (props) {\n    var useAdoptedStylesheet = useMergeStylesHooks().useAdoptedStylesheet;\n    useAdoptedStylesheet(GLOBAL_STYLESHEET_KEY);\n    return null;\n};\n//# sourceMappingURL=MergeStylesShadowRootContext.js.map","import * as React from 'react';\nimport { MergeStylesRootContext } from '../contexts/MergeStylesRootContext';\nexport var useMergeStylesHooks = function () {\n    var ctx = React.useContext(MergeStylesRootContext);\n    return {\n        useAdoptedStylesheet: ctx.useAdoptedStylesheet,\n        useAdoptedStylesheetEx: ctx.useAdoptedStylesheetEx,\n        useShadowConfig: ctx.useShadowConfig,\n        useMergeStylesShadowRootContext: ctx.useMergeStylesShadowRootContext,\n        useHasMergeStylesShadowRootContext: ctx.useHasMergeStylesShadowRootContext,\n        useMergeStylesRootStylesheets: ctx.useMergeStylesRootStylesheets,\n        useWindow: ctx.useWindow,\n        useStyled: ctx.useStyled,\n    };\n};\n//# sourceMappingURL=useMergeStylesHooks.js.map","import * as React from 'react';\nimport { MergeStylesShadowRootContext, } from '../contexts/MergeStylesShadowRootContext';\n/**\n * Test if a context is available.\n * @returns true if there is a context.\n */\nexport var useHasMergeStylesShadowRootContext = function () {\n    return !!useMergeStylesShadowRootContext();\n};\n/**\n * Get a reference to the shadow root context.\n * @returns The context for the shadow root.\n */\nexport var useMergeStylesShadowRootContext = function () {\n    return React.useContext(MergeStylesShadowRootContext);\n};\n//# sourceMappingURL=useMergeStylesShadowRoot.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { concatStyleSetsWithProps } from '@fluentui/merge-styles';\nimport { useMergeStylesHooks } from './shadowDom/index';\nimport { useCustomizationSettings } from './customizations/useCustomizationSettings';\nvar DefaultFields = ['theme', 'styles'];\nexport function styled(Component, baseStyles, getProps, customizable, pure) {\n    customizable = customizable || { scope: '', fields: undefined };\n    var scope = customizable.scope, _a = customizable.fields, fields = _a === void 0 ? DefaultFields : _a;\n    var Wrapped = React.forwardRef(function (props, forwardedRef) {\n        var styles = React.useRef();\n        var settings = useCustomizationSettings(fields, scope);\n        var customizedStyles = settings.styles, dir = settings.dir, rest = __rest(settings, [\"styles\", \"dir\"]);\n        var additionalProps = getProps ? getProps(props) : undefined;\n        var useStyled = useMergeStylesHooks().useStyled;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        var cache = (styles.current && styles.current.__cachedInputs__) || [];\n        var propStyles = props.styles;\n        if (!styles.current || customizedStyles !== cache[1] || propStyles !== cache[2]) {\n            // Using styled components as the Component arg will result in nested styling arrays.\n            // The function can be cached and in order to prevent the props from being retained within it's closure\n            // we pass in just the styles and not the entire props\n            var concatenatedStyles = function (styleProps) {\n                return concatStyleSetsWithProps(styleProps, baseStyles, customizedStyles, propStyles);\n            };\n            // The __cachedInputs__ array is attached to the function and consumed by the\n            // classNamesFunction as a list of keys to include for memoizing classnames.\n            concatenatedStyles.__cachedInputs__ = [\n                baseStyles,\n                customizedStyles,\n                propStyles,\n            ];\n            concatenatedStyles.__noStyleOverride__ =\n                !customizedStyles && !propStyles;\n            styles.current = concatenatedStyles;\n        }\n        styles.current.__shadowConfig__ = useStyled(scope);\n        return React.createElement(Component, __assign({ ref: forwardedRef }, rest, additionalProps, props, { styles: styles.current }));\n    });\n    // Function.prototype.name is an ES6 feature, so the cast to any is required until we're\n    // able to drop IE 11 support and compile with ES6 libs\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    Wrapped.displayName = \"Styled\".concat(Component.displayName || Component.name);\n    // This preserves backwards compatibility.\n    var pureComponent = pure ? React.memo(Wrapped) : Wrapped;\n    // Check if the wrapper has a displayName after it has been memoized. Then assign it to the pure component.\n    if (Wrapped.displayName) {\n        pureComponent.displayName = Wrapped.displayName;\n    }\n    return pureComponent;\n}\n//# sourceMappingURL=styled.js.map","import * as React from 'react';\nimport { getWindow } from './dom/getWindow';\nimport { isDirectionalKeyCode } from './keyboard';\nimport { setFocusVisibility } from './setFocusVisibility';\nvar mountCounters = new WeakMap();\nvar callbackMap = new WeakMap();\nfunction setMountCounters(key, delta) {\n    var newValue;\n    var currValue = mountCounters.get(key);\n    if (currValue) {\n        newValue = currValue + delta;\n    }\n    else {\n        newValue = 1;\n    }\n    mountCounters.set(key, newValue);\n    return newValue;\n}\nfunction setCallbackMap(context) {\n    var callbacks = callbackMap.get(context);\n    if (callbacks) {\n        return callbacks;\n    }\n    var onMouseDown = function (ev) { return _onMouseDown(ev, context.registeredProviders); };\n    var onPointerDown = function (ev) { return _onPointerDown(ev, context.registeredProviders); };\n    var onKeyDown = function (ev) { return _onKeyDown(ev, context.registeredProviders); };\n    var onKeyUp = function (ev) { return _onKeyUp(ev, context.registeredProviders); };\n    callbacks = { onMouseDown: onMouseDown, onPointerDown: onPointerDown, onKeyDown: onKeyDown, onKeyUp: onKeyUp };\n    callbackMap.set(context, callbacks);\n    return callbacks;\n}\nexport var FocusRectsContext = React.createContext(undefined);\n/**\n * Initializes the logic which:\n *\n * 1. Subscribes keydown, keyup, mousedown and pointerdown events. (It will only do it once for the current element of\n *    the FocusRectsContext providerRef or once per window if no such element is provided via context, so it's safe to\n *    call this method multiple times.)\n * 2. When the user presses triggers a keydown or keyup event via directional keyboard keys, adds the\n *    'ms-Fabric--isFocusVisible' classname to the current element of the FocusRectsContext providerRef or the document\n *    body if no such element is provided via context, and removes the 'ms-Fabric-isFocusHidden' classname.\n * 3. When the user triggers a mousedown or pointerdown event, adds the 'ms-Fabric-isFocusHidden' classname to the\n *    current element of the FocusRectsContext providerRef or the document body if no such element is provided via\n *    context, and removes the 'ms-Fabric--isFocusVisible' classname.\n *\n * This logic allows components on the page to conditionally render focus treatments based on\n * the existence of global classnames, which simplifies logic overall.\n *\n * @param rootRef - A Ref object. Focus rectangle can be applied on itself and all its children.\n */\nexport function useFocusRects(rootRef) {\n    var context = React.useContext(FocusRectsContext);\n    React.useEffect(function () {\n        var _a, _b, _c, _d;\n        var win = getWindow(rootRef === null || rootRef === void 0 ? void 0 : rootRef.current);\n        if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n            return undefined;\n        }\n        var el = win;\n        var onMouseDown;\n        var onPointerDown;\n        var onKeyDown;\n        var onKeyUp;\n        if (((_b = context === null || context === void 0 ? void 0 : context.providerRef) === null || _b === void 0 ? void 0 : _b.current) &&\n            ((_d = (_c = context === null || context === void 0 ? void 0 : context.providerRef) === null || _c === void 0 ? void 0 : _c.current) === null || _d === void 0 ? void 0 : _d.addEventListener)) {\n            el = context.providerRef.current;\n            // The NOINLINE directive tells terser not to move the setCallbackMap implementation into the call site during\n            // minification.\n            // This prevents the function from capturing additional variables in the closure, which can cause memory leaks.\n            var callbacks = /*@__NOINLINE__*/ setCallbackMap(context);\n            onMouseDown = callbacks.onMouseDown;\n            onPointerDown = callbacks.onPointerDown;\n            onKeyDown = callbacks.onKeyDown;\n            onKeyUp = callbacks.onKeyUp;\n        }\n        else {\n            onMouseDown = _onMouseDown;\n            onPointerDown = _onPointerDown;\n            onKeyDown = _onKeyDown;\n            onKeyUp = _onKeyUp;\n        }\n        var count = setMountCounters(el, 1);\n        if (count <= 1) {\n            el.addEventListener('mousedown', onMouseDown, true);\n            el.addEventListener('pointerdown', onPointerDown, true);\n            el.addEventListener('keydown', onKeyDown, true);\n            el.addEventListener('keyup', onKeyUp, true);\n        }\n        return function () {\n            var _a;\n            if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n                return;\n            }\n            count = setMountCounters(el, -1);\n            if (count === 0) {\n                el.removeEventListener('mousedown', onMouseDown, true);\n                el.removeEventListener('pointerdown', onPointerDown, true);\n                el.removeEventListener('keydown', onKeyDown, true);\n                el.removeEventListener('keyup', onKeyUp, true);\n            }\n        };\n    }, [context, rootRef]);\n}\n/**\n * Function Component wrapper which enables calling `useFocusRects` hook.\n * Renders nothing.\n */\nexport var FocusRects = function (props) {\n    useFocusRects(props.rootRef);\n    return null;\n};\nfunction _onMouseDown(ev, registeredProviders) {\n    setFocusVisibility(false, ev.target, registeredProviders);\n}\nfunction _onPointerDown(ev, registeredProviders) {\n    if (ev.pointerType !== 'mouse') {\n        setFocusVisibility(false, ev.target, registeredProviders);\n    }\n}\n// You need both a keydown and a keyup listener that sets focus visibility to true to handle two distinct scenarios when\n// attaching the listeners and classnames to the provider instead of the document body.\n// If you only have a keydown listener, then the focus rectangles will not show when moving from outside of the provider\n// to inside it. That is why a keyup listener is needed, since it will always trigger after the focus event is fired.\n// If you only have a keyup listener, then the focus rectangles will not show moving between different tabbable elements\n// if the tab key is pressed without being released. That's is why we need a keydown listener, since it will trigger for\n// every element that is being tabbed into.\n// This works because `classList.add` is smart and will not duplicate a classname that already exists on the classList\n// when focus visibility is turned on.\nfunction _onKeyDown(ev, registeredProviders) {\n    // eslint-disable-next-line deprecation/deprecation\n    if (isDirectionalKeyCode(ev.which)) {\n        setFocusVisibility(true, ev.target, registeredProviders);\n    }\n}\nfunction _onKeyUp(ev, registeredProviders) {\n    // eslint-disable-next-line deprecation/deprecation\n    if (isDirectionalKeyCode(ev.which)) {\n        setFocusVisibility(true, ev.target, registeredProviders);\n    }\n}\n//# sourceMappingURL=useFocusRects.js.map","import * as React from 'react';\nimport { canUseDOM } from './dom/canUseDOM';\n/**\n * React currently throws a warning when using `useLayoutEffect` on the server. To get around it,\n * this hook calls `useEffect` on the server (no-op) and `useLayoutEffect` in the browser.\n *\n * Prefer `useEffect` unless you have a specific need to do something after mount and before paint,\n * such as to avoid a render flash for certain operations.\n *\n * Server-side rendering is detected based on `canUseDOM` from `@fluentui/utilities`.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n */\n// eslint-disable-next-line no-restricted-properties\nexport var useIsomorphicLayoutEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","/* eslint-disable no-console */\nvar _warningCallback = undefined;\n/**\n * Sends a warning to console, if the api is present.\n *\n * @public\n * @param message - Warning message.\n */\nexport function warn(message) {\n    if (_warningCallback && process.env.NODE_ENV !== 'production') {\n        _warningCallback(message);\n    }\n    else if (console && console.warn) {\n        console.warn(message);\n    }\n}\n/**\n * Configures the warning callback. Passing in undefined will reset it to use the default\n * console.warn function.\n *\n * @public\n * @param warningCallback - Callback to override the generated warnings.\n */\nexport function setWarningCallback(warningCallback) {\n    _warningCallback = warningCallback;\n}\n//# sourceMappingURL=warn.js.map","import { warn } from './warn';\n/**\n * Warns when props are required if a condition is met.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\nexport function warnConditionallyRequiredProps(componentName, props, requiredProps, conditionalPropName, condition) {\n    if (condition === true && process.env.NODE_ENV !== 'production') {\n        for (var _i = 0, requiredProps_1 = requiredProps; _i < requiredProps_1.length; _i++) {\n            var requiredPropName = requiredProps_1[_i];\n            if (!(requiredPropName in props)) {\n                warn(\"\".concat(componentName, \" property '\").concat(requiredPropName, \"' is required when '\").concat(conditionalPropName, \"' is used.'\"));\n            }\n        }\n    }\n}\n//# sourceMappingURL=warnConditionallyRequiredProps.js.map","import { warn } from './warn';\n/**\n * Warns when a deprecated props are being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\nexport function warnDeprecations(componentName, props, deprecationMap) {\n    if (process.env.NODE_ENV !== 'production') {\n        for (var propName in deprecationMap) {\n            if (props && propName in props) {\n                var deprecationMessage = \"\".concat(componentName, \" property '\").concat(propName, \"' was used but has been deprecated.\");\n                var replacementPropName = deprecationMap[propName];\n                if (replacementPropName) {\n                    deprecationMessage += \" Use '\".concat(replacementPropName, \"' instead.\");\n                }\n                warn(deprecationMessage);\n            }\n        }\n    }\n}\n//# sourceMappingURL=warnDeprecations.js.map","import { warn } from './warn';\n/**\n * Warns when two props which are mutually exclusive are both being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param exclusiveMap - A map where the key is a parameter, and the value is the other parameter.\n */\nexport function warnMutuallyExclusive(componentName, props, exclusiveMap) {\n    if (process.env.NODE_ENV !== 'production') {\n        for (var propName in exclusiveMap) {\n            if (props && props[propName] !== undefined) {\n                var propInExclusiveMapValue = exclusiveMap[propName];\n                if (propInExclusiveMapValue && props[propInExclusiveMapValue] !== undefined) {\n                    warn(\"\".concat(componentName, \" property '\").concat(propName, \"' is mutually exclusive with '\").concat(exclusiveMap[propName], \"'. \") +\n                        \"Use one or the other.\");\n                }\n            }\n        }\n    }\n}\n//# sourceMappingURL=warnMutuallyExclusive.js.map","/*!\n * Application Insights JavaScript SDK - Web Analytics, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n * ApplicationInsights.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { PageViewPerformance, PageView, RemoteDependencyData, Event as EventTelemetry, TelemetryItemCreator, Metric, Exception, SeverityLevel, Trace, dateTimeUtilsDuration, PropertiesPluginIdentifier, AnalyticsPluginIdentifier, stringToBoolOrDefault, createDomEvent, strNotSpecified, isCrossOriginError, utlDisableStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, LoggingSeverity, _InternalMessageId, getWindow, getDocument, getHistory, getLocation, doPerf, objForEachKey, isString, isFunction, isNullOrUndefined, arrForEach, generateW3CId, dumpObj, getExceptionName, isError, safeGetCookieMgr } from \"@microsoft/applicationinsights-core-js\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { PageViewPerformanceManager } from './Telemetry/PageViewPerformanceManager';\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n\"use strict\";\r\nvar durationProperty = \"duration\";\r\nfunction _dispatchEvent(target, evnt) {\r\n    if (target && target.dispatchEvent && evnt) {\r\n        target.dispatchEvent(evnt);\r\n    }\r\n}\r\nfunction _formatMessage(message) {\r\n    if (message && !isString(message)) {\r\n        // tslint:disable-next-line: prefer-conditional-expression\r\n        if (isFunction(message.toString)) {\r\n            message = message.toString();\r\n        }\r\n        else {\r\n            message = JSON.stringify(message);\r\n        }\r\n    }\r\n    return message;\r\n}\r\nvar ApplicationInsights = /** @class */ (function (_super) {\r\n    __extends(ApplicationInsights, _super);\r\n    function ApplicationInsights() {\r\n        var _this = _super.call(this) || this;\r\n        _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n        _this.priority = 180; // take from reserved priority range 100- 200\r\n        _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n        var _eventTracking;\r\n        var _pageTracking;\r\n        var _properties;\r\n        // Counts number of trackAjax invocations.\r\n        // By default we only monitor X ajax call per view to avoid too much load.\r\n        // Default value is set in config.\r\n        // This counter keeps increasing even after the limit is reached.\r\n        var _trackAjaxAttempts = 0;\r\n        // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n        var _prevUri; // Assigned in the constructor\r\n        var _currUri;\r\n        dynamicProto(ApplicationInsights, _this, function (_self, _base) {\r\n            var location = getLocation(true);\r\n            _prevUri = location && location.href || \"\";\r\n            _self.getCookieMgr = function () {\r\n                return safeGetCookieMgr(_self.core);\r\n            };\r\n            _self.processTelemetry = function (env, itemCtx) {\r\n                doPerf(_self.core, function () { return _self.identifier + \":processTelemetry\"; }, function () {\r\n                    var doNotSendItem = false;\r\n                    var telemetryInitializersCount = _self._telemetryInitializers.length;\r\n                    itemCtx = _self._getTelCtx(itemCtx);\r\n                    for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n                        var telemetryInitializer = _self._telemetryInitializers[i];\r\n                        if (telemetryInitializer) {\r\n                            try {\r\n                                if (telemetryInitializer.apply(null, [env]) === false) {\r\n                                    doNotSendItem = true;\r\n                                    break;\r\n                                }\r\n                            }\r\n                            catch (e) {\r\n                                // log error but dont stop executing rest of the telemetry initializers\r\n                                // doNotSendItem = true;\r\n                                itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n                            }\r\n                        }\r\n                    }\r\n                    if (!doNotSendItem) {\r\n                        _self.processNext(env, itemCtx);\r\n                    }\r\n                }, function () { return ({ item: env }); }, !(env.sync));\r\n            };\r\n            _self.trackEvent = function (event, customProperties) {\r\n                try {\r\n                    var telemetryItem = TelemetryItemCreator.create(event, EventTelemetry.dataType, EventTelemetry.envelopeType, _self.diagLog(), customProperties);\r\n                    _self.core.track(telemetryItem);\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n             * @param   name    A string that identifies this event uniquely within the document.\r\n             */\r\n            _self.startTrackEvent = function (name) {\r\n                try {\r\n                    _eventTracking.start(name);\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Log an extended event that you started timing with `startTrackEvent`.\r\n             * @param   name    The string you used to identify this event in `startTrackEvent`.\r\n             * @param   properties  map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n             * @param   measurements    map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n             */\r\n            _self.stopTrackEvent = function (name, properties, measurements) {\r\n                try {\r\n                    _eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * @description Log a diagnostic message\r\n             * @param {ITraceTelemetry} trace\r\n             * @param ICustomProperties.\r\n             * @memberof ApplicationInsights\r\n             */\r\n            _self.trackTrace = function (trace, customProperties) {\r\n                try {\r\n                    var telemetryItem = TelemetryItemCreator.create(trace, Trace.dataType, Trace.envelopeType, _self.diagLog(), customProperties);\r\n                    _self.core.track(telemetryItem);\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * @description Log a numeric value that is not associated with a specific event. Typically\r\n             * used to send regular reports of performance indicators. To send single measurement, just\r\n             * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n             * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n             * and sending the resulting average at intervals\r\n             * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n             * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n             * portal. Defaults to empty.\r\n             * @memberof ApplicationInsights\r\n             */\r\n            _self.trackMetric = function (metric, customProperties) {\r\n                try {\r\n                    var telemetryItem = TelemetryItemCreator.create(metric, Metric.dataType, Metric.envelopeType, _self.diagLog(), customProperties);\r\n                    _self.core.track(telemetryItem);\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Logs that a page or other item was viewed.\r\n             * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n             * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n             * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n             */\r\n            _self.trackPageView = function (pageView, customProperties) {\r\n                try {\r\n                    var inPv = pageView || {};\r\n                    _self._pageViewManager.trackPageView(inPv, __assign({}, inPv.properties, inPv.measurements, customProperties));\r\n                    if (_self.config.autoTrackPageVisitTime) {\r\n                        _self._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n             * @param pageView Page view item to be sent\r\n             * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n             * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n             */\r\n            _self.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n                var doc = getDocument();\r\n                if (doc) {\r\n                    pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n                }\r\n                var telemetryItem = TelemetryItemCreator.create(pageView, PageView.dataType, PageView.envelopeType, _self.diagLog(), properties, systemProperties);\r\n                _self.core.track(telemetryItem);\r\n                // reset ajaxes counter\r\n                _trackAjaxAttempts = 0;\r\n            };\r\n            /**\r\n             * @ignore INTERNAL ONLY\r\n             * @param pageViewPerformance\r\n             * @param properties\r\n             */\r\n            _self.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n                var telemetryItem = TelemetryItemCreator.create(pageViewPerformance, PageViewPerformance.dataType, PageViewPerformance.envelopeType, _self.diagLog(), properties, systemProperties);\r\n                _self.core.track(telemetryItem);\r\n            };\r\n            /**\r\n             * Send browser performance metrics.\r\n             * @param pageViewPerformance\r\n             * @param customProperties\r\n             */\r\n            _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n                try {\r\n                    _self._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n                    _self.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n             * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n             * and send the event.\r\n             * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n             */\r\n            _self.startTrackPage = function (name) {\r\n                try {\r\n                    if (typeof name !== \"string\") {\r\n                        var doc = getDocument();\r\n                        name = doc && doc.title || \"\";\r\n                    }\r\n                    _pageTracking.start(name);\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n             * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n             * @param   name  The string you used as the name in startTrackPage. Defaults to the document title.\r\n             * @param   url   String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n             * @param   properties  map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n             * @param   measurements    map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n             */\r\n            _self.stopTrackPage = function (name, url, properties, measurement) {\r\n                try {\r\n                    if (typeof name !== \"string\") {\r\n                        var doc = getDocument();\r\n                        name = doc && doc.title || \"\";\r\n                    }\r\n                    if (typeof url !== \"string\") {\r\n                        var loc = getLocation();\r\n                        url = loc && loc.href || \"\";\r\n                    }\r\n                    _pageTracking.stop(name, url, properties, measurement);\r\n                    if (_self.config.autoTrackPageVisitTime) {\r\n                        _self._pageVisitTimeManager.trackPreviousPageVisit(name, url);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * @ignore INTERNAL ONLY\r\n             * @param exception\r\n             * @param properties\r\n             * @param systemProperties\r\n             */\r\n            _self.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n                var exceptionPartB = new Exception(_self.diagLog(), exception.exception || new Error(strNotSpecified), exception.properties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n                var telemetryItem = TelemetryItemCreator.create(exceptionPartB, Exception.dataType, Exception.envelopeType, _self.diagLog(), customProperties, systemProperties);\r\n                _self.core.track(telemetryItem);\r\n            };\r\n            /**\r\n             * Log an exception you have caught.\r\n             *\r\n             * @param {IExceptionTelemetry} exception   Object which contains exception to be sent\r\n             * @param {{[key: string]: any}} customProperties   Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n             *\r\n             * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n             * @memberof ApplicationInsights\r\n             */\r\n            _self.trackException = function (exception, customProperties) {\r\n                try {\r\n                    _self.sendExceptionInternal(exception, customProperties);\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            /**\r\n             * @description Custom error handler for Application Insights Analytics\r\n             * @param {IAutoExceptionTelemetry} exception\r\n             * @memberof ApplicationInsights\r\n             */\r\n            _self._onerror = function (exception) {\r\n                try {\r\n                    var properties_1 = {\r\n                        url: (exception && exception.url) || (getDocument() || {}).URL,\r\n                        lineNumber: exception.lineNumber,\r\n                        columnNumber: exception.columnNumber,\r\n                        message: exception.message\r\n                    };\r\n                    if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception.error)) {\r\n                        _sendCORSException(properties_1.url);\r\n                    }\r\n                    else {\r\n                        if (!isError(exception.error)) {\r\n                            var stack = \"window.onerror@\" + properties_1.url + \":\" + exception.lineNumber + \":\" + (exception.columnNumber || 0);\r\n                            exception.error = new Error(exception.message);\r\n                            exception.error.stack = stack;\r\n                        }\r\n                        _self.trackException({ exception: exception.error, severityLevel: SeverityLevel.Error }, properties_1);\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    var errorString = exception.error ?\r\n                        (exception.error.name + \", \" + exception.error.message)\r\n                        : \"null\";\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, \"_onError threw exception while logging error, error will not be collected: \"\r\n                        + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n                }\r\n            };\r\n            _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n                _self._telemetryInitializers.push(telemetryInitializer);\r\n            };\r\n            _self.initialize = function (config, core, extensions, pluginChain) {\r\n                if (_self.isInitialized()) {\r\n                    return;\r\n                }\r\n                if (isNullOrUndefined(core)) {\r\n                    throw Error(\"Error initializing\");\r\n                }\r\n                _base.initialize(config, core, extensions, pluginChain);\r\n                _self.setInitialized(false); // resetting the initialized state, just in case the following fails\r\n                var ctx = _self._getTelCtx();\r\n                var identifier = _self.identifier;\r\n                _self.config = ctx.getExtCfg(identifier);\r\n                // load default values if specified\r\n                var defaults = ApplicationInsights.getDefaultConfig();\r\n                if (defaults !== undefined) {\r\n                    objForEachKey(defaults, function (field, value) {\r\n                        // for each unspecified field, set the default value\r\n                        _self.config[field] = ctx.getConfig(identifier, field, value);\r\n                        if (_self.config[field] === undefined) {\r\n                            _self.config[field] = value;\r\n                        }\r\n                    });\r\n                }\r\n                // Todo: move this out of static state\r\n                if (_self.config.isStorageUseDisabled) {\r\n                    utlDisableStorage();\r\n                }\r\n                var configGetters = {\r\n                    instrumentationKey: function () { return config.instrumentationKey; },\r\n                    accountId: function () { return _self.config.accountId || config.accountId; },\r\n                    sessionRenewalMs: function () { return _self.config.sessionRenewalMs || config.sessionRenewalMs; },\r\n                    sessionExpirationMs: function () { return _self.config.sessionExpirationMs || config.sessionExpirationMs; },\r\n                    sampleRate: function () { return _self.config.samplingPercentage || config.samplingPercentage; },\r\n                    sdkExtension: function () { return _self.config.sdkExtension || config.sdkExtension; },\r\n                    isBrowserLinkTrackingEnabled: function () { return _self.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled; },\r\n                    appId: function () { return _self.config.appId || config.appId; }\r\n                };\r\n                _self._pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);\r\n                _self._pageViewManager = new PageViewManager(_this, _self.config.overridePageViewDuration, _self.core, _self._pageViewPerformanceManager);\r\n                _self._pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n                _self._telemetryInitializers = _self._telemetryInitializers || [];\r\n                _addDefaultTelemetryInitializers(configGetters);\r\n                _eventTracking = new Timing(_self.diagLog(), \"trackEvent\");\r\n                _eventTracking.action =\r\n                    function (name, url, duration, properties) {\r\n                        if (!properties) {\r\n                            properties = {};\r\n                        }\r\n                        properties[durationProperty] = duration.toString();\r\n                        _self.trackEvent({ name: name, properties: properties });\r\n                    };\r\n                // initialize page view timing\r\n                _pageTracking = new Timing(_self.diagLog(), \"trackPageView\");\r\n                _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n                    // duration must be a custom property in order for the collector to extract it\r\n                    if (isNullOrUndefined(properties)) {\r\n                        properties = {};\r\n                    }\r\n                    properties[durationProperty] = duration.toString();\r\n                    var pageViewItem = {\r\n                        name: name,\r\n                        uri: url,\r\n                        properties: properties,\r\n                        measurements: measurements\r\n                    };\r\n                    _self.sendPageViewInternal(pageViewItem, properties);\r\n                };\r\n                var _window = getWindow();\r\n                var _history = getHistory();\r\n                var _location = getLocation(true);\r\n                var instance = _this;\r\n                if (_self.config.disableExceptionTracking === false &&\r\n                    !_self.config.autoExceptionInstrumented && _window) {\r\n                    // We want to enable exception auto collection and it has not been done so yet\r\n                    var onerror_1 = \"onerror\";\r\n                    var originalOnError_1 = _window[onerror_1];\r\n                    _window.onerror = function (message, url, lineNumber, columnNumber, error) {\r\n                        var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);\r\n                        if (handled !== true) {\r\n                            instance._onerror({\r\n                                message: _formatMessage(message),\r\n                                url: url,\r\n                                lineNumber: lineNumber,\r\n                                columnNumber: columnNumber,\r\n                                error: error\r\n                            });\r\n                        }\r\n                        return handled;\r\n                    };\r\n                    _self.config.autoExceptionInstrumented = true;\r\n                }\r\n                if (_self.config.disableExceptionTracking === false &&\r\n                    _self.config.enableUnhandledPromiseRejectionTracking === true &&\r\n                    !_self.config.autoUnhandledPromiseInstrumented && _window) {\r\n                    // We want to enable exception auto collection and it has not been done so yet\r\n                    var onunhandledrejection = \"onunhandledrejection\";\r\n                    var originalOnUnhandledRejection_1 = _window[onunhandledrejection];\r\n                    _window[onunhandledrejection] = function (error) {\r\n                        var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);\r\n                        if (handled !== true) {\r\n                            instance._onerror({\r\n                                message: error.reason.toString(),\r\n                                error: error.reason instanceof Error ? error.reason : new Error(error.reason.toString()),\r\n                                url: _location ? _location.href : \"\",\r\n                                lineNumber: 0,\r\n                                columnNumber: 0\r\n                            });\r\n                        }\r\n                        return handled;\r\n                    };\r\n                    _self.config.autoUnhandledPromiseInstrumented = true;\r\n                }\r\n                /**\r\n                 * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n                 */\r\n                if (_self.config.enableAutoRouteTracking === true\r\n                    && _history && isFunction(_history.pushState) && isFunction(_history.replaceState)\r\n                    && _window\r\n                    && typeof Event !== \"undefined\") {\r\n                    var _self_1 = _this;\r\n                    // Find the properties plugin\r\n                    arrForEach(extensions, function (extension) {\r\n                        if (extension.identifier === PropertiesPluginIdentifier) {\r\n                            _properties = extension;\r\n                        }\r\n                    });\r\n                    _history.pushState = (function (f) { return function pushState() {\r\n                        var ret = f.apply(this, arguments);\r\n                        _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"pushState\"));\r\n                        _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n                        return ret;\r\n                    }; })(_history.pushState);\r\n                    _history.replaceState = (function (f) { return function replaceState() {\r\n                        var ret = f.apply(this, arguments);\r\n                        _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"replaceState\"));\r\n                        _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n                        return ret;\r\n                    }; })(_history.replaceState);\r\n                    if (_window.addEventListener) {\r\n                        _window.addEventListener(_self_1.config.namePrefix + \"popstate\", function () {\r\n                            _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n                        });\r\n                        _window.addEventListener(_self_1.config.namePrefix + \"locationchange\", function () {\r\n                            if (_properties && _properties.context && _properties.context.telemetryTrace) {\r\n                                _properties.context.telemetryTrace.traceID = generateW3CId();\r\n                                _properties.context.telemetryTrace.name = _location && _location.pathname || \"_unknown_\";\r\n                            }\r\n                            if (_currUri) {\r\n                                _prevUri = _currUri;\r\n                                _currUri = _location && _location.href || \"\";\r\n                            }\r\n                            else {\r\n                                _currUri = _location && _location.href || \"\";\r\n                            }\r\n                            setTimeout((function (uri) {\r\n                                // todo: override start time so that it is not affected by autoRoutePVDelay\r\n                                _self_1.trackPageView({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n                            }).bind(_this, _prevUri), _self_1.autoRoutePVDelay);\r\n                        });\r\n                    }\r\n                }\r\n                _self.setInitialized(true);\r\n            };\r\n            /**\r\n             * Log a page visit time\r\n             * @param    pageName    Name of page\r\n             * @param    pageVisitDuration Duration of visit to the page in milleseconds\r\n             */\r\n            function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n                var properties = { PageName: pageName, PageUrl: pageUrl };\r\n                _self.trackMetric({\r\n                    name: \"PageVisitTime\",\r\n                    average: pageVisitTime,\r\n                    max: pageVisitTime,\r\n                    min: pageVisitTime,\r\n                    sampleCount: 1\r\n                }, properties);\r\n            }\r\n            function _addDefaultTelemetryInitializers(configGetters) {\r\n                if (!configGetters.isBrowserLinkTrackingEnabled()) {\r\n                    var browserLinkPaths_1 = ['/browserLinkSignalR/', '/__browserLink/'];\r\n                    var dropBrowserLinkRequests = function (envelope) {\r\n                        if (envelope.baseType === RemoteDependencyData.dataType) {\r\n                            var remoteData = envelope.baseData;\r\n                            if (remoteData) {\r\n                                for (var i = 0; i < browserLinkPaths_1.length; i++) {\r\n                                    if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\r\n                                        return false;\r\n                                    }\r\n                                }\r\n                            }\r\n                        }\r\n                        return true;\r\n                    };\r\n                    _addTelemetryInitializer(dropBrowserLinkRequests);\r\n                }\r\n            }\r\n            function _addTelemetryInitializer(telemetryInitializer) {\r\n                _self._telemetryInitializers.push(telemetryInitializer);\r\n            }\r\n            function _sendCORSException(url) {\r\n                var exception = {\r\n                    message: \"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\",\r\n                    url: url,\r\n                    lineNumber: 0,\r\n                    columnNumber: 0,\r\n                    error: undefined\r\n                };\r\n                var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), { url: url });\r\n                _self.core.track(telemetryItem);\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n    ApplicationInsights.getDefaultConfig = function (config) {\r\n        if (!config) {\r\n            config = {};\r\n        }\r\n        // set default values\r\n        config.sessionRenewalMs = 30 * 60 * 1000;\r\n        config.sessionExpirationMs = 24 * 60 * 60 * 1000;\r\n        config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);\r\n        config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);\r\n        config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);\r\n        config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);\r\n        if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\r\n            config.samplingPercentage = 100;\r\n        }\r\n        config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);\r\n        config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\r\n        config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);\r\n        config.namePrefix = config.namePrefix || \"\";\r\n        return config;\r\n    };\r\n// Removed Stub for ApplicationInsights.prototype.getCookieMgr.\r\n// Removed Stub for ApplicationInsights.prototype.processTelemetry.\r\n// Removed Stub for ApplicationInsights.prototype.trackEvent.\r\n// Removed Stub for ApplicationInsights.prototype.startTrackEvent.\r\n// Removed Stub for ApplicationInsights.prototype.stopTrackEvent.\r\n// Removed Stub for ApplicationInsights.prototype.trackTrace.\r\n// Removed Stub for ApplicationInsights.prototype.trackMetric.\r\n// Removed Stub for ApplicationInsights.prototype.trackPageView.\r\n// Removed Stub for ApplicationInsights.prototype.sendPageViewInternal.\r\n// Removed Stub for ApplicationInsights.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for ApplicationInsights.prototype.trackPageViewPerformance.\r\n// Removed Stub for ApplicationInsights.prototype.startTrackPage.\r\n// Removed Stub for ApplicationInsights.prototype.stopTrackPage.\r\n// Removed Stub for ApplicationInsights.prototype.sendExceptionInternal.\r\n// Removed Stub for ApplicationInsights.prototype.trackException.\r\n// Removed Stub for ApplicationInsights.prototype._onerror.\r\n// Removed Stub for ApplicationInsights.prototype.addTelemetryInitializer.\r\n// Removed Stub for ApplicationInsights.prototype.initialize.\r\n    ApplicationInsights.Version = \"2.6.1\"; // Not currently used anywhere\r\n    return ApplicationInsights;\r\n}(BaseTelemetryPlugin));\r\nexport { ApplicationInsights };\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n    function Timing(logger, name) {\r\n        var _self = this;\r\n        var _events = {};\r\n        _self.start = function (name) {\r\n            if (typeof _events[name] !== \"undefined\") {\r\n                logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n            }\r\n            _events[name] = +new Date;\r\n        };\r\n        _self.stop = function (name, url, properties, measurements) {\r\n            var start = _events[name];\r\n            if (isNaN(start)) {\r\n                logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n            }\r\n            else {\r\n                var end = +new Date;\r\n                var duration = dateTimeUtilsDuration(start, end);\r\n                _self.action(name, url, duration, properties, measurements);\r\n            }\r\n            delete _events[name];\r\n            _events[name] = undefined;\r\n        };\r\n    }\r\n    return Timing;\r\n}());\r\n//# sourceMappingURL=ApplicationInsights.js.map","/*!\n * Application Insights JavaScript SDK - Web Analytics, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId, getDocument, getLocation, arrForEach, isNullOrUndefined, getExceptionName, dumpObj } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n    function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n        dynamicProto(PageViewManager, this, function (_self) {\r\n            var intervalHandle = null;\r\n            var itemQueue = [];\r\n            var pageViewPerformanceSent = false;\r\n            var _logger;\r\n            if (core) {\r\n                _logger = core.logger;\r\n            }\r\n            function _flushChannels() {\r\n                if (core) {\r\n                    arrForEach(core.getTransmissionControls(), function (queues) {\r\n                        arrForEach(queues, function (q) { return q.flush(true); });\r\n                    });\r\n                }\r\n            }\r\n            function _addQueue(cb) {\r\n                itemQueue.push(cb);\r\n                if (!intervalHandle) {\r\n                    intervalHandle = setInterval((function () {\r\n                        var allItems = itemQueue.slice(0);\r\n                        var doFlush = false;\r\n                        itemQueue = [];\r\n                        arrForEach(allItems, function (item) {\r\n                            if (!item()) {\r\n                                // Not processed so rescheduled\r\n                                itemQueue.push(item);\r\n                            }\r\n                            else {\r\n                                doFlush = true;\r\n                            }\r\n                        });\r\n                        if (itemQueue.length === 0) {\r\n                            clearInterval(intervalHandle);\r\n                            intervalHandle = null;\r\n                        }\r\n                        if (doFlush) {\r\n                            // We process at least one item so flush the queue\r\n                            _flushChannels();\r\n                        }\r\n                    }), 100);\r\n                }\r\n            }\r\n            _self.trackPageView = function (pageView, customProperties) {\r\n                var name = pageView.name;\r\n                if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n                    var doc = getDocument();\r\n                    name = pageView.name = doc && doc.title || \"\";\r\n                }\r\n                var uri = pageView.uri;\r\n                if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n                    var location_1 = getLocation();\r\n                    uri = pageView.uri = location_1 && location_1.href || \"\";\r\n                }\r\n                // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n                // do not provide the duration, set duration to undefined\r\n                // Also this is case 4\r\n                if (!pageViewPerformanceManager.isPerformanceTimingSupported()) {\r\n                    appInsights.sendPageViewInternal(pageView, customProperties);\r\n                    _flushChannels();\r\n                    // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n                    _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NavigationTimingNotSupported, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n                    return;\r\n                }\r\n                var pageViewSent = false;\r\n                var customDuration;\r\n                // if the performance timing is supported by the browser, calculate the custom duration\r\n                var start = pageViewPerformanceManager.getPerformanceTiming().navigationStart;\r\n                if (start > 0) {\r\n                    customDuration = dateTimeUtilsDuration(start, +new Date);\r\n                    if (!pageViewPerformanceManager.shouldCollectDuration(customDuration)) {\r\n                        customDuration = undefined;\r\n                    }\r\n                }\r\n                // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n                // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n                var duration;\r\n                if (!isNullOrUndefined(customProperties) &&\r\n                    !isNullOrUndefined(customProperties.duration)) {\r\n                    duration = customProperties.duration;\r\n                }\r\n                if (overridePageViewDuration || !isNaN(duration)) {\r\n                    if (isNaN(duration)) {\r\n                        // case 3\r\n                        if (!customProperties) {\r\n                            customProperties = {};\r\n                        }\r\n                        customProperties[\"duration\"] = customDuration;\r\n                    }\r\n                    // case 2\r\n                    appInsights.sendPageViewInternal(pageView, customProperties);\r\n                    _flushChannels();\r\n                    pageViewSent = true;\r\n                }\r\n                // now try to send the page view performance telemetry\r\n                var maxDurationLimit = 60000;\r\n                if (!customProperties) {\r\n                    customProperties = {};\r\n                }\r\n                // Queue the event for processing\r\n                _addQueue(function () {\r\n                    var processed = false;\r\n                    try {\r\n                        if (pageViewPerformanceManager.isPerformanceTimingDataReady()) {\r\n                            processed = true;\r\n                            var pageViewPerformance = {\r\n                                name: name,\r\n                                uri: uri\r\n                            };\r\n                            pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n                            if (!pageViewPerformance.isValid && !pageViewSent) {\r\n                                // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n                                // That's the best value we can get that makes sense.\r\n                                customProperties[\"duration\"] = customDuration;\r\n                                appInsights.sendPageViewInternal(pageView, customProperties);\r\n                            }\r\n                            else {\r\n                                if (!pageViewSent) {\r\n                                    customProperties[\"duration\"] = pageViewPerformance.durationMs;\r\n                                    appInsights.sendPageViewInternal(pageView, customProperties);\r\n                                }\r\n                                if (!pageViewPerformanceSent) {\r\n                                    appInsights.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n                                    pageViewPerformanceSent = true;\r\n                                }\r\n                            }\r\n                        }\r\n                        else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n                            // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n                            // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n                            processed = true;\r\n                            if (!pageViewSent) {\r\n                                customProperties[\"duration\"] = maxDurationLimit;\r\n                                appInsights.sendPageViewInternal(pageView, customProperties);\r\n                            }\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailedCalc, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                    return processed;\r\n                });\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n    return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*!\n * Application Insights JavaScript SDK - Web Analytics, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId, getNavigator, getPerformance } from '@microsoft/applicationinsights-core-js';\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n    function PageViewPerformanceManager(core) {\r\n        this.MAX_DURATION_ALLOWED = 3600000; // 1h\r\n        if (core) {\r\n            this._logger = core.logger;\r\n        }\r\n    }\r\n    PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n        pageViewPerformance.isValid = false;\r\n        /*\r\n         * http://www.w3.org/TR/navigation-timing/#processing-model\r\n         *  |-navigationStart\r\n         *  |             |-connectEnd\r\n         *  |             ||-requestStart\r\n         *  |             ||             |-responseStart\r\n         *  |             ||             |              |-responseEnd\r\n         *  |             ||             |              |\r\n         *  |             ||             |              |         |-loadEventEnd\r\n         *  |---network---||---request---|---response---|---dom---|\r\n         *  |--------------------------total----------------------|\r\n         */\r\n        var navigationTiming = this.getPerformanceNavigationTiming();\r\n        var timing = this.getPerformanceTiming();\r\n        if (navigationTiming || timing) {\r\n            if (navigationTiming) {\r\n                var total = navigationTiming.duration;\r\n                var network = dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming.connectEnd);\r\n                var request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming.responseStart);\r\n                var response = dateTimeUtilsDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\r\n                var dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\r\n            }\r\n            else {\r\n                var total = dateTimeUtilsDuration(timing.navigationStart, timing.loadEventEnd);\r\n                var network = dateTimeUtilsDuration(timing.navigationStart, timing.connectEnd);\r\n                var request = dateTimeUtilsDuration(timing.requestStart, timing.responseStart);\r\n                var response = dateTimeUtilsDuration(timing.responseStart, timing.responseEnd);\r\n                var dom = dateTimeUtilsDuration(timing.responseEnd, timing.loadEventEnd);\r\n            }\r\n            if (total === 0) {\r\n                this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ErrorPVCalc, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n            }\r\n            else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n                this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InvalidDurationValue, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n            }\r\n            else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n                // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n                // in this case, don't report client performance from this page\r\n                this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ClientPerformanceMathError, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n            }\r\n            else {\r\n                pageViewPerformance.durationMs = total;\r\n                // // convert to timespans\r\n                pageViewPerformance.perfTotal = pageViewPerformance.duration = msToTimeSpan(total);\r\n                pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n                pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n                pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n                pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n                pageViewPerformance.isValid = true;\r\n            }\r\n        }\r\n    };\r\n    PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n        if (this.isPerformanceTimingSupported()) {\r\n            return getPerformance().timing;\r\n        }\r\n        return null;\r\n    };\r\n    PageViewPerformanceManager.prototype.getPerformanceNavigationTiming = function () {\r\n        if (this.isPerformanceNavigationTimingSupported()) {\r\n            return getPerformance().getEntriesByType(\"navigation\")[0];\r\n        }\r\n        return null;\r\n    };\r\n    /**\r\n     * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n     */\r\n    PageViewPerformanceManager.prototype.isPerformanceNavigationTimingSupported = function () {\r\n        var perf = getPerformance();\r\n        return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\r\n    };\r\n    /**\r\n     * Returns true is window performance timing API is supported, false otherwise.\r\n     */\r\n    PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n        var perf = getPerformance();\r\n        return perf && perf.timing;\r\n    };\r\n    /**\r\n     * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n     * Returns true if ready, false otherwise.\r\n     */\r\n    PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n        var perf = getPerformance();\r\n        var timing = perf ? perf.timing : 0;\r\n        return timing\r\n            && timing.domainLookupStart > 0\r\n            && timing.navigationStart > 0\r\n            && timing.responseStart > 0\r\n            && timing.requestStart > 0\r\n            && timing.loadEventEnd > 0\r\n            && timing.responseEnd > 0\r\n            && timing.connectEnd > 0\r\n            && timing.domLoading > 0;\r\n    };\r\n    /**\r\n     * This method tells if given durations should be excluded from collection.\r\n     */\r\n    PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n        var durations = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            durations[_i] = arguments[_i];\r\n        }\r\n        var _navigator = getNavigator() || {};\r\n        // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n        var botAgentNames = ['googlebot', 'adsbot-google', 'apis-google', 'mediapartners-google'];\r\n        var userAgent = _navigator.userAgent;\r\n        var isGoogleBot = false;\r\n        if (userAgent) {\r\n            for (var i = 0; i < botAgentNames.length; i++) {\r\n                isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n            }\r\n        }\r\n        if (isGoogleBot) {\r\n            // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n            return false;\r\n        }\r\n        else {\r\n            // for other page views, don't report if it's outside of a reasonable range\r\n            for (var i = 0; i < durations.length; i++) {\r\n                if (durations[i] < 0 || durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n                    return false;\r\n                }\r\n            }\r\n        }\r\n        return true;\r\n    };\r\n    return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*!\n * Application Insights JavaScript SDK - Web Analytics, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from '@microsoft/applicationinsights-common';\r\nimport { hasJSON, getJSON, dateNow, dumpObj, throwError } from '@microsoft/applicationinsights-core-js';\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of PageVisitTimeManager\r\n     * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n     * @returns {}\r\n     */\r\n    function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n        this.prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n        this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n        this._logger = logger;\r\n    }\r\n    /**\r\n     * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n     * @param currentPageName Name of page to begin timing for visit duration\r\n     * @param currentPageUrl Url of page to begin timing for visit duration\r\n     */\r\n    PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n        try {\r\n            // Restart timer for new page view\r\n            var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n            // If there was a page already being timed, track the visit time for it now.\r\n            if (prevPageVisitTimeData) {\r\n                this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n            }\r\n        }\r\n        catch (e) {\r\n            this._logger.warnToConsole(\"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n        }\r\n    };\r\n    /**\r\n     * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n     * @param pageName Name of page to begin timing visit duration\r\n     * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n     */\r\n    PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {\r\n        try {\r\n            var prevPageVisitData = this.stopPageVisitTimer();\r\n            this.startPageVisitTimer(pageName, pageUrl);\r\n            return prevPageVisitData;\r\n        }\r\n        catch (e) {\r\n            this._logger.warnToConsole(\"Call to restart failed: \" + dumpObj(e));\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * Starts timing visit duration of pageName\r\n     * @param pageName\r\n     * @returns {}\r\n     */\r\n    PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {\r\n        try {\r\n            if (utlCanUseSessionStorage()) {\r\n                if (utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\r\n                    throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n                }\r\n                var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n                var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n                utlSetSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\r\n            }\r\n        }\r\n        catch (e) {\r\n            // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n            this._logger.warnToConsole(\"Call to start failed: \" + dumpObj(e));\r\n        }\r\n    };\r\n    /**\r\n     * Stops timing of current page, if exists.\r\n     * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n     */\r\n    PageVisitTimeManager.prototype.stopPageVisitTimer = function () {\r\n        try {\r\n            if (utlCanUseSessionStorage()) {\r\n                // Define end time of page's visit\r\n                var pageVisitEndTime = dateNow();\r\n                // Try to retrieve  page name and start time from session storage\r\n                var pageVisitDataJsonStr = utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n                if (pageVisitDataJsonStr && hasJSON()) {\r\n                    // if previous page data exists, set end time of visit\r\n                    var prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n                    prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n                    // Remove data from storage since we already used it\r\n                    utlRemoveSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n                    // Return page visit data\r\n                    return prevPageVisitData;\r\n                }\r\n                else {\r\n                    return null;\r\n                }\r\n            }\r\n            return null;\r\n        }\r\n        catch (e) {\r\n            this._logger.warnToConsole(\"Stop page visit timer failed: \" + dumpObj(e));\r\n            return null;\r\n        }\r\n    };\r\n    return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n    function PageVisitData(pageName, pageUrl) {\r\n        this.pageVisitStartTime = dateNow();\r\n        this.pageName = pageName;\r\n        this.pageUrl = pageUrl;\r\n    }\r\n    return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*!\n * Application Insights JavaScript SDK - Channel, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { Data, Envelope, RemoteDependencyData, Event, Exception, Metric, PageView, Trace, PageViewPerformance, CtxTagKeys, HttpMethod, SampleRate, } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isNullOrUndefined, isNumber, isString, toISOString, setValue, isTruthy, optimizeObject } from '@microsoft/applicationinsights-core-js';\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = 'baseType';\r\nvar strBaseData = 'baseData';\r\nvar strProperties = 'properties';\r\nvar strTrue = 'true';\r\nfunction _setValueIf(target, field, value) {\r\n    return setValue(target, field, value, isTruthy);\r\n}\r\nvar EnvelopeCreator = /** @class */ (function () {\r\n    function EnvelopeCreator() {\r\n    }\r\n    EnvelopeCreator.extractPropsAndMeasurements = function (data, properties, measurements) {\r\n        if (!isNullOrUndefined(data)) {\r\n            objForEachKey(data, function (key, value) {\r\n                if (isNumber(value)) {\r\n                    measurements[key] = value;\r\n                }\r\n                else if (isString(value)) {\r\n                    properties[key] = value;\r\n                }\r\n                else if (hasJSON()) {\r\n                    properties[key] = getJSON().stringify(value);\r\n                }\r\n            });\r\n        }\r\n    };\r\n    // TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\n    EnvelopeCreator.createEnvelope = function (logger, envelopeType, telemetryItem, data) {\r\n        var envelope = new Envelope(logger, data, envelopeType);\r\n        _setValueIf(envelope, 'sampleRate', telemetryItem[SampleRate]);\r\n        if ((telemetryItem[strBaseData] || {}).startTime) {\r\n            envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n        }\r\n        envelope.iKey = telemetryItem.iKey;\r\n        var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n        envelope.name = envelope.name.replace(\"{0}\", iKeyNoDashes);\r\n        // extract all extensions from ctx\r\n        EnvelopeCreator.extractPartAExtensions(telemetryItem, envelope);\r\n        // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n        telemetryItem.tags = telemetryItem.tags || [];\r\n        return optimizeObject(envelope);\r\n    };\r\n    /*\r\n     * Maps Part A data from CS 4.0\r\n     */\r\n    EnvelopeCreator.extractPartAExtensions = function (item, env) {\r\n        // todo: switch to keys from common in this method\r\n        var envTags = env.tags = env.tags || {};\r\n        var itmExt = item.ext = item.ext || {};\r\n        var itmTags = item.tags = item.tags || [];\r\n        var extUser = itmExt.user;\r\n        if (extUser) {\r\n            _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n            _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n        }\r\n        var extApp = itmExt.app;\r\n        if (extApp) {\r\n            _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n        }\r\n        var extDevice = itmExt.device;\r\n        if (extDevice) {\r\n            _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n            _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceClass);\r\n            _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n            _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n            _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceType);\r\n        }\r\n        var web = item.ext.web;\r\n        if (web) {\r\n            _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n            _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n            _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n            var envData = env.data = env.data || {};\r\n            var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n            var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n            _setValueIf(envProps, 'domain', web.domain);\r\n            _setValueIf(envProps, 'isManual', web.isManual ? strTrue : null);\r\n            _setValueIf(envProps, 'screenRes', web.screenRes);\r\n            _setValueIf(envProps, 'userConsent', web.userConsent ? strTrue : null);\r\n        }\r\n        var extOs = itmExt.os;\r\n        if (extOs) {\r\n            _setValueIf(envTags, CtxTagKeys.deviceOS, extOs.name);\r\n        }\r\n        // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n        var extTrace = itmExt.trace;\r\n        if (extTrace) {\r\n            _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n            _setValueIf(envTags, CtxTagKeys.operationName, extTrace.name);\r\n            _setValueIf(envTags, CtxTagKeys.operationId, extTrace.traceID);\r\n        }\r\n        // Sample 4.0 schema\r\n        //  {\r\n        //     \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n        //     \"name\" : \"MetricWithNamespace\",\r\n        //     \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n        //     \"ext\": {  \"cloud\": {\r\n        //          \"role\": \"WATSON3\",\r\n        //          \"roleInstance\": \"CO4AEAP00000260\"\r\n        //      },\r\n        //      \"device\": {}, \"correlation\": {} },\r\n        //      \"tags\": [\r\n        //        { \"amazon.region\" : \"east2\" },\r\n        //        { \"os.expid\" : \"wp:02df239\" }\r\n        //     ]\r\n        //   }\r\n        var tgs = {};\r\n        // deals with tags.push({object})\r\n        for (var i = itmTags.length - 1; i >= 0; i--) {\r\n            var tg = itmTags[i];\r\n            objForEachKey(tg, function (key, value) {\r\n                tgs[key] = value;\r\n            });\r\n            itmTags.splice(i, 1);\r\n        }\r\n        // deals with tags[key]=value (and handles hasOwnProperty)\r\n        objForEachKey(itmTags, function (tg, value) {\r\n            tgs[tg] = value;\r\n        });\r\n        var theTags = __assign({}, envTags, tgs);\r\n        if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n            // Append a version in case it is not already set\r\n            theTags[CtxTagKeys.internalSdkVersion] = \"javascript:\" + EnvelopeCreator.Version;\r\n        }\r\n        env.tags = optimizeObject(theTags);\r\n    };\r\n    EnvelopeCreator.prototype.Init = function (logger, telemetryItem) {\r\n        this._logger = logger;\r\n        if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n            this._logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n        }\r\n    };\r\n    EnvelopeCreator.Version = \"2.6.1\";\r\n    return EnvelopeCreator;\r\n}());\r\nexport { EnvelopeCreator };\r\nvar DependencyEnvelopeCreator = /** @class */ (function (_super) {\r\n    __extends(DependencyEnvelopeCreator, _super);\r\n    function DependencyEnvelopeCreator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    DependencyEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n        _super.prototype.Init.call(this, logger, telemetryItem);\r\n        var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n        var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n        EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n        var bd = telemetryItem[strBaseData];\r\n        if (isNullOrUndefined(bd)) {\r\n            logger.warnToConsole(\"Invalid input for dependency data\");\r\n            return null;\r\n        }\r\n        var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n        var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd.name, bd.duration, bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n        var data = new Data(RemoteDependencyData.dataType, remoteDepData);\r\n        return EnvelopeCreator.createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);\r\n    };\r\n    DependencyEnvelopeCreator.DependencyEnvelopeCreator = new DependencyEnvelopeCreator();\r\n    return DependencyEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { DependencyEnvelopeCreator };\r\nvar EventEnvelopeCreator = /** @class */ (function (_super) {\r\n    __extends(EventEnvelopeCreator, _super);\r\n    function EventEnvelopeCreator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    EventEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n        _super.prototype.Init.call(this, logger, telemetryItem);\r\n        var customProperties = {};\r\n        var customMeasurements = {};\r\n        if (telemetryItem[strBaseType] !== Event.dataType) {\r\n            customProperties['baseTypeSource'] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n        }\r\n        if (telemetryItem[strBaseType] === Event.dataType) {\r\n            customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n            customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n        }\r\n        else {\r\n            if (telemetryItem[strBaseData]) {\r\n                EnvelopeCreator.extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n            }\r\n        }\r\n        // Extract root level properties from part C telemetryItem.data\r\n        EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n        var eventName = telemetryItem[strBaseData].name;\r\n        var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n        var data = new Data(Event.dataType, eventData);\r\n        return EnvelopeCreator.createEnvelope(logger, Event.envelopeType, telemetryItem, data);\r\n    };\r\n    EventEnvelopeCreator.EventEnvelopeCreator = new EventEnvelopeCreator();\r\n    return EventEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { EventEnvelopeCreator };\r\nvar ExceptionEnvelopeCreator = /** @class */ (function (_super) {\r\n    __extends(ExceptionEnvelopeCreator, _super);\r\n    function ExceptionEnvelopeCreator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    ExceptionEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n        _super.prototype.Init.call(this, logger, telemetryItem);\r\n        // Extract root level properties from part C telemetryItem.data\r\n        var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n        var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n        EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n        var bd = telemetryItem[strBaseData];\r\n        var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n        var data = new Data(Exception.dataType, exData);\r\n        return EnvelopeCreator.createEnvelope(logger, Exception.envelopeType, telemetryItem, data);\r\n    };\r\n    ExceptionEnvelopeCreator.ExceptionEnvelopeCreator = new ExceptionEnvelopeCreator();\r\n    return ExceptionEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { ExceptionEnvelopeCreator };\r\nvar MetricEnvelopeCreator = /** @class */ (function (_super) {\r\n    __extends(MetricEnvelopeCreator, _super);\r\n    function MetricEnvelopeCreator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    MetricEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n        _super.prototype.Init.call(this, logger, telemetryItem);\r\n        var baseData = telemetryItem[strBaseData];\r\n        var props = baseData[strProperties] || {};\r\n        var measurements = baseData.measurements || {};\r\n        EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n        var baseMetricData = new Metric(logger, baseData.name, baseData.average, baseData.sampleCount, baseData.min, baseData.max, props, measurements);\r\n        var data = new Data(Metric.dataType, baseMetricData);\r\n        return EnvelopeCreator.createEnvelope(logger, Metric.envelopeType, telemetryItem, data);\r\n    };\r\n    MetricEnvelopeCreator.MetricEnvelopeCreator = new MetricEnvelopeCreator();\r\n    return MetricEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { MetricEnvelopeCreator };\r\nvar PageViewEnvelopeCreator = /** @class */ (function (_super) {\r\n    __extends(PageViewEnvelopeCreator, _super);\r\n    function PageViewEnvelopeCreator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PageViewEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n        _super.prototype.Init.call(this, logger, telemetryItem);\r\n        // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n        var strDuration = \"duration\";\r\n        var duration;\r\n        var baseData = telemetryItem[strBaseData];\r\n        if (!isNullOrUndefined(baseData) &&\r\n            !isNullOrUndefined(baseData[strProperties]) &&\r\n            !isNullOrUndefined(baseData[strProperties][strDuration])) {\r\n            duration = baseData[strProperties][strDuration];\r\n            delete baseData[strProperties][strDuration];\r\n        }\r\n        else if (!isNullOrUndefined(telemetryItem.data) &&\r\n            !isNullOrUndefined(telemetryItem.data[strDuration])) {\r\n            duration = telemetryItem.data[strDuration];\r\n            delete telemetryItem.data[strDuration];\r\n        }\r\n        var bd = telemetryItem[strBaseData];\r\n        // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n        var currentContextId;\r\n        if (((telemetryItem.ext || {}).trace || {}).traceID) {\r\n            currentContextId = telemetryItem.ext.trace.traceID;\r\n        }\r\n        var id = bd.id || currentContextId;\r\n        var name = bd.name;\r\n        var url = bd.uri;\r\n        var properties = bd[strProperties] || {};\r\n        var measurements = bd.measurements || {};\r\n        // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n        if (!isNullOrUndefined(bd.refUri)) {\r\n            properties[\"refUri\"] = bd.refUri;\r\n        }\r\n        // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n        if (!isNullOrUndefined(bd.pageType)) {\r\n            properties[\"pageType\"] = bd.pageType;\r\n        }\r\n        // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n        if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n            properties[\"isLoggedIn\"] = bd.isLoggedIn.toString();\r\n        }\r\n        // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n        if (!isNullOrUndefined(bd[strProperties])) {\r\n            var pageTags = bd[strProperties];\r\n            objForEachKey(pageTags, function (key, value) {\r\n                properties[key] = value;\r\n            });\r\n        }\r\n        EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n        var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n        var data = new Data(PageView.dataType, pageViewData);\r\n        return EnvelopeCreator.createEnvelope(logger, PageView.envelopeType, telemetryItem, data);\r\n    };\r\n    PageViewEnvelopeCreator.PageViewEnvelopeCreator = new PageViewEnvelopeCreator();\r\n    return PageViewEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { PageViewEnvelopeCreator };\r\nvar PageViewPerformanceEnvelopeCreator = /** @class */ (function (_super) {\r\n    __extends(PageViewPerformanceEnvelopeCreator, _super);\r\n    function PageViewPerformanceEnvelopeCreator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    PageViewPerformanceEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n        _super.prototype.Init.call(this, logger, telemetryItem);\r\n        var bd = telemetryItem[strBaseData];\r\n        var name = bd.name;\r\n        var url = bd.uri || bd.url;\r\n        var properties = bd[strProperties] || {};\r\n        var measurements = bd.measurements || {};\r\n        EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n        var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n        var data = new Data(PageViewPerformance.dataType, baseData);\r\n        return EnvelopeCreator.createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);\r\n    };\r\n    PageViewPerformanceEnvelopeCreator.PageViewPerformanceEnvelopeCreator = new PageViewPerformanceEnvelopeCreator();\r\n    return PageViewPerformanceEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { PageViewPerformanceEnvelopeCreator };\r\nvar TraceEnvelopeCreator = /** @class */ (function (_super) {\r\n    __extends(TraceEnvelopeCreator, _super);\r\n    function TraceEnvelopeCreator() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    TraceEnvelopeCreator.prototype.Create = function (logger, telemetryItem) {\r\n        _super.prototype.Init.call(this, logger, telemetryItem);\r\n        var message = telemetryItem[strBaseData].message;\r\n        var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n        var props = telemetryItem[strBaseData][strProperties] || {};\r\n        var measurements = telemetryItem[strBaseData].measurements || {};\r\n        EnvelopeCreator.extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n        var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n        var data = new Data(Trace.dataType, baseData);\r\n        return EnvelopeCreator.createEnvelope(logger, Trace.envelopeType, telemetryItem, data);\r\n    };\r\n    TraceEnvelopeCreator.TraceEnvelopeCreator = new TraceEnvelopeCreator();\r\n    return TraceEnvelopeCreator;\r\n}(EnvelopeCreator));\r\nexport { TraceEnvelopeCreator };\r\n//# sourceMappingURL=EnvelopeCreator.js.map","/*!\n * Application Insights JavaScript SDK - Channel, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { EventHelper, getWindow, getDocument, getNavigator, isUndefined, isNullOrUndefined } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\n/**\r\n * @description Monitors browser for offline events\r\n * @export default - Offline: Static instance of OfflineListener\r\n * @class OfflineListener\r\n */\r\nvar OfflineListener = /** @class */ (function () {\r\n    function OfflineListener() {\r\n        var _window = getWindow();\r\n        var _document = getDocument();\r\n        var isListening = false;\r\n        var _onlineStatus = true;\r\n        dynamicProto(OfflineListener, this, function (_self) {\r\n            try {\r\n                if (_window) {\r\n                    if (EventHelper.Attach(_window, 'online', _setOnline)) {\r\n                        EventHelper.Attach(_window, 'offline', _setOffline);\r\n                        isListening = true;\r\n                    }\r\n                }\r\n                if (_document) {\r\n                    // Also attach to the document.body or document\r\n                    var target = _document.body || _document;\r\n                    if (!isUndefined(target.ononline)) {\r\n                        target.ononline = _setOnline;\r\n                        target.onoffline = _setOffline;\r\n                        isListening = true;\r\n                    }\r\n                }\r\n            }\r\n            catch (e) {\r\n                // this makes react-native less angry\r\n                isListening = false;\r\n            }\r\n            _self.isListening = isListening;\r\n            _self.isOnline = function () {\r\n                var result = true;\r\n                var _navigator = getNavigator();\r\n                if (isListening) {\r\n                    result = _onlineStatus;\r\n                }\r\n                else if (_navigator && !isNullOrUndefined(_navigator.onLine)) {\r\n                    result = _navigator.onLine;\r\n                }\r\n                return result;\r\n            };\r\n            _self.isOffline = function () {\r\n                return !_self.isOnline();\r\n            };\r\n            function _setOnline() {\r\n                _onlineStatus = true;\r\n            }\r\n            function _setOffline() {\r\n                _onlineStatus = false;\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for OfflineListener.prototype.isOnline.\r\n// Removed Stub for OfflineListener.prototype.isOffline.\r\n    OfflineListener.Offline = new OfflineListener;\r\n    return OfflineListener;\r\n}());\r\nexport { OfflineListener };\r\nexport var Offline = OfflineListener.Offline;\r\n//# sourceMappingURL=Offline.js.map","/*!\n * Application Insights JavaScript SDK - Channel, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { utlGetSessionStorage, utlSetSessionStorage } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId, getJSON, arrForEach, isFunction, arrIndexOf, isString, dumpObj, isArray, getExceptionName } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function () {\r\n    function ArraySendBuffer(config) {\r\n        var _buffer = [];\r\n        dynamicProto(ArraySendBuffer, this, function (_self) {\r\n            _self.enqueue = function (payload) {\r\n                _buffer.push(payload);\r\n            };\r\n            _self.count = function () {\r\n                return _buffer.length;\r\n            };\r\n            _self.clear = function () {\r\n                _buffer.length = 0;\r\n            };\r\n            _self.getItems = function () {\r\n                return _buffer.slice(0);\r\n            };\r\n            _self.batchPayloads = function (payload) {\r\n                if (payload && payload.length > 0) {\r\n                    var batch = config.emitLineDelimitedJson() ?\r\n                        payload.join(\"\\n\") :\r\n                        \"[\" + payload.join(\",\") + \"]\";\r\n                    return batch;\r\n                }\r\n                return null;\r\n            };\r\n            _self.markAsSent = function (payload) {\r\n                _self.clear();\r\n            };\r\n            _self.clearSent = function (payload) {\r\n                // not supported\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for ArraySendBuffer.prototype.enqueue.\r\n// Removed Stub for ArraySendBuffer.prototype.count.\r\n// Removed Stub for ArraySendBuffer.prototype.clear.\r\n// Removed Stub for ArraySendBuffer.prototype.getItems.\r\n// Removed Stub for ArraySendBuffer.prototype.batchPayloads.\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n    return ArraySendBuffer;\r\n}());\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function () {\r\n    function SessionStorageSendBuffer(logger, config) {\r\n        var _bufferFullMessageSent = false;\r\n        // An in-memory copy of the buffer. A copy is saved to the session storage on enqueue() and clear().\r\n        // The buffer is restored in a constructor and contains unsent events from a previous page.\r\n        var _buffer;\r\n        dynamicProto(SessionStorageSendBuffer, this, function (_self) {\r\n            var bufferItems = _getBuffer(SessionStorageSendBuffer.BUFFER_KEY);\r\n            var notDeliveredItems = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n            _buffer = bufferItems.concat(notDeliveredItems);\r\n            // If the buffer has too many items, drop items from the end.\r\n            if (_buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n                _buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n            }\r\n            _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n            _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _buffer);\r\n            _self.enqueue = function (payload) {\r\n                if (_buffer.length >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n                    // sent internal log only once per page view\r\n                    if (!_bufferFullMessageSent) {\r\n                        logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionStorageBufferFull, \"Maximum buffer size reached: \" + _buffer.length, true);\r\n                        _bufferFullMessageSent = true;\r\n                    }\r\n                    return;\r\n                }\r\n                _buffer.push(payload);\r\n                _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _buffer);\r\n            };\r\n            _self.count = function () {\r\n                return _buffer.length;\r\n            };\r\n            _self.clear = function () {\r\n                _buffer = [];\r\n                _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, []);\r\n                _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n                _bufferFullMessageSent = false;\r\n            };\r\n            _self.getItems = function () {\r\n                return _buffer.slice(0);\r\n            };\r\n            _self.batchPayloads = function (payload) {\r\n                if (payload && payload.length > 0) {\r\n                    var batch = config.emitLineDelimitedJson() ?\r\n                        payload.join(\"\\n\") :\r\n                        \"[\" + payload.join(\",\") + \"]\";\r\n                    return batch;\r\n                }\r\n                return null;\r\n            };\r\n            _self.markAsSent = function (payload) {\r\n                _buffer = _removePayloadsFromBuffer(payload, _buffer);\r\n                _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _buffer);\r\n                var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n                if (sentElements instanceof Array && payload instanceof Array) {\r\n                    sentElements = sentElements.concat(payload);\r\n                    if (sentElements.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n                        // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n                        // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n                        logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SessionStorageBufferFull, \"Sent buffer reached its maximum size: \" + sentElements.length, true);\r\n                        sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n                    }\r\n                    _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n                }\r\n            };\r\n            _self.clearSent = function (payload) {\r\n                var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n                sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n                _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n            };\r\n            function _removePayloadsFromBuffer(payloads, buffer) {\r\n                var remaining = [];\r\n                arrForEach(buffer, function (value) {\r\n                    if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\r\n                        remaining.push(value);\r\n                    }\r\n                });\r\n                return remaining;\r\n            }\r\n            function _getBuffer(key) {\r\n                var prefixedKey = key;\r\n                try {\r\n                    prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n                    var bufferJson = utlGetSessionStorage(logger, prefixedKey);\r\n                    if (bufferJson) {\r\n                        var buffer = getJSON().parse(bufferJson);\r\n                        if (isString(buffer)) {\r\n                            // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n                            buffer = getJSON().parse(buffer);\r\n                        }\r\n                        if (buffer && isArray(buffer)) {\r\n                            return buffer;\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToRestoreStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n                return [];\r\n            }\r\n            function _setBuffer(key, buffer) {\r\n                var prefixedKey = key;\r\n                try {\r\n                    prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n                    var bufferJson = JSON.stringify(buffer);\r\n                    utlSetSessionStorage(logger, prefixedKey, bufferJson);\r\n                }\r\n                catch (e) {\r\n                    // if there was an error, clear the buffer\r\n                    // telemetry is stored in the _buffer array so we won't loose any items\r\n                    utlSetSessionStorage(logger, prefixedKey, JSON.stringify([]));\r\n                    logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedToSetStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n                }\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.count.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.getItems.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.batchPayloads.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n    SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n    SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n    // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n    SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n    return SessionStorageSendBuffer;\r\n}());\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","/*!\n * Application Insights JavaScript SDK - Channel, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { SessionStorageSendBuffer, ArraySendBuffer } from './SendBuffer';\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from './EnvelopeCreator';\r\nimport { Serializer } from './Serializer'; // todo move to channel\r\nimport { DisabledPropertyName, RequestHeaders, PageView, Event, Trace, Exception, Metric, PageViewPerformance, RemoteDependencyData, ProcessLegacy, BreezeChannelIdentifier, SampleRate, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage, isBeaconApiSupported } from '@microsoft/applicationinsights-common';\r\nimport { _InternalMessageId, LoggingSeverity, getWindow, getNavigator, getJSON, BaseTelemetryPlugin, getGlobalInst, objForEachKey, isNullOrUndefined, arrForEach, dateNow, dumpObj, getExceptionName, getIEVersion, throwError } from '@microsoft/applicationinsights-core-js';\r\nimport { Offline } from './Offline';\r\nimport { Sample } from './TelemetryProcessors/Sample';\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nfunction _getResponseText(xhr) {\r\n    try {\r\n        return xhr.responseText;\r\n    }\r\n    catch (e) {\r\n        // Best effort, as XHR may throw while XDR wont so just ignore\r\n    }\r\n    return null;\r\n}\r\nvar Sender = /** @class */ (function (_super) {\r\n    __extends(Sender, _super);\r\n    function Sender() {\r\n        var _this = _super.call(this) || this;\r\n        _this.priority = 1001;\r\n        _this.identifier = BreezeChannelIdentifier;\r\n        /**\r\n         * Whether XMLHttpRequest object is supported. Older version of IE (8,9) do not support it.\r\n         */\r\n        _this._XMLHttpRequestSupported = false;\r\n        /**\r\n         * How many times in a row a retryable error condition has occurred.\r\n         */\r\n        var _consecutiveErrors;\r\n        /**\r\n         * The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n         */\r\n        var _retryAt;\r\n        /**\r\n         * The time of the last send operation.\r\n         */\r\n        var _lastSend;\r\n        /**\r\n         * Handle to the timer for delayed sending of batches of data.\r\n         */\r\n        var _timeoutHandle;\r\n        var _serializer;\r\n        var _stamp_specific_redirects;\r\n        dynamicProto(Sender, _this, function (_self, _base) {\r\n            function _notImplemented() {\r\n                throwError(\"Method not implemented.\");\r\n            }\r\n            _self.pause = _notImplemented;\r\n            _self.resume = _notImplemented;\r\n            _self.flush = function () {\r\n                try {\r\n                    _self.triggerSend(true, null, 1 /* ManualFlush */);\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n            };\r\n            _self.onunloadFlush = function () {\r\n                if ((_self._senderConfig.onunloadDisableBeacon() === false || _self._senderConfig.isBeaconApiDisabled() === false) && isBeaconApiSupported()) {\r\n                    try {\r\n                        _self.triggerSend(true, _beaconSender, 2 /* Unload */);\r\n                    }\r\n                    catch (e) {\r\n                        _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                }\r\n                else {\r\n                    _self.flush();\r\n                }\r\n            };\r\n            _self.teardown = _notImplemented;\r\n            _self.initialize = function (config, core, extensions, pluginChain) {\r\n                _base.initialize(config, core, extensions, pluginChain);\r\n                var ctx = _self._getTelCtx();\r\n                var identifier = _self.identifier;\r\n                _serializer = new Serializer(core.logger);\r\n                _consecutiveErrors = 0;\r\n                _retryAt = null;\r\n                _lastSend = 0;\r\n                _self._sender = null;\r\n                _stamp_specific_redirects = 0;\r\n                var defaultConfig = Sender._getDefaultAppInsightsChannelConfig();\r\n                _self._senderConfig = Sender._getEmptyAppInsightsChannelConfig();\r\n                objForEachKey(defaultConfig, function (field, value) {\r\n                    _self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n                });\r\n                _self._buffer = (_self._senderConfig.enableSessionStorageBuffer() && utlCanUseSessionStorage())\r\n                    ? new SessionStorageSendBuffer(_self.diagLog(), _self._senderConfig) : new ArraySendBuffer(_self._senderConfig);\r\n                _self._sample = new Sample(_self._senderConfig.samplingPercentage(), _self.diagLog());\r\n                if (!_validateInstrumentationKey(config)) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, \"Invalid Instrumentation key \" + config.instrumentationKey);\r\n                }\r\n                if (!_self._senderConfig.isBeaconApiDisabled() && isBeaconApiSupported()) {\r\n                    _self._sender = _beaconSender;\r\n                }\r\n                else {\r\n                    if (typeof XMLHttpRequest !== undefined) {\r\n                        var xhr = getGlobalInst(\"XMLHttpRequest\");\r\n                        if (xhr) {\r\n                            var testXhr = new xhr();\r\n                            if (\"withCredentials\" in testXhr) {\r\n                                _self._sender = _xhrSender;\r\n                                _self._XMLHttpRequestSupported = true;\r\n                            }\r\n                            else if (typeof XDomainRequest !== undefined) {\r\n                                _self._sender = _xdrSender; // IE 8 and 9\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            };\r\n            _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n                itemCtx = _self._getTelCtx(itemCtx);\r\n                try {\r\n                    // if master off switch is set, don't send any data\r\n                    if (_self._senderConfig.disableTelemetry()) {\r\n                        // Do not send/save data\r\n                        return;\r\n                    }\r\n                    // validate input\r\n                    if (!telemetryItem) {\r\n                        itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, \"Cannot send empty telemetry\");\r\n                        return;\r\n                    }\r\n                    // validate event\r\n                    if (telemetryItem.baseData && !telemetryItem.baseType) {\r\n                        itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, \"Cannot send telemetry without baseData and baseType\");\r\n                        return;\r\n                    }\r\n                    if (!telemetryItem.baseType) {\r\n                        // Default\r\n                        telemetryItem.baseType = \"EventData\";\r\n                    }\r\n                    // ensure a sender was constructed\r\n                    if (!_self._sender) {\r\n                        itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, \"Sender was not initialized\");\r\n                        return;\r\n                    }\r\n                    // check if this item should be sampled in, else add sampleRate tag\r\n                    if (!_isSampledIn(telemetryItem)) {\r\n                        // Item is sampled out, do not send it\r\n                        itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample.sampleRate });\r\n                        return;\r\n                    }\r\n                    else {\r\n                        telemetryItem[SampleRate] = _self._sample.sampleRate;\r\n                    }\r\n                    // construct an envelope that Application Insights endpoint can understand\r\n                    var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, _self._senderConfig.instrumentationKey(), itemCtx.diagLog());\r\n                    if (!aiEnvelope_1) {\r\n                        itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, \"Unable to create an AppInsights envelope\");\r\n                        return;\r\n                    }\r\n                    var doNotSendItem_1 = false;\r\n                    // this is for running in legacy mode, where customer may already have a custom initializer present\r\n                    if (telemetryItem.tags && telemetryItem.tags[ProcessLegacy]) {\r\n                        arrForEach(telemetryItem.tags[ProcessLegacy], function (callBack) {\r\n                            try {\r\n                                if (callBack && callBack(aiEnvelope_1) === false) {\r\n                                    doNotSendItem_1 = true;\r\n                                    itemCtx.diagLog().warnToConsole(\"Telemetry processor check returns false\");\r\n                                }\r\n                            }\r\n                            catch (e) {\r\n                                // log error but dont stop executing rest of the telemetry initializers\r\n                                // doNotSendItem = true;\r\n                                itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n                            }\r\n                        });\r\n                        delete telemetryItem.tags[ProcessLegacy];\r\n                    }\r\n                    if (doNotSendItem_1) {\r\n                        return; // do not send, no need to execute next plugin\r\n                    }\r\n                    // check if the incoming payload is too large, truncate if necessary\r\n                    var payload = _serializer.serialize(aiEnvelope_1);\r\n                    // flush if we would exceed the max-size limit by adding this item\r\n                    var bufferPayload = _self._buffer.getItems();\r\n                    var batch = _self._buffer.batchPayloads(bufferPayload);\r\n                    if (batch && (batch.length + payload.length > _self._senderConfig.maxBatchSizeInBytes())) {\r\n                        _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n                    }\r\n                    // enqueue the payload\r\n                    _self._buffer.enqueue(payload);\r\n                    // ensure an invocation timeout is set\r\n                    _setupTimer();\r\n                }\r\n                catch (e) {\r\n                    itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                }\r\n                // hand off the telemetry item to the next plugin\r\n                _self.processNext(telemetryItem, itemCtx);\r\n            };\r\n            /**\r\n             * xhr state changes\r\n             */\r\n            _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n                if (xhr.readyState === 4) {\r\n                    var response = null;\r\n                    if (!_self._appId) {\r\n                        response = _parseResponse(_getResponseText(xhr) || xhr.response);\r\n                        if (response && response.appId) {\r\n                            _self._appId = response.appId;\r\n                        }\r\n                    }\r\n                    if ((xhr.status < 200 || xhr.status >= 300) && xhr.status !== 0) {\r\n                        // Update End Point url if permanent redirect or moved permanently\r\n                        // Updates the end point url before retry\r\n                        if (xhr.status == 301 || xhr.status == 308) {\r\n                            if (!_checkAndUpdateEndPointUrl(xhr)) {\r\n                                _self._onError(payload, _formatErrorMessageXhr(xhr));\r\n                                return;\r\n                            }\r\n                        }\r\n                        if (!_self._senderConfig.isRetryDisabled() && _isRetriable(xhr.status)) {\r\n                            _resendPayload(payload);\r\n                            _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n                                \"Response code \" + xhr.status + \". Will retry to send \" + payload.length + \" items.\");\r\n                        }\r\n                        else {\r\n                            _self._onError(payload, _formatErrorMessageXhr(xhr));\r\n                        }\r\n                    }\r\n                    else if (Offline.isOffline()) {\r\n                        // Note: Don't check for status == 0, since adblock gives this code\r\n                        if (!_self._senderConfig.isRetryDisabled()) {\r\n                            var offlineBackOffMultiplier = 10; // arbritrary number\r\n                            _resendPayload(payload, offlineBackOffMultiplier);\r\n                            _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". Offline - Response Code: \" + xhr.status + \". Offline status: \" + Offline.isOffline() + \". Will retry to send \" + payload.length + \" items.\");\r\n                        }\r\n                    }\r\n                    else {\r\n                        // check if the xhr's responseURL is same as endpoint url\r\n                        // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n                        _checkAndUpdateEndPointUrl(xhr);\r\n                        if (xhr.status === 206) {\r\n                            if (!response) {\r\n                                response = _parseResponse(_getResponseText(xhr) || xhr.response);\r\n                            }\r\n                            if (response && !_self._senderConfig.isRetryDisabled()) {\r\n                                _self._onPartialSuccess(payload, response);\r\n                            }\r\n                            else {\r\n                                _self._onError(payload, _formatErrorMessageXhr(xhr));\r\n                            }\r\n                        }\r\n                        else {\r\n                            _consecutiveErrors = 0;\r\n                            _self._onSuccess(payload, countOfItemsInPayload);\r\n                        }\r\n                    }\r\n                }\r\n            };\r\n            /**\r\n             * Immediately send buffered data\r\n             * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n             * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n             */\r\n            _self.triggerSend = function (async, forcedSender, sendReason) {\r\n                if (async === void 0) { async = true; }\r\n                try {\r\n                    // Send data only if disableTelemetry is false\r\n                    if (!_self._senderConfig.disableTelemetry()) {\r\n                        if (_self._buffer.count() > 0) {\r\n                            var payload = _self._buffer.getItems();\r\n                            _notifySendRequest(sendReason || 0 /* Undefined */, async);\r\n                            // invoke send\r\n                            if (forcedSender) {\r\n                                forcedSender.call(_this, payload, async);\r\n                            }\r\n                            else {\r\n                                _self._sender(payload, async);\r\n                            }\r\n                        }\r\n                        // update lastSend time to enable throttling\r\n                        _lastSend = +new Date;\r\n                    }\r\n                    else {\r\n                        _self._buffer.clear();\r\n                    }\r\n                    clearTimeout(_timeoutHandle);\r\n                    _timeoutHandle = null;\r\n                    _retryAt = null;\r\n                }\r\n                catch (e) {\r\n                    /* Ignore this error for IE under v10 */\r\n                    var ieVer = getIEVersion();\r\n                    if (!ieVer || ieVer > 9) {\r\n                        _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                }\r\n            };\r\n            /**\r\n             * error handler\r\n             */\r\n            _self._onError = function (payload, message, event) {\r\n                _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.OnError, \"Failed to send telemetry.\", { message: message });\r\n                _self._buffer.clearSent(payload);\r\n            };\r\n            /**\r\n             * partial success handler\r\n             */\r\n            _self._onPartialSuccess = function (payload, results) {\r\n                var failed = [];\r\n                var retry = [];\r\n                // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n                var errors = results.errors.reverse();\r\n                for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n                    var error = errors_1[_i];\r\n                    var extracted = payload.splice(error.index, 1)[0];\r\n                    if (_isRetriable(error.statusCode)) {\r\n                        retry.push(extracted);\r\n                    }\r\n                    else {\r\n                        // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n                        failed.push(extracted);\r\n                    }\r\n                }\r\n                if (payload.length > 0) {\r\n                    _self._onSuccess(payload, results.itemsAccepted);\r\n                }\r\n                if (failed.length > 0) {\r\n                    _self._onError(failed, _formatErrorMessageXhr(null, ['partial success', results.itemsAccepted, 'of', results.itemsReceived].join(' ')));\r\n                }\r\n                if (retry.length > 0) {\r\n                    _resendPayload(retry);\r\n                    _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \"Partial success. \" +\r\n                        \"Delivered: \" + payload.length + \", Failed: \" + failed.length +\r\n                        \". Will retry to send \" + retry.length + \" our of \" + results.itemsReceived + \" items\");\r\n                }\r\n            };\r\n            /**\r\n             * success handler\r\n             */\r\n            _self._onSuccess = function (payload, countOfItemsInPayload) {\r\n                _self._buffer.clearSent(payload);\r\n            };\r\n            /**\r\n             * xdr state changes\r\n             */\r\n            _self._xdrOnLoad = function (xdr, payload) {\r\n                var responseText = _getResponseText(xdr);\r\n                if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n                    _consecutiveErrors = 0;\r\n                    _self._onSuccess(payload, 0);\r\n                }\r\n                else {\r\n                    var results = _parseResponse(responseText);\r\n                    if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n                        && !_self._senderConfig.isRetryDisabled()) {\r\n                        _self._onPartialSuccess(payload, results);\r\n                    }\r\n                    else {\r\n                        _self._onError(payload, _formatErrorMessageXdr(xdr));\r\n                    }\r\n                }\r\n            };\r\n            function _isSampledIn(envelope) {\r\n                return _self._sample.isSampledIn(envelope);\r\n            }\r\n            function _checkAndUpdateEndPointUrl(xhr) {\r\n                var responseUrl = xhr.responseURL;\r\n                // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n                if (_stamp_specific_redirects >= 10) {\r\n                    //  _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n                    //  _stamp_specific_redirects = 0;\r\n                    return false;\r\n                }\r\n                if (!isNullOrUndefined(responseUrl) && responseUrl !== '') {\r\n                    if (responseUrl !== _self._senderConfig.endpointUrl()) {\r\n                        _self._senderConfig.endpointUrl = function () { return responseUrl; };\r\n                        ++_stamp_specific_redirects;\r\n                        return true;\r\n                    }\r\n                }\r\n                return false;\r\n            }\r\n            /**\r\n             * Send Beacon API request\r\n             * @param payload {string} - The data payload to be sent.\r\n             * @param isAsync {boolean} - not used\r\n             * Note: Beacon API does not support custom headers and we are not able to get\r\n             * appId from the backend for the correct correlation.\r\n             */\r\n            function _beaconSender(payload, isAsync) {\r\n                var url = _self._senderConfig.endpointUrl();\r\n                var batch = _self._buffer.batchPayloads(payload);\r\n                // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n                // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n                var plainTextBatch = new Blob([batch], { type: 'text/plain;charset=UTF-8' });\r\n                // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n                var queued = getNavigator().sendBeacon(url, plainTextBatch);\r\n                if (queued) {\r\n                    _self._buffer.markAsSent(payload);\r\n                    // no response from beaconSender, clear buffer\r\n                    _self._onSuccess(payload, payload.length);\r\n                }\r\n                else {\r\n                    _xhrSender(payload, true);\r\n                    _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n                }\r\n            }\r\n            /**\r\n             * Send XMLHttpRequest\r\n             * @param payload {string} - The data payload to be sent.\r\n             * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n             */\r\n            function _xhrSender(payload, isAsync) {\r\n                var xhr = new XMLHttpRequest();\r\n                var endPointUrl = _self._senderConfig.endpointUrl();\r\n                try {\r\n                    xhr[DisabledPropertyName] = true;\r\n                }\r\n                catch (e) {\r\n                    // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n                    // cause the request to fail and we no telemetry would be sent\r\n                }\r\n                xhr.open(\"POST\", endPointUrl, isAsync);\r\n                xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n                // append Sdk-Context request header only in case of breeze endpoint\r\n                if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n                    xhr.setRequestHeader(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n                }\r\n                xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload.length); };\r\n                xhr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXhr(xhr), event); };\r\n                // compose an array of payloads\r\n                var batch = _self._buffer.batchPayloads(payload);\r\n                xhr.send(batch);\r\n                _self._buffer.markAsSent(payload);\r\n            }\r\n            /**\r\n             * Parses the response from the backend.\r\n             * @param response - XMLHttpRequest or XDomainRequest response\r\n             */\r\n            function _parseResponse(response) {\r\n                try {\r\n                    if (response && response !== \"\") {\r\n                        var result = getJSON().parse(response);\r\n                        if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted &&\r\n                            result.itemsReceived - result.itemsAccepted === result.errors.length) {\r\n                            return result;\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, \"Cannot parse the response. \" + getExceptionName(e), {\r\n                        response: response\r\n                    });\r\n                }\r\n                return null;\r\n            }\r\n            /**\r\n             * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n             * @param payload\r\n             */\r\n            function _resendPayload(payload, linearFactor) {\r\n                if (linearFactor === void 0) { linearFactor = 1; }\r\n                if (!payload || payload.length === 0) {\r\n                    return;\r\n                }\r\n                _self._buffer.clearSent(payload);\r\n                _consecutiveErrors++;\r\n                for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n                    var item = payload_1[_i];\r\n                    _self._buffer.enqueue(item);\r\n                }\r\n                // setup timer\r\n                _setRetryTime(linearFactor);\r\n                _setupTimer();\r\n            }\r\n            /**\r\n             * Calculates the time to wait before retrying in case of an error based on\r\n             * http://en.wikipedia.org/wiki/Exponential_backoff\r\n             */\r\n            function _setRetryTime(linearFactor) {\r\n                var SlotDelayInSeconds = 10;\r\n                var delayInSeconds;\r\n                if (_consecutiveErrors <= 1) {\r\n                    delayInSeconds = SlotDelayInSeconds;\r\n                }\r\n                else {\r\n                    var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n                    // tslint:disable-next-line:insecure-random\r\n                    var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n                    backOffDelay = linearFactor * backOffDelay;\r\n                    delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n                }\r\n                // TODO: Log the backoff time like the C# version does.\r\n                var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n                // TODO: Log the retry at time like the C# version does.\r\n                _retryAt = retryAfterTimeSpan;\r\n            }\r\n            /**\r\n             * Sets up the timer which triggers actually sending the data.\r\n             */\r\n            function _setupTimer() {\r\n                if (!_timeoutHandle) {\r\n                    var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n                    var timerValue = Math.max(_self._senderConfig.maxBatchInterval(), retryInterval);\r\n                    _timeoutHandle = setTimeout(function () {\r\n                        _self.triggerSend(true, null, 1 /* NormalSchedule */);\r\n                    }, timerValue);\r\n                }\r\n            }\r\n            /**\r\n             * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n             * @param statusCode\r\n             */\r\n            function _isRetriable(statusCode) {\r\n                return statusCode === 408 // Timeout\r\n                    || statusCode === 429 // Too many requests.\r\n                    || statusCode === 500 // Internal server error.\r\n                    || statusCode === 503; // Service unavailable.\r\n            }\r\n            function _formatErrorMessageXhr(xhr, message) {\r\n                if (xhr) {\r\n                    return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n                }\r\n                return message;\r\n            }\r\n            /**\r\n             * Send XDomainRequest\r\n             * @param payload {string} - The data payload to be sent.\r\n             * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n             *\r\n             * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n             * to maintain consistency with the xhrSender's contract\r\n             * Note: XDomainRequest does not support custom headers and we are not able to get\r\n             * appId from the backend for the correct correlation.\r\n             */\r\n            function _xdrSender(payload, isAsync) {\r\n                var _window = getWindow();\r\n                var xdr = new XDomainRequest();\r\n                xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n                xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };\r\n                // XDomainRequest requires the same protocol as the hosting page.\r\n                // If the protocol doesn't match, we can't send the telemetry :(.\r\n                var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n                if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n                    _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n                        \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n                    _self._buffer.clear();\r\n                    return;\r\n                }\r\n                var endpointUrl = _self._senderConfig.endpointUrl().replace(/^(https?:)/, \"\");\r\n                xdr.open('POST', endpointUrl);\r\n                // compose an array of payloads\r\n                var batch = _self._buffer.batchPayloads(payload);\r\n                xdr.send(batch);\r\n                _self._buffer.markAsSent(payload);\r\n            }\r\n            function _formatErrorMessageXdr(xdr, message) {\r\n                if (xdr) {\r\n                    return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n                }\r\n                return message;\r\n            }\r\n            // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n            function _getNotifyMgr() {\r\n                var func = 'getNotifyMgr';\r\n                if (_self.core[func]) {\r\n                    return _self.core[func]();\r\n                }\r\n                // using _self.core['_notificationManager'] for backward compatibility\r\n                return _self.core['_notificationManager'];\r\n            }\r\n            function _notifySendRequest(sendRequest, isAsync) {\r\n                var manager = _getNotifyMgr();\r\n                if (manager && manager.eventsSendRequest) {\r\n                    try {\r\n                        manager.eventsSendRequest(sendRequest, isAsync);\r\n                    }\r\n                    catch (e) {\r\n                        _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                }\r\n            }\r\n            /**\r\n             * Validate UUID Format\r\n             * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n             */\r\n            function _validateInstrumentationKey(config) {\r\n                var disableIKeyValidationFlag = isNullOrUndefined(config.disableInstrumentationKeyValidation) ? false : config.disableInstrumentationKeyValidation;\r\n                if (disableIKeyValidationFlag) {\r\n                    return true;\r\n                }\r\n                var UUID_Regex = '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$';\r\n                var regexp = new RegExp(UUID_Regex);\r\n                return regexp.test(config.instrumentationKey);\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n    Sender.constructEnvelope = function (orig, iKey, logger) {\r\n        var envelope;\r\n        if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n            envelope = __assign({}, orig, { iKey: iKey });\r\n        }\r\n        else {\r\n            envelope = orig;\r\n        }\r\n        switch (envelope.baseType) {\r\n            case Event.dataType:\r\n                return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope);\r\n            case Trace.dataType:\r\n                return TraceEnvelopeCreator.TraceEnvelopeCreator.Create(logger, envelope);\r\n            case PageView.dataType:\r\n                return PageViewEnvelopeCreator.PageViewEnvelopeCreator.Create(logger, envelope);\r\n            case PageViewPerformance.dataType:\r\n                return PageViewPerformanceEnvelopeCreator.PageViewPerformanceEnvelopeCreator.Create(logger, envelope);\r\n            case Exception.dataType:\r\n                return ExceptionEnvelopeCreator.ExceptionEnvelopeCreator.Create(logger, envelope);\r\n            case Metric.dataType:\r\n                return MetricEnvelopeCreator.MetricEnvelopeCreator.Create(logger, envelope);\r\n            case RemoteDependencyData.dataType:\r\n                return DependencyEnvelopeCreator.DependencyEnvelopeCreator.Create(logger, envelope);\r\n            default:\r\n                return EventEnvelopeCreator.EventEnvelopeCreator.Create(logger, envelope);\r\n        }\r\n    };\r\n    Sender._getDefaultAppInsightsChannelConfig = function () {\r\n        // set default values\r\n        return {\r\n            endpointUrl: function () { return \"https://dc.services.visualstudio.com/v2/track\"; },\r\n            emitLineDelimitedJson: function () { return false; },\r\n            maxBatchInterval: function () { return 15000; },\r\n            maxBatchSizeInBytes: function () { return 102400; },\r\n            disableTelemetry: function () { return false; },\r\n            enableSessionStorageBuffer: function () { return true; },\r\n            isRetryDisabled: function () { return false; },\r\n            isBeaconApiDisabled: function () { return true; },\r\n            onunloadDisableBeacon: function () { return false; },\r\n            instrumentationKey: function () { return undefined; },\r\n            namePrefix: function () { return undefined; },\r\n            samplingPercentage: function () { return 100; }\r\n        };\r\n    };\r\n    Sender._getEmptyAppInsightsChannelConfig = function () {\r\n        return {\r\n            endpointUrl: undefined,\r\n            emitLineDelimitedJson: undefined,\r\n            maxBatchInterval: undefined,\r\n            maxBatchSizeInBytes: undefined,\r\n            disableTelemetry: undefined,\r\n            enableSessionStorageBuffer: undefined,\r\n            isRetryDisabled: undefined,\r\n            isBeaconApiDisabled: undefined,\r\n            onunloadDisableBeacon: undefined,\r\n            instrumentationKey: undefined,\r\n            namePrefix: undefined,\r\n            samplingPercentage: undefined\r\n        };\r\n    };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.teardown.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n    return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","/*!\n * Application Insights JavaScript SDK - Channel, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { FieldType } from '@microsoft/applicationinsights-common';\r\nimport { LoggingSeverity, _InternalMessageId, getJSON, objForEachKey, isFunction, isObject, isArray } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nvar Serializer = /** @class */ (function () {\r\n    function Serializer(logger) {\r\n        dynamicProto(Serializer, this, function (_self) {\r\n            /**\r\n             * Serializes the current object to a JSON string.\r\n             */\r\n            _self.serialize = function (input) {\r\n                var output = _serializeObject(input, \"root\");\r\n                try {\r\n                    return getJSON().stringify(output);\r\n                }\r\n                catch (e) {\r\n                    // if serialization fails return an empty string\r\n                    logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n                }\r\n            };\r\n            function _serializeObject(source, name) {\r\n                var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n                var output = {};\r\n                if (!source) {\r\n                    logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n                    return output;\r\n                }\r\n                if (source[circularReferenceCheck]) {\r\n                    logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CircularReferenceDetected, \"Circular reference detected while serializing object\", { name: name }, true);\r\n                    return output;\r\n                }\r\n                if (!source.aiDataContract) {\r\n                    // special case for measurements/properties/tags\r\n                    if (name === \"measurements\") {\r\n                        output = _serializeStringMap(source, \"number\", name);\r\n                    }\r\n                    else if (name === \"properties\") {\r\n                        output = _serializeStringMap(source, \"string\", name);\r\n                    }\r\n                    else if (name === \"tags\") {\r\n                        output = _serializeStringMap(source, \"string\", name);\r\n                    }\r\n                    else if (isArray(source)) {\r\n                        output = _serializeArray(source, name);\r\n                    }\r\n                    else {\r\n                        logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n                        try {\r\n                            // verify that the object can be stringified\r\n                            getJSON().stringify(source);\r\n                            output = source;\r\n                        }\r\n                        catch (e) {\r\n                            // if serialization fails return an empty string\r\n                            logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n                        }\r\n                    }\r\n                    return output;\r\n                }\r\n                source[circularReferenceCheck] = true;\r\n                objForEachKey(source.aiDataContract, function (field, contract) {\r\n                    var isRequired = (isFunction(contract)) ? (contract() & FieldType.Required) : (contract & FieldType.Required);\r\n                    var isHidden = (isFunction(contract)) ? (contract() & FieldType.Hidden) : (contract & FieldType.Hidden);\r\n                    var isArray = contract & FieldType.Array;\r\n                    var isPresent = source[field] !== undefined;\r\n                    var isObj = isObject(source[field]) && source[field] !== null;\r\n                    if (isRequired && !isPresent && !isArray) {\r\n                        logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.MissingRequiredFieldSpecification, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n                        // If not in debug mode, continue and hope the error is permissible\r\n                    }\r\n                    else if (!isHidden) {\r\n                        var value = void 0;\r\n                        if (isObj) {\r\n                            if (isArray) {\r\n                                // special case; recurse on each object in the source array\r\n                                value = _serializeArray(source[field], field);\r\n                            }\r\n                            else {\r\n                                // recurse on the source object in this field\r\n                                value = _serializeObject(source[field], field);\r\n                            }\r\n                        }\r\n                        else {\r\n                            // assign the source field to the output even if undefined or required\r\n                            value = source[field];\r\n                        }\r\n                        // only emit this field if the value is defined\r\n                        if (value !== undefined) {\r\n                            output[field] = value;\r\n                        }\r\n                    }\r\n                });\r\n                delete source[circularReferenceCheck];\r\n                return output;\r\n            }\r\n            function _serializeArray(sources, name) {\r\n                var output;\r\n                if (!!sources) {\r\n                    if (!isArray(sources)) {\r\n                        logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ItemNotInArray, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n                    }\r\n                    else {\r\n                        output = [];\r\n                        for (var i = 0; i < sources.length; i++) {\r\n                            var source = sources[i];\r\n                            var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n                            output.push(item);\r\n                        }\r\n                    }\r\n                }\r\n                return output;\r\n            }\r\n            function _serializeStringMap(map, expectedType, name) {\r\n                var output;\r\n                if (map) {\r\n                    output = {};\r\n                    objForEachKey(map, function (field, value) {\r\n                        if (expectedType === \"string\") {\r\n                            if (value === undefined) {\r\n                                output[field] = \"undefined\";\r\n                            }\r\n                            else if (value === null) {\r\n                                output[field] = \"null\";\r\n                            }\r\n                            else if (!value.toString) {\r\n                                output[field] = \"invalid field: toString() is not defined.\";\r\n                            }\r\n                            else {\r\n                                output[field] = value.toString();\r\n                            }\r\n                        }\r\n                        else if (expectedType === \"number\") {\r\n                            if (value === undefined) {\r\n                                output[field] = \"undefined\";\r\n                            }\r\n                            else if (value === null) {\r\n                                output[field] = \"null\";\r\n                            }\r\n                            else {\r\n                                var num = parseFloat(value);\r\n                                if (isNaN(num)) {\r\n                                    output[field] = \"NaN\";\r\n                                }\r\n                                else {\r\n                                    output[field] = num;\r\n                                }\r\n                            }\r\n                        }\r\n                        else {\r\n                            output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n                            logger.throwInternal(LoggingSeverity.CRITICAL, output[field], null, true);\r\n                        }\r\n                    });\r\n                }\r\n                return output;\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n    return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","/*!\n * Application Insights JavaScript SDK - Channel, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { SamplingScoreGenerator } from './SamplingScoreGenerators/SamplingScoreGenerator';\r\nimport { Metric } from '@microsoft/applicationinsights-common';\r\nimport { _InternalMessageId, LoggingSeverity, safeGetLogger } from '@microsoft/applicationinsights-core-js';\r\nvar Sample = /** @class */ (function () {\r\n    function Sample(sampleRate, logger) {\r\n        // We're using 32 bit math, hence max value is (2^31 - 1)\r\n        this.INT_MAX_VALUE = 2147483647;\r\n        this._logger = logger || safeGetLogger(null);\r\n        if (sampleRate > 100 || sampleRate < 0) {\r\n            this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SampleRateOutOfRange, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n            this.sampleRate = 100;\r\n        }\r\n        this.sampleRate = sampleRate;\r\n        this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n    }\r\n    /**\r\n     * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n     */\r\n    Sample.prototype.isSampledIn = function (envelope) {\r\n        var samplingPercentage = this.sampleRate; // 0 - 100\r\n        var isSampledIn = false;\r\n        if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n            return true;\r\n        }\r\n        else if (envelope.baseType === Metric.dataType) {\r\n            // exclude MetricData telemetry from sampling\r\n            return true;\r\n        }\r\n        isSampledIn = this.samplingScoreGenerator.getSamplingScore(envelope) < samplingPercentage;\r\n        return isSampledIn;\r\n    };\r\n    return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","/*!\n * Application Insights JavaScript SDK - Channel, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n    function HashCodeScoreGenerator() {\r\n    }\r\n    HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n        var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n        return score * 100;\r\n    };\r\n    HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n        if (input === \"\") {\r\n            return 0;\r\n        }\r\n        while (input.length < HashCodeScoreGenerator.MIN_INPUT_LENGTH) {\r\n            input = input.concat(input);\r\n        }\r\n        // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n        var hash = 5381;\r\n        for (var i = 0; i < input.length; ++i) {\r\n            hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n            // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n            // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n            hash = hash & hash;\r\n        }\r\n        return Math.abs(hash);\r\n    };\r\n    // We're using 32 bit math, hence max value is (2^31 - 1)\r\n    HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n    // (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\n    HashCodeScoreGenerator.MIN_INPUT_LENGTH = 8;\r\n    return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","/*!\n * Application Insights JavaScript SDK - Channel, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { HashCodeScoreGenerator } from './HashCodeScoreGenerator';\r\nimport { ContextTagKeys } from '@microsoft/applicationinsights-common';\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n    function SamplingScoreGenerator() {\r\n        this.hashCodeGeneragor = new HashCodeScoreGenerator();\r\n        this.keys = new ContextTagKeys();\r\n    }\r\n    SamplingScoreGenerator.prototype.getSamplingScore = function (item) {\r\n        var score = 0;\r\n        if (item.tags && item.tags[this.keys.userId]) {\r\n            score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.userId]);\r\n        }\r\n        else if (item.ext && item.ext.user && item.ext.user.id) {\r\n            score = this.hashCodeGeneragor.getHashCodeScore(item.ext.user.id);\r\n        }\r\n        else if (item.tags && item.tags[this.keys.operationId]) {\r\n            score = this.hashCodeGeneragor.getHashCodeScore(item.tags[this.keys.operationId]);\r\n        }\r\n        else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {\r\n            score = this.hashCodeGeneragor.getHashCodeScore(item.ext.telemetryTrace.traceID);\r\n        }\r\n        else {\r\n            // tslint:disable-next-line:insecure-random\r\n            score = (Math.random() * 100);\r\n        }\r\n        return score;\r\n    };\r\n    return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n    if (!connectionString) {\r\n        return {};\r\n    }\r\n    var kvPairs = connectionString.split(_FIELDS_SEPARATOR);\r\n    var result = arrReduce(kvPairs, function (fields, kv) {\r\n        var kvParts = kv.split(_FIELD_KEY_VALUE_SEPARATOR);\r\n        if (kvParts.length === 2) {\r\n            var key = kvParts[0].toLowerCase();\r\n            var value = kvParts[1];\r\n            fields[key] = value;\r\n        }\r\n        return fields;\r\n    }, {});\r\n    if (objKeys(result).length > 0) {\r\n        // this is a valid connection string, so parse the results\r\n        if (result.endpointsuffix) {\r\n            // use endpoint suffix where overrides are not provided\r\n            var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n            result.ingestionendpoint = result.ingestionendpoint || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n        }\r\n        // apply the default endpoints\r\n        result.ingestionendpoint = result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;\r\n    }\r\n    return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n    parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var strNotSpecified = \"not_specified\";\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isFunction, getDocument } from '@microsoft/applicationinsights-core-js';\r\nexport function createDomEvent(eventName) {\r\n    var event = null;\r\n    if (isFunction(Event)) {\r\n        event = new Event(eventName);\r\n    }\r\n    else {\r\n        var doc = getDocument();\r\n        if (doc && doc.createEvent) {\r\n            event = doc.createEvent(\"Event\");\r\n            event.initEvent(eventName, true, true);\r\n        }\r\n    }\r\n    return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Type of storage to differentiate between local storage and session storage\r\n */\r\nexport var StorageType;\r\n(function (StorageType) {\r\n    StorageType[StorageType[\"LocalStorage\"] = 0] = \"LocalStorage\";\r\n    StorageType[StorageType[\"SessionStorage\"] = 1] = \"SessionStorage\";\r\n})(StorageType || (StorageType = {}));\r\n/**\r\n * Enum is used in aiDataContract to describe how fields are serialized.\r\n * For instance: (Fieldtype.Required | FieldType.Array) will mark the field as required and indicate it's an array\r\n */\r\nexport var FieldType;\r\n(function (FieldType) {\r\n    FieldType[FieldType[\"Default\"] = 0] = \"Default\";\r\n    FieldType[FieldType[\"Required\"] = 1] = \"Required\";\r\n    FieldType[FieldType[\"Array\"] = 2] = \"Array\";\r\n    FieldType[FieldType[\"Hidden\"] = 4] = \"Hidden\";\r\n})(FieldType || (FieldType = {}));\r\n;\r\nexport var DistributedTracingModes;\r\n(function (DistributedTracingModes) {\r\n    /**\r\n     * (Default) Send Application Insights correlation headers\r\n     */\r\n    DistributedTracingModes[DistributedTracingModes[\"AI\"] = 0] = \"AI\";\r\n    /**\r\n     * Send both W3C Trace Context headers and back-compatibility Application Insights headers\r\n     */\r\n    DistributedTracingModes[DistributedTracingModes[\"AI_AND_W3C\"] = 1] = \"AI_AND_W3C\";\r\n    /**\r\n     * Send W3C Trace Context headers\r\n     */\r\n    DistributedTracingModes[DistributedTracingModes[\"W3C\"] = 2] = \"W3C\";\r\n})(DistributedTracingModes || (DistributedTracingModes = {}));\r\n//# sourceMappingURL=Enums.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, getNavigator, isString } from \"@microsoft/applicationinsights-core-js\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n    if (defaultValue === void 0) { defaultValue = false; }\r\n    if (str === undefined || str === null) {\r\n        return defaultValue;\r\n    }\r\n    return str.toString().toLowerCase() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n    if (isNaN(totalms) || totalms < 0) {\r\n        totalms = 0;\r\n    }\r\n    totalms = Math.round(totalms);\r\n    var ms = \"\" + totalms % 1000;\r\n    var sec = \"\" + Math.floor(totalms / 1000) % 60;\r\n    var min = \"\" + Math.floor(totalms / (1000 * 60)) % 60;\r\n    var hour = \"\" + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n    var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n    ms = ms.length === 1 ? \"00\" + ms : ms.length === 2 ? \"0\" + ms : ms;\r\n    sec = sec.length < 2 ? \"0\" + sec : sec;\r\n    min = min.length < 2 ? \"0\" + min : min;\r\n    hour = hour.length < 2 ? \"0\" + hour : hour;\r\n    return (days > 0 ? days + \".\" : \"\") + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function isBeaconApiSupported() {\r\n    var nav = getNavigator();\r\n    return ('sendBeacon' in nav && nav.sendBeacon);\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n    var extension = null;\r\n    arrForEach(extensions, function (value) {\r\n        if (value.identifier === identifier) {\r\n            extension = value;\r\n            return -1;\r\n        }\r\n    });\r\n    return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n    return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Data struct to contain only C section with custom fields.\r\n */\r\nvar Base = /** @class */ (function () {\r\n    function Base() {\r\n    }\r\n    return Base;\r\n}());\r\nexport { Base };\r\n//# sourceMappingURL=Base.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n    var aiName = \"ai.\" + baseName + \".\";\r\n    return function (name) {\r\n        return aiName + name;\r\n    };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n    __extends(ContextTagKeys, _super);\r\n    function ContextTagKeys() {\r\n        return _super.call(this) || this;\r\n    }\r\n    return ContextTagKeys;\r\n}(createClassFromInterface({\r\n    applicationVersion: _aiApplication(\"ver\"),\r\n    applicationBuild: _aiApplication(\"build\"),\r\n    applicationTypeId: _aiApplication(\"typeId\"),\r\n    applicationId: _aiApplication(\"applicationId\"),\r\n    applicationLayer: _aiApplication(\"layer\"),\r\n    deviceId: _aiDevice(\"id\"),\r\n    deviceIp: _aiDevice(\"ip\"),\r\n    deviceLanguage: _aiDevice(\"language\"),\r\n    deviceLocale: _aiDevice(\"locale\"),\r\n    deviceModel: _aiDevice(\"model\"),\r\n    deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n    deviceNetwork: _aiDevice(\"network\"),\r\n    deviceNetworkName: _aiDevice(\"networkName\"),\r\n    deviceOEMName: _aiDevice(\"oemName\"),\r\n    deviceOS: _aiDevice(\"os\"),\r\n    deviceOSVersion: _aiDevice(\"osVersion\"),\r\n    deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n    deviceRoleName: _aiDevice(\"roleName\"),\r\n    deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n    deviceType: _aiDevice(\"type\"),\r\n    deviceMachineName: _aiDevice(\"machineName\"),\r\n    deviceVMName: _aiDevice(\"vmName\"),\r\n    deviceBrowser: _aiDevice(\"browser\"),\r\n    deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n    locationIp: _aiLocation(\"ip\"),\r\n    locationCountry: _aiLocation(\"country\"),\r\n    locationProvince: _aiLocation(\"province\"),\r\n    locationCity: _aiLocation(\"city\"),\r\n    operationId: _aiOperation(\"id\"),\r\n    operationName: _aiOperation(\"name\"),\r\n    operationParentId: _aiOperation(\"parentId\"),\r\n    operationRootId: _aiOperation(\"rootId\"),\r\n    operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n    operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n    sessionId: _aiSession(\"id\"),\r\n    sessionIsFirst: _aiSession(\"isFirst\"),\r\n    sessionIsNew: _aiSession(\"isNew\"),\r\n    userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n    userAccountId: _aiUser(\"accountId\"),\r\n    userAgent: _aiUser(\"userAgent\"),\r\n    userId: _aiUser(\"id\"),\r\n    userStoreRegion: _aiUser(\"storeRegion\"),\r\n    userAuthUserId: _aiUser(\"authUserId\"),\r\n    userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n    userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n    cloudName: _aiCloud(\"name\"),\r\n    cloudRole: _aiCloud(\"role\"),\r\n    cloudRoleVer: _aiCloud(\"roleVer\"),\r\n    cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n    cloudEnvironment: _aiCloud(\"environment\"),\r\n    cloudLocation: _aiCloud(\"location\"),\r\n    cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n    internalNodeName: _aiInternal(\"nodeName\"),\r\n    internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n    internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n    internalSnippet: _aiInternal(\"snippet\"),\r\n    internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Base } from './Base';\r\n/**\r\n * Data struct to contain both B and C sections.\r\n */\r\nvar Data = /** @class */ (function (_super) {\r\n    __extends(Data, _super);\r\n    function Data() {\r\n        return _super.call(this) || this;\r\n    }\r\n    return Data;\r\n}(Base));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DataPointType } from './DataPointType';\r\n/**\r\n * Metric data single measurement.\r\n */\r\nvar DataPoint = /** @class */ (function () {\r\n    function DataPoint() {\r\n        /**\r\n         * Metric type. Single measurement or the aggregated value.\r\n         */\r\n        this.kind = DataPointType.Measurement;\r\n    }\r\n    return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Type of the metric data measurement.\r\n */\r\nexport var DataPointType;\r\n(function (DataPointType) {\r\n    DataPointType[DataPointType[\"Measurement\"] = 0] = \"Measurement\";\r\n    DataPointType[DataPointType[\"Aggregation\"] = 1] = \"Aggregation\";\r\n})(DataPointType || (DataPointType = {}));\r\n//# sourceMappingURL=DataPointType.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * System variables for a telemetry item.\r\n */\r\nvar Envelope = /** @class */ (function () {\r\n    function Envelope() {\r\n        /**\r\n         * Envelope version. For internal use only. By assigning this the default, it will not be serialized within the payload unless changed to a value other than #1.\r\n         */\r\n        this.ver = 1;\r\n        /**\r\n         * Sampling rate used in application. This telemetry item represents 1 / sampleRate actual telemetry items.\r\n         */\r\n        this.sampleRate = 100.0;\r\n        /**\r\n         * Key/value collection of context properties. See ContextTagKeys for information on available properties.\r\n         */\r\n        this.tags = {};\r\n    }\r\n    return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Instances of Event represent structured event records that can be grouped and searched by their properties. Event data item also creates a metric of event count by name.\r\n */\r\nvar EventData = /** @class */ (function () {\r\n    function EventData() {\r\n        /**\r\n         * Schema version\r\n         */\r\n        this.ver = 2;\r\n        /**\r\n         * Collection of custom properties.\r\n         */\r\n        this.properties = {};\r\n        /**\r\n         * Collection of custom measurements.\r\n         */\r\n        this.measurements = {};\r\n    }\r\n    return EventData;\r\n}());\r\nexport { EventData };\r\n//# sourceMappingURL=EventData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * An instance of Exception represents a handled or unhandled exception that occurred during execution of the monitored application.\r\n */\r\nvar ExceptionData = /** @class */ (function () {\r\n    function ExceptionData() {\r\n        /**\r\n         * Schema version\r\n         */\r\n        this.ver = 2;\r\n        /**\r\n         * Exception chain - list of inner exceptions.\r\n         */\r\n        this.exceptions = [];\r\n        /**\r\n         * Collection of custom properties.\r\n         */\r\n        this.properties = {};\r\n        /**\r\n         * Collection of custom measurements.\r\n         */\r\n        this.measurements = {};\r\n    }\r\n    return ExceptionData;\r\n}());\r\nexport { ExceptionData };\r\n//# sourceMappingURL=ExceptionData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Exception details of the exception in a chain.\r\n */\r\nvar ExceptionDetails = /** @class */ (function () {\r\n    function ExceptionDetails() {\r\n        /**\r\n         * Indicates if full exception stack is provided in the exception. The stack may be trimmed, such as in the case of a StackOverflow exception.\r\n         */\r\n        this.hasFullStack = true;\r\n        /**\r\n         * List of stack frames. Either stack or parsedStack should have a value.\r\n         */\r\n        this.parsedStack = [];\r\n    }\r\n    return ExceptionDetails;\r\n}());\r\nexport { ExceptionDetails };\r\n//# sourceMappingURL=ExceptionDetails.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * Instances of Message represent printf-like trace statements that are text-searched. Log4Net, NLog and other text-based log file entries are translated into intances of this type. The message does not have measurements.\r\n */\r\nvar MessageData = /** @class */ (function () {\r\n    function MessageData() {\r\n        /**\r\n         * Schema version\r\n         */\r\n        this.ver = 2;\r\n        /**\r\n         * Collection of custom properties.\r\n         */\r\n        this.properties = {};\r\n        /**\r\n         * Collection of custom measurements.\r\n         */\r\n        this.measurements = {};\r\n    }\r\n    return MessageData;\r\n}());\r\nexport { MessageData };\r\n//# sourceMappingURL=MessageData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * An instance of the Metric item is a list of measurements (single data points) and/or aggregations.\r\n */\r\nvar MetricData = /** @class */ (function () {\r\n    function MetricData() {\r\n        /**\r\n         * Schema version\r\n         */\r\n        this.ver = 2;\r\n        /**\r\n         * List of metrics. Only one metric in the list is currently supported by Application Insights storage. If multiple data points were sent only the first one will be used.\r\n         */\r\n        this.metrics = [];\r\n        /**\r\n         * Collection of custom properties.\r\n         */\r\n        this.properties = {};\r\n        /**\r\n         * Collection of custom measurements.\r\n         */\r\n        this.measurements = {};\r\n    }\r\n    return MetricData;\r\n}());\r\nexport { MetricData };\r\n//# sourceMappingURL=MetricData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { EventData } from './EventData';\r\n/**\r\n * An instance of PageView represents a generic action on a page like a button click. It is also the base type for PageView.\r\n */\r\nvar PageViewData = /** @class */ (function (_super) {\r\n    __extends(PageViewData, _super);\r\n    function PageViewData() {\r\n        var _this = _super.call(this) || this;\r\n        /**\r\n         * Schema version\r\n         */\r\n        _this.ver = 2;\r\n        /**\r\n         * Collection of custom properties.\r\n         */\r\n        _this.properties = {};\r\n        /**\r\n         * Collection of custom measurements.\r\n         */\r\n        _this.measurements = {};\r\n        return _this;\r\n    }\r\n    return PageViewData;\r\n}(EventData));\r\nexport { PageViewData };\r\n//# sourceMappingURL=PageViewData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { PageViewData } from './PageViewData';\r\n/**\r\n * An instance of PageViewPerf represents: a page view with no performance data, a page view with performance data, or just the performance data of an earlier page request.\r\n */\r\nvar PageViewPerfData = /** @class */ (function (_super) {\r\n    __extends(PageViewPerfData, _super);\r\n    function PageViewPerfData() {\r\n        var _this = _super.call(this) || this;\r\n        /**\r\n         * Schema version\r\n         */\r\n        _this.ver = 2;\r\n        /**\r\n         * Collection of custom properties.\r\n         */\r\n        _this.properties = {};\r\n        /**\r\n         * Collection of custom measurements.\r\n         */\r\n        _this.measurements = {};\r\n        return _this;\r\n    }\r\n    return PageViewPerfData;\r\n}(PageViewData));\r\nexport { PageViewPerfData };\r\n//# sourceMappingURL=PageViewPerfData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * An instance of Remote Dependency represents an interaction of the monitored component with a remote component/service like SQL or an HTTP endpoint.\r\n */\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n    function RemoteDependencyData() {\r\n        /**\r\n         * Schema version\r\n         */\r\n        this.ver = 2;\r\n        /**\r\n         * Indication of successful or unsuccessful call.\r\n         */\r\n        this.success = true;\r\n        /**\r\n         * Collection of custom properties.\r\n         */\r\n        this.properties = {};\r\n        /**\r\n         * Collection of custom measurements.\r\n         */\r\n        this.measurements = {};\r\n    }\r\n    return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel;\r\n(function (SeverityLevel) {\r\n    SeverityLevel[SeverityLevel[\"Verbose\"] = 0] = \"Verbose\";\r\n    SeverityLevel[SeverityLevel[\"Information\"] = 1] = \"Information\";\r\n    SeverityLevel[SeverityLevel[\"Warning\"] = 2] = \"Warning\";\r\n    SeverityLevel[SeverityLevel[\"Error\"] = 3] = \"Error\";\r\n    SeverityLevel[SeverityLevel[\"Critical\"] = 4] = \"Critical\";\r\n})(SeverityLevel || (SeverityLevel = {}));\r\n//# sourceMappingURL=SeverityLevel.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Stack frame information.\r\n */\r\nvar StackFrame = /** @class */ (function () {\r\n    function StackFrame() {\r\n    }\r\n    return StackFrame;\r\n}());\r\nexport { StackFrame };\r\n//# sourceMappingURL=StackFrame.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isNullOrUndefined } from '@microsoft/applicationinsights-core-js';\r\nvar ConfigurationManager = /** @class */ (function () {\r\n    function ConfigurationManager() {\r\n    }\r\n    ConfigurationManager.getConfig = function (config, field, identifier, defaultValue) {\r\n        if (defaultValue === void 0) { defaultValue = false; }\r\n        var configValue;\r\n        if (identifier && config.extensionConfig && config.extensionConfig[identifier] && !isNullOrUndefined(config.extensionConfig[identifier][field])) {\r\n            configValue = config.extensionConfig[identifier][field];\r\n        }\r\n        else {\r\n            configValue = config[field];\r\n        }\r\n        return !isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n    };\r\n    return ConfigurationManager;\r\n}());\r\nexport { ConfigurationManager };\r\n//# sourceMappingURL=IConfig.js.map","import { ContextTagKeys } from \"./Contracts/Generated/ContextTagKeys\";\r\nexport var Extensions = {\r\n    UserExt: \"user\",\r\n    DeviceExt: \"device\",\r\n    TraceExt: \"trace\",\r\n    WebExt: \"web\",\r\n    AppExt: \"app\",\r\n    OSExt: \"os\",\r\n    SessionExt: \"ses\",\r\n    SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var RequestHeaders = {\r\n    requestContextHeader: \"Request-Context\",\r\n    requestContextTargetKey: \"appId\",\r\n    requestContextAppIdFormat: \"appId=cid-v1:\",\r\n    requestIdHeader: \"Request-Id\",\r\n    traceParentHeader: \"traceparent\",\r\n    traceStateHeader: \"tracestate\",\r\n    sdkContextHeader: \"Sdk-Context\",\r\n    sdkContextHeaderAppIdRequest: \"appId\",\r\n    requestContextHeaderLowerCase: \"request-context\"\r\n};\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, LoggingSeverity, objForEachKey, _InternalMessageId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n    if (utlCanUseLocalStorage()) {\r\n        return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n    try {\r\n        if (isNullOrUndefined(getGlobal())) {\r\n            return null;\r\n        }\r\n        var uid = new Date;\r\n        var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n        storage.setItem(uid.toString(), uid.toString());\r\n        var fail = storage.getItem(uid.toString()) !== uid.toString();\r\n        storage.removeItem(uid.toString());\r\n        if (!fail) {\r\n            return storage;\r\n        }\r\n    }\r\n    catch (exception) {\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n    if (utlCanUseSessionStorage()) {\r\n        return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n    }\r\n    return null;\r\n}\r\nexport function utlDisableStorage() {\r\n    _canUseLocalStorage = false;\r\n    _canUseSessionStorage = false;\r\n}\r\nexport function utlCanUseLocalStorage() {\r\n    if (_canUseLocalStorage === undefined) {\r\n        _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n    }\r\n    return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n    var storage = _getLocalStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            return storage.getItem(name);\r\n        }\r\n        catch (e) {\r\n            _canUseLocalStorage = false;\r\n            logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadLocalStorage, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n    var storage = _getLocalStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            storage.setItem(name, data);\r\n            return true;\r\n        }\r\n        catch (e) {\r\n            _canUseLocalStorage = false;\r\n            logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteLocalStorage, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n    var storage = _getLocalStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            storage.removeItem(name);\r\n            return true;\r\n        }\r\n        catch (e) {\r\n            _canUseLocalStorage = false;\r\n            logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromLocalStorage, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return false;\r\n}\r\nexport function utlCanUseSessionStorage() {\r\n    if (_canUseSessionStorage === undefined) {\r\n        _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n    }\r\n    return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n    var keys = [];\r\n    if (utlCanUseSessionStorage()) {\r\n        objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n            keys.push(key);\r\n        });\r\n    }\r\n    return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n    var storage = _getSessionStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            return storage.getItem(name);\r\n        }\r\n        catch (e) {\r\n            _canUseSessionStorage = false;\r\n            logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadSessionStorage, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n    var storage = _getSessionStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            storage.setItem(name, data);\r\n            return true;\r\n        }\r\n        catch (e) {\r\n            _canUseSessionStorage = false;\r\n            logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteSessionStorage, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n    var storage = _getSessionStorageObject();\r\n    if (storage !== null) {\r\n        try {\r\n            storage.removeItem(name);\r\n            return true;\r\n        }\r\n        catch (e) {\r\n            _canUseSessionStorage = false;\r\n            logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromSessionStorage, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Data as AIData } from '../../Interfaces/Contracts/Generated/Data';\r\nimport { FieldType } from '../../Enums';\r\nvar Data = /** @class */ (function (_super) {\r\n    __extends(Data, _super);\r\n    /**\r\n     * Constructs a new instance of telemetry data.\r\n     */\r\n    function Data(baseType, data) {\r\n        var _this = _super.call(this) || this;\r\n        /**\r\n         * The data contract for serializing this object.\r\n         */\r\n        _this.aiDataContract = {\r\n            baseType: FieldType.Required,\r\n            baseData: FieldType.Required\r\n        };\r\n        _this.baseType = baseType;\r\n        _this.baseData = data;\r\n        return _this;\r\n    }\r\n    return Data;\r\n}(AIData));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DataPoint as AIDataPoint } from '../../Interfaces/Contracts/Generated/DataPoint';\r\nimport { FieldType } from '../../Enums';\r\nvar DataPoint = /** @class */ (function (_super) {\r\n    __extends(DataPoint, _super);\r\n    function DataPoint() {\r\n        var _this = _super !== null && _super.apply(this, arguments) || this;\r\n        /**\r\n         * The data contract for serializing this object.\r\n         */\r\n        _this.aiDataContract = {\r\n            name: FieldType.Required,\r\n            kind: FieldType.Default,\r\n            value: FieldType.Required,\r\n            count: FieldType.Default,\r\n            min: FieldType.Default,\r\n            max: FieldType.Default,\r\n            stdDev: FieldType.Default\r\n        };\r\n        return _this;\r\n    }\r\n    return DataPoint;\r\n}(AIDataPoint));\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isObject, isString } from '@microsoft/applicationinsights-core-js';\r\nvar DataSanitizer = /** @class */ (function () {\r\n    function DataSanitizer() {\r\n    }\r\n    DataSanitizer.sanitizeKeyAndAddUniqueness = function (logger, key, map) {\r\n        var origLength = key.length;\r\n        var field = DataSanitizer.sanitizeKey(logger, key);\r\n        // validation truncated the length.  We need to add uniqueness\r\n        if (field.length !== origLength) {\r\n            var i = 0;\r\n            var uniqueField = field;\r\n            while (map[uniqueField] !== undefined) {\r\n                i++;\r\n                uniqueField = field.substring(0, DataSanitizer.MAX_NAME_LENGTH - 3) + DataSanitizer.padNumber(i);\r\n            }\r\n            field = uniqueField;\r\n        }\r\n        return field;\r\n    };\r\n    DataSanitizer.sanitizeKey = function (logger, name) {\r\n        var nameTrunc;\r\n        if (name) {\r\n            // Remove any leading or trailing whitepace\r\n            name = DataSanitizer.trim(name.toString());\r\n            // truncate the string to 150 chars\r\n            if (name.length > DataSanitizer.MAX_NAME_LENGTH) {\r\n                nameTrunc = name.substring(0, DataSanitizer.MAX_NAME_LENGTH);\r\n                logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NameTooLong, \"name is too long.  It has been truncated to \" + DataSanitizer.MAX_NAME_LENGTH + \" characters.\", { name: name }, true);\r\n            }\r\n        }\r\n        return nameTrunc || name;\r\n    };\r\n    DataSanitizer.sanitizeString = function (logger, value, maxLength) {\r\n        if (maxLength === void 0) { maxLength = DataSanitizer.MAX_STRING_LENGTH; }\r\n        var valueTrunc;\r\n        if (value) {\r\n            maxLength = maxLength ? maxLength : DataSanitizer.MAX_STRING_LENGTH; // in case default parameters dont work\r\n            value = DataSanitizer.trim(value);\r\n            if (value.toString().length > maxLength) {\r\n                valueTrunc = value.toString().substring(0, maxLength);\r\n                logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StringValueTooLong, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n            }\r\n        }\r\n        return valueTrunc || value;\r\n    };\r\n    DataSanitizer.sanitizeUrl = function (logger, url) {\r\n        return DataSanitizer.sanitizeInput(logger, url, DataSanitizer.MAX_URL_LENGTH, _InternalMessageId.UrlTooLong);\r\n    };\r\n    DataSanitizer.sanitizeMessage = function (logger, message) {\r\n        var messageTrunc;\r\n        if (message) {\r\n            if (message.length > DataSanitizer.MAX_MESSAGE_LENGTH) {\r\n                messageTrunc = message.substring(0, DataSanitizer.MAX_MESSAGE_LENGTH);\r\n                logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.MessageTruncated, \"message is too long, it has been truncated to \" + DataSanitizer.MAX_MESSAGE_LENGTH + \" characters.\", { message: message }, true);\r\n            }\r\n        }\r\n        return messageTrunc || message;\r\n    };\r\n    DataSanitizer.sanitizeException = function (logger, exception) {\r\n        var exceptionTrunc;\r\n        if (exception) {\r\n            if (exception.length > DataSanitizer.MAX_EXCEPTION_LENGTH) {\r\n                exceptionTrunc = exception.substring(0, DataSanitizer.MAX_EXCEPTION_LENGTH);\r\n                logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ExceptionTruncated, \"exception is too long, it has been truncated to \" + DataSanitizer.MAX_EXCEPTION_LENGTH + \" characters.\", { exception: exception }, true);\r\n            }\r\n        }\r\n        return exceptionTrunc || exception;\r\n    };\r\n    DataSanitizer.sanitizeProperties = function (logger, properties) {\r\n        if (properties) {\r\n            var tempProps_1 = {};\r\n            objForEachKey(properties, function (prop, value) {\r\n                if (isObject(value) && hasJSON()) {\r\n                    // Stringify any part C properties\r\n                    try {\r\n                        value = getJSON().stringify(value);\r\n                    }\r\n                    catch (e) {\r\n                        logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"custom property is not valid\", { exception: e }, true);\r\n                    }\r\n                }\r\n                value = DataSanitizer.sanitizeString(logger, value, DataSanitizer.MAX_PROPERTY_LENGTH);\r\n                prop = DataSanitizer.sanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n                tempProps_1[prop] = value;\r\n            });\r\n            properties = tempProps_1;\r\n        }\r\n        return properties;\r\n    };\r\n    DataSanitizer.sanitizeMeasurements = function (logger, measurements) {\r\n        if (measurements) {\r\n            var tempMeasurements_1 = {};\r\n            objForEachKey(measurements, function (measure, value) {\r\n                measure = DataSanitizer.sanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n                tempMeasurements_1[measure] = value;\r\n            });\r\n            measurements = tempMeasurements_1;\r\n        }\r\n        return measurements;\r\n    };\r\n    DataSanitizer.sanitizeId = function (logger, id) {\r\n        return id ? DataSanitizer.sanitizeInput(logger, id, DataSanitizer.MAX_ID_LENGTH, _InternalMessageId.IdTooLong).toString() : id;\r\n    };\r\n    DataSanitizer.sanitizeInput = function (logger, input, maxLength, _msgId) {\r\n        var inputTrunc;\r\n        if (input) {\r\n            input = DataSanitizer.trim(input);\r\n            if (input.length > maxLength) {\r\n                inputTrunc = input.substring(0, maxLength);\r\n                logger.throwInternal(LoggingSeverity.WARNING, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n            }\r\n        }\r\n        return inputTrunc || input;\r\n    };\r\n    DataSanitizer.padNumber = function (num) {\r\n        var s = \"00\" + num;\r\n        return s.substr(s.length - 3);\r\n    };\r\n    /**\r\n     * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n     */\r\n    DataSanitizer.trim = function (str) {\r\n        if (!isString(str)) {\r\n            return str;\r\n        }\r\n        return str.replace(/^\\s+|\\s+$/g, \"\");\r\n    };\r\n    /**\r\n     * Max length allowed for custom names.\r\n     */\r\n    DataSanitizer.MAX_NAME_LENGTH = 150;\r\n    /**\r\n     * Max length allowed for Id field in page views.\r\n     */\r\n    DataSanitizer.MAX_ID_LENGTH = 128;\r\n    /**\r\n     * Max length allowed for custom values.\r\n     */\r\n    DataSanitizer.MAX_PROPERTY_LENGTH = 8192;\r\n    /**\r\n     * Max length allowed for names\r\n     */\r\n    DataSanitizer.MAX_STRING_LENGTH = 1024;\r\n    /**\r\n     * Max length allowed for url.\r\n     */\r\n    DataSanitizer.MAX_URL_LENGTH = 2048;\r\n    /**\r\n     * Max length allowed for messages.\r\n     */\r\n    DataSanitizer.MAX_MESSAGE_LENGTH = 32768;\r\n    /**\r\n     * Max length allowed for exceptions.\r\n     */\r\n    DataSanitizer.MAX_EXCEPTION_LENGTH = 32768;\r\n    return DataSanitizer;\r\n}());\r\nexport { DataSanitizer };\r\n//# sourceMappingURL=DataSanitizer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Envelope as AIEnvelope } from '../../Interfaces/Contracts/Generated/Envelope';\r\nimport { DataSanitizer } from './DataSanitizer';\r\nimport { FieldType } from '../../Enums';\r\nimport { toISOString } from '@microsoft/applicationinsights-core-js';\r\nimport { strNotSpecified } from '../../Constants';\r\nvar Envelope = /** @class */ (function (_super) {\r\n    __extends(Envelope, _super);\r\n    /**\r\n     * Constructs a new instance of telemetry data.\r\n     */\r\n    function Envelope(logger, data, name) {\r\n        var _this = _super.call(this) || this;\r\n        _this.name = DataSanitizer.sanitizeString(logger, name) || strNotSpecified;\r\n        _this.data = data;\r\n        _this.time = toISOString(new Date());\r\n        _this.aiDataContract = {\r\n            time: FieldType.Required,\r\n            iKey: FieldType.Required,\r\n            name: FieldType.Required,\r\n            sampleRate: function () {\r\n                return (_this.sampleRate === 100) ? FieldType.Hidden : FieldType.Required;\r\n            },\r\n            tags: FieldType.Required,\r\n            data: FieldType.Required\r\n        };\r\n        return _this;\r\n    }\r\n    return Envelope;\r\n}(AIEnvelope));\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { EventData } from '../Interfaces/Contracts/Generated/EventData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { strNotSpecified } from '../Constants';\r\nvar Event = /** @class */ (function (_super) {\r\n    __extends(Event, _super);\r\n    /**\r\n     * Constructs a new instance of the EventTelemetry object\r\n     */\r\n    function Event(logger, name, properties, measurements) {\r\n        var _this = _super.call(this) || this;\r\n        _this.aiDataContract = {\r\n            ver: FieldType.Required,\r\n            name: FieldType.Required,\r\n            properties: FieldType.Default,\r\n            measurements: FieldType.Default\r\n        };\r\n        _this.name = DataSanitizer.sanitizeString(logger, name) || strNotSpecified;\r\n        _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n        _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n        return _this;\r\n    }\r\n    Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n    Event.dataType = \"EventData\";\r\n    return Event;\r\n}(EventData));\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { StackFrame } from '../Interfaces/Contracts/Generated/StackFrame';\r\nimport { ExceptionData } from '../Interfaces/Contracts/Generated/ExceptionData';\r\nimport { ExceptionDetails } from '../Interfaces/Contracts/Generated/ExceptionDetails';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { isNullOrUndefined, arrMap, isString, strTrim, isArray, isError } from '@microsoft/applicationinsights-core-js';\r\nimport { strNotSpecified } from '../Constants';\r\nvar strError = \"error\";\r\nfunction _isExceptionDetailsInternal(value) {\r\n    return \"hasFullStack\" in value && \"typeName\" in value;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n    return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n}\r\nfunction _getErrorType(errorType) {\r\n    // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n    var typeName = \"\";\r\n    if (errorType) {\r\n        typeName = errorType.typeName || errorType.name || \"\";\r\n        if (!typeName) {\r\n            try {\r\n                var funcNameRegex = /function (.{1,})\\(/;\r\n                var results = (funcNameRegex).exec((errorType).constructor.toString());\r\n                typeName = (results && results.length > 1) ? results[1] : \"\";\r\n            }\r\n            catch (e) {\r\n                // Ignore\r\n            }\r\n        }\r\n    }\r\n    return typeName;\r\n}\r\nvar Exception = /** @class */ (function (_super) {\r\n    __extends(Exception, _super);\r\n    /**\r\n     * Constructs a new instance of the ExceptionTelemetry object\r\n     */\r\n    function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n        var _this = _super.call(this) || this;\r\n        _this.aiDataContract = {\r\n            ver: FieldType.Required,\r\n            exceptions: FieldType.Required,\r\n            severityLevel: FieldType.Default,\r\n            properties: FieldType.Default,\r\n            measurements: FieldType.Default\r\n        };\r\n        if (!_isExceptionInternal(exception)) {\r\n            _this.exceptions = [new _ExceptionDetails(logger, exception)];\r\n            _this.properties = DataSanitizer.sanitizeProperties(logger, properties) || {};\r\n            _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n            if (severityLevel) {\r\n                _this.severityLevel = severityLevel;\r\n            }\r\n            if (id) {\r\n                _this.id = id;\r\n            }\r\n        }\r\n        else {\r\n            _this.exceptions = exception.exceptions;\r\n            _this.properties = exception.properties;\r\n            _this.measurements = exception.measurements;\r\n            if (exception.severityLevel) {\r\n                _this.severityLevel = exception.severityLevel;\r\n            }\r\n            if (exception.id) {\r\n                _this.id = exception.id;\r\n            }\r\n            if (exception.problemGroup) {\r\n                _this.problemGroup = exception.problemGroup;\r\n            }\r\n            // bool/int types, use isNullOrUndefined\r\n            _this.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n            if (!isNullOrUndefined(exception.isManual)) {\r\n                _this.isManual = exception.isManual;\r\n            }\r\n        }\r\n        return _this;\r\n    }\r\n    Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n        var exceptions = exception.exceptions\r\n            && arrMap(exception.exceptions, function (ex) { return _ExceptionDetails.CreateFromInterface(logger, ex); });\r\n        var exceptionData = new Exception(logger, __assign({}, exception, { exceptions: exceptions }), properties, measurements);\r\n        return exceptionData;\r\n    };\r\n    Exception.prototype.toInterface = function () {\r\n        var _a = this, exceptions = _a.exceptions, properties = _a.properties, measurements = _a.measurements, severityLevel = _a.severityLevel, ver = _a.ver, problemGroup = _a.problemGroup, id = _a.id, isManual = _a.isManual;\r\n        var exceptionDetailsInterface = exceptions instanceof Array\r\n            && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n            || undefined;\r\n        return {\r\n            ver: \"4.0\",\r\n            exceptions: exceptionDetailsInterface,\r\n            severityLevel: severityLevel,\r\n            properties: properties,\r\n            measurements: measurements,\r\n            problemGroup: problemGroup,\r\n            id: id,\r\n            isManual: isManual\r\n        };\r\n    };\r\n    /**\r\n     * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n     */\r\n    Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n        return {\r\n            exceptions: [\r\n                {\r\n                    hasFullStack: true,\r\n                    message: message,\r\n                    stack: details,\r\n                    typeName: typeName\r\n                }\r\n            ]\r\n        };\r\n    };\r\n    Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n    Exception.dataType = \"ExceptionData\";\r\n    return Exception;\r\n}(ExceptionData));\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function (_super) {\r\n    __extends(_ExceptionDetails, _super);\r\n    function _ExceptionDetails(logger, exception) {\r\n        var _this = _super.call(this) || this;\r\n        _this.aiDataContract = {\r\n            id: FieldType.Default,\r\n            outerId: FieldType.Default,\r\n            typeName: FieldType.Required,\r\n            message: FieldType.Required,\r\n            hasFullStack: FieldType.Default,\r\n            stack: FieldType.Default,\r\n            parsedStack: FieldType.Array\r\n        };\r\n        if (!_isExceptionDetailsInternal(exception)) {\r\n            var error = exception;\r\n            if (!isError(error)) {\r\n                error = error[strError] || error.evt || error;\r\n            }\r\n            _this.typeName = DataSanitizer.sanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n            _this.message = DataSanitizer.sanitizeMessage(logger, exception.message) || strNotSpecified;\r\n            var stack = exception.stack;\r\n            _this.parsedStack = _ExceptionDetails.parseStack(stack);\r\n            _this.stack = DataSanitizer.sanitizeException(logger, stack);\r\n            _this.hasFullStack = isArray(_this.parsedStack) && _this.parsedStack.length > 0;\r\n        }\r\n        else {\r\n            _this.typeName = exception.typeName;\r\n            _this.message = exception.message;\r\n            _this.stack = exception.stack;\r\n            _this.parsedStack = exception.parsedStack;\r\n            _this.hasFullStack = exception.hasFullStack;\r\n        }\r\n        return _this;\r\n    }\r\n    _ExceptionDetails.prototype.toInterface = function () {\r\n        var parsedStack = this.parsedStack instanceof Array\r\n            && arrMap(this.parsedStack, function (frame) { return frame.toInterface(); });\r\n        var exceptionDetailsInterface = {\r\n            id: this.id,\r\n            outerId: this.outerId,\r\n            typeName: this.typeName,\r\n            message: this.message,\r\n            hasFullStack: this.hasFullStack,\r\n            stack: this.stack,\r\n            parsedStack: parsedStack || undefined\r\n        };\r\n        return exceptionDetailsInterface;\r\n    };\r\n    _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n        var parsedStack = (exception.parsedStack instanceof Array\r\n            && arrMap(exception.parsedStack, function (frame) { return _StackFrame.CreateFromInterface(frame); }))\r\n            || exception.parsedStack;\r\n        var exceptionDetails = new _ExceptionDetails(logger, __assign({}, exception, { parsedStack: parsedStack }));\r\n        return exceptionDetails;\r\n    };\r\n    _ExceptionDetails.parseStack = function (stack) {\r\n        var parsedStack;\r\n        if (isString(stack)) {\r\n            var frames_1 = stack.split('\\n');\r\n            parsedStack = [];\r\n            var level = 0;\r\n            var totalSizeInBytes = 0;\r\n            for (var i = 0; i <= frames_1.length; i++) {\r\n                var frame = frames_1[i];\r\n                if (_StackFrame.regex.test(frame)) {\r\n                    var parsedFrame = new _StackFrame(frames_1[i], level++);\r\n                    totalSizeInBytes += parsedFrame.sizeInBytes;\r\n                    parsedStack.push(parsedFrame);\r\n                }\r\n            }\r\n            // DP Constraint - exception parsed stack must be < 32KB\r\n            // remove frames from the middle to meet the threshold\r\n            var exceptionParsedStackThreshold = 32 * 1024;\r\n            if (totalSizeInBytes > exceptionParsedStackThreshold) {\r\n                var left = 0;\r\n                var right = parsedStack.length - 1;\r\n                var size = 0;\r\n                var acceptedLeft = left;\r\n                var acceptedRight = right;\r\n                while (left < right) {\r\n                    // check size\r\n                    var lSize = parsedStack[left].sizeInBytes;\r\n                    var rSize = parsedStack[right].sizeInBytes;\r\n                    size += lSize + rSize;\r\n                    if (size > exceptionParsedStackThreshold) {\r\n                        // remove extra frames from the middle\r\n                        var howMany = acceptedRight - acceptedLeft + 1;\r\n                        parsedStack.splice(acceptedLeft, howMany);\r\n                        break;\r\n                    }\r\n                    // update pointers\r\n                    acceptedLeft = left;\r\n                    acceptedRight = right;\r\n                    left++;\r\n                    right--;\r\n                }\r\n            }\r\n        }\r\n        return parsedStack;\r\n    };\r\n    return _ExceptionDetails;\r\n}(ExceptionDetails));\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function (_super) {\r\n    __extends(_StackFrame, _super);\r\n    function _StackFrame(sourceFrame, level) {\r\n        var _this = _super.call(this) || this;\r\n        _this.sizeInBytes = 0;\r\n        _this.aiDataContract = {\r\n            level: FieldType.Required,\r\n            method: FieldType.Required,\r\n            assembly: FieldType.Default,\r\n            fileName: FieldType.Default,\r\n            line: FieldType.Default\r\n        };\r\n        // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n        // types for the 2 different code paths\r\n        if (typeof sourceFrame === \"string\") {\r\n            var frame = sourceFrame;\r\n            _this.level = level;\r\n            _this.method = \"<no_method>\";\r\n            _this.assembly = strTrim(frame);\r\n            _this.fileName = \"\";\r\n            _this.line = 0;\r\n            var matches = frame.match(_StackFrame.regex);\r\n            if (matches && matches.length >= 5) {\r\n                _this.method = strTrim(matches[2]) || _this.method;\r\n                _this.fileName = strTrim(matches[4]);\r\n                _this.line = parseInt(matches[5]) || 0;\r\n            }\r\n        }\r\n        else {\r\n            _this.level = sourceFrame.level;\r\n            _this.method = sourceFrame.method;\r\n            _this.assembly = sourceFrame.assembly;\r\n            _this.fileName = sourceFrame.fileName;\r\n            _this.line = sourceFrame.line;\r\n            _this.sizeInBytes = 0;\r\n        }\r\n        _this.sizeInBytes += _this.method.length;\r\n        _this.sizeInBytes += _this.fileName.length;\r\n        _this.sizeInBytes += _this.assembly.length;\r\n        // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n        _this.sizeInBytes += _StackFrame.baseSize;\r\n        _this.sizeInBytes += _this.level.toString().length;\r\n        _this.sizeInBytes += _this.line.toString().length;\r\n        return _this;\r\n    }\r\n    _StackFrame.CreateFromInterface = function (frame) {\r\n        return new _StackFrame(frame, null /* level is available in frame interface */);\r\n    };\r\n    _StackFrame.prototype.toInterface = function () {\r\n        return {\r\n            level: this.level,\r\n            method: this.method,\r\n            assembly: this.assembly,\r\n            fileName: this.fileName,\r\n            line: this.line\r\n        };\r\n    };\r\n    // regex to match stack frames from ie/chrome/ff\r\n    // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n    _StackFrame.regex = /^([\\s]+at)?(.*?)(\\@|\\s\\(|\\s)([^\\(\\@\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n    _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n    return _StackFrame;\r\n}(StackFrame));\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { MetricData } from '../Interfaces/Contracts/Generated/MetricData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { DataPoint } from './Common/DataPoint';\r\nimport { strNotSpecified } from '../Constants';\r\nvar Metric = /** @class */ (function (_super) {\r\n    __extends(Metric, _super);\r\n    /**\r\n     * Constructs a new instance of the MetricTelemetry object\r\n     */\r\n    function Metric(logger, name, value, count, min, max, properties, measurements) {\r\n        var _this = _super.call(this) || this;\r\n        _this.aiDataContract = {\r\n            ver: FieldType.Required,\r\n            metrics: FieldType.Required,\r\n            properties: FieldType.Default\r\n        };\r\n        var dataPoint = new DataPoint();\r\n        dataPoint.count = count > 0 ? count : undefined;\r\n        dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n        dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n        dataPoint.name = DataSanitizer.sanitizeString(logger, name) || strNotSpecified;\r\n        dataPoint.value = value;\r\n        _this.metrics = [dataPoint];\r\n        _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n        _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n        return _this;\r\n    }\r\n    Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n    Metric.dataType = \"MetricData\";\r\n    return Metric;\r\n}(MetricData));\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { PageViewData } from '../Interfaces/Contracts/Generated/PageViewData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { msToTimeSpan } from '../HelperFuncs';\r\nimport { strNotSpecified } from '../Constants';\r\nvar PageView = /** @class */ (function (_super) {\r\n    __extends(PageView, _super);\r\n    /**\r\n     * Constructs a new instance of the PageEventTelemetry object\r\n     */\r\n    function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n        var _this = _super.call(this) || this;\r\n        _this.aiDataContract = {\r\n            ver: FieldType.Required,\r\n            name: FieldType.Default,\r\n            url: FieldType.Default,\r\n            duration: FieldType.Default,\r\n            properties: FieldType.Default,\r\n            measurements: FieldType.Default,\r\n            id: FieldType.Default\r\n        };\r\n        _this.id = DataSanitizer.sanitizeId(logger, id);\r\n        _this.url = DataSanitizer.sanitizeUrl(logger, url);\r\n        _this.name = DataSanitizer.sanitizeString(logger, name) || strNotSpecified;\r\n        if (!isNaN(durationMs)) {\r\n            _this.duration = msToTimeSpan(durationMs);\r\n        }\r\n        _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n        _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n        return _this;\r\n    }\r\n    PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n    PageView.dataType = \"PageviewData\";\r\n    return PageView;\r\n}(PageViewData));\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { PageViewPerfData } from '../Interfaces/Contracts/Generated/PageViewPerfData';\r\nimport { FieldType } from '../Enums';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { strNotSpecified } from '../Constants';\r\nvar PageViewPerformance = /** @class */ (function (_super) {\r\n    __extends(PageViewPerformance, _super);\r\n    /**\r\n     * Constructs a new instance of the PageEventTelemetry object\r\n     */\r\n    function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n        var _this = _super.call(this) || this;\r\n        _this.aiDataContract = {\r\n            ver: FieldType.Required,\r\n            name: FieldType.Default,\r\n            url: FieldType.Default,\r\n            duration: FieldType.Default,\r\n            perfTotal: FieldType.Default,\r\n            networkConnect: FieldType.Default,\r\n            sentRequest: FieldType.Default,\r\n            receivedResponse: FieldType.Default,\r\n            domProcessing: FieldType.Default,\r\n            properties: FieldType.Default,\r\n            measurements: FieldType.Default\r\n        };\r\n        _this.url = DataSanitizer.sanitizeUrl(logger, url);\r\n        _this.name = DataSanitizer.sanitizeString(logger, name) || strNotSpecified;\r\n        _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n        _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n        if (cs4BaseData) {\r\n            _this.domProcessing = cs4BaseData.domProcessing;\r\n            _this.duration = cs4BaseData.duration;\r\n            _this.networkConnect = cs4BaseData.networkConnect;\r\n            _this.perfTotal = cs4BaseData.perfTotal;\r\n            _this.receivedResponse = cs4BaseData.receivedResponse;\r\n            _this.sentRequest = cs4BaseData.sentRequest;\r\n        }\r\n        return _this;\r\n    }\r\n    PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n    PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n    return PageViewPerformance;\r\n}(PageViewPerfData));\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { AjaxHelperParseDependencyPath } from '../Util';\r\nimport { RemoteDependencyData as GeneratedRemoteDependencyData } from '../Interfaces/Contracts/Generated/RemoteDependencyData';\r\nimport { msToTimeSpan } from '../HelperFuncs';\r\nvar RemoteDependencyData = /** @class */ (function (_super) {\r\n    __extends(RemoteDependencyData, _super);\r\n    /**\r\n     * Constructs a new instance of the RemoteDependencyData object\r\n     */\r\n    function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n        if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n        var _this = _super.call(this) || this;\r\n        _this.aiDataContract = {\r\n            id: FieldType.Required,\r\n            ver: FieldType.Required,\r\n            name: FieldType.Default,\r\n            resultCode: FieldType.Default,\r\n            duration: FieldType.Default,\r\n            success: FieldType.Default,\r\n            data: FieldType.Default,\r\n            target: FieldType.Default,\r\n            type: FieldType.Default,\r\n            properties: FieldType.Default,\r\n            measurements: FieldType.Default,\r\n            kind: FieldType.Default,\r\n            value: FieldType.Default,\r\n            count: FieldType.Default,\r\n            min: FieldType.Default,\r\n            max: FieldType.Default,\r\n            stdDev: FieldType.Default,\r\n            dependencyKind: FieldType.Default,\r\n            dependencySource: FieldType.Default,\r\n            commandName: FieldType.Default,\r\n            dependencyTypeName: FieldType.Default\r\n        };\r\n        _this.id = id;\r\n        _this.duration = msToTimeSpan(value);\r\n        _this.success = success;\r\n        _this.resultCode = resultCode + \"\";\r\n        _this.type = DataSanitizer.sanitizeString(logger, requestAPI);\r\n        var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n        _this.data = DataSanitizer.sanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n        _this.target = DataSanitizer.sanitizeString(logger, dependencyFields.target);\r\n        if (correlationContext) {\r\n            _this.target = _this.target + \" | \" + correlationContext;\r\n        }\r\n        _this.name = DataSanitizer.sanitizeString(logger, dependencyFields.name);\r\n        _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n        _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n        return _this;\r\n    }\r\n    RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n    RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n    return RemoteDependencyData;\r\n}(GeneratedRemoteDependencyData));\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { MessageData } from '../Interfaces/Contracts/Generated/MessageData';\r\nimport { DataSanitizer } from './Common/DataSanitizer';\r\nimport { FieldType } from '../Enums';\r\nimport { strNotSpecified } from '../Constants';\r\nvar Trace = /** @class */ (function (_super) {\r\n    __extends(Trace, _super);\r\n    /**\r\n     * Constructs a new instance of the TraceTelemetry object\r\n     */\r\n    function Trace(logger, message, severityLevel, properties, measurements) {\r\n        var _this = _super.call(this) || this;\r\n        _this.aiDataContract = {\r\n            ver: FieldType.Required,\r\n            message: FieldType.Required,\r\n            severityLevel: FieldType.Default,\r\n            properties: FieldType.Default\r\n        };\r\n        message = message || strNotSpecified;\r\n        _this.message = DataSanitizer.sanitizeMessage(logger, message);\r\n        _this.properties = DataSanitizer.sanitizeProperties(logger, properties);\r\n        _this.measurements = DataSanitizer.sanitizeMeasurements(logger, measurements);\r\n        if (severityLevel) {\r\n            _this.severityLevel = severityLevel;\r\n        }\r\n        return _this;\r\n    }\r\n    Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n    Trace.dataType = \"MessageData\";\r\n    return Trace;\r\n}(MessageData));\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { DataSanitizer } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { objForEachKey, isNullOrUndefined, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"./Constants\";\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n    function TelemetryItemCreator() {\r\n    }\r\n    /**\r\n     * Create a telemetry item that the 1DS channel understands\r\n     * @param item domain specific properties; part B\r\n     * @param baseType telemetry item type. ie PageViewData\r\n     * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights.<instrumentation key>.PageView\r\n     * @param customProperties user defined custom properties; part C\r\n     * @param systemProperties system properties that are added to the context; part A\r\n     * @returns ITelemetryItem that is sent to channel\r\n     */\r\n    TelemetryItemCreator.create = function (item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n        envelopeName = DataSanitizer.sanitizeString(logger, envelopeName) || strNotSpecified;\r\n        if (isNullOrUndefined(item) ||\r\n            isNullOrUndefined(baseType) ||\r\n            isNullOrUndefined(envelopeName)) {\r\n            throw Error(\"Input doesn't contain all required fields\");\r\n        }\r\n        var telemetryItem = {\r\n            name: envelopeName,\r\n            time: toISOString(new Date()),\r\n            iKey: \"\",\r\n            ext: systemProperties ? systemProperties : {},\r\n            tags: [],\r\n            data: {},\r\n            baseType: baseType,\r\n            baseData: item // Part B\r\n        };\r\n        // Part C\r\n        if (!isNullOrUndefined(customProperties)) {\r\n            objForEachKey(customProperties, function (prop, value) {\r\n                telemetryItem.data[prop] = value;\r\n            });\r\n        }\r\n        return telemetryItem;\r\n    };\r\n    return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n    var anchorIdx = _htmlAnchorIdx;\r\n    var anchorCache = _htmlAnchorElement;\r\n    var tempAnchor = anchorCache[anchorIdx];\r\n    if (!_document.createElement) {\r\n        // Always create the temp instance if createElement is not available\r\n        tempAnchor = { host: urlParseHost(url, true) };\r\n    }\r\n    else if (!anchorCache[anchorIdx]) {\r\n        // Create and cache the unattached anchor instance \r\n        tempAnchor = anchorCache[anchorIdx] = _document.createElement('a');\r\n    }\r\n    tempAnchor.href = url;\r\n    // Move the cache index forward\r\n    anchorIdx++;\r\n    if (anchorIdx >= anchorCache.length) {\r\n        anchorIdx = 0;\r\n    }\r\n    _htmlAnchorIdx = anchorIdx;\r\n    return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n    var result;\r\n    var a = urlParseUrl(url);\r\n    if (a) {\r\n        result = a.href;\r\n    }\r\n    return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n    var result;\r\n    var a = urlParseUrl(url);\r\n    if (a) {\r\n        result = a.pathname;\r\n    }\r\n    return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n    if (method) {\r\n        return method.toUpperCase() + \" \" + absoluteUrl;\r\n    }\r\n    return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n    var fullHost = urlParseFullHost(url, inclPort);\r\n    if (fullHost) {\r\n        var match = fullHost.match(/(www[0-9]?\\.)?(.[^/:]+)(\\:[\\d]+)?/i);\r\n        if (match != null && match.length > 3 && isString(match[2]) && match[2].length > 0) {\r\n            return match[2] + (match[3] || \"\");\r\n        }\r\n    }\r\n    return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n    var result = null;\r\n    if (url) {\r\n        var match = url.match(/(\\w*):\\/\\/(.[^/:]+)(\\:[\\d]+)?/i);\r\n        if (match != null && match.length > 2 && isString(match[2]) && match[2].length > 0) {\r\n            result = match[2] || \"\";\r\n            if (inclPort && match.length > 2) {\r\n                var protocol = (match[1] || \"\").toLowerCase();\r\n                var port = match[3] || \"\";\r\n                // IE includes the standard port so pass it off if it's the same as the protocol\r\n                if (protocol === \"http\" && port === \":80\") {\r\n                    port = \"\";\r\n                }\r\n                else if (protocol === \"https\" && port === \":443\") {\r\n                    port = \"\";\r\n                }\r\n                result += port;\r\n            }\r\n        }\r\n    }\r\n    return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getPerformance, getExceptionName as coreGetExceptionName, dumpObj, isNullOrUndefined, strTrim, random32, isArray, isError, isDate, newId, generateW3CId, toISOString, arrForEach, getIEVersion, attachEvent, dateNow, uaDisallowsSameSiteNone, disableCookies as coreDisableCookies, canUseCookies as coreCanUseCookies, getCookie as coreGetCookie, setCookie as coreSetCookie, deleteCookie as coreDeleteCookie } from \"@microsoft/applicationinsights-core-js\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { DataSanitizer } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { createDomEvent } from './DomHelperFuncs';\r\nimport { stringToBoolOrDefault, msToTimeSpan, isBeaconApiSupported, isCrossOriginError, getExtensionByName } from \"./HelperFuncs\";\r\nimport { strNotSpecified } from \"./Constants\";\r\nimport { utlCanUseLocalStorage, utlCanUseSessionStorage, utlDisableStorage, utlGetSessionStorage, utlGetSessionStorageKeys, utlGetLocalStorage, utlRemoveSessionStorage, utlRemoveStorage, utlSetSessionStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { urlGetAbsoluteUrl, urlGetCompleteUrl, urlGetPathName, urlParseFullHost, urlParseHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n    \"https://dc.services.visualstudio.com/v2/track\",\r\n    \"https://breeze.aimon.applicationinsights.io/v2/track\",\r\n    \"https://dc-int.services.visualstudio.com/v2/track\"\r\n];\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n    return _internalEndpoints.indexOf(endpointUrl.toLowerCase()) !== -1;\r\n}\r\nexport var Util = {\r\n    NotSpecified: strNotSpecified,\r\n    createDomEvent: createDomEvent,\r\n    disableStorage: utlDisableStorage,\r\n    isInternalApplicationInsightsEndpoint: isInternalApplicationInsightsEndpoint,\r\n    canUseLocalStorage: utlCanUseLocalStorage,\r\n    getStorage: utlGetLocalStorage,\r\n    setStorage: utlSetLocalStorage,\r\n    removeStorage: utlRemoveStorage,\r\n    canUseSessionStorage: utlCanUseSessionStorage,\r\n    getSessionStorageKeys: utlGetSessionStorageKeys,\r\n    getSessionStorage: utlGetSessionStorage,\r\n    setSessionStorage: utlSetSessionStorage,\r\n    removeSessionStorage: utlRemoveSessionStorage,\r\n    disableCookies: coreDisableCookies,\r\n    canUseCookies: coreCanUseCookies,\r\n    disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n    setCookie: coreSetCookie,\r\n    stringToBoolOrDefault: stringToBoolOrDefault,\r\n    getCookie: coreGetCookie,\r\n    deleteCookie: coreDeleteCookie,\r\n    trim: strTrim,\r\n    newId: newId,\r\n    random32: function () {\r\n        return random32(true);\r\n    },\r\n    generateW3CId: generateW3CId,\r\n    isArray: isArray,\r\n    isError: isError,\r\n    isDate: isDate,\r\n    toISOStringForIE8: toISOString,\r\n    getIEVersion: getIEVersion,\r\n    msToTimeSpan: msToTimeSpan,\r\n    isCrossOriginError: isCrossOriginError,\r\n    dump: dumpObj,\r\n    getExceptionName: coreGetExceptionName,\r\n    addEventHandler: attachEvent,\r\n    IsBeaconApiSupported: isBeaconApiSupported,\r\n    getExtension: getExtensionByName\r\n};\r\n;\r\nexport var UrlHelper = {\r\n    parseUrl: urlParseUrl,\r\n    getAbsoluteUrl: urlGetAbsoluteUrl,\r\n    getPathName: urlGetPathName,\r\n    getCompleteUrl: urlGetCompleteUrl,\r\n    parseHost: urlParseHost,\r\n    parseFullHost: urlParseFullHost\r\n};\r\nexport var CorrelationIdHelper = {\r\n    correlationIdPrefix: \"cid-v1:\",\r\n    /**\r\n     * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n     * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n     * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n     * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n     * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n     */\r\n    canIncludeCorrelationHeader: function (config, requestUrl, currentHost) {\r\n        if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n            return false;\r\n        }\r\n        if (config && config.correlationHeaderExcludePatterns) {\r\n            for (var i = 0; i < config.correlationHeaderExcludePatterns.length; i++) {\r\n                if (config.correlationHeaderExcludePatterns[i].test(requestUrl)) {\r\n                    return false;\r\n                }\r\n            }\r\n        }\r\n        var requestHost = urlParseUrl(requestUrl).host.toLowerCase();\r\n        if (requestHost && (requestHost.indexOf(\":443\") !== -1 || requestHost.indexOf(\":80\") !== -1)) {\r\n            // [Bug #1260] IE can include the port even for http and https URLs so if present \r\n            // try and parse it to remove if it matches the default protocol port\r\n            requestHost = (urlParseFullHost(requestUrl, true) || \"\").toLowerCase();\r\n        }\r\n        if ((!config || !config.enableCorsCorrelation) && requestHost !== currentHost) {\r\n            return false;\r\n        }\r\n        var includedDomains = config && config.correlationHeaderDomains;\r\n        if (includedDomains) {\r\n            var matchExists_1;\r\n            arrForEach(includedDomains, function (domain) {\r\n                var regex = new RegExp(domain.toLowerCase().replace(/\\./g, \"\\.\").replace(/\\*/g, \".*\"));\r\n                matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n            });\r\n            if (!matchExists_1) {\r\n                return false;\r\n            }\r\n        }\r\n        var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n        if (!excludedDomains || excludedDomains.length === 0) {\r\n            return true;\r\n        }\r\n        for (var i = 0; i < excludedDomains.length; i++) {\r\n            var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\./g, \"\\.\").replace(/\\*/g, \".*\"));\r\n            if (regex.test(requestHost)) {\r\n                return false;\r\n            }\r\n        }\r\n        // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n        // Previously we always returned false for a falsy requestHost\r\n        return requestHost && requestHost.length > 0;\r\n    },\r\n    /**\r\n     * Combines target appId and target role name from response header.\r\n     */\r\n    getCorrelationContext: function (responseHeader) {\r\n        if (responseHeader) {\r\n            var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders.requestContextTargetKey);\r\n            if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n                return correlationId;\r\n            }\r\n        }\r\n    },\r\n    /**\r\n     * Gets key from correlation response header\r\n     */\r\n    getCorrelationContextValue: function (responseHeader, key) {\r\n        if (responseHeader) {\r\n            var keyValues = responseHeader.split(\",\");\r\n            for (var i = 0; i < keyValues.length; ++i) {\r\n                var keyValue = keyValues[i].split(\"=\");\r\n                if (keyValue.length === 2 && keyValue[0] === key) {\r\n                    return keyValue[1];\r\n                }\r\n            }\r\n        }\r\n    }\r\n};\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n    var target, name = commandName, data = commandName;\r\n    if (absoluteUrl && absoluteUrl.length > 0) {\r\n        var parsedUrl = urlParseUrl(absoluteUrl);\r\n        target = parsedUrl.host;\r\n        if (!name) {\r\n            if (parsedUrl.pathname != null) {\r\n                var pathName = (parsedUrl.pathname.length === 0) ? \"/\" : parsedUrl.pathname;\r\n                if (pathName.charAt(0) !== '/') {\r\n                    pathName = \"/\" + pathName;\r\n                }\r\n                data = parsedUrl.pathname;\r\n                name = DataSanitizer.sanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n            }\r\n            else {\r\n                name = DataSanitizer.sanitizeString(logger, absoluteUrl);\r\n            }\r\n        }\r\n    }\r\n    else {\r\n        target = commandName;\r\n        name = commandName;\r\n    }\r\n    return {\r\n        target: target,\r\n        name: name,\r\n        data: data\r\n    };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n    // returns the window or webworker performance object\r\n    var perf = getPerformance();\r\n    if (perf && perf.now && perf.timing) {\r\n        var now = perf.now() + perf.timing.navigationStart;\r\n        // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n        if (now > 0) {\r\n            return now;\r\n        }\r\n    }\r\n    return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n    var result = null;\r\n    if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n        result = end - start;\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nexport var DateTimeUtils = {\r\n    Now: dateTimeUtilsNow,\r\n    GetDuration: dateTimeUtilsDuration\r\n};\r\n//# sourceMappingURL=Util.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport '@microsoft/applicationinsights-shims';\r\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint } from './Util';\r\nexport { parseConnectionString, ConnectionStringParser } from './ConnectionStringParser';\r\nexport { FieldType } from './Enums';\r\nexport { RequestHeaders } from './RequestResponseHeaders';\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, strNotSpecified } from './Constants';\r\nexport { Data as AIData } from './Interfaces/Contracts/Generated/Data';\r\nexport { Base as AIBase } from './Interfaces/Contracts/Generated/Base';\r\nexport { Envelope } from './Telemetry/Common/Envelope';\r\nexport { Event } from './Telemetry/Event';\r\nexport { Exception } from './Telemetry/Exception';\r\nexport { Metric } from './Telemetry/Metric';\r\nexport { PageView } from './Telemetry/PageView';\r\nexport { PageViewData } from './Interfaces/Contracts/Generated/PageViewData';\r\nexport { RemoteDependencyData } from './Telemetry/RemoteDependencyData';\r\nexport { Trace } from './Telemetry/Trace';\r\nexport { PageViewPerformance } from './Telemetry/PageViewPerformance';\r\nexport { Data } from './Telemetry/Common/Data';\r\nexport { SeverityLevel } from './Interfaces/Contracts/Generated/SeverityLevel';\r\nexport { ConfigurationManager } from './Interfaces/IConfig';\r\nexport { ContextTagKeys } from './Interfaces/Contracts/Generated/ContextTagKeys';\r\nexport { DataSanitizer } from './Telemetry/Common/DataSanitizer';\r\nexport { TelemetryItemCreator } from './TelemetryItemCreator';\r\nexport { CtxTagKeys, Extensions } from './Interfaces/PartAExtensions';\r\nexport { DistributedTracingModes } from './Enums';\r\nexport { stringToBoolOrDefault, msToTimeSpan, isBeaconApiSupported, getExtensionByName, isCrossOriginError } from './HelperFuncs';\r\nexport { createDomEvent } from './DomHelperFuncs';\r\nexport { utlDisableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from './StorageHelperFuncs';\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from './UrlHelperFuncs';\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * The EventsDiscardedReason enumeration contains a set of values that specify the reason for discarding an event.\r\n */\r\nexport var EventsDiscardedReason = {\r\n    /**\r\n     * Unknown.\r\n     */\r\n    Unknown: 0,\r\n    /**\r\n     * Status set to non-retryable.\r\n     */\r\n    NonRetryableStatus: 1,\r\n    /**\r\n     * The event is invalid.\r\n     */\r\n    InvalidEvent: 2,\r\n    /**\r\n     * The size of the event is too large.\r\n     */\r\n    SizeLimitExceeded: 3,\r\n    /**\r\n     * The server is not accepting events from this instrumentation key.\r\n     */\r\n    KillSwitch: 4,\r\n    /**\r\n     * The event queue is full.\r\n     */\r\n    QueueFull: 5\r\n};\r\n//# sourceMappingURL=EventsDiscardedReason.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var LoggingSeverity;\r\n(function (LoggingSeverity) {\r\n    /**\r\n     * Error will be sent as internal telemetry\r\n     */\r\n    LoggingSeverity[LoggingSeverity[\"CRITICAL\"] = 1] = \"CRITICAL\";\r\n    /**\r\n     * Error will NOT be sent as internal telemetry, and will only be shown in browser console\r\n     */\r\n    LoggingSeverity[LoggingSeverity[\"WARNING\"] = 2] = \"WARNING\";\r\n})(LoggingSeverity || (LoggingSeverity = {}));\r\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\r\nexport var _InternalMessageId = {\r\n    // Non user actionable\r\n    BrowserDoesNotSupportLocalStorage: 0,\r\n    BrowserCannotReadLocalStorage: 1,\r\n    BrowserCannotReadSessionStorage: 2,\r\n    BrowserCannotWriteLocalStorage: 3,\r\n    BrowserCannotWriteSessionStorage: 4,\r\n    BrowserFailedRemovalFromLocalStorage: 5,\r\n    BrowserFailedRemovalFromSessionStorage: 6,\r\n    CannotSendEmptyTelemetry: 7,\r\n    ClientPerformanceMathError: 8,\r\n    ErrorParsingAISessionCookie: 9,\r\n    ErrorPVCalc: 10,\r\n    ExceptionWhileLoggingError: 11,\r\n    FailedAddingTelemetryToBuffer: 12,\r\n    FailedMonitorAjaxAbort: 13,\r\n    FailedMonitorAjaxDur: 14,\r\n    FailedMonitorAjaxOpen: 15,\r\n    FailedMonitorAjaxRSC: 16,\r\n    FailedMonitorAjaxSend: 17,\r\n    FailedMonitorAjaxGetCorrelationHeader: 18,\r\n    FailedToAddHandlerForOnBeforeUnload: 19,\r\n    FailedToSendQueuedTelemetry: 20,\r\n    FailedToReportDataLoss: 21,\r\n    FlushFailed: 22,\r\n    MessageLimitPerPVExceeded: 23,\r\n    MissingRequiredFieldSpecification: 24,\r\n    NavigationTimingNotSupported: 25,\r\n    OnError: 26,\r\n    SessionRenewalDateIsZero: 27,\r\n    SenderNotInitialized: 28,\r\n    StartTrackEventFailed: 29,\r\n    StopTrackEventFailed: 30,\r\n    StartTrackFailed: 31,\r\n    StopTrackFailed: 32,\r\n    TelemetrySampledAndNotSent: 33,\r\n    TrackEventFailed: 34,\r\n    TrackExceptionFailed: 35,\r\n    TrackMetricFailed: 36,\r\n    TrackPVFailed: 37,\r\n    TrackPVFailedCalc: 38,\r\n    TrackTraceFailed: 39,\r\n    TransmissionFailed: 40,\r\n    FailedToSetStorageBuffer: 41,\r\n    FailedToRestoreStorageBuffer: 42,\r\n    InvalidBackendResponse: 43,\r\n    FailedToFixDepricatedValues: 44,\r\n    InvalidDurationValue: 45,\r\n    TelemetryEnvelopeInvalid: 46,\r\n    CreateEnvelopeError: 47,\r\n    // User actionable\r\n    CannotSerializeObject: 48,\r\n    CannotSerializeObjectNonSerializable: 49,\r\n    CircularReferenceDetected: 50,\r\n    ClearAuthContextFailed: 51,\r\n    ExceptionTruncated: 52,\r\n    IllegalCharsInName: 53,\r\n    ItemNotInArray: 54,\r\n    MaxAjaxPerPVExceeded: 55,\r\n    MessageTruncated: 56,\r\n    NameTooLong: 57,\r\n    SampleRateOutOfRange: 58,\r\n    SetAuthContextFailed: 59,\r\n    SetAuthContextFailedAccountName: 60,\r\n    StringValueTooLong: 61,\r\n    StartCalledMoreThanOnce: 62,\r\n    StopCalledWithoutStart: 63,\r\n    TelemetryInitializerFailed: 64,\r\n    TrackArgumentsNotSpecified: 65,\r\n    UrlTooLong: 66,\r\n    SessionStorageBufferFull: 67,\r\n    CannotAccessCookie: 68,\r\n    IdTooLong: 69,\r\n    InvalidEvent: 70,\r\n    FailedMonitorAjaxSetRequestHeader: 71,\r\n    SendBrowserInfoOnUserInit: 72,\r\n    PluginException: 73,\r\n    NotificationException: 74,\r\n    SnippetScriptLoadFailure: 99,\r\n    InvalidInstrumentationKey: 100,\r\n    CannotParseAiBlobValue: 101,\r\n    InvalidContentBlob: 102,\r\n    TrackPageActionEventFailed: 103\r\n};\r\n//# sourceMappingURL=LoggingEnums.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { BaseCore } from './BaseCore';\r\nimport { EventsDiscardedReason } from \"../JavaScriptSDK.Enums/EventsDiscardedReason\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _InternalLogMessage, DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nimport { arrForEach, isNullOrUndefined, toISOString, throwError } from \"./HelperFuncs\";\r\n\"use strict\";\r\nvar AppInsightsCore = /** @class */ (function (_super) {\r\n    __extends(AppInsightsCore, _super);\r\n    function AppInsightsCore() {\r\n        var _this = _super.call(this) || this;\r\n        dynamicProto(AppInsightsCore, _this, function (_self, _base) {\r\n            _self.initialize = function (config, extensions, logger, notificationManager) {\r\n                _base.initialize(config, extensions, logger || new DiagnosticLogger(config), notificationManager || new NotificationManager(config));\r\n            };\r\n            _self.track = function (telemetryItem) {\r\n                doPerf(_self.getPerfMgr(), function () { return \"AppInsightsCore:track\"; }, function () {\r\n                    if (telemetryItem === null) {\r\n                        _notifyInvalidEvent(telemetryItem);\r\n                        // throw error\r\n                        throwError(\"Invalid telemetry item\");\r\n                    }\r\n                    // do basic validation before sending it through the pipeline\r\n                    _validateTelemetryItem(telemetryItem);\r\n                    _base.track(telemetryItem);\r\n                }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n            };\r\n            /**\r\n             * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n             * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n             * called.\r\n             * @param {INotificationListener} listener - An INotificationListener object.\r\n             */\r\n            _self.addNotificationListener = function (listener) {\r\n                var manager = _self.getNotifyMgr();\r\n                if (manager) {\r\n                    manager.addNotificationListener(listener);\r\n                }\r\n            };\r\n            /**\r\n             * Removes all instances of the listener.\r\n             * @param {INotificationListener} listener - INotificationListener to remove.\r\n             */\r\n            _self.removeNotificationListener = function (listener) {\r\n                var manager = _self.getNotifyMgr();\r\n                if (manager) {\r\n                    manager.removeNotificationListener(listener);\r\n                }\r\n            };\r\n            /**\r\n             * Periodically check logger.queue for\r\n             */\r\n            _self.pollInternalLogs = function (eventName) {\r\n                var interval = _self.config.diagnosticLogInterval;\r\n                if (!interval || !(interval > 0)) {\r\n                    interval = 10000;\r\n                }\r\n                return setInterval(function () {\r\n                    var queue = _self.logger ? _self.logger.queue : [];\r\n                    arrForEach(queue, function (logMessage) {\r\n                        var item = {\r\n                            name: eventName ? eventName : \"InternalMessageId: \" + logMessage.messageId,\r\n                            iKey: _self.config.instrumentationKey,\r\n                            time: toISOString(new Date()),\r\n                            baseType: _InternalLogMessage.dataType,\r\n                            baseData: { message: logMessage.message }\r\n                        };\r\n                        _self.track(item);\r\n                    });\r\n                    queue.length = 0;\r\n                }, interval);\r\n            };\r\n            function _validateTelemetryItem(telemetryItem) {\r\n                if (isNullOrUndefined(telemetryItem.name)) {\r\n                    _notifyInvalidEvent(telemetryItem);\r\n                    throw Error(\"telemetry name required\");\r\n                }\r\n            }\r\n            function _notifyInvalidEvent(telemetryItem) {\r\n                var manager = _self.getNotifyMgr();\r\n                if (manager) {\r\n                    manager.eventsDiscarded([telemetryItem], EventsDiscardedReason.InvalidEvent);\r\n                }\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n    return AppInsightsCore;\r\n}(BaseCore));\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { objCreateFn } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nimport { ChannelController } from './ChannelController';\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\nimport { initializePlugins, sortPlugins } from './TelemetryHelpers';\r\nimport { PerfManager } from \"./PerfManager\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { arrForEach, isNullOrUndefined, toISOString, getSetValue, setValue, throwError, isNotTruthy } from \"./HelperFuncs\";\r\nimport { strExtensionConfig, strIKey } from \"./Constants\";\r\nvar validationError = \"Extensions must provide callback to initialize\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar BaseCore = /** @class */ (function () {\r\n    function BaseCore() {\r\n        var _isInitialized = false;\r\n        var _eventQueue;\r\n        var _channelController;\r\n        var _notificationManager;\r\n        var _perfManager;\r\n        var _cookieManager;\r\n        dynamicProto(BaseCore, this, function (_self) {\r\n            _self._extensions = new Array();\r\n            _channelController = new ChannelController();\r\n            _self.logger = objCreateFn({\r\n                throwInternal: function (severity, msgId, msg, properties, isUserAct) {\r\n                    if (isUserAct === void 0) { isUserAct = false; }\r\n                },\r\n                warnToConsole: function (message) { },\r\n                resetInternalMessageCount: function () { }\r\n            });\r\n            _eventQueue = [];\r\n            _self.isInitialized = function () { return _isInitialized; };\r\n            _self.initialize = function (config, extensions, logger, notificationManager) {\r\n                // Make sure core is only initialized once\r\n                if (_self.isInitialized()) {\r\n                    throwError(\"Core should not be initialized more than once\");\r\n                }\r\n                if (!config || isNullOrUndefined(config.instrumentationKey)) {\r\n                    throwError(\"Please provide instrumentation key\");\r\n                }\r\n                _notificationManager = notificationManager;\r\n                // For backward compatibility only\r\n                _self[strNotificationManager] = notificationManager;\r\n                _self.config = config || {};\r\n                config.extensions = isNullOrUndefined(config.extensions) ? [] : config.extensions;\r\n                // add notification to the extensions in the config so other plugins can access it\r\n                var extConfig = getSetValue(config, strExtensionConfig);\r\n                extConfig.NotificationManager = notificationManager;\r\n                if (logger) {\r\n                    _self.logger = logger;\r\n                }\r\n                // Concat all available extensions\r\n                var allExtensions = [];\r\n                allExtensions.push.apply(allExtensions, extensions.concat(config.extensions));\r\n                allExtensions = sortPlugins(allExtensions);\r\n                var coreExtensions = [];\r\n                var channelExtensions = [];\r\n                // Check if any two extensions have the same priority, then warn to console\r\n                // And extract the local extensions from the \r\n                var extPriorities = {};\r\n                // Extension validation\r\n                arrForEach(allExtensions, function (ext) {\r\n                    if (isNullOrUndefined(ext) || isNullOrUndefined(ext.initialize)) {\r\n                        throwError(validationError);\r\n                    }\r\n                    var extPriority = ext.priority;\r\n                    var identifier = ext.identifier;\r\n                    if (ext && extPriority) {\r\n                        if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n                            logger.warnToConsole(\"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n                        }\r\n                        else {\r\n                            // set a value\r\n                            extPriorities[extPriority] = identifier;\r\n                        }\r\n                    }\r\n                    // Split extensions to core and channelController\r\n                    if (!extPriority || extPriority < _channelController.priority) {\r\n                        // Add to core extension that will be managed by BaseCore\r\n                        coreExtensions.push(ext);\r\n                    }\r\n                    else {\r\n                        // Add all other extensions to be managed by the channel controller\r\n                        channelExtensions.push(ext);\r\n                    }\r\n                });\r\n                // Validation complete\r\n                // Add the channelController to the complete extension collection and\r\n                // to the end of the core extensions\r\n                allExtensions.push(_channelController);\r\n                coreExtensions.push(_channelController);\r\n                // Sort the complete set of extensions by priority\r\n                allExtensions = sortPlugins(allExtensions);\r\n                _self._extensions = allExtensions;\r\n                // initialize channel controller first, this will initialize all channel plugins\r\n                initializePlugins(new ProcessTelemetryContext([_channelController], config, _self), allExtensions);\r\n                initializePlugins(new ProcessTelemetryContext(coreExtensions, config, _self), allExtensions);\r\n                // Now reset the extensions to just those being managed by Basecore\r\n                _self._extensions = coreExtensions;\r\n                if (_self.getTransmissionControls().length === 0) {\r\n                    throwError(\"No channels available\");\r\n                }\r\n                _isInitialized = true;\r\n                _self.releaseQueue();\r\n            };\r\n            _self.getTransmissionControls = function () {\r\n                return _channelController.getChannelControls();\r\n            };\r\n            _self.track = function (telemetryItem) {\r\n                // setup default iKey if not passed in\r\n                setValue(telemetryItem, strIKey, _self.config.instrumentationKey, null, isNotTruthy);\r\n                // add default timestamp if not passed in\r\n                setValue(telemetryItem, \"time\", toISOString(new Date()), null, isNotTruthy);\r\n                // Common Schema 4.0\r\n                setValue(telemetryItem, \"ver\", \"4.0\", null, isNullOrUndefined);\r\n                if (_self.isInitialized()) {\r\n                    // Process the telemetry plugin chain\r\n                    _self.getProcessTelContext().processNext(telemetryItem);\r\n                }\r\n                else {\r\n                    // Queue events until all extensions are initialized\r\n                    _eventQueue.push(telemetryItem);\r\n                }\r\n            };\r\n            _self.getProcessTelContext = function () {\r\n                var extensions = _self._extensions;\r\n                var thePlugins = extensions;\r\n                // invoke any common telemetry processors before sending through pipeline\r\n                if (!extensions || extensions.length === 0) {\r\n                    // Pass to Channel controller so data is sent to correct channel queues\r\n                    thePlugins = [_channelController];\r\n                }\r\n                return new ProcessTelemetryContext(thePlugins, _self.config, _self);\r\n            };\r\n            _self.getNotifyMgr = function () {\r\n                if (!_notificationManager) {\r\n                    // Create Dummy notification manager\r\n                    _notificationManager = objCreateFn({\r\n                        addNotificationListener: function (listener) { },\r\n                        removeNotificationListener: function (listener) { },\r\n                        eventsSent: function (events) { },\r\n                        eventsDiscarded: function (events, reason) { },\r\n                        eventsSendRequest: function (sendReason, isAsync) { }\r\n                    });\r\n                    // For backward compatibility only\r\n                    _self[strNotificationManager] = _notificationManager;\r\n                }\r\n                return _notificationManager;\r\n            };\r\n            _self.getCookieMgr = function () {\r\n                if (!_cookieManager) {\r\n                    _cookieManager = createCookieMgr(_self.config, _self.logger);\r\n                }\r\n                return _cookieManager;\r\n            };\r\n            _self.setCookieMgr = function (cookieMgr) {\r\n                _cookieManager = cookieMgr;\r\n            };\r\n            _self.getPerfMgr = function () {\r\n                if (!_perfManager) {\r\n                    if (_self.config && _self.config.enablePerfMgr) {\r\n                        _perfManager = new PerfManager(_self.getNotifyMgr());\r\n                    }\r\n                }\r\n                return _perfManager;\r\n            };\r\n            _self.setPerfMgr = function (perfMgr) {\r\n                _perfManager = perfMgr;\r\n            };\r\n            _self.eventCnt = function () {\r\n                return _eventQueue.length;\r\n            };\r\n            _self.releaseQueue = function () {\r\n                if (_eventQueue.length > 0) {\r\n                    arrForEach(_eventQueue, function (event) {\r\n                        _self.getProcessTelContext().processNext(event);\r\n                    });\r\n                    _eventQueue = [];\r\n                }\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for BaseCore.prototype.initialize.\r\n// Removed Stub for BaseCore.prototype.getTransmissionControls.\r\n// Removed Stub for BaseCore.prototype.track.\r\n// Removed Stub for BaseCore.prototype.getProcessTelContext.\r\n// Removed Stub for BaseCore.prototype.getNotifyMgr.\r\n// Removed Stub for BaseCore.prototype.getCookieMgr.\r\n// Removed Stub for BaseCore.prototype.setCookieMgr.\r\n// Removed Stub for BaseCore.prototype.getPerfMgr.\r\n// Removed Stub for BaseCore.prototype.setPerfMgr.\r\n// Removed Stub for BaseCore.prototype.eventCnt.\r\n// Removed Stub for BaseCore.prototype.releaseQueue.\r\n    return BaseCore;\r\n}());\r\nexport { BaseCore };\r\n//# sourceMappingURL=BaseCore.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\nimport { isFunction, isNullOrUndefined, setValue } from \"./HelperFuncs\";\r\nimport { strExtensionConfig } from \"./Constants\";\r\nvar strGetPlugin = \"getPlugin\";\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n    function BaseTelemetryPlugin() {\r\n        var _self = this;\r\n        var _isinitialized = false;\r\n        var _rootCtx = null; // Used as the root context, holding the current config and initialized core\r\n        var _nextPlugin = null; // Used for backward compatibility where plugins don't call the main pipeline\r\n        _self.core = null;\r\n        _self.diagLog = function (itemCtx) {\r\n            return _self._getTelCtx(itemCtx).diagLog();\r\n        };\r\n        _self.isInitialized = function () {\r\n            return _isinitialized;\r\n        };\r\n        _self.setInitialized = function (isInitialized) {\r\n            _isinitialized = isInitialized;\r\n        };\r\n        // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n        // Sub-classes of this base class *should* not be relying on this value and instead\r\n        // should use processNext() function. If you require access to the plugin use the\r\n        // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n        _self.setNextPlugin = function (next) {\r\n            _nextPlugin = next;\r\n        };\r\n        _self.processNext = function (env, itemCtx) {\r\n            if (itemCtx) {\r\n                // Normal core execution sequence\r\n                itemCtx.processNext(env);\r\n            }\r\n            else if (_nextPlugin && isFunction(_nextPlugin.processTelemetry)) {\r\n                // Looks like backward compatibility or out of band processing. And as it looks \r\n                // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n                _nextPlugin.processTelemetry(env, null);\r\n            }\r\n        };\r\n        _self._getTelCtx = function (currentCtx) {\r\n            if (currentCtx === void 0) { currentCtx = null; }\r\n            var itemCtx = currentCtx;\r\n            if (!itemCtx) {\r\n                var rootCtx = _rootCtx || new ProcessTelemetryContext(null, {}, _self.core);\r\n                // tslint:disable-next-line: prefer-conditional-expression\r\n                if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n                    // Looks like a chain object\r\n                    itemCtx = rootCtx.createNew(null, _nextPlugin[strGetPlugin]);\r\n                }\r\n                else {\r\n                    itemCtx = rootCtx.createNew(null, _nextPlugin);\r\n                }\r\n            }\r\n            return itemCtx;\r\n        };\r\n        _self._baseTelInit = function (config, core, extensions, pluginChain) {\r\n            if (config) {\r\n                // Make sure the extensionConfig exists\r\n                setValue(config, strExtensionConfig, [], null, isNullOrUndefined);\r\n            }\r\n            if (!pluginChain && core) {\r\n                // Get the first plugin from the core\r\n                pluginChain = core.getProcessTelContext().getNext();\r\n            }\r\n            var nextPlugin = _nextPlugin;\r\n            if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n                // If it looks like a proxy/chain then get the plugin\r\n                nextPlugin = _nextPlugin[strGetPlugin]();\r\n            }\r\n            // Support legacy plugins where core was defined as a property\r\n            _self.core = core;\r\n            _rootCtx = new ProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n            _isinitialized = true;\r\n        };\r\n    }\r\n    BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n        this._baseTelInit(config, core, extensions, pluginChain);\r\n    };\r\n    return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nimport { BaseTelemetryPlugin } from './BaseTelemetryPlugin';\r\nimport { ProcessTelemetryContext } from './ProcessTelemetryContext';\r\nimport { initializePlugins } from './TelemetryHelpers';\r\nimport { arrForEach, objDefineAccessors, throwError } from \"./HelperFuncs\";\r\nvar ChannelControllerPriority = 500;\r\nvar ChannelValidationMessage = \"Channel has invalid priority\";\r\nvar ChannelController = /** @class */ (function (_super) {\r\n    __extends(ChannelController, _super);\r\n    function ChannelController() {\r\n        var _this = _super.call(this) || this;\r\n        _this.identifier = \"ChannelControllerPlugin\";\r\n        _this.priority = ChannelControllerPriority; // in reserved range 100 to 200\r\n        var _channelQueue;\r\n        dynamicProto(ChannelController, _this, function (_self, _base) {\r\n            _self.setNextPlugin = function (next) {\r\n                // The Channel controller is last in pipeline\r\n            };\r\n            _self.processTelemetry = function (item, itemCtx) {\r\n                if (_channelQueue) {\r\n                    arrForEach(_channelQueue, function (queues) {\r\n                        // pass on to first item in queue\r\n                        if (queues.length > 0) {\r\n                            // Copying the item context as we could have mutiple chains that are executing asynchronously\r\n                            // and calling _getDefTelCtx as it's possible that the caller doesn't pass any context\r\n                            var chainCtx = _this._getTelCtx(itemCtx).createNew(queues);\r\n                            chainCtx.processNext(item);\r\n                        }\r\n                    });\r\n                }\r\n            };\r\n            _self.getChannelControls = function () {\r\n                return _channelQueue;\r\n            };\r\n            _self.initialize = function (config, core, extensions) {\r\n                if (_self.isInitialized()) {\r\n                    // already initialized\r\n                    return;\r\n                }\r\n                _base.initialize(config, core, extensions);\r\n                _createChannelQueues((config || {}).channels, extensions);\r\n                // Initialize the Queues\r\n                arrForEach(_channelQueue, function (queue) { return initializePlugins(new ProcessTelemetryContext(queue, config, core), extensions); });\r\n            };\r\n        });\r\n        function _checkQueuePriority(queue) {\r\n            arrForEach(queue, function (queueItem) {\r\n                if (queueItem.priority < ChannelControllerPriority) {\r\n                    throwError(ChannelValidationMessage + queueItem.identifier);\r\n                }\r\n            });\r\n        }\r\n        function _addChannelQueue(queue) {\r\n            if (queue && queue.length > 0) {\r\n                queue = queue.sort(function (a, b) {\r\n                    return a.priority - b.priority;\r\n                });\r\n                _checkQueuePriority(queue);\r\n                _channelQueue.push(queue);\r\n            }\r\n        }\r\n        function _createChannelQueues(channels, extensions) {\r\n            _channelQueue = [];\r\n            if (channels) {\r\n                // Add and sort the configuration channel queues\r\n                arrForEach(channels, function (queue) { return _addChannelQueue(queue); });\r\n            }\r\n            if (extensions) {\r\n                // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\r\n                var extensionQueue_1 = [];\r\n                arrForEach(extensions, function (plugin) {\r\n                    if (plugin.priority > ChannelControllerPriority) {\r\n                        extensionQueue_1.push(plugin);\r\n                    }\r\n                });\r\n                _addChannelQueue(extensionQueue_1);\r\n            }\r\n        }\r\n        return _this;\r\n    }\r\n// Removed Stub for ChannelController.prototype.processTelemetry.\r\n    ;\r\n// Removed Stub for ChannelController.prototype.getChannelControls.\r\n// Removed Stub for ChannelController.prototype.initialize.\r\n    /**\r\n     * Static constructor, attempt to create accessors\r\n     */\r\n    // tslint:disable-next-line\r\n    ChannelController._staticInit = (function () {\r\n        var proto = ChannelController.prototype;\r\n        // Dynamically create get/set property accessors\r\n        objDefineAccessors(proto, \"ChannelControls\", proto.getChannelControls);\r\n        objDefineAccessors(proto, \"channelQueue\", proto.getChannelControls);\r\n    })();\r\n    return ChannelController;\r\n}(BaseTelemetryPlugin));\r\nexport { ChannelController };\r\n//# sourceMappingURL=ChannelController.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var strIKey = \"iKey\";\r\nexport var strExtensionConfig = \"extensionConfig\";\r\n//# sourceMappingURL=Constants.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _InternalMessageId, LoggingSeverity } from '../JavaScriptSDK.Enums/LoggingEnums';\r\nimport { dumpObj, getDocument, getLocation, getNavigator, isIE } from './EnvUtils';\r\nimport { arrForEach, dateNow, getExceptionName, isFunction, isNotNullOrUndefined, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, setValue, strContains, strEndsWith, strTrim } from \"./HelperFuncs\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strEnabled = \"enabled\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar strEmpty = \"\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc = getDocument();\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nexport function _gblCookieMgr(config, logger) {\r\n    // Stash the global instance against the BaseCookieMgr class\r\n    var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n    if (!inst) {\r\n        // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n        // that ultimately is never used\r\n        inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n        _globalCookieConfig[strConfigCookieMgr] = inst;\r\n    }\r\n    return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n    if (cookieMgr) {\r\n        return cookieMgr.isEnabled();\r\n    }\r\n    return true;\r\n}\r\nfunction _createCookieMgrConfig(rootConfig) {\r\n    var cookieMgrCfg = rootConfig.cookieCfg = rootConfig.cookieCfg || {};\r\n    // Sets the values from the root config if not already present on the cookieMgrCfg\r\n    setValue(cookieMgrCfg, \"domain\", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);\r\n    setValue(cookieMgrCfg, \"path\", rootConfig.cookiePath || \"/\", null, isNullOrUndefined);\r\n    if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {\r\n        // Set the enabled from the provided setting or the legacy root values\r\n        var cookieEnabled = void 0;\r\n        if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n            cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n        }\r\n        if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n            cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n        }\r\n        cookieMgrCfg[strEnabled] = cookieEnabled;\r\n    }\r\n    return cookieMgrCfg;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n    var cookieMgr;\r\n    if (core) {\r\n        // Always returns an instance\r\n        cookieMgr = core.getCookieMgr();\r\n    }\r\n    else if (config) {\r\n        var cookieCfg = (config || {}).cookieCfg;\r\n        if (cookieCfg[strConfigCookieMgr]) {\r\n            cookieMgr = cookieCfg[strConfigCookieMgr];\r\n        }\r\n        else {\r\n            cookieMgr = createCookieMgr(config);\r\n        }\r\n    }\r\n    if (!cookieMgr) {\r\n        // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n        cookieMgr = _gblCookieMgr(config, (core || {}).logger);\r\n    }\r\n    return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n    var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);\r\n    var _path = cookieMgrConfig.path || \"/\";\r\n    var _domain = cookieMgrConfig.domain;\r\n    // Explicitly checking against false, so that setting to undefined will === true\r\n    var _enabled = cookieMgrConfig[strEnabled] !== false;\r\n    var cookieMgr = {\r\n        isEnabled: function () {\r\n            var enabled = _enabled && areCookiesSupported(logger);\r\n            // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n            // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n            var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n            if (enabled && gblManager && cookieMgr !== gblManager) {\r\n                // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n                // As the global (deprecated) functions may have been called (for backward compatibility)\r\n                enabled = _isMgrEnabled(gblManager);\r\n            }\r\n            return enabled;\r\n        },\r\n        setEnabled: function (value) {\r\n            // Explicitly checking against false, so that setting to undefined will === true\r\n            _enabled = value !== false;\r\n        },\r\n        set: function (name, value, maxAgeSec, domain, path) {\r\n            if (_isMgrEnabled(cookieMgr)) {\r\n                var values = {};\r\n                var theValue = strTrim(value || strEmpty);\r\n                var idx = theValue.indexOf(\";\");\r\n                if (idx !== -1) {\r\n                    theValue = strTrim(value.substring(0, idx));\r\n                    values = _extractParts(value.substring(idx + 1));\r\n                }\r\n                // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n                setValue(values, \"domain\", domain || _domain, isTruthy, isUndefined);\r\n                if (!isNullOrUndefined(maxAgeSec)) {\r\n                    var _isIE = isIE();\r\n                    if (isUndefined(values[strExpires])) {\r\n                        var nowMs = dateNow();\r\n                        // Only add expires if not already present\r\n                        var expireMs = nowMs + (maxAgeSec * 1000);\r\n                        // Sanity check, if zero or -ve then ignore\r\n                        if (expireMs > 0) {\r\n                            var expiry = new Date();\r\n                            expiry.setTime(expireMs);\r\n                            setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || strEmpty, isTruthy);\r\n                        }\r\n                    }\r\n                    if (!_isIE) {\r\n                        // Only replace if not already present\r\n                        setValue(values, \"max-age\", strEmpty + maxAgeSec, null, isUndefined);\r\n                    }\r\n                }\r\n                var location_1 = getLocation();\r\n                if (location_1 && location_1.protocol === \"https:\") {\r\n                    setValue(values, \"secure\", null, null, isUndefined);\r\n                    // Only set same site if not also secure\r\n                    if (_allowUaSameSite === null) {\r\n                        _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {}).userAgent);\r\n                    }\r\n                    if (_allowUaSameSite) {\r\n                        setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n                    }\r\n                }\r\n                setValue(values, \"path\", path || _path, null, isUndefined);\r\n                var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n                setCookieFn(name, _formatCookieValue(theValue, values));\r\n            }\r\n        },\r\n        get: function (name) {\r\n            var value = strEmpty;\r\n            if (_isMgrEnabled(cookieMgr)) {\r\n                value = (cookieMgrConfig.getCookie || _getCookieValue)(name);\r\n            }\r\n            return value;\r\n        },\r\n        del: function (name, path) {\r\n            if (_isMgrEnabled(cookieMgr)) {\r\n                // Only remove the cookie if the manager and cookie support has not been disabled\r\n                cookieMgr.purge(name, path);\r\n            }\r\n        },\r\n        purge: function (name, path) {\r\n            if (areCookiesSupported(logger)) {\r\n                // Setting the expiration date in the past immediately removes the cookie\r\n                var values = (_a = {},\r\n                    _a[\"path\"] = path ? path : \"/\",\r\n                    _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n                    _a);\r\n                if (!isIE()) {\r\n                    // Set max age to expire now\r\n                    values[\"max-age\"] = \"0\";\r\n                }\r\n                var delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n                delCookie(name, _formatCookieValue(strEmpty, values));\r\n            }\r\n            var _a;\r\n        }\r\n    };\r\n    // Associated this cookie manager with the config\r\n    cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n    return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n    if (_supportsCookies === null) {\r\n        _supportsCookies = false;\r\n        try {\r\n            var doc = _doc || {};\r\n            _supportsCookies = doc[strCookie] !== undefined;\r\n        }\r\n        catch (e) {\r\n            logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotAccessCookie, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n        }\r\n    }\r\n    return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n    var values = {};\r\n    if (theValue && theValue.length) {\r\n        var parts = strTrim(theValue).split(\";\");\r\n        arrForEach(parts, function (thePart) {\r\n            thePart = strTrim(thePart || strEmpty);\r\n            if (thePart) {\r\n                var idx = thePart.indexOf(\"=\");\r\n                if (idx === -1) {\r\n                    values[thePart] = null;\r\n                }\r\n                else {\r\n                    values[strTrim(thePart.substring(0, idx))] = strTrim(thePart.substring(idx + 1));\r\n                }\r\n            }\r\n        });\r\n    }\r\n    return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n    if (isFunction(theDate[func])) {\r\n        return theDate[func]();\r\n    }\r\n    return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n    var cookieValue = value || strEmpty;\r\n    objForEachKey(values, function (name, theValue) {\r\n        cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : strEmpty);\r\n    });\r\n    return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n    var cookieValue = strEmpty;\r\n    if (_doc) {\r\n        var theCookie = _doc[strCookie] || strEmpty;\r\n        if (_parsedCookieValue !== theCookie) {\r\n            _cookieCache = _extractParts(theCookie);\r\n            _parsedCookieValue = theCookie;\r\n        }\r\n        cookieValue = strTrim(_cookieCache[name] || strEmpty);\r\n    }\r\n    return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n    if (_doc) {\r\n        _doc[strCookie] = name + \"=\" + cookieValue;\r\n    }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n    if (!isString(userAgent)) {\r\n        return false;\r\n    }\r\n    // Cover all iOS based browsers here. This includes:\r\n    // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n    // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n    // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n    // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n    if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n        return true;\r\n    }\r\n    // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n    // - Safari on Mac OS X\r\n    // This does not include:\r\n    // - Internal browser on Mac OS X\r\n    // - Chrome on Mac OS X\r\n    // - Chromium on Mac OS X\r\n    // Because they do not use the Mac OS networking stack.\r\n    if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n        return true;\r\n    }\r\n    // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n    // - Internal browser on Mac OS X\r\n    // This does not include:\r\n    // - Safari on Mac OS X\r\n    // - Chrome on Mac OS X\r\n    // - Chromium on Mac OS X\r\n    // Because they do not use the Mac OS networking stack.\r\n    if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n        return true;\r\n    }\r\n    // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n    // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n    // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n    if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n        return true;\r\n    }\r\n    // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n    // that don't specify their Chrome version as lacking support for SameSite=None.\r\n    if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n        return true;\r\n    }\r\n    // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n    // NB: this rule isn't complete - you need regex to make a complete rule.\r\n    // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n    if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n        return true;\r\n    }\r\n    return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { objCreateFn, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _gblCookieMgr } from \"./CookieMgr\";\r\nimport { getWindow, getDocument, getPerformance, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, arrIndexOf, arrMap, arrReduce, attachEvent, dateNow, detachEvent, hasOwnProperty, isArray, isBoolean, isDate, isError, isFunction, isNullOrUndefined, isNumber, isObject, isString, isTypeof, isUndefined, objDefineAccessors, objKeys, strTrim, toISOString } from \"./HelperFuncs\";\r\nimport { randomValue, random32, mwcRandomSeed, mwcRandom32 } from \"./RandomHelper\";\r\nvar _cookieMgrs = null;\r\nvar _canUseCookies; // legacy supported config\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback) {\r\n    var result = false;\r\n    var w = getWindow();\r\n    if (w) {\r\n        result = attachEvent(w, eventName, callback);\r\n        result = attachEvent(w[\"body\"], eventName, callback) || result;\r\n    }\r\n    var doc = getDocument();\r\n    if (doc) {\r\n        result = EventHelper.Attach(doc, eventName, callback) || result;\r\n    }\r\n    return result;\r\n}\r\nexport function newGuid() {\r\n    function randomHexDigit() {\r\n        return randomValue(15); // Get a random value from 0..15\r\n    }\r\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(GuidRegex, function (c) {\r\n        var r = (randomHexDigit() | 0), v = (c === 'x' ? r : r & 0x3 | 0x8);\r\n        return v.toString(16);\r\n    });\r\n}\r\n/**\r\n * Return the current value of the Performance Api now() function (if available) and fallback to dateNow() if it is unavailable (IE9 or less)\r\n * https://caniuse.com/#search=performance.now\r\n */\r\nexport function perfNow() {\r\n    var perf = getPerformance();\r\n    if (perf && perf.now) {\r\n        return perf.now();\r\n    }\r\n    return dateNow();\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n    if (maxLength === void 0) { maxLength = 22; }\r\n    var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n    // Start with an initial random number, consuming the value in reverse byte order\r\n    var number = random32() >>> 0; // Make sure it's a +ve number\r\n    var chars = 0;\r\n    var result = \"\";\r\n    while (result.length < maxLength) {\r\n        chars++;\r\n        result += base64chars.charAt(number & 0x3F);\r\n        number >>>= 6; // Zero fill with right shift\r\n        if (chars === 5) {\r\n            // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n            // So add on another 30 bits and make sure it's +ve\r\n            number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n            chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n        }\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n    if (value && search) {\r\n        var len = value.length;\r\n        var start = len - search.length;\r\n        return value.substring(start >= 0 ? start : 0, len) === search;\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n    var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n    // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n    var oct = \"\", tmp;\r\n    for (var a = 0; a < 4; a++) {\r\n        tmp = random32();\r\n        oct +=\r\n            hexValues[tmp & 0xF] +\r\n                hexValues[tmp >> 4 & 0xF] +\r\n                hexValues[tmp >> 8 & 0xF] +\r\n                hexValues[tmp >> 12 & 0xF] +\r\n                hexValues[tmp >> 16 & 0xF] +\r\n                hexValues[tmp >> 20 & 0xF] +\r\n                hexValues[tmp >> 24 & 0xF] +\r\n                hexValues[tmp >> 28 & 0xF];\r\n    }\r\n    // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n    var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n    return oct.substr(0, 8) + oct.substr(9, 4) + \"4\" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);\r\n}\r\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n */\r\nexport var CoreUtils = {\r\n    _canUseCookies: undefined,\r\n    isTypeof: isTypeof,\r\n    isUndefined: isUndefined,\r\n    isNullOrUndefined: isNullOrUndefined,\r\n    hasOwnProperty: hasOwnProperty,\r\n    isFunction: isFunction,\r\n    isObject: isObject,\r\n    isDate: isDate,\r\n    isArray: isArray,\r\n    isError: isError,\r\n    isString: isString,\r\n    isNumber: isNumber,\r\n    isBoolean: isBoolean,\r\n    toISOString: toISOString,\r\n    arrForEach: arrForEach,\r\n    arrIndexOf: arrIndexOf,\r\n    arrMap: arrMap,\r\n    arrReduce: arrReduce,\r\n    strTrim: strTrim,\r\n    objCreate: objCreateFn,\r\n    objKeys: objKeys,\r\n    objDefineAccessors: objDefineAccessors,\r\n    addEventHandler: addEventHandler,\r\n    dateNow: dateNow,\r\n    isIE: isIE,\r\n    disableCookies: disableCookies,\r\n    newGuid: newGuid,\r\n    perfNow: perfNow,\r\n    newId: newId,\r\n    randomValue: randomValue,\r\n    random32: random32,\r\n    mwcRandomSeed: mwcRandomSeed,\r\n    mwcRandom32: mwcRandom32,\r\n    generateW3CId: generateW3CId\r\n};\r\nvar GuidRegex = /[xy]/g;\r\nexport var EventHelper = {\r\n    Attach: attachEvent,\r\n    AttachEvent: attachEvent,\r\n    Detach: detachEvent,\r\n    DetachEvent: detachEvent\r\n};\r\n/**\r\n * Helper to support backward compatibility for users that use the legacy cookie handling functions and the use the internal\r\n * CoreUtils._canUseCookies global flag to enable/disable cookies usage.\r\n * Note: This has the following deliberate side-effects\r\n * - Creates the global (legacy) cookie manager if it does not already exist\r\n * - Attempts to add \"listeners\" to the CoreUtils._canUseCookies property to support the legacy usage\r\n * @param config\r\n * @param logger\r\n * @returns\r\n */\r\nexport function _legacyCookieMgr(config, logger) {\r\n    var cookieMgr = _gblCookieMgr(config, logger);\r\n    var legacyCanUseCookies = CoreUtils._canUseCookies;\r\n    if (_cookieMgrs === null) {\r\n        _cookieMgrs = [];\r\n        _canUseCookies = legacyCanUseCookies;\r\n        // Dynamically create get/set property accessors for backward compatibility for enabling / disabling cookies\r\n        // this WILL NOT work for ES3 browsers (< IE8)\r\n        objDefineAccessors(CoreUtils, \"_canUseCookies\", function () {\r\n            return _canUseCookies;\r\n        }, function (value) {\r\n            _canUseCookies = value;\r\n            arrForEach(_cookieMgrs, function (mgr) {\r\n                mgr.setEnabled(value);\r\n            });\r\n        });\r\n    }\r\n    if (arrIndexOf(_cookieMgrs, cookieMgr) === -1) {\r\n        _cookieMgrs.push(cookieMgr);\r\n    }\r\n    if (isBoolean(legacyCanUseCookies)) {\r\n        cookieMgr.setEnabled(legacyCanUseCookies);\r\n    }\r\n    if (isBoolean(_canUseCookies)) {\r\n        cookieMgr.setEnabled(_canUseCookies);\r\n    }\r\n    return cookieMgr;\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n */\r\nexport function disableCookies() {\r\n    _legacyCookieMgr().setEnabled(false);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().isEnabled()\r\n * Helper method to tell if document.cookie object is available and whether it can be used.\r\n */\r\nexport function canUseCookies(logger) {\r\n    return _legacyCookieMgr(null, logger).isEnabled();\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().get()\r\n * helper method to access userId and sessionId cookie\r\n */\r\nexport function getCookie(logger, name) {\r\n    return _legacyCookieMgr(null, logger).get(name);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().set()\r\n * helper method to set userId and sessionId cookie\r\n */\r\nexport function setCookie(logger, name, value, domain) {\r\n    _legacyCookieMgr(null, logger).set(name, value, null, domain);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().del()\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\nexport function deleteCookie(logger, name) {\r\n    return _legacyCookieMgr(null, logger).del(name);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { hasJSON, getJSON, getConsole } from \"./EnvUtils\";\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nimport { isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n *  Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nfunction _sanitizeDiagnosticText(text) {\r\n    if (text) {\r\n        return \"\\\"\" + text.replace(/\\\"/g, \"\") + \"\\\"\";\r\n    }\r\n    return \"\";\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n    function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n        if (isUserAct === void 0) { isUserAct = false; }\r\n        var _self = this;\r\n        _self.messageId = msgId;\r\n        _self.message =\r\n            (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n                msgId;\r\n        var strProps = \"\";\r\n        if (hasJSON()) {\r\n            strProps = getJSON().stringify(properties);\r\n        }\r\n        var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : \"\") +\r\n            (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : \"\");\r\n        _self.message += diagnosticText;\r\n    }\r\n    _InternalLogMessage.dataType = \"MessageData\";\r\n    return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n    return (core || {}).logger || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n    function DiagnosticLogger(config) {\r\n        this.identifier = 'DiagnosticLogger';\r\n        /**\r\n         * The internal logging queue\r\n         */\r\n        this.queue = [];\r\n        /**\r\n         * Count of internal messages sent\r\n         */\r\n        var _messageCount = 0;\r\n        /**\r\n         * Holds information about what message types were already logged to console or sent to server.\r\n         */\r\n        var _messageLogged = {};\r\n        dynamicProto(DiagnosticLogger, this, function (_self) {\r\n            if (isNullOrUndefined(config)) {\r\n                config = {};\r\n            }\r\n            _self.consoleLoggingLevel = function () { return _getConfigValue('loggingLevelConsole', 0); };\r\n            _self.telemetryLoggingLevel = function () { return _getConfigValue('loggingLevelTelemetry', 1); };\r\n            _self.maxInternalMessageLimit = function () { return _getConfigValue('maxMessageLimit', 25); };\r\n            _self.enableDebugExceptions = function () { return _getConfigValue('enableDebugExceptions', false); };\r\n            /**\r\n             * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n             * @param severity {LoggingSeverity} - The severity of the log message\r\n             * @param message {_InternalLogMessage} - The log message.\r\n             */\r\n            _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n                if (isUserAct === void 0) { isUserAct = false; }\r\n                var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n                if (_self.enableDebugExceptions()) {\r\n                    throw message;\r\n                }\r\n                else {\r\n                    if (!isUndefined(message) && !!message && !isUndefined(message.message)) {\r\n                        var logLevel = _self.consoleLoggingLevel();\r\n                        if (isUserAct) {\r\n                            // check if this message type was already logged to console for this page view and if so, don't log it again\r\n                            var messageKey = +message.messageId;\r\n                            if (!_messageLogged[messageKey] && logLevel >= LoggingSeverity.WARNING) {\r\n                                _self.warnToConsole(message.message);\r\n                                _messageLogged[messageKey] = true;\r\n                            }\r\n                        }\r\n                        else {\r\n                            // don't log internal AI traces in the console, unless the verbose logging is enabled\r\n                            if (logLevel >= LoggingSeverity.WARNING) {\r\n                                _self.warnToConsole(message.message);\r\n                            }\r\n                        }\r\n                        _self.logInternalMessage(severity, message);\r\n                    }\r\n                }\r\n            };\r\n            /**\r\n             * This will write a warning to the console if possible\r\n             * @param message {string} - The warning message\r\n             */\r\n            _self.warnToConsole = function (message) {\r\n                var theConsole = getConsole();\r\n                if (!!theConsole) {\r\n                    var logFunc = 'log';\r\n                    if (theConsole.warn) {\r\n                        logFunc = 'warn';\r\n                    }\r\n                    if (isFunction(theConsole[logFunc])) {\r\n                        theConsole[logFunc](message);\r\n                    }\r\n                }\r\n            };\r\n            /**\r\n             * Resets the internal message count\r\n             */\r\n            _self.resetInternalMessageCount = function () {\r\n                _messageCount = 0;\r\n                _messageLogged = {};\r\n            };\r\n            /**\r\n             * Logs a message to the internal queue.\r\n             * @param severity {LoggingSeverity} - The severity of the log message\r\n             * @param message {_InternalLogMessage} - The message to log.\r\n             */\r\n            _self.logInternalMessage = function (severity, message) {\r\n                if (_areInternalMessagesThrottled()) {\r\n                    return;\r\n                }\r\n                // check if this message type was already logged for this session and if so, don't log it again\r\n                var logMessage = true;\r\n                var messageKey = AIInternalMessagePrefix + message.messageId;\r\n                // if the session storage is not available, limit to only one message type per page view\r\n                if (_messageLogged[messageKey]) {\r\n                    logMessage = false;\r\n                }\r\n                else {\r\n                    _messageLogged[messageKey] = true;\r\n                }\r\n                if (logMessage) {\r\n                    // Push the event in the internal queue\r\n                    if (severity <= _self.telemetryLoggingLevel()) {\r\n                        _self.queue.push(message);\r\n                        _messageCount++;\r\n                    }\r\n                    // When throttle limit reached, send a special event\r\n                    if (_messageCount === _self.maxInternalMessageLimit()) {\r\n                        var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n                        var throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);\r\n                        _self.queue.push(throttleMessage);\r\n                        _self.warnToConsole(throttleLimitMessage);\r\n                    }\r\n                }\r\n            };\r\n            function _getConfigValue(name, defValue) {\r\n                var value = config[name];\r\n                if (!isNullOrUndefined(value)) {\r\n                    return value;\r\n                }\r\n                return defValue;\r\n            }\r\n            function _areInternalMessagesThrottled() {\r\n                return _messageCount >= _self.maxInternalMessageLimit();\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for DiagnosticLogger.prototype.enableDebugExceptions.\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.telemetryLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.maxInternalMessageLimit.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n    return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\n//# sourceMappingURL=DiagnosticLogger.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal as shimsGetGlobal, strShimUndefined, strShimObject, strShimPrototype, strShimFunction } from \"@microsoft/applicationinsights-shims\";\r\nimport { strContains } from \"./HelperFuncs\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nexport var strUndefined = strShimUndefined;\r\nexport var strObject = strShimObject;\r\nexport var strPrototype = strShimPrototype;\r\nexport var strFunction = strShimFunction;\r\nvar strWindow = \"window\";\r\nvar strDocument = \"document\";\r\nvar strNavigator = \"navigator\";\r\nvar strHistory = \"history\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n    _enableMocks = enabled;\r\n}\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - <null> (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\nexport var getGlobal = shimsGetGlobal;\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name) {\r\n    var gbl = getGlobal();\r\n    if (gbl && gbl[name]) {\r\n        return gbl[name];\r\n    }\r\n    // Test workaround, for environments where <global>.window (when global == window) doesn't return the base window\r\n    if (name === strWindow && hasWindow()) {\r\n        // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n        return window;\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow() {\r\n    return Boolean(typeof window === strObject && window);\r\n}\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow() {\r\n    if (hasWindow()) {\r\n        return window;\r\n    }\r\n    // Return the global instance or null\r\n    return getGlobalInst(strWindow);\r\n}\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument() {\r\n    return Boolean(typeof document === strObject && document);\r\n}\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument() {\r\n    if (hasDocument()) {\r\n        return document;\r\n    }\r\n    return getGlobalInst(strDocument);\r\n}\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator() {\r\n    return Boolean(typeof navigator === strObject && navigator);\r\n}\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator() {\r\n    if (hasNavigator()) {\r\n        return navigator;\r\n    }\r\n    return getGlobalInst(strNavigator);\r\n}\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory() {\r\n    return Boolean(typeof history === strObject && history);\r\n}\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory() {\r\n    if (hasHistory()) {\r\n        return history;\r\n    }\r\n    return getGlobalInst(strHistory);\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n    if (checkForMock && _enableMocks) {\r\n        var mockLocation = getGlobalInst(\"__mockLocation\");\r\n        if (mockLocation) {\r\n            return mockLocation;\r\n        }\r\n    }\r\n    if (typeof location === strObject && location) {\r\n        return location;\r\n    }\r\n    return getGlobalInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n    if (typeof console !== strUndefined) {\r\n        return console;\r\n    }\r\n    return getGlobalInst(strConsole);\r\n}\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance() {\r\n    return getGlobalInst(strPerformance);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n    return Boolean((typeof JSON === strObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n    if (hasJSON()) {\r\n        return JSON || getGlobalInst(strJSON);\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n    return getGlobalInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n    return getGlobalInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n    // If running in React Native, navigator.product will be populated\r\n    var nav = getNavigator();\r\n    if (nav && nav.product) {\r\n        return nav.product === strReactNative;\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n    var nav = getNavigator();\r\n    if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {\r\n        // Added to support test mocking of the user agent\r\n        _navUserAgentCheck = nav.userAgent;\r\n        var userAgent = (_navUserAgentCheck || \"\").toLowerCase();\r\n        _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n    }\r\n    return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n    if (userAgentStr === void 0) { userAgentStr = null; }\r\n    var myNav = userAgentStr ? userAgentStr.toLowerCase() : \"\";\r\n    if (!userAgentStr) {\r\n        var navigator_1 = getNavigator() || {};\r\n        myNav = navigator_1 ? (navigator_1.userAgent || \"\").toLowerCase() : \"\";\r\n    }\r\n    if (strContains(myNav, strMsie)) {\r\n        return parseInt(myNav.split(strMsie)[1]);\r\n    }\r\n    else if (strContains(myNav, strTrident)) {\r\n        var tridentVer = parseInt(myNav.split(strTrident)[1]);\r\n        if (tridentVer) {\r\n            return tridentVer + 4;\r\n        }\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\nexport function dumpObj(object) {\r\n    var objectTypeDump = Object[strShimPrototype].toString.call(object);\r\n    var propertyValueDump = \"\";\r\n    if (objectTypeDump === \"[object Error]\") {\r\n        propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n    }\r\n    else if (hasJSON()) {\r\n        propertyValueDump = getJSON().stringify(object);\r\n    }\r\n    return objectTypeDump + propertyValueDump;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimUndefined, strShimObject, strShimPrototype, strShimFunction } from \"@microsoft/applicationinsights-shims\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strHasOwnProperty = \"hasOwnProperty\";\r\nvar ObjClass = Object;\r\nvar ObjProto = ObjClass[strShimPrototype];\r\nvar _objHasOwnProperty = ObjProto[strHasOwnProperty];\r\nvar _objDefineProperty = ObjClass[\"defineProperty\"];\r\nvar _objAssign = ObjClass[\"assign\"];\r\nvar _objFreeze = ObjClass[\"freeze\"];\r\nvar _objSeal = ObjClass[\"seal\"];\r\nexport function objToString(obj) {\r\n    return ObjProto.toString.call(obj);\r\n}\r\nexport function isTypeof(value, theType) {\r\n    return typeof value === theType;\r\n}\r\n;\r\nexport function isUndefined(value) {\r\n    return value === undefined || typeof value === strShimUndefined;\r\n}\r\n;\r\nexport function isNotUndefined(value) {\r\n    return !isUndefined(value);\r\n}\r\nexport function isNullOrUndefined(value) {\r\n    return (value === null || isUndefined(value));\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n    return !isNullOrUndefined(value);\r\n}\r\nexport function hasOwnProperty(obj, prop) {\r\n    return obj && _objHasOwnProperty.call(obj, prop);\r\n}\r\n;\r\nexport function isObject(value) {\r\n    // Changing to inline for performance\r\n    return typeof value === strShimObject;\r\n}\r\n;\r\nexport function isFunction(value) {\r\n    // Changing to inline for performance\r\n    return typeof value === strShimFunction;\r\n}\r\n;\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n    if (useCapture === void 0) { useCapture = false; }\r\n    var result = false;\r\n    if (!isNullOrUndefined(obj)) {\r\n        try {\r\n            if (!isNullOrUndefined(obj[strAddEventHelper])) {\r\n                // all browsers except IE before version 9\r\n                obj[strAddEventHelper](eventNameWithoutOn, handlerRef, useCapture);\r\n                result = true;\r\n            }\r\n            else if (!isNullOrUndefined(obj[strAttachEvent])) {\r\n                // IE before version 9                    \r\n                obj[strAttachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n                result = true;\r\n            }\r\n        }\r\n        catch (e) {\r\n            // Just Ignore any error so that we don't break any execution path\r\n        }\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event\r\n * @param handlerRef {any} - The callback function that needs to be executed for the given event\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n    if (useCapture === void 0) { useCapture = false; }\r\n    if (!isNullOrUndefined(obj)) {\r\n        try {\r\n            if (!isNullOrUndefined(obj[strRemoveEventListener])) {\r\n                obj[strRemoveEventListener](eventNameWithoutOn, handlerRef, useCapture);\r\n            }\r\n            else if (!isNullOrUndefined(obj[strDetachEvent])) {\r\n                obj[strDetachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n            }\r\n        }\r\n        catch (e) {\r\n            // Just Ignore any error so that we don't break any execution path\r\n        }\r\n    }\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n    var value = name;\r\n    var match = /([^\\w\\d_$])/g;\r\n    if (match.test(name)) {\r\n        value = name.replace(match, \"_\");\r\n    }\r\n    return value;\r\n}\r\n/**\r\n * This is a helper function for the equivalent of arForEach(objKeys(target), callbackFn), this is a\r\n * performance optimization to avoid the creation of a new array for large objects\r\n * @param target The target object to find and process the keys\r\n * @param callbackfn The function to call with the details\r\n */\r\nexport function objForEachKey(target, callbackfn) {\r\n    if (target) {\r\n        for (var prop in target) {\r\n            if (_objHasOwnProperty.call(target, prop)) {\r\n                callbackfn.call(target, prop, target[prop]);\r\n            }\r\n        }\r\n    }\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n    if (value && search) {\r\n        var searchLen = search.length;\r\n        var valLen = value.length;\r\n        if (value === search) {\r\n            return true;\r\n        }\r\n        else if (valLen >= searchLen) {\r\n            var pos = valLen - 1;\r\n            for (var lp = searchLen - 1; lp >= 0; lp--) {\r\n                if (value[pos] != search[lp]) {\r\n                    return false;\r\n                }\r\n                pos--;\r\n            }\r\n            return true;\r\n        }\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n  * @returns true if the given search value is found at the start of the string, otherwise false.\r\n*/\r\nexport function strStartsWith(value, checkValue) {\r\n    // Using helper for performance and because string startsWith() is not available on IE\r\n    var result = false;\r\n    if (value && checkValue) {\r\n        var chkLen = checkValue.length;\r\n        if (value === checkValue) {\r\n            return true;\r\n        }\r\n        else if (value.length >= chkLen) {\r\n            for (var lp = 0; lp < chkLen; lp++) {\r\n                if (value[lp] !== checkValue[lp]) {\r\n                    return false;\r\n                }\r\n            }\r\n            result = true;\r\n        }\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n    if (value && search) {\r\n        return value.indexOf(search) !== -1;\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * Check if an object is of type Date\r\n */\r\nexport function isDate(obj) {\r\n    return objToString(obj) === \"[object Date]\";\r\n}\r\n/**\r\n * Check if an object is of type Array\r\n */\r\nexport function isArray(obj) {\r\n    return objToString(obj) === \"[object Array]\";\r\n}\r\n/**\r\n * Check if an object is of type Error\r\n */\r\nexport function isError(obj) {\r\n    return objToString(obj) === \"[object Error]\";\r\n}\r\n/**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\nexport function isString(value) {\r\n    // Changing to inline for performance\r\n    return typeof value === \"string\";\r\n}\r\n/**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nexport function isNumber(value) {\r\n    // Changing to inline for performance\r\n    return typeof value === \"number\";\r\n}\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nexport function isBoolean(value) {\r\n    // Changing to inline for performance\r\n    return typeof value === \"boolean\";\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n    if (isDate(date)) {\r\n        var pad = function (num) {\r\n            var r = String(num);\r\n            if (r.length === 1) {\r\n                r = \"0\" + r;\r\n            }\r\n            return r;\r\n        };\r\n        return date.getUTCFullYear()\r\n            + \"-\" + pad(date.getUTCMonth() + 1)\r\n            + \"-\" + pad(date.getUTCDate())\r\n            + \"T\" + pad(date.getUTCHours())\r\n            + \":\" + pad(date.getUTCMinutes())\r\n            + \":\" + pad(date.getUTCSeconds())\r\n            + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n            + \"Z\";\r\n    }\r\n}\r\n/**\r\n * Performs the specified action for each element in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. It can return -1 to break out of the loop\r\n * @param thisArg  [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrForEach(arr, callbackfn, thisArg) {\r\n    var len = arr.length;\r\n    for (var idx = 0; idx < len; idx++) {\r\n        if (idx in arr) {\r\n            if (callbackfn.call(thisArg || arr, arr[idx], idx, arr) === -1) {\r\n                break;\r\n            }\r\n        }\r\n    }\r\n}\r\n/**\r\n * Returns the index of the first occurrence of a value in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport function arrIndexOf(arr, searchElement, fromIndex) {\r\n    var len = arr.length;\r\n    var from = fromIndex || 0;\r\n    for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\r\n        if (lp in arr && arr[lp] === searchElement) {\r\n            return lp;\r\n        }\r\n    }\r\n    return -1;\r\n}\r\n/**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results. This helper exists\r\n * to avoid adding a polyfil for older browsers that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page\r\n * checks for presence/absence of the prototype implementation. Note: For consistency this will not use the Array.prototype.xxxx\r\n * implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrMap(arr, callbackfn, thisArg) {\r\n    var len = arr.length;\r\n    var _this = thisArg || arr;\r\n    var results = new Array(len);\r\n    for (var lp = 0; lp < len; lp++) {\r\n        if (lp in arr) {\r\n            results[lp] = callbackfn.call(_this, arr[lp], arr);\r\n        }\r\n    }\r\n    return results;\r\n}\r\n/**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is\r\n * provided as an argument in the next call to the callback function. This helper exists to avoid adding a polyfil for older browsers that do not define\r\n * Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype implementation. Note: For consistency\r\n * this will not use the Array.prototype.xxxx implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\nexport function arrReduce(arr, callbackfn, initialValue) {\r\n    var len = arr.length;\r\n    var lp = 0;\r\n    var value;\r\n    // Specifically checking the number of passed arguments as the value could be anything\r\n    if (arguments.length >= 3) {\r\n        value = arguments[2];\r\n    }\r\n    else {\r\n        while (lp < len && !(lp in arr)) {\r\n            lp++;\r\n        }\r\n        value = arr[lp++];\r\n    }\r\n    while (lp < len) {\r\n        if (lp in arr) {\r\n            value = callbackfn(value, arr[lp], lp, arr);\r\n        }\r\n        lp++;\r\n    }\r\n    return value;\r\n}\r\n/**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\nexport function strTrim(str) {\r\n    if (typeof str !== \"string\") {\r\n        return str;\r\n    }\r\n    return str.replace(/^\\s+|\\s+$/g, \"\");\r\n}\r\nvar _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\r\nvar _objKeysDontEnums = [\r\n    'toString',\r\n    'toLocaleString',\r\n    'valueOf',\r\n    'hasOwnProperty',\r\n    'isPrototypeOf',\r\n    'propertyIsEnumerable',\r\n    'constructor'\r\n];\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Object.keys eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.keys implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\nexport function objKeys(obj) {\r\n    var objType = typeof obj;\r\n    if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {\r\n        throw new TypeError('objKeys called on non-object');\r\n    }\r\n    var result = [];\r\n    for (var prop in obj) {\r\n        if (obj && _objHasOwnProperty.call(obj, prop)) {\r\n            result.push(prop);\r\n        }\r\n    }\r\n    if (_objKeysHasDontEnumBug) {\r\n        var dontEnumsLength = _objKeysDontEnums.length;\r\n        for (var lp = 0; lp < dontEnumsLength; lp++) {\r\n            if (obj && _objHasOwnProperty.call(obj, _objKeysDontEnums[lp])) {\r\n                result.push(_objKeysDontEnums[lp]);\r\n            }\r\n        }\r\n    }\r\n    return result;\r\n}\r\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @param target The object on which to define the property.\r\n * @param prop The name of the property to be defined or modified.\r\n * @param getProp The getter function to wire against the getter.\r\n * @param setProp The setter function to wire against the setter.\r\n * @returns True if it was able to create the accessors otherwise false\r\n */\r\nexport function objDefineAccessors(target, prop, getProp, setProp) {\r\n    if (_objDefineProperty) {\r\n        try {\r\n            var descriptor = {\r\n                enumerable: true,\r\n                configurable: true\r\n            };\r\n            if (getProp) {\r\n                descriptor.get = getProp;\r\n            }\r\n            if (setProp) {\r\n                descriptor.set = setProp;\r\n            }\r\n            _objDefineProperty(target, prop, descriptor);\r\n            return true;\r\n        }\r\n        catch (e) {\r\n            // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n            // We will just ignore this here.\r\n        }\r\n    }\r\n    return false;\r\n}\r\nexport function objFreeze(value) {\r\n    if (_objFreeze) {\r\n        value = _objFreeze(value);\r\n    }\r\n    return value;\r\n}\r\nexport function objSeal(value) {\r\n    if (_objSeal) {\r\n        value = _objSeal(value);\r\n    }\r\n    return value;\r\n}\r\n/**\r\n * Return the current time via the Date now() function (if available) and falls back to (new Date()).getTime() if now() is unavailable (IE8 or less)\r\n * https://caniuse.com/#search=Date.now\r\n */\r\nexport function dateNow() {\r\n    var dt = Date;\r\n    if (dt.now) {\r\n        return dt.now();\r\n    }\r\n    return new dt().getTime();\r\n}\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n    if (isError(object)) {\r\n        return object.name;\r\n    }\r\n    return \"\";\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n    var theValue = value;\r\n    if (target) {\r\n        theValue = target[field];\r\n        if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n            theValue = value;\r\n            target[field] = theValue;\r\n        }\r\n    }\r\n    return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n    var theValue;\r\n    if (target) {\r\n        theValue = target[field];\r\n        if (!theValue && isNullOrUndefined(theValue)) {\r\n            // Supports having the default as null\r\n            theValue = !isUndefined(defValue) ? defValue : {};\r\n            target[field] = theValue;\r\n        }\r\n    }\r\n    else {\r\n        // Expanded for performance so we only check defValue if required\r\n        theValue = !isUndefined(defValue) ? defValue : {};\r\n    }\r\n    return theValue;\r\n}\r\nexport function isNotTruthy(value) {\r\n    return !value;\r\n}\r\nexport function isTruthy(value) {\r\n    return !!value;\r\n}\r\nexport function throwError(message) {\r\n    throw new Error(message);\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n * @memberof Initialization\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n    if (target && source && target !== source && isObject(target) && isObject(source)) {\r\n        var _loop_1 = function (field) {\r\n            if (isString(field)) {\r\n                var value = source[field];\r\n                if (isFunction(value)) {\r\n                    if (!chkSet || chkSet(field, true, source, target)) {\r\n                        // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n                        target[field] = (function (funcName) {\r\n                            return function () {\r\n                                // Capture the original arguments passed to the method\r\n                                var originalArguments = arguments;\r\n                                return source[funcName].apply(source, originalArguments);\r\n                            };\r\n                        })(field);\r\n                    }\r\n                }\r\n                else if (!chkSet || chkSet(field, false, source, target)) {\r\n                    if (hasOwnProperty(target, field)) {\r\n                        // Remove any previous instance property\r\n                        delete target[field];\r\n                    }\r\n                    if (!objDefineAccessors(target, field, function () {\r\n                        return source[field];\r\n                    }, function (theValue) {\r\n                        source[field] = theValue;\r\n                    })) {\r\n                        // Unable to create an accessor, so just assign the values as a fallback\r\n                        // -- this will (mostly) work for objects\r\n                        // -- but will fail for accessing primitives (if the source changes it) and all types of \"setters\" as the source won't be modified\r\n                        target[field] = value;\r\n                    }\r\n                }\r\n            }\r\n        };\r\n        // effectively apply/proxy full source to the target instance\r\n        for (var field in source) {\r\n            _loop_1(field);\r\n        }\r\n    }\r\n    return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            var _this = this;\r\n            if (defaults) {\r\n                objForEachKey(defaults, function (field, value) {\r\n                    _this[field] = value;\r\n                });\r\n            }\r\n        }\r\n        return class_1;\r\n    }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n    // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n    // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n    if (theObject) {\r\n        theObject = ObjClass(_objAssign ? _objAssign({}, theObject) : theObject);\r\n    }\r\n    return theObject;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strFunction, strPrototype } from \"./EnvUtils\";\r\nimport { hasOwnProperty } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\n;\r\nvar cbNames = [\r\n    \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strConstructor = \"constructor\";\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n    if (arr) {\r\n        for (var lp = 0; lp < arr.length; lp++) {\r\n            if (fn(arr[lp], lp)) {\r\n                break;\r\n            }\r\n        }\r\n    }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n    if (type >= 0 /* Request */ && type <= 2 /* HookError */) {\r\n        _arrLoop(hooks, function (hook, idx) {\r\n            var cbks = hook.cbks;\r\n            var cb = cbks[cbNames[type]];\r\n            if (cb) {\r\n                // Set the specific hook context implementation using a lazy creation pattern\r\n                callDetails.ctx = function () {\r\n                    var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n                    return ctx;\r\n                };\r\n                try {\r\n                    cb.apply(callDetails.inst, cbArgs);\r\n                }\r\n                catch (err) {\r\n                    var orgEx = callDetails.err;\r\n                    try {\r\n                        // Report Hook error via the callback\r\n                        var hookErrorCb = cbks[cbNames[2 /* HookError */]];\r\n                        if (hookErrorCb) {\r\n                            callDetails.err = err;\r\n                            hookErrorCb.apply(callDetails.inst, cbArgs);\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n                    }\r\n                    finally {\r\n                        // restore the original exception (if any)\r\n                        callDetails.err = orgEx;\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n    // Define a temporary method that queues-up a the real method call\r\n    return function () {\r\n        var funcThis = this;\r\n        // Capture the original arguments passed to the method\r\n        var orgArgs = arguments;\r\n        var hooks = aiHook.h;\r\n        var funcArgs = {\r\n            name: aiHook.n,\r\n            inst: funcThis,\r\n            ctx: null,\r\n            set: _replaceArg\r\n        };\r\n        var hookCtx = [];\r\n        var cbArgs = _createArgs([funcArgs], orgArgs);\r\n        function _createArgs(target, theArgs) {\r\n            _arrLoop(theArgs, function (arg) {\r\n                target.push(arg);\r\n            });\r\n            return target;\r\n        }\r\n        function _replaceArg(idx, value) {\r\n            orgArgs = _createArgs([], orgArgs);\r\n            orgArgs[idx] = value;\r\n            cbArgs = _createArgs([funcArgs], orgArgs);\r\n        }\r\n        // Call the pre-request hooks\r\n        _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* Request */);\r\n        // Call the original function was called\r\n        var theFunc = aiHook.f;\r\n        try {\r\n            funcArgs.rslt = theFunc.apply(funcThis, orgArgs);\r\n        }\r\n        catch (err) {\r\n            // Report the request callback\r\n            funcArgs.err = err;\r\n            _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* FunctionError */);\r\n            // rethrow the original exception so anyone listening for it can catch the exception\r\n            throw err;\r\n        }\r\n        // Call the post-request hooks\r\n        _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* Response */);\r\n        return funcArgs.rslt;\r\n    };\r\n}\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Object[\"getPrototypeOf\"];\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n    if (target) {\r\n        // This method doesn't existing in older browsers (e.g. IE8)\r\n        if (_objGetPrototypeOf) {\r\n            return _objGetPrototypeOf(target);\r\n        }\r\n        // target[Constructor] May break if the constructor has been changed or removed\r\n        var newProto = target[str__Proto] || target[strPrototype] || target[strConstructor];\r\n        if (newProto) {\r\n            return newProto;\r\n        }\r\n    }\r\n    return null;\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype) {\r\n    var owner = null;\r\n    if (target) {\r\n        if (hasOwnProperty(target, name)) {\r\n            owner = target;\r\n        }\r\n        else if (checkPrototype) {\r\n            owner = _getOwner(_getObjProto(target), name, false);\r\n        }\r\n    }\r\n    return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n    if (target) {\r\n        return InstrumentFunc(target[strPrototype], funcName, callbacks, false);\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n    if (target) {\r\n        return InstrumentFuncs(target[strPrototype], funcNames, callbacks, false);\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype) {\r\n    if (checkPrototype === void 0) { checkPrototype = true; }\r\n    if (target && funcName && callbacks) {\r\n        var owner = _getOwner(target, funcName, checkPrototype);\r\n        if (owner) {\r\n            var fn = owner[funcName];\r\n            if (typeof fn === strFunction) {\r\n                var aiHook_1 = fn[aiInstrumentHooks];\r\n                if (!aiHook_1) {\r\n                    // Only hook the function once\r\n                    aiHook_1 = {\r\n                        i: 0,\r\n                        n: funcName,\r\n                        f: fn,\r\n                        h: []\r\n                    };\r\n                    // Override (hook) the original function\r\n                    var newFunc = _createFunctionHook(aiHook_1);\r\n                    newFunc[aiInstrumentHooks] = aiHook_1; // Tag and store the function hooks\r\n                    owner[funcName] = newFunc;\r\n                }\r\n                var theHook = {\r\n                    // tslint:disable:object-literal-shorthand\r\n                    id: aiHook_1.i,\r\n                    cbks: callbacks,\r\n                    rm: function () {\r\n                        // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n                        // with the outer this and not the this for theHook instance.\r\n                        var id = this.id;\r\n                        _arrLoop(aiHook_1.h, function (hook, idx) {\r\n                            if (hook.id === id) {\r\n                                aiHook_1.h.splice(idx, 1);\r\n                                return 1;\r\n                            }\r\n                        });\r\n                    }\r\n                    // tslint:enable:object-literal-shorthand\r\n                };\r\n                aiHook_1.i++;\r\n                aiHook_1.h.push(theHook);\r\n                return theHook;\r\n            }\r\n        }\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype) {\r\n    if (checkPrototype === void 0) { checkPrototype = true; }\r\n    var hooks = null;\r\n    _arrLoop(funcNames, function (funcName) {\r\n        var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype);\r\n        if (hook) {\r\n            if (!hooks) {\r\n                hooks = [];\r\n            }\r\n            hooks.push(hook);\r\n        }\r\n    });\r\n    return hooks;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrForEach, arrIndexOf } from './HelperFuncs';\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n    function NotificationManager(config) {\r\n        this.listeners = [];\r\n        var perfEvtsSendAll = !!(config || {}).perfEvtsSendAll;\r\n        dynamicProto(NotificationManager, this, function (_self) {\r\n            _self.addNotificationListener = function (listener) {\r\n                _self.listeners.push(listener);\r\n            };\r\n            /**\r\n             * Removes all instances of the listener.\r\n             * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n             */\r\n            _self.removeNotificationListener = function (listener) {\r\n                var index = arrIndexOf(_self.listeners, listener);\r\n                while (index > -1) {\r\n                    _self.listeners.splice(index, 1);\r\n                    index = arrIndexOf(_self.listeners, listener);\r\n                }\r\n            };\r\n            /**\r\n             * Notification for events sent.\r\n             * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n             */\r\n            _self.eventsSent = function (events) {\r\n                arrForEach(_self.listeners, function (listener) {\r\n                    if (listener && listener.eventsSent) {\r\n                        setTimeout(function () { return listener.eventsSent(events); }, 0);\r\n                    }\r\n                });\r\n            };\r\n            /**\r\n             * Notification for events being discarded.\r\n             * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n             * @param {number} reason           - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n             * constant should be used to check the different values.\r\n             */\r\n            _self.eventsDiscarded = function (events, reason) {\r\n                arrForEach(_self.listeners, function (listener) {\r\n                    if (listener && listener.eventsDiscarded) {\r\n                        setTimeout(function () { return listener.eventsDiscarded(events, reason); }, 0);\r\n                    }\r\n                });\r\n            };\r\n            /**\r\n             * [Optional] A function called when the events have been requested to be sent to the sever.\r\n             * @param {number} sendReason - The reason why the event batch is being sent.\r\n             * @param {boolean} isAsync   - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n             */\r\n            _self.eventsSendRequest = function (sendReason, isAsync) {\r\n                arrForEach(_self.listeners, function (listener) {\r\n                    if (listener && listener.eventsSendRequest) {\r\n                        if (isAsync) {\r\n                            setTimeout(function () { return listener.eventsSendRequest(sendReason, isAsync); }, 0);\r\n                        }\r\n                        else {\r\n                            try {\r\n                                listener.eventsSendRequest(sendReason, isAsync);\r\n                            }\r\n                            catch (e) {\r\n                                // Catch errors to ensure we don't block sending the requests\r\n                            }\r\n                        }\r\n                    }\r\n                });\r\n            };\r\n            _self.perfEvent = function (perfEvent) {\r\n                if (perfEvent) {\r\n                    // Send all events or only parent events\r\n                    if (perfEvtsSendAll || !perfEvent.isChildEvt()) {\r\n                        arrForEach(_self.listeners, function (listener) {\r\n                            if (listener && listener.perfEvent) {\r\n                                if (perfEvent.isAsync) {\r\n                                    setTimeout(function () { return listener.perfEvent(perfEvent); }, 0);\r\n                                }\r\n                                else {\r\n                                    try {\r\n                                        listener.perfEvent(perfEvent);\r\n                                    }\r\n                                    catch (e) {\r\n                                        // Catch errors to ensure we don't block sending the requests\r\n                                    }\r\n                                }\r\n                            }\r\n                        });\r\n                    }\r\n                }\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n    return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateNow, isArray, isFunction, objDefineAccessors } from './HelperFuncs';\r\nvar strExecutionContextKey = \"ctx\";\r\nvar PerfEvent = /** @class */ (function () {\r\n    function PerfEvent(name, payloadDetails, isAsync) {\r\n        var _self = this;\r\n        var accessorDefined = false;\r\n        _self.start = dateNow();\r\n        _self.name = name;\r\n        _self.isAsync = isAsync;\r\n        _self.isChildEvt = function () { return false; };\r\n        if (isFunction(payloadDetails)) {\r\n            // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n            var theDetails_1;\r\n            accessorDefined = objDefineAccessors(_self, 'payload', function () {\r\n                // Delay the execution of the payloadDetails until needed\r\n                if (!theDetails_1 && isFunction(payloadDetails)) {\r\n                    theDetails_1 = payloadDetails();\r\n                    // clear it out now so the referenced objects can be garbage collected\r\n                    payloadDetails = null;\r\n                }\r\n                return theDetails_1;\r\n            });\r\n        }\r\n        _self.getCtx = function (key) {\r\n            if (key) {\r\n                // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n                if (key === PerfEvent.ParentContextKey || key === PerfEvent.ChildrenContextKey) {\r\n                    return _self[key];\r\n                }\r\n                return (_self[strExecutionContextKey] || {})[key];\r\n            }\r\n            return null;\r\n        };\r\n        _self.setCtx = function (key, value) {\r\n            if (key) {\r\n                // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n                if (key === PerfEvent.ParentContextKey) {\r\n                    // Simple assumption, if we are setting a parent then we must be a child\r\n                    if (!_self[key]) {\r\n                        _self.isChildEvt = function () { return true; };\r\n                    }\r\n                    _self[key] = value;\r\n                }\r\n                else if (key === PerfEvent.ChildrenContextKey) {\r\n                    _self[key] = value;\r\n                }\r\n                else {\r\n                    var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n                    ctx[key] = value;\r\n                }\r\n            }\r\n        };\r\n        _self.complete = function () {\r\n            var childTime = 0;\r\n            var childEvts = _self.getCtx(PerfEvent.ChildrenContextKey);\r\n            if (isArray(childEvts)) {\r\n                for (var lp = 0; lp < childEvts.length; lp++) {\r\n                    var childEvt = childEvts[lp];\r\n                    if (childEvt) {\r\n                        childTime += childEvt.time;\r\n                    }\r\n                }\r\n            }\r\n            _self.time = dateNow() - _self.start;\r\n            _self.exTime = _self.time - childTime;\r\n            _self.complete = function () { };\r\n            if (!accessorDefined && isFunction(payloadDetails)) {\r\n                // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\r\n                _self.payload = payloadDetails();\r\n            }\r\n        };\r\n    }\r\n    PerfEvent.ParentContextKey = \"parent\";\r\n    PerfEvent.ChildrenContextKey = \"childEvts\";\r\n    return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n    function PerfManager(manager) {\r\n        /**\r\n         * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n         * Defined as private so it can be visualized via the DebugPlugin\r\n         */\r\n        this.ctx = {};\r\n        dynamicProto(PerfManager, this, function (_self) {\r\n            _self.create = function (src, payloadDetails, isAsync) {\r\n                // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n                // for now this is just a simple do everything.\r\n                return new PerfEvent(src, payloadDetails, isAsync);\r\n            };\r\n            _self.fire = function (perfEvent) {\r\n                if (perfEvent) {\r\n                    perfEvent.complete();\r\n                    if (manager) {\r\n                        manager.perfEvent(perfEvent);\r\n                    }\r\n                }\r\n            };\r\n            _self.setCtx = function (key, value) {\r\n                if (key) {\r\n                    var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n                    ctx[key] = value;\r\n                }\r\n            };\r\n            _self.getCtx = function (key) {\r\n                return (_self[strExecutionContextKey] || {})[key];\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n    return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n    if (mgrSource) {\r\n        var perfMgr = mgrSource;\r\n        if (perfMgr && isFunction(perfMgr[\"getPerfMgr\"])) {\r\n            // Looks like a perf manager provider object\r\n            perfMgr = perfMgr[\"getPerfMgr\"]();\r\n        }\r\n        if (perfMgr) {\r\n            var perfEvt = void 0;\r\n            var currentActive = perfMgr.getCtx(doPerfActiveKey);\r\n            try {\r\n                perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n                if (perfEvt) {\r\n                    if (currentActive && perfEvt.setCtx) {\r\n                        perfEvt.setCtx(PerfEvent.ParentContextKey, currentActive);\r\n                        if (currentActive.getCtx && currentActive.setCtx) {\r\n                            var children = currentActive.getCtx(PerfEvent.ChildrenContextKey);\r\n                            if (!children) {\r\n                                children = [];\r\n                                currentActive.setCtx(PerfEvent.ChildrenContextKey, children);\r\n                            }\r\n                            children.push(perfEvt);\r\n                        }\r\n                    }\r\n                    // Set this event as the active event now\r\n                    perfMgr.setCtx(doPerfActiveKey, perfEvt);\r\n                    return func(perfEvt);\r\n                }\r\n            }\r\n            catch (ex) {\r\n                if (perfEvt && perfEvt.setCtx) {\r\n                    perfEvt.setCtx(\"exception\", ex);\r\n                }\r\n            }\r\n            finally {\r\n                // fire the perf event\r\n                if (perfEvt) {\r\n                    perfMgr.fire(perfEvt);\r\n                }\r\n                // Reset the active event to the previous value\r\n                perfMgr.setCtx(doPerfActiveKey, currentActive);\r\n            }\r\n        }\r\n    }\r\n    return func();\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { TelemetryPluginChain } from \"./TelemetryPluginChain\";\r\nimport { arrForEach, isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\r\n/**\r\n * Creates the instance execution chain for the plugins\r\n */\r\nfunction _createProxyChain(plugins, itemCtx) {\r\n    var proxies = [];\r\n    if (plugins && plugins.length > 0) {\r\n        // Create the proxies and wire up the next plugin chain\r\n        var lastProxy = null;\r\n        for (var idx = 0; idx < plugins.length; idx++) {\r\n            var thePlugin = plugins[idx];\r\n            if (thePlugin && isFunction(thePlugin.processTelemetry)) {\r\n                // Only add plugins that are processors\r\n                var newProxy = new TelemetryPluginChain(thePlugin, itemCtx);\r\n                proxies.push(newProxy);\r\n                if (lastProxy) {\r\n                    // Set this new proxy as the next for the previous one\r\n                    lastProxy.setNext(newProxy);\r\n                }\r\n                lastProxy = newProxy;\r\n            }\r\n        }\r\n    }\r\n    return proxies.length > 0 ? proxies[0] : null;\r\n}\r\nfunction _copyProxyChain(proxy, itemCtx, startAt) {\r\n    var plugins = [];\r\n    var add = startAt ? false : true;\r\n    if (proxy) {\r\n        while (proxy) {\r\n            var thePlugin = proxy.getPlugin();\r\n            if (add || thePlugin === startAt) {\r\n                add = true;\r\n                plugins.push(thePlugin);\r\n            }\r\n            proxy = proxy.getNext();\r\n        }\r\n    }\r\n    if (!add) {\r\n        plugins.push(startAt);\r\n    }\r\n    return _createProxyChain(plugins, itemCtx);\r\n}\r\nfunction _copyPluginChain(srcPlugins, itemCtx, startAt) {\r\n    var plugins = srcPlugins;\r\n    var add = false;\r\n    if (startAt && srcPlugins) {\r\n        plugins = [];\r\n        arrForEach(srcPlugins, function (thePlugin) {\r\n            if (add || thePlugin === startAt) {\r\n                add = true;\r\n                plugins.push(thePlugin);\r\n            }\r\n        });\r\n    }\r\n    if (startAt && !add) {\r\n        if (!plugins) {\r\n            plugins = [];\r\n        }\r\n        plugins.push(startAt);\r\n    }\r\n    return _createProxyChain(plugins, itemCtx);\r\n}\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n    /**\r\n     * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n     * @param plugins - The plugin instances that will be executed\r\n     * @param config - The current config\r\n     * @param core - The current core instance\r\n     */\r\n    function ProcessTelemetryContext(plugins, config, core, startAt) {\r\n        var _self = this;\r\n        var _nextProxy = null; // Null == No next plugin\r\n        // There is no next element (null) vs not defined (undefined)\r\n        if (startAt !== null) {\r\n            if (plugins && isFunction(plugins.getPlugin)) {\r\n                // We have a proxy chain object\r\n                _nextProxy = _copyProxyChain(plugins, _self, startAt || plugins.getPlugin());\r\n            }\r\n            else {\r\n                // We just have an array\r\n                if (startAt) {\r\n                    _nextProxy = _copyPluginChain(plugins, _self, startAt);\r\n                }\r\n                else if (isUndefined(startAt)) {\r\n                    // Undefined means copy the existing chain\r\n                    _nextProxy = _createProxyChain(plugins, _self);\r\n                }\r\n            }\r\n        }\r\n        _self.core = function () {\r\n            return core;\r\n        };\r\n        _self.diagLog = function () {\r\n            return safeGetLogger(core, config);\r\n        };\r\n        _self.getCfg = function () {\r\n            return config;\r\n        };\r\n        _self.getExtCfg = function (identifier, defaultValue) {\r\n            if (defaultValue === void 0) { defaultValue = {}; }\r\n            var theConfig;\r\n            if (config) {\r\n                var extConfig = config.extensionConfig;\r\n                if (extConfig && identifier) {\r\n                    theConfig = extConfig[identifier];\r\n                }\r\n            }\r\n            return (theConfig ? theConfig : defaultValue);\r\n        };\r\n        _self.getConfig = function (identifier, field, defaultValue) {\r\n            if (defaultValue === void 0) { defaultValue = false; }\r\n            var theValue;\r\n            var extConfig = _self.getExtCfg(identifier, null);\r\n            if (extConfig && !isNullOrUndefined(extConfig[field])) {\r\n                theValue = extConfig[field];\r\n            }\r\n            else if (config && !isNullOrUndefined(config[field])) {\r\n                theValue = config[field];\r\n            }\r\n            return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n        };\r\n        _self.hasNext = function () {\r\n            return _nextProxy != null;\r\n        };\r\n        _self.getNext = function () {\r\n            return _nextProxy;\r\n        };\r\n        _self.setNext = function (nextPlugin) {\r\n            _nextProxy = nextPlugin;\r\n        };\r\n        _self.processNext = function (env) {\r\n            var nextPlugin = _nextProxy;\r\n            if (nextPlugin) {\r\n                // Automatically move to the next plugin\r\n                _nextProxy = nextPlugin.getNext();\r\n                nextPlugin.processTelemetry(env, _self);\r\n            }\r\n        };\r\n        _self.createNew = function (plugins, startAt) {\r\n            if (plugins === void 0) { plugins = null; }\r\n            return new ProcessTelemetryContext(plugins || _nextProxy, config, core, startAt);\r\n        };\r\n    }\r\n    return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { dateNow } from \"./HelperFuncs\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = 123456789;\r\nvar _mwcZ = 987654321;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n    if (seedValue < 0) {\r\n        // Make sure we end up with a positive number and not -ve one.\r\n        seedValue >>>= 0;\r\n    }\r\n    _mwcW = (123456789 + seedValue) & MaxUInt32;\r\n    _mwcZ = (987654321 - seedValue) & MaxUInt32;\r\n    _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n    // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n    // and bitwise XOR with the current milliseconds\r\n    try {\r\n        var now = dateNow() & 0x7fffffff;\r\n        _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n    }\r\n    catch (e) {\r\n        // Don't crash if something goes wrong\r\n    }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n    if (maxValue > 0) {\r\n        return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n    }\r\n    return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n    var value;\r\n    var c = getCrypto() || getMsCrypto();\r\n    if (c && c.getRandomValues) {\r\n        // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n        value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n    }\r\n    else if (isIE()) {\r\n        // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n        if (!_mwcSeeded) {\r\n            // Set the seed for the Mwc algorithm\r\n            _autoSeedMwc();\r\n        }\r\n        // Don't use Math.random for IE\r\n        // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n        value = mwcRandom32() & MaxUInt32;\r\n    }\r\n    else {\r\n        // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n        value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n    }\r\n    if (!signed) {\r\n        // Make sure we end up with a positive number and not -ve one.\r\n        value >>>= 0;\r\n    }\r\n    return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n    if (!value) {\r\n        _autoSeedMwc();\r\n    }\r\n    else {\r\n        _mwcSeed(value);\r\n    }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n    _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n    _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n    var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n    if (!signed) {\r\n        // Make sure we end up with a positive number and not -ve one.\r\n        value >>>= 0;\r\n    }\r\n    return value;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from './HelperFuncs';\r\nvar processTelemetry = \"processTelemetry\";\r\nvar priority = \"priority\";\r\nvar setNextPlugin = \"setNextPlugin\";\r\nvar isInitialized = \"isInitialized\";\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n    // Set the next plugin and identified the uninitialized plugins\r\n    var initPlugins = [];\r\n    var lastPlugin = null;\r\n    var proxy = processContext.getNext();\r\n    while (proxy) {\r\n        var thePlugin = proxy.getPlugin();\r\n        if (thePlugin) {\r\n            if (lastPlugin &&\r\n                isFunction(lastPlugin[setNextPlugin]) &&\r\n                isFunction(thePlugin[processTelemetry])) {\r\n                // Set this plugin as the next for the previous one\r\n                lastPlugin[setNextPlugin](thePlugin);\r\n            }\r\n            if (!isFunction(thePlugin[isInitialized]) || !thePlugin[isInitialized]()) {\r\n                initPlugins.push(thePlugin);\r\n            }\r\n            lastPlugin = thePlugin;\r\n            proxy = proxy.getNext();\r\n        }\r\n    }\r\n    // Now initiatilize the plugins\r\n    arrForEach(initPlugins, function (thePlugin) {\r\n        thePlugin.initialize(processContext.getCfg(), processContext.core(), extensions, processContext.getNext());\r\n    });\r\n}\r\nexport function sortPlugins(plugins) {\r\n    // Sort by priority\r\n    return plugins.sort(function (extA, extB) {\r\n        var result = 0;\r\n        var bHasProcess = isFunction(extB[processTelemetry]);\r\n        if (isFunction(extA[processTelemetry])) {\r\n            result = bHasProcess ? extA[priority] - extB[priority] : 1;\r\n        }\r\n        else if (bHasProcess) {\r\n            result = -1;\r\n        }\r\n        return result;\r\n    });\r\n    // sort complete    \r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","/*!\n * Application Insights JavaScript SDK - Core, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { LoggingSeverity, _InternalMessageId } from '../JavaScriptSDK.Enums/LoggingEnums';\r\nimport { isFunction } from './HelperFuncs';\r\nvar TelemetryPluginChain = /** @class */ (function () {\r\n    function TelemetryPluginChain(plugin, defItemCtx) {\r\n        var _self = this;\r\n        var _nextProxy = null;\r\n        var _hasProcessTelemetry = isFunction(plugin.processTelemetry);\r\n        var _hasSetNext = isFunction(plugin.setNextPlugin);\r\n        _self._hasRun = false;\r\n        _self.getPlugin = function () {\r\n            return plugin;\r\n        };\r\n        _self.getNext = function () {\r\n            return _nextProxy;\r\n        };\r\n        _self.setNext = function (nextPlugin) {\r\n            _nextProxy = nextPlugin;\r\n        };\r\n        _self.processTelemetry = function (env, itemCtx) {\r\n            if (!itemCtx) {\r\n                // Looks like a plugin didn't pass the (optional) context, so restore to the default\r\n                itemCtx = defItemCtx;\r\n            }\r\n            var identifier = plugin ? plugin.identifier : \"TelemetryPluginChain\";\r\n            doPerf(itemCtx ? itemCtx.core() : null, function () { return identifier + \":processTelemetry\"; }, function () {\r\n                if (plugin && _hasProcessTelemetry) {\r\n                    _self._hasRun = true;\r\n                    try {\r\n                        // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n                        // doesn't calls processTelemetry() instead of itemContext.processNext() or some \r\n                        // other form of error occurred\r\n                        itemCtx.setNext(_nextProxy);\r\n                        if (_hasSetNext) {\r\n                            // Backward compatibility setting the next plugin on the instance\r\n                            plugin.setNextPlugin(_nextProxy);\r\n                        }\r\n                        // Set a flag on the next plugin so we know if it was attempted to be executed\r\n                        _nextProxy && (_nextProxy._hasRun = false);\r\n                        plugin.processTelemetry(env, itemCtx);\r\n                    }\r\n                    catch (error) {\r\n                        var hasRun = _nextProxy && _nextProxy._hasRun;\r\n                        if (!_nextProxy || !hasRun) {\r\n                            // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n                            // Which means the current one is the root of the failure so log/report this failure\r\n                            itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, \"Plugin [\" + plugin.identifier + \"] failed during processTelemetry - \" + error);\r\n                        }\r\n                        if (_nextProxy && !hasRun) {\r\n                            // As part of the failure the current plugin did not attempt to call the next plugin in the cahin\r\n                            // So rather than leave the pipeline dead in the water we call the next plugin\r\n                            _nextProxy.processTelemetry(env, itemCtx);\r\n                        }\r\n                    }\r\n                }\r\n                else if (_nextProxy) {\r\n                    _self._hasRun = true;\r\n                    // The underlying plugin is either not defined or does not have a processTelemetry implementation\r\n                    // so we still want the next plugin to be executed.\r\n                    _nextProxy.processTelemetry(env, itemCtx);\r\n                }\r\n            }, function () { return ({ item: env }); }, !(env.sync));\r\n        };\r\n    }\r\n    return TelemetryPluginChain;\r\n}());\r\nexport { TelemetryPluginChain };\r\n//# sourceMappingURL=TelemetryPluginChain.js.map","/*!\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { generateW3CId } from '@microsoft/applicationinsights-core-js';\r\nvar Traceparent = /** @class */ (function () {\r\n    function Traceparent(traceId, spanId) {\r\n        var self = this;\r\n        self.traceFlag = Traceparent.DEFAULT_TRACE_FLAG;\r\n        self.version = Traceparent.DEFAULT_VERSION;\r\n        if (traceId && Traceparent.isValidTraceId(traceId)) {\r\n            self.traceId = traceId;\r\n        }\r\n        else {\r\n            self.traceId = generateW3CId();\r\n        }\r\n        if (spanId && Traceparent.isValidSpanId(spanId)) {\r\n            self.spanId = spanId;\r\n        }\r\n        else {\r\n            self.spanId = generateW3CId().substr(0, 16);\r\n        }\r\n    }\r\n    Traceparent.isValidTraceId = function (id) {\r\n        return id.match(/^[0-9a-f]{32}$/) && id !== \"00000000000000000000000000000000\";\r\n    };\r\n    Traceparent.isValidSpanId = function (id) {\r\n        return id.match(/^[0-9a-f]{16}$/) && id !== \"0000000000000000\";\r\n    };\r\n    Traceparent.prototype.toString = function () {\r\n        var self = this;\r\n        return self.version + \"-\" + self.traceId + \"-\" + self.spanId + \"-\" + self.traceFlag;\r\n    };\r\n    Traceparent.DEFAULT_TRACE_FLAG = \"01\";\r\n    Traceparent.DEFAULT_VERSION = \"00\";\r\n    return Traceparent;\r\n}());\r\nexport { Traceparent };\r\n//# sourceMappingURL=TraceParent.js.map","/*!\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { RequestHeaders, CorrelationIdHelper, TelemetryItemCreator, RemoteDependencyData, dateTimeUtilsNow, DisabledPropertyName, PropertiesPluginIdentifier, DistributedTracingModes } from '@microsoft/applicationinsights-common';\r\nimport { isNullOrUndefined, arrForEach, isString, strTrim, isFunction, LoggingSeverity, _InternalMessageId, BaseTelemetryPlugin, getLocation, getGlobal, strUndefined, strPrototype, InstrumentFunc, InstrumentProto, getPerformance, objForEachKey, generateW3CId, getIEVersion, dumpObj } from '@microsoft/applicationinsights-core-js';\r\nimport { ajaxRecord } from './ajaxRecord';\r\nimport { EventHelper } from './ajaxUtils';\r\nimport { Traceparent } from './TraceParent';\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar strAjaxData = \"ajaxData\";\r\nvar strThrowInternal = \"throwInternal\";\r\nvar strFetch = \"fetch\";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n    var _global = getGlobal();\r\n    if (!_global ||\r\n        isNullOrUndefined(_global.Request) ||\r\n        isNullOrUndefined(_global.Request[strPrototype]) ||\r\n        isNullOrUndefined(_global[strFetch])) {\r\n        return null;\r\n    }\r\n    return _global[strFetch];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance) {\r\n    var result = false;\r\n    if (typeof XMLHttpRequest !== strUndefined && !isNullOrUndefined(XMLHttpRequest)) {\r\n        var proto = XMLHttpRequest[strPrototype];\r\n        result = !isNullOrUndefined(proto) &&\r\n            !isNullOrUndefined(proto.open) &&\r\n            !isNullOrUndefined(proto.send) &&\r\n            !isNullOrUndefined(proto.abort);\r\n    }\r\n    var ieVer = getIEVersion();\r\n    if (ieVer && ieVer < 9) {\r\n        result = false;\r\n    }\r\n    if (result) {\r\n        // Disable if the XmlHttpRequest can't be extended or hooked\r\n        try {\r\n            var xhr = new XMLHttpRequest();\r\n            xhr[strAjaxData] = {};\r\n            // Check that we can update the prototype\r\n            var theOpen = XMLHttpRequest[strPrototype].open;\r\n            XMLHttpRequest[strPrototype].open = theOpen;\r\n        }\r\n        catch (e) {\r\n            // We can't decorate the xhr object so disable monitoring\r\n            result = false;\r\n            _throwInternalCritical(ajaxMonitorInstance, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\r\n                exception: dumpObj(e)\r\n            });\r\n        }\r\n    }\r\n    return result;\r\n}\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\r\n    var result = \"\";\r\n    try {\r\n        if (!isNullOrUndefined(xhr) &&\r\n            !isNullOrUndefined(xhr[strAjaxData]) &&\r\n            !isNullOrUndefined(xhr[strAjaxData].requestUrl)) {\r\n            result += \"(url: '\" + xhr[strAjaxData].requestUrl + \"')\";\r\n        }\r\n    }\r\n    catch (e) { }\r\n    return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n    ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.CRITICAL, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n    ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.WARNING, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n    // tslint:disable-next-line\r\n    return function (args) {\r\n        _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {\r\n            ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args.inst),\r\n            exception: dumpObj(args.err)\r\n        });\r\n    };\r\n}\r\nfunction _indexOf(value, match) {\r\n    if (value && match) {\r\n        return value.indexOf(match);\r\n    }\r\n    return -1;\r\n}\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n    __extends(AjaxMonitor, _super);\r\n    function AjaxMonitor() {\r\n        var _this = _super.call(this) || this;\r\n        _this.identifier = AjaxMonitor.identifier;\r\n        _this.priority = 120;\r\n        var strTrackDependencyDataInternal = \"trackDependencyDataInternal\"; // Using string to help with minification\r\n        var location = getLocation();\r\n        var _fetchInitialized = false; // fetch monitoring initialized\r\n        var _xhrInitialized = false; // XHR monitoring initialized\r\n        var _currentWindowHost = location && location.host && location.host.toLowerCase();\r\n        var _config = AjaxMonitor.getEmptyConfig();\r\n        var _enableRequestHeaderTracking = false;\r\n        var _trackAjaxAttempts = 0;\r\n        var _context;\r\n        var _isUsingW3CHeaders;\r\n        var _isUsingAIHeaders;\r\n        var _markPrefix;\r\n        var _enableAjaxPerfTracking = false;\r\n        var _maxAjaxCallsPerView = 0;\r\n        var _enableResponseHeaderTracking = false;\r\n        var _hooks = [];\r\n        var _disabledUrls = {};\r\n        dynamicProto(AjaxMonitor, _this, function (_self, base) {\r\n            _self.initialize = function (config, core, extensions, pluginChain) {\r\n                if (!_self.isInitialized()) {\r\n                    base.initialize(config, core, extensions, pluginChain);\r\n                    var ctx_1 = _self._getTelCtx();\r\n                    var defaultConfig = AjaxMonitor.getDefaultConfig();\r\n                    objForEachKey(defaultConfig, function (field, value) {\r\n                        _config[field] = ctx_1.getConfig(AjaxMonitor.identifier, field, value);\r\n                    });\r\n                    var distributedTracingMode = _config.distributedTracingMode;\r\n                    _enableRequestHeaderTracking = _config.enableRequestHeaderTracking;\r\n                    _enableAjaxPerfTracking = _config.enableAjaxPerfTracking;\r\n                    _maxAjaxCallsPerView = _config.maxAjaxCallsPerView;\r\n                    _enableResponseHeaderTracking = _config.enableResponseHeaderTracking;\r\n                    _isUsingAIHeaders = distributedTracingMode === DistributedTracingModes.AI || distributedTracingMode === DistributedTracingModes.AI_AND_W3C;\r\n                    _isUsingW3CHeaders = distributedTracingMode === DistributedTracingModes.AI_AND_W3C || distributedTracingMode === DistributedTracingModes.W3C;\r\n                    if (_enableAjaxPerfTracking) {\r\n                        var iKey = config.instrumentationKey || \"unkwn\";\r\n                        if (iKey.length > 5) {\r\n                            _markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey.length - 5) + \".\";\r\n                        }\r\n                        else {\r\n                            _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n                        }\r\n                    }\r\n                    if (_config.disableAjaxTracking === false) {\r\n                        _instrumentXhr();\r\n                    }\r\n                    _instrumentFetch();\r\n                    if (extensions.length > 0 && extensions) {\r\n                        var propExt = void 0, extIx = 0;\r\n                        while (!propExt && extIx < extensions.length) {\r\n                            if (extensions[extIx] && extensions[extIx].identifier === PropertiesPluginIdentifier) {\r\n                                propExt = extensions[extIx];\r\n                            }\r\n                            extIx++;\r\n                        }\r\n                        if (propExt) {\r\n                            _context = propExt.context; // we could move IPropertiesPlugin to common as well\r\n                        }\r\n                    }\r\n                }\r\n            };\r\n            _self.teardown = function () {\r\n                // Remove all instrumentation hooks\r\n                arrForEach(_hooks, function (fn) {\r\n                    fn.rm();\r\n                });\r\n                _hooks = [];\r\n                _fetchInitialized = false;\r\n                _xhrInitialized = false;\r\n                _self.setInitialized(false);\r\n            };\r\n            _self.trackDependencyData = function (dependency, properties) {\r\n                _self[strTrackDependencyDataInternal](dependency, properties);\r\n            };\r\n            _self.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\r\n                // Test Hook to allow the overriding of the location host\r\n                var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n                if (input) {\r\n                    if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n                        if (!init) {\r\n                            init = {};\r\n                        }\r\n                        // init headers override original request headers\r\n                        // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n                        // not using original request headers will result in them being lost\r\n                        init.headers = new Headers(init.headers || (input instanceof Request ? (input.headers || {}) : {}));\r\n                        if (_isUsingAIHeaders) {\r\n                            var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n                            init.headers.set(RequestHeaders.requestIdHeader, id);\r\n                            if (_enableRequestHeaderTracking) {\r\n                                ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n                            }\r\n                        }\r\n                        var appId = _config.appId || (_context && _context.appId());\r\n                        if (appId) {\r\n                            init.headers.set(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n                            if (_enableRequestHeaderTracking) {\r\n                                ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n                            }\r\n                        }\r\n                        if (_isUsingW3CHeaders) {\r\n                            var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n                            init.headers.set(RequestHeaders.traceParentHeader, traceparent.toString());\r\n                            if (_enableRequestHeaderTracking) {\r\n                                ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n                            }\r\n                        }\r\n                    }\r\n                    return init;\r\n                }\r\n                else if (xhr) {\r\n                    if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n                        if (_isUsingAIHeaders) {\r\n                            var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n                            xhr.setRequestHeader(RequestHeaders.requestIdHeader, id);\r\n                            if (_enableRequestHeaderTracking) {\r\n                                ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n                            }\r\n                        }\r\n                        var appId = _config.appId || (_context && _context.appId());\r\n                        if (appId) {\r\n                            xhr.setRequestHeader(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n                            if (_enableRequestHeaderTracking) {\r\n                                ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n                            }\r\n                        }\r\n                        if (_isUsingW3CHeaders) {\r\n                            var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n                            xhr.setRequestHeader(RequestHeaders.traceParentHeader, traceparent.toString());\r\n                            if (_enableRequestHeaderTracking) {\r\n                                ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n                            }\r\n                        }\r\n                    }\r\n                    return xhr;\r\n                }\r\n                return undefined;\r\n            };\r\n            _self[strTrackDependencyDataInternal] = function (dependency, properties, systemProperties) {\r\n                if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n                    // Hack since expected format in w3c mode is |abc.def.\r\n                    // Non-w3c format is |abc.def\r\n                    // @todo Remove if better solution is available, e.g. handle in portal\r\n                    if ((_config.distributedTracingMode === DistributedTracingModes.W3C\r\n                        || _config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C)\r\n                        && typeof dependency.id === \"string\" && dependency.id[dependency.id.length - 1] !== \".\") {\r\n                        dependency.id += \".\";\r\n                    }\r\n                    if (isNullOrUndefined(dependency.startTime)) {\r\n                        dependency.startTime = new Date();\r\n                    }\r\n                    var item = TelemetryItemCreator.create(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n                    _self.core.track(item);\r\n                }\r\n                else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n                    _throwInternalCritical(_self, _InternalMessageId.MaxAjaxPerPVExceeded, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n                }\r\n                ++_trackAjaxAttempts;\r\n            };\r\n            // Fetch Stuff\r\n            function _instrumentFetch() {\r\n                var fetch = _supportsFetch();\r\n                if (!fetch) {\r\n                    return;\r\n                }\r\n                var global = getGlobal();\r\n                var isPolyfill = fetch.polyfill;\r\n                if (_config.disableFetchTracking === false) {\r\n                    _hooks.push(InstrumentFunc(global, strFetch, {\r\n                        // Add request hook\r\n                        req: function (callDetails, input, init) {\r\n                            var fetchData;\r\n                            if (_fetchInitialized &&\r\n                                !_isDisabledRequest(null, input, init) &&\r\n                                // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n                                !(isPolyfill && _xhrInitialized)) {\r\n                                var ctx = callDetails.ctx();\r\n                                fetchData = _createFetchRecord(input, init);\r\n                                var newInit = _self.includeCorrelationHeaders(fetchData, input, init);\r\n                                if (newInit !== init) {\r\n                                    callDetails.set(1, newInit);\r\n                                }\r\n                                ctx.data = fetchData;\r\n                            }\r\n                        },\r\n                        rsp: function (callDetails, input) {\r\n                            var fetchData = callDetails.ctx().data;\r\n                            if (fetchData) {\r\n                                // Replace the result with the new promise from this code\r\n                                callDetails.rslt = callDetails.rslt.then(function (response) {\r\n                                    _reportFetchMetrics(callDetails, (response || {}).status, response, fetchData, function () {\r\n                                        var ajaxResponse = {\r\n                                            statusText: response.statusText,\r\n                                            headerMap: null,\r\n                                            correlationContext: _getFetchCorrelationContext(response)\r\n                                        };\r\n                                        if (_enableResponseHeaderTracking) {\r\n                                            var responseHeaderMap_1 = {};\r\n                                            response.headers.forEach(function (value, name) {\r\n                                                responseHeaderMap_1[name] = value;\r\n                                            });\r\n                                            ajaxResponse.headerMap = responseHeaderMap_1;\r\n                                        }\r\n                                        return ajaxResponse;\r\n                                    });\r\n                                    return response;\r\n                                })[\"catch\"](function (reason) {\r\n                                    _reportFetchMetrics(callDetails, 0, input, fetchData, null, { error: reason.message });\r\n                                    throw reason;\r\n                                });\r\n                            }\r\n                        },\r\n                        // Create an error callback to report any hook errors\r\n                        hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\")\r\n                    }));\r\n                    _fetchInitialized = true;\r\n                }\r\n                else if (isPolyfill) {\r\n                    // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n                    // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n                    // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n                    // Note: Polyfill implementations that don't support the \"poyyfill\" tag are not supported\r\n                    // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n                    // App Insights\r\n                    _hooks.push(InstrumentFunc(global, strFetch, {\r\n                        req: function (callDetails, input, init) {\r\n                            // Just call so that we record any disabled URL\r\n                            _isDisabledRequest(null, input, init);\r\n                        }\r\n                    }));\r\n                }\r\n                if (isPolyfill) {\r\n                    // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n                    // But also supports multiple App Insights usages\r\n                    global[strFetch].polyfill = isPolyfill;\r\n                }\r\n            }\r\n            function _hookProto(target, funcName, callbacks) {\r\n                _hooks.push(InstrumentProto(target, funcName, callbacks));\r\n            }\r\n            function _instrumentXhr() {\r\n                if (_supportsAjaxMonitoring(_self) && !_xhrInitialized) {\r\n                    // Instrument open\r\n                    _hookProto(XMLHttpRequest, \"open\", {\r\n                        req: function (args, method, url, async) {\r\n                            var xhr = args.inst;\r\n                            var ajaxData = xhr[strAjaxData];\r\n                            if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true) &&\r\n                                (!ajaxData || !ajaxData.xhrMonitoringState.openDone)) {\r\n                                _openHandler(xhr, method, url, async);\r\n                            }\r\n                        },\r\n                        hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\")\r\n                    });\r\n                    // Instrument send\r\n                    _hookProto(XMLHttpRequest, \"send\", {\r\n                        req: function (args, context) {\r\n                            var xhr = args.inst;\r\n                            var ajaxData = xhr[strAjaxData];\r\n                            if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.sendDone) {\r\n                                _createMarkId(\"xhr\", ajaxData);\r\n                                ajaxData.requestSentTime = dateTimeUtilsNow();\r\n                                xhr = _self.includeCorrelationHeaders(ajaxData, undefined, undefined, xhr);\r\n                                ajaxData.xhrMonitoringState.sendDone = true;\r\n                            }\r\n                        },\r\n                        hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSend, \"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\")\r\n                    });\r\n                    // Instrument abort\r\n                    _hookProto(XMLHttpRequest, \"abort\", {\r\n                        req: function (args) {\r\n                            var xhr = args.inst;\r\n                            var ajaxData = xhr[strAjaxData];\r\n                            if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.abortDone) {\r\n                                ajaxData.aborted = 1;\r\n                                ajaxData.xhrMonitoringState.abortDone = true;\r\n                            }\r\n                        },\r\n                        hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxAbort, \"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\")\r\n                    });\r\n                    // Instrument setRequestHeader\r\n                    if (_enableRequestHeaderTracking) {\r\n                        _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n                            req: function (args, header, value) {\r\n                                var xhr = args.inst;\r\n                                if (_isMonitoredXhrInstance(xhr)) {\r\n                                    xhr[strAjaxData].requestHeaders[header] = value;\r\n                                }\r\n                            },\r\n                            hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSetRequestHeader, \"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\")\r\n                        });\r\n                    }\r\n                    _xhrInitialized = true;\r\n                }\r\n            }\r\n            function _isDisabledRequest(xhr, request, init) {\r\n                var isDisabled = false;\r\n                var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\").toLowerCase();\r\n                var idx = _indexOf(theUrl, \"?\");\r\n                var idx2 = _indexOf(theUrl, \"#\");\r\n                if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n                    idx = idx2;\r\n                }\r\n                if (idx !== -1) {\r\n                    // Strip off any Query string\r\n                    theUrl = theUrl.substring(0, idx);\r\n                }\r\n                // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n                if (!isNullOrUndefined(xhr)) {\r\n                    // Look on the XMLHttpRequest of the URL string value\r\n                    isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n                }\r\n                else if (!isNullOrUndefined(request)) {\r\n                    // Look for DisabledPropertyName in either Request or RequestInit\r\n                    isDisabled = (typeof request === 'object' ? request[DisabledPropertyName] === true : false) ||\r\n                        (init ? init[DisabledPropertyName] === true : false);\r\n                }\r\n                if (isDisabled) {\r\n                    // Add the disabled url if not present\r\n                    if (!_disabledUrls[theUrl]) {\r\n                        _disabledUrls[theUrl] = 1;\r\n                    }\r\n                }\r\n                else {\r\n                    // Check to see if the url is listed as disabled\r\n                    if (_disabledUrls[theUrl]) {\r\n                        isDisabled = true;\r\n                    }\r\n                }\r\n                return isDisabled;\r\n            }\r\n            /// <summary>Verifies that particalar instance of XMLHttpRequest needs to be monitored</summary>\r\n            /// <param name=\"excludeAjaxDataValidation\">Optional parameter. True if ajaxData must be excluded from verification</param>\r\n            /// <returns type=\"bool\">True if instance needs to be monitored, otherwise false</returns>\r\n            function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {\r\n                var ajaxValidation = true;\r\n                var initialized = _xhrInitialized;\r\n                if (!isNullOrUndefined(xhr)) {\r\n                    ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);\r\n                }\r\n                // checking to see that all interested functions on xhr were instrumented\r\n                return initialized\r\n                    // checking on ajaxData to see that it was not removed in user code\r\n                    && ajaxValidation;\r\n            }\r\n            function _openHandler(xhr, method, url, async) {\r\n                var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();\r\n                var spanID = generateW3CId().substr(0, 16);\r\n                var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n                ajaxData.method = method;\r\n                ajaxData.requestUrl = url;\r\n                ajaxData.xhrMonitoringState.openDone = true;\r\n                ajaxData.requestHeaders = {};\r\n                ajaxData.async = async;\r\n                xhr[strAjaxData] = ajaxData;\r\n                _attachToOnReadyStateChange(xhr);\r\n            }\r\n            function _attachToOnReadyStateChange(xhr) {\r\n                xhr[strAjaxData].xhrMonitoringState.stateChangeAttached = EventHelper.Attach(xhr, \"readystatechange\", function () {\r\n                    try {\r\n                        if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\r\n                            _onAjaxComplete(xhr);\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        var exceptionText = dumpObj(e);\r\n                        // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n                        if (!exceptionText || _indexOf(exceptionText.toLowerCase(), \"c00c023f\") === -1) {\r\n                            _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxRSC, \"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\", {\r\n                                ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n                                exception: exceptionText\r\n                            });\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n            function _getResponseText(xhr) {\r\n                try {\r\n                    var responseType = xhr.responseType;\r\n                    if (responseType === \"\" || responseType === \"text\") {\r\n                        // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n                        return xhr.responseText;\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // This shouldn't happend because of the above check -- but just in case, so just ignore\r\n                }\r\n                return null;\r\n            }\r\n            function _onAjaxComplete(xhr) {\r\n                var ajaxData = xhr[strAjaxData];\r\n                ajaxData.responseFinishedTime = dateTimeUtilsNow();\r\n                ajaxData.status = xhr.status;\r\n                function _reportXhrError(e, failedProps) {\r\n                    var errorProps = failedProps || {};\r\n                    errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\r\n                    if (e) {\r\n                        errorProps[\"exception\"] = dumpObj(e);\r\n                    }\r\n                    _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\", errorProps);\r\n                }\r\n                _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n                    try {\r\n                        var dependency = ajaxData.CreateTrackItem(\"Ajax\", _enableRequestHeaderTracking, function () {\r\n                            var ajaxResponse = {\r\n                                statusText: xhr.statusText,\r\n                                headerMap: null,\r\n                                correlationContext: _getAjaxCorrelationContext(xhr),\r\n                                type: xhr.responseType,\r\n                                responseText: _getResponseText(xhr),\r\n                                response: xhr.response\r\n                            };\r\n                            if (_enableResponseHeaderTracking) {\r\n                                var headers = xhr.getAllResponseHeaders();\r\n                                if (headers) {\r\n                                    // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n                                    // the regex converts the header string into an array of individual headers\r\n                                    var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n                                    var responseHeaderMap_2 = {};\r\n                                    arrForEach(arr, function (line) {\r\n                                        var parts = line.split(': ');\r\n                                        var header = parts.shift();\r\n                                        var value = parts.join(': ');\r\n                                        responseHeaderMap_2[header] = value;\r\n                                    });\r\n                                    ajaxResponse.headerMap = responseHeaderMap_2;\r\n                                }\r\n                            }\r\n                            return ajaxResponse;\r\n                        });\r\n                        if (dependency) {\r\n                            _self[strTrackDependencyDataInternal](dependency);\r\n                        }\r\n                        else {\r\n                            _reportXhrError(null, {\r\n                                requestSentTime: ajaxData.requestSentTime,\r\n                                responseFinishedTime: ajaxData.responseFinishedTime\r\n                            });\r\n                        }\r\n                    }\r\n                    finally {\r\n                        // cleanup telemetry data\r\n                        try {\r\n                            xhr[strAjaxData] = null;\r\n                        }\r\n                        catch (e) {\r\n                            // May throw in environments that prevent extension or freeze xhr\r\n                        }\r\n                    }\r\n                }, function (e) {\r\n                    _reportXhrError(e, null);\r\n                });\r\n            }\r\n            function _getAjaxCorrelationContext(xhr) {\r\n                try {\r\n                    var responseHeadersString = xhr.getAllResponseHeaders();\r\n                    if (responseHeadersString !== null) {\r\n                        var index = _indexOf(responseHeadersString.toLowerCase(), RequestHeaders.requestContextHeaderLowerCase);\r\n                        if (index !== -1) {\r\n                            var responseHeader = xhr.getResponseHeader(RequestHeaders.requestContextHeader);\r\n                            return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n                        ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n                        exception: dumpObj(e)\r\n                    });\r\n                }\r\n            }\r\n            function _createMarkId(type, ajaxData) {\r\n                if (ajaxData.requestUrl && _markPrefix && _enableAjaxPerfTracking) {\r\n                    var performance_1 = getPerformance();\r\n                    if (performance_1 && isFunction(performance_1.mark)) {\r\n                        _markCount++;\r\n                        var markId = _markPrefix + type + \"#\" + _markCount;\r\n                        performance_1.mark(markId);\r\n                        var entries = performance_1.getEntriesByName(markId);\r\n                        if (entries && entries.length === 1) {\r\n                            ajaxData.perfMark = entries[0];\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n                var perfMark = ajaxData.perfMark;\r\n                var performance = getPerformance();\r\n                var maxAttempts = _config.maxAjaxPerfLookupAttempts;\r\n                var retryDelay = _config.ajaxPerfLookupDelay;\r\n                var requestUrl = ajaxData.requestUrl;\r\n                var attempt = 0;\r\n                (function locateResourceTiming() {\r\n                    try {\r\n                        if (performance && perfMark) {\r\n                            attempt++;\r\n                            var perfTiming = null;\r\n                            var entries = performance.getEntries();\r\n                            for (var lp = entries.length - 1; lp >= 0; lp--) {\r\n                                var entry = entries[lp];\r\n                                if (entry) {\r\n                                    if (entry.entryType === \"resource\") {\r\n                                        if (entry.initiatorType === initiatorType &&\r\n                                            (_indexOf(entry.name, requestUrl) !== -1 || _indexOf(requestUrl, entry.name) !== -1)) {\r\n                                            perfTiming = entry;\r\n                                        }\r\n                                    }\r\n                                    else if (entry.entryType === \"mark\" && entry.name === perfMark.name) {\r\n                                        // We hit the start event\r\n                                        ajaxData.perfTiming = perfTiming;\r\n                                        break;\r\n                                    }\r\n                                    if (entry.startTime < perfMark.startTime - 1000) {\r\n                                        // Fallback to try and reduce the time spent looking for the perf entry\r\n                                        break;\r\n                                    }\r\n                                }\r\n                            }\r\n                        }\r\n                        if (!perfMark || // - we don't have a perfMark or\r\n                            ajaxData.perfTiming || // - we have not found the perf entry or\r\n                            attempt >= maxAttempts || // - we have tried too many attempts or\r\n                            ajaxData.async === false) {\r\n                            if (perfMark && isFunction(performance.clearMarks)) {\r\n                                // Remove the mark so we don't fill up the performance resources too much\r\n                                performance.clearMarks(perfMark.name);\r\n                            }\r\n                            ajaxData.perfAttempts = attempt;\r\n                            // just continue and report the track event\r\n                            trackCallback();\r\n                        }\r\n                        else {\r\n                            // We need to wait for the browser to populate the window.performance entry\r\n                            // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n                            // this is a scheduling issue for the browser implementation\r\n                            setTimeout(locateResourceTiming, retryDelay);\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        reportError(e);\r\n                    }\r\n                })();\r\n            }\r\n            function _createFetchRecord(input, init) {\r\n                var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();\r\n                var spanID = generateW3CId().substr(0, 16);\r\n                var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n                ajaxData.requestSentTime = dateTimeUtilsNow();\r\n                if (input instanceof Request) {\r\n                    ajaxData.requestUrl = input ? input.url : \"\";\r\n                }\r\n                else {\r\n                    ajaxData.requestUrl = input;\r\n                }\r\n                var method = \"GET\";\r\n                if (init && init.method) {\r\n                    method = init.method;\r\n                }\r\n                else if (input && input instanceof Request) {\r\n                    method = input.method;\r\n                }\r\n                ajaxData.method = method;\r\n                var requestHeaders = {};\r\n                if (_enableRequestHeaderTracking) {\r\n                    var headers = new Headers((init ? init.headers : 0) || (input instanceof Request ? (input.headers || {}) : {}));\r\n                    headers.forEach(function (value, key) {\r\n                        requestHeaders[key] = value;\r\n                    });\r\n                }\r\n                ajaxData.requestHeaders = requestHeaders;\r\n                _createMarkId(\"fetch\", ajaxData);\r\n                return ajaxData;\r\n            }\r\n            function _getFailedFetchDiagnosticsMessage(input) {\r\n                var result = \"\";\r\n                try {\r\n                    if (!isNullOrUndefined(input)) {\r\n                        if (typeof (input) === \"string\") {\r\n                            result += \"(url: '\" + input + \"')\";\r\n                        }\r\n                        else {\r\n                            result += \"(url: '\" + input.url + \"')\";\r\n                        }\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n                }\r\n                return result;\r\n            }\r\n            function _reportFetchMetrics(callDetails, status, input, ajaxData, getResponse, properties) {\r\n                if (!ajaxData) {\r\n                    return;\r\n                }\r\n                function _reportFetchError(msgId, e, failedProps) {\r\n                    var errorProps = failedProps || {};\r\n                    errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n                    if (e) {\r\n                        errorProps[\"exception\"] = dumpObj(e);\r\n                    }\r\n                    _throwInternalWarning(_self, msgId, \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\", errorProps);\r\n                }\r\n                ajaxData.responseFinishedTime = dateTimeUtilsNow();\r\n                ajaxData.status = status;\r\n                _findPerfResourceEntry(\"fetch\", ajaxData, function () {\r\n                    var dependency = ajaxData.CreateTrackItem(\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n                    if (dependency) {\r\n                        _self[strTrackDependencyDataInternal](dependency);\r\n                    }\r\n                    else {\r\n                        _reportFetchError(_InternalMessageId.FailedMonitorAjaxDur, null, {\r\n                            requestSentTime: ajaxData.requestSentTime,\r\n                            responseFinishedTime: ajaxData.responseFinishedTime\r\n                        });\r\n                    }\r\n                }, function (e) {\r\n                    _reportFetchError(_InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, e, null);\r\n                });\r\n            }\r\n            function _getFetchCorrelationContext(response) {\r\n                if (response && response.headers) {\r\n                    try {\r\n                        var responseHeader = response.headers.get(RequestHeaders.requestContextHeader);\r\n                        return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n                    }\r\n                    catch (e) {\r\n                        _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n                            fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\r\n                            exception: dumpObj(e)\r\n                        });\r\n                    }\r\n                }\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n    AjaxMonitor.getDefaultConfig = function () {\r\n        var config = {\r\n            maxAjaxCallsPerView: 500,\r\n            disableAjaxTracking: false,\r\n            disableFetchTracking: true,\r\n            disableCorrelationHeaders: false,\r\n            distributedTracingMode: DistributedTracingModes.AI_AND_W3C,\r\n            correlationHeaderExcludedDomains: [\r\n                \"*.blob.core.windows.net\",\r\n                \"*.blob.core.chinacloudapi.cn\",\r\n                \"*.blob.core.cloudapi.de\",\r\n                \"*.blob.core.usgovcloudapi.net\"\r\n            ],\r\n            correlationHeaderDomains: undefined,\r\n            appId: undefined,\r\n            enableCorsCorrelation: false,\r\n            enableRequestHeaderTracking: false,\r\n            enableResponseHeaderTracking: false,\r\n            enableAjaxErrorStatusText: false,\r\n            enableAjaxPerfTracking: false,\r\n            maxAjaxPerfLookupAttempts: 3,\r\n            ajaxPerfLookupDelay: 25\r\n        };\r\n        return config;\r\n    };\r\n    AjaxMonitor.getEmptyConfig = function () {\r\n        var emptyConfig = this.getDefaultConfig();\r\n        objForEachKey(emptyConfig, function (value) {\r\n            emptyConfig[value] = undefined;\r\n        });\r\n        return emptyConfig;\r\n    };\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n// Removed Stub for AjaxMonitor.prototype.teardown.\r\n    AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n        this.processNext(item, itemCtx);\r\n    };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n    AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n    return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","/*!\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { DataSanitizer, dateTimeUtilsDuration, urlGetAbsoluteUrl, urlGetCompleteUrl, msToTimeSpan } from '@microsoft/applicationinsights-common';\r\nimport { objKeys, arrForEach, isNumber, isString, normalizeJsName, objForEachKey } from '@microsoft/applicationinsights-core-js';\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar strProperties = \"properties\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n    var result = 0;\r\n    var from = resourceEntry[start];\r\n    var to = resourceEntry[end];\r\n    if (from && to) {\r\n        result = dateTimeUtilsDuration(from, to);\r\n    }\r\n    return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n    var result = 0;\r\n    var value = _calcPerfDuration(resourceEntry, start, end);\r\n    if (value) {\r\n        result = _setPerfValue(props, name, msToTimeSpan(value));\r\n    }\r\n    return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n    var strPerf = \"ajaxPerf\";\r\n    var result = 0;\r\n    if (props && name && value) {\r\n        var perfData = props[strPerf] = (props[strPerf] || {});\r\n        perfData[name] = value;\r\n        result = 1;\r\n    }\r\n    return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n    /*\r\n    * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n    *  | -startTime\r\n    *  | -redirectStart\r\n    *  |            | -redirectEnd\r\n    *  |            | | -fetchStart\r\n    *  |            | |   | -domainLookupStart\r\n    *  |            | |   |                |- domainLookupEnd\r\n    *  |            | |   |                | | -connectStart\r\n    *  |            | |   |                | |  | -secureConnectionStart\r\n    *  |            | |   |                | |  |        | -connectEnd\r\n    *  |            | |   |                | |  |        | | -requestStart\r\n    *  |            | |   |                | |  |        | |           | | -responseStart\r\n    *  |            | |   |                | |  |        | |           | |            | | -responseEnd\r\n    *  +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n    *  |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n    *  |-------------------networkConnect----------------|\r\n    *  |                                                   |---------sentRequest--------|\r\n    *  |------------------------------------perfTotal-----------------------------------|\r\n    */\r\n    var resourceEntry = ajaxData.perfTiming;\r\n    var props = dependency[strProperties] || {};\r\n    var propsSet = 0;\r\n    var strName = \"name\";\r\n    var strStart = \"Start\";\r\n    var strEnd = \"End\";\r\n    var strDomainLookup = \"domainLookup\";\r\n    var strConnect = \"connect\";\r\n    var strRedirect = \"redirect\";\r\n    var strRequest = \"request\";\r\n    var strResponse = \"response\";\r\n    var strDuration = \"duration\";\r\n    var strStartTime = \"startTime\";\r\n    var strDomainLookupStart = strDomainLookup + strStart;\r\n    var strDomainLookupEnd = strDomainLookup + strEnd;\r\n    var strConnectStart = strConnect + strStart;\r\n    var strConnectEnd = strConnect + strEnd;\r\n    var strRequestStart = strRequest + strStart;\r\n    var strRequestEnd = strRequest + strEnd;\r\n    var strResponseStart = strResponse + strStart;\r\n    var strResponseEnd = strResponse + strEnd;\r\n    var strRedirectStart = strRedirect + strStart;\r\n    var strRedirectEnd = strRedirect = strEnd;\r\n    var strTransferSize = \"transferSize\";\r\n    var strEncodedBodySize = \"encodedBodySize\";\r\n    var strDecodedBodySize = \"decodedBodySize\";\r\n    var strServerTiming = \"serverTiming\";\r\n    if (resourceEntry) {\r\n        // redirect\r\n        propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n        // domainLookup\r\n        propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n        // connect\r\n        propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n        // request\r\n        propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n        // response\r\n        propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n        // Network connection time\r\n        propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n        // Sent Request\r\n        propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n        // PerfTotal / Duration\r\n        var duration = resourceEntry[strDuration];\r\n        if (!duration) {\r\n            duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n        }\r\n        propsSet |= _setPerfValue(props, strDuration, duration);\r\n        propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n        var serverTiming = resourceEntry[strServerTiming];\r\n        if (serverTiming) {\r\n            var server_1 = {};\r\n            arrForEach(serverTiming, function (value, idx) {\r\n                var name = normalizeJsName(value[strName] || \"\" + idx);\r\n                var newValue = server_1[name] || {};\r\n                objForEachKey(value, function (key, val) {\r\n                    if (key !== strName && isString(val) || isNumber(val)) {\r\n                        if (newValue[key]) {\r\n                            val = newValue[key] + \";\" + val;\r\n                        }\r\n                        if (val || !isString(val)) {\r\n                            // Only set the value if it has a value and it's not an empty string\r\n                            newValue[key] = val;\r\n                        }\r\n                    }\r\n                });\r\n                server_1[name] = newValue;\r\n            });\r\n            propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n        }\r\n        propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n        propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n        propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n    }\r\n    else {\r\n        if (ajaxData.perfMark) {\r\n            propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n        }\r\n    }\r\n    if (propsSet) {\r\n        dependency[strProperties] = props;\r\n    }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n    function XHRMonitoringState() {\r\n        var self = this;\r\n        self.openDone = false;\r\n        self.setRequestHeaderDone = false;\r\n        self.sendDone = false;\r\n        self.abortDone = false;\r\n        // <summary>True, if onreadyStateChangeCallback function attached to xhr, otherwise false</summary>\r\n        self.stateChangeAttached = false;\r\n    }\r\n    return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n    function ajaxRecord(traceID, spanID, logger) {\r\n        var self = this;\r\n        var _logger = logger;\r\n        var strResponseText = \"responseText\";\r\n        // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n        // this.XXXX = null\r\n        self.perfMark = null;\r\n        self.completed = false;\r\n        self.requestHeadersSize = null;\r\n        self.requestHeaders = null;\r\n        self.responseReceivingDuration = null;\r\n        self.callbackDuration = null;\r\n        self.ajaxTotalDuration = null;\r\n        self.aborted = 0;\r\n        self.pageUrl = null;\r\n        self.requestUrl = null;\r\n        self.requestSize = 0;\r\n        self.method = null;\r\n        self.status = null;\r\n        self.requestSentTime = null;\r\n        self.responseStartedTime = null;\r\n        self.responseFinishedTime = null;\r\n        self.callbackFinishedTime = null;\r\n        self.endTime = null;\r\n        self.xhrMonitoringState = new XHRMonitoringState();\r\n        self.clientFailure = 0;\r\n        self.traceID = traceID;\r\n        self.spanID = spanID;\r\n        dynamicProto(ajaxRecord, self, function (self) {\r\n            self.getAbsoluteUrl = function () {\r\n                return self.requestUrl ? urlGetAbsoluteUrl(self.requestUrl) : null;\r\n            };\r\n            self.getPathName = function () {\r\n                return self.requestUrl ? DataSanitizer.sanitizeUrl(_logger, urlGetCompleteUrl(self.method, self.requestUrl)) : null;\r\n            };\r\n            self.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n                // round to 3 decimal points\r\n                self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n                if (self.ajaxTotalDuration < 0) {\r\n                    return null;\r\n                }\r\n                var dependency = (_a = {\r\n                        id: \"|\" + self.traceID + \".\" + self.spanID,\r\n                        target: self.getAbsoluteUrl(),\r\n                        name: self.getPathName(),\r\n                        type: ajaxType,\r\n                        startTime: null,\r\n                        duration: self.ajaxTotalDuration,\r\n                        success: (+(self.status)) >= 200 && (+(self.status)) < 400,\r\n                        responseCode: (+(self.status)),\r\n                        method: self.method\r\n                    },\r\n                    _a[strProperties] = { HttpMethod: self.method },\r\n                    _a);\r\n                if (self.requestSentTime) {\r\n                    // Set the correct dependency start time\r\n                    dependency.startTime = new Date();\r\n                    dependency.startTime.setTime(self.requestSentTime);\r\n                }\r\n                // Add Ajax perf details if available\r\n                _populatePerfData(self, dependency);\r\n                if (enableRequestHeaderTracking) {\r\n                    if (objKeys(self.requestHeaders).length > 0) {\r\n                        dependency[strProperties] = dependency[strProperties] || {};\r\n                        dependency[strProperties].requestHeaders = self.requestHeaders;\r\n                    }\r\n                }\r\n                if (getResponse) {\r\n                    var response = getResponse();\r\n                    if (response) {\r\n                        // enrich dependency target with correlation context from the server\r\n                        var correlationContext = response.correlationContext;\r\n                        if (correlationContext) {\r\n                            dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n                        }\r\n                        if (response.headerMap) {\r\n                            if (objKeys(response.headerMap).length > 0) {\r\n                                dependency[strProperties] = dependency[strProperties] || {};\r\n                                dependency[strProperties].responseHeaders = response.headerMap;\r\n                            }\r\n                        }\r\n                        if (self.status >= 400) {\r\n                            var responseType = response.type;\r\n                            dependency[strProperties] = dependency[strProperties] || {};\r\n                            if (responseType === \"\" || responseType === \"text\") {\r\n                                dependency[strProperties][strResponseText] = response[strResponseText] ? response.statusText + \" - \" + response[strResponseText] : response.statusText;\r\n                            }\r\n                            if (responseType === \"json\") {\r\n                                dependency[strProperties][strResponseText] = response.response ? response.statusText + \" - \" + JSON.stringify(response.response) : response.statusText;\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n                return dependency;\r\n                var _a;\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n    return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n;\r\n//# sourceMappingURL=ajaxRecord.js.map","/*!\n * Application Insights JavaScript SDK - Properties Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n    function Application() {\r\n    }\r\n    return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","/*!\n * Application Insights JavaScript SDK - Properties Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the Device class\r\n     */\r\n    function Device() {\r\n        // don't attempt to fingerprint browsers\r\n        this.id = \"browser\";\r\n        // Device type is a dimension in our data platform\r\n        // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n        this.deviceClass = \"Browser\";\r\n    }\r\n    return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","/*!\n * Application Insights JavaScript SDK - Properties Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Version = \"2.6.1\";\r\nvar Internal = /** @class */ (function () {\r\n    /**\r\n     * Constructs a new instance of the internal telemetry data class.\r\n     */\r\n    function Internal(config) {\r\n        this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + \"_\" : \"\") + \"javascript:\" + Version;\r\n    }\r\n    return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","/*!\n * Application Insights JavaScript SDK - Properties Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n    function Location() {\r\n    }\r\n    return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","/*!\n * Application Insights JavaScript SDK - Properties Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from '@microsoft/applicationinsights-common';\r\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, isFunction, newId, dumpObj, getExceptionName, dateNow, safeGetLogger } from '@microsoft/applicationinsights-core-js';\r\nvar cookieNameConst = 'ai_session';\r\nvar Session = /** @class */ (function () {\r\n    function Session() {\r\n    }\r\n    return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n    function _SessionManager(config, core) {\r\n        var self = this;\r\n        var _storageNamePrefix;\r\n        var _cookieUpdatedTimestamp;\r\n        var _logger = safeGetLogger(core);\r\n        var _cookieManager = safeGetCookieMgr(core);\r\n        dynamicProto(_SessionManager, self, function (_self) {\r\n            if (!config) {\r\n                config = {};\r\n            }\r\n            if (!isFunction(config.sessionExpirationMs)) {\r\n                config.sessionExpirationMs = function () { return _SessionManager.acquisitionSpan; };\r\n            }\r\n            if (!isFunction(config.sessionRenewalMs)) {\r\n                config.sessionRenewalMs = function () { return _SessionManager.renewalSpan; };\r\n            }\r\n            _self.config = config;\r\n            _storageNamePrefix = function () { return _self.config.namePrefix && _self.config.namePrefix() ? cookieNameConst + _self.config.namePrefix() : cookieNameConst; };\r\n            _self.automaticSession = new Session();\r\n            _self.update = function () {\r\n                // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n                // the number to be incorrect.\r\n                var nowMs = dateNow();\r\n                var isExpired = false;\r\n                var session = _self.automaticSession;\r\n                if (!session.id) {\r\n                    isExpired = !_initializeAutomaticSession(session, nowMs);\r\n                }\r\n                var sessionExpirationMs = _self.config.sessionExpirationMs();\r\n                if (!isExpired && sessionExpirationMs > 0) {\r\n                    var sessionRenewalMs = _self.config.sessionRenewalMs();\r\n                    var timeSinceAcqMs = nowMs - session.acquisitionDate;\r\n                    var timeSinceRenewalMs = nowMs - session.renewalDate;\r\n                    isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n                    isExpired = isExpired || timeSinceAcqMs > sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n                    isExpired = isExpired || timeSinceRenewalMs > sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n                }\r\n                // renew if acquisitionSpan or renewalSpan has elapsed\r\n                if (isExpired) {\r\n                    // update automaticSession so session state has correct id\r\n                    _renew(nowMs);\r\n                }\r\n                else {\r\n                    // do not update the cookie more often than cookieUpdateInterval\r\n                    if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\r\n                        _setCookie(session, nowMs);\r\n                    }\r\n                }\r\n            };\r\n            /**\r\n             *  Record the current state of the automatic session and store it in our cookie string format\r\n             *  into the browser's local storage. This is used to restore the session data when the cookie\r\n             *  expires.\r\n             */\r\n            _self.backup = function () {\r\n                var session = _self.automaticSession;\r\n                _setStorage(session.id, session.acquisitionDate, session.renewalDate);\r\n            };\r\n            /**\r\n             * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n             * initialize the automatic session.\r\n             * @returns true if values set otherwise false\r\n             */\r\n            function _initializeAutomaticSession(session, now) {\r\n                var isValid = false;\r\n                var cookieValue = _cookieManager.get(_storageNamePrefix());\r\n                if (cookieValue && isFunction(cookieValue.split)) {\r\n                    isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n                }\r\n                else {\r\n                    // There's no cookie, but we might have session data in local storage\r\n                    // This can happen if the session expired or the user actively deleted the cookie\r\n                    // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n                    // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n                    var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix());\r\n                    if (storageValue) {\r\n                        isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n                    }\r\n                }\r\n                return isValid || !!session.id;\r\n            }\r\n            /**\r\n             * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n             * use this data to initialize automaticSession.\r\n             *\r\n             * @param {string} sessionData - The string stored in an ai_session cookie or local storage backup\r\n             * @returns true if values set otherwise false\r\n             */\r\n            function _initializeAutomaticSessionWithData(session, sessionData) {\r\n                var isValid = false;\r\n                var sessionReset = \", session will be reset\";\r\n                var tokens = sessionData.split(\"|\");\r\n                if (tokens.length >= 2) {\r\n                    try {\r\n                        var acqMs = +tokens[1] || 0;\r\n                        var renewalMs = +tokens[2] || 0;\r\n                        if (isNaN(acqMs) || acqMs <= 0) {\r\n                            _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session acquisition date is 0\" + sessionReset);\r\n                        }\r\n                        else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n                            _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session renewal date is 0\" + sessionReset);\r\n                        }\r\n                        else if (tokens[0]) {\r\n                            // Everything looks valid so set the values\r\n                            session.id = tokens[0];\r\n                            session.acquisitionDate = acqMs;\r\n                            session.renewalDate = renewalMs;\r\n                            isValid = true;\r\n                        }\r\n                    }\r\n                    catch (e) {\r\n                        _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ErrorParsingAISessionCookie, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n                    }\r\n                }\r\n                return isValid;\r\n            }\r\n            function _renew(nowMs) {\r\n                var theConfig = (_self.config || {});\r\n                var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\r\n                _self.automaticSession.id = getNewId(theConfig.idLength ? theConfig.idLength() : 22);\r\n                _self.automaticSession.acquisitionDate = nowMs;\r\n                _setCookie(_self.automaticSession, nowMs);\r\n                // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n                if (!utlCanUseLocalStorage()) {\r\n                    _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserDoesNotSupportLocalStorage, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n                }\r\n            }\r\n            function _setCookie(session, nowMs) {\r\n                var acq = session.acquisitionDate;\r\n                session.renewalDate = nowMs;\r\n                var config = _self.config;\r\n                var renewalPeriodMs = config.sessionRenewalMs();\r\n                // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n                // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n                var acqTimeLeftMs = (acq + config.sessionExpirationMs()) - nowMs;\r\n                var cookie = [session.id, acq, nowMs];\r\n                var maxAgeSec = 0;\r\n                if (acqTimeLeftMs < renewalPeriodMs) {\r\n                    maxAgeSec = acqTimeLeftMs / 1000;\r\n                }\r\n                else {\r\n                    maxAgeSec = renewalPeriodMs / 1000;\r\n                }\r\n                var cookieDomain = config.cookieDomain ? config.cookieDomain() : null;\r\n                // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n                // A cookie with 0 expiry in the session cookie will never expire for that browser session.  If the browser is closed the cookie expires.  \r\n                // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n                _cookieManager.set(_storageNamePrefix(), cookie.join('|'), config.sessionExpirationMs() > 0 ? maxAgeSec : null, cookieDomain);\r\n                _cookieUpdatedTimestamp = nowMs;\r\n            }\r\n            function _setStorage(guid, acq, renewal) {\r\n                // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n                // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n                // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n                utlSetLocalStorage(_logger, _storageNamePrefix(), [guid, acq, renewal].join('|'));\r\n            }\r\n        });\r\n    }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n    _SessionManager.acquisitionSpan = 86400000; // 24 hours in ms\r\n    _SessionManager.renewalSpan = 1800000; // 30 minutes in ms\r\n    _SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\r\n    return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","/*!\n * Application Insights JavaScript SDK - Properties Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { DataSanitizer } from '@microsoft/applicationinsights-common';\r\nimport { generateW3CId, getLocation } from '@microsoft/applicationinsights-core-js';\r\nvar TelemetryTrace = /** @class */ (function () {\r\n    function TelemetryTrace(id, parentId, name, logger) {\r\n        var _self = this;\r\n        _self.traceID = id || generateW3CId();\r\n        _self.parentID = parentId;\r\n        _self.name = name;\r\n        var location = getLocation();\r\n        if (!name && location && location.pathname) {\r\n            _self.name = location.pathname;\r\n        }\r\n        _self.name = DataSanitizer.sanitizeString(logger, _self.name);\r\n    }\r\n    return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/*!\n * Application Insights JavaScript SDK - Properties Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from '@microsoft/applicationinsights-common';\r\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, safeGetLogger, newId, toISOString } from '@microsoft/applicationinsights-core-js';\r\nfunction _validateUserInput(id) {\r\n    // Validate:\r\n    // 1. Id is a non-empty string.\r\n    // 2. It does not contain special characters for cookies.\r\n    if (typeof id !== 'string' ||\r\n        !id ||\r\n        id.match(/,|;|=| |\\|/)) {\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n    function User(config, core) {\r\n        this.isNewUser = false;\r\n        var _logger = safeGetLogger(core);\r\n        var _cookieManager = safeGetCookieMgr(core);\r\n        dynamicProto(User, this, function (_self) {\r\n            // get userId or create new one if none exists\r\n            var cookie = _cookieManager.get(User.userCookieName);\r\n            if (cookie) {\r\n                _self.isNewUser = false;\r\n                var params = cookie.split(User.cookieSeparator);\r\n                if (params.length > 0) {\r\n                    _self.id = params[0];\r\n                }\r\n            }\r\n            _self.config = config;\r\n            if (!_self.id) {\r\n                var theConfig = (config || {});\r\n                var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\r\n                _self.id = getNewId(theConfig.idLength ? config.idLength() : 22);\r\n                // without expiration, cookies expire at the end of the session\r\n                // set it to 365 days from now\r\n                // 365 * 24 * 60 * 60 = 31536000 \r\n                var oneYear = 31536000;\r\n                var acqStr = toISOString(new Date());\r\n                _self.accountAcquisitionDate = acqStr;\r\n                _self.isNewUser = true;\r\n                var newCookie = [_self.id, acqStr];\r\n                _cookieManager.set(User.userCookieName, newCookie.join(User.cookieSeparator), oneYear);\r\n                // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n                // We should respect their wishes and clear ourselves from local storage\r\n                var name_1 = config.namePrefix && config.namePrefix() ? config.namePrefix() + 'ai_session' : 'ai_session';\r\n                utlRemoveStorage(_logger, name_1);\r\n            }\r\n            // We still take the account id from the ctor param for backward compatibility. \r\n            // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n            _self.accountId = config.accountId ? config.accountId() : undefined;\r\n            // Get the auth user id and account id from the cookie if exists\r\n            // Cookie is in the pattern: <authenticatedId>|<accountId>\r\n            var authCookie = _cookieManager.get(User.authUserCookieName);\r\n            if (authCookie) {\r\n                authCookie = decodeURI(authCookie);\r\n                var authCookieString = authCookie.split(User.cookieSeparator);\r\n                if (authCookieString[0]) {\r\n                    _self.authenticatedId = authCookieString[0];\r\n                }\r\n                if (authCookieString.length > 1 && authCookieString[1]) {\r\n                    _self.accountId = authCookieString[1];\r\n                }\r\n            }\r\n            _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n                if (storeInCookie === void 0) { storeInCookie = false; }\r\n                // Validate inputs to ensure no cookie control characters.\r\n                var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n                if (isInvalidInput) {\r\n                    _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SetAuthContextFailedAccountName, \"Setting auth user context failed. \" +\r\n                        \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n                    return;\r\n                }\r\n                // Create cookie string.\r\n                _self.authenticatedId = authenticatedUserId;\r\n                var authCookie = _self.authenticatedId;\r\n                if (accountId) {\r\n                    _self.accountId = accountId;\r\n                    authCookie = [_self.authenticatedId, _self.accountId].join(User.cookieSeparator);\r\n                }\r\n                if (storeInCookie) {\r\n                    // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n                    // Encoding the cookie to handle unexpected unicode characters.\r\n                    _cookieManager.set(User.authUserCookieName, encodeURI(authCookie));\r\n                }\r\n            };\r\n            /**\r\n             * Clears the authenticated user id and the account id from the user context.\r\n             * @returns {}\r\n             */\r\n            _self.clearAuthenticatedUserContext = function () {\r\n                _self.authenticatedId = null;\r\n                _self.accountId = null;\r\n                _cookieManager.del(User.authUserCookieName);\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n    User.cookieSeparator = '|';\r\n    User.userCookieName = 'ai_user';\r\n    User.authUserCookieName = 'ai_authUser';\r\n    return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/*!\n * Application Insights JavaScript SDK - Properties Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, isNullOrUndefined, _InternalLogMessage, LoggingSeverity, _InternalMessageId, getNavigator, objForEachKey, getSetValue } from '@microsoft/applicationinsights-core-js';\r\nimport { TelemetryContext } from './TelemetryContext';\r\nimport { PageView, BreezeChannelIdentifier, PropertiesPluginIdentifier, getExtensionByName } from '@microsoft/applicationinsights-common';\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n    __extends(PropertiesPlugin, _super);\r\n    function PropertiesPlugin() {\r\n        var _this = _super.call(this) || this;\r\n        _this.priority = 110;\r\n        _this.identifier = PropertiesPluginIdentifier;\r\n        var _breezeChannel; // optional. If exists, grab appId from it\r\n        var _extensionConfig;\r\n        dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n            _self.initialize = function (config, core, extensions, pluginChain) {\r\n                _base.initialize(config, core, extensions, pluginChain);\r\n                var ctx = _self._getTelCtx();\r\n                var identifier = _self.identifier;\r\n                var defaultConfig = PropertiesPlugin.getDefaultConfig();\r\n                _extensionConfig = _extensionConfig || {};\r\n                objForEachKey(defaultConfig, function (field, value) {\r\n                    _extensionConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n                });\r\n                _self.context = new TelemetryContext(core, _extensionConfig);\r\n                _breezeChannel = getExtensionByName(extensions, BreezeChannelIdentifier);\r\n                _self.context.appId = function () { return _breezeChannel ? _breezeChannel[\"_appId\"] : null; };\r\n                // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n                _self[\"_extConfig\"] = _extensionConfig;\r\n            };\r\n            /**\r\n             * Add Part A fields to the event\r\n             * @param event The event that needs to be processed\r\n             */\r\n            _self.processTelemetry = function (event, itemCtx) {\r\n                if (isNullOrUndefined(event)) {\r\n                    // TODO(barustum): throw an internal event once we have support for internal logging\r\n                }\r\n                else {\r\n                    itemCtx = _self._getTelCtx(itemCtx);\r\n                    // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n                    if (event.name === PageView.envelopeType) {\r\n                        itemCtx.diagLog().resetInternalMessageCount();\r\n                    }\r\n                    var theContext = (_self.context || {});\r\n                    if (theContext.session) {\r\n                        // If customer did not provide custom session id update the session manager\r\n                        if (typeof _self.context.session.id !== \"string\" && theContext.sessionManager) {\r\n                            theContext.sessionManager.update();\r\n                        }\r\n                    }\r\n                    _processTelemetryInternal(event, itemCtx);\r\n                    if (theContext.user && theContext.user.isNewUser) {\r\n                        theContext.user.isNewUser = false;\r\n                        var message = new _InternalLogMessage(_InternalMessageId.SendBrowserInfoOnUserInit, ((getNavigator() || {}).userAgent || \"\"));\r\n                        itemCtx.diagLog().logInternalMessage(LoggingSeverity.CRITICAL, message);\r\n                    }\r\n                    _self.processNext(event, itemCtx);\r\n                }\r\n            };\r\n            function _processTelemetryInternal(evt, itemCtx) {\r\n                // Set Part A fields\r\n                getSetValue(evt, \"tags\", []);\r\n                getSetValue(evt, \"ext\", {});\r\n                var ctx = _self.context;\r\n                ctx.applySessionContext(evt, itemCtx);\r\n                ctx.applyApplicationContext(evt, itemCtx);\r\n                ctx.applyDeviceContext(evt, itemCtx);\r\n                ctx.applyOperationContext(evt, itemCtx);\r\n                ctx.applyUserContext(evt, itemCtx);\r\n                ctx.applyOperatingSystemContxt(evt, itemCtx);\r\n                ctx.applyWebContext(evt, itemCtx);\r\n                ctx.applyLocationContext(evt, itemCtx); // legacy tags\r\n                ctx.applyInternalContext(evt, itemCtx); // legacy tags\r\n                ctx.cleanUp(evt, itemCtx);\r\n            }\r\n        });\r\n        return _this;\r\n    }\r\n    PropertiesPlugin.getDefaultConfig = function () {\r\n        var defaultConfig = {\r\n            instrumentationKey: function () { return undefined; },\r\n            accountId: function () { return null; },\r\n            sessionRenewalMs: function () { return 30 * 60 * 1000; },\r\n            samplingPercentage: function () { return 100; },\r\n            sessionExpirationMs: function () { return 24 * 60 * 60 * 1000; },\r\n            cookieDomain: function () { return null; },\r\n            sdkExtension: function () { return null; },\r\n            isBrowserLinkTrackingEnabled: function () { return false; },\r\n            appId: function () { return null; },\r\n            namePrefix: function () { return undefined; },\r\n            idLength: function () { return 22; },\r\n            getNewId: function () { return null; }\r\n        };\r\n        return defaultConfig;\r\n    };\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n    return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","/*!\n * Application Insights JavaScript SDK - Properties Plugin, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n * TelemetryContext.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport dynamicProto from '@microsoft/dynamicproto-js';\r\nimport { isString, objKeys, hasWindow, _InternalLogMessage, setValue, getSetValue } from '@microsoft/applicationinsights-core-js';\r\nimport { Session, _SessionManager } from './Context/Session';\r\nimport { Extensions, CtxTagKeys, PageView } from '@microsoft/applicationinsights-common';\r\nimport { Application } from './Context/Application';\r\nimport { Device } from './Context/Device';\r\nimport { Internal } from './Context/Internal';\r\nimport { User } from './Context/User';\r\nimport { Location } from './Context/Location';\r\nimport { TelemetryTrace } from './Context/TelemetryTrace';\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n    if (target && target[name] && objKeys(target[name]).length === 0) {\r\n        delete target[name];\r\n    }\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n    function TelemetryContext(core, defaultConfig) {\r\n        var _this = this;\r\n        var logger = core.logger;\r\n        this.appId = function () { return null; };\r\n        dynamicProto(TelemetryContext, this, function (_self) {\r\n            _self.application = new Application();\r\n            _self.internal = new Internal(defaultConfig);\r\n            if (hasWindow()) {\r\n                _self.sessionManager = new _SessionManager(defaultConfig, core);\r\n                _self.device = new Device();\r\n                _self.location = new Location();\r\n                _self.user = new User(defaultConfig, core);\r\n                _self.telemetryTrace = new TelemetryTrace(undefined, undefined, undefined, logger);\r\n                _self.session = new Session();\r\n            }\r\n            _self.applySessionContext = function (evt, itemCtx) {\r\n                var session = _self.session;\r\n                var sessionManager = _self.sessionManager;\r\n                // If customer set session info, apply their context; otherwise apply context automatically generated\r\n                if (session && isString(session.id)) {\r\n                    setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", session.id);\r\n                }\r\n                else if (sessionManager && sessionManager.automaticSession) {\r\n                    setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", sessionManager.automaticSession.id, isString);\r\n                }\r\n            };\r\n            _self.applyOperatingSystemContxt = function (evt, itemCtx) {\r\n                setValue(evt.ext, Extensions.OSExt, _self.os);\r\n            };\r\n            _self.applyApplicationContext = function (evt, itemCtx) {\r\n                var application = _self.application;\r\n                if (application) {\r\n                    // evt.ext.app\r\n                    var tags = getSetValue(evt, strTags);\r\n                    setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n                    setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n                }\r\n            };\r\n            _self.applyDeviceContext = function (evt, itemCtx) {\r\n                var device = _self.device;\r\n                if (device) {\r\n                    // evt.ext.device\r\n                    var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n                    setValue(extDevice, \"localId\", device.id, isString);\r\n                    setValue(extDevice, \"ip\", device.ip, isString);\r\n                    setValue(extDevice, \"model\", device.model, isString);\r\n                    setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n                }\r\n            };\r\n            _self.applyInternalContext = function (evt, itemCtx) {\r\n                var internal = _self.internal;\r\n                if (internal) {\r\n                    var tags = getSetValue(evt, strTags);\r\n                    setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n                    setValue(tags, CtxTagKeys.internalSdkVersion, internal.sdkVersion, isString);\r\n                    if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n                        setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n                        setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n                    }\r\n                }\r\n            };\r\n            _self.applyLocationContext = function (evt, itemCtx) {\r\n                var location = _this.location;\r\n                if (location) {\r\n                    setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n                }\r\n            };\r\n            _self.applyOperationContext = function (evt, itemCtx) {\r\n                var telemetryTrace = _self.telemetryTrace;\r\n                if (telemetryTrace) {\r\n                    var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n                    setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString);\r\n                    setValue(extTrace, \"name\", telemetryTrace.name, isString);\r\n                    setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString);\r\n                }\r\n            };\r\n            _self.applyWebContext = function (evt, itemCtx) {\r\n                var web = _this.web;\r\n                if (web) {\r\n                    setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n                }\r\n            };\r\n            _self.applyUserContext = function (evt, itemCtx) {\r\n                var user = _self.user;\r\n                if (user) {\r\n                    var tags = getSetValue(evt, strTags, []);\r\n                    // stays in tags\r\n                    setValue(tags, CtxTagKeys.userAccountId, user.accountId, isString);\r\n                    // CS 4.0\r\n                    var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n                    setValue(extUser, \"id\", user.id, isString);\r\n                    setValue(extUser, \"authId\", user.authenticatedId, isString);\r\n                }\r\n            };\r\n            _self.cleanUp = function (evt, itemCtx) {\r\n                var ext = evt.ext;\r\n                if (ext) {\r\n                    _removeEmpty(ext, Extensions.DeviceExt);\r\n                    _removeEmpty(ext, Extensions.UserExt);\r\n                    _removeEmpty(ext, Extensions.WebExt);\r\n                    _removeEmpty(ext, Extensions.OSExt);\r\n                    _removeEmpty(ext, Extensions.AppExt);\r\n                    _removeEmpty(ext, Extensions.TraceExt);\r\n                }\r\n            };\r\n        });\r\n    }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n    return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strShimHasOwnProperty = \"hasOwnProperty\";\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - <null> (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\nexport function getGlobal() {\r\n    if (typeof globalThis !== strShimUndefined && globalThis) {\r\n        return globalThis;\r\n    }\r\n    if (typeof self !== strShimUndefined && self) {\r\n        return self;\r\n    }\r\n    if (typeof window !== strShimUndefined && window) {\r\n        return window;\r\n    }\r\n    if (typeof global !== strShimUndefined && global) {\r\n        return global;\r\n    }\r\n    return null;\r\n}\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function objCreateFn(obj) {\r\n    var func = Object[\"create\"];\r\n    // Use build in Object.create\r\n    if (func) {\r\n        // Use Object create method if it exists\r\n        return func(obj);\r\n    }\r\n    if (obj == null) {\r\n        return {};\r\n    }\r\n    var type = typeof obj;\r\n    if (type !== strShimObject && type !== strShimFunction) {\r\n        throw new TypeError('Object prototype may only be an Object:' + obj);\r\n    }\r\n    function tmpFunc() { }\r\n    tmpFunc[strShimPrototype] = obj;\r\n    return new tmpFunc();\r\n}\r\nexport function __assignFn(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) {\r\n            if (Object[strShimPrototype][strShimHasOwnProperty].call(s, p)) {\r\n                t[p] = s[p];\r\n            }\r\n        }\r\n    }\r\n    return t;\r\n}\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar __extendStaticsFn = function (d, b) {\r\n    __extendStaticsFn = Object[\"setPrototypeOf\"] ||\r\n        // tslint:disable-next-line: only-arrow-functions\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        // tslint:disable-next-line: only-arrow-functions\r\n        function (d, b) {\r\n            for (var p in b) {\r\n                if (b[strShimHasOwnProperty](p)) {\r\n                    d[p] = b[p];\r\n                }\r\n            }\r\n        };\r\n    return __extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n    __extendStaticsFn(d, b);\r\n    function __() { this.constructor = d; }\r\n    // tslint:disable-next-line: ban-comma-operator\r\n    d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nvar globalObj = getGlobal() || {};\r\n// tslint:disable: only-arrow-functions\r\n(function (root, assignFn, extendsFn) {\r\n    // Assign the globally scoped versions of the functions -- used when consuming individual ts files\r\n    // If check is to support NativeScript where these are marked as readonly\r\n    if (!root.__assign) {\r\n        root.__assign = Object.assign || assignFn;\r\n    }\r\n    if (!root.__extends) {\r\n        root.__extends = extendsFn;\r\n    }\r\n})(globalObj, __assignFn, __extendsFn);\r\n// Assign local variables that will be used for embedded scenarios, if check is to support NativeScript where these are marked as readonly\r\nif (!__assign) {\r\n    __assign = globalObj.__assign;\r\n}\r\nif (!__extends) {\r\n    __extends = globalObj.__extends;\r\n}\r\n//# sourceMappingURL=applicationinsights-shims.js.map","/*!\n * Application Insights JavaScript SDK - Web, 2.6.1\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { AppInsightsCore, LoggingSeverity, _InternalMessageId, hasWindow, hasDocument, isReactNative, doPerf, objForEachKey, proxyAssign, arrForEach, isString, isFunction, isNullOrUndefined, addEventHandler, isArray, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from '@microsoft/applicationinsights-dependencies-js';\r\nimport { Util, CorrelationIdHelper, UrlHelper, DateTimeUtils, ConnectionStringParser, FieldType, RequestHeaders, DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, AIData, AIBase, Envelope, Event, Exception, Metric, PageView, PageViewData, RemoteDependencyData, Trace, PageViewPerformance, Data, SeverityLevel, ConfigurationManager, ContextTagKeys, DataSanitizer, TelemetryItemCreator, CtxTagKeys, Extensions, DistributedTracingModes, PropertiesPluginIdentifier, BreezeChannelIdentifier, AnalyticsPluginIdentifier, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\n\"use strict\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n    \"snippet\", \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\",\r\n];\r\n;\r\n// Re-exposing the Common classes as Telemetry, the list was taken by reviewing the generated code for the build while using\r\n// the previous configuration :-\r\n// import * as Common from \"@microsoft/applicationinsights-common\"\r\n// export const Telemetry = Common;\r\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\r\nexport var Telemetry = {\r\n    __proto__: null,\r\n    PropertiesPluginIdentifier: PropertiesPluginIdentifier,\r\n    BreezeChannelIdentifier: BreezeChannelIdentifier,\r\n    AnalyticsPluginIdentifier: AnalyticsPluginIdentifier,\r\n    Util: Util,\r\n    CorrelationIdHelper: CorrelationIdHelper,\r\n    UrlHelper: UrlHelper,\r\n    DateTimeUtils: DateTimeUtils,\r\n    ConnectionStringParser: ConnectionStringParser,\r\n    FieldType: FieldType,\r\n    RequestHeaders: RequestHeaders,\r\n    DisabledPropertyName: DisabledPropertyName,\r\n    ProcessLegacy: ProcessLegacy,\r\n    SampleRate: SampleRate,\r\n    HttpMethod: HttpMethod,\r\n    DEFAULT_BREEZE_ENDPOINT: DEFAULT_BREEZE_ENDPOINT,\r\n    AIData: AIData,\r\n    AIBase: AIBase,\r\n    Envelope: Envelope,\r\n    Event: Event,\r\n    Exception: Exception,\r\n    Metric: Metric,\r\n    PageView: PageView,\r\n    PageViewData: PageViewData,\r\n    RemoteDependencyData: RemoteDependencyData,\r\n    Trace: Trace,\r\n    PageViewPerformance: PageViewPerformance,\r\n    Data: Data,\r\n    SeverityLevel: SeverityLevel,\r\n    ConfigurationManager: ConfigurationManager,\r\n    ContextTagKeys: ContextTagKeys,\r\n    DataSanitizer: DataSanitizer,\r\n    TelemetryItemCreator: TelemetryItemCreator,\r\n    CtxTagKeys: CtxTagKeys,\r\n    Extensions: Extensions,\r\n    DistributedTracingModes: DistributedTracingModes\r\n};\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar Initialization = /** @class */ (function () {\r\n    function Initialization(snippet) {\r\n        var _self = this;\r\n        // initialize the queue and config in case they are undefined\r\n        _self._snippetVersion = \"\" + (snippet.sv || snippet.version || \"\");\r\n        snippet.queue = snippet.queue || [];\r\n        snippet.version = snippet.version || 2.0; // Default to new version\r\n        var config = snippet.config || {};\r\n        if (config.connectionString) {\r\n            var cs = parseConnectionString(config.connectionString);\r\n            var ingest = cs.ingestionendpoint;\r\n            config.endpointUrl = ingest ? ingest + \"/v2/track\" : config.endpointUrl; // only add /v2/track when from connectionstring\r\n            config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;\r\n        }\r\n        _self.appInsights = new ApplicationInsights();\r\n        _self.properties = new PropertiesPlugin();\r\n        _self.dependencies = new DependenciesPlugin();\r\n        _self.core = new AppInsightsCore();\r\n        _self.snippet = snippet;\r\n        _self.config = config;\r\n        _self.getSKUDefaults();\r\n    }\r\n    // Analytics Plugin\r\n    /**\r\n     * Get the current cookie manager for this instance\r\n     */\r\n    Initialization.prototype.getCookieMgr = function () {\r\n        return this.appInsights.getCookieMgr();\r\n    };\r\n    ;\r\n    /**\r\n     * Log a user action or other occurrence.\r\n     * @param {IEventTelemetry} event\r\n     * @param {ICustomProperties} [customProperties]\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.trackEvent = function (event, customProperties) {\r\n        this.appInsights.trackEvent(event, customProperties);\r\n    };\r\n    /**\r\n     * Logs that a page, or similar container was displayed to the user.\r\n     * @param {IPageViewTelemetry} pageView\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.trackPageView = function (pageView) {\r\n        var inPv = pageView || {};\r\n        this.appInsights.trackPageView(inPv);\r\n    };\r\n    /**\r\n     * Log a bag of performance information via the customProperties field.\r\n     * @param {IPageViewPerformanceTelemetry} pageViewPerformance\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.trackPageViewPerformance = function (pageViewPerformance) {\r\n        var inPvp = pageViewPerformance || {};\r\n        this.appInsights.trackPageViewPerformance(inPvp);\r\n    };\r\n    /**\r\n     * Log an exception that you have caught.\r\n     * @param {IExceptionTelemetry} exception\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.trackException = function (exception) {\r\n        if (exception && !exception.exception && exception.error) {\r\n            exception.exception = exception.error;\r\n        }\r\n        this.appInsights.trackException(exception);\r\n    };\r\n    /**\r\n     * Manually send uncaught exception telemetry. This method is automatically triggered\r\n     * on a window.onerror event.\r\n     * @param {IAutoExceptionTelemetry} exception\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype._onerror = function (exception) {\r\n        this.appInsights._onerror(exception);\r\n    };\r\n    /**\r\n     * Log a diagnostic scenario such entering or leaving a function.\r\n     * @param {ITraceTelemetry} trace\r\n     * @param {ICustomProperties} [customProperties]\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.trackTrace = function (trace, customProperties) {\r\n        this.appInsights.trackTrace(trace, customProperties);\r\n    };\r\n    /**\r\n     * Log a numeric value that is not associated with a specific event. Typically used\r\n     * to send regular reports of performance indicators.\r\n     *\r\n     * To send a single measurement, just use the `name` and `average` fields\r\n     * of {@link IMetricTelemetry}.\r\n     *\r\n     * If you take measurements frequently, you can reduce the telemetry bandwidth by\r\n     * aggregating multiple measurements and sending the resulting average and modifying\r\n     * the `sampleCount` field of {@link IMetricTelemetry}.\r\n     * @param {IMetricTelemetry} metric input object argument. Only `name` and `average` are mandatory.\r\n     * @param {ICustomProperties} [customProperties]\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.trackMetric = function (metric, customProperties) {\r\n        this.appInsights.trackMetric(metric, customProperties);\r\n    };\r\n    /**\r\n     * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n     * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n     * and send the event.\r\n     * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n     */\r\n    Initialization.prototype.startTrackPage = function (name) {\r\n        this.appInsights.startTrackPage(name);\r\n    };\r\n    /**\r\n     * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n     * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n     * @param   name  The string you used as the name in startTrackPage. Defaults to the document title.\r\n     * @param   url   String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n     * @param   properties  map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n     * @param   measurements    map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n     */\r\n    Initialization.prototype.stopTrackPage = function (name, url, customProperties, measurements) {\r\n        this.appInsights.stopTrackPage(name, url, customProperties, measurements);\r\n    };\r\n    Initialization.prototype.startTrackEvent = function (name) {\r\n        this.appInsights.startTrackEvent(name);\r\n    };\r\n    /**\r\n     * Log an extended event that you started timing with `startTrackEvent`.\r\n     * @param   name    The string you used to identify this event in `startTrackEvent`.\r\n     * @param   properties  map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n     * @param   measurements    map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n     */\r\n    Initialization.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n        this.appInsights.stopTrackEvent(name, properties, measurements); // Todo: Fix to pass measurements once type is updated\r\n    };\r\n    Initialization.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n        return this.appInsights.addTelemetryInitializer(telemetryInitializer);\r\n    };\r\n    // Properties Plugin\r\n    /**\r\n     * Set the authenticated user id and the account id. Used for identifying a specific signed-in user. Parameters must not contain whitespace or ,;=|\r\n     *\r\n     * The method will only set the `authenticatedUserId` and `accountId` in the current page view. To set them for the whole session, you should set `storeInCookie = true`\r\n     * @param {string} authenticatedUserId\r\n     * @param {string} [accountId]\r\n     * @param {boolean} [storeInCookie=false]\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n        if (storeInCookie === void 0) { storeInCookie = false; }\r\n        this.properties.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie);\r\n    };\r\n    /**\r\n     * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.clearAuthenticatedUserContext = function () {\r\n        this.properties.context.user.clearAuthenticatedUserContext();\r\n    };\r\n    // Dependencies Plugin\r\n    /**\r\n     * Log a dependency call (e.g. ajax)\r\n     * @param {IDependencyTelemetry} dependency\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.trackDependencyData = function (dependency) {\r\n        this.dependencies.trackDependencyData(dependency);\r\n    };\r\n    // Misc\r\n    /**\r\n     * Manually trigger an immediate send of all telemetry still in the buffer.\r\n     * @param {boolean} [async=true]\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.flush = function (async) {\r\n        var _this = this;\r\n        if (async === void 0) { async = true; }\r\n        doPerf(this.core, function () { return \"AISKU.flush\"; }, function () {\r\n            arrForEach(_this.core.getTransmissionControls(), function (channels) {\r\n                arrForEach(channels, function (channel) {\r\n                    channel.flush(async);\r\n                });\r\n            });\r\n        }, null, async);\r\n    };\r\n    /**\r\n     * Manually trigger an immediate send of all telemetry still in the buffer using beacon Sender.\r\n     * Fall back to xhr sender if beacon is not supported.\r\n     * @param {boolean} [async=true]\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.onunloadFlush = function (async) {\r\n        if (async === void 0) { async = true; }\r\n        arrForEach(this.core.getTransmissionControls(), function (channels) {\r\n            arrForEach(channels, function (channel) {\r\n                if (channel.onunloadFlush) {\r\n                    channel.onunloadFlush();\r\n                }\r\n                else {\r\n                    channel.flush(async);\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Initialize this instance of ApplicationInsights\r\n     * @returns {IApplicationInsights}\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n        var _this = this;\r\n        if (legacyMode === void 0) { legacyMode = false; }\r\n        var _self = this;\r\n        function _updateSnippetProperties(snippet) {\r\n            if (snippet) {\r\n                var snippetVer = \"\";\r\n                if (!isNullOrUndefined(_self._snippetVersion)) {\r\n                    snippetVer += _self._snippetVersion;\r\n                }\r\n                if (legacyMode) {\r\n                    snippetVer += \".lg\";\r\n                }\r\n                if (_self.context && _self.context.internal) {\r\n                    _self.context.internal.snippetVer = snippetVer || \"-\";\r\n                }\r\n                // apply updated properties to the global instance (snippet)\r\n                objForEachKey(_self, function (field, value) {\r\n                    if (isString(field) &&\r\n                        !isFunction(value) &&\r\n                        field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n                        _ignoreUpdateSnippetProperties.indexOf(field) === -1) {\r\n                        snippet[field] = value;\r\n                    }\r\n                });\r\n            }\r\n        }\r\n        // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n        if (legacyMode && _self.config.extensions && _self.config.extensions.length > 0) {\r\n            throwError(\"Extensions not allowed in legacy mode\");\r\n        }\r\n        doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n            var extensions = [];\r\n            var appInsightsChannel = new Sender();\r\n            extensions.push(appInsightsChannel);\r\n            extensions.push(_self.properties);\r\n            extensions.push(_self.dependencies);\r\n            extensions.push(_self.appInsights);\r\n            // initialize core\r\n            _self.core.initialize(_self.config, extensions, logger, notificationManager);\r\n            _self.context = _self.properties.context;\r\n            if (_internalSdkSrc && _self.context) {\r\n                _self.context.internal.sdkSrc = _internalSdkSrc;\r\n            }\r\n            _updateSnippetProperties(_self.snippet);\r\n            // Empty queue of all api calls logged prior to sdk download\r\n            _self.emptyQueue();\r\n            _self.pollInternalLogs();\r\n            _self.addHousekeepingBeforeUnload(_this);\r\n        });\r\n        return _self;\r\n    };\r\n    /**\r\n     * Overwrite the lazy loaded fields of global window snippet to contain the\r\n     * actual initialized API methods\r\n     * @param {Snippet} snippet\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.updateSnippetDefinitions = function (snippet) {\r\n        // apply full appInsights to the global instance\r\n        // Note: This must be called before loadAppInsights is called\r\n        proxyAssign(snippet, this, function (name) {\r\n            // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n            return name && _ignoreUpdateSnippetProperties.indexOf(name) === -1;\r\n        });\r\n    };\r\n    /**\r\n     * Call any functions that were queued before the main script was loaded\r\n     * @memberof Initialization\r\n     */\r\n    Initialization.prototype.emptyQueue = function () {\r\n        var _self = this;\r\n        // call functions that were queued before the main script was loaded\r\n        try {\r\n            if (isArray(_self.snippet.queue)) {\r\n                // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n                var length_1 = _self.snippet.queue.length;\r\n                for (var i = 0; i < length_1; i++) {\r\n                    var call = _self.snippet.queue[i];\r\n                    call();\r\n                }\r\n                _self.snippet.queue = undefined;\r\n                delete _self.snippet.queue;\r\n            }\r\n        }\r\n        catch (exception) {\r\n            var properties = {};\r\n            if (exception && isFunction(exception.toString)) {\r\n                properties.exception = exception.toString();\r\n            }\r\n            // need from core\r\n            // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n            //     LoggingSeverity.WARNING,\r\n            //     _InternalMessageId.FailedToSendQueuedTelemetry,\r\n            //     \"Failed to send queued telemetry\",\r\n            //     properties);\r\n        }\r\n    };\r\n    Initialization.prototype.pollInternalLogs = function () {\r\n        this.core.pollInternalLogs();\r\n    };\r\n    Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {\r\n        // Add callback to push events when the user navigates away\r\n        if (hasWindow() || hasDocument()) {\r\n            var performHousekeeping = function () {\r\n                // Adds the ability to flush all data before the page unloads.\r\n                // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n                // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n                // Telemetry here will help us analyze how effective this approach is.\r\n                // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n                // impact on user experience.\r\n                // appInsightsInstance.context._sender.triggerSend();\r\n                appInsightsInstance.onunloadFlush(false);\r\n                // Back up the current session to local storage\r\n                // This lets us close expired sessions after the cookies themselves expire\r\n                arrForEach(appInsightsInstance.appInsights.core['_extensions'], function (ext) {\r\n                    if (ext.identifier === PropertiesPluginIdentifier) {\r\n                        if (ext && ext.context && ext.context._sessionManager) {\r\n                            ext.context._sessionManager.backup();\r\n                        }\r\n                        return -1;\r\n                    }\r\n                });\r\n            };\r\n            if (!appInsightsInstance.appInsights.config.disableFlushOnBeforeUnload) {\r\n                // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n                // As just hooking the window does not always fire (on chrome) for page navigations.\r\n                var added = addEventHandler('beforeunload', performHousekeeping);\r\n                added = addEventHandler('pagehide', performHousekeeping) || added;\r\n                // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n                // log the failure in this case\r\n                if (!added && !isReactNative()) {\r\n                    appInsightsInstance.appInsights.core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToAddHandlerForOnBeforeUnload, 'Could not add handler for beforeunload and pagehide');\r\n                }\r\n            }\r\n            // We also need to hook the pagehide event as not all versions of Safari support load/unload events.\r\n            if (!appInsightsInstance.appInsights.config.disableFlushOnUnload) {\r\n                // Not adding any telemetry as pagehide as it's not supported on all browsers\r\n                addEventHandler('pagehide', performHousekeeping);\r\n            }\r\n        }\r\n    };\r\n    Initialization.prototype.getSKUDefaults = function () {\r\n        var _self = this;\r\n        _self.config.diagnosticLogInterval =\r\n            _self.config.diagnosticLogInterval && _self.config.diagnosticLogInterval > 0 ? _self.config.diagnosticLogInterval : 10000;\r\n    };\r\n    return Initialization;\r\n}());\r\nexport { Initialization };\r\n// tslint:disable-next-line\r\n(function () {\r\n    var sdkSrc = null;\r\n    var isModule = false;\r\n    var cdns = [\r\n        \"://js.monitor.azure.com/\",\r\n        \"://az416426.vo.msecnd.net/\"\r\n    ];\r\n    try {\r\n        // Try and determine whether the sdk is being loaded from the CDN\r\n        // currentScript is only valid during initial processing\r\n        var scrpt = (document || {}).currentScript;\r\n        if (scrpt) {\r\n            sdkSrc = scrpt.src;\r\n            // } else {\r\n            //     // We need to update to at least typescript 2.9 for this to work :-(\r\n            //     // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n            //     let meta = import.meta;\r\n            //     sdkSrc = (meta || {}).url;\r\n            //     isModule = true;\r\n        }\r\n    }\r\n    catch (e) {\r\n    }\r\n    if (sdkSrc) {\r\n        try {\r\n            var url = sdkSrc.toLowerCase();\r\n            if (url) {\r\n                var src = \"\";\r\n                for (var idx = 0; idx < cdns.length; idx++) {\r\n                    if (url.indexOf(cdns[idx]) !== -1) {\r\n                        src = \"cdn\" + (idx + 1);\r\n                        if (url.indexOf(\"/scripts/\") === -1) {\r\n                            if (url.indexOf(\"/next/\") !== -1) {\r\n                                src += \"-next\";\r\n                            }\r\n                            else if (url.indexOf(\"/beta/\") !== -1) {\r\n                                src += \"-beta\";\r\n                            }\r\n                        }\r\n                        _internalSdkSrc = src + (isModule ? \".mod\" : \"\");\r\n                        break;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        catch (e) {\r\n        }\r\n    }\r\n})();\r\n//# sourceMappingURL=Initialization.js.map","/*!\n * Microsoft Dynamic Proto Utility, 1.1.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n/**\r\n * Gets the runtime global reference\r\n * @returns\r\n */\r\nfunction _getGlobal() {\r\n    var result;\r\n    if (typeof globalThis !== UNDEFINED) {\r\n        result = globalThis;\r\n    }\r\n    if (!result && typeof self !== UNDEFINED) {\r\n        result = self;\r\n    }\r\n    if (!result && typeof window !== UNDEFINED) {\r\n        result = window;\r\n    }\r\n    if (!result && typeof global !== UNDEFINED) {\r\n        result = global;\r\n    }\r\n    return result || {};\r\n}\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = _getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n    o: (_a = {},\r\n        _a[strSetInstFuncs] = true,\r\n        _a[strUseBaseInst] = true,\r\n        _a),\r\n    n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n    return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n    return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n    return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n    var newProto;\r\n    if (target) {\r\n        // This method doesn't exist in older browsers (e.g. IE8)\r\n        if (_objGetPrototypeOf) {\r\n            return _objGetPrototypeOf(target);\r\n        }\r\n        var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n        // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n        newProto = target[DynProtoBaseProto] || curProto;\r\n        if (!_hasOwnProperty(target, DynProtoBaseProto)) {\r\n            // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n            // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n            delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n            newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n            target[DynProtoCurrent] = curProto;\r\n        }\r\n    }\r\n    return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n    var props = [];\r\n    if (_objGetOwnProps) {\r\n        props = _objGetOwnProps(target);\r\n    }\r\n    else {\r\n        for (var name_1 in target) {\r\n            if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\r\n                props.push(name_1);\r\n            }\r\n        }\r\n    }\r\n    if (props && props.length > 0) {\r\n        for (var lp = 0; lp < props.length; lp++) {\r\n            func(props[lp]);\r\n        }\r\n    }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n    return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n    throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n    // Get the base proto\r\n    var instFuncs = {};\r\n    // Save any existing instance functions\r\n    _forEachProp(thisTarget, function (name) {\r\n        // Don't include any dynamic prototype instances - as we only want the real functions\r\n        if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n            // Create an instance callback for passing the base function to the caller\r\n            instFuncs[name] = thisTarget[name];\r\n        }\r\n    });\r\n    return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value  The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n    for (var lp = values.length - 1; lp >= 0; lp--) {\r\n        if (values[lp] === value) {\r\n            return true;\r\n        }\r\n    }\r\n    return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n    function _instFuncProxy(target, funcHost, funcName) {\r\n        var theFunc = funcHost[funcName];\r\n        if (theFunc[DynProxyTag] && useBaseInst) {\r\n            // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n            var instFuncTable = target[DynInstFuncTable] || {};\r\n            if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n                theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n            }\r\n        }\r\n        return function () {\r\n            // eslint-disable-next-line prefer-rest-params\r\n            return theFunc.apply(target, arguments);\r\n        };\r\n    }\r\n    // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n    var baseFuncs = {};\r\n    _forEachProp(instFuncs, function (name) {\r\n        // Create an instance callback for passing the base function to the caller\r\n        baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n    });\r\n    // Get the base prototype functions\r\n    var baseProto = _getObjProto(classProto);\r\n    var visited = [];\r\n    // Don't include base object functions for Object, Array or Function\r\n    while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n        // look for prototype functions\r\n        _forEachProp(baseProto, function (name) {\r\n            // Don't include any dynamic prototype instances - as we only want the real functions\r\n            // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n            // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n            // the Object prototype methods while bypassing the check\r\n            if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n                // Create an instance callback for passing the base function to the caller\r\n                baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n            }\r\n        });\r\n        // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n        // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n        // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n        visited.push(baseProto);\r\n        baseProto = _getObjProto(baseProto);\r\n    }\r\n    return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n    var instFunc = null;\r\n    // We need to check whether the class name is defined directly on this prototype otherwise\r\n    // it will walk the proto chain and return any parent proto classname.\r\n    if (target && _hasOwnProperty(proto, DynClassName)) {\r\n        var instFuncTable = target[DynInstFuncTable] || {};\r\n        instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n        if (!instFunc) {\r\n            // Avoid stack overflow from recursive calling the same function\r\n            _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n        }\r\n        // We have the instance function, lets check it we can speed up further calls\r\n        // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n        if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n            // If the instance already has an instance function we can't replace it\r\n            var canAddInst = !_hasOwnProperty(target, funcName);\r\n            // Get current prototype\r\n            var objProto = _getObjProto(target);\r\n            var visited = [];\r\n            // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n            // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n            while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n                var protoFunc = objProto[funcName];\r\n                if (protoFunc) {\r\n                    canAddInst = (protoFunc === currentDynProtoProxy);\r\n                    break;\r\n                }\r\n                // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n                visited.push(objProto);\r\n                objProto = _getObjProto(objProto);\r\n            }\r\n            try {\r\n                if (canAddInst) {\r\n                    // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n                    // so it's safe to directly assign for any subsequent calls (for better performance)\r\n                    target[funcName] = instFunc;\r\n                }\r\n                // Block further attempts to set the instance function for any\r\n                instFunc[DynInstChkTag] = 1;\r\n            }\r\n            catch (e) {\r\n                // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n                // And set a flag so we don't try again for any function\r\n                instFuncTable[DynAllowInstChkTag] = false;\r\n            }\r\n        }\r\n    }\r\n    return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n    var protoFunc = proto[funcName];\r\n    // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n    if (protoFunc === currentDynProtoProxy) {\r\n        // It is so lookup the base prototype\r\n        protoFunc = _getObjProto(proto)[funcName];\r\n    }\r\n    if (typeof protoFunc !== strFunction) {\r\n        _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n    }\r\n    return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n    function _createDynamicPrototype(proto, funcName) {\r\n        var dynProtoProxy = function () {\r\n            // Use the instance or prototype function\r\n            var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n            // eslint-disable-next-line prefer-rest-params\r\n            return instFunc.apply(this, arguments);\r\n        };\r\n        // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n        // via which can dynamically replace the prototype function reference)\r\n        dynProtoProxy[DynProxyTag] = 1;\r\n        return dynProtoProxy;\r\n    }\r\n    if (!_isObjectOrArrayPrototype(proto)) {\r\n        var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n        var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n        // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n        if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n            instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n        }\r\n        _forEachProp(target, function (name) {\r\n            // Only add overridden functions\r\n            if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n                // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n                instFuncs_1[name] = target[name];\r\n                delete target[name];\r\n                // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n                if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n                    proto[name] = _createDynamicPrototype(proto, name);\r\n                }\r\n            }\r\n        });\r\n    }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n    // This method doesn't existing in older browsers (e.g. IE8)\r\n    if (_objGetPrototypeOf) {\r\n        // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n        var visited = [];\r\n        var thisProto = _getObjProto(thisTarget);\r\n        while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n            if (thisProto === classProto) {\r\n                return true;\r\n            }\r\n            // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n            // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n            visited.push(thisProto);\r\n            thisProto = _getObjProto(thisProto);\r\n        }\r\n        return false;\r\n    }\r\n    // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n    return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n    if (_hasOwnProperty(target, Prototype)) {\r\n        // Look like a prototype\r\n        return target.name || unknownValue || UnknownValue;\r\n    }\r\n    return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n *     constructor() {\r\n *         dynamicProto(ExampleClass, this, (_self, base) => {\r\n *             // This will define a function that will be converted to a prototype function\r\n *             _self.newFunc = () => {\r\n *                 // Access any \"this\" instance property\r\n *                 if (_self.someProperty) {\r\n *                     ...\r\n *                 }\r\n *             }\r\n *             // This will define a function that will be converted to a prototype function\r\n *             _self.myFunction = () => {\r\n *                 // Access any \"this\" instance property\r\n *                 if (_self.someProperty) {\r\n *                     // Call the base version of the function that we are overriding\r\n *                     base.myFunction();\r\n *                 }\r\n *                 ...\r\n *             }\r\n *             _self.initialize = () => {\r\n *                 ...\r\n *             }\r\n *             // Warnings: While the following will work as _self is simply a reference to\r\n *             // this, if anyone overrides myFunction() the overridden will be called first\r\n *             // as the normal JavaScript method resolution will occur and the defined\r\n *             // _self.initialize() function is actually gets removed from the instance and\r\n *             // a proxy prototype version is created to reference the created method.\r\n *             _self.initialize();\r\n *         });\r\n *     }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nfunction dynamicProto(theClass, target, delegateFunc, options) {\r\n    // Make sure that the passed theClass argument looks correct\r\n    if (!_hasOwnProperty(theClass, Prototype)) {\r\n        _throwTypeError(\"theClass is an invalid class definition.\");\r\n    }\r\n    // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n    var classProto = theClass[Prototype];\r\n    if (!_checkPrototype(classProto, target)) {\r\n        _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n    }\r\n    var className = null;\r\n    if (_hasOwnProperty(classProto, DynClassName)) {\r\n        // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n        className = classProto[DynClassName];\r\n    }\r\n    else {\r\n        // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n        // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n        // function table lookup.\r\n        className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n        _gblInst.n++;\r\n        classProto[DynClassName] = className;\r\n    }\r\n    var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n    var useBaseInst = !!perfOptions[strUseBaseInst];\r\n    if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n        useBaseInst = !!options[strUseBaseInst];\r\n    }\r\n    // Get the current instance functions\r\n    var instFuncs = _getInstanceFuncs(target);\r\n    // Get all of the functions for any base instance (before they are potentially overridden)\r\n    var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n    // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n    // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n    delegateFunc(target, baseFuncs);\r\n    // Don't allow setting instance functions for older IE instances\r\n    var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n    if (setInstanceFunc && options) {\r\n        setInstanceFunc = !!options[strSetInstFuncs];\r\n    }\r\n    // Populate the Prototype for any overridden instance functions\r\n    _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\n\nexport { dynamicProto as default };\n//# sourceMappingURL=dynamicproto-js.js.map\n","// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\n// Store the theming state in __themeState__ global scope for reuse in the case of duplicate\n// load-themed-styles hosted on the page.\nvar _root = typeof window === 'undefined' ? global : window; // eslint-disable-line @typescript-eslint/no-explicit-any\n// Nonce string to inject into script tag if one provided. This is used in CSP (Content Security Policy).\nvar _styleNonce = _root && _root.CSPSettings && _root.CSPSettings.nonce;\nvar _themeState = initializeThemeState();\n/**\n * Matches theming tokens. For example, \"[theme: themeSlotName, default: #FFF]\" (including the quotes).\n */\nvar _themeTokenRegex = /[\\'\\\"]\\[theme:\\s*(\\w+)\\s*(?:\\,\\s*default:\\s*([\\\\\"\\']?[\\.\\,\\(\\)\\#\\-\\s\\w]*[\\.\\,\\(\\)\\#\\-\\w][\\\"\\']?))?\\s*\\][\\'\\\"]/g;\nvar now = function () {\n    return typeof performance !== 'undefined' && !!performance.now ? performance.now() : Date.now();\n};\nfunction measure(func) {\n    var start = now();\n    func();\n    var end = now();\n    _themeState.perf.duration += end - start;\n}\n/**\n * initialize global state object\n */\nfunction initializeThemeState() {\n    var state = _root.__themeState__ || {\n        theme: undefined,\n        lastStyleElement: undefined,\n        registeredStyles: []\n    };\n    if (!state.runState) {\n        state = __assign(__assign({}, state), { perf: {\n                count: 0,\n                duration: 0\n            }, runState: {\n                flushTimer: 0,\n                mode: 0 /* Mode.sync */,\n                buffer: []\n            } });\n    }\n    if (!state.registeredThemableStyles) {\n        state = __assign(__assign({}, state), { registeredThemableStyles: [] });\n    }\n    _root.__themeState__ = state;\n    return state;\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load\n * event is fired.\n * @param {string | ThemableArray} styles Themable style text to register.\n * @param {boolean} loadAsync When true, always load styles in async mode, irrespective of current sync mode.\n */\nexport function loadStyles(styles, loadAsync) {\n    if (loadAsync === void 0) { loadAsync = false; }\n    measure(function () {\n        var styleParts = Array.isArray(styles) ? styles : splitStyles(styles);\n        var _a = _themeState.runState, mode = _a.mode, buffer = _a.buffer, flushTimer = _a.flushTimer;\n        if (loadAsync || mode === 1 /* Mode.async */) {\n            buffer.push(styleParts);\n            if (!flushTimer) {\n                _themeState.runState.flushTimer = asyncLoadStyles();\n            }\n        }\n        else {\n            applyThemableStyles(styleParts);\n        }\n    });\n}\n/**\n * Allows for customizable loadStyles logic. e.g. for server side rendering application\n * @param {(processedStyles: string, rawStyles?: string | ThemableArray) => void}\n * a loadStyles callback that gets called when styles are loaded or reloaded\n */\nexport function configureLoadStyles(loadStylesFn) {\n    _themeState.loadStyles = loadStylesFn;\n}\n/**\n * Configure run mode of load-themable-styles\n * @param mode load-themable-styles run mode, async or sync\n */\nexport function configureRunMode(mode) {\n    _themeState.runState.mode = mode;\n}\n/**\n * external code can call flush to synchronously force processing of currently buffered styles\n */\nexport function flush() {\n    measure(function () {\n        var styleArrays = _themeState.runState.buffer.slice();\n        _themeState.runState.buffer = [];\n        var mergedStyleArray = [].concat.apply([], styleArrays);\n        if (mergedStyleArray.length > 0) {\n            applyThemableStyles(mergedStyleArray);\n        }\n    });\n}\n/**\n * register async loadStyles\n */\nfunction asyncLoadStyles() {\n    return setTimeout(function () {\n        _themeState.runState.flushTimer = 0;\n        flush();\n    }, 0);\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load event\n * is fired.\n * @param {string} styleText Style to register.\n * @param {IStyleRecord} styleRecord Existing style record to re-apply.\n */\nfunction applyThemableStyles(stylesArray, styleRecord) {\n    if (_themeState.loadStyles) {\n        _themeState.loadStyles(resolveThemableArray(stylesArray).styleString, stylesArray);\n    }\n    else {\n        registerStyles(stylesArray);\n    }\n}\n/**\n * Registers a set theme tokens to find and replace. If styles were already registered, they will be\n * replaced.\n * @param {theme} theme JSON object of theme tokens to values.\n */\nexport function loadTheme(theme) {\n    _themeState.theme = theme;\n    // reload styles.\n    reloadStyles();\n}\n/**\n * Clear already registered style elements and style records in theme_State object\n * @param option - specify which group of registered styles should be cleared.\n * Default to be both themable and non-themable styles will be cleared\n */\nexport function clearStyles(option) {\n    if (option === void 0) { option = 3 /* ClearStyleOptions.all */; }\n    if (option === 3 /* ClearStyleOptions.all */ || option === 2 /* ClearStyleOptions.onlyNonThemable */) {\n        clearStylesInternal(_themeState.registeredStyles);\n        _themeState.registeredStyles = [];\n    }\n    if (option === 3 /* ClearStyleOptions.all */ || option === 1 /* ClearStyleOptions.onlyThemable */) {\n        clearStylesInternal(_themeState.registeredThemableStyles);\n        _themeState.registeredThemableStyles = [];\n    }\n}\nfunction clearStylesInternal(records) {\n    records.forEach(function (styleRecord) {\n        var styleElement = styleRecord && styleRecord.styleElement;\n        if (styleElement && styleElement.parentElement) {\n            styleElement.parentElement.removeChild(styleElement);\n        }\n    });\n}\n/**\n * Reloads styles.\n */\nfunction reloadStyles() {\n    if (_themeState.theme) {\n        var themableStyles = [];\n        for (var _i = 0, _a = _themeState.registeredThemableStyles; _i < _a.length; _i++) {\n            var styleRecord = _a[_i];\n            themableStyles.push(styleRecord.themableStyle);\n        }\n        if (themableStyles.length > 0) {\n            clearStyles(1 /* ClearStyleOptions.onlyThemable */);\n            applyThemableStyles([].concat.apply([], themableStyles));\n        }\n    }\n}\n/**\n * Find theme tokens and replaces them with provided theme values.\n * @param {string} styles Tokenized styles to fix.\n */\nexport function detokenize(styles) {\n    if (styles) {\n        styles = resolveThemableArray(splitStyles(styles)).styleString;\n    }\n    return styles;\n}\n/**\n * Resolves ThemingInstruction objects in an array and joins the result into a string.\n * @param {ThemableArray} splitStyleArray ThemableArray to resolve and join.\n */\nfunction resolveThemableArray(splitStyleArray) {\n    var theme = _themeState.theme;\n    var themable = false;\n    // Resolve the array of theming instructions to an array of strings.\n    // Then join the array to produce the final CSS string.\n    var resolvedArray = (splitStyleArray || []).map(function (currentValue) {\n        var themeSlot = currentValue.theme;\n        if (themeSlot) {\n            themable = true;\n            // A theming annotation. Resolve it.\n            var themedValue = theme ? theme[themeSlot] : undefined;\n            var defaultValue = currentValue.defaultValue || 'inherit';\n            // Warn to console if we hit an unthemed value even when themes are provided, but only if \"DEBUG\" is true.\n            // Allow the themedValue to be undefined to explicitly request the default value.\n            if (theme &&\n                !themedValue &&\n                console &&\n                !(themeSlot in theme) &&\n                typeof DEBUG !== 'undefined' &&\n                DEBUG) {\n                console.warn(\"Theming value not provided for \\\"\".concat(themeSlot, \"\\\". Falling back to \\\"\").concat(defaultValue, \"\\\".\"));\n            }\n            return themedValue || defaultValue;\n        }\n        else {\n            // A non-themable string. Preserve it.\n            return currentValue.rawString;\n        }\n    });\n    return {\n        styleString: resolvedArray.join(''),\n        themable: themable\n    };\n}\n/**\n * Split tokenized CSS into an array of strings and theme specification objects\n * @param {string} styles Tokenized styles to split.\n */\nexport function splitStyles(styles) {\n    var result = [];\n    if (styles) {\n        var pos = 0; // Current position in styles.\n        var tokenMatch = void 0;\n        while ((tokenMatch = _themeTokenRegex.exec(styles))) {\n            var matchIndex = tokenMatch.index;\n            if (matchIndex > pos) {\n                result.push({\n                    rawString: styles.substring(pos, matchIndex)\n                });\n            }\n            result.push({\n                theme: tokenMatch[1],\n                defaultValue: tokenMatch[2] // May be undefined\n            });\n            // index of the first character after the current match\n            pos = _themeTokenRegex.lastIndex;\n        }\n        // Push the rest of the string after the last match.\n        result.push({\n            rawString: styles.substring(pos)\n        });\n    }\n    return result;\n}\n/**\n * Registers a set of style text. If it is registered too early, we will register it when the\n * window.load event is fired.\n * @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.\n * @param {IStyleRecord} styleRecord May specify a style Element to update.\n */\nfunction registerStyles(styleArray) {\n    if (typeof document === 'undefined') {\n        return;\n    }\n    var head = document.getElementsByTagName('head')[0];\n    var styleElement = document.createElement('style');\n    var _a = resolveThemableArray(styleArray), styleString = _a.styleString, themable = _a.themable;\n    styleElement.setAttribute('data-load-themed-styles', 'true');\n    if (_styleNonce) {\n        styleElement.setAttribute('nonce', _styleNonce);\n    }\n    styleElement.appendChild(document.createTextNode(styleString));\n    _themeState.perf.count++;\n    head.appendChild(styleElement);\n    var ev = document.createEvent('HTMLEvents');\n    ev.initEvent('styleinsert', true /* bubbleEvent */, false /* cancelable */);\n    ev.args = {\n        newStyle: styleElement\n    };\n    document.dispatchEvent(ev);\n    var record = {\n        styleElement: styleElement,\n        themableStyle: styleArray\n    };\n    if (themable) {\n        _themeState.registeredThemableStyles.push(record);\n    }\n    else {\n        _themeState.registeredStyles.push(record);\n    }\n}\n//# sourceMappingURL=index.js.map","module.exports = {\n  \"DataExplorerFont\": \"wf_segoe-ui_normal, \\\"Segoe UI\\\", \\\"Segoe WP\\\", Tahoma, Arial, sans-serif\",\n  \"SemiboldFont\": \"\\\"Segoe UI Semibold\\\", \\\"Segoe UI\\\", \\\"Segoe WP\\\", Tahoma, Arial, sans-serif\",\n  \"GrayScale\": \"grayscale()\",\n  \"NoColor\": \"brightness(0) saturate(100%)\",\n  \"xSmallFontSize\": \"4px\",\n  \"smallFontSize\": \"8px\",\n  \"mediumFontSize\": \"12px\",\n  \"DefaultFontSize\": \"14px\",\n  \"largeFontSize\": \"16px\",\n  \"AccentMediumHigh\": \"#0058ad\",\n  \"AccentMedium\": \"#004e87\",\n  \"AccentHigh\": \"#1ebaed\",\n  \"AccentExtraHigh\": \"#55b3ff\",\n  \"AccentLow\": \"#edf6ff\",\n  \"AccentMediumLow\": \"#ddeefe\",\n  \"AccentLight\": \"#eef7ff\",\n  \"AccentExtra\": \"#ddf0ff\",\n  \"SelectionHigh\": \"#b91f26\",\n  \"BaseLight\": \"#ffffff\",\n  \"BaseDark\": \"#000000\",\n  \"NotificationLow\": \"#fff4ce\",\n  \"NotificationHigh\": \"#f9e9b0\",\n  \"Purple1\": \"#8a2da5\",\n  \"Dirty\": \"#9b4f96\",\n  \"BaseLow\": \"#f2f2f2\",\n  \"BaseMediumLow\": \"#e6e6e6\",\n  \"BaseMedium\": \"#cccccc\",\n  \"BaseMediumHigh\": \"#767676\",\n  \"BaseHigh\": \"#393939\",\n  \"BoxShadow\": \"rgba(118, 118, 118, 0.65)\",\n  \"GreyOutOpacity\": \"0.65\",\n  \"DefaultFontColor\": \"@BaseHigh\",\n  \"DividerColor\": \"@BaseMedium\",\n  \"InfoPointerColor\": \"#3b3b3b\",\n  \"ErrorColor\": \"@SelectionHigh\",\n  \"SelectionColor\": \"#3074b0\",\n  \"FocusColor\": \"#605e5c\",\n  \"GalleryBackgroundColor\": \"#fdfdfd\",\n  \"LinkColor\": \"#2d6da4\",\n  \"InfoIconColor\": \"#0072c6\",\n  \"WarningIconColor\": \"#db7500\",\n  \"ErrorIconColor\": \"#b91f26\",\n  \"SmallSpace\": \"4px\",\n  \"DefaultSpace\": \"8px\",\n  \"MediumSpace\": \"12px\",\n  \"LargeSpace\": \"16px\",\n  \"ButtonBorderWidth\": \"1px\",\n  \"RightPaneWidth\": \"440px\",\n  \"RightPaneMinHeight\": \"565px\",\n  \"PaneLoaderWidth\": \"110px\",\n  \"PaneLoaderHeight\": \"10px\",\n  \"ButtonIconHeight\": \"18px\",\n  \"ScaleFormWidth\": \"280px\",\n  \"ImgWidth\": \"14px\",\n  \"ImgHeight\": \"14px\",\n  \"toggleFontWeight\": \"700\",\n  \"TreeLineHeight\": \"17px\",\n  \"topcommandbarheight\": \"36px\",\n  \"LoaderHeight\": \"6px\",\n  \"LoaderWidth\": \"24px\",\n  \"HdeAccountSplitterHeight\": \"20px\",\n  \"AccountNavigationImgWidth\": \"350px\",\n  \"AccountNavigationImgHeight\": \"190px\",\n  \"AccountNavigationExpandCollapseSize\": \"12px\",\n  \"IETableDataWidth\": \"650px\",\n  \"newCollectionPaneInputWidth\": \"300px\",\n  \"tooltipTextWidth\": \"280px\",\n  \"sharedCollectionThroughputTooltipTextWidth\": \"150px\",\n  \"mongoWildcardIndexTooltipWidth\": \"150px\",\n  \"addContainerPaneThroughputInfoWidth\": \"370px\",\n  \"optionsInfoWidth\": \"210px\",\n  \"noFixedCollectionsTooltipWidth\": \"196px\",\n  \"ThroughputInfoWidth\": \"215px\",\n  \"ThroughputRuInfoWidth\": \"175px\",\n  \"RenewAccessInfoWidth\": \"115px\",\n  \"ErrorDetailsInfowidth\": \"145px\",\n  \"AccessKeyInputWidth\": \"370px\",\n  \"provisionDatabaseThroughputInfo\": \"200px\",\n  \"ActiveTabHeight\": \"31px\",\n  \"ActiveTabWidth\": \"141px\",\n  \"TabsHeight\": \"30px\",\n  \"TabsWidth\": \"140px\",\n  \"ContentWrapper\": \"111px\",\n  \"StatusIconContainerSize\": \"18px\",\n  \"LoadingErrorIconSize\": \"14px\",\n  \"ErrorIconContainer\": \"16px\",\n  \"ErrorIconWidth\": \"3px\",\n  \"FormErrorWidth\": \"320px\",\n  \"WarningErrorIconSize\": \"32px\",\n  \"Loader_z-index\": \"5\",\n  \"NotificationConsole_z-index\": \"2\",\n  \"screen\": \"screen\\\\0\",\n  \"CommandBarButtonHeight\": \"40px\",\n  \"FabricCommandBarButtonHeight\": \"34px\",\n  \"PortalAccentMediumHigh\": \"#0058ad\",\n  \"PortalAccentMedium\": \"#004e87\",\n  \"PortalAccentLight\": \"#eef7ff\",\n  \"PortalAccentAccentExtra\": \"#ddf0ff\",\n  \"FabricFont\": \"\\\"Segoe UI\\\", \\\"Segoe UI Web (West European)\\\", \\\"Segoe UI\\\", -apple-system, BlinkMacSystemFont, Roboto, \\\"Helvetica Neue\\\", sans-serif\",\n  \"FabricToolbarIconColor\": \"brightness(0) saturate(100%) invert(50%) sepia(17%) saturate(1459%) hue-rotate(81deg) brightness(99%) contrast(94%)\",\n  \"FabricBoxBorderRadius\": \"8px\",\n  \"FabricBoxBorderShadow\": \"rgba(0, 0, 0, 0.133) 0px 1.6px 3.6px 0px, rgba(0, 0, 0, 0.11) 0px 0.3px 0.9px 0px\",\n  \"FabricBoxMargin\": \"4px 8px 4px 8px\",\n  \"FabricAccentMediumHigh\": \"#0c695a\",\n  \"FabricAccentMedium\": \"#117865\",\n  \"FabricAccentLight\": \"#f5f5f5\",\n  \"FabricAccentExtra\": \"#ebebeb\",\n  \"FabricButtonBorderRadius\": \"4px\",\n  \"display\": \"flex) {\\n  display:~\\\"-webkit-@{display}\\\"\",\n  \"direction\": \"column) {\\n  -webkit-flex-direction:@direction\",\n  \"media all and (-ms-high-contrast\": \"none),\\n(-ms-high-contrast:active) {\\n\\n  .selectedRadio,\\n  .selectedRadio:hover,\\n  .selectedRadio:active,\\n  .selectedRadio.dirty,\\n  .tab [type=\\\"radio\\\"]:checked~label,\\n  .tab [type=\\\"radio\\\"]:checked~label:hover {\\n    -ms-high-contrast-adjust:none\",\n  \"ToggleHeight\": \"30px\",\n  \"ToggleWidth\": \"180px\",\n  \"textColor\": \"@BaseLight, @backgroundColor:@BaseHigh) {\\n  background-color:@backgroundColor\",\n  \"color\": \"@BaseDark) {\\n  content:\\\"\\\"\"\n};\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","// 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","// vim:ts=4:sts=4:sw=4:\n/*!\n *\n * Copyright 2009-2017 Kris Kowal under the terms of the MIT\n * license found at https://github.com/kriskowal/q/blob/v1/LICENSE\n *\n * With parts by Tyler Close\n * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found\n * at http://www.opensource.org/licenses/mit-license.html\n * Forked at ref_send.js version: 2009-05-11\n *\n * With parts by Mark Miller\n * Copyright (C) 2011 Google Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n(function (definition) {\n    \"use strict\";\n\n    // This file will function properly as a <script> tag, or a module\n    // using CommonJS and NodeJS or RequireJS module formats.  In\n    // Common/Node/RequireJS, the module exports the Q API and when\n    // executed as a simple <script>, it creates a Q global instead.\n\n    // Montage Require\n    if (typeof bootstrap === \"function\") {\n        bootstrap(\"promise\", definition);\n\n    // CommonJS\n    } else if (typeof exports === \"object\" && typeof module === \"object\") {\n        module.exports = definition();\n\n    // RequireJS\n    } else if (typeof define === \"function\" && define.amd) {\n        define(definition);\n\n    // SES (Secure EcmaScript)\n    } else if (typeof ses !== \"undefined\") {\n        if (!ses.ok()) {\n            return;\n        } else {\n            ses.makeQ = definition;\n        }\n\n    // <script>\n    } else if (typeof window !== \"undefined\" || typeof self !== \"undefined\") {\n        // Prefer window over self for add-on scripts. Use self for\n        // non-windowed contexts.\n        var global = typeof window !== \"undefined\" ? window : self;\n\n        // Get the `window` object, save the previous Q global\n        // and initialize Q as a global.\n        var previousQ = global.Q;\n        global.Q = definition();\n\n        // Add a noConflict function so Q can be removed from the\n        // global namespace.\n        global.Q.noConflict = function () {\n            global.Q = previousQ;\n            return this;\n        };\n\n    } else {\n        throw new Error(\"This environment was not anticipated by Q. Please file a bug.\");\n    }\n\n})(function () {\n\"use strict\";\n\nvar hasStacks = false;\ntry {\n    throw new Error();\n} catch (e) {\n    hasStacks = !!e.stack;\n}\n\n// All code after this point will be filtered from stack traces reported\n// by Q.\nvar qStartingLine = captureLine();\nvar qFileName;\n\n// shims\n\n// used for fallback in \"allResolved\"\nvar noop = function () {};\n\n// Use the fastest possible means to execute a task in a future turn\n// of the event loop.\nvar nextTick =(function () {\n    // linked list of tasks (single, with head node)\n    var head = {task: void 0, next: null};\n    var tail = head;\n    var flushing = false;\n    var requestTick = void 0;\n    var isNodeJS = false;\n    // queue for late tasks, used by unhandled rejection tracking\n    var laterQueue = [];\n\n    function flush() {\n        /* jshint loopfunc: true */\n        var task, domain;\n\n        while (head.next) {\n            head = head.next;\n            task = head.task;\n            head.task = void 0;\n            domain = head.domain;\n\n            if (domain) {\n                head.domain = void 0;\n                domain.enter();\n            }\n            runSingle(task, domain);\n\n        }\n        while (laterQueue.length) {\n            task = laterQueue.pop();\n            runSingle(task);\n        }\n        flushing = false;\n    }\n    // runs a single function in the async queue\n    function runSingle(task, domain) {\n        try {\n            task();\n\n        } catch (e) {\n            if (isNodeJS) {\n                // In node, uncaught exceptions are considered fatal errors.\n                // Re-throw them synchronously to interrupt flushing!\n\n                // Ensure continuation if the uncaught exception is suppressed\n                // listening \"uncaughtException\" events (as domains does).\n                // Continue in next event to avoid tick recursion.\n                if (domain) {\n                    domain.exit();\n                }\n                setTimeout(flush, 0);\n                if (domain) {\n                    domain.enter();\n                }\n\n                throw e;\n\n            } else {\n                // In browsers, uncaught exceptions are not fatal.\n                // Re-throw them asynchronously to avoid slow-downs.\n                setTimeout(function () {\n                    throw e;\n                }, 0);\n            }\n        }\n\n        if (domain) {\n            domain.exit();\n        }\n    }\n\n    nextTick = function (task) {\n        tail = tail.next = {\n            task: task,\n            domain: isNodeJS && process.domain,\n            next: null\n        };\n\n        if (!flushing) {\n            flushing = true;\n            requestTick();\n        }\n    };\n\n    if (typeof process === \"object\" &&\n        process.toString() === \"[object process]\" && process.nextTick) {\n        // Ensure Q is in a real Node environment, with a `process.nextTick`.\n        // To see through fake Node environments:\n        // * Mocha test runner - exposes a `process` global without a `nextTick`\n        // * Browserify - exposes a `process.nexTick` function that uses\n        //   `setTimeout`. In this case `setImmediate` is preferred because\n        //    it is faster. Browserify's `process.toString()` yields\n        //   \"[object Object]\", while in a real Node environment\n        //   `process.toString()` yields \"[object process]\".\n        isNodeJS = true;\n\n        requestTick = function () {\n            process.nextTick(flush);\n        };\n\n    } else if (typeof setImmediate === \"function\") {\n        // In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate\n        if (typeof window !== \"undefined\") {\n            requestTick = setImmediate.bind(window, flush);\n        } else {\n            requestTick = function () {\n                setImmediate(flush);\n            };\n        }\n\n    } else if (typeof MessageChannel !== \"undefined\") {\n        // modern browsers\n        // http://www.nonblocking.io/2011/06/windownexttick.html\n        var channel = new MessageChannel();\n        // At least Safari Version 6.0.5 (8536.30.1) intermittently cannot create\n        // working message ports the first time a page loads.\n        channel.port1.onmessage = function () {\n            requestTick = requestPortTick;\n            channel.port1.onmessage = flush;\n            flush();\n        };\n        var requestPortTick = function () {\n            // Opera requires us to provide a message payload, regardless of\n            // whether we use it.\n            channel.port2.postMessage(0);\n        };\n        requestTick = function () {\n            setTimeout(flush, 0);\n            requestPortTick();\n        };\n\n    } else {\n        // old browsers\n        requestTick = function () {\n            setTimeout(flush, 0);\n        };\n    }\n    // runs a task after all other tasks have been run\n    // this is useful for unhandled rejection tracking that needs to happen\n    // after all `then`d tasks have been run.\n    nextTick.runAfter = function (task) {\n        laterQueue.push(task);\n        if (!flushing) {\n            flushing = true;\n            requestTick();\n        }\n    };\n    return nextTick;\n})();\n\n// Attempt to make generics safe in the face of downstream\n// modifications.\n// There is no situation where this is necessary.\n// If you need a security guarantee, these primordials need to be\n// deeply frozen anyway, and if you don’t need a security guarantee,\n// this is just plain paranoid.\n// However, this **might** have the nice side-effect of reducing the size of\n// the minified code by reducing x.call() to merely x()\n// See Mark Miller’s explanation of what this does.\n// http://wiki.ecmascript.org/doku.php?id=conventions:safe_meta_programming\nvar call = Function.call;\nfunction uncurryThis(f) {\n    return function () {\n        return call.apply(f, arguments);\n    };\n}\n// This is equivalent, but slower:\n// uncurryThis = Function_bind.bind(Function_bind.call);\n// http://jsperf.com/uncurrythis\n\nvar array_slice = uncurryThis(Array.prototype.slice);\n\nvar array_reduce = uncurryThis(\n    Array.prototype.reduce || function (callback, basis) {\n        var index = 0,\n            length = this.length;\n        // concerning the initial value, if one is not provided\n        if (arguments.length === 1) {\n            // seek to the first value in the array, accounting\n            // for the possibility that is is a sparse array\n            do {\n                if (index in this) {\n                    basis = this[index++];\n                    break;\n                }\n                if (++index >= length) {\n                    throw new TypeError();\n                }\n            } while (1);\n        }\n        // reduce\n        for (; index < length; index++) {\n            // account for the possibility that the array is sparse\n            if (index in this) {\n                basis = callback(basis, this[index], index);\n            }\n        }\n        return basis;\n    }\n);\n\nvar array_indexOf = uncurryThis(\n    Array.prototype.indexOf || function (value) {\n        // not a very good shim, but good enough for our one use of it\n        for (var i = 0; i < this.length; i++) {\n            if (this[i] === value) {\n                return i;\n            }\n        }\n        return -1;\n    }\n);\n\nvar array_map = uncurryThis(\n    Array.prototype.map || function (callback, thisp) {\n        var self = this;\n        var collect = [];\n        array_reduce(self, function (undefined, value, index) {\n            collect.push(callback.call(thisp, value, index, self));\n        }, void 0);\n        return collect;\n    }\n);\n\nvar object_create = Object.create || function (prototype) {\n    function Type() { }\n    Type.prototype = prototype;\n    return new Type();\n};\n\nvar object_defineProperty = Object.defineProperty || function (obj, prop, descriptor) {\n    obj[prop] = descriptor.value;\n    return obj;\n};\n\nvar object_hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\n\nvar object_keys = Object.keys || function (object) {\n    var keys = [];\n    for (var key in object) {\n        if (object_hasOwnProperty(object, key)) {\n            keys.push(key);\n        }\n    }\n    return keys;\n};\n\nvar object_toString = uncurryThis(Object.prototype.toString);\n\nfunction isObject(value) {\n    return value === Object(value);\n}\n\n// generator related shims\n\n// FIXME: Remove this function once ES6 generators are in SpiderMonkey.\nfunction isStopIteration(exception) {\n    return (\n        object_toString(exception) === \"[object StopIteration]\" ||\n        exception instanceof QReturnValue\n    );\n}\n\n// FIXME: Remove this helper and Q.return once ES6 generators are in\n// SpiderMonkey.\nvar QReturnValue;\nif (typeof ReturnValue !== \"undefined\") {\n    QReturnValue = ReturnValue;\n} else {\n    QReturnValue = function (value) {\n        this.value = value;\n    };\n}\n\n// long stack traces\n\nvar STACK_JUMP_SEPARATOR = \"From previous event:\";\n\nfunction makeStackTraceLong(error, promise) {\n    // If possible, transform the error stack trace by removing Node and Q\n    // cruft, then concatenating with the stack trace of `promise`. See #57.\n    if (hasStacks &&\n        promise.stack &&\n        typeof error === \"object\" &&\n        error !== null &&\n        error.stack\n    ) {\n        var stacks = [];\n        for (var p = promise; !!p; p = p.source) {\n            if (p.stack && (!error.__minimumStackCounter__ || error.__minimumStackCounter__ > p.stackCounter)) {\n                object_defineProperty(error, \"__minimumStackCounter__\", {value: p.stackCounter, configurable: true});\n                stacks.unshift(p.stack);\n            }\n        }\n        stacks.unshift(error.stack);\n\n        var concatedStacks = stacks.join(\"\\n\" + STACK_JUMP_SEPARATOR + \"\\n\");\n        var stack = filterStackString(concatedStacks);\n        object_defineProperty(error, \"stack\", {value: stack, configurable: true});\n    }\n}\n\nfunction filterStackString(stackString) {\n    var lines = stackString.split(\"\\n\");\n    var desiredLines = [];\n    for (var i = 0; i < lines.length; ++i) {\n        var line = lines[i];\n\n        if (!isInternalFrame(line) && !isNodeFrame(line) && line) {\n            desiredLines.push(line);\n        }\n    }\n    return desiredLines.join(\"\\n\");\n}\n\nfunction isNodeFrame(stackLine) {\n    return stackLine.indexOf(\"(module.js:\") !== -1 ||\n           stackLine.indexOf(\"(node.js:\") !== -1;\n}\n\nfunction getFileNameAndLineNumber(stackLine) {\n    // Named functions: \"at functionName (filename:lineNumber:columnNumber)\"\n    // In IE10 function name can have spaces (\"Anonymous function\") O_o\n    var attempt1 = /at .+ \\((.+):(\\d+):(?:\\d+)\\)$/.exec(stackLine);\n    if (attempt1) {\n        return [attempt1[1], Number(attempt1[2])];\n    }\n\n    // Anonymous functions: \"at filename:lineNumber:columnNumber\"\n    var attempt2 = /at ([^ ]+):(\\d+):(?:\\d+)$/.exec(stackLine);\n    if (attempt2) {\n        return [attempt2[1], Number(attempt2[2])];\n    }\n\n    // Firefox style: \"function@filename:lineNumber or @filename:lineNumber\"\n    var attempt3 = /.*@(.+):(\\d+)$/.exec(stackLine);\n    if (attempt3) {\n        return [attempt3[1], Number(attempt3[2])];\n    }\n}\n\nfunction isInternalFrame(stackLine) {\n    var fileNameAndLineNumber = getFileNameAndLineNumber(stackLine);\n\n    if (!fileNameAndLineNumber) {\n        return false;\n    }\n\n    var fileName = fileNameAndLineNumber[0];\n    var lineNumber = fileNameAndLineNumber[1];\n\n    return fileName === qFileName &&\n        lineNumber >= qStartingLine &&\n        lineNumber <= qEndingLine;\n}\n\n// discover own file name and line number range for filtering stack\n// traces\nfunction captureLine() {\n    if (!hasStacks) {\n        return;\n    }\n\n    try {\n        throw new Error();\n    } catch (e) {\n        var lines = e.stack.split(\"\\n\");\n        var firstLine = lines[0].indexOf(\"@\") > 0 ? lines[1] : lines[2];\n        var fileNameAndLineNumber = getFileNameAndLineNumber(firstLine);\n        if (!fileNameAndLineNumber) {\n            return;\n        }\n\n        qFileName = fileNameAndLineNumber[0];\n        return fileNameAndLineNumber[1];\n    }\n}\n\nfunction deprecate(callback, name, alternative) {\n    return function () {\n        if (typeof console !== \"undefined\" &&\n            typeof console.warn === \"function\") {\n            console.warn(name + \" is deprecated, use \" + alternative +\n                         \" instead.\", new Error(\"\").stack);\n        }\n        return callback.apply(callback, arguments);\n    };\n}\n\n// end of shims\n// beginning of real work\n\n/**\n * Constructs a promise for an immediate reference, passes promises through, or\n * coerces promises from different systems.\n * @param value immediate reference or promise\n */\nfunction Q(value) {\n    // If the object is already a Promise, return it directly.  This enables\n    // the resolve function to both be used to created references from objects,\n    // but to tolerably coerce non-promises to promises.\n    if (value instanceof Promise) {\n        return value;\n    }\n\n    // assimilate thenables\n    if (isPromiseAlike(value)) {\n        return coerce(value);\n    } else {\n        return fulfill(value);\n    }\n}\nQ.resolve = Q;\n\n/**\n * Performs a task in a future turn of the event loop.\n * @param {Function} task\n */\nQ.nextTick = nextTick;\n\n/**\n * Controls whether or not long stack traces will be on\n */\nQ.longStackSupport = false;\n\n/**\n * The counter is used to determine the stopping point for building\n * long stack traces. In makeStackTraceLong we walk backwards through\n * the linked list of promises, only stacks which were created before\n * the rejection are concatenated.\n */\nvar longStackCounter = 1;\n\n// enable long stacks if Q_DEBUG is set\nif (typeof process === \"object\" && process && process.env && process.env.Q_DEBUG) {\n    Q.longStackSupport = true;\n}\n\n/**\n * Constructs a {promise, resolve, reject} object.\n *\n * `resolve` is a callback to invoke with a more resolved value for the\n * promise. To fulfill the promise, invoke `resolve` with any value that is\n * not a thenable. To reject the promise, invoke `resolve` with a rejected\n * thenable, or invoke `reject` with the reason directly. To resolve the\n * promise to another thenable, thus putting it in the same state, invoke\n * `resolve` with that other thenable.\n */\nQ.defer = defer;\nfunction defer() {\n    // if \"messages\" is an \"Array\", that indicates that the promise has not yet\n    // been resolved.  If it is \"undefined\", it has been resolved.  Each\n    // element of the messages array is itself an array of complete arguments to\n    // forward to the resolved promise.  We coerce the resolution value to a\n    // promise using the `resolve` function because it handles both fully\n    // non-thenable values and other thenables gracefully.\n    var messages = [], progressListeners = [], resolvedPromise;\n\n    var deferred = object_create(defer.prototype);\n    var promise = object_create(Promise.prototype);\n\n    promise.promiseDispatch = function (resolve, op, operands) {\n        var args = array_slice(arguments);\n        if (messages) {\n            messages.push(args);\n            if (op === \"when\" && operands[1]) { // progress operand\n                progressListeners.push(operands[1]);\n            }\n        } else {\n            Q.nextTick(function () {\n                resolvedPromise.promiseDispatch.apply(resolvedPromise, args);\n            });\n        }\n    };\n\n    // XXX deprecated\n    promise.valueOf = function () {\n        if (messages) {\n            return promise;\n        }\n        var nearerValue = nearer(resolvedPromise);\n        if (isPromise(nearerValue)) {\n            resolvedPromise = nearerValue; // shorten chain\n        }\n        return nearerValue;\n    };\n\n    promise.inspect = function () {\n        if (!resolvedPromise) {\n            return { state: \"pending\" };\n        }\n        return resolvedPromise.inspect();\n    };\n\n    if (Q.longStackSupport && hasStacks) {\n        try {\n            throw new Error();\n        } catch (e) {\n            // NOTE: don't try to use `Error.captureStackTrace` or transfer the\n            // accessor around; that causes memory leaks as per GH-111. Just\n            // reify the stack trace as a string ASAP.\n            //\n            // At the same time, cut off the first line; it's always just\n            // \"[object Promise]\\n\", as per the `toString`.\n            promise.stack = e.stack.substring(e.stack.indexOf(\"\\n\") + 1);\n            promise.stackCounter = longStackCounter++;\n        }\n    }\n\n    // NOTE: we do the checks for `resolvedPromise` in each method, instead of\n    // consolidating them into `become`, since otherwise we'd create new\n    // promises with the lines `become(whatever(value))`. See e.g. GH-252.\n\n    function become(newPromise) {\n        resolvedPromise = newPromise;\n\n        if (Q.longStackSupport && hasStacks) {\n            // Only hold a reference to the new promise if long stacks\n            // are enabled to reduce memory usage\n            promise.source = newPromise;\n        }\n\n        array_reduce(messages, function (undefined, message) {\n            Q.nextTick(function () {\n                newPromise.promiseDispatch.apply(newPromise, message);\n            });\n        }, void 0);\n\n        messages = void 0;\n        progressListeners = void 0;\n    }\n\n    deferred.promise = promise;\n    deferred.resolve = function (value) {\n        if (resolvedPromise) {\n            return;\n        }\n\n        become(Q(value));\n    };\n\n    deferred.fulfill = function (value) {\n        if (resolvedPromise) {\n            return;\n        }\n\n        become(fulfill(value));\n    };\n    deferred.reject = function (reason) {\n        if (resolvedPromise) {\n            return;\n        }\n\n        become(reject(reason));\n    };\n    deferred.notify = function (progress) {\n        if (resolvedPromise) {\n            return;\n        }\n\n        array_reduce(progressListeners, function (undefined, progressListener) {\n            Q.nextTick(function () {\n                progressListener(progress);\n            });\n        }, void 0);\n    };\n\n    return deferred;\n}\n\n/**\n * Creates a Node-style callback that will resolve or reject the deferred\n * promise.\n * @returns a nodeback\n */\ndefer.prototype.makeNodeResolver = function () {\n    var self = this;\n    return function (error, value) {\n        if (error) {\n            self.reject(error);\n        } else if (arguments.length > 2) {\n            self.resolve(array_slice(arguments, 1));\n        } else {\n            self.resolve(value);\n        }\n    };\n};\n\n/**\n * @param resolver {Function} a function that returns nothing and accepts\n * the resolve, reject, and notify functions for a deferred.\n * @returns a promise that may be resolved with the given resolve and reject\n * functions, or rejected by a thrown exception in resolver\n */\nQ.Promise = promise; // ES6\nQ.promise = promise;\nfunction promise(resolver) {\n    if (typeof resolver !== \"function\") {\n        throw new TypeError(\"resolver must be a function.\");\n    }\n    var deferred = defer();\n    try {\n        resolver(deferred.resolve, deferred.reject, deferred.notify);\n    } catch (reason) {\n        deferred.reject(reason);\n    }\n    return deferred.promise;\n}\n\npromise.race = race; // ES6\npromise.all = all; // ES6\npromise.reject = reject; // ES6\npromise.resolve = Q; // ES6\n\n// XXX experimental.  This method is a way to denote that a local value is\n// serializable and should be immediately dispatched to a remote upon request,\n// instead of passing a reference.\nQ.passByCopy = function (object) {\n    //freeze(object);\n    //passByCopies.set(object, true);\n    return object;\n};\n\nPromise.prototype.passByCopy = function () {\n    //freeze(object);\n    //passByCopies.set(object, true);\n    return this;\n};\n\n/**\n * If two promises eventually fulfill to the same value, promises that value,\n * but otherwise rejects.\n * @param x {Any*}\n * @param y {Any*}\n * @returns {Any*} a promise for x and y if they are the same, but a rejection\n * otherwise.\n *\n */\nQ.join = function (x, y) {\n    return Q(x).join(y);\n};\n\nPromise.prototype.join = function (that) {\n    return Q([this, that]).spread(function (x, y) {\n        if (x === y) {\n            // TODO: \"===\" should be Object.is or equiv\n            return x;\n        } else {\n            throw new Error(\"Q can't join: not the same: \" + x + \" \" + y);\n        }\n    });\n};\n\n/**\n * Returns a promise for the first of an array of promises to become settled.\n * @param answers {Array[Any*]} promises to race\n * @returns {Any*} the first promise to be settled\n */\nQ.race = race;\nfunction race(answerPs) {\n    return promise(function (resolve, reject) {\n        // Switch to this once we can assume at least ES5\n        // answerPs.forEach(function (answerP) {\n        //     Q(answerP).then(resolve, reject);\n        // });\n        // Use this in the meantime\n        for (var i = 0, len = answerPs.length; i < len; i++) {\n            Q(answerPs[i]).then(resolve, reject);\n        }\n    });\n}\n\nPromise.prototype.race = function () {\n    return this.then(Q.race);\n};\n\n/**\n * Constructs a Promise with a promise descriptor object and optional fallback\n * function.  The descriptor contains methods like when(rejected), get(name),\n * set(name, value), post(name, args), and delete(name), which all\n * return either a value, a promise for a value, or a rejection.  The fallback\n * accepts the operation name, a resolver, and any further arguments that would\n * have been forwarded to the appropriate method above had a method been\n * provided with the proper name.  The API makes no guarantees about the nature\n * of the returned object, apart from that it is usable whereever promises are\n * bought and sold.\n */\nQ.makePromise = Promise;\nfunction Promise(descriptor, fallback, inspect) {\n    if (fallback === void 0) {\n        fallback = function (op) {\n            return reject(new Error(\n                \"Promise does not support operation: \" + op\n            ));\n        };\n    }\n    if (inspect === void 0) {\n        inspect = function () {\n            return {state: \"unknown\"};\n        };\n    }\n\n    var promise = object_create(Promise.prototype);\n\n    promise.promiseDispatch = function (resolve, op, args) {\n        var result;\n        try {\n            if (descriptor[op]) {\n                result = descriptor[op].apply(promise, args);\n            } else {\n                result = fallback.call(promise, op, args);\n            }\n        } catch (exception) {\n            result = reject(exception);\n        }\n        if (resolve) {\n            resolve(result);\n        }\n    };\n\n    promise.inspect = inspect;\n\n    // XXX deprecated `valueOf` and `exception` support\n    if (inspect) {\n        var inspected = inspect();\n        if (inspected.state === \"rejected\") {\n            promise.exception = inspected.reason;\n        }\n\n        promise.valueOf = function () {\n            var inspected = inspect();\n            if (inspected.state === \"pending\" ||\n                inspected.state === \"rejected\") {\n                return promise;\n            }\n            return inspected.value;\n        };\n    }\n\n    return promise;\n}\n\nPromise.prototype.toString = function () {\n    return \"[object Promise]\";\n};\n\nPromise.prototype.then = function (fulfilled, rejected, progressed) {\n    var self = this;\n    var deferred = defer();\n    var done = false;   // ensure the untrusted promise makes at most a\n                        // single call to one of the callbacks\n\n    function _fulfilled(value) {\n        try {\n            return typeof fulfilled === \"function\" ? fulfilled(value) : value;\n        } catch (exception) {\n            return reject(exception);\n        }\n    }\n\n    function _rejected(exception) {\n        if (typeof rejected === \"function\") {\n            makeStackTraceLong(exception, self);\n            try {\n                return rejected(exception);\n            } catch (newException) {\n                return reject(newException);\n            }\n        }\n        return reject(exception);\n    }\n\n    function _progressed(value) {\n        return typeof progressed === \"function\" ? progressed(value) : value;\n    }\n\n    Q.nextTick(function () {\n        self.promiseDispatch(function (value) {\n            if (done) {\n                return;\n            }\n            done = true;\n\n            deferred.resolve(_fulfilled(value));\n        }, \"when\", [function (exception) {\n            if (done) {\n                return;\n            }\n            done = true;\n\n            deferred.resolve(_rejected(exception));\n        }]);\n    });\n\n    // Progress propagator need to be attached in the current tick.\n    self.promiseDispatch(void 0, \"when\", [void 0, function (value) {\n        var newValue;\n        var threw = false;\n        try {\n            newValue = _progressed(value);\n        } catch (e) {\n            threw = true;\n            if (Q.onerror) {\n                Q.onerror(e);\n            } else {\n                throw e;\n            }\n        }\n\n        if (!threw) {\n            deferred.notify(newValue);\n        }\n    }]);\n\n    return deferred.promise;\n};\n\nQ.tap = function (promise, callback) {\n    return Q(promise).tap(callback);\n};\n\n/**\n * Works almost like \"finally\", but not called for rejections.\n * Original resolution value is passed through callback unaffected.\n * Callback may return a promise that will be awaited for.\n * @param {Function} callback\n * @returns {Q.Promise}\n * @example\n * doSomething()\n *   .then(...)\n *   .tap(console.log)\n *   .then(...);\n */\nPromise.prototype.tap = function (callback) {\n    callback = Q(callback);\n\n    return this.then(function (value) {\n        return callback.fcall(value).thenResolve(value);\n    });\n};\n\n/**\n * Registers an observer on a promise.\n *\n * Guarantees:\n *\n * 1. that fulfilled and rejected will be called only once.\n * 2. that either the fulfilled callback or the rejected callback will be\n *    called, but not both.\n * 3. that fulfilled and rejected will not be called in this turn.\n *\n * @param value      promise or immediate reference to observe\n * @param fulfilled  function to be called with the fulfilled value\n * @param rejected   function to be called with the rejection exception\n * @param progressed function to be called on any progress notifications\n * @return promise for the return value from the invoked callback\n */\nQ.when = when;\nfunction when(value, fulfilled, rejected, progressed) {\n    return Q(value).then(fulfilled, rejected, progressed);\n}\n\nPromise.prototype.thenResolve = function (value) {\n    return this.then(function () { return value; });\n};\n\nQ.thenResolve = function (promise, value) {\n    return Q(promise).thenResolve(value);\n};\n\nPromise.prototype.thenReject = function (reason) {\n    return this.then(function () { throw reason; });\n};\n\nQ.thenReject = function (promise, reason) {\n    return Q(promise).thenReject(reason);\n};\n\n/**\n * If an object is not a promise, it is as \"near\" as possible.\n * If a promise is rejected, it is as \"near\" as possible too.\n * If it’s a fulfilled promise, the fulfillment value is nearer.\n * If it’s a deferred promise and the deferred has been resolved, the\n * resolution is \"nearer\".\n * @param object\n * @returns most resolved (nearest) form of the object\n */\n\n// XXX should we re-do this?\nQ.nearer = nearer;\nfunction nearer(value) {\n    if (isPromise(value)) {\n        var inspected = value.inspect();\n        if (inspected.state === \"fulfilled\") {\n            return inspected.value;\n        }\n    }\n    return value;\n}\n\n/**\n * @returns whether the given object is a promise.\n * Otherwise it is a fulfilled value.\n */\nQ.isPromise = isPromise;\nfunction isPromise(object) {\n    return object instanceof Promise;\n}\n\nQ.isPromiseAlike = isPromiseAlike;\nfunction isPromiseAlike(object) {\n    return isObject(object) && typeof object.then === \"function\";\n}\n\n/**\n * @returns whether the given object is a pending promise, meaning not\n * fulfilled or rejected.\n */\nQ.isPending = isPending;\nfunction isPending(object) {\n    return isPromise(object) && object.inspect().state === \"pending\";\n}\n\nPromise.prototype.isPending = function () {\n    return this.inspect().state === \"pending\";\n};\n\n/**\n * @returns whether the given object is a value or fulfilled\n * promise.\n */\nQ.isFulfilled = isFulfilled;\nfunction isFulfilled(object) {\n    return !isPromise(object) || object.inspect().state === \"fulfilled\";\n}\n\nPromise.prototype.isFulfilled = function () {\n    return this.inspect().state === \"fulfilled\";\n};\n\n/**\n * @returns whether the given object is a rejected promise.\n */\nQ.isRejected = isRejected;\nfunction isRejected(object) {\n    return isPromise(object) && object.inspect().state === \"rejected\";\n}\n\nPromise.prototype.isRejected = function () {\n    return this.inspect().state === \"rejected\";\n};\n\n//// BEGIN UNHANDLED REJECTION TRACKING\n\n// This promise library consumes exceptions thrown in handlers so they can be\n// handled by a subsequent promise.  The exceptions get added to this array when\n// they are created, and removed when they are handled.  Note that in ES6 or\n// shimmed environments, this would naturally be a `Set`.\nvar unhandledReasons = [];\nvar unhandledRejections = [];\nvar reportedUnhandledRejections = [];\nvar trackUnhandledRejections = true;\n\nfunction resetUnhandledRejections() {\n    unhandledReasons.length = 0;\n    unhandledRejections.length = 0;\n\n    if (!trackUnhandledRejections) {\n        trackUnhandledRejections = true;\n    }\n}\n\nfunction trackRejection(promise, reason) {\n    if (!trackUnhandledRejections) {\n        return;\n    }\n    if (typeof process === \"object\" && typeof process.emit === \"function\") {\n        Q.nextTick.runAfter(function () {\n            if (array_indexOf(unhandledRejections, promise) !== -1) {\n                process.emit(\"unhandledRejection\", reason, promise);\n                reportedUnhandledRejections.push(promise);\n            }\n        });\n    }\n\n    unhandledRejections.push(promise);\n    if (reason && typeof reason.stack !== \"undefined\") {\n        unhandledReasons.push(reason.stack);\n    } else {\n        unhandledReasons.push(\"(no stack) \" + reason);\n    }\n}\n\nfunction untrackRejection(promise) {\n    if (!trackUnhandledRejections) {\n        return;\n    }\n\n    var at = array_indexOf(unhandledRejections, promise);\n    if (at !== -1) {\n        if (typeof process === \"object\" && typeof process.emit === \"function\") {\n            Q.nextTick.runAfter(function () {\n                var atReport = array_indexOf(reportedUnhandledRejections, promise);\n                if (atReport !== -1) {\n                    process.emit(\"rejectionHandled\", unhandledReasons[at], promise);\n                    reportedUnhandledRejections.splice(atReport, 1);\n                }\n            });\n        }\n        unhandledRejections.splice(at, 1);\n        unhandledReasons.splice(at, 1);\n    }\n}\n\nQ.resetUnhandledRejections = resetUnhandledRejections;\n\nQ.getUnhandledReasons = function () {\n    // Make a copy so that consumers can't interfere with our internal state.\n    return unhandledReasons.slice();\n};\n\nQ.stopUnhandledRejectionTracking = function () {\n    resetUnhandledRejections();\n    trackUnhandledRejections = false;\n};\n\nresetUnhandledRejections();\n\n//// END UNHANDLED REJECTION TRACKING\n\n/**\n * Constructs a rejected promise.\n * @param reason value describing the failure\n */\nQ.reject = reject;\nfunction reject(reason) {\n    var rejection = Promise({\n        \"when\": function (rejected) {\n            // note that the error has been handled\n            if (rejected) {\n                untrackRejection(this);\n            }\n            return rejected ? rejected(reason) : this;\n        }\n    }, function fallback() {\n        return this;\n    }, function inspect() {\n        return { state: \"rejected\", reason: reason };\n    });\n\n    // Note that the reason has not been handled.\n    trackRejection(rejection, reason);\n\n    return rejection;\n}\n\n/**\n * Constructs a fulfilled promise for an immediate reference.\n * @param value immediate reference\n */\nQ.fulfill = fulfill;\nfunction fulfill(value) {\n    return Promise({\n        \"when\": function () {\n            return value;\n        },\n        \"get\": function (name) {\n            return value[name];\n        },\n        \"set\": function (name, rhs) {\n            value[name] = rhs;\n        },\n        \"delete\": function (name) {\n            delete value[name];\n        },\n        \"post\": function (name, args) {\n            // Mark Miller proposes that post with no name should apply a\n            // promised function.\n            if (name === null || name === void 0) {\n                return value.apply(void 0, args);\n            } else {\n                return value[name].apply(value, args);\n            }\n        },\n        \"apply\": function (thisp, args) {\n            return value.apply(thisp, args);\n        },\n        \"keys\": function () {\n            return object_keys(value);\n        }\n    }, void 0, function inspect() {\n        return { state: \"fulfilled\", value: value };\n    });\n}\n\n/**\n * Converts thenables to Q promises.\n * @param promise thenable promise\n * @returns a Q promise\n */\nfunction coerce(promise) {\n    var deferred = defer();\n    Q.nextTick(function () {\n        try {\n            promise.then(deferred.resolve, deferred.reject, deferred.notify);\n        } catch (exception) {\n            deferred.reject(exception);\n        }\n    });\n    return deferred.promise;\n}\n\n/**\n * Annotates an object such that it will never be\n * transferred away from this process over any promise\n * communication channel.\n * @param object\n * @returns promise a wrapping of that object that\n * additionally responds to the \"isDef\" message\n * without a rejection.\n */\nQ.master = master;\nfunction master(object) {\n    return Promise({\n        \"isDef\": function () {}\n    }, function fallback(op, args) {\n        return dispatch(object, op, args);\n    }, function () {\n        return Q(object).inspect();\n    });\n}\n\n/**\n * Spreads the values of a promised array of arguments into the\n * fulfillment callback.\n * @param fulfilled callback that receives variadic arguments from the\n * promised array\n * @param rejected callback that receives the exception if the promise\n * is rejected.\n * @returns a promise for the return value or thrown exception of\n * either callback.\n */\nQ.spread = spread;\nfunction spread(value, fulfilled, rejected) {\n    return Q(value).spread(fulfilled, rejected);\n}\n\nPromise.prototype.spread = function (fulfilled, rejected) {\n    return this.all().then(function (array) {\n        return fulfilled.apply(void 0, array);\n    }, rejected);\n};\n\n/**\n * The async function is a decorator for generator functions, turning\n * them into asynchronous generators.  Although generators are only part\n * of the newest ECMAScript 6 drafts, this code does not cause syntax\n * errors in older engines.  This code should continue to work and will\n * in fact improve over time as the language improves.\n *\n * ES6 generators are currently part of V8 version 3.19 with the\n * --harmony-generators runtime flag enabled.  SpiderMonkey has had them\n * for longer, but under an older Python-inspired form.  This function\n * works on both kinds of generators.\n *\n * Decorates a generator function such that:\n *  - it may yield promises\n *  - execution will continue when that promise is fulfilled\n *  - the value of the yield expression will be the fulfilled value\n *  - it returns a promise for the return value (when the generator\n *    stops iterating)\n *  - the decorated function returns a promise for the return value\n *    of the generator or the first rejected promise among those\n *    yielded.\n *  - if an error is thrown in the generator, it propagates through\n *    every following yield until it is caught, or until it escapes\n *    the generator function altogether, and is translated into a\n *    rejection for the promise returned by the decorated generator.\n */\nQ.async = async;\nfunction async(makeGenerator) {\n    return function () {\n        // when verb is \"send\", arg is a value\n        // when verb is \"throw\", arg is an exception\n        function continuer(verb, arg) {\n            var result;\n\n            // Until V8 3.19 / Chromium 29 is released, SpiderMonkey is the only\n            // engine that has a deployed base of browsers that support generators.\n            // However, SM's generators use the Python-inspired semantics of\n            // outdated ES6 drafts.  We would like to support ES6, but we'd also\n            // like to make it possible to use generators in deployed browsers, so\n            // we also support Python-style generators.  At some point we can remove\n            // this block.\n\n            if (typeof StopIteration === \"undefined\") {\n                // ES6 Generators\n                try {\n                    result = generator[verb](arg);\n                } catch (exception) {\n                    return reject(exception);\n                }\n                if (result.done) {\n                    return Q(result.value);\n                } else {\n                    return when(result.value, callback, errback);\n                }\n            } else {\n                // SpiderMonkey Generators\n                // FIXME: Remove this case when SM does ES6 generators.\n                try {\n                    result = generator[verb](arg);\n                } catch (exception) {\n                    if (isStopIteration(exception)) {\n                        return Q(exception.value);\n                    } else {\n                        return reject(exception);\n                    }\n                }\n                return when(result, callback, errback);\n            }\n        }\n        var generator = makeGenerator.apply(this, arguments);\n        var callback = continuer.bind(continuer, \"next\");\n        var errback = continuer.bind(continuer, \"throw\");\n        return callback();\n    };\n}\n\n/**\n * The spawn function is a small wrapper around async that immediately\n * calls the generator and also ends the promise chain, so that any\n * unhandled errors are thrown instead of forwarded to the error\n * handler. This is useful because it's extremely common to run\n * generators at the top-level to work with libraries.\n */\nQ.spawn = spawn;\nfunction spawn(makeGenerator) {\n    Q.done(Q.async(makeGenerator)());\n}\n\n// FIXME: Remove this interface once ES6 generators are in SpiderMonkey.\n/**\n * Throws a ReturnValue exception to stop an asynchronous generator.\n *\n * This interface is a stop-gap measure to support generator return\n * values in older Firefox/SpiderMonkey.  In browsers that support ES6\n * generators like Chromium 29, just use \"return\" in your generator\n * functions.\n *\n * @param value the return value for the surrounding generator\n * @throws ReturnValue exception with the value.\n * @example\n * // ES6 style\n * Q.async(function* () {\n *      var foo = yield getFooPromise();\n *      var bar = yield getBarPromise();\n *      return foo + bar;\n * })\n * // Older SpiderMonkey style\n * Q.async(function () {\n *      var foo = yield getFooPromise();\n *      var bar = yield getBarPromise();\n *      Q.return(foo + bar);\n * })\n */\nQ[\"return\"] = _return;\nfunction _return(value) {\n    throw new QReturnValue(value);\n}\n\n/**\n * The promised function decorator ensures that any promise arguments\n * are settled and passed as values (`this` is also settled and passed\n * as a value).  It will also ensure that the result of a function is\n * always a promise.\n *\n * @example\n * var add = Q.promised(function (a, b) {\n *     return a + b;\n * });\n * add(Q(a), Q(B));\n *\n * @param {function} callback The function to decorate\n * @returns {function} a function that has been decorated.\n */\nQ.promised = promised;\nfunction promised(callback) {\n    return function () {\n        return spread([this, all(arguments)], function (self, args) {\n            return callback.apply(self, args);\n        });\n    };\n}\n\n/**\n * sends a message to a value in a future turn\n * @param object* the recipient\n * @param op the name of the message operation, e.g., \"when\",\n * @param args further arguments to be forwarded to the operation\n * @returns result {Promise} a promise for the result of the operation\n */\nQ.dispatch = dispatch;\nfunction dispatch(object, op, args) {\n    return Q(object).dispatch(op, args);\n}\n\nPromise.prototype.dispatch = function (op, args) {\n    var self = this;\n    var deferred = defer();\n    Q.nextTick(function () {\n        self.promiseDispatch(deferred.resolve, op, args);\n    });\n    return deferred.promise;\n};\n\n/**\n * Gets the value of a property in a future turn.\n * @param object    promise or immediate reference for target object\n * @param name      name of property to get\n * @return promise for the property value\n */\nQ.get = function (object, key) {\n    return Q(object).dispatch(\"get\", [key]);\n};\n\nPromise.prototype.get = function (key) {\n    return this.dispatch(\"get\", [key]);\n};\n\n/**\n * Sets the value of a property in a future turn.\n * @param object    promise or immediate reference for object object\n * @param name      name of property to set\n * @param value     new value of property\n * @return promise for the return value\n */\nQ.set = function (object, key, value) {\n    return Q(object).dispatch(\"set\", [key, value]);\n};\n\nPromise.prototype.set = function (key, value) {\n    return this.dispatch(\"set\", [key, value]);\n};\n\n/**\n * Deletes a property in a future turn.\n * @param object    promise or immediate reference for target object\n * @param name      name of property to delete\n * @return promise for the return value\n */\nQ.del = // XXX legacy\nQ[\"delete\"] = function (object, key) {\n    return Q(object).dispatch(\"delete\", [key]);\n};\n\nPromise.prototype.del = // XXX legacy\nPromise.prototype[\"delete\"] = function (key) {\n    return this.dispatch(\"delete\", [key]);\n};\n\n/**\n * Invokes a method in a future turn.\n * @param object    promise or immediate reference for target object\n * @param name      name of method to invoke\n * @param value     a value to post, typically an array of\n *                  invocation arguments for promises that\n *                  are ultimately backed with `resolve` values,\n *                  as opposed to those backed with URLs\n *                  wherein the posted value can be any\n *                  JSON serializable object.\n * @return promise for the return value\n */\n// bound locally because it is used by other methods\nQ.mapply = // XXX As proposed by \"Redsandro\"\nQ.post = function (object, name, args) {\n    return Q(object).dispatch(\"post\", [name, args]);\n};\n\nPromise.prototype.mapply = // XXX As proposed by \"Redsandro\"\nPromise.prototype.post = function (name, args) {\n    return this.dispatch(\"post\", [name, args]);\n};\n\n/**\n * Invokes a method in a future turn.\n * @param object    promise or immediate reference for target object\n * @param name      name of method to invoke\n * @param ...args   array of invocation arguments\n * @return promise for the return value\n */\nQ.send = // XXX Mark Miller's proposed parlance\nQ.mcall = // XXX As proposed by \"Redsandro\"\nQ.invoke = function (object, name /*...args*/) {\n    return Q(object).dispatch(\"post\", [name, array_slice(arguments, 2)]);\n};\n\nPromise.prototype.send = // XXX Mark Miller's proposed parlance\nPromise.prototype.mcall = // XXX As proposed by \"Redsandro\"\nPromise.prototype.invoke = function (name /*...args*/) {\n    return this.dispatch(\"post\", [name, array_slice(arguments, 1)]);\n};\n\n/**\n * Applies the promised function in a future turn.\n * @param object    promise or immediate reference for target function\n * @param args      array of application arguments\n */\nQ.fapply = function (object, args) {\n    return Q(object).dispatch(\"apply\", [void 0, args]);\n};\n\nPromise.prototype.fapply = function (args) {\n    return this.dispatch(\"apply\", [void 0, args]);\n};\n\n/**\n * Calls the promised function in a future turn.\n * @param object    promise or immediate reference for target function\n * @param ...args   array of application arguments\n */\nQ[\"try\"] =\nQ.fcall = function (object /* ...args*/) {\n    return Q(object).dispatch(\"apply\", [void 0, array_slice(arguments, 1)]);\n};\n\nPromise.prototype.fcall = function (/*...args*/) {\n    return this.dispatch(\"apply\", [void 0, array_slice(arguments)]);\n};\n\n/**\n * Binds the promised function, transforming return values into a fulfilled\n * promise and thrown errors into a rejected one.\n * @param object    promise or immediate reference for target function\n * @param ...args   array of application arguments\n */\nQ.fbind = function (object /*...args*/) {\n    var promise = Q(object);\n    var args = array_slice(arguments, 1);\n    return function fbound() {\n        return promise.dispatch(\"apply\", [\n            this,\n            args.concat(array_slice(arguments))\n        ]);\n    };\n};\nPromise.prototype.fbind = function (/*...args*/) {\n    var promise = this;\n    var args = array_slice(arguments);\n    return function fbound() {\n        return promise.dispatch(\"apply\", [\n            this,\n            args.concat(array_slice(arguments))\n        ]);\n    };\n};\n\n/**\n * Requests the names of the owned properties of a promised\n * object in a future turn.\n * @param object    promise or immediate reference for target object\n * @return promise for the keys of the eventually settled object\n */\nQ.keys = function (object) {\n    return Q(object).dispatch(\"keys\", []);\n};\n\nPromise.prototype.keys = function () {\n    return this.dispatch(\"keys\", []);\n};\n\n/**\n * Turns an array of promises into a promise for an array.  If any of\n * the promises gets rejected, the whole array is rejected immediately.\n * @param {Array*} an array (or promise for an array) of values (or\n * promises for values)\n * @returns a promise for an array of the corresponding values\n */\n// By Mark Miller\n// http://wiki.ecmascript.org/doku.php?id=strawman:concurrency&rev=1308776521#allfulfilled\nQ.all = all;\nfunction all(promises) {\n    return when(promises, function (promises) {\n        var pendingCount = 0;\n        var deferred = defer();\n        array_reduce(promises, function (undefined, promise, index) {\n            var snapshot;\n            if (\n                isPromise(promise) &&\n                (snapshot = promise.inspect()).state === \"fulfilled\"\n            ) {\n                promises[index] = snapshot.value;\n            } else {\n                ++pendingCount;\n                when(\n                    promise,\n                    function (value) {\n                        promises[index] = value;\n                        if (--pendingCount === 0) {\n                            deferred.resolve(promises);\n                        }\n                    },\n                    deferred.reject,\n                    function (progress) {\n                        deferred.notify({ index: index, value: progress });\n                    }\n                );\n            }\n        }, void 0);\n        if (pendingCount === 0) {\n            deferred.resolve(promises);\n        }\n        return deferred.promise;\n    });\n}\n\nPromise.prototype.all = function () {\n    return all(this);\n};\n\n/**\n * Returns the first resolved promise of an array. Prior rejected promises are\n * ignored.  Rejects only if all promises are rejected.\n * @param {Array*} an array containing values or promises for values\n * @returns a promise fulfilled with the value of the first resolved promise,\n * or a rejected promise if all promises are rejected.\n */\nQ.any = any;\n\nfunction any(promises) {\n    if (promises.length === 0) {\n        return Q.resolve();\n    }\n\n    var deferred = Q.defer();\n    var pendingCount = 0;\n    array_reduce(promises, function (prev, current, index) {\n        var promise = promises[index];\n\n        pendingCount++;\n\n        when(promise, onFulfilled, onRejected, onProgress);\n        function onFulfilled(result) {\n            deferred.resolve(result);\n        }\n        function onRejected(err) {\n            pendingCount--;\n            if (pendingCount === 0) {\n                var rejection = err || new Error(\"\" + err);\n\n                rejection.message = (\"Q can't get fulfillment value from any promise, all \" +\n                    \"promises were rejected. Last error message: \" + rejection.message);\n\n                deferred.reject(rejection);\n            }\n        }\n        function onProgress(progress) {\n            deferred.notify({\n                index: index,\n                value: progress\n            });\n        }\n    }, undefined);\n\n    return deferred.promise;\n}\n\nPromise.prototype.any = function () {\n    return any(this);\n};\n\n/**\n * Waits for all promises to be settled, either fulfilled or\n * rejected.  This is distinct from `all` since that would stop\n * waiting at the first rejection.  The promise returned by\n * `allResolved` will never be rejected.\n * @param promises a promise for an array (or an array) of promises\n * (or values)\n * @return a promise for an array of promises\n */\nQ.allResolved = deprecate(allResolved, \"allResolved\", \"allSettled\");\nfunction allResolved(promises) {\n    return when(promises, function (promises) {\n        promises = array_map(promises, Q);\n        return when(all(array_map(promises, function (promise) {\n            return when(promise, noop, noop);\n        })), function () {\n            return promises;\n        });\n    });\n}\n\nPromise.prototype.allResolved = function () {\n    return allResolved(this);\n};\n\n/**\n * @see Promise#allSettled\n */\nQ.allSettled = allSettled;\nfunction allSettled(promises) {\n    return Q(promises).allSettled();\n}\n\n/**\n * Turns an array of promises into a promise for an array of their states (as\n * returned by `inspect`) when they have all settled.\n * @param {Array[Any*]} values an array (or promise for an array) of values (or\n * promises for values)\n * @returns {Array[State]} an array of states for the respective values.\n */\nPromise.prototype.allSettled = function () {\n    return this.then(function (promises) {\n        return all(array_map(promises, function (promise) {\n            promise = Q(promise);\n            function regardless() {\n                return promise.inspect();\n            }\n            return promise.then(regardless, regardless);\n        }));\n    });\n};\n\n/**\n * Captures the failure of a promise, giving an oportunity to recover\n * with a callback.  If the given promise is fulfilled, the returned\n * promise is fulfilled.\n * @param {Any*} promise for something\n * @param {Function} callback to fulfill the returned promise if the\n * given promise is rejected\n * @returns a promise for the return value of the callback\n */\nQ.fail = // XXX legacy\nQ[\"catch\"] = function (object, rejected) {\n    return Q(object).then(void 0, rejected);\n};\n\nPromise.prototype.fail = // XXX legacy\nPromise.prototype[\"catch\"] = function (rejected) {\n    return this.then(void 0, rejected);\n};\n\n/**\n * Attaches a listener that can respond to progress notifications from a\n * promise's originating deferred. This listener receives the exact arguments\n * passed to ``deferred.notify``.\n * @param {Any*} promise for something\n * @param {Function} callback to receive any progress notifications\n * @returns the given promise, unchanged\n */\nQ.progress = progress;\nfunction progress(object, progressed) {\n    return Q(object).then(void 0, void 0, progressed);\n}\n\nPromise.prototype.progress = function (progressed) {\n    return this.then(void 0, void 0, progressed);\n};\n\n/**\n * Provides an opportunity to observe the settling of a promise,\n * regardless of whether the promise is fulfilled or rejected.  Forwards\n * the resolution to the returned promise when the callback is done.\n * The callback can return a promise to defer completion.\n * @param {Any*} promise\n * @param {Function} callback to observe the resolution of the given\n * promise, takes no arguments.\n * @returns a promise for the resolution of the given promise when\n * ``fin`` is done.\n */\nQ.fin = // XXX legacy\nQ[\"finally\"] = function (object, callback) {\n    return Q(object)[\"finally\"](callback);\n};\n\nPromise.prototype.fin = // XXX legacy\nPromise.prototype[\"finally\"] = function (callback) {\n    if (!callback || typeof callback.apply !== \"function\") {\n        throw new Error(\"Q can't apply finally callback\");\n    }\n    callback = Q(callback);\n    return this.then(function (value) {\n        return callback.fcall().then(function () {\n            return value;\n        });\n    }, function (reason) {\n        // TODO attempt to recycle the rejection with \"this\".\n        return callback.fcall().then(function () {\n            throw reason;\n        });\n    });\n};\n\n/**\n * Terminates a chain of promises, forcing rejections to be\n * thrown as exceptions.\n * @param {Any*} promise at the end of a chain of promises\n * @returns nothing\n */\nQ.done = function (object, fulfilled, rejected, progress) {\n    return Q(object).done(fulfilled, rejected, progress);\n};\n\nPromise.prototype.done = function (fulfilled, rejected, progress) {\n    var onUnhandledError = function (error) {\n        // forward to a future turn so that ``when``\n        // does not catch it and turn it into a rejection.\n        Q.nextTick(function () {\n            makeStackTraceLong(error, promise);\n            if (Q.onerror) {\n                Q.onerror(error);\n            } else {\n                throw error;\n            }\n        });\n    };\n\n    // Avoid unnecessary `nextTick`ing via an unnecessary `when`.\n    var promise = fulfilled || rejected || progress ?\n        this.then(fulfilled, rejected, progress) :\n        this;\n\n    if (typeof process === \"object\" && process && process.domain) {\n        onUnhandledError = process.domain.bind(onUnhandledError);\n    }\n\n    promise.then(void 0, onUnhandledError);\n};\n\n/**\n * Causes a promise to be rejected if it does not get fulfilled before\n * some milliseconds time out.\n * @param {Any*} promise\n * @param {Number} milliseconds timeout\n * @param {Any*} custom error message or Error object (optional)\n * @returns a promise for the resolution of the given promise if it is\n * fulfilled before the timeout, otherwise rejected.\n */\nQ.timeout = function (object, ms, error) {\n    return Q(object).timeout(ms, error);\n};\n\nPromise.prototype.timeout = function (ms, error) {\n    var deferred = defer();\n    var timeoutId = setTimeout(function () {\n        if (!error || \"string\" === typeof error) {\n            error = new Error(error || \"Timed out after \" + ms + \" ms\");\n            error.code = \"ETIMEDOUT\";\n        }\n        deferred.reject(error);\n    }, ms);\n\n    this.then(function (value) {\n        clearTimeout(timeoutId);\n        deferred.resolve(value);\n    }, function (exception) {\n        clearTimeout(timeoutId);\n        deferred.reject(exception);\n    }, deferred.notify);\n\n    return deferred.promise;\n};\n\n/**\n * Returns a promise for the given value (or promised value), some\n * milliseconds after it resolved. Passes rejections immediately.\n * @param {Any*} promise\n * @param {Number} milliseconds\n * @returns a promise for the resolution of the given promise after milliseconds\n * time has elapsed since the resolution of the given promise.\n * If the given promise rejects, that is passed immediately.\n */\nQ.delay = function (object, timeout) {\n    if (timeout === void 0) {\n        timeout = object;\n        object = void 0;\n    }\n    return Q(object).delay(timeout);\n};\n\nPromise.prototype.delay = function (timeout) {\n    return this.then(function (value) {\n        var deferred = defer();\n        setTimeout(function () {\n            deferred.resolve(value);\n        }, timeout);\n        return deferred.promise;\n    });\n};\n\n/**\n * Passes a continuation to a Node function, which is called with the given\n * arguments provided as an array, and returns a promise.\n *\n *      Q.nfapply(FS.readFile, [__filename])\n *      .then(function (content) {\n *      })\n *\n */\nQ.nfapply = function (callback, args) {\n    return Q(callback).nfapply(args);\n};\n\nPromise.prototype.nfapply = function (args) {\n    var deferred = defer();\n    var nodeArgs = array_slice(args);\n    nodeArgs.push(deferred.makeNodeResolver());\n    this.fapply(nodeArgs).fail(deferred.reject);\n    return deferred.promise;\n};\n\n/**\n * Passes a continuation to a Node function, which is called with the given\n * arguments provided individually, and returns a promise.\n * @example\n * Q.nfcall(FS.readFile, __filename)\n * .then(function (content) {\n * })\n *\n */\nQ.nfcall = function (callback /*...args*/) {\n    var args = array_slice(arguments, 1);\n    return Q(callback).nfapply(args);\n};\n\nPromise.prototype.nfcall = function (/*...args*/) {\n    var nodeArgs = array_slice(arguments);\n    var deferred = defer();\n    nodeArgs.push(deferred.makeNodeResolver());\n    this.fapply(nodeArgs).fail(deferred.reject);\n    return deferred.promise;\n};\n\n/**\n * Wraps a NodeJS continuation passing function and returns an equivalent\n * version that returns a promise.\n * @example\n * Q.nfbind(FS.readFile, __filename)(\"utf-8\")\n * .then(console.log)\n * .done()\n */\nQ.nfbind =\nQ.denodeify = function (callback /*...args*/) {\n    if (callback === undefined) {\n        throw new Error(\"Q can't wrap an undefined function\");\n    }\n    var baseArgs = array_slice(arguments, 1);\n    return function () {\n        var nodeArgs = baseArgs.concat(array_slice(arguments));\n        var deferred = defer();\n        nodeArgs.push(deferred.makeNodeResolver());\n        Q(callback).fapply(nodeArgs).fail(deferred.reject);\n        return deferred.promise;\n    };\n};\n\nPromise.prototype.nfbind =\nPromise.prototype.denodeify = function (/*...args*/) {\n    var args = array_slice(arguments);\n    args.unshift(this);\n    return Q.denodeify.apply(void 0, args);\n};\n\nQ.nbind = function (callback, thisp /*...args*/) {\n    var baseArgs = array_slice(arguments, 2);\n    return function () {\n        var nodeArgs = baseArgs.concat(array_slice(arguments));\n        var deferred = defer();\n        nodeArgs.push(deferred.makeNodeResolver());\n        function bound() {\n            return callback.apply(thisp, arguments);\n        }\n        Q(bound).fapply(nodeArgs).fail(deferred.reject);\n        return deferred.promise;\n    };\n};\n\nPromise.prototype.nbind = function (/*thisp, ...args*/) {\n    var args = array_slice(arguments, 0);\n    args.unshift(this);\n    return Q.nbind.apply(void 0, args);\n};\n\n/**\n * Calls a method of a Node-style object that accepts a Node-style\n * callback with a given array of arguments, plus a provided callback.\n * @param object an object that has the named method\n * @param {String} name name of the method of object\n * @param {Array} args arguments to pass to the method; the callback\n * will be provided by Q and appended to these arguments.\n * @returns a promise for the value or error\n */\nQ.nmapply = // XXX As proposed by \"Redsandro\"\nQ.npost = function (object, name, args) {\n    return Q(object).npost(name, args);\n};\n\nPromise.prototype.nmapply = // XXX As proposed by \"Redsandro\"\nPromise.prototype.npost = function (name, args) {\n    var nodeArgs = array_slice(args || []);\n    var deferred = defer();\n    nodeArgs.push(deferred.makeNodeResolver());\n    this.dispatch(\"post\", [name, nodeArgs]).fail(deferred.reject);\n    return deferred.promise;\n};\n\n/**\n * Calls a method of a Node-style object that accepts a Node-style\n * callback, forwarding the given variadic arguments, plus a provided\n * callback argument.\n * @param object an object that has the named method\n * @param {String} name name of the method of object\n * @param ...args arguments to pass to the method; the callback will\n * be provided by Q and appended to these arguments.\n * @returns a promise for the value or error\n */\nQ.nsend = // XXX Based on Mark Miller's proposed \"send\"\nQ.nmcall = // XXX Based on \"Redsandro's\" proposal\nQ.ninvoke = function (object, name /*...args*/) {\n    var nodeArgs = array_slice(arguments, 2);\n    var deferred = defer();\n    nodeArgs.push(deferred.makeNodeResolver());\n    Q(object).dispatch(\"post\", [name, nodeArgs]).fail(deferred.reject);\n    return deferred.promise;\n};\n\nPromise.prototype.nsend = // XXX Based on Mark Miller's proposed \"send\"\nPromise.prototype.nmcall = // XXX Based on \"Redsandro's\" proposal\nPromise.prototype.ninvoke = function (name /*...args*/) {\n    var nodeArgs = array_slice(arguments, 1);\n    var deferred = defer();\n    nodeArgs.push(deferred.makeNodeResolver());\n    this.dispatch(\"post\", [name, nodeArgs]).fail(deferred.reject);\n    return deferred.promise;\n};\n\n/**\n * If a function would like to support both Node continuation-passing-style and\n * promise-returning-style, it can end its internal promise chain with\n * `nodeify(nodeback)`, forwarding the optional nodeback argument.  If the user\n * elects to use a nodeback, the result will be sent there.  If they do not\n * pass a nodeback, they will receive the result promise.\n * @param object a result (or a promise for a result)\n * @param {Function} nodeback a Node.js-style callback\n * @returns either the promise or nothing\n */\nQ.nodeify = nodeify;\nfunction nodeify(object, nodeback) {\n    return Q(object).nodeify(nodeback);\n}\n\nPromise.prototype.nodeify = function (nodeback) {\n    if (nodeback) {\n        this.then(function (value) {\n            Q.nextTick(function () {\n                nodeback(null, value);\n            });\n        }, function (error) {\n            Q.nextTick(function () {\n                nodeback(error);\n            });\n        });\n    } else {\n        return this;\n    }\n};\n\nQ.noConflict = function() {\n    throw new Error(\"Q.noConflict only works when Q is used as a global\");\n};\n\n// All code before this point will be filtered from stack traces.\nvar qEndingLine = captureLine();\n\nreturn Q;\n\n});\n","/** @license React v16.14.0\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.14.0\",\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.14.0\";\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","/** @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","'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 v16.14.0\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.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","export var AuthType;\n(function (AuthType) {\n    AuthType[\"AAD\"] = \"aad\";\n    AuthType[\"EncryptedToken\"] = \"encryptedtoken\";\n    AuthType[\"MasterKey\"] = \"masterkey\";\n    AuthType[\"ResourceToken\"] = \"resourcetoken\";\n    AuthType[\"ConnectionString\"] = \"connectionstring\";\n})(AuthType || (AuthType = {}));\n","export class CodeOfConductEndpoints {\n}\nCodeOfConductEndpoints.privacyStatement = \"https://aka.ms/ms-privacy-policy\";\nCodeOfConductEndpoints.codeOfConduct = \"https://aka.ms/cosmos-code-of-conduct\";\nCodeOfConductEndpoints.termsOfUse = \"https://aka.ms/ms-terms-of-use\";\nexport class EndpointsRegex {\n}\nEndpointsRegex.cassandra = [\n    \"AccountEndpoint=(.*).cassandra.cosmosdb.azure.com\",\n    \"HostName=(.*).cassandra.cosmos.azure.com\",\n];\nEndpointsRegex.mongo = \"mongodb://.*:(.*)@(.*).documents.azure.com\";\nEndpointsRegex.mongoCompute = \"mongodb://.*:(.*)@(.*).mongo.cosmos.azure.com\";\nEndpointsRegex.sql = \"AccountEndpoint=https://(.*).documents.azure.com\";\nEndpointsRegex.table = \"TableEndpoint=https://(.*).table.cosmosdb.azure.com\";\nexport class ApiEndpoints {\n}\nApiEndpoints.runtimeProxy = \"/api/RuntimeProxy\";\nApiEndpoints.guestRuntimeProxy = \"/api/guest/RuntimeProxy\";\nexport class ServerIds {\n}\nServerIds.localhost = \"localhost\";\nServerIds.blackforest = \"blackforest\";\nServerIds.fairfax = \"fairfax\";\nServerIds.mooncake = \"mooncake\";\nServerIds.productionPortal = \"prod\";\nServerIds.dev = \"dev\";\nexport class ArmApiVersions {\n}\nArmApiVersions.documentDB = \"2015-11-06\";\nArmApiVersions.arcadia = \"2019-06-01-preview\";\nArmApiVersions.arcadiaLivy = \"2019-11-01-preview\";\nArmApiVersions.arm = \"2015-11-01\";\nArmApiVersions.armFeatures = \"2014-08-01-preview\";\nArmApiVersions.publicVersion = \"2020-04-01\";\nexport class ArmResourceTypes {\n}\nArmResourceTypes.notebookWorkspaces = \"Microsoft.DocumentDB/databaseAccounts/notebookWorkspaces\";\nArmResourceTypes.synapseWorkspaces = \"Microsoft.Synapse/workspaces\";\nexport class BackendDefaults {\n}\nBackendDefaults.partitionKeyKind = \"Hash\";\nBackendDefaults.partitionKeyMultiHash = \"MultiHash\";\nBackendDefaults.maxNumMultiHashPartition = 2;\nBackendDefaults.singlePartitionStorageInGb = \"10\";\nBackendDefaults.multiPartitionStorageInGb = \"100\";\nBackendDefaults.maxChangeFeedRetentionDuration = 10;\nBackendDefaults.partitionKeyVersion = 2;\nexport class ClientDefaults {\n}\nClientDefaults.requestTimeoutMs = 60000;\nClientDefaults.portalCacheTimeoutMs = 10000;\nClientDefaults.errorNotificationTimeoutMs = 5000;\nClientDefaults.copyHelperTimeoutMs = 2000;\nClientDefaults.waitForDOMElementMs = 500;\nClientDefaults.cacheBustingTimeoutMs = 10 /** minutes **/ * 60 /** to seconds **/ * 1000 /** to milliseconds **/;\nClientDefaults.databaseThroughputIncreaseFactor = 100;\nClientDefaults.arcadiaTokenRefreshInterval = 20 /** minutes **/ * 60 /** to seconds **/ * 1000 /** to milliseconds **/;\nClientDefaults.arcadiaTokenRefreshIntervalPaddingMs = 2000;\nexport var AccountKind;\n(function (AccountKind) {\n    AccountKind[\"DocumentDB\"] = \"DocumentDB\";\n    AccountKind[\"MongoDB\"] = \"MongoDB\";\n    AccountKind[\"Parse\"] = \"Parse\";\n    AccountKind[\"GlobalDocumentDB\"] = \"GlobalDocumentDB\";\n    AccountKind[\"Default\"] = \"DocumentDB\";\n})(AccountKind || (AccountKind = {}));\nexport class CorrelationBackend {\n}\nCorrelationBackend.Url = \"https://aka.ms/cosmosdbanalytics\";\nexport class CapabilityNames {\n}\nCapabilityNames.EnableTable = \"EnableTable\";\nCapabilityNames.EnableGremlin = \"EnableGremlin\";\nCapabilityNames.EnableCassandra = \"EnableCassandra\";\nCapabilityNames.EnableAutoScale = \"EnableAutoScale\";\nCapabilityNames.EnableNotebooks = \"EnableNotebooks\";\nCapabilityNames.EnableStorageAnalytics = \"EnableStorageAnalytics\";\nCapabilityNames.EnableMongo = \"EnableMongo\";\nCapabilityNames.EnableServerless = \"EnableServerless\";\nCapabilityNames.EnableNoSQLVectorSearch = \"EnableNoSQLVectorSearch\";\nCapabilityNames.EnableNoSQLFullTextSearch = \"EnableNoSQLFullTextSearch\";\nexport var CapacityMode;\n(function (CapacityMode) {\n    CapacityMode[\"Provisioned\"] = \"Provisioned\";\n    CapacityMode[\"Serverless\"] = \"Serverless\";\n})(CapacityMode || (CapacityMode = {}));\nexport var WorkloadType;\n(function (WorkloadType) {\n    WorkloadType[\"Learning\"] = \"Learning\";\n    WorkloadType[\"DevelopmentTesting\"] = \"Development/Testing\";\n    WorkloadType[\"Production\"] = \"Production\";\n    WorkloadType[\"None\"] = \"None\";\n})(WorkloadType || (WorkloadType = {}));\n// flight names returned from the portal are always lowercase\nexport class Flights {\n}\nFlights.SettingsV2 = \"settingsv2\";\nFlights.MongoIndexEditor = \"mongoindexeditor\";\nFlights.MongoIndexing = \"mongoindexing\";\nFlights.AutoscaleTest = \"autoscaletest\";\nFlights.PartitionKeyTest = \"partitionkeytest\";\nFlights.PKPartitionKeyTest = \"pkpartitionkeytest\";\nFlights.PhoenixNotebooks = \"phoenixnotebooks\";\nFlights.PhoenixFeatures = \"phoenixfeatures\";\nFlights.NotebooksDownBanner = \"notebooksdownbanner\";\nFlights.PublicGallery = \"publicgallery\";\nexport class AfecFeatures {\n}\nAfecFeatures.Spark = \"spark-public-preview\";\nAfecFeatures.Notebooks = \"sparknotebooks-public-preview\";\nAfecFeatures.StorageAnalytics = \"storageanalytics-public-preview\";\nexport class TagNames {\n}\nTagNames.defaultExperience = \"defaultExperience\";\nTagNames.WorkloadType = \"hidden-workload-type\";\nexport class MongoDBAccounts {\n}\nMongoDBAccounts.protocol = \"https\";\nMongoDBAccounts.defaultPort = \"10255\";\nexport var MongoBackendEndpointType;\n(function (MongoBackendEndpointType) {\n    MongoBackendEndpointType[MongoBackendEndpointType[\"local\"] = 0] = \"local\";\n    MongoBackendEndpointType[MongoBackendEndpointType[\"remote\"] = 1] = \"remote\";\n})(MongoBackendEndpointType || (MongoBackendEndpointType = {}));\nexport class BackendApi {\n}\nBackendApi.GenerateToken = \"GenerateToken\";\nBackendApi.PortalSettings = \"PortalSettings\";\nBackendApi.AccountRestrictions = \"AccountRestrictions\";\nBackendApi.RuntimeProxy = \"RuntimeProxy\";\nBackendApi.DisallowedLocations = \"DisallowedLocations\";\nBackendApi.SampleData = \"SampleData\";\nexport class PortalBackendEndpoints {\n}\nPortalBackendEndpoints.Development = \"https://localhost:7235\";\nPortalBackendEndpoints.Mpac = \"https://cdb-ms-mpac-pbe.cosmos.azure.com\";\nPortalBackendEndpoints.Prod = \"https://cdb-ms-prod-pbe.cosmos.azure.com\";\nPortalBackendEndpoints.Fairfax = \"https://cdb-ff-prod-pbe.cosmos.azure.us\";\nPortalBackendEndpoints.Mooncake = \"https://cdb-mc-prod-pbe.cosmos.azure.cn\";\nexport class MongoProxyEndpoints {\n}\nMongoProxyEndpoints.Development = \"https://localhost:7238\";\nMongoProxyEndpoints.Mpac = \"https://cdb-ms-mpac-mp.cosmos.azure.com\";\nMongoProxyEndpoints.Prod = \"https://cdb-ms-prod-mp.cosmos.azure.com\";\nMongoProxyEndpoints.Fairfax = \"https://cdb-ff-prod-mp.cosmos.azure.us\";\nMongoProxyEndpoints.Mooncake = \"https://cdb-mc-prod-mp.cosmos.azure.cn\";\nexport class MongoProxyApi {\n}\nMongoProxyApi.ResourceList = \"ResourceList\";\nMongoProxyApi.QueryDocuments = \"QueryDocuments\";\nMongoProxyApi.CreateDocument = \"CreateDocument\";\nMongoProxyApi.ReadDocument = \"ReadDocument\";\nMongoProxyApi.UpdateDocument = \"UpdateDocument\";\nMongoProxyApi.DeleteDocument = \"DeleteDocument\";\nMongoProxyApi.CreateCollectionWithProxy = \"CreateCollectionWithProxy\";\nMongoProxyApi.LegacyMongoShell = \"LegacyMongoShell\";\nMongoProxyApi.BulkDelete = \"BulkDelete\";\nexport class CassandraProxyEndpoints {\n}\nCassandraProxyEndpoints.Development = \"https://localhost:7240\";\nCassandraProxyEndpoints.Mpac = \"https://cdb-ms-mpac-cp.cosmos.azure.com\";\nCassandraProxyEndpoints.Prod = \"https://cdb-ms-prod-cp.cosmos.azure.com\";\nCassandraProxyEndpoints.Fairfax = \"https://cdb-ff-prod-cp.cosmos.azure.us\";\nCassandraProxyEndpoints.Mooncake = \"https://cdb-mc-prod-cp.cosmos.azure.cn\";\n//TODO: Remove this when new backend is migrated over\nexport class CassandraBackend {\n}\nCassandraBackend.createOrDeleteApi = \"api/cassandra/createordelete\";\nCassandraBackend.guestCreateOrDeleteApi = \"api/guest/cassandra/createordelete\";\nCassandraBackend.queryApi = \"api/cassandra\";\nCassandraBackend.guestQueryApi = \"api/guest/cassandra\";\nCassandraBackend.keysApi = \"api/cassandra/keys\";\nCassandraBackend.guestKeysApi = \"api/guest/cassandra/keys\";\nCassandraBackend.schemaApi = \"api/cassandra/schema\";\nCassandraBackend.guestSchemaApi = \"api/guest/cassandra/schema\";\nexport class CassandraProxyAPIs {\n}\nCassandraProxyAPIs.createOrDeleteApi = \"api/cassandra/createordelete\";\nCassandraProxyAPIs.connectionStringCreateOrDeleteApi = \"api/connectionstring/cassandra/createordelete\";\nCassandraProxyAPIs.queryApi = \"api/cassandra\";\nCassandraProxyAPIs.connectionStringQueryApi = \"api/connectionstring/cassandra\";\nCassandraProxyAPIs.keysApi = \"api/cassandra/keys\";\nCassandraProxyAPIs.connectionStringKeysApi = \"api/connectionstring/cassandra/keys\";\nCassandraProxyAPIs.schemaApi = \"api/cassandra/schema\";\nCassandraProxyAPIs.connectionStringSchemaApi = \"api/connectionstring/cassandra/schema\";\nexport class AadEndpoints {\n}\nAadEndpoints.Prod = \"https://login.microsoftonline.com/\";\nAadEndpoints.Fairfax = \"https://login.microsoftonline.us/\";\nAadEndpoints.Mooncake = \"https://login.partner.microsoftonline.cn/\";\nexport class Queries {\n}\nQueries.CustomPageOption = \"custom\";\nQueries.UnlimitedPageOption = \"unlimited\";\nQueries.itemsPerPage = 100;\nQueries.unlimitedItemsPerPage = 100; // TODO: Figure out appropriate value so it works for accounts with a large number of partitions\nQueries.containersPerPage = 50;\nQueries.QueryEditorMinHeightRatio = 0.1;\nQueries.QueryEditorMaxHeightRatio = 0.4;\nQueries.DefaultMaxDegreeOfParallelism = 6;\nQueries.DefaultRetryAttempts = 9;\nQueries.DefaultRetryIntervalInMs = 0;\nQueries.DefaultMaxWaitTimeInSeconds = 30;\nexport class RBACOptions {\n}\nRBACOptions.setAutomaticRBACOption = \"Automatic\";\nRBACOptions.setTrueRBACOption = \"True\";\nRBACOptions.setFalseRBACOption = \"False\";\nexport class SavedQueries {\n}\nSavedQueries.CollectionName = \"___Query\";\nSavedQueries.DatabaseName = \"___Cosmos\";\nSavedQueries.OfferThroughput = 400;\nSavedQueries.PartitionKeyProperty = \"id\";\nexport class DocumentsGridMetrics {\n}\nDocumentsGridMetrics.DocumentsPerPage = 100;\nDocumentsGridMetrics.IndividualRowHeight = 34;\nDocumentsGridMetrics.BufferHeight = 28;\nDocumentsGridMetrics.SplitterMinWidth = 200;\nDocumentsGridMetrics.SplitterMaxWidth = 360;\nDocumentsGridMetrics.DocumentEditorMinWidthRatio = 0.2;\nDocumentsGridMetrics.DocumentEditorMaxWidthRatio = 0.4;\nexport class Areas {\n}\nAreas.ResourceTree = \"Resource Tree\";\nAreas.ContextualPane = \"Contextual Pane\";\nAreas.Tab = \"Tab\";\nAreas.ShareDialog = \"Share Access Dialog\";\nAreas.Notebook = \"Notebook\";\nAreas.Copilot = \"Copilot\";\nexport class HttpHeaders {\n}\nHttpHeaders.activityId = \"x-ms-activity-id\";\nHttpHeaders.apiType = \"x-ms-cosmos-apitype\";\nHttpHeaders.authorization = \"authorization\";\nHttpHeaders.collectionIndexTransformationProgress = \"x-ms-documentdb-collection-index-transformation-progress\";\nHttpHeaders.continuation = \"x-ms-continuation\";\nHttpHeaders.correlationRequestId = \"x-ms-correlation-request-id\";\nHttpHeaders.enableScriptLogging = \"x-ms-documentdb-script-enable-logging\";\nHttpHeaders.guestAccessToken = \"x-ms-encrypted-auth-token\";\nHttpHeaders.getReadOnlyKey = \"x-ms-get-read-only-key\";\nHttpHeaders.connectionString = \"x-ms-connection-string\";\nHttpHeaders.msDate = \"x-ms-date\";\nHttpHeaders.location = \"Location\";\nHttpHeaders.contentType = \"Content-Type\";\nHttpHeaders.offerReplacePending = \"x-ms-offer-replace-pending\";\nHttpHeaders.user = \"x-ms-user\";\nHttpHeaders.populatePartitionStatistics = \"x-ms-documentdb-populatepartitionstatistics\";\nHttpHeaders.queryMetrics = \"x-ms-documentdb-query-metrics\";\nHttpHeaders.requestCharge = \"x-ms-request-charge\";\nHttpHeaders.resourceQuota = \"x-ms-resource-quota\";\nHttpHeaders.resourceUsage = \"x-ms-resource-usage\";\nHttpHeaders.retryAfterMs = \"x-ms-retry-after-ms\";\nHttpHeaders.scriptLogResults = \"x-ms-documentdb-script-log-results\";\nHttpHeaders.populateCollectionThroughputInfo = \"x-ms-documentdb-populatecollectionthroughputinfo\";\nHttpHeaders.supportSpatialLegacyCoordinates = \"x-ms-documentdb-supportspatiallegacycoordinates\";\nHttpHeaders.usePolygonsSmallerThanAHemisphere = \"x-ms-documentdb-usepolygonssmallerthanahemisphere\";\nHttpHeaders.autoPilotThroughput = \"autoscaleSettings\";\nHttpHeaders.autoPilotThroughputSDK = \"x-ms-cosmos-offer-autopilot-settings\";\nHttpHeaders.partitionKey = \"x-ms-documentdb-partitionkey\";\nHttpHeaders.migrateOfferToManualThroughput = \"x-ms-cosmos-migrate-offer-to-manual-throughput\";\nHttpHeaders.migrateOfferToAutopilot = \"x-ms-cosmos-migrate-offer-to-autopilot\";\nHttpHeaders.xAPIKey = \"X-API-Key\";\nexport class ContentType {\n}\nContentType.applicationJson = \"application/json\";\nexport class ApiType {\n}\n// Mapped to hexadecimal values in the backend\nApiType.MongoDB = 1;\nApiType.Gremlin = 2;\nApiType.Cassandra = 4;\nApiType.Table = 8;\nApiType.SQL = 16;\nexport class HttpStatusCodes {\n}\nHttpStatusCodes.OK = 200;\nHttpStatusCodes.Created = 201;\nHttpStatusCodes.Accepted = 202;\nHttpStatusCodes.NoContent = 204;\nHttpStatusCodes.NotModified = 304;\nHttpStatusCodes.BadRequest = 400;\nHttpStatusCodes.Unauthorized = 401;\nHttpStatusCodes.Forbidden = 403;\nHttpStatusCodes.NotFound = 404;\nHttpStatusCodes.TooManyRequests = 429;\nHttpStatusCodes.Conflict = 409;\nHttpStatusCodes.InternalServerError = 500;\nHttpStatusCodes.BadGateway = 502;\nHttpStatusCodes.ServiceUnavailable = 503;\nHttpStatusCodes.GatewayTimeout = 504;\nHttpStatusCodes.RetryableStatusCodes = [\n    HttpStatusCodes.TooManyRequests,\n    HttpStatusCodes.InternalServerError,\n    HttpStatusCodes.BadGateway,\n    HttpStatusCodes.ServiceUnavailable,\n    HttpStatusCodes.GatewayTimeout,\n];\nexport class Urls {\n}\nUrls.feedbackEmail = \"https://aka.ms/cosmosdbfeedback?subject=Cosmos%20DB%20Data%20Explorer%20Feedback\";\nUrls.autoscaleMigration = \"https://aka.ms/cosmos-autoscale-migration\";\nUrls.freeTierInformation = \"https://aka.ms/cosmos-free-tier\";\nUrls.cosmosPricing = \"https://aka.ms/azure-cosmos-db-pricing\";\nexport class HashRoutePrefixes {\n    static databasesWithId(databaseId) {\n        return this.databases.replace(\"{db_id}\", databaseId).replace(\"/\", \"\"); // strip the first slash since hasher adds it\n    }\n    static collectionsWithIds(databaseId, collectionId) {\n        const transformedDatabasePrefix = this.collections.replace(\"{db_id}\", databaseId);\n        return transformedDatabasePrefix.replace(\"{coll_id}\", collectionId).replace(\"/\", \"\"); // strip the first slash since hasher adds it\n    }\n    static sprocWithIds(databaseId, collectionId, sprocId, stripFirstSlash = true) {\n        const transformedDatabasePrefix = this.sprocs.replace(\"{db_id}\", databaseId);\n        const transformedSprocRoute = transformedDatabasePrefix\n            .replace(\"{coll_id}\", collectionId)\n            .replace(\"{sproc_id}\", sprocId);\n        if (!!stripFirstSlash) {\n            return transformedSprocRoute.replace(\"/\", \"\"); // strip the first slash since hasher adds it\n        }\n        return transformedSprocRoute;\n    }\n    static conflictsWithIds(databaseId, collectionId) {\n        const transformedDatabasePrefix = this.conflicts.replace(\"{db_id}\", databaseId);\n        return transformedDatabasePrefix.replace(\"{coll_id}\", collectionId).replace(\"/\", \"\"); // strip the first slash since hasher adds it;\n    }\n    static docsWithIds(databaseId, collectionId, docId) {\n        const transformedDatabasePrefix = this.docs.replace(\"{db_id}\", databaseId);\n        return transformedDatabasePrefix.replace(\"{coll_id}\", collectionId).replace(\"{doc_id}\", docId).replace(\"/\", \"\"); // strip the first slash since hasher adds it\n    }\n}\nHashRoutePrefixes.databases = \"/dbs/{db_id}\";\nHashRoutePrefixes.collections = \"/dbs/{db_id}/colls/{coll_id}\";\nHashRoutePrefixes.sprocHash = \"/sprocs/\";\nHashRoutePrefixes.sprocs = HashRoutePrefixes.collections + HashRoutePrefixes.sprocHash + \"{sproc_id}\";\nHashRoutePrefixes.docs = HashRoutePrefixes.collections + \"/docs/{doc_id}/\";\nHashRoutePrefixes.conflicts = HashRoutePrefixes.collections + \"/conflicts\";\nexport class ConfigurationOverridesValues {\n}\nConfigurationOverridesValues.IsBsonSchemaV2 = \"true\";\nexport class KeyCodes {\n}\nKeyCodes.Space = 32;\nKeyCodes.Enter = 13;\nKeyCodes.Escape = 27;\nKeyCodes.UpArrow = 38;\nKeyCodes.DownArrow = 40;\nKeyCodes.LeftArrow = 37;\nKeyCodes.RightArrow = 39;\nKeyCodes.Tab = 9;\n// Normalized per: https://www.w3.org/TR/uievents-key/#named-key-attribute-values\nexport class NormalizedEventKey {\n}\nNormalizedEventKey.Space = \" \";\nNormalizedEventKey.Enter = \"Enter\";\nNormalizedEventKey.Escape = \"Escape\";\nNormalizedEventKey.UpArrow = \"ArrowUp\";\nNormalizedEventKey.DownArrow = \"ArrowDown\";\nNormalizedEventKey.LeftArrow = \"ArrowLeft\";\nNormalizedEventKey.RightArrow = \"ArrowRight\";\nexport class TryCosmosExperience {\n}\nTryCosmosExperience.extendUrl = \"https://trycosmosdb.azure.com/api/resource/extendportal?userId={0}\";\nTryCosmosExperience.deleteUrl = \"https://trycosmosdb.azure.com/api/resource/deleteportal?userId={0}\";\nTryCosmosExperience.collectionsPerAccount = 3;\nTryCosmosExperience.maxRU = 5000;\nTryCosmosExperience.defaultRU = 3000;\nexport class OfferVersions {\n}\nOfferVersions.V1 = \"V1\";\nOfferVersions.V2 = \"V2\";\nexport var ConflictOperationType;\n(function (ConflictOperationType) {\n    ConflictOperationType[\"Replace\"] = \"replace\";\n    ConflictOperationType[\"Create\"] = \"create\";\n    ConflictOperationType[\"Delete\"] = \"delete\";\n})(ConflictOperationType || (ConflictOperationType = {}));\nexport var ConnectionStatusType;\n(function (ConnectionStatusType) {\n    ConnectionStatusType[\"Connect\"] = \"Connect\";\n    ConnectionStatusType[\"Connecting\"] = \"Connecting\";\n    ConnectionStatusType[\"Connected\"] = \"Connected\";\n    ConnectionStatusType[\"Failed\"] = \"Connection Failed\";\n    ConnectionStatusType[\"Reconnect\"] = \"Reconnect\";\n})(ConnectionStatusType || (ConnectionStatusType = {}));\nexport var ContainerStatusType;\n(function (ContainerStatusType) {\n    ContainerStatusType[\"Active\"] = \"Active\";\n    ContainerStatusType[\"Disconnected\"] = \"Disconnected\";\n})(ContainerStatusType || (ContainerStatusType = {}));\nexport var PoolIdType;\n(function (PoolIdType) {\n    PoolIdType[\"DefaultPoolId\"] = \"default\";\n    PoolIdType[\"QueryCopilot\"] = \"query-copilot\";\n})(PoolIdType || (PoolIdType = {}));\nexport const EmulatorMasterKey = \n//[SuppressMessage(\"Microsoft.Security\", \"CS002:SecretInNextLine\", Justification=\"Well known public masterKey for emulator\")]\n\"C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==\";\nexport class Notebook {\n}\nNotebook.defaultBasePath = \"./notebooks\";\nNotebook.heartbeatDelayMs = 60000;\nNotebook.containerStatusHeartbeatDelayMs = 30000;\nNotebook.kernelRestartInitialDelayMs = 1000;\nNotebook.kernelRestartMaxDelayMs = 20000;\nNotebook.autoSaveIntervalMs = 300000;\nNotebook.memoryGuageToGB = 1048576;\nNotebook.lowMemoryThreshold = 0.8;\nNotebook.remainingTimeForAlert = 10;\nNotebook.retryAttempts = 3;\nNotebook.retryAttemptDelayMs = 5000;\nNotebook.temporarilyDownMsg = \"Notebooks is currently not available. We are working on it.\";\nNotebook.mongoShellTemporarilyDownMsg = \"We have identified an issue with the Mongo Shell and it is unavailable right now. We are actively working on the mitigation.\";\nNotebook.cassandraShellTemporarilyDownMsg = \"We have identified an issue with the Cassandra Shell and it is unavailable right now. We are actively working on the mitigation.\";\nNotebook.saveNotebookModalTitle = \"Save notebook in temporary workspace\";\nNotebook.saveNotebookModalContent = \"This notebook will be saved in the temporary workspace and will be removed when the session expires.\";\nNotebook.newNotebookModalTitle = \"Create notebook in temporary workspace\";\nNotebook.newNotebookUploadModalTitle = \"Upload notebook to temporary workspace\";\nNotebook.newNotebookModalContent1 = \"A temporary workspace will be created to enable you to work with notebooks. When the session expires, any notebooks in the workspace will be removed.\";\nNotebook.newNotebookModalContent2 = \"To save your work permanently, save your notebooks to a GitHub repository or download the notebooks to your local machine before the session ends. \";\nNotebook.galleryNotebookDownloadContent1 = \"To download, run, and make changes to this sample notebook, a temporary workspace will be created. When the session expires, any notebooks in the workspace will be removed.\";\nNotebook.galleryNotebookDownloadContent2 = \"To save your work permanently, save your notebooks to a GitHub repository or download the Notebooks to your local machine before the session ends. \";\nNotebook.cosmosNotebookHomePageUrl = \"https://aka.ms/cosmos-notebooks-limits\";\nNotebook.cosmosNotebookGitDocumentationUrl = \"https://aka.ms/cosmos-notebooks-github\";\nNotebook.learnMore = \"Learn more.\";\nexport class SparkLibrary {\n}\nSparkLibrary.nameMinLength = 3;\nSparkLibrary.nameMaxLength = 63;\nexport class AnalyticalStorageTtl {\n}\nAnalyticalStorageTtl.Days90 = 7776000;\nAnalyticalStorageTtl.Infinite = -1;\nAnalyticalStorageTtl.Disabled = 0;\nexport class TerminalQueryParams {\n}\nTerminalQueryParams.Terminal = \"terminal\";\nTerminalQueryParams.Server = \"server\";\nTerminalQueryParams.Token = \"token\";\nTerminalQueryParams.SubscriptionId = \"subscriptionId\";\nTerminalQueryParams.TerminalEndpoint = \"terminalEndpoint\";\nexport class JunoEndpoints {\n}\nJunoEndpoints.Test = \"https://juno-test.documents-dev.windows-int.net\";\nJunoEndpoints.Test2 = \"https://juno-test2.documents-dev.windows-int.net\";\nJunoEndpoints.Test3 = \"https://juno-test3.documents-dev.windows-int.net\";\nJunoEndpoints.Prod = \"https://tools.cosmos.azure.com\";\nJunoEndpoints.Stage = \"https://tools-staging.cosmos.azure.com\";\nexport class PriorityLevel {\n}\nPriorityLevel.High = \"high\";\nPriorityLevel.Low = \"low\";\nPriorityLevel.Default = \"low\";\nexport class ariaLabelForLearnMoreLink {\n}\nariaLabelForLearnMoreLink.AnalyticalStore = \"Learn more about analytical store.\";\nariaLabelForLearnMoreLink.AzureSynapseLink = \"Learn more about Azure Synapse Link.\";\nexport class FeedbackLabels {\n}\nFeedbackLabels.provideFeedback = \"Provide feedback\";\nexport const QueryCopilotSampleDatabaseId = \"CopilotSampleDB\";\nexport const QueryCopilotSampleContainerId = \"SampleContainer\";\nexport const QueryCopilotSampleContainerSchema = {\n    product: {\n        sampleData: {\n            id: \"c415e70f-9bf5-4cda-aebe-a290cb8b94c2\",\n            name: \"Amazing Phone 3000 (Black)\",\n            price: 223.33,\n            category: \"Electronics\",\n            description: \"This Amazing Phone 3000 (Black) is made of black metal! It has a very well made aluminum body and it feels very comfortable. We loved the sound that comes out of it! Also, the design of the phone was a little loose at first because I was using the camera and felt uncomfortable wearing it. The phone is actually made slightly smaller than these photos! This is due to the addition of a 3.3mm filter\",\n            stock: 84,\n            countryOfOrigin: \"USA\",\n            firstAvailable: \"2018-09-07 19:41:44\",\n            priceHistory: [238.68, 234.7, 221.49, 205.88, 220.15],\n            customerRatings: [\n                {\n                    username: \"steven66\",\n                    firstName: \"Carol\",\n                    gender: \"female\",\n                    lastName: \"Shelton\",\n                    age: \"25-35\",\n                    area: \"suburban\",\n                    address: \"261 Collins Burgs Apt. 332\\nNorth Taylor, NM 32268\",\n                    stars: 5,\n                    date: \"2021-04-22 13:42:14\",\n                    verifiedUser: true,\n                },\n                {\n                    username: \"khudson\",\n                    firstName: \"Ronald\",\n                    gender: \"male\",\n                    lastName: \"Webb\",\n                    age: \"18-24\",\n                    area: \"suburban\",\n                    address: \"9912 Parker Court Apt. 068\\nNorth Austin, HI 76225\",\n                    stars: 5,\n                    date: \"2021-02-07 07:00:22\",\n                    verifiedUser: false,\n                },\n                {\n                    username: \"lfrancis\",\n                    firstName: \"Brady\",\n                    gender: \"male\",\n                    lastName: \"Wright\",\n                    age: \"35-45\",\n                    area: \"urban\",\n                    address: \"PSC 5437, Box 3159\\nAPO AA 26385\",\n                    stars: 2,\n                    date: \"2022-02-23 21:40:10\",\n                    verifiedUser: false,\n                },\n                {\n                    username: \"nicolemartinez\",\n                    firstName: \"Megan\",\n                    gender: \"female\",\n                    lastName: \"Tran\",\n                    age: \"18-24\",\n                    area: \"rural\",\n                    address: \"7445 Salazar Brooks\\nNew Sarah, PW 18097\",\n                    stars: 4,\n                    date: \"2021-09-01 22:21:40\",\n                    verifiedUser: false,\n                },\n                {\n                    username: \"uguzman\",\n                    firstName: \"Deanna\",\n                    gender: \"female\",\n                    lastName: \"Campbell\",\n                    age: \"18-24\",\n                    area: \"urban\",\n                    address: \"41104 Moreno Fort Suite 872\\nPort Michaelbury, AK 48712\",\n                    stars: 1,\n                    date: \"2022-03-07 02:23:14\",\n                    verifiedUser: false,\n                },\n                {\n                    username: \"rebeccahunt\",\n                    firstName: \"Jared\",\n                    gender: \"male\",\n                    lastName: \"Lopez\",\n                    age: \"18-24\",\n                    area: \"rural\",\n                    address: \"392 Morgan Village Apt. 785\\nGreenshire, CT 05921\",\n                    stars: 5,\n                    date: \"2021-04-17 04:17:49\",\n                    verifiedUser: false,\n                },\n            ],\n            rareProperty: true,\n        },\n        schema: {\n            properties: {\n                id: {\n                    type: \"string\",\n                },\n                name: {\n                    type: \"string\",\n                },\n                price: {\n                    type: \"number\",\n                },\n                category: {\n                    type: \"string\",\n                },\n                description: {\n                    type: \"string\",\n                },\n                stock: {\n                    type: \"number\",\n                },\n                countryOfOrigin: {\n                    type: \"string\",\n                },\n                firstAvailable: {\n                    type: \"string\",\n                },\n                priceHistory: {\n                    items: {\n                        type: \"number\",\n                    },\n                    type: \"array\",\n                },\n                customerRatings: {\n                    items: {\n                        properties: {\n                            username: {\n                                type: \"string\",\n                            },\n                            firstName: {\n                                type: \"string\",\n                            },\n                            gender: {\n                                type: \"string\",\n                            },\n                            lastName: {\n                                type: \"string\",\n                            },\n                            age: {\n                                type: \"string\",\n                            },\n                            area: {\n                                type: \"string\",\n                            },\n                            address: {\n                                type: \"string\",\n                            },\n                            stars: {\n                                type: \"number\",\n                            },\n                            date: {\n                                type: \"string\",\n                            },\n                            verifiedUser: {\n                                type: \"boolean\",\n                            },\n                        },\n                        type: \"object\",\n                    },\n                    type: \"array\",\n                },\n                rareProperty: {\n                    type: \"boolean\",\n                },\n            },\n            type: \"object\",\n        },\n    },\n};\nexport const ShortenedQueryCopilotSampleContainerSchema = {\n    containerSchema: {\n        product: {\n            sampleData: {\n                categoryName: \"Components, Saddles\",\n                name: \"LL Road Seat/Saddle\",\n                price: 27.12,\n                tags: [\n                    {\n                        id: \"0573D684-9140-4DEE-89AF-4E4A90E65666\",\n                        name: \"Tag-113\",\n                    },\n                    {\n                        id: \"6C2F05C8-1E61-4912-BE1A-C67A378429BB\",\n                        name: \"Tag-5\",\n                    },\n                ],\n            },\n            schema: {\n                properties: {\n                    categoryName: {\n                        type: \"string\",\n                    },\n                    name: {\n                        type: \"string\",\n                    },\n                    price: {\n                        type: \"number\",\n                    },\n                    tags: {\n                        items: {\n                            properties: {\n                                id: {\n                                    type: \"string\",\n                                },\n                                name: {\n                                    type: \"string\",\n                                },\n                            },\n                            type: \"object\",\n                        },\n                        type: \"array\",\n                    },\n                },\n                type: \"object\",\n            },\n        },\n    },\n    userPrompt: \"find all products\",\n};\n","import { SeverityLevel } from \"@microsoft/applicationinsights-web\";\nimport { Diagnostics, MessageTypes } from \"../Contracts/ExplorerContracts\";\nimport { trackTrace } from \"../Shared/appInsights\";\nimport { sendMessage } from \"./MessageHandler\";\n// TODO: Move to a separate Diagnostics folder\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function logInfo(message, area, code) {\n    let logMessage;\n    if (typeof message === \"string\") {\n        logMessage = message;\n    }\n    else {\n        logMessage = JSON.stringify(message, Object.getOwnPropertyNames(message));\n    }\n    const entry = _generateLogEntry(Diagnostics.LogEntryLevel.Verbose, logMessage, area, code);\n    return _logEntry(entry);\n}\nexport function logWarning(message, area, code) {\n    const entry = _generateLogEntry(Diagnostics.LogEntryLevel.Warning, message, area, code);\n    return _logEntry(entry);\n}\nexport function logError(errorMessage, area, code) {\n    const entry = _generateLogEntry(Diagnostics.LogEntryLevel.Error, errorMessage, area, code);\n    return _logEntry(entry);\n}\nfunction _logEntry(entry) {\n    sendMessage({\n        type: MessageTypes.LogInfo,\n        data: JSON.stringify(entry),\n    });\n    const severityLevel = ((level) => {\n        switch (level) {\n            case Diagnostics.LogEntryLevel.Custom:\n            case Diagnostics.LogEntryLevel.Debug:\n            case Diagnostics.LogEntryLevel.Verbose:\n                return SeverityLevel.Verbose;\n            case Diagnostics.LogEntryLevel.Warning:\n                return SeverityLevel.Warning;\n            case Diagnostics.LogEntryLevel.Error:\n                return SeverityLevel.Error;\n            default:\n                return SeverityLevel.Information;\n        }\n    })(entry.level);\n    trackTrace({ message: entry.message, severityLevel }, { area: entry.area });\n}\nfunction _generateLogEntry(level, message, area, code) {\n    return {\n        timestamp: new Date().getUTCSeconds(),\n        level,\n        message,\n        area,\n        code,\n    };\n}\n","import Q from \"q\";\nimport * as _ from \"underscore\";\nimport * as Logger from \"../Common/Logger\";\nimport { getDataExplorerWindow } from \"../Utils/WindowUtils\";\nimport * as Constants from \"./Constants\";\nexport const RequestMap = {};\nexport function handleCachedDataMessage(message) {\n    const messageContent = message && message.message;\n    if (message == null || messageContent == null || messageContent.id == null || !RequestMap[messageContent.id]) {\n        return;\n    }\n    const cachedDataPromise = RequestMap[messageContent.id];\n    if (messageContent.error != null) {\n        cachedDataPromise.deferred.reject(messageContent.error);\n    }\n    else {\n        cachedDataPromise.deferred.resolve(messageContent.data);\n    }\n    runGarbageCollector();\n}\n/**\n *\n * @param messageType\n * @param params\n * @param scope Use this string to identify request Useful to distinguish response from different senders\n * @param timeoutInMs\n * @returns\n */\nexport function sendCachedDataMessage(messageType, params, scope, timeoutInMs) {\n    let cachedDataPromise = {\n        deferred: Q.defer(),\n        startTime: new Date(),\n        id: _.uniqueId(scope),\n    };\n    RequestMap[cachedDataPromise.id] = cachedDataPromise;\n    sendMessage({ type: messageType, params: params, id: cachedDataPromise.id });\n    //TODO: Use telemetry to measure optimal time to resolve/reject promises\n    return cachedDataPromise.deferred.promise.timeout(timeoutInMs || Constants.ClientDefaults.requestTimeoutMs, \"Timed out while waiting for response from portal\");\n}\n/**\n *\n * @param data Overwrite the data property of the message\n */\nexport function sendMessage(data) {\n    _sendMessage({\n        signature: \"pcIframe\",\n        data: data,\n    });\n}\nexport function sendReadyMessage() {\n    _sendMessage({\n        signature: \"pcIframe\",\n        kind: \"ready\",\n        data: \"ready\",\n    });\n}\nexport function canSendMessage() {\n    return window.parent !== window;\n}\n// TODO: This is exported just for testing. It should not be.\nexport function runGarbageCollector() {\n    Object.keys(RequestMap).forEach((key) => {\n        const promise = RequestMap[key].deferred.promise;\n        if (promise.isFulfilled() || promise.isRejected()) {\n            delete RequestMap[key];\n        }\n    });\n}\nconst _sendMessage = (message) => {\n    if (canSendMessage()) {\n        // Portal window can receive messages from only child windows\n        const portalChildWindow = getDataExplorerWindow(window) || window;\n        if (portalChildWindow === window) {\n            // Current window is a child of portal, send message to portal window\n            if (portalChildWindow.document.referrer) {\n                portalChildWindow.parent.postMessage(message, portalChildWindow.document.referrer);\n            }\n            else {\n                Logger.logError(\"Iframe failed to send message to portal\", \"MessageHandler\");\n            }\n        }\n        else {\n            // Current window is not a child of portal, send message to the child window instead (which is data explorer)\n            if (portalChildWindow.location.origin) {\n                portalChildWindow.postMessage(message, portalChildWindow.location.origin);\n            }\n            else {\n                Logger.logError(\"Iframe failed to send message to data explorer\", \"MessageHandler\");\n            }\n        }\n    }\n};\n","var __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\nimport { CassandraProxyEndpoints, JunoEndpoints, MongoProxyEndpoints, PortalBackendEndpoints, } from \"Common/Constants\";\nimport { allowedAadEndpoints, allowedArcadiaEndpoints, allowedEmulatorEndpoints, allowedGraphEndpoints, allowedHostedExplorerEndpoints, allowedJunoOrigins, allowedMsalRedirectEndpoints, defaultAllowedArmEndpoints, defaultAllowedBackendEndpoints, defaultAllowedCassandraProxyEndpoints, defaultAllowedMongoProxyEndpoints, validateEndpoint, } from \"Utils/EndpointUtils\";\nexport var Platform;\n(function (Platform) {\n    Platform[\"Portal\"] = \"Portal\";\n    Platform[\"Hosted\"] = \"Hosted\";\n    Platform[\"Emulator\"] = \"Emulator\";\n    Platform[\"Fabric\"] = \"Fabric\";\n})(Platform || (Platform = {}));\n// Default configuration\nlet configContext = {\n    platform: Platform.Portal,\n    allowedArmEndpoints: defaultAllowedArmEndpoints,\n    allowedBackendEndpoints: defaultAllowedBackendEndpoints,\n    allowedCassandraProxyEndpoints: defaultAllowedCassandraProxyEndpoints,\n    allowedMongoProxyEndpoints: defaultAllowedMongoProxyEndpoints,\n    allowedParentFrameOrigins: [\n        `^https:\\\\/\\\\/cosmos\\\\.azure\\\\.(com|cn|us)$`,\n        `^https:\\\\/\\\\/[\\\\.\\\\w]*portal\\\\.azure\\\\.(com|cn|us)$`,\n        `^https:\\\\/\\\\/cdb-(ms|ff|mc)-prod-pbe\\\\.cosmos\\\\.azure\\\\.(com|us|cn)$`,\n        `^https:\\\\/\\\\/[\\\\.\\\\w]*portal\\\\.microsoftazure\\\\.de$`,\n        `^https:\\\\/\\\\/[\\\\.\\\\w]*ext\\\\.azure\\\\.(com|cn|us)$`,\n        `^https:\\\\/\\\\/[\\\\.\\\\w]*\\\\.ext\\\\.microsoftazure\\\\.de$`,\n        `^https:\\\\/\\\\/cosmos-db-dataexplorer-germanycentral\\\\.azurewebsites\\\\.de$`,\n        `^https:\\\\/\\\\/.*\\\\.fabric\\\\.microsoft\\\\.com$`,\n        `^https:\\\\/\\\\/.*\\\\.powerbi\\\\.com$`,\n        `^https:\\\\/\\\\/.*\\\\.analysis-df\\\\.net$`,\n        `^https:\\\\/\\\\/.*\\\\.analysis-df\\\\.windows\\\\.net$`,\n        `^https:\\\\/\\\\/.*\\\\.azure-test\\\\.net$`,\n        `^https:\\\\/\\\\/dataexplorer-preview\\\\.azurewebsites\\\\.net$`,\n    ],\n    gitSha: process.env.GIT_SHA,\n    hostedExplorerURL: \"https://cosmos.azure.com/\",\n    AAD_ENDPOINT: \"https://login.microsoftonline.com/\",\n    ARM_AUTH_AREA: \"https://management.azure.com/\",\n    ARM_ENDPOINT: \"https://management.azure.com/\",\n    ARM_API_VERSION: \"2016-06-01\",\n    GRAPH_ENDPOINT: \"https://graph.microsoft.com\",\n    GRAPH_API_VERSION: \"1.6\",\n    CATALOG_ENDPOINT: \"https://catalogapi.azure.com/\",\n    CATALOG_API_VERSION: \"2023-05-01-preview\",\n    CATALOG_API_KEY: \"\",\n    ARCADIA_ENDPOINT: \"https://workspaceartifacts.projectarcadia.net\",\n    ARCADIA_LIVY_ENDPOINT_DNS_ZONE: \"dev.azuresynapse.net\",\n    GITHUB_CLIENT_ID: \"6cb2f63cf6f7b5cbdeca\",\n    GITHUB_TEST_ENV_CLIENT_ID: \"b63fc8cbf87fd3c6e2eb\",\n    JUNO_ENDPOINT: JunoEndpoints.Prod,\n    PORTAL_BACKEND_ENDPOINT: PortalBackendEndpoints.Prod,\n    MONGO_PROXY_ENDPOINT: MongoProxyEndpoints.Prod,\n    CASSANDRA_PROXY_ENDPOINT: CassandraProxyEndpoints.Prod,\n    NEW_CASSANDRA_APIS: [\"postQuery\", \"createOrDelete\", \"getKeys\", \"getSchema\"],\n    isTerminalEnabled: false,\n    isPhoenixEnabled: false,\n    globallyEnabledCassandraAPIs: [],\n    globallyEnabledMongoAPIs: [],\n};\nexport function resetConfigContext() {\n    if (process.env.NODE_ENV !== \"test\") {\n        throw new Error(\"resetConfigContext can only be called in a test environment\");\n    }\n    configContext = {};\n}\nexport function updateConfigContext(newContext) {\n    if (!newContext) {\n        return;\n    }\n    if (!validateEndpoint(newContext.ARM_ENDPOINT, configContext.allowedArmEndpoints || defaultAllowedArmEndpoints)) {\n        delete newContext.ARM_ENDPOINT;\n    }\n    if (!validateEndpoint(newContext.AAD_ENDPOINT, allowedAadEndpoints)) {\n        delete newContext.AAD_ENDPOINT;\n    }\n    if (!validateEndpoint(newContext.EMULATOR_ENDPOINT, allowedEmulatorEndpoints)) {\n        delete newContext.EMULATOR_ENDPOINT;\n    }\n    if (!validateEndpoint(newContext.GRAPH_ENDPOINT, allowedGraphEndpoints)) {\n        delete newContext.GRAPH_ENDPOINT;\n    }\n    if (!validateEndpoint(newContext.ARCADIA_ENDPOINT, allowedArcadiaEndpoints)) {\n        delete newContext.ARCADIA_ENDPOINT;\n    }\n    if (!validateEndpoint(newContext.MONGO_PROXY_ENDPOINT, configContext.allowedMongoProxyEndpoints || defaultAllowedMongoProxyEndpoints)) {\n        delete newContext.MONGO_PROXY_ENDPOINT;\n    }\n    if (!validateEndpoint(newContext.CASSANDRA_PROXY_ENDPOINT, configContext.allowedCassandraProxyEndpoints || defaultAllowedCassandraProxyEndpoints)) {\n        delete newContext.CASSANDRA_PROXY_ENDPOINT;\n    }\n    if (!validateEndpoint(newContext.JUNO_ENDPOINT, allowedJunoOrigins)) {\n        delete newContext.JUNO_ENDPOINT;\n    }\n    if (!validateEndpoint(newContext.hostedExplorerURL, allowedHostedExplorerEndpoints)) {\n        delete newContext.hostedExplorerURL;\n    }\n    if (!validateEndpoint(newContext.msalRedirectURI, allowedMsalRedirectEndpoints)) {\n        delete newContext.msalRedirectURI;\n    }\n    Object.assign(configContext, newContext);\n}\n// Injected for local development. These will be removed in the production bundle by webpack\nif (process.env.NODE_ENV === \"development\") {\n    updateConfigContext({\n        PROXY_PATH: \"/proxy\",\n        EMULATOR_ENDPOINT: \"https://localhost:8081\",\n        PORTAL_BACKEND_ENDPOINT: PortalBackendEndpoints.Mpac,\n        MONGO_PROXY_ENDPOINT: MongoProxyEndpoints.Mpac,\n        CASSANDRA_PROXY_ENDPOINT: CassandraProxyEndpoints.Mpac,\n    });\n}\nexport async function initializeConfiguration() {\n    try {\n        const response = await fetch(\"./config.json\", {\n            headers: {\n                \"If-None-Match\": \"\", // disable client side cache\n            },\n        });\n        if (response.status === 200) {\n            try {\n                const externalConfig = __rest(await response.json(), []);\n                updateConfigContext(externalConfig);\n            }\n            catch (error) {\n                console.error(\"Unable to parse json in config file\");\n                console.error(error);\n            }\n        }\n        // Allow override of platform value with URL query parameter\n        const params = new URLSearchParams(window.location.search);\n        if (params.has(\"armAPIVersion\")) {\n            const armAPIVersion = params.get(\"armAPIVersion\") || \"\";\n            updateConfigContext({ armAPIVersion });\n        }\n        if (params.has(\"armEndpoint\")) {\n            const ARM_ENDPOINT = params.get(\"armEndpoint\") || \"\";\n            updateConfigContext({ ARM_ENDPOINT });\n        }\n        if (params.has(\"aadEndpoint\")) {\n            const AAD_ENDPOINT = params.get(\"aadEndpoint\") || \"\";\n            updateConfigContext({ AAD_ENDPOINT });\n        }\n        if (params.has(\"platform\")) {\n            const platform = params.get(\"platform\");\n            switch (platform) {\n                default:\n                    console.error(`Invalid platform query parameter: ${platform}`);\n                    break;\n                case Platform.Portal:\n                case Platform.Fabric:\n                case Platform.Hosted:\n                case Platform.Emulator:\n                    updateConfigContext({ platform });\n            }\n        }\n    }\n    catch (error) {\n        console.error(\"No configuration file found using defaults\");\n    }\n    return configContext;\n}\nexport { configContext };\n","/**\n * Data Explorer tab kinds\n */\nexport var TabKind;\n(function (TabKind) {\n    TabKind[TabKind[\"SQLDocuments\"] = 0] = \"SQLDocuments\";\n    TabKind[TabKind[\"MongoDocuments\"] = 1] = \"MongoDocuments\";\n    TabKind[TabKind[\"SchemaAnalyzer\"] = 2] = \"SchemaAnalyzer\";\n    TabKind[TabKind[\"TableEntities\"] = 3] = \"TableEntities\";\n    TabKind[TabKind[\"Graph\"] = 4] = \"Graph\";\n    TabKind[TabKind[\"SQLQuery\"] = 5] = \"SQLQuery\";\n    TabKind[TabKind[\"ScaleSettings\"] = 6] = \"ScaleSettings\";\n    TabKind[TabKind[\"MongoQuery\"] = 7] = \"MongoQuery\";\n})(TabKind || (TabKind = {}));\n/**\n * Data Explorer pane kinds\n */\nexport var PaneKind;\n(function (PaneKind) {\n    PaneKind[PaneKind[\"AddCollection\"] = 0] = \"AddCollection\";\n    PaneKind[PaneKind[\"CassandraAddCollection\"] = 1] = \"CassandraAddCollection\";\n    PaneKind[PaneKind[\"DeleteCollection\"] = 2] = \"DeleteCollection\";\n    PaneKind[PaneKind[\"DeleteDatabase\"] = 3] = \"DeleteDatabase\";\n    PaneKind[PaneKind[\"GlobalSettings\"] = 4] = \"GlobalSettings\";\n    PaneKind[PaneKind[\"AdHocAccess\"] = 5] = \"AdHocAccess\";\n    PaneKind[PaneKind[\"SwitchDirectory\"] = 6] = \"SwitchDirectory\";\n})(PaneKind || (PaneKind = {}));\n/**\n * The types of actions that the DataExplorer supports performing upon opening.\n */\nexport var ActionType;\n(function (ActionType) {\n    ActionType[ActionType[\"OpenTab\"] = 0] = \"OpenTab\";\n    ActionType[ActionType[\"OpenCollectionTab\"] = 1] = \"OpenCollectionTab\";\n    ActionType[ActionType[\"OpenPane\"] = 2] = \"OpenPane\";\n    ActionType[ActionType[\"TransmitCachedData\"] = 3] = \"TransmitCachedData\";\n    ActionType[ActionType[\"OpenSampleNotebook\"] = 4] = \"OpenSampleNotebook\";\n})(ActionType || (ActionType = {}));\n","export var ApiKind;\n(function (ApiKind) {\n    ApiKind[ApiKind[\"SQL\"] = 0] = \"SQL\";\n    ApiKind[ApiKind[\"MongoDB\"] = 1] = \"MongoDB\";\n    ApiKind[ApiKind[\"Table\"] = 2] = \"Table\";\n    ApiKind[ApiKind[\"Cassandra\"] = 3] = \"Cassandra\";\n    ApiKind[ApiKind[\"Graph\"] = 4] = \"Graph\";\n    ApiKind[ApiKind[\"MongoDBCompute\"] = 5] = \"MongoDBCompute\";\n})(ApiKind || (ApiKind = {}));\nexport var ConflictResolutionMode;\n(function (ConflictResolutionMode) {\n    ConflictResolutionMode[\"Custom\"] = \"Custom\";\n    ConflictResolutionMode[\"LastWriterWins\"] = \"LastWriterWins\";\n})(ConflictResolutionMode || (ConflictResolutionMode = {}));\nexport var SparkClusterEndpointKind;\n(function (SparkClusterEndpointKind) {\n    SparkClusterEndpointKind[\"SparkUI\"] = \"SparkUI\";\n    SparkClusterEndpointKind[\"HistoryServerUI\"] = \"HistoryServerUI\";\n    SparkClusterEndpointKind[\"Livy\"] = \"Livy\";\n})(SparkClusterEndpointKind || (SparkClusterEndpointKind = {}));\nexport var PhoenixErrorType;\n(function (PhoenixErrorType) {\n    PhoenixErrorType[\"MaxAllocationTimeExceeded\"] = \"MaxAllocationTimeExceeded\";\n    PhoenixErrorType[\"MaxDbAccountsPerUserExceeded\"] = \"MaxDbAccountsPerUserExceeded\";\n    PhoenixErrorType[\"MaxUsersPerDbAccountExceeded\"] = \"MaxUsersPerDbAccountExceeded\";\n    PhoenixErrorType[\"AllocationValidationResult\"] = \"AllocationValidationResult\";\n    PhoenixErrorType[\"RegionNotServicable\"] = \"RegionNotServicable\";\n    PhoenixErrorType[\"SubscriptionNotAllowed\"] = \"SubscriptionNotAllowed\";\n    PhoenixErrorType[\"UnknownError\"] = \"UnknownError\";\n    PhoenixErrorType[\"PhoenixFlightFallback\"] = \"PhoenixFlightFallback\";\n    PhoenixErrorType[\"UserMissingPermissionsError\"] = \"UserMissingPermissionsError\";\n})(PhoenixErrorType || (PhoenixErrorType = {}));\n","/**\n * Trace level.\n */\nexport var LogEntryLevel;\n(function (LogEntryLevel) {\n    /**\n     * Custom events.\n     */\n    LogEntryLevel[LogEntryLevel[\"Custom\"] = -2] = \"Custom\";\n    /**\n     * Debug level.\n     */\n    LogEntryLevel[LogEntryLevel[\"Debug\"] = -1] = \"Debug\";\n    /**\n     * Verbose level.\n     */\n    LogEntryLevel[LogEntryLevel[\"Verbose\"] = 0] = \"Verbose\";\n    /**\n     * Warning level.\n     */\n    LogEntryLevel[LogEntryLevel[\"Warning\"] = 1] = \"Warning\";\n    /**\n     * Error level.\n     */\n    LogEntryLevel[LogEntryLevel[\"Error\"] = 2] = \"Error\";\n})(LogEntryLevel || (LogEntryLevel = {}));\n","/**\n * Data Explorer -> Fabric communication.\n */\nexport var FabricMessageTypes;\n(function (FabricMessageTypes) {\n    FabricMessageTypes[\"GetAuthorizationToken\"] = \"GetAuthorizationToken\";\n    FabricMessageTypes[\"GetAllResourceTokens\"] = \"GetAllResourceTokens\";\n    FabricMessageTypes[\"GetAccessToken\"] = \"GetAccessToken\";\n    FabricMessageTypes[\"Ready\"] = \"Ready\";\n})(FabricMessageTypes || (FabricMessageTypes = {}));\n","// This is the version of these messages\nexport const FABRIC_RPC_VERSION = \"FabricMessageV3\";\nexport var CosmosDbArtifactType;\n(function (CosmosDbArtifactType) {\n    CosmosDbArtifactType[\"MIRRORED_KEY\"] = \"MIRRORED_KEY\";\n    CosmosDbArtifactType[\"MIRRORED_AAD\"] = \"MIRRORED_AAD\";\n    CosmosDbArtifactType[\"NATIVE\"] = \"NATIVE\";\n})(CosmosDbArtifactType || (CosmosDbArtifactType = {}));\n","/**\n * Messaging types used with Data Explorer <-> Portal communication,\n * Hosted <-> Explorer communication\n *\n * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n * WARNING: !!!!!!! YOU CAN ONLY ADD NEW TYPES TO THE END OF THIS ENUM !!!!!!!\n * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n *\n * Enum are integers, so inserting or deleting a type will break the communication.\n *\n */\nexport var MessageTypes;\n(function (MessageTypes) {\n    MessageTypes[MessageTypes[\"TelemetryInfo\"] = 0] = \"TelemetryInfo\";\n    MessageTypes[MessageTypes[\"LogInfo\"] = 1] = \"LogInfo\";\n    MessageTypes[MessageTypes[\"RefreshResources\"] = 2] = \"RefreshResources\";\n    MessageTypes[MessageTypes[\"AllDatabases\"] = 3] = \"AllDatabases\";\n    MessageTypes[MessageTypes[\"CollectionsForDatabase\"] = 4] = \"CollectionsForDatabase\";\n    MessageTypes[MessageTypes[\"RefreshOffers\"] = 5] = \"RefreshOffers\";\n    MessageTypes[MessageTypes[\"AllOffers\"] = 6] = \"AllOffers\";\n    MessageTypes[MessageTypes[\"UpdateLocationHash\"] = 7] = \"UpdateLocationHash\";\n    MessageTypes[MessageTypes[\"SingleOffer\"] = 8] = \"SingleOffer\";\n    MessageTypes[MessageTypes[\"RefreshOffer\"] = 9] = \"RefreshOffer\";\n    MessageTypes[MessageTypes[\"UpdateAccountName\"] = 10] = \"UpdateAccountName\";\n    MessageTypes[MessageTypes[\"ForbiddenError\"] = 11] = \"ForbiddenError\";\n    MessageTypes[MessageTypes[\"AadSignIn\"] = 12] = \"AadSignIn\";\n    MessageTypes[MessageTypes[\"GetAccessAadRequest\"] = 13] = \"GetAccessAadRequest\";\n    MessageTypes[MessageTypes[\"GetAccessAadResponse\"] = 14] = \"GetAccessAadResponse\";\n    MessageTypes[MessageTypes[\"UpdateAccountSwitch\"] = 15] = \"UpdateAccountSwitch\";\n    MessageTypes[MessageTypes[\"UpdateDirectoryControl\"] = 16] = \"UpdateDirectoryControl\";\n    MessageTypes[MessageTypes[\"SwitchAccount\"] = 17] = \"SwitchAccount\";\n    MessageTypes[MessageTypes[\"SendNotification\"] = 18] = \"SendNotification\";\n    MessageTypes[MessageTypes[\"ClearNotification\"] = 19] = \"ClearNotification\";\n    MessageTypes[MessageTypes[\"ExplorerClickEvent\"] = 20] = \"ExplorerClickEvent\";\n    MessageTypes[MessageTypes[\"LoadingStatus\"] = 21] = \"LoadingStatus\";\n    MessageTypes[MessageTypes[\"GetArcadiaToken\"] = 22] = \"GetArcadiaToken\";\n    MessageTypes[MessageTypes[\"CreateWorkspace\"] = 23] = \"CreateWorkspace\";\n    MessageTypes[MessageTypes[\"CreateSparkPool\"] = 24] = \"CreateSparkPool\";\n    MessageTypes[MessageTypes[\"RefreshDatabaseAccount\"] = 25] = \"RefreshDatabaseAccount\";\n    MessageTypes[MessageTypes[\"CloseTab\"] = 26] = \"CloseTab\";\n    MessageTypes[MessageTypes[\"OpenQuickstartBlade\"] = 27] = \"OpenQuickstartBlade\";\n    MessageTypes[MessageTypes[\"OpenPostgreSQLPasswordReset\"] = 28] = \"OpenPostgreSQLPasswordReset\";\n    MessageTypes[MessageTypes[\"OpenPostgresNetworkingBlade\"] = 29] = \"OpenPostgresNetworkingBlade\";\n    MessageTypes[MessageTypes[\"OpenCosmosDBNetworkingBlade\"] = 30] = \"OpenCosmosDBNetworkingBlade\";\n    MessageTypes[MessageTypes[\"DisplayNPSSurvey\"] = 31] = \"DisplayNPSSurvey\";\n    MessageTypes[MessageTypes[\"OpenVCoreMongoNetworkingBlade\"] = 32] = \"OpenVCoreMongoNetworkingBlade\";\n    MessageTypes[MessageTypes[\"OpenVCoreMongoConnectionStringsBlade\"] = 33] = \"OpenVCoreMongoConnectionStringsBlade\";\n    MessageTypes[MessageTypes[\"GetAuthorizationToken\"] = 34] = \"GetAuthorizationToken\";\n    MessageTypes[MessageTypes[\"GetAllResourceTokens\"] = 35] = \"GetAllResourceTokens\";\n    MessageTypes[MessageTypes[\"Ready\"] = 36] = \"Ready\";\n    MessageTypes[MessageTypes[\"OpenCESCVAFeedbackBlade\"] = 37] = \"OpenCESCVAFeedbackBlade\";\n    MessageTypes[MessageTypes[\"ActivateTab\"] = 38] = \"ActivateTab\";\n})(MessageTypes || (MessageTypes = {}));\n","export var SubscriptionType;\n(function (SubscriptionType) {\n    SubscriptionType[SubscriptionType[\"Benefits\"] = 0] = \"Benefits\";\n    SubscriptionType[SubscriptionType[\"EA\"] = 1] = \"EA\";\n    SubscriptionType[SubscriptionType[\"Free\"] = 2] = \"Free\";\n    SubscriptionType[SubscriptionType[\"Internal\"] = 3] = \"Internal\";\n    SubscriptionType[SubscriptionType[\"PAYG\"] = 4] = \"PAYG\";\n})(SubscriptionType || (SubscriptionType = {}));\n","/**\n * Interface for the data/content that will be recorded\n */\nexport var ConsoleDataType;\n(function (ConsoleDataType) {\n    ConsoleDataType[ConsoleDataType[\"Info\"] = 0] = \"Info\";\n    ConsoleDataType[ConsoleDataType[\"Error\"] = 1] = \"Error\";\n    ConsoleDataType[ConsoleDataType[\"InProgress\"] = 2] = \"InProgress\";\n})(ConsoleDataType || (ConsoleDataType = {}));\n","import { initializeIcons } from \"@fluentui/react\";\nimport { useBoolean } from \"@fluentui/react-hooks\";\nimport { AadAuthorizationFailure } from \"Platform/Hosted/Components/AadAuthorizationFailure\";\nimport * as React from \"react\";\nimport { render } from \"react-dom\";\nimport ChevronRight from \"../images/chevron-right.svg\";\nimport \"../less/hostedexplorer.less\";\nimport { AuthType } from \"./AuthType\";\nimport \"./Explorer/Menus/NavBar/MeControlComponent.less\";\nimport { AccountSwitcher } from \"./Platform/Hosted/Components/AccountSwitcher\";\nimport { ConnectExplorer } from \"./Platform/Hosted/Components/ConnectExplorer\";\nimport { DirectoryPickerPanel } from \"./Platform/Hosted/Components/DirectoryPickerPanel\";\nimport { FeedbackCommandButton } from \"./Platform/Hosted/Components/FeedbackCommandButton\";\nimport { MeControl } from \"./Platform/Hosted/Components/MeControl\";\nimport { SignInButton } from \"./Platform/Hosted/Components/SignInButton\";\nimport \"./Platform/Hosted/ConnectScreen.less\";\nimport { extractMasterKeyfromConnectionString } from \"./Platform/Hosted/HostedUtils\";\nimport \"./Shared/appInsights\";\nimport { useAADAuth } from \"./hooks/useAADAuth\";\nimport { useConfig } from \"./hooks/useConfig\";\nimport { useTokenMetadata } from \"./hooks/usePortalAccessToken\";\ninitializeIcons();\nconst App = () => {\n    // For handling encrypted portal tokens sent via query paramter\n    const params = new URLSearchParams(window.location.search);\n    const [encryptedToken, setEncryptedToken] = React.useState(params && params.get(\"key\"));\n    const encryptedTokenMetadata = useTokenMetadata(encryptedToken);\n    // For showing/hiding panel\n    const [isOpen, { setTrue: openPanel, setFalse: dismissPanel }] = useBoolean(false);\n    const config = useConfig();\n    const { isLoggedIn, armToken, graphToken, account, tenantId, logout, login, switchTenant, authFailure } = useAADAuth();\n    const [databaseAccount, setDatabaseAccount] = React.useState();\n    const [authType, setAuthType] = React.useState(encryptedToken ? AuthType.EncryptedToken : undefined);\n    const [connectionString, setConnectionString] = React.useState();\n    const ref = React.useRef();\n    React.useEffect(() => {\n        // If ref.current is undefined no iframe has been rendered\n        if (ref.current) {\n            // In hosted mode, we can set global properties directly on the child iframe.\n            // This is not possible in the portal where the iframes have different origins\n            const frameWindow = ref.current.contentWindow;\n            // AAD authenticated uses ALWAYS using AAD authType\n            if (isLoggedIn) {\n                frameWindow.hostedConfig = {\n                    authType: AuthType.AAD,\n                    databaseAccount,\n                    authorizationToken: armToken,\n                };\n            }\n            else if (authType === AuthType.EncryptedToken) {\n                frameWindow.hostedConfig = {\n                    authType: AuthType.EncryptedToken,\n                    encryptedToken,\n                    encryptedTokenMetadata,\n                };\n            }\n            else if (authType === AuthType.ConnectionString) {\n                frameWindow.hostedConfig = {\n                    authType: AuthType.ConnectionString,\n                    encryptedToken,\n                    encryptedTokenMetadata,\n                    masterKey: extractMasterKeyfromConnectionString(connectionString),\n                };\n            }\n            else if (authType === AuthType.ResourceToken) {\n                frameWindow.hostedConfig = {\n                    authType: AuthType.ResourceToken,\n                    resourceToken: connectionString,\n                };\n            }\n        }\n    });\n    const showExplorer = (config && isLoggedIn && databaseAccount) ||\n        (encryptedTokenMetadata && encryptedTokenMetadata) ||\n        (authType === AuthType.ResourceToken && connectionString);\n    return (React.createElement(React.Fragment, null,\n        React.createElement(\"header\", null,\n            React.createElement(\"div\", { className: \"items\", role: \"menubar\" },\n                React.createElement(\"div\", { className: \"cosmosDBTitle\" },\n                    React.createElement(\"span\", { className: \"title\", onClick: () => window.open(\"https://portal.azure.com\", \"_blank\"), tabIndex: 0, title: \"Go to Azure Portal\" }, \"Microsoft Azure\"),\n                    React.createElement(\"span\", { className: \"accontSplitter\" }),\n                    \" \",\n                    React.createElement(\"span\", { className: \"serviceTitle\" }, \"Cosmos DB\"),\n                    (isLoggedIn || (encryptedTokenMetadata === null || encryptedTokenMetadata === void 0 ? void 0 : encryptedTokenMetadata.accountName)) && (React.createElement(\"img\", { className: \"chevronRight\", src: ChevronRight, alt: \"account separator\" })),\n                    isLoggedIn && (React.createElement(\"span\", { className: \"accountSwitchComponentContainer\" },\n                        React.createElement(AccountSwitcher, { armToken: armToken, setDatabaseAccount: setDatabaseAccount }))),\n                    !isLoggedIn && (encryptedTokenMetadata === null || encryptedTokenMetadata === void 0 ? void 0 : encryptedTokenMetadata.accountName) && (React.createElement(\"span\", { className: \"accountSwitchComponentContainer\" },\n                        React.createElement(\"span\", { className: \"accountNameHeader\" }, encryptedTokenMetadata === null || encryptedTokenMetadata === void 0 ? void 0 : encryptedTokenMetadata.accountName)))),\n                React.createElement(FeedbackCommandButton, null),\n                React.createElement(\"div\", { className: \"meControl\" }, isLoggedIn ? (React.createElement(MeControl, Object.assign({}, { graphToken, openPanel, logout, account }))) : (React.createElement(SignInButton, Object.assign({}, { login })))))),\n        showExplorer && (\n        // Ideally we would import and render data explorer like any other React component, however\n        // because it still has a significant amount of Knockout code, this would lead to memory leaks.\n        // Knockout does not have a way to tear down all of its binding and listeners with a single method.\n        // It's possible this can be changed once all knockout code has been removed.\n        React.createElement(\"iframe\", { \n            // Setting key is needed so React will re-render this element on any account change\n            key: (databaseAccount === null || databaseAccount === void 0 ? void 0 : databaseAccount.id) || (encryptedTokenMetadata === null || encryptedTokenMetadata === void 0 ? void 0 : encryptedTokenMetadata.accountName) || authType, ref: ref, \"data-test\": \"DataExplorerFrame\", id: \"explorerMenu\", name: \"explorer\", className: \"iframe\", title: \"explorer\", src: \"explorer.html?v=1.0.1&platform=Hosted\" })),\n        !isLoggedIn && !encryptedTokenMetadata && (React.createElement(ConnectExplorer, Object.assign({}, { login, setEncryptedToken, setAuthType, connectionString, setConnectionString }))),\n        isLoggedIn && authFailure && React.createElement(AadAuthorizationFailure, Object.assign({}, { authFailure })),\n        isLoggedIn && !authFailure && (React.createElement(DirectoryPickerPanel, Object.assign({}, { isOpen, dismissPanel, armToken, tenantId, switchTenant })))));\n};\nrender(React.createElement(App, null), document.getElementById(\"App\"));\n","import { sendCachedDataMessage } from \"Common/MessageHandler\";\nimport { configContext, Platform } from \"ConfigContext\";\nimport { FabricMessageTypes } from \"Contracts/FabricMessageTypes\";\nimport { CosmosDbArtifactType } from \"Contracts/FabricMessagesContract\";\nimport { updateUserContext, userContext } from \"UserContext\";\nimport { logConsoleError } from \"Utils/NotificationConsoleUtils\";\nconst TOKEN_VALIDITY_MS = (3600 - 600) * 1000; // 1 hour minus 10 minutes to be safe\nconst DEBOUNCE_DELAY_MS = 1000 * 20; // 20 second\nlet timeoutId;\n// Prevents multiple parallel requests during DEBOUNCE_DELAY_MS\nlet lastRequestTimestamp = undefined;\n/**\n * Request fabric token:\n * - Mirrored key and AAD: Database Resource Tokens\n * - Native: AAD token\n * @returns\n */\nconst requestFabricToken = async () => {\n    if (lastRequestTimestamp !== undefined && lastRequestTimestamp + DEBOUNCE_DELAY_MS > Date.now()) {\n        return;\n    }\n    lastRequestTimestamp = Date.now();\n    try {\n        if (isFabricMirrored()) {\n            await requestAndStoreDatabaseResourceTokens();\n        }\n        else if (isFabricNative()) {\n            await requestAndStoreAccessToken();\n        }\n        scheduleRefreshFabricToken();\n    }\n    catch (error) {\n        logConsoleError(error);\n        throw error;\n    }\n    finally {\n        lastRequestTimestamp = undefined;\n    }\n};\nconst requestAndStoreDatabaseResourceTokens = async () => {\n    var _a, _b, _c;\n    if (!userContext.fabricContext || !userContext.databaseAccount) {\n        // This should not happen\n        logConsoleError(\"Fabric context or database account is missing: cannot request tokens\");\n        return;\n    }\n    const resourceTokenInfo = await sendCachedDataMessage(FabricMessageTypes.GetAllResourceTokens, [], (_a = userContext.fabricContext.artifactInfo) === null || _a === void 0 ? void 0 : _a.connectionId);\n    if (!userContext.databaseAccount.properties.documentEndpoint) {\n        userContext.databaseAccount.properties.documentEndpoint = resourceTokenInfo.endpoint;\n    }\n    if (resourceTokenInfo.credentialType === \"OAuth2\") {\n        // Mirrored AAD\n        updateUserContext({\n            fabricContext: Object.assign(Object.assign({}, userContext.fabricContext), { databaseName: resourceTokenInfo.databaseId, artifactInfo: undefined, isReadOnly: (_b = resourceTokenInfo.isReadOnly) !== null && _b !== void 0 ? _b : userContext.fabricContext.isReadOnly }),\n            databaseAccount: Object.assign({}, userContext.databaseAccount),\n            aadToken: resourceTokenInfo.accessToken,\n        });\n    }\n    else {\n        // TODO: In Fabric contract V2, credentialType is undefined. For V3, it is \"Key\". Check for \"Key\" when V3 is supported for Fabric Mirroring Key\n        // Mirrored key\n        updateUserContext({\n            fabricContext: Object.assign(Object.assign({}, userContext.fabricContext), { databaseName: resourceTokenInfo.databaseId, artifactInfo: Object.assign(Object.assign({}, userContext.fabricContext.artifactInfo), { resourceTokenInfo }), isReadOnly: (_c = resourceTokenInfo.isReadOnly) !== null && _c !== void 0 ? _c : userContext.fabricContext.isReadOnly }),\n            databaseAccount: Object.assign({}, userContext.databaseAccount),\n        });\n    }\n};\nconst requestAndStoreAccessToken = async () => {\n    if (!userContext.fabricContext || !userContext.databaseAccount) {\n        // This should not happen\n        logConsoleError(\"Fabric context or database account is missing: cannot request tokens\");\n        return;\n    }\n    const accessTokenInfo = await sendCachedDataMessage(FabricMessageTypes.GetAccessToken, []);\n    updateUserContext({\n        aadToken: accessTokenInfo.accessToken,\n    });\n};\n/**\n * Check token validity and schedule a refresh if necessary\n * @param tokenTimestamp\n * @returns\n */\nexport const scheduleRefreshFabricToken = (refreshNow) => {\n    return new Promise((resolve) => {\n        if (timeoutId !== undefined) {\n            clearTimeout(timeoutId);\n            timeoutId = undefined;\n        }\n        timeoutId = setTimeout(() => {\n            requestFabricToken().then(resolve);\n        }, refreshNow ? 0 : TOKEN_VALIDITY_MS);\n    });\n};\nexport const checkDatabaseResourceTokensValidity = (tokenTimestamp) => {\n    if (tokenTimestamp + TOKEN_VALIDITY_MS < Date.now()) {\n        scheduleRefreshFabricToken(true);\n    }\n};\nexport const isFabric = () => configContext.platform === Platform.Fabric;\nexport const isFabricMirroredKey = () => { var _a; return isFabric() && ((_a = userContext.fabricContext) === null || _a === void 0 ? void 0 : _a.artifactType) === CosmosDbArtifactType.MIRRORED_KEY; };\nexport const isFabricMirroredAAD = () => { var _a; return isFabric() && ((_a = userContext.fabricContext) === null || _a === void 0 ? void 0 : _a.artifactType) === CosmosDbArtifactType.MIRRORED_AAD; };\nexport const isFabricMirrored = () => isFabricMirroredKey() || isFabricMirroredAAD();\nexport const isFabricNative = () => { var _a; return isFabric() && ((_a = userContext.fabricContext) === null || _a === void 0 ? void 0 : _a.artifactType) === CosmosDbArtifactType.NATIVE; };\n","import * as React from \"react\";\nimport ConnectImage from \"../../../../images/HdeConnectCosmosDB.svg\";\nimport \"../AadAuthorizationFailure.less\";\nexport const AadAuthorizationFailure = ({ authFailure }) => {\n    return (React.createElement(\"div\", { id: \"aadAuthFailure\", className: \"aadAuthFailureContainer\", style: { display: \"flex\" } },\n        React.createElement(\"div\", { className: \"aadAuthFailureFormContainer\" },\n            React.createElement(\"div\", { className: \"aadAuthFailure\" },\n                React.createElement(\"p\", { className: \"aadAuthFailureContent\" },\n                    React.createElement(\"img\", { src: ConnectImage, alt: \"Azure Cosmos DB\" })),\n                React.createElement(\"p\", { className: \"authFailureTitle\" }, \"Authorization Failure\"),\n                React.createElement(\"p\", { className: \"authFailureMessage\" }, authFailure.failureMessage),\n                authFailure.failureLinkTitle && (React.createElement(\"p\", { className: \"authFailureLink\", onClick: authFailure.failureLinkAction }, authFailure.failureLinkTitle))))));\n};\n","import { isFabric } from \"Platform/Fabric/FabricUtil\";\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nexport const StyleConstants = require(\"less-vars-loader!../../less/Common/Constants.less\");\nexport function updateStyles() {\n    if (isFabric()) {\n        StyleConstants.AccentMediumHigh = StyleConstants.FabricAccentMediumHigh;\n        StyleConstants.AccentMedium = StyleConstants.FabricAccentMedium;\n        StyleConstants.AccentLight = StyleConstants.FabricAccentLight;\n        StyleConstants.AccentAccentExtra = StyleConstants.FabricAccentMediumHigh;\n    }\n    else {\n        StyleConstants.AccentMediumHigh = StyleConstants.PortalAccentMediumHigh;\n        StyleConstants.AccentMedium = StyleConstants.PortalAccentMedium;\n        StyleConstants.AccentLight = StyleConstants.PortalAccentLight;\n        StyleConstants.AccentAccentExtra = StyleConstants.PortalAccentMediumHigh;\n    }\n}\n","var has = Object.prototype.hasOwnProperty;\n\nexport function dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nvar table = new WeakMap();\n// counter of the key\nvar counter = 0;\n// hashes an array of objects and returns a string\nexport default function hash(args) {\n    if (!args.length)\n        return '';\n    var key = 'arg';\n    for (var i = 0; i < args.length; ++i) {\n        if (args[i] === null) {\n            key += '@null';\n            continue;\n        }\n        var _hash = void 0;\n        if (typeof args[i] !== 'object' && typeof args[i] !== 'function') {\n            // need to consider the case that args[i] is a string:\n            // args[i]        _hash\n            // \"undefined\" -> '\"undefined\"'\n            // undefined   -> 'undefined'\n            // 123         -> '123'\n            // \"null\"      -> '\"null\"'\n            if (typeof args[i] === 'string') {\n                _hash = '\"' + args[i] + '\"';\n            }\n            else {\n                _hash = String(args[i]);\n            }\n        }\n        else {\n            if (!table.has(args[i])) {\n                _hash = counter;\n                table.set(args[i], counter++);\n            }\n            else {\n                _hash = table.get(args[i]);\n            }\n        }\n        key += '@' + _hash;\n    }\n    return key;\n}\n","import hash from './libs/hash';\nvar Cache = /** @class */ (function () {\n    function Cache(initialData) {\n        if (initialData === void 0) { initialData = {}; }\n        this.__cache = new Map(Object.entries(initialData));\n        this.__listeners = [];\n    }\n    Cache.prototype.get = function (key) {\n        var _key = this.serializeKey(key)[0];\n        return this.__cache.get(_key);\n    };\n    Cache.prototype.set = function (key, value) {\n        var _key = this.serializeKey(key)[0];\n        this.__cache.set(_key, value);\n        this.notify();\n    };\n    Cache.prototype.keys = function () {\n        return Array.from(this.__cache.keys());\n    };\n    Cache.prototype.has = function (key) {\n        var _key = this.serializeKey(key)[0];\n        return this.__cache.has(_key);\n    };\n    Cache.prototype.clear = function () {\n        this.__cache.clear();\n        this.notify();\n    };\n    Cache.prototype.delete = function (key) {\n        var _key = this.serializeKey(key)[0];\n        this.__cache.delete(_key);\n        this.notify();\n    };\n    // TODO: introduce namespace for the cache\n    Cache.prototype.serializeKey = function (key) {\n        var args = null;\n        if (typeof key === 'function') {\n            try {\n                key = key();\n            }\n            catch (err) {\n                // dependencies not ready\n                key = '';\n            }\n        }\n        if (Array.isArray(key)) {\n            // args array\n            args = key;\n            key = hash(key);\n        }\n        else {\n            // convert null to ''\n            key = String(key || '');\n        }\n        var errorKey = key ? 'err@' + key : '';\n        var isValidatingKey = key ? 'validating@' + key : '';\n        return [key, args, errorKey, isValidatingKey];\n    };\n    Cache.prototype.subscribe = function (listener) {\n        var _this = this;\n        if (typeof listener !== 'function') {\n            throw new Error('Expected the listener to be a function.');\n        }\n        var isSubscribed = true;\n        this.__listeners.push(listener);\n        return function () {\n            if (!isSubscribed)\n                return;\n            isSubscribed = false;\n            var index = _this.__listeners.indexOf(listener);\n            if (index > -1) {\n                _this.__listeners[index] = _this.__listeners[_this.__listeners.length - 1];\n                _this.__listeners.length--;\n            }\n        };\n    };\n    // Notify Cache subscribers about a change in the cache\n    Cache.prototype.notify = function () {\n        for (var _i = 0, _a = this.__listeners; _i < _a.length; _i++) {\n            var listener = _a[_i];\n            listener();\n        }\n    };\n    return Cache;\n}());\nexport default Cache;\n","function isOnline() {\n    if (typeof navigator.onLine !== 'undefined') {\n        return navigator.onLine;\n    }\n    // always assume it's online\n    return true;\n}\nfunction isDocumentVisible() {\n    if (typeof document !== 'undefined' &&\n        typeof document.visibilityState !== 'undefined') {\n        return document.visibilityState !== 'hidden';\n    }\n    // always assume it's visible\n    return true;\n}\nvar fetcher = function (url) { return fetch(url).then(function (res) { return res.json(); }); };\nexport default {\n    isOnline: isOnline,\n    isDocumentVisible: isDocumentVisible,\n    fetcher: fetcher\n};\n","import { dequal } from 'dequal/lite';\nimport Cache from './cache';\nimport webPreset from './libs/web-preset';\n// cache\nvar cache = new Cache();\n// error retry\nfunction onErrorRetry(_, __, config, revalidate, opts) {\n    if (!config.isDocumentVisible()) {\n        // if it's hidden, stop\n        // it will auto revalidate when focus\n        return;\n    }\n    if (typeof config.errorRetryCount === 'number' &&\n        opts.retryCount > config.errorRetryCount) {\n        return;\n    }\n    // exponential backoff\n    var count = Math.min(opts.retryCount || 0, 8);\n    var timeout = ~~((Math.random() + 0.5) * (1 << count)) * config.errorRetryInterval;\n    setTimeout(revalidate, timeout, opts);\n}\n// client side: need to adjust the config\n// based on the browser status\n// slow connection (<= 70Kbps)\nvar slowConnection = typeof window !== 'undefined' &&\n    navigator['connection'] &&\n    ['slow-2g', '2g'].indexOf(navigator['connection'].effectiveType) !== -1;\n// config\nvar defaultConfig = {\n    // events\n    onLoadingSlow: function () { },\n    onSuccess: function () { },\n    onError: function () { },\n    onErrorRetry: onErrorRetry,\n    errorRetryInterval: (slowConnection ? 10 : 5) * 1000,\n    focusThrottleInterval: 5 * 1000,\n    dedupingInterval: 2 * 1000,\n    loadingTimeout: (slowConnection ? 5 : 3) * 1000,\n    refreshInterval: 0,\n    revalidateOnFocus: true,\n    revalidateOnReconnect: true,\n    refreshWhenHidden: false,\n    refreshWhenOffline: false,\n    shouldRetryOnError: true,\n    suspense: false,\n    compare: dequal,\n    fetcher: webPreset.fetcher,\n    isOnline: webPreset.isOnline,\n    isDocumentVisible: webPreset.isDocumentVisible,\n    isPaused: function () { return false; }\n};\nexport { cache };\nexport default defaultConfig;\n","import { createContext } from 'react';\nvar SWRConfigContext = createContext({});\nSWRConfigContext.displayName = 'SWRConfigContext';\nexport default SWRConfigContext;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nimport { useCallback, useContext, useEffect, useLayoutEffect, useState, useRef, useMemo, useDebugValue } from 'react';\nimport defaultConfig, { cache } from './config';\nimport SWRConfigContext from './swr-config-context';\nvar IS_SERVER = typeof window === 'undefined' ||\n    // @ts-ignore\n    !!(typeof Deno !== 'undefined' && Deno && Deno.version && Deno.version.deno);\n// polyfill for requestAnimationFrame\nvar rAF = IS_SERVER\n    ? null\n    : window['requestAnimationFrame'] || (function (f) { return setTimeout(f, 1); });\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nvar useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n// global state managers\nvar CONCURRENT_PROMISES = {};\nvar CONCURRENT_PROMISES_TS = {};\nvar FOCUS_REVALIDATORS = {};\nvar RECONNECT_REVALIDATORS = {};\nvar CACHE_REVALIDATORS = {};\nvar MUTATION_TS = {};\nvar MUTATION_END_TS = {};\n// generate strictly increasing timestamps\nvar now = (function () {\n    var ts = 0;\n    return function () { return ++ts; };\n})();\n// setup DOM events listeners for `focus` and `reconnect` actions\nif (!IS_SERVER && window.addEventListener) {\n    var revalidate_1 = function (revalidators) {\n        if (!defaultConfig.isDocumentVisible() || !defaultConfig.isOnline())\n            return;\n        for (var key in revalidators) {\n            if (revalidators[key][0])\n                revalidators[key][0]();\n        }\n    };\n    // focus revalidate\n    window.addEventListener('visibilitychange', function () { return revalidate_1(FOCUS_REVALIDATORS); }, false);\n    window.addEventListener('focus', function () { return revalidate_1(FOCUS_REVALIDATORS); }, false);\n    // reconnect revalidate\n    window.addEventListener('online', function () { return revalidate_1(RECONNECT_REVALIDATORS); }, false);\n}\nvar trigger = function (_key, shouldRevalidate) {\n    if (shouldRevalidate === void 0) { shouldRevalidate = true; }\n    // we are ignoring the second argument which correspond to the arguments\n    // the fetcher will receive when key is an array\n    var _a = cache.serializeKey(_key), key = _a[0], keyErr = _a[2], keyValidating = _a[3];\n    if (!key)\n        return Promise.resolve();\n    var updaters = CACHE_REVALIDATORS[key];\n    if (key && updaters) {\n        var currentData = cache.get(key);\n        var currentError = cache.get(keyErr);\n        var currentIsValidating = cache.get(keyValidating);\n        var promises = [];\n        for (var i = 0; i < updaters.length; ++i) {\n            promises.push(updaters[i](shouldRevalidate, currentData, currentError, currentIsValidating, i > 0));\n        }\n        // return new updated value\n        return Promise.all(promises).then(function () { return cache.get(key); });\n    }\n    return Promise.resolve(cache.get(key));\n};\nvar broadcastState = function (key, data, error, isValidating) {\n    var updaters = CACHE_REVALIDATORS[key];\n    if (key && updaters) {\n        for (var i = 0; i < updaters.length; ++i) {\n            updaters[i](false, data, error, isValidating);\n        }\n    }\n};\nvar mutate = function (_key, _data, shouldRevalidate) {\n    if (shouldRevalidate === void 0) { shouldRevalidate = true; }\n    return __awaiter(void 0, void 0, void 0, function () {\n        var _a, key, keyErr, beforeMutationTs, beforeConcurrentPromisesTs, data, error, isAsyncMutation, err_1, shouldAbort, updaters, promises, i;\n        return __generator(this, function (_b) {\n            switch (_b.label) {\n                case 0:\n                    _a = cache.serializeKey(_key), key = _a[0], keyErr = _a[2];\n                    if (!key)\n                        return [2 /*return*/];\n                    // if there is no new data to update, let's just revalidate the key\n                    if (typeof _data === 'undefined')\n                        return [2 /*return*/, trigger(_key, shouldRevalidate)\n                            // update global timestamps\n                        ];\n                    // update global timestamps\n                    MUTATION_TS[key] = now() - 1;\n                    MUTATION_END_TS[key] = 0;\n                    beforeMutationTs = MUTATION_TS[key];\n                    beforeConcurrentPromisesTs = CONCURRENT_PROMISES_TS[key];\n                    isAsyncMutation = false;\n                    if (_data && typeof _data === 'function') {\n                        // `_data` is a function, call it passing current cache value\n                        try {\n                            _data = _data(cache.get(key));\n                        }\n                        catch (err) {\n                            error = err;\n                        }\n                    }\n                    if (!(_data && typeof _data.then === 'function')) return [3 /*break*/, 5];\n                    // `_data` is a promise\n                    isAsyncMutation = true;\n                    _b.label = 1;\n                case 1:\n                    _b.trys.push([1, 3, , 4]);\n                    return [4 /*yield*/, _data];\n                case 2:\n                    data = _b.sent();\n                    return [3 /*break*/, 4];\n                case 3:\n                    err_1 = _b.sent();\n                    error = err_1;\n                    return [3 /*break*/, 4];\n                case 4: return [3 /*break*/, 6];\n                case 5:\n                    data = _data;\n                    _b.label = 6;\n                case 6:\n                    shouldAbort = function () {\n                        // check if other mutations have occurred since we've started this mutation\n                        if (beforeMutationTs !== MUTATION_TS[key] ||\n                            beforeConcurrentPromisesTs !== CONCURRENT_PROMISES_TS[key]) {\n                            if (error)\n                                throw error;\n                            return true;\n                        }\n                    };\n                    // if there's a race we don't update cache or broadcast change, just return the data\n                    if (shouldAbort())\n                        return [2 /*return*/, data];\n                    if (typeof data !== 'undefined') {\n                        // update cached data\n                        cache.set(key, data);\n                    }\n                    // always update or reset the error\n                    cache.set(keyErr, error);\n                    // reset the timestamp to mark the mutation has ended\n                    MUTATION_END_TS[key] = now() - 1;\n                    if (!!isAsyncMutation) return [3 /*break*/, 8];\n                    // let's always broadcast in the next tick\n                    // to dedupe synchronous mutation calls\n                    // check out https://github.com/vercel/swr/pull/735 for more details\n                    return [4 /*yield*/, 0\n                        // we skip broadcasting if there's another mutation happened synchronously\n                    ];\n                case 7:\n                    // let's always broadcast in the next tick\n                    // to dedupe synchronous mutation calls\n                    // check out https://github.com/vercel/swr/pull/735 for more details\n                    _b.sent();\n                    // we skip broadcasting if there's another mutation happened synchronously\n                    if (shouldAbort())\n                        return [2 /*return*/, data];\n                    _b.label = 8;\n                case 8:\n                    updaters = CACHE_REVALIDATORS[key];\n                    if (updaters) {\n                        promises = [];\n                        for (i = 0; i < updaters.length; ++i) {\n                            promises.push(updaters[i](!!shouldRevalidate, data, error, undefined, i > 0));\n                        }\n                        // return new updated value\n                        return [2 /*return*/, Promise.all(promises).then(function () {\n                                if (error)\n                                    throw error;\n                                return cache.get(key);\n                            })];\n                    }\n                    // throw error or return data to be used by caller of mutate\n                    if (error)\n                        throw error;\n                    return [2 /*return*/, data];\n            }\n        });\n    });\n};\nfunction useSWR() {\n    var _this = this;\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    var _key, fn, config = {};\n    if (args.length >= 1) {\n        _key = args[0];\n    }\n    if (args.length > 2) {\n        fn = args[1];\n        config = args[2];\n    }\n    else {\n        if (typeof args[1] === 'function') {\n            fn = args[1];\n        }\n        else if (typeof args[1] === 'object') {\n            config = args[1];\n        }\n    }\n    // we assume `key` as the identifier of the request\n    // `key` can change but `fn` shouldn't\n    // (because `revalidate` only depends on `key`)\n    // `keyErr` is the cache key for error objects\n    var _a = cache.serializeKey(_key), key = _a[0], fnArgs = _a[1], keyErr = _a[2], keyValidating = _a[3];\n    config = Object.assign({}, defaultConfig, useContext(SWRConfigContext), config);\n    var configRef = useRef(config);\n    useIsomorphicLayoutEffect(function () {\n        configRef.current = config;\n    });\n    if (typeof fn === 'undefined') {\n        // use the global fetcher\n        fn = config.fetcher;\n    }\n    var resolveData = function () {\n        var cachedData = cache.get(key);\n        return typeof cachedData === 'undefined' ? config.initialData : cachedData;\n    };\n    var initialData = resolveData();\n    var initialError = cache.get(keyErr);\n    var initialIsValidating = !!cache.get(keyValidating);\n    // if a state is accessed (data, error or isValidating),\n    // we add the state to dependencies so if the state is\n    // updated in the future, we can trigger a rerender\n    var stateDependencies = useRef({\n        data: false,\n        error: false,\n        isValidating: false\n    });\n    var stateRef = useRef({\n        data: initialData,\n        error: initialError,\n        isValidating: initialIsValidating\n    });\n    // display the data label in the React DevTools next to SWR hooks\n    useDebugValue(stateRef.current.data);\n    var rerender = useState(null)[1];\n    var dispatch = useCallback(function (payload) {\n        var shouldUpdateState = false;\n        for (var k in payload) {\n            if (stateRef.current[k] === payload[k]) {\n                continue;\n            }\n            stateRef.current[k] = payload[k];\n            if (stateDependencies.current[k]) {\n                shouldUpdateState = true;\n            }\n        }\n        if (shouldUpdateState || config.suspense) {\n            // if component is unmounted, should skip rerender\n            // if component is not mounted, should skip rerender\n            if (unmountedRef.current || !initialMountedRef.current)\n                return;\n            rerender({});\n        }\n    }, []);\n    // error ref inside revalidate (is last request errored?)\n    var unmountedRef = useRef(false);\n    var keyRef = useRef(key);\n    // check if component is mounted in suspense mode\n    var initialMountedRef = useRef(false);\n    // do unmount check for callbacks\n    var eventsRef = useRef({\n        emit: function (event) {\n            var _a;\n            var params = [];\n            for (var _i = 1; _i < arguments.length; _i++) {\n                params[_i - 1] = arguments[_i];\n            }\n            if (unmountedRef.current)\n                return;\n            if (!initialMountedRef.current)\n                return;\n            (_a = configRef.current)[event].apply(_a, params);\n        }\n    });\n    var boundMutate = useCallback(function (data, shouldRevalidate) {\n        return mutate(keyRef.current, data, shouldRevalidate);\n    }, []);\n    var addRevalidator = function (revalidators, callback) {\n        if (!callback)\n            return;\n        if (!revalidators[key]) {\n            revalidators[key] = [callback];\n        }\n        else {\n            revalidators[key].push(callback);\n        }\n    };\n    var removeRevalidator = function (revlidators, callback) {\n        if (revlidators[key]) {\n            var revalidators = revlidators[key];\n            var index = revalidators.indexOf(callback);\n            if (index >= 0) {\n                // 10x faster than splice\n                // https://jsperf.com/array-remove-by-index\n                revalidators[index] = revalidators[revalidators.length - 1];\n                revalidators.pop();\n            }\n        }\n    };\n    // start a revalidation\n    var revalidate = useCallback(function (revalidateOpts) {\n        if (revalidateOpts === void 0) { revalidateOpts = {}; }\n        return __awaiter(_this, void 0, void 0, function () {\n            var loading, shouldDeduping, newData, startAt, newState, err_2, retryCount;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        if (!key || !fn)\n                            return [2 /*return*/, false];\n                        if (unmountedRef.current)\n                            return [2 /*return*/, false];\n                        if (config.isPaused())\n                            return [2 /*return*/, false];\n                        revalidateOpts = Object.assign({ dedupe: false }, revalidateOpts);\n                        loading = true;\n                        shouldDeduping = typeof CONCURRENT_PROMISES[key] !== 'undefined' && revalidateOpts.dedupe;\n                        _a.label = 1;\n                    case 1:\n                        _a.trys.push([1, 6, , 7]);\n                        dispatch({\n                            isValidating: true\n                        });\n                        cache.set(keyValidating, true);\n                        if (!shouldDeduping) {\n                            // also update other hooks\n                            broadcastState(key, stateRef.current.data, stateRef.current.error, true);\n                        }\n                        newData = void 0;\n                        startAt = void 0;\n                        if (!shouldDeduping) return [3 /*break*/, 3];\n                        // there's already an ongoing request,\n                        // this one needs to be deduplicated.\n                        startAt = CONCURRENT_PROMISES_TS[key];\n                        return [4 /*yield*/, CONCURRENT_PROMISES[key]];\n                    case 2:\n                        newData = _a.sent();\n                        return [3 /*break*/, 5];\n                    case 3:\n                        // if no cache being rendered currently (it shows a blank page),\n                        // we trigger the loading slow event.\n                        if (config.loadingTimeout && !cache.get(key)) {\n                            setTimeout(function () {\n                                if (loading)\n                                    eventsRef.current.emit('onLoadingSlow', key, config);\n                            }, config.loadingTimeout);\n                        }\n                        if (fnArgs !== null) {\n                            CONCURRENT_PROMISES[key] = fn.apply(void 0, fnArgs);\n                        }\n                        else {\n                            CONCURRENT_PROMISES[key] = fn(key);\n                        }\n                        CONCURRENT_PROMISES_TS[key] = startAt = now();\n                        return [4 /*yield*/, CONCURRENT_PROMISES[key]];\n                    case 4:\n                        newData = _a.sent();\n                        setTimeout(function () {\n                            delete CONCURRENT_PROMISES[key];\n                            delete CONCURRENT_PROMISES_TS[key];\n                        }, config.dedupingInterval);\n                        // trigger the success event,\n                        // only do this for the original request.\n                        eventsRef.current.emit('onSuccess', newData, key, config);\n                        _a.label = 5;\n                    case 5:\n                        // if there're other ongoing request(s), started after the current one,\n                        // we need to ignore the current one to avoid possible race conditions:\n                        //   req1------------------>res1        (current one)\n                        //        req2---------------->res2\n                        // the request that fired later will always be kept.\n                        if (CONCURRENT_PROMISES_TS[key] > startAt) {\n                            return [2 /*return*/, false];\n                        }\n                        // if there're other mutations(s), overlapped with the current revalidation:\n                        // case 1:\n                        //   req------------------>res\n                        //       mutate------>end\n                        // case 2:\n                        //         req------------>res\n                        //   mutate------>end\n                        // case 3:\n                        //   req------------------>res\n                        //       mutate-------...---------->\n                        // we have to ignore the revalidation result (res) because it's no longer fresh.\n                        // meanwhile, a new revalidation should be triggered when the mutation ends.\n                        if (MUTATION_TS[key] &&\n                            // case 1\n                            (startAt <= MUTATION_TS[key] ||\n                                // case 2\n                                startAt <= MUTATION_END_TS[key] ||\n                                // case 3\n                                MUTATION_END_TS[key] === 0)) {\n                            dispatch({ isValidating: false });\n                            return [2 /*return*/, false];\n                        }\n                        cache.set(key, newData);\n                        cache.set(keyErr, undefined);\n                        cache.set(keyValidating, false);\n                        newState = {\n                            isValidating: false\n                        };\n                        if (typeof stateRef.current.error !== 'undefined') {\n                            // we don't have an error\n                            newState.error = undefined;\n                        }\n                        if (!config.compare(stateRef.current.data, newData)) {\n                            // deep compare to avoid extra re-render\n                            // data changed\n                            newState.data = newData;\n                        }\n                        // merge the new state\n                        dispatch(newState);\n                        if (!shouldDeduping) {\n                            // also update other hooks\n                            broadcastState(key, newData, newState.error, false);\n                        }\n                        return [3 /*break*/, 7];\n                    case 6:\n                        err_2 = _a.sent();\n                        delete CONCURRENT_PROMISES[key];\n                        delete CONCURRENT_PROMISES_TS[key];\n                        if (config.isPaused()) {\n                            dispatch({\n                                isValidating: false\n                            });\n                            return [2 /*return*/, false];\n                        }\n                        cache.set(keyErr, err_2);\n                        // get a new error\n                        // don't use deep equal for errors\n                        if (stateRef.current.error !== err_2) {\n                            // we keep the stale data\n                            dispatch({\n                                isValidating: false,\n                                error: err_2\n                            });\n                            if (!shouldDeduping) {\n                                // also broadcast to update other hooks\n                                broadcastState(key, undefined, err_2, false);\n                            }\n                        }\n                        // events and retry\n                        eventsRef.current.emit('onError', err_2, key, config);\n                        if (config.shouldRetryOnError) {\n                            retryCount = (revalidateOpts.retryCount || 0) + 1;\n                            eventsRef.current.emit('onErrorRetry', err_2, key, config, revalidate, Object.assign({ dedupe: true }, revalidateOpts, { retryCount: retryCount }));\n                        }\n                        return [3 /*break*/, 7];\n                    case 7:\n                        loading = false;\n                        return [2 /*return*/, true];\n                }\n            });\n        });\n    }, [key]);\n    // mounted (client side rendering)\n    useIsomorphicLayoutEffect(function () {\n        if (!key)\n            return undefined;\n        // after `key` updates, we need to mark it as mounted\n        unmountedRef.current = false;\n        initialMountedRef.current = true;\n        // after the component is mounted (hydrated),\n        // we need to update the data from the cache\n        // and trigger a revalidation\n        var currentHookData = stateRef.current.data;\n        var latestKeyedData = resolveData();\n        // update the state if the key changed (not the inital render) or cache updated\n        if (keyRef.current !== key) {\n            keyRef.current = key;\n        }\n        if (!config.compare(currentHookData, latestKeyedData)) {\n            dispatch({ data: latestKeyedData });\n        }\n        // revalidate with deduping\n        var softRevalidate = function () { return revalidate({ dedupe: true }); };\n        // trigger a revalidation\n        if (config.revalidateOnMount ||\n            (!config.initialData && config.revalidateOnMount === undefined)) {\n            if (typeof latestKeyedData !== 'undefined') {\n                // delay revalidate if there's cache\n                // to not block the rendering\n                rAF(softRevalidate);\n            }\n            else {\n                softRevalidate();\n            }\n        }\n        var pending = false;\n        var onFocus = function () {\n            if (pending || !configRef.current.revalidateOnFocus)\n                return;\n            pending = true;\n            softRevalidate();\n            setTimeout(function () { return (pending = false); }, configRef.current.focusThrottleInterval);\n        };\n        var onReconnect = function () {\n            if (configRef.current.revalidateOnReconnect) {\n                softRevalidate();\n            }\n        };\n        // register global cache update listener\n        var onUpdate = function (shouldRevalidate, updatedData, updatedError, updatedIsValidating, dedupe) {\n            if (shouldRevalidate === void 0) { shouldRevalidate = true; }\n            if (dedupe === void 0) { dedupe = true; }\n            // update hook state\n            var newState = {};\n            var needUpdate = false;\n            if (typeof updatedData !== 'undefined' &&\n                !config.compare(stateRef.current.data, updatedData)) {\n                newState.data = updatedData;\n                needUpdate = true;\n            }\n            // always update error\n            // because it can be `undefined`\n            if (stateRef.current.error !== updatedError) {\n                newState.error = updatedError;\n                needUpdate = true;\n            }\n            if (typeof updatedIsValidating !== 'undefined' &&\n                stateRef.current.isValidating !== updatedIsValidating) {\n                newState.isValidating = updatedIsValidating;\n                needUpdate = true;\n            }\n            if (needUpdate) {\n                dispatch(newState);\n            }\n            if (shouldRevalidate) {\n                if (dedupe) {\n                    return softRevalidate();\n                }\n                else {\n                    return revalidate();\n                }\n            }\n            return false;\n        };\n        addRevalidator(FOCUS_REVALIDATORS, onFocus);\n        addRevalidator(RECONNECT_REVALIDATORS, onReconnect);\n        addRevalidator(CACHE_REVALIDATORS, onUpdate);\n        return function () {\n            // cleanup\n            dispatch = function () { return null; };\n            // mark it as unmounted\n            unmountedRef.current = true;\n            removeRevalidator(FOCUS_REVALIDATORS, onFocus);\n            removeRevalidator(RECONNECT_REVALIDATORS, onReconnect);\n            removeRevalidator(CACHE_REVALIDATORS, onUpdate);\n        };\n    }, [key, revalidate]);\n    useIsomorphicLayoutEffect(function () {\n        var timer = null;\n        var tick = function () { return __awaiter(_this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        if (!(!stateRef.current.error &&\n                            (configRef.current.refreshWhenHidden ||\n                                configRef.current.isDocumentVisible()) &&\n                            (configRef.current.refreshWhenOffline || configRef.current.isOnline()))) return [3 /*break*/, 2];\n                        // only revalidate when the page is visible\n                        // if API request errored, we stop polling in this round\n                        // and let the error retry function handle it\n                        return [4 /*yield*/, revalidate({ dedupe: true })];\n                    case 1:\n                        // only revalidate when the page is visible\n                        // if API request errored, we stop polling in this round\n                        // and let the error retry function handle it\n                        _a.sent();\n                        _a.label = 2;\n                    case 2:\n                        // Read the latest refreshInterval\n                        if (configRef.current.refreshInterval && timer) {\n                            timer = setTimeout(tick, configRef.current.refreshInterval);\n                        }\n                        return [2 /*return*/];\n                }\n            });\n        }); };\n        if (configRef.current.refreshInterval) {\n            timer = setTimeout(tick, configRef.current.refreshInterval);\n        }\n        return function () {\n            if (timer) {\n                clearTimeout(timer);\n                timer = null;\n            }\n        };\n    }, [\n        config.refreshInterval,\n        config.refreshWhenHidden,\n        config.refreshWhenOffline,\n        revalidate\n    ]);\n    // define returned state\n    // can be memorized since the state is a ref\n    var memoizedState = useMemo(function () {\n        var state = { revalidate: revalidate, mutate: boundMutate };\n        Object.defineProperties(state, {\n            error: {\n                // `key` might be changed in the upcoming hook re-render,\n                // but the previous state will stay\n                // so we need to match the latest key and data (fallback to `initialData`)\n                get: function () {\n                    stateDependencies.current.error = true;\n                    return keyRef.current === key ? stateRef.current.error : initialError;\n                },\n                enumerable: true\n            },\n            data: {\n                get: function () {\n                    stateDependencies.current.data = true;\n                    return keyRef.current === key ? stateRef.current.data : initialData;\n                },\n                enumerable: true\n            },\n            isValidating: {\n                get: function () {\n                    stateDependencies.current.isValidating = true;\n                    return key ? stateRef.current.isValidating : false;\n                },\n                enumerable: true\n            }\n        });\n        return state;\n    }, [revalidate]);\n    // suspense\n    if (config.suspense) {\n        // in suspense mode, we can't return empty state\n        // (it should be suspended)\n        // try to get data and error from cache\n        var latestData = cache.get(key);\n        var latestError = cache.get(keyErr);\n        if (typeof latestData === 'undefined') {\n            latestData = initialData;\n        }\n        if (typeof latestError === 'undefined') {\n            latestError = initialError;\n        }\n        if (typeof latestData === 'undefined' &&\n            typeof latestError === 'undefined') {\n            // need to start the request if it hasn't\n            if (!CONCURRENT_PROMISES[key]) {\n                // trigger revalidate immediately\n                // to get the promise\n                // in this revalidate, should not rerender\n                revalidate();\n            }\n            if (CONCURRENT_PROMISES[key] &&\n                typeof CONCURRENT_PROMISES[key].then === 'function') {\n                // if it is a promise\n                throw CONCURRENT_PROMISES[key];\n            }\n            // it's a value, return it directly (override)\n            latestData = CONCURRENT_PROMISES[key];\n        }\n        if (typeof latestData === 'undefined' && latestError) {\n            // in suspense mode, throw error if there's no content\n            throw latestError;\n        }\n        // return the latest data / error from cache\n        // in case `key` has changed\n        return {\n            error: latestError,\n            data: latestData,\n            revalidate: revalidate,\n            mutate: boundMutate,\n            isValidating: stateRef.current.isValidating\n        };\n    }\n    return memoizedState;\n}\nvar SWRConfig = SWRConfigContext.Provider;\nexport { trigger, mutate, SWRConfig };\nexport default useSWR;\n","export * from './use-swr';\nimport { default as useSWR } from './use-swr';\nexport { useSWRInfinite } from './use-swr-infinite';\nexport { cache } from './config';\nexport default useSWR;\n","import { HttpHeaders } from \"Common/Constants\";\nimport useSWR from \"swr\";\nimport { configContext } from \"../ConfigContext\";\nexport async function fetchDatabaseAccounts(subscriptionId, accessToken) {\n    const headers = new Headers();\n    const bearer = `Bearer ${accessToken}`;\n    headers.append(\"Authorization\", bearer);\n    let accounts = [];\n    const apiVersion = \"2023-09-15-preview\";\n    let nextLink = `${configContext.ARM_ENDPOINT}/subscriptions/${subscriptionId}/providers/Microsoft.DocumentDB/databaseAccounts?api-version=${apiVersion}`;\n    while (nextLink) {\n        const response = await fetch(nextLink, { headers });\n        const result = response.status === 204 || response.status === 304 ? undefined : await response.json();\n        if (!response.ok) {\n            throw result;\n        }\n        nextLink = result.nextLink;\n        accounts = [...accounts, ...result.value];\n    }\n    return accounts.sort((a, b) => a.name.localeCompare(b.name));\n}\nexport async function fetchDatabaseAccountsFromGraph(subscriptionId, accessToken) {\n    var _a;\n    const headers = new Headers();\n    const bearer = `Bearer ${accessToken}`;\n    headers.append(\"Authorization\", bearer);\n    headers.append(HttpHeaders.contentType, \"application/json\");\n    const databaseAccountsQuery = \"resources | where type =~ 'microsoft.documentdb/databaseaccounts'\";\n    const apiVersion = \"2021-03-01\";\n    const managementResourceGraphAPIURL = `${configContext.ARM_ENDPOINT}providers/Microsoft.ResourceGraph/resources?api-version=${apiVersion}`;\n    const databaseAccounts = [];\n    let skipToken;\n    do {\n        const body = Object.assign({ query: databaseAccountsQuery, subscriptions: [subscriptionId] }, (skipToken\n            ? {\n                options: {\n                    $skipToken: skipToken,\n                },\n            }\n            : {\n                options: {\n                    $top: 150,\n                },\n            }));\n        const response = await fetch(managementResourceGraphAPIURL, {\n            method: \"POST\",\n            headers,\n            body: JSON.stringify(body),\n        });\n        if (!response.ok) {\n            throw new Error(await response.text());\n        }\n        const queryResponse = (await response.json());\n        skipToken = queryResponse.$skipToken;\n        (_a = queryResponse.data) === null || _a === void 0 ? void 0 : _a.map((databaseAccount) => {\n            databaseAccounts.push(databaseAccount);\n        });\n    } while (skipToken);\n    return databaseAccounts.sort((a, b) => a.name.localeCompare(b.name));\n}\nexport function useDatabaseAccounts(subscriptionId, armToken) {\n    const { data } = useSWR(() => (armToken && subscriptionId ? [\"databaseAccounts\", subscriptionId, armToken] : undefined), (_, subscriptionId, armToken) => fetchDatabaseAccountsFromGraph(subscriptionId, armToken));\n    return data;\n}\n","import { HttpHeaders } from \"Common/Constants\";\nimport useSWR from \"swr\";\nimport { configContext } from \"../ConfigContext\";\nexport async function fetchSubscriptions(accessToken) {\n    const headers = new Headers();\n    const bearer = `Bearer ${accessToken}`;\n    headers.append(\"Authorization\", bearer);\n    let subscriptions = [];\n    let nextLink = `${configContext.ARM_ENDPOINT}subscriptions?api-version=2020-01-01`;\n    while (nextLink) {\n        const response = await fetch(nextLink, { headers });\n        const result = response.status === 204 || response.status === 304 ? undefined : await response.json();\n        if (!response.ok) {\n            throw result;\n        }\n        nextLink = result.nextLink;\n        const validSubscriptions = result.value.filter((sub) => sub.state === \"Enabled\" || sub.state === \"Warned\" || sub.state === \"PastDue\");\n        subscriptions = [...subscriptions, ...validSubscriptions];\n    }\n    return subscriptions.sort((a, b) => a.displayName.localeCompare(b.displayName));\n}\nexport async function fetchSubscriptionsFromGraph(accessToken) {\n    var _a;\n    const headers = new Headers();\n    const bearer = `Bearer ${accessToken}`;\n    headers.append(\"Authorization\", bearer);\n    headers.append(HttpHeaders.contentType, \"application/json\");\n    const subscriptionsQuery = \"resources | where type == 'microsoft.documentdb/databaseaccounts' | join kind=inner ( resourcecontainers | where type == 'microsoft.resources/subscriptions' | project subscriptionId, subscriptionName = name, subscriptionState = tostring(parse_json(properties).state) ) on subscriptionId |  summarize by subscriptionId, subscriptionName, subscriptionState\";\n    const apiVersion = \"2021-03-01\";\n    const managementResourceGraphAPIURL = `${configContext.ARM_ENDPOINT}providers/Microsoft.ResourceGraph/resources?api-version=${apiVersion}`;\n    const subscriptions = [];\n    let skipToken;\n    do {\n        const body = {\n            query: subscriptionsQuery,\n            options: Object.assign({ $allowPartialScopes: true, $top: 150 }, (skipToken && {\n                $skipToken: skipToken,\n            })),\n        };\n        const response = await fetch(managementResourceGraphAPIURL, {\n            method: \"POST\",\n            headers,\n            body: JSON.stringify(body),\n        });\n        if (!response.ok) {\n            throw new Error(await response.text());\n        }\n        const queryResponse = (await response.json());\n        skipToken = queryResponse.$skipToken;\n        (_a = queryResponse.data) === null || _a === void 0 ? void 0 : _a.map((subscription) => {\n            subscriptions.push({\n                displayName: subscription.subscriptionName,\n                subscriptionId: subscription.subscriptionId,\n                state: subscription.subscriptionState,\n            });\n        });\n    } while (skipToken);\n    return subscriptions.sort((a, b) => a.displayName.localeCompare(b.displayName));\n}\nexport function useSubscriptions(armToken) {\n    const { data } = useSWR(() => (armToken ? [\"subscriptions\", armToken] : undefined), (_, armToken) => fetchSubscriptionsFromGraph(armToken));\n    return data;\n}\n","export var SelectableOptionMenuItemType;\n(function (SelectableOptionMenuItemType) {\n    SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Normal\"] = 0] = \"Normal\";\n    SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Divider\"] = 1] = \"Divider\";\n    SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Header\"] = 2] = \"Header\";\n    SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"SelectAll\"] = 3] = \"SelectAll\";\n})(SelectableOptionMenuItemType || (SelectableOptionMenuItemType = {}));\n//# sourceMappingURL=SelectableOption.types.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nvar DEFAULT_BUTTON_HEIGHT = '40px';\nvar DEFAULT_PADDING = '0 4px';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n    var _a, _b, _c;\n    var baseButtonStyles = getBaseButtonStyles(theme);\n    var actionButtonStyles = {\n        root: (_a = {\n                padding: DEFAULT_PADDING,\n                height: DEFAULT_BUTTON_HEIGHT,\n                color: theme.palette.neutralPrimary,\n                backgroundColor: 'transparent',\n                border: '1px solid transparent'\n            },\n            _a[HighContrastSelector] = {\n                borderColor: 'Window',\n            },\n            _a),\n        rootHovered: (_b = {\n                color: theme.palette.themePrimary\n            },\n            _b[HighContrastSelector] = {\n                color: 'Highlight',\n            },\n            _b),\n        iconHovered: {\n            color: theme.palette.themePrimary,\n        },\n        rootPressed: {\n            color: theme.palette.black,\n        },\n        rootExpanded: {\n            color: theme.palette.themePrimary,\n        },\n        iconPressed: {\n            color: theme.palette.themeDarker,\n        },\n        rootDisabled: (_c = {\n                color: theme.palette.neutralTertiary,\n                backgroundColor: 'transparent',\n                borderColor: 'transparent'\n            },\n            _c[HighContrastSelector] = {\n                color: 'GrayText',\n            },\n            _c),\n        rootChecked: {\n            color: theme.palette.black,\n        },\n        iconChecked: {\n            color: theme.palette.themeDarker,\n        },\n        flexContainer: {\n            justifyContent: 'flex-start',\n        },\n        icon: {\n            color: theme.palette.themeDarkAlt,\n        },\n        iconDisabled: {\n            color: 'inherit',\n        },\n        menuIcon: {\n            color: theme.palette.neutralSecondary,\n        },\n        textContainer: {\n            flexGrow: 0,\n        },\n    };\n    return concatStyleSets(baseButtonStyles, actionButtonStyles, customStyles);\n});\n//# sourceMappingURL=ActionButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './ActionButton.styles';\n/**\n * {@docCategory Button}\n */\nvar ActionButton = /** @class */ (function (_super) {\n    __extends(ActionButton, _super);\n    function ActionButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ActionButton.prototype.render = function () {\n        var _a = this.props, styles = _a.styles, theme = _a.theme;\n        return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--action ms-Button--command\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n    };\n    ActionButton = __decorate([\n        customizable('ActionButton', ['theme', 'styles'], true)\n    ], ActionButton);\n    return ActionButton;\n}(React.Component));\nexport { ActionButton };\n//# sourceMappingURL=ActionButton.js.map","import { ActionButton } from '../ActionButton/ActionButton';\n/**\n * {@docCategory Button}\n */\nexport var CommandButton = ActionButton;\n//# sourceMappingURL=CommandButton.js.map","import { __spreadArray } from \"tslib\";\nimport { DropdownMenuItemType } from '../Dropdown.types';\n/**\n * A utility class to cache size and position in cache.\n *\n * Dropdown options has non-selectable display types. It is therefore not cheap to determine\n * the total number of actual selectable options as well as the position an option is in the\n * list of options - O(n) cost for each lookup.\n *\n * Given that we potentially have to make this determination on every single render pass, this\n * cache should provide a little bit of relief.\n */\nvar DropdownSizePosCache = /** @class */ (function () {\n    function DropdownSizePosCache() {\n        this._size = 0;\n    }\n    /**\n     * Invalidates the cache and recalculate the size of selectable options.\n     */\n    DropdownSizePosCache.prototype.updateOptions = function (options) {\n        var displayOnlyOptionsCache = [];\n        var notSelectableOptionsCache = [];\n        var size = 0;\n        for (var i = 0; i < options.length; i++) {\n            var _a = options[i], itemType = _a.itemType, hidden = _a.hidden;\n            if (itemType === DropdownMenuItemType.Divider || itemType === DropdownMenuItemType.Header) {\n                displayOnlyOptionsCache.push(i);\n                notSelectableOptionsCache.push(i);\n            }\n            else if (hidden) {\n                notSelectableOptionsCache.push(i);\n            }\n            else {\n                size++;\n            }\n        }\n        this._size = size;\n        this._displayOnlyOptionsCache = displayOnlyOptionsCache;\n        this._notSelectableOptionsCache = notSelectableOptionsCache;\n        this._cachedOptions = __spreadArray([], options, true);\n    };\n    Object.defineProperty(DropdownSizePosCache.prototype, \"optionSetSize\", {\n        /**\n         * The size of all the selectable options.\n         */\n        get: function () {\n            return this._size;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(DropdownSizePosCache.prototype, \"cachedOptions\", {\n        /**\n         * The chached options array.\n         */\n        get: function () {\n            return this._cachedOptions;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Returns the position of this option element relative to the full set of selectable option elements.\n     * Note: the first selectable element is position 1 in the set.\n     * @param index The raw index of the option element.\n     */\n    DropdownSizePosCache.prototype.positionInSet = function (index) {\n        if (index === undefined) {\n            return undefined;\n        }\n        // we could possibly memoize this too but this should be good enough, most of the time (the expectation is that\n        // when you have a lot of options, the selectable options will heavily dominate over the non-selectable options.\n        var offset = 0;\n        while (index > this._notSelectableOptionsCache[offset]) {\n            offset++;\n        }\n        if (this._displayOnlyOptionsCache[offset] === index) {\n            throw new Error(\"Unexpected: Option at index \".concat(index, \" is not a selectable element.\"));\n        }\n        if (this._notSelectableOptionsCache[offset] === index) {\n            return undefined;\n        }\n        return index - offset + 1;\n    };\n    return DropdownSizePosCache;\n}());\nexport { DropdownSizePosCache };\n//# sourceMappingURL=DropdownSizePosCache.js.map","export function getAllSelectedOptions(options, selectedIndices) {\n    var selectedOptions = [];\n    for (var _i = 0, selectedIndices_1 = selectedIndices; _i < selectedIndices_1.length; _i++) {\n        var index = selectedIndices_1[_i];\n        var option = options[index];\n        if (option) {\n            selectedOptions.push(option);\n        }\n    }\n    return selectedOptions;\n}\n//# sourceMappingURL=SelectableOption.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useControllableValue, useId, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nimport { useFocusRects, classNamesFunction } from '@fluentui/utilities';\nimport { Icon } from '../Icon/Icon';\nvar getClassNames = classNamesFunction();\nexport var CheckboxBase = React.forwardRef(function (props, forwardedRef) {\n    var disabled = props.disabled, required = props.required, inputProps = props.inputProps, name = props.name, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, ariaPositionInSet = props.ariaPositionInSet, ariaSetSize = props.ariaSetSize, title = props.title, checkmarkIconProps = props.checkmarkIconProps, styles = props.styles, theme = props.theme, className = props.className, _a = props.boxSide, boxSide = _a === void 0 ? 'start' : _a;\n    var id = useId('checkbox-', props.id);\n    var rootRef = React.useRef(null);\n    var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n    var inputRef = React.useRef(null);\n    var _b = useControllableValue(props.checked, props.defaultChecked, props.onChange), isChecked = _b[0], setIsChecked = _b[1];\n    var _c = useControllableValue(props.indeterminate, props.defaultIndeterminate), isIndeterminate = _c[0], setIsIndeterminate = _c[1];\n    useFocusRects(rootRef);\n    useDebugWarning(props);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        disabled: disabled,\n        indeterminate: isIndeterminate,\n        checked: isChecked,\n        reversed: boxSide !== 'start',\n        isUsingCustomLabelRender: !!props.onRenderLabel,\n    });\n    var onChange = React.useCallback(function (event) {\n        if (isIndeterminate) {\n            // If indeterminate, clicking the checkbox *only* removes the indeterminate state (or if\n            // controlled, lets the consumer know to change it by calling onChange). It doesn't\n            // change the checked state.\n            setIsChecked(!!isChecked, event);\n            setIsIndeterminate(false);\n        }\n        else {\n            setIsChecked(!isChecked, event);\n        }\n    }, [setIsChecked, setIsIndeterminate, isIndeterminate, isChecked]);\n    var defaultLabelRenderer = React.useCallback(function (checkboxProps) {\n        if (!checkboxProps) {\n            return null;\n        }\n        return checkboxProps.label ? (React.createElement(\"span\", { className: classNames.text, title: checkboxProps.title }, checkboxProps.label)) : null;\n    }, [classNames.text]);\n    var setNativeIndeterminate = React.useCallback(function (indeterminate) {\n        if (!inputRef.current) {\n            return;\n        }\n        var value = !!indeterminate;\n        inputRef.current.indeterminate = value;\n        setIsIndeterminate(value);\n    }, [setIsIndeterminate]);\n    useComponentRef(props, isChecked, isIndeterminate, setNativeIndeterminate, inputRef);\n    React.useEffect(function () { return setNativeIndeterminate(isIndeterminate); }, [setNativeIndeterminate, isIndeterminate]);\n    var onRenderLabel = props.onRenderLabel || defaultLabelRenderer;\n    var ariaChecked = isIndeterminate\n        ? 'mixed'\n        : undefined;\n    var mergedInputProps = __assign(__assign({ className: classNames.input, type: 'checkbox' }, inputProps), { checked: !!isChecked, disabled: disabled, required: required, name: name, id: id, title: title, onChange: onChange, 'aria-disabled': disabled, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, 'aria-posinset': ariaPositionInSet, 'aria-setsize': ariaSetSize, 'aria-checked': ariaChecked });\n    return (React.createElement(\"div\", { className: classNames.root, title: title, ref: mergedRootRefs },\n        React.createElement(\"input\", __assign({}, mergedInputProps, { ref: inputRef, title: title, \"data-ktp-execute-target\": true })),\n        React.createElement(\"label\", { className: classNames.label, htmlFor: id },\n            React.createElement(\"div\", { className: classNames.checkbox, \"data-ktp-target\": true },\n                React.createElement(Icon, __assign({ iconName: \"CheckMark\" }, checkmarkIconProps, { className: classNames.checkmark }))),\n            onRenderLabel(props, defaultLabelRenderer))));\n});\nCheckboxBase.displayName = 'CheckboxBase';\nfunction useDebugWarning(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: 'Checkbox',\n            props: props,\n            mutuallyExclusive: {\n                checked: 'defaultChecked',\n                indeterminate: 'defaultIndeterminate',\n            },\n        });\n    }\n}\nfunction useComponentRef(props, isChecked, isIndeterminate, setIndeterminate, checkBoxRef) {\n    React.useImperativeHandle(props.componentRef, function () { return ({\n        get checked() {\n            return !!isChecked;\n        },\n        get indeterminate() {\n            return !!isIndeterminate;\n        },\n        set indeterminate(indeterminate) {\n            setIndeterminate(indeterminate);\n        },\n        focus: function () {\n            if (checkBoxRef.current) {\n                checkBoxRef.current.focus();\n            }\n        },\n    }); }, [checkBoxRef, isChecked, isIndeterminate, setIndeterminate]);\n}\n//# sourceMappingURL=Checkbox.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '@fluentui/style-utilities';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nvar GlobalClassNames = {\n    root: 'ms-Checkbox',\n    label: 'ms-Checkbox-label',\n    checkbox: 'ms-Checkbox-checkbox',\n    checkmark: 'ms-Checkbox-checkmark',\n    text: 'ms-Checkbox-text',\n};\nvar MS_CHECKBOX_LABEL_SIZE = '20px';\nvar MS_CHECKBOX_TRANSITION_DURATION = '200ms';\nvar MS_CHECKBOX_TRANSITION_TIMING = 'cubic-bezier(.4, 0, .23, 1)';\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\n    var className = props.className, theme = props.theme, reversed = props.reversed, checked = props.checked, disabled = props.disabled, isUsingCustomLabelRender = props.isUsingCustomLabelRender, indeterminate = props.indeterminate;\n    var semanticColors = theme.semanticColors, effects = theme.effects, palette = theme.palette, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var checkmarkFontColor = semanticColors.inputForegroundChecked;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBorder\n    var checkmarkFontColorHovered = palette.neutralSecondary;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n    var checkboxBorderColor = palette.neutralPrimary;\n    var checkboxBorderIndeterminateColor = semanticColors.inputBackgroundChecked;\n    var checkboxBorderColorChecked = semanticColors.inputBackgroundChecked;\n    var checkboxBorderColorDisabled = semanticColors.disabledBodySubtext;\n    var checkboxBorderHoveredColor = semanticColors.inputBorderHovered;\n    var checkboxBorderIndeterminateHoveredColor = semanticColors.inputBackgroundCheckedHovered;\n    var checkboxBackgroundChecked = semanticColors.inputBackgroundChecked;\n    // TODO: after updating the semanticColors slots mapping the following 2 tokens need to be\n    // semanticColors.inputBackgroundCheckedHovered\n    var checkboxBackgroundCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n    var checkboxBorderColorCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n    var checkboxHoveredTextColor = semanticColors.inputTextHovered;\n    var checkboxBackgroundDisabledChecked = semanticColors.disabledBodySubtext;\n    var checkboxTextColor = semanticColors.bodyText;\n    var checkboxTextColorDisabled = semanticColors.disabledText;\n    var indeterminateDotStyles = [\n        (_a = {\n                content: '\"\"',\n                borderRadius: effects.roundedCorner2,\n                position: 'absolute',\n                width: 10,\n                height: 10,\n                top: 4,\n                left: 4,\n                boxSizing: 'border-box',\n                borderWidth: 5,\n                borderStyle: 'solid',\n                borderColor: disabled ? checkboxBorderColorDisabled : checkboxBorderIndeterminateColor,\n                transitionProperty: 'border-width, border, border-color',\n                transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n                transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING\n            },\n            _a[HighContrastSelector] = {\n                borderColor: 'WindowText',\n            },\n            _a),\n    ];\n    return {\n        root: [\n            classNames.root,\n            {\n                position: 'relative',\n                display: 'flex',\n            },\n            reversed && 'reversed',\n            checked && 'is-checked',\n            !disabled && 'is-enabled',\n            disabled && 'is-disabled',\n            !disabled && [\n                !checked && (_b = {},\n                    _b[\":hover .\".concat(classNames.checkbox)] = (_c = {\n                            borderColor: checkboxBorderHoveredColor\n                        },\n                        _c[HighContrastSelector] = {\n                            borderColor: 'Highlight',\n                        },\n                        _c),\n                    _b[\":focus .\".concat(classNames.checkbox)] = { borderColor: checkboxBorderHoveredColor },\n                    _b[\":hover .\".concat(classNames.checkmark)] = (_d = {\n                            color: checkmarkFontColorHovered,\n                            opacity: '1'\n                        },\n                        _d[HighContrastSelector] = {\n                            color: 'Highlight',\n                        },\n                        _d),\n                    _b),\n                checked &&\n                    !indeterminate && (_e = {},\n                    _e[\":hover .\".concat(classNames.checkbox)] = {\n                        background: checkboxBackgroundCheckedHovered,\n                        borderColor: checkboxBorderColorCheckedHovered,\n                    },\n                    _e[\":focus .\".concat(classNames.checkbox)] = {\n                        background: checkboxBackgroundCheckedHovered,\n                        borderColor: checkboxBorderColorCheckedHovered,\n                    },\n                    _e[HighContrastSelector] = (_f = {},\n                        _f[\":hover .\".concat(classNames.checkbox)] = {\n                            background: 'Highlight',\n                            borderColor: 'Highlight',\n                        },\n                        _f[\":focus .\".concat(classNames.checkbox)] = {\n                            background: 'Highlight',\n                        },\n                        _f[\":focus:hover .\".concat(classNames.checkbox)] = {\n                            background: 'Highlight',\n                        },\n                        _f[\":focus:hover .\".concat(classNames.checkmark)] = {\n                            color: 'Window',\n                        },\n                        _f[\":hover .\".concat(classNames.checkmark)] = {\n                            color: 'Window',\n                        },\n                        _f),\n                    _e),\n                indeterminate && (_g = {},\n                    _g[\":hover .\".concat(classNames.checkbox, \", :hover .\").concat(classNames.checkbox, \":after\")] = (_h = {\n                            borderColor: checkboxBorderIndeterminateHoveredColor\n                        },\n                        _h[HighContrastSelector] = {\n                            borderColor: 'WindowText',\n                        },\n                        _h),\n                    _g[\":focus .\".concat(classNames.checkbox)] = {\n                        borderColor: checkboxBorderIndeterminateHoveredColor,\n                    },\n                    _g[\":hover .\".concat(classNames.checkmark)] = {\n                        opacity: '0',\n                    },\n                    _g),\n                (_j = {},\n                    _j[\":hover .\".concat(classNames.text, \", :focus .\").concat(classNames.text)] = (_k = {\n                            color: checkboxHoveredTextColor\n                        },\n                        _k[HighContrastSelector] = {\n                            color: disabled ? 'GrayText' : 'WindowText',\n                        },\n                        _k),\n                    _j),\n            ],\n            className,\n        ],\n        input: (_l = {\n                position: 'absolute',\n                background: 'none',\n                opacity: 0\n            },\n            // eslint-disable-next-line @fluentui/max-len\n            _l[\".\".concat(IsFocusVisibleClassName, \" &:focus + label::before, :host(.\").concat(IsFocusVisibleClassName, \") &:focus + label::before\")] = (_m = {\n                    outline: '1px solid ' + theme.palette.neutralSecondary,\n                    outlineOffset: '2px'\n                },\n                _m[HighContrastSelector] = {\n                    outline: '1px solid WindowText',\n                },\n                _m),\n            _l),\n        label: [\n            classNames.label,\n            theme.fonts.medium,\n            {\n                display: 'flex',\n                alignItems: isUsingCustomLabelRender ? 'center' : 'flex-start',\n                cursor: disabled ? 'default' : 'pointer',\n                position: 'relative',\n                userSelect: 'none',\n            },\n            reversed && {\n                flexDirection: 'row-reverse',\n                justifyContent: 'flex-end',\n            },\n            {\n                '&::before': {\n                    position: 'absolute',\n                    left: 0,\n                    right: 0,\n                    top: 0,\n                    bottom: 0,\n                    content: '\"\"',\n                    pointerEvents: 'none',\n                },\n            },\n        ],\n        checkbox: [\n            classNames.checkbox,\n            (_o = {\n                    position: 'relative',\n                    display: 'flex',\n                    flexShrink: 0,\n                    alignItems: 'center',\n                    justifyContent: 'center',\n                    height: MS_CHECKBOX_LABEL_SIZE,\n                    width: MS_CHECKBOX_LABEL_SIZE,\n                    border: \"1px solid \".concat(checkboxBorderColor),\n                    borderRadius: effects.roundedCorner2,\n                    boxSizing: 'border-box',\n                    transitionProperty: 'background, border, border-color',\n                    transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n                    transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING,\n                    /* in case the icon is bigger than the box */\n                    overflow: 'hidden',\n                    ':after': indeterminate ? indeterminateDotStyles : null\n                },\n                _o[HighContrastSelector] = __assign({ borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _o),\n            indeterminate && {\n                borderColor: checkboxBorderIndeterminateColor,\n            },\n            !reversed\n                ? // This margin on the checkbox is for backwards compat. Notably it has the effect where a customRender\n                    // is used, there will be only a 4px margin from checkbox to label. The label by default would have\n                    // another 4px margin for a total of 8px margin between checkbox and label. We don't combine the two\n                    // (and move it into the text) to not incur a breaking change for everyone using custom render atm.\n                    {\n                        marginRight: 4,\n                    }\n                : {\n                    marginLeft: 4,\n                },\n            !disabled &&\n                !indeterminate &&\n                checked && (_p = {\n                    background: checkboxBackgroundChecked,\n                    borderColor: checkboxBorderColorChecked\n                },\n                _p[HighContrastSelector] = {\n                    background: 'Highlight',\n                    borderColor: 'Highlight',\n                },\n                _p),\n            disabled && (_q = {\n                    borderColor: checkboxBorderColorDisabled\n                },\n                _q[HighContrastSelector] = {\n                    borderColor: 'GrayText',\n                },\n                _q),\n            checked &&\n                disabled && (_r = {\n                    background: checkboxBackgroundDisabledChecked,\n                    borderColor: checkboxBorderColorDisabled\n                },\n                _r[HighContrastSelector] = {\n                    background: 'Window',\n                },\n                _r),\n        ],\n        checkmark: [\n            classNames.checkmark,\n            (_s = {\n                    opacity: checked && !indeterminate ? '1' : '0',\n                    color: checkmarkFontColor\n                },\n                _s[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'Window' }, getHighContrastNoAdjustStyle()),\n                _s),\n        ],\n        text: [\n            classNames.text,\n            (_t = {\n                    color: disabled ? checkboxTextColorDisabled : checkboxTextColor,\n                    fontSize: fonts.medium.fontSize,\n                    lineHeight: '20px'\n                },\n                _t[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'WindowText' }, getHighContrastNoAdjustStyle()),\n                _t),\n            !reversed\n                ? {\n                    marginLeft: 4,\n                }\n                : {\n                    marginRight: 4,\n                },\n        ],\n    };\n};\n//# sourceMappingURL=Checkbox.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { CheckboxBase } from './Checkbox.base';\nimport { getStyles } from './Checkbox.styles';\nexport var Checkbox = styled(CheckboxBase, getStyles, undefined, { scope: 'Checkbox' });\n//# sourceMappingURL=Checkbox.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { css, KeyCodes, classNamesFunction, divProperties, findIndex, getDocument, getFirstFocusable, getId, getLastFocusable, getNativeProps, initializeComponentRef, isIOS, isMac, mergeAriaAttributeValues, safeRequestAnimationFrame, warn, warnDeprecations, warnMutuallyExclusive, } from '../../Utilities';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { CommandButton } from '../../Button';\nimport { DropdownMenuItemType } from './Dropdown.types';\nimport { DropdownSizePosCache } from './utilities/DropdownSizePosCache';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { Label } from '../../Label';\nimport { Panel } from '../../Panel';\nimport { ResponsiveMode, useResponsiveMode } from '../../ResponsiveMode';\nimport { SelectableOptionMenuItemType, getAllSelectedOptions } from '../../SelectableOption';\n// import and use V7 Checkbox to ensure no breaking changes.\nimport { Checkbox } from '../../Checkbox';\nimport { getNextElement, getPreviousElement, getPropsWithDefaults } from '@fluentui/utilities';\nimport { useMergedRefs, usePrevious } from '@fluentui/react-hooks';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { getDocumentEx, getWindowEx } from '../../utilities/dom';\nvar COMPONENT_NAME = 'Dropdown';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n    options: [],\n};\nfunction useSelectedItemsState(_a) {\n    var defaultSelectedKeys = _a.defaultSelectedKeys, selectedKeys = _a.selectedKeys, defaultSelectedKey = _a.defaultSelectedKey, selectedKey = _a.selectedKey, options = _a.options, multiSelect = _a.multiSelect;\n    var oldOptions = usePrevious(options);\n    var _b = React.useState([]), selectedIndices = _b[0], setSelectedIndices = _b[1];\n    // In controlled component usage where selectedKey is provided, update the selectedIndex\n    // state if the key or options change.\n    var selectedKeyPropToUse;\n    // this does a shallow compare (assumes options are pure), for the purposes of determining whether\n    // defaultSelectedKey/defaultSelectedKeys are respected.\n    var didOptionsChange = options !== oldOptions;\n    if (multiSelect) {\n        if (didOptionsChange && defaultSelectedKeys !== undefined) {\n            selectedKeyPropToUse = defaultSelectedKeys;\n        }\n        else {\n            selectedKeyPropToUse = selectedKeys;\n        }\n    }\n    else {\n        if (didOptionsChange && defaultSelectedKey !== undefined) {\n            selectedKeyPropToUse = defaultSelectedKey;\n        }\n        else {\n            selectedKeyPropToUse = selectedKey;\n        }\n    }\n    var oldSelectedKeyProp = usePrevious(selectedKeyPropToUse);\n    React.useEffect(function () {\n        /** Get all selected indexes for multi-select mode */\n        var getSelectedIndexes = function () {\n            if (selectedKeyPropToUse === undefined) {\n                if (multiSelect) {\n                    return getAllSelectedIndices();\n                }\n                var selectedIndex = getSelectedIndex(null);\n                return selectedIndex !== -1 ? [selectedIndex] : [];\n            }\n            else if (!Array.isArray(selectedKeyPropToUse)) {\n                var selectedIndex = getSelectedIndex(selectedKeyPropToUse);\n                return selectedIndex !== -1 ? [selectedIndex] : [];\n            }\n            var returnValue = [];\n            for (var _i = 0, selectedKeyPropToUse_1 = selectedKeyPropToUse; _i < selectedKeyPropToUse_1.length; _i++) {\n                var key = selectedKeyPropToUse_1[_i];\n                var selectedIndex = getSelectedIndex(key);\n                selectedIndex !== -1 && returnValue.push(selectedIndex);\n            }\n            return returnValue;\n        };\n        var getAllSelectedIndices = function () {\n            return options\n                .map(function (option, index) { return (option.selected ? index : -1); })\n                .filter(function (index) { return index !== -1; });\n        };\n        var getSelectedIndex = function (searchKey) {\n            return findIndex(options, function (option) {\n                // eslint-disable-next-line eqeqeq\n                if (searchKey != null) {\n                    return option.key === searchKey;\n                }\n                else {\n                    // eslint-disable-next-line deprecation/deprecation\n                    return !!option.selected || !!option.isSelected;\n                }\n            });\n        };\n        if ((selectedKeyPropToUse !== undefined || !oldOptions) &&\n            (selectedKeyPropToUse !== oldSelectedKeyProp || didOptionsChange)) {\n            setSelectedIndices(getSelectedIndexes());\n        }\n    }, [didOptionsChange, multiSelect, oldOptions, oldSelectedKeyProp, options, selectedKeyPropToUse]);\n    return [selectedIndices, setSelectedIndices];\n}\nexport var DropdownBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    var rootRef = React.useRef(null);\n    var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n    var responsiveMode = useResponsiveMode(rootRef, props.responsiveMode);\n    var _a = useSelectedItemsState(props), selectedIndices = _a[0], setSelectedIndices = _a[1];\n    return (React.createElement(DropdownInternal, __assign({}, props, { responsiveMode: responsiveMode, hoisted: { rootRef: mergedRootRef, selectedIndices: selectedIndices, setSelectedIndices: setSelectedIndices } })));\n});\nDropdownBase.displayName = 'DropdownBase';\nvar DropdownInternal = /** @class */ (function (_super) {\n    __extends(DropdownInternal, _super);\n    function DropdownInternal(props) {\n        var _this = _super.call(this, props) || this;\n        _this._host = React.createRef();\n        _this._focusZone = React.createRef();\n        _this._dropDown = React.createRef();\n        _this._scrollIdleDelay = 250 /* ms */;\n        _this._sizePosCache = new DropdownSizePosCache();\n        _this._requestAnimationFrame = safeRequestAnimationFrame(_this);\n        /**\n         * Close menu callout if it is open\n         */\n        _this.dismissMenu = function () {\n            var isOpen = _this.state.isOpen;\n            isOpen && _this.setState({ isOpen: false });\n        };\n        _this._onChange = function (event, options, index, checked, multiSelect) {\n            // eslint-disable-next-line deprecation/deprecation\n            var _a = _this.props, onChange = _a.onChange, onChanged = _a.onChanged;\n            if (onChange || onChanged) {\n                // for single-select, option passed in will always be selected.\n                // for multi-select, flip the checked value\n                var changedOpt = multiSelect ? __assign(__assign({}, options[index]), { selected: !checked }) : options[index];\n                onChange && onChange(__assign(__assign({}, event), { target: _this._dropDown.current }), changedOpt, index);\n                onChanged && onChanged(changedOpt, index);\n            }\n        };\n        /** Get either props.placeholder (new name) or props.placeHolder (old name) */\n        _this._getPlaceholder = function () {\n            // eslint-disable-next-line deprecation/deprecation\n            return _this.props.placeholder || _this.props.placeHolder;\n        };\n        /** Get text in dropdown input as a string */\n        _this._getTitle = function (items, _unused) {\n            var _a = _this.props.multiSelectDelimiter, multiSelectDelimiter = _a === void 0 ? ', ' : _a;\n            return items.map(function (i) { return i.text; }).join(multiSelectDelimiter);\n        };\n        /** Render text in dropdown input */\n        _this._onRenderTitle = function (items) {\n            return React.createElement(React.Fragment, null, _this._getTitle(items));\n        };\n        /** Render placeholder text in dropdown input */\n        _this._onRenderPlaceholder = function (props) {\n            if (!_this._getPlaceholder()) {\n                return null;\n            }\n            return React.createElement(React.Fragment, null, _this._getPlaceholder());\n        };\n        /** Render Callout or Panel container and pass in list */\n        _this._onRenderContainer = function (props) {\n            var calloutProps = props.calloutProps, panelProps = props.panelProps;\n            var _a = _this.props, responsiveMode = _a.responsiveMode, dropdownWidth = _a.dropdownWidth;\n            var isSmall = responsiveMode <= ResponsiveMode.medium;\n            var focusTrapZoneProps = { firstFocusableTarget: \"#\".concat(_this._listId, \"1\") };\n            var panelStyles = _this._classNames.subComponentStyles\n                ? _this._classNames.subComponentStyles.panel\n                : undefined;\n            var calloutWidth = undefined;\n            var calloutMinWidth = undefined;\n            if (dropdownWidth === 'auto') {\n                calloutMinWidth = _this._dropDown.current ? _this._dropDown.current.clientWidth : 0;\n            }\n            else {\n                calloutWidth = dropdownWidth || (_this._dropDown.current ? _this._dropDown.current.clientWidth : 0);\n            }\n            return isSmall ? (React.createElement(Panel, __assign({ closeButtonAriaLabel: \"Close\", focusTrapZoneProps: focusTrapZoneProps, hasCloseButton: true, isOpen: true, isLightDismiss: true, onDismiss: _this._onDismiss, styles: panelStyles }, panelProps), _this._renderFocusableList(props))) : (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHintFixed: false, directionalHint: DirectionalHint.bottomLeftEdge, calloutWidth: calloutWidth, calloutMinWidth: calloutMinWidth }, calloutProps, { className: _this._classNames.callout, target: _this._dropDown.current, onDismiss: _this._onDismiss, onScroll: _this._onScroll, onPositioned: _this._onPositioned }), _this._renderFocusableList(props)));\n        };\n        /** Render Caret Down Icon */\n        _this._onRenderCaretDown = function (props) {\n            return React.createElement(Icon, { className: _this._classNames.caretDown, iconName: \"ChevronDown\", \"aria-hidden\": true });\n        };\n        /** Render List of items */\n        _this._onRenderList = function (props) {\n            var _a = props.onRenderItem, onRenderItem = _a === void 0 ? _this._onRenderItem : _a;\n            var queue = { items: [] };\n            var renderedList = [];\n            var emptyQueue = function () {\n                var newGroup = queue.id\n                    ? [\n                        React.createElement(\"div\", { role: \"group\", key: queue.id, \"aria-labelledby\": queue.id }, queue.items),\n                    ]\n                    : queue.items;\n                renderedList = __spreadArray(__spreadArray([], renderedList, true), newGroup, true);\n                // Flush items and id\n                queue = { items: [] };\n            };\n            var placeRenderedOptionIntoQueue = function (item, index) {\n                /*\n                  Case Header\n                    empty queue if it's not already empty\n                    ensure unique ID for header and set queue ID\n                    push header into queue\n                  Case Divider\n                    push divider into queue if not first item\n                    empty queue if not already empty\n                  Default\n                    push item into queue\n                */\n                switch (item.itemType) {\n                    case SelectableOptionMenuItemType.Header:\n                        queue.items.length > 0 && emptyQueue();\n                        var id = _this._id + item.key;\n                        queue.items.push(onRenderItem(__assign(__assign({ id: id }, item), { index: index }), _this._onRenderItem));\n                        queue.id = id;\n                        break;\n                    case SelectableOptionMenuItemType.Divider:\n                        index > 0 && queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n                        queue.items.length > 0 && emptyQueue();\n                        break;\n                    default:\n                        queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n                }\n            };\n            // Place options into the queue. Queue will be emptied anytime a Header or Divider is encountered\n            props.options.forEach(function (item, index) {\n                placeRenderedOptionIntoQueue(item, index);\n            });\n            // Push remaining items into all renderedList\n            queue.items.length > 0 && emptyQueue();\n            return React.createElement(React.Fragment, null, renderedList);\n        };\n        _this._onRenderItem = function (item) {\n            switch (item.itemType) {\n                case SelectableOptionMenuItemType.Divider:\n                    return _this._renderSeparator(item);\n                case SelectableOptionMenuItemType.Header:\n                    return _this._renderHeader(item);\n                default:\n                    return _this._renderOption(item);\n            }\n        };\n        _this._renderOption = function (item) {\n            var _a;\n            var _b = _this.props, _c = _b.onRenderOption, onRenderOption = _c === void 0 ? _this._onRenderOption : _c, _d = _b.hoisted.selectedIndices, selectedIndices = _d === void 0 ? [] : _d;\n            var isItemSelected = item.index !== undefined && selectedIndices ? selectedIndices.indexOf(item.index) > -1 : false;\n            // select the right className based on the combination of selected/disabled\n            var itemClassName = item.hidden // predicate: item hidden\n                ? _this._classNames.dropdownItemHidden\n                : isItemSelected && item.disabled === true // predicate: both selected and disabled\n                    ? _this._classNames.dropdownItemSelectedAndDisabled\n                    : isItemSelected // predicate: selected only\n                        ? _this._classNames.dropdownItemSelected\n                        : item.disabled === true // predicate: disabled only\n                            ? _this._classNames.dropdownItemDisabled\n                            : _this._classNames.dropdownItem;\n            var title = item.title;\n            // define the id and label id (for multiselect checkboxes)\n            var id = _this._listId + item.index;\n            var labelId = (_a = item.id) !== null && _a !== void 0 ? _a : id + '-label';\n            var multiSelectItemStyles = _this._classNames.subComponentStyles\n                ? _this._classNames.subComponentStyles.multiSelectItem\n                : undefined;\n            return !_this.props.multiSelect ? (React.createElement(CommandButton, { id: id, key: item.key, \"data-index\": item.index, \"data-is-focusable\": !item.disabled, disabled: item.disabled, className: itemClassName, onClick: _this._onItemClick(item), \n                // eslint-disable-next-line react/jsx-no-bind\n                onMouseEnter: _this._onItemMouseEnter.bind(_this, item), \n                // eslint-disable-next-line react/jsx-no-bind\n                onMouseLeave: _this._onMouseItemLeave.bind(_this, item), \n                // eslint-disable-next-line react/jsx-no-bind\n                onMouseMove: _this._onItemMouseMove.bind(_this, item), role: \"option\", \"aria-selected\": isItemSelected ? 'true' : 'false', ariaLabel: item.ariaLabel, title: title, \"aria-posinset\": _this._sizePosCache.positionInSet(item.index), \"aria-setsize\": _this._sizePosCache.optionSetSize }, onRenderOption(item, _this._onRenderOption))) : (React.createElement(Checkbox, { id: id, key: item.key, disabled: item.disabled, onChange: _this._onItemClick(item), inputProps: __assign({ 'aria-selected': isItemSelected, onMouseEnter: _this._onItemMouseEnter.bind(_this, item), onMouseLeave: _this._onMouseItemLeave.bind(_this, item), onMouseMove: _this._onItemMouseMove.bind(_this, item), role: 'option' }, {\n                    'data-index': item.index,\n                    'data-is-focusable': !(item.disabled || item.hidden),\n                }), label: item.text, title: title, \n                // eslint-disable-next-line react/jsx-no-bind\n                onRenderLabel: _this._onRenderItemLabel.bind(_this, __assign(__assign({}, item), { id: labelId })), className: css(itemClassName, 'is-multi-select'), checked: isItemSelected, styles: multiSelectItemStyles, ariaPositionInSet: !item.hidden ? _this._sizePosCache.positionInSet(item.index) : undefined, ariaSetSize: !item.hidden ? _this._sizePosCache.optionSetSize : undefined, ariaLabel: item.ariaLabel, ariaLabelledBy: item.ariaLabel ? undefined : labelId }));\n        };\n        /** Render content of item (i.e. text/icon inside of button) */\n        _this._onRenderOption = function (item) {\n            return React.createElement(\"span\", { className: _this._classNames.dropdownOptionText }, item.text);\n        };\n        /*\n         * Render content of a multiselect item label.\n         * Text within the label is aria-hidden, to prevent duplicate input/label exposure\n         */\n        _this._onRenderMultiselectOption = function (item) {\n            return (React.createElement(\"span\", { id: item.id, \"aria-hidden\": \"true\", className: _this._classNames.dropdownOptionText }, item.text));\n        };\n        /** Render custom label for multiselect checkbox items */\n        _this._onRenderItemLabel = function (item) {\n            var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderMultiselectOption : _a;\n            return onRenderOption(item, _this._onRenderMultiselectOption);\n        };\n        _this._onPositioned = function (positions) {\n            if (_this._focusZone.current) {\n                // Focusing an element can trigger a reflow. Making this wait until there is an animation\n                // frame can improve perf significantly.\n                _this._requestAnimationFrame(function () {\n                    var selectedIndices = _this.props.hoisted.selectedIndices;\n                    if (_this._focusZone.current) {\n                        if (!_this._hasBeenPositioned &&\n                            selectedIndices &&\n                            selectedIndices[0] &&\n                            !_this.props.options[selectedIndices[0]].disabled) {\n                            var element = getDocument().getElementById(\"\".concat(_this._id, \"-list\").concat(selectedIndices[0]));\n                            if (element) {\n                                _this._focusZone.current.focusElement(element);\n                            }\n                            _this._hasBeenPositioned = true;\n                        }\n                        else {\n                            _this._focusZone.current.focus();\n                        }\n                    }\n                });\n            }\n            if (!_this.state.calloutRenderEdge || _this.state.calloutRenderEdge !== positions.targetEdge) {\n                _this.setState({\n                    calloutRenderEdge: positions.targetEdge,\n                });\n            }\n        };\n        _this._onItemClick = function (item) {\n            return function (event) {\n                if (!item.disabled) {\n                    _this.setSelectedIndex(event, item.index);\n                    if (!_this.props.multiSelect) {\n                        // only close the callout when it's in single-select mode\n                        _this.setState({\n                            isOpen: false,\n                        });\n                    }\n                }\n            };\n        };\n        /**\n         * Scroll handler for the callout to make sure the mouse events\n         * for updating focus are not interacting during scroll\n         */\n        _this._onScroll = function () {\n            var win = getWindowEx(_this.context); // can only be called on the client\n            if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n                win.clearTimeout(_this._scrollIdleTimeoutId);\n                _this._scrollIdleTimeoutId = undefined;\n            }\n            else {\n                _this._isScrollIdle = false;\n            }\n            _this._scrollIdleTimeoutId = win.setTimeout(function () {\n                _this._isScrollIdle = true;\n            }, _this._scrollIdleDelay);\n        };\n        _this._onMouseItemLeave = function (item, ev) {\n            if (_this._shouldIgnoreMouseEvent()) {\n                return;\n            }\n            /**\n             * IE11 focus() method forces parents to scroll to top of element.\n             * Edge and IE expose a setActive() function for focusable divs that\n             * sets the page focus but does not scroll the parent element.\n             */\n            if (_this._host.current) {\n                if (_this._host.current.setActive) {\n                    try {\n                        _this._host.current.setActive();\n                    }\n                    catch (e) {\n                        /* no-op */\n                    }\n                }\n                else {\n                    _this._host.current.focus();\n                }\n            }\n        };\n        _this._onDismiss = function () {\n            _this.setState({ isOpen: false });\n        };\n        _this._onDropdownBlur = function (ev) {\n            // If Dropdown disabled do not proceed with this logic.\n            var disabled = _this._isDisabled();\n            if (disabled) {\n                return;\n            }\n            if (_this.state.isOpen) {\n                // Do not call onBlur or update focus state when the callout is opened\n                return;\n            }\n            _this.setState({ hasFocus: false });\n            if (_this.props.onBlur) {\n                _this.props.onBlur(ev);\n            }\n        };\n        _this._onDropdownKeyDown = function (ev) {\n            // If Dropdown disabled do not process any keyboard events.\n            var disabled = _this._isDisabled();\n            if (disabled) {\n                return;\n            }\n            // Take note if we are processing an alt (option) or meta (command) keydown.\n            // See comment in _shouldHandleKeyUp for reasoning.\n            _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n            if (_this.props.onKeyDown) {\n                _this.props.onKeyDown(ev);\n                if (ev.defaultPrevented) {\n                    return;\n                }\n            }\n            var newIndex;\n            var selectedIndex = _this.props.hoisted.selectedIndices.length ? _this.props.hoisted.selectedIndices[0] : -1;\n            var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n            var isOpen = _this.state.isOpen;\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.enter:\n                    _this.setState({\n                        isOpen: !isOpen,\n                    });\n                    break;\n                case KeyCodes.escape:\n                    if (!isOpen) {\n                        return;\n                    }\n                    _this.setState({\n                        isOpen: false,\n                    });\n                    break;\n                case KeyCodes.up:\n                    if (containsExpandCollapseModifier) {\n                        if (isOpen) {\n                            _this.setState({ isOpen: false });\n                            break;\n                        }\n                        return;\n                    }\n                    if (_this.props.multiSelect) {\n                        _this.setState({ isOpen: true });\n                    }\n                    else if (!_this._isDisabled()) {\n                        newIndex = _this._moveIndex(ev, -1, selectedIndex - 1, selectedIndex);\n                    }\n                    break;\n                case KeyCodes.down:\n                    if (containsExpandCollapseModifier) {\n                        ev.stopPropagation();\n                        ev.preventDefault();\n                    }\n                    if ((containsExpandCollapseModifier && !isOpen) || _this.props.multiSelect) {\n                        _this.setState({ isOpen: true });\n                    }\n                    else if (!_this._isDisabled()) {\n                        newIndex = _this._moveIndex(ev, 1, selectedIndex + 1, selectedIndex);\n                    }\n                    break;\n                case KeyCodes.home:\n                    if (!_this.props.multiSelect) {\n                        newIndex = _this._moveIndex(ev, 1, 0, selectedIndex);\n                    }\n                    break;\n                case KeyCodes.end:\n                    if (!_this.props.multiSelect) {\n                        newIndex = _this._moveIndex(ev, -1, _this.props.options.length - 1, selectedIndex);\n                    }\n                    break;\n                case KeyCodes.space:\n                    // event handled in _onDropdownKeyUp\n                    break;\n                default:\n                    return;\n            }\n            if (newIndex !== selectedIndex) {\n                ev.stopPropagation();\n                ev.preventDefault();\n            }\n        };\n        _this._onDropdownKeyUp = function (ev) {\n            // If Dropdown disabled do not process any keyboard events.\n            var disabled = _this._isDisabled();\n            if (disabled) {\n                return;\n            }\n            var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n            var isOpen = _this.state.isOpen;\n            if (_this.props.onKeyUp) {\n                _this.props.onKeyUp(ev);\n                if (ev.defaultPrevented) {\n                    return;\n                }\n            }\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.space:\n                    _this.setState({\n                        isOpen: !isOpen,\n                    });\n                    break;\n                default:\n                    if (shouldHandleKey && isOpen) {\n                        _this.setState({ isOpen: false });\n                    }\n                    return;\n            }\n            ev.stopPropagation();\n            ev.preventDefault();\n        };\n        _this._onZoneKeyDown = function (ev) {\n            var _a, _b;\n            var elementToFocus;\n            // Take note if we are processing an alt (option) or meta (command) keydown.\n            // See comment in _shouldHandleKeyUp for reasoning.\n            _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n            var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n            // eslint-disable-next-line deprecation/deprecation\n            switch (ev.which) {\n                case KeyCodes.up:\n                    if (containsExpandCollapseModifier) {\n                        _this.setState({ isOpen: false });\n                    }\n                    else {\n                        if (_this._host.current) {\n                            elementToFocus = getLastFocusable(_this._host.current, _this._host.current.lastChild, true);\n                        }\n                    }\n                    break;\n                // All directional keystrokes should be canceled when the zone is rendered.\n                // This avoids the body scroll from reacting and thus dismissing the dropdown.\n                case KeyCodes.home:\n                case KeyCodes.end:\n                case KeyCodes.pageUp:\n                case KeyCodes.pageDown:\n                    break;\n                case KeyCodes.down:\n                    if (!containsExpandCollapseModifier && _this._host.current) {\n                        elementToFocus = getFirstFocusable(_this._host.current, _this._host.current.firstChild, true);\n                    }\n                    break;\n                case KeyCodes.escape:\n                    _this.setState({ isOpen: false });\n                    break;\n                case KeyCodes.tab:\n                    _this.setState({ isOpen: false });\n                    var document_1 = getDocument();\n                    if (document_1) {\n                        if (ev.shiftKey) {\n                            (_a = getPreviousElement(document_1.body, _this._dropDown.current, false, false, true, true)) === null || _a === void 0 ? void 0 : _a.focus();\n                        }\n                        else {\n                            (_b = getNextElement(document_1.body, _this._dropDown.current, false, false, true, true)) === null || _b === void 0 ? void 0 : _b.focus();\n                        }\n                    }\n                    break;\n                default:\n                    return;\n            }\n            if (elementToFocus) {\n                elementToFocus.focus();\n            }\n            ev.stopPropagation();\n            ev.preventDefault();\n        };\n        _this._onZoneKeyUp = function (ev) {\n            var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n            if (shouldHandleKey && _this.state.isOpen) {\n                _this.setState({ isOpen: false });\n                ev.preventDefault();\n            }\n        };\n        _this._onDropdownClick = function (ev) {\n            if (_this.props.onClick) {\n                _this.props.onClick(ev);\n                if (ev.defaultPrevented) {\n                    return;\n                }\n            }\n            var isOpen = _this.state.isOpen;\n            var disabled = _this._isDisabled();\n            if (!disabled && !_this._shouldOpenOnFocus()) {\n                _this.setState({\n                    isOpen: !isOpen,\n                });\n            }\n            _this._isFocusedByClick = false; // reset\n        };\n        _this._onDropdownMouseDown = function () {\n            _this._isFocusedByClick = true;\n        };\n        _this._onFocus = function (ev) {\n            var disabled = _this._isDisabled();\n            if (!disabled) {\n                if (_this.props.onFocus) {\n                    _this.props.onFocus(ev);\n                }\n                var state = { hasFocus: true };\n                if (_this._shouldOpenOnFocus()) {\n                    state.isOpen = true;\n                }\n                _this.setState(state);\n            }\n        };\n        /**\n         * Because the isDisabled prop is deprecated, we have had to repeat this logic all over the place.\n         * This helper method avoids all the repetition.\n         */\n        _this._isDisabled = function () {\n            var disabled = _this.props.disabled;\n            // eslint-disable-next-line deprecation/deprecation\n            var isDisabled = _this.props.isDisabled;\n            // Remove this deprecation workaround at 1.0.0\n            if (disabled === undefined) {\n                disabled = isDisabled;\n            }\n            return disabled;\n        };\n        _this._onRenderLabel = function (props) {\n            var label = props.label, required = props.required, disabled = props.disabled;\n            var labelStyles = _this._classNames.subComponentStyles\n                ? _this._classNames.subComponentStyles.label\n                : undefined;\n            return label ? (React.createElement(Label, { className: _this._classNames.label, id: _this._labelId, required: required, styles: labelStyles, disabled: disabled }, label)) : null;\n        };\n        initializeComponentRef(_this);\n        var multiSelect = props.multiSelect, selectedKey = props.selectedKey, selectedKeys = props.selectedKeys, defaultSelectedKey = props.defaultSelectedKey, defaultSelectedKeys = props.defaultSelectedKeys, options = props.options;\n        if (process.env.NODE_ENV !== 'production') {\n            warnDeprecations(COMPONENT_NAME, props, {\n                isDisabled: 'disabled',\n                onChanged: 'onChange',\n                placeHolder: 'placeholder',\n                onRenderPlaceHolder: 'onRenderPlaceholder',\n            });\n            warnMutuallyExclusive(COMPONENT_NAME, props, {\n                defaultSelectedKey: 'selectedKey',\n                defaultSelectedKeys: 'selectedKeys',\n                selectedKeys: 'selectedKey',\n            });\n            if (multiSelect) {\n                var warnMultiSelect = function (prop) {\n                    return warn(\"Dropdown property '\".concat(prop, \"' cannot be used when 'multiSelect' is true. Use '\").concat(prop, \"s' instead.\"));\n                };\n                if (selectedKey !== undefined) {\n                    warnMultiSelect('selectedKey');\n                }\n                if (defaultSelectedKey !== undefined) {\n                    warnMultiSelect('defaultSelectedKey');\n                }\n            }\n            else {\n                var warnNotMultiSelect = function (prop) {\n                    return warn(\"Dropdown property '\".concat(prop, \"s' cannot be used when 'multiSelect' is false/unset. Use '\").concat(prop, \"' instead.\"));\n                };\n                if (selectedKeys !== undefined) {\n                    warnNotMultiSelect('selectedKey');\n                }\n                if (defaultSelectedKeys !== undefined) {\n                    warnNotMultiSelect('defaultSelectedKey');\n                }\n            }\n        }\n        _this._id = props.id || getId('Dropdown');\n        _this._labelId = _this._id + '-label';\n        _this._listId = _this._id + '-list';\n        _this._optionId = _this._id + '-option';\n        _this._isScrollIdle = true;\n        _this._hasBeenPositioned = false;\n        _this._sizePosCache.updateOptions(options);\n        _this.state = {\n            isOpen: false,\n            hasFocus: false,\n            calloutRenderEdge: undefined,\n        };\n        return _this;\n    }\n    Object.defineProperty(DropdownInternal.prototype, \"selectedOptions\", {\n        /**\n         * All selected options\n         */\n        get: function () {\n            var _a = this.props, options = _a.options, selectedIndices = _a.hoisted.selectedIndices;\n            return getAllSelectedOptions(options, selectedIndices);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    DropdownInternal.prototype.componentWillUnmount = function () {\n        clearTimeout(this._scrollIdleTimeoutId);\n    };\n    DropdownInternal.prototype.componentDidUpdate = function (prevProps, prevState) {\n        if (prevState.isOpen === true && this.state.isOpen === false) {\n            this._gotMouseMove = false;\n            this._hasBeenPositioned = false;\n            if (this.props.onDismiss) {\n                this.props.onDismiss();\n            }\n        }\n    };\n    DropdownInternal.prototype.render = function () {\n        var id = this._id;\n        var props = this.props;\n        var className = props.className, label = props.label, options = props.options, ariaLabel = props.ariaLabel, required = props.required, errorMessage = props.errorMessage, propStyles = props.styles, theme = props.theme, panelProps = props.panelProps, calloutProps = props.calloutProps, _a = props.onRenderTitle, onRenderTitle = _a === void 0 ? this._getTitle : _a, _b = props.onRenderContainer, onRenderContainer = _b === void 0 ? this._onRenderContainer : _b, _c = props.onRenderCaretDown, onRenderCaretDown = _c === void 0 ? this._onRenderCaretDown : _c, _d = props.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = props.onRenderItem, onRenderItem = _e === void 0 ? this._onRenderItem : _e, selectedIndices = props.hoisted.selectedIndices;\n        var _f = this.state, isOpen = _f.isOpen, calloutRenderEdge = _f.calloutRenderEdge, hasFocus = _f.hasFocus;\n        // eslint-disable-next-line deprecation/deprecation\n        var onRenderPlaceholder = props.onRenderPlaceholder || props.onRenderPlaceHolder || this._getPlaceholder;\n        // If our cached options are out of date update our cache\n        if (options !== this._sizePosCache.cachedOptions) {\n            this._sizePosCache.updateOptions(options);\n        }\n        var selectedOptions = getAllSelectedOptions(options, selectedIndices);\n        var divProps = getNativeProps(props, divProperties);\n        var disabled = this._isDisabled();\n        var errorMessageId = id + '-errorMessage';\n        this._classNames = getClassNames(propStyles, {\n            theme: theme,\n            className: className,\n            hasError: !!(errorMessage && errorMessage.length > 0),\n            hasLabel: !!label,\n            isOpen: isOpen,\n            required: required,\n            disabled: disabled,\n            isRenderingPlaceholder: !selectedOptions.length,\n            panelClassName: panelProps ? panelProps.className : undefined,\n            calloutClassName: calloutProps ? calloutProps.className : undefined,\n            calloutRenderEdge: calloutRenderEdge,\n        });\n        var hasErrorMessage = !!errorMessage && errorMessage.length > 0;\n        return (React.createElement(\"div\", { className: this._classNames.root, ref: this.props.hoisted.rootRef, \"aria-owns\": isOpen ? this._listId : undefined },\n            onRenderLabel(this.props, this._onRenderLabel),\n            React.createElement(\"div\", __assign({ \"data-is-focusable\": !disabled, \"data-ktp-target\": true, ref: this._dropDown, id: id, tabIndex: disabled ? -1 : 0, role: \"combobox\", \"aria-haspopup\": \"listbox\", \"aria-expanded\": isOpen ? 'true' : 'false', \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? mergeAriaAttributeValues(this._labelId, this._optionId) : undefined, \"aria-describedby\": hasErrorMessage ? this._id + '-errorMessage' : undefined, \"aria-required\": required, \"aria-disabled\": disabled, \"aria-controls\": isOpen ? this._listId : undefined }, divProps, { className: this._classNames.dropdown, onBlur: this._onDropdownBlur, onKeyDown: this._onDropdownKeyDown, onKeyUp: this._onDropdownKeyUp, onClick: this._onDropdownClick, onMouseDown: this._onDropdownMouseDown, onFocus: this._onFocus }),\n                React.createElement(\"span\", { id: this._optionId, className: this._classNames.title, \"aria-live\": hasFocus ? 'polite' : undefined, \"aria-atomic\": hasFocus ? true : undefined, \"aria-invalid\": hasErrorMessage }, \n                // If option is selected render title, otherwise render the placeholder text\n                selectedOptions.length\n                    ? onRenderTitle(selectedOptions, this._onRenderTitle)\n                    : onRenderPlaceholder(props, this._onRenderPlaceholder)),\n                React.createElement(\"span\", { className: this._classNames.caretDownWrapper }, onRenderCaretDown(props, this._onRenderCaretDown))),\n            isOpen &&\n                onRenderContainer(__assign(__assign({}, props), { onDismiss: this._onDismiss, onRenderItem: onRenderItem }), this._onRenderContainer),\n            hasErrorMessage && (React.createElement(\"div\", { role: \"alert\", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage))));\n    };\n    DropdownInternal.prototype.focus = function (shouldOpenOnFocus) {\n        if (this._dropDown.current) {\n            this._dropDown.current.focus();\n            if (shouldOpenOnFocus) {\n                this.setState({\n                    isOpen: true,\n                });\n            }\n        }\n    };\n    DropdownInternal.prototype.setSelectedIndex = function (event, index) {\n        var _a = this.props, options = _a.options, selectedKey = _a.selectedKey, selectedKeys = _a.selectedKeys, multiSelect = _a.multiSelect, notifyOnReselect = _a.notifyOnReselect, _b = _a.hoisted.selectedIndices, selectedIndices = _b === void 0 ? [] : _b;\n        var checked = selectedIndices ? selectedIndices.indexOf(index) > -1 : false;\n        var newIndexes = [];\n        index = Math.max(0, Math.min(options.length - 1, index));\n        // If this is a controlled component then no state change should take place.\n        if (selectedKey !== undefined || selectedKeys !== undefined) {\n            this._onChange(event, options, index, checked, multiSelect);\n            return;\n        }\n        if (!multiSelect && !notifyOnReselect && index === selectedIndices[0]) {\n            return;\n        }\n        else if (multiSelect) {\n            newIndexes = selectedIndices ? this._copyArray(selectedIndices) : [];\n            if (checked) {\n                var position = newIndexes.indexOf(index);\n                if (position > -1) {\n                    // unchecked the current one\n                    newIndexes.splice(position, 1);\n                }\n            }\n            else {\n                // add the new selected index into the existing one\n                newIndexes.push(index);\n            }\n        }\n        else {\n            // Set the selected option if this is an uncontrolled component\n            newIndexes = [index];\n        }\n        event.persist();\n        // Call onChange after state is updated\n        this.props.hoisted.setSelectedIndices(newIndexes);\n        this._onChange(event, options, index, checked, multiSelect);\n    };\n    DropdownInternal.prototype._copyArray = function (array) {\n        var newArray = [];\n        for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {\n            var element = array_1[_i];\n            newArray.push(element);\n        }\n        return newArray;\n    };\n    /**\n     * Finds the next valid Dropdown option and sets the selected index to it.\n     * @param stepValue - Value of how many items the function should traverse.  Should be -1 or 1.\n     * @param index - Index of where the search should start\n     * @param selectedIndex - The selectedIndex Dropdown's state\n     * @returns The next valid dropdown option's index\n     */\n    DropdownInternal.prototype._moveIndex = function (event, stepValue, index, selectedIndex) {\n        var options = this.props.options;\n        // Return selectedIndex if nothing has changed or options is empty\n        if (selectedIndex === index || options.length === 0) {\n            return selectedIndex;\n        }\n        // If the user is pressing the up or down key we want to make\n        // sure that the dropdown cycles through the options without\n        // causing the screen to scroll. In _onDropdownKeyDown\n        // at the very end is a check to see if newIndex !== selectedIndex.\n        // If the index is less than 0 and we set it back to 0, then\n        // newIndex will equal selectedIndex and not stop the action\n        // of the key press happening and vice versa for indexes greater\n        // than or equal to the options length.\n        if (index >= options.length) {\n            index = 0;\n        }\n        else if (index < 0) {\n            index = options.length - 1;\n        }\n        var stepCounter = 0;\n        // If current index is a header or divider, or disabled, increment by step\n        while (options[index].itemType === DropdownMenuItemType.Header ||\n            options[index].itemType === DropdownMenuItemType.Divider ||\n            options[index].disabled) {\n            // If stepCounter exceeds length of options, then return selectedIndex (-1)\n            if (stepCounter >= options.length) {\n                return selectedIndex;\n            }\n            // If index + stepValue is out of bounds, wrap around\n            if (index + stepValue < 0) {\n                index = options.length;\n            }\n            else if (index + stepValue >= options.length) {\n                index = -1;\n            }\n            index = index + stepValue;\n            stepCounter++;\n        }\n        this.setSelectedIndex(event, index);\n        return index;\n    };\n    /** Wrap item list in a FocusZone */\n    DropdownInternal.prototype._renderFocusableList = function (props) {\n        var _a = props.onRenderList, onRenderList = _a === void 0 ? this._onRenderList : _a, label = props.label, ariaLabel = props.ariaLabel, multiSelect = props.multiSelect;\n        return (React.createElement(\"div\", { className: this._classNames.dropdownItemsWrapper, onKeyDown: this._onZoneKeyDown, onKeyUp: this._onZoneKeyUp, ref: this._host, tabIndex: 0 },\n            React.createElement(FocusZone, { ref: this._focusZone, direction: FocusZoneDirection.vertical, id: this._listId, className: this._classNames.dropdownItems, role: \"listbox\", \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? this._labelId : undefined, \"aria-multiselectable\": multiSelect }, onRenderList(props, this._onRenderList))));\n    };\n    DropdownInternal.prototype._renderSeparator = function (item) {\n        var index = item.index, key = item.key;\n        var separatorClassName = item.hidden ? this._classNames.dropdownDividerHidden : this._classNames.dropdownDivider;\n        if (index > 0) {\n            return React.createElement(\"div\", { role: \"presentation\", key: key, className: separatorClassName });\n        }\n        return null;\n    };\n    DropdownInternal.prototype._renderHeader = function (item) {\n        var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOption : _a;\n        var key = item.key, id = item.id;\n        var headerClassName = item.hidden\n            ? this._classNames.dropdownItemHeaderHidden\n            : this._classNames.dropdownItemHeader;\n        return (React.createElement(\"div\", { id: id, key: key, className: headerClassName }, onRenderOption(item, this._onRenderOption)));\n    };\n    DropdownInternal.prototype._onItemMouseEnter = function (item, ev) {\n        if (this._shouldIgnoreMouseEvent()) {\n            return;\n        }\n        var targetElement = ev.currentTarget;\n        targetElement.focus();\n    };\n    DropdownInternal.prototype._onItemMouseMove = function (item, ev) {\n        var doc = getDocumentEx(this.context); // can only be called on the client\n        var targetElement = ev.currentTarget;\n        this._gotMouseMove = true;\n        if (!this._isScrollIdle || doc.activeElement === targetElement) {\n            return;\n        }\n        targetElement.focus();\n    };\n    DropdownInternal.prototype._shouldIgnoreMouseEvent = function () {\n        return !this._isScrollIdle || !this._gotMouseMove;\n    };\n    /**\n     * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n     */\n    DropdownInternal.prototype._isAltOrMeta = function (ev) {\n        // eslint-disable-next-line deprecation/deprecation\n        return ev.which === KeyCodes.alt || ev.key === 'Meta';\n    };\n    /**\n     * We close the menu on key up only if ALL of the following are true:\n     * - Most recent key down was alt or meta (command)\n     * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n     *   expand/collapse the menu)\n     * - We're not on a Mac (or iOS)\n     *\n     * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n     * closing any open context menus. There is not a similar behavior on Macs.\n     */\n    DropdownInternal.prototype._shouldHandleKeyUp = function (ev) {\n        var keyPressIsAltOrMetaAlone = this._lastKeyDownWasAltOrMeta && this._isAltOrMeta(ev);\n        this._lastKeyDownWasAltOrMeta = false;\n        return !!keyPressIsAltOrMetaAlone && !(isMac() || isIOS());\n    };\n    /**\n     * Returns true if dropdown should set to open on focus.\n     * Otherwise, isOpen state should be toggled on click\n     */\n    DropdownInternal.prototype._shouldOpenOnFocus = function () {\n        var hasFocus = this.state.hasFocus;\n        var openOnKeyboardFocus = this.props.openOnKeyboardFocus;\n        return !this._isFocusedByClick && openOnKeyboardFocus === true && !hasFocus;\n    };\n    DropdownInternal.defaultProps = {\n        options: [],\n    };\n    DropdownInternal.contextType = WindowContext;\n    return DropdownInternal;\n}(React.Component));\n//# sourceMappingURL=Dropdown.base.js.map","var _a, _b, _c, _d, _e;\nimport { __assign, __spreadArray } from \"tslib\";\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { RectangleEdge } from '../../Positioning';\nimport { FontWeights, HighContrastSelector, getGlobalClassNames, normalize, HighContrastSelectorWhite, getScreenSelector, ScreenWidthMinMedium, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-Dropdown-container',\n    label: 'ms-Dropdown-label',\n    dropdown: 'ms-Dropdown',\n    title: 'ms-Dropdown-title',\n    caretDownWrapper: 'ms-Dropdown-caretDownWrapper',\n    caretDown: 'ms-Dropdown-caretDown',\n    callout: 'ms-Dropdown-callout',\n    panel: 'ms-Dropdown-panel',\n    dropdownItems: 'ms-Dropdown-items',\n    dropdownItem: 'ms-Dropdown-item',\n    dropdownDivider: 'ms-Dropdown-divider',\n    dropdownOptionText: 'ms-Dropdown-optionText',\n    dropdownItemHeader: 'ms-Dropdown-header',\n    titleIsPlaceHolder: 'ms-Dropdown-titleIsPlaceHolder',\n    titleHasError: 'ms-Dropdown-title--hasError',\n};\nvar DROPDOWN_HEIGHT = 32;\nvar DROPDOWN_ITEM_HEIGHT = 36;\nvar highContrastAdjustMixin = (_a = {},\n    _a[\"\".concat(HighContrastSelector, \", \").concat(HighContrastSelectorWhite.replace('@media ', ''))] = __assign({}, getHighContrastNoAdjustStyle()),\n    _a);\nvar highContrastItemAndTitleStateMixin = {\n    selectors: __assign((_b = {}, _b[HighContrastSelector] = (_c = {\n            backgroundColor: 'Highlight',\n            borderColor: 'Highlight',\n            color: 'HighlightText'\n        },\n        _c[\".\".concat(IsFocusVisibleClassName, \" &:focus:after\")] = {\n            borderColor: 'HighlightText',\n        },\n        _c), _b['.ms-Checkbox-checkbox'] = (_d = {},\n        _d[HighContrastSelector] = {\n            borderColor: 'HighlightText',\n        },\n        _d), _b), highContrastAdjustMixin),\n};\nvar highContrastBorderState = {\n    selectors: (_e = {},\n        _e[HighContrastSelector] = {\n            borderColor: 'Highlight',\n        },\n        _e),\n};\nvar MinimumScreenSelector = getScreenSelector(0, ScreenWidthMinMedium);\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n    var theme = props.theme, hasError = props.hasError, hasLabel = props.hasLabel, className = props.className, isOpen = props.isOpen, disabled = props.disabled, required = props.required, isRenderingPlaceholder = props.isRenderingPlaceholder, panelClassName = props.panelClassName, calloutClassName = props.calloutClassName, calloutRenderEdge = props.calloutRenderEdge;\n    if (!theme) {\n        throw new Error('theme is undefined or null in base Dropdown getStyles function.');\n    }\n    var globalClassnames = getGlobalClassNames(GlobalClassNames, theme);\n    var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n    var rootHoverFocusActiveSelectorNeutralDarkMixin = {\n        color: semanticColors.menuItemTextHovered,\n    };\n    var rootHoverFocusActiveSelectorNeutralPrimaryMixin = {\n        color: semanticColors.menuItemText,\n    };\n    var borderColorError = {\n        borderColor: semanticColors.errorText,\n    };\n    var dropdownItemStyle = [\n        globalClassnames.dropdownItem,\n        {\n            backgroundColor: 'transparent',\n            boxSizing: 'border-box',\n            cursor: 'pointer',\n            display: 'flex',\n            alignItems: 'center',\n            padding: '0 8px',\n            width: '100%',\n            minHeight: DROPDOWN_ITEM_HEIGHT,\n            lineHeight: 20,\n            height: 0,\n            position: 'relative',\n            border: '1px solid transparent',\n            borderRadius: 0,\n            wordWrap: 'break-word',\n            overflowWrap: 'break-word',\n            textAlign: 'left',\n            '.ms-Button-flexContainer': {\n                width: '100%',\n            },\n        },\n    ];\n    var dropdownHeaderStyle = [\n        globalClassnames.dropdownItemHeader,\n        __assign(__assign({}, fonts.medium), { fontWeight: FontWeights.semibold, color: semanticColors.menuHeader, background: 'none', backgroundColor: 'transparent', border: 'none', height: DROPDOWN_ITEM_HEIGHT, lineHeight: DROPDOWN_ITEM_HEIGHT, cursor: 'default', padding: '0 8px', userSelect: 'none', textAlign: 'left', selectors: (_a = {},\n                _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                _a) }),\n    ];\n    var selectedItemBackgroundColor = semanticColors.menuItemBackgroundPressed;\n    var itemSelectors = function (isSelected) {\n        var _a, _b;\n        if (isSelected === void 0) { isSelected = false; }\n        return {\n            selectors: (_a = {\n                    '&:hover': [\n                        {\n                            color: semanticColors.menuItemTextHovered,\n                            backgroundColor: !isSelected ? semanticColors.menuItemBackgroundHovered : selectedItemBackgroundColor,\n                        },\n                        highContrastItemAndTitleStateMixin,\n                    ],\n                    '&.is-multi-select:hover': [\n                        { backgroundColor: !isSelected ? 'transparent' : selectedItemBackgroundColor },\n                        highContrastItemAndTitleStateMixin,\n                    ],\n                    '&:active:hover': [\n                        {\n                            color: semanticColors.menuItemTextHovered,\n                            backgroundColor: !isSelected\n                                ? semanticColors.menuItemBackgroundPressed\n                                : semanticColors.menuItemBackgroundHovered,\n                        },\n                        highContrastItemAndTitleStateMixin,\n                    ]\n                },\n                _a[\".\".concat(IsFocusVisibleClassName, \" &:focus:after, :host(.\").concat(IsFocusVisibleClassName, \") &:focus:after\")] = (_b = {\n                        left: 0,\n                        top: 0,\n                        bottom: 0,\n                        right: 0\n                    },\n                    _b[HighContrastSelector] = {\n                        inset: '2px',\n                    },\n                    _b),\n                _a[HighContrastSelector] = {\n                    border: 'none',\n                },\n                _a),\n        };\n    };\n    var dropdownItemSelected = __spreadArray(__spreadArray([], dropdownItemStyle, true), [\n        {\n            backgroundColor: selectedItemBackgroundColor,\n            color: semanticColors.menuItemTextHovered,\n        },\n        itemSelectors(true),\n        highContrastItemAndTitleStateMixin,\n    ], false);\n    var dropdownItemDisabled = __spreadArray(__spreadArray([], dropdownItemStyle, true), [\n        {\n            color: semanticColors.disabledText,\n            cursor: 'default',\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    color: 'GrayText',\n                    border: 'none',\n                },\n                _b),\n        },\n    ], false);\n    var titleOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n        ? \"\".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2, \" 0 0\")\n        : \"0 0 \".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2);\n    var calloutOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n        ? \"0 0 \".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2)\n        : \"\".concat(effects.roundedCorner2, \" \").concat(effects.roundedCorner2, \" 0 0\");\n    return {\n        root: [globalClassnames.root, className],\n        label: globalClassnames.label,\n        dropdown: [\n            globalClassnames.dropdown,\n            normalize,\n            fonts.medium,\n            {\n                color: semanticColors.menuItemText,\n                borderColor: semanticColors.focusBorder,\n                position: 'relative',\n                outline: 0,\n                userSelect: 'none',\n                selectors: (_c = {},\n                    _c['&:hover .' + globalClassnames.title] = [\n                        !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n                        { borderColor: isOpen ? palette.neutralSecondary : palette.neutralPrimary },\n                        highContrastBorderState,\n                    ],\n                    _c['&:focus .' + globalClassnames.title] = [\n                        !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n                        { selectors: (_d = {}, _d[HighContrastSelector] = { color: 'Highlight' }, _d) },\n                    ],\n                    _c['&:focus:after'] = [\n                        {\n                            pointerEvents: 'none',\n                            content: \"''\",\n                            position: 'absolute',\n                            boxSizing: 'border-box',\n                            top: '0px',\n                            left: '0px',\n                            width: '100%',\n                            height: '100%',\n                            // see https://github.com/microsoft/fluentui/pull/9182 for semantic color disc\n                            border: !disabled ? \"2px solid \".concat(palette.themePrimary) : 'none',\n                            borderRadius: '2px',\n                            selectors: (_e = {},\n                                _e[HighContrastSelector] = {\n                                    color: 'Highlight',\n                                },\n                                _e),\n                        },\n                    ],\n                    _c['&:active .' + globalClassnames.title] = [\n                        !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n                        { borderColor: palette.themePrimary },\n                        highContrastBorderState,\n                    ],\n                    _c['&:hover .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:focus .' + globalClassnames.caretDown] = [\n                        !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                        { selectors: (_f = {}, _f[HighContrastSelector] = { color: 'Highlight' }, _f) },\n                    ],\n                    _c['&:active .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:hover .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:focus .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:active .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n                    _c['&:hover .' + globalClassnames.titleHasError] = borderColorError,\n                    _c['&:active .' + globalClassnames.titleHasError] = borderColorError,\n                    _c),\n            },\n            isOpen && 'is-open',\n            disabled && 'is-disabled',\n            required && 'is-required',\n            required &&\n                !hasLabel && {\n                selectors: (_g = {\n                        ':before': {\n                            content: \"'*'\",\n                            color: semanticColors.errorText,\n                            position: 'absolute',\n                            top: -5,\n                            right: -10,\n                        }\n                    },\n                    _g[HighContrastSelector] = {\n                        selectors: {\n                            ':after': {\n                                right: -14, // moving the * 4 pixel to right to alleviate border clipping in HC mode.\n                            },\n                        },\n                    },\n                    _g),\n            },\n        ],\n        title: [\n            globalClassnames.title,\n            normalize,\n            {\n                backgroundColor: semanticColors.inputBackground,\n                borderWidth: 1,\n                borderStyle: 'solid',\n                borderColor: semanticColors.inputBorder,\n                borderRadius: isOpen ? titleOpenBorderRadius : effects.roundedCorner2,\n                cursor: 'pointer',\n                display: 'block',\n                height: DROPDOWN_HEIGHT,\n                lineHeight: DROPDOWN_HEIGHT - 2,\n                padding: \"0 28px 0 8px\",\n                position: 'relative',\n                overflow: 'hidden',\n                whiteSpace: 'nowrap',\n                textOverflow: 'ellipsis',\n            },\n            isRenderingPlaceholder && [globalClassnames.titleIsPlaceHolder, { color: semanticColors.inputPlaceholderText }],\n            hasError && [globalClassnames.titleHasError, borderColorError],\n            disabled && {\n                backgroundColor: semanticColors.disabledBackground,\n                border: 'none',\n                color: semanticColors.disabledText,\n                cursor: 'default',\n                selectors: (_h = {},\n                    _h[HighContrastSelector] = __assign({ border: '1px solid GrayText', color: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n                    _h),\n            },\n        ],\n        caretDownWrapper: [\n            globalClassnames.caretDownWrapper,\n            {\n                height: DROPDOWN_HEIGHT,\n                lineHeight: DROPDOWN_HEIGHT - 2,\n                paddingTop: 1,\n                position: 'absolute',\n                right: 8,\n                top: 0,\n            },\n            !disabled && {\n                cursor: 'pointer',\n            },\n        ],\n        caretDown: [\n            globalClassnames.caretDown,\n            { color: palette.neutralSecondary, fontSize: fonts.small.fontSize, pointerEvents: 'none' },\n            disabled && {\n                color: semanticColors.disabledText,\n                selectors: (_j = {},\n                    _j[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                    _j),\n            },\n        ],\n        errorMessage: __assign(__assign({ color: semanticColors.errorText }, theme.fonts.small), { paddingTop: 5 }),\n        callout: [\n            globalClassnames.callout,\n            {\n                boxShadow: effects.elevation8,\n                borderRadius: calloutOpenBorderRadius,\n                selectors: (_k = {},\n                    _k['.ms-Callout-main'] = { borderRadius: calloutOpenBorderRadius },\n                    _k),\n            },\n            calloutClassName,\n        ],\n        dropdownItemsWrapper: { selectors: { '&:focus': { outline: 0 } } },\n        dropdownItems: [globalClassnames.dropdownItems, { display: 'block' }],\n        dropdownItem: __spreadArray(__spreadArray([], dropdownItemStyle, true), [itemSelectors()], false),\n        dropdownItemSelected: dropdownItemSelected,\n        dropdownItemDisabled: dropdownItemDisabled,\n        dropdownItemSelectedAndDisabled: [dropdownItemSelected, dropdownItemDisabled, { backgroundColor: 'transparent' }],\n        dropdownItemHidden: __spreadArray(__spreadArray([], dropdownItemStyle, true), [{ display: 'none' }], false),\n        dropdownDivider: [globalClassnames.dropdownDivider, { height: 1, backgroundColor: semanticColors.bodyDivider }],\n        dropdownDividerHidden: [globalClassnames.dropdownDivider, { display: 'none' }],\n        dropdownOptionText: [\n            globalClassnames.dropdownOptionText,\n            {\n                overflow: 'hidden',\n                whiteSpace: 'nowrap',\n                textOverflow: 'ellipsis',\n                minWidth: 0,\n                maxWidth: '100%',\n                wordWrap: 'break-word',\n                overflowWrap: 'break-word',\n                margin: '1px',\n            },\n        ],\n        dropdownItemHeader: dropdownHeaderStyle,\n        dropdownItemHeaderHidden: __spreadArray(__spreadArray([], dropdownHeaderStyle, true), [{ display: 'none' }], false),\n        subComponentStyles: {\n            label: { root: { display: 'inline-block' } },\n            multiSelectItem: {\n                root: {\n                    padding: 0,\n                },\n                label: {\n                    alignSelf: 'stretch',\n                    padding: '0 8px',\n                    width: '100%',\n                },\n                input: {\n                    selectors: (_l = {},\n                        // eslint-disable-next-line @fluentui/max-len\n                        _l[\".\".concat(IsFocusVisibleClassName, \" &:focus + label::before, :host(.\").concat(IsFocusVisibleClassName, \") &:focus + label::before\")] = {\n                            outlineOffset: '0px',\n                        },\n                        _l),\n                },\n            },\n            panel: {\n                root: [panelClassName],\n                main: {\n                    selectors: (_m = {},\n                        // In case of extra small screen sizes\n                        _m[MinimumScreenSelector] = {\n                            // panelWidth xs\n                            width: 272,\n                        },\n                        _m),\n                },\n                contentInner: { padding: '0 0 20px' },\n            },\n        },\n    };\n};\n//# sourceMappingURL=Dropdown.styles.js.map","import { extendComponent } from './extendComponent';\n/**\n * Generates a function to be attached to a React component, which can be called\n * as a replacement to RAF. In-flight async calls will be auto canceled if the component\n * is unmounting before the async code is executed, preventing bugs where code\n * accesses things within the component after being unmounted.\n */\nexport var safeRequestAnimationFrame = function (component) {\n    var activeTimeouts;\n    return function (cb) {\n        if (!activeTimeouts) {\n            activeTimeouts = new Set();\n            extendComponent(component, {\n                componentWillUnmount: function () {\n                    activeTimeouts.forEach(function (id) { return cancelAnimationFrame(id); });\n                },\n            });\n        }\n        var timeoutId = requestAnimationFrame(function () {\n            activeTimeouts.delete(timeoutId);\n            cb();\n        });\n        activeTimeouts.add(timeoutId);\n    };\n};\n//# sourceMappingURL=safeRequestAnimationFrame.js.map","import { styled } from '../../Utilities';\nimport { DropdownBase } from './Dropdown.base';\nimport { getStyles } from './Dropdown.styles';\nexport var Dropdown = styled(DropdownBase, getStyles, undefined, {\n    scope: 'Dropdown',\n});\nDropdown.displayName = 'Dropdown';\n//# sourceMappingURL=Dropdown.js.map","import { Dropdown } from \"@fluentui/react\";\nimport * as React from \"react\";\nexport const SwitchAccount = ({ accounts, setSelectedAccountName, selectedAccount, dismissMenu, }) => {\n    return (React.createElement(Dropdown, { label: \"Cosmos DB Account Name\", className: \"accountSwitchAccountDropdown\", options: accounts === null || accounts === void 0 ? void 0 : accounts.map((account) => ({\n            key: account.name,\n            text: account.name,\n            data: account,\n        })), onChange: (_, option) => {\n            setSelectedAccountName(String(option === null || option === void 0 ? void 0 : option.key));\n            dismissMenu();\n        }, defaultSelectedKey: selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.name, placeholder: accounts && accounts.length === 0 ? \"No Accounts Found\" : \"Select an Account\", styles: {\n            callout: \"accountSwitchAccountDropdownMenu\",\n        } }));\n};\n","import { Dropdown } from \"@fluentui/react\";\nimport * as React from \"react\";\nexport const SwitchSubscription = ({ subscriptions, setSelectedSubscriptionId, selectedSubscription, }) => {\n    return (React.createElement(Dropdown, { label: \"Subscription\", className: \"accountSwitchSubscriptionDropdown\", options: subscriptions === null || subscriptions === void 0 ? void 0 : subscriptions.map((sub) => {\n            return {\n                key: sub.subscriptionId,\n                text: sub.displayName,\n                data: sub,\n            };\n        }), onChange: (_, option) => {\n            setSelectedSubscriptionId(String(option === null || option === void 0 ? void 0 : option.key));\n        }, defaultSelectedKey: selectedSubscription === null || selectedSubscription === void 0 ? void 0 : selectedSubscription.subscriptionId, placeholder: subscriptions && subscriptions.length === 0 ? \"No Subscriptions Found\" : \"Select a Subscription\", styles: {\n            callout: \"accountSwitchSubscriptionDropdownMenu\",\n        } }));\n};\n","// TODO: Renable this rule for the file or turn it off everywhere\n/* eslint-disable react/display-name */\nimport { DefaultButton } from \"@fluentui/react\";\nimport * as React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { StyleConstants } from \"../../../Common/StyleConstants\";\nimport { useDatabaseAccounts } from \"../../../hooks/useDatabaseAccounts\";\nimport { useSubscriptions } from \"../../../hooks/useSubscriptions\";\nimport { SwitchAccount } from \"./SwitchAccount\";\nimport { SwitchSubscription } from \"./SwitchSubscription\";\nconst buttonStyles = {\n    root: {\n        fontSize: StyleConstants.DefaultFontSize,\n        height: 40,\n        padding: 0,\n        paddingLeft: 10,\n        marginRight: 5,\n        backgroundColor: StyleConstants.BaseDark,\n        color: StyleConstants.BaseLight,\n    },\n    rootHovered: {\n        backgroundColor: StyleConstants.BaseHigh,\n        color: StyleConstants.BaseLight,\n    },\n    rootFocused: {\n        backgroundColor: StyleConstants.BaseHigh,\n        color: StyleConstants.BaseLight,\n    },\n    rootPressed: {\n        backgroundColor: StyleConstants.BaseHigh,\n        color: StyleConstants.BaseLight,\n    },\n    rootExpanded: {\n        backgroundColor: StyleConstants.BaseHigh,\n        color: StyleConstants.BaseLight,\n    },\n    textContainer: {\n        flexGrow: \"initial\",\n    },\n};\nexport const AccountSwitcher = ({ armToken, setDatabaseAccount }) => {\n    const subscriptions = useSubscriptions(armToken);\n    const [selectedSubscriptionId, setSelectedSubscriptionId] = useState(() => localStorage.getItem(\"cachedSubscriptionId\"));\n    const selectedSubscription = subscriptions === null || subscriptions === void 0 ? void 0 : subscriptions.find((sub) => sub.subscriptionId === selectedSubscriptionId);\n    const accounts = useDatabaseAccounts(selectedSubscription === null || selectedSubscription === void 0 ? void 0 : selectedSubscription.subscriptionId, armToken);\n    const [selectedAccountName, setSelectedAccountName] = useState(() => localStorage.getItem(\"cachedDatabaseAccountName\"));\n    const selectedAccount = accounts === null || accounts === void 0 ? void 0 : accounts.find((account) => account.name === selectedAccountName);\n    useEffect(() => {\n        if (selectedAccountName) {\n            localStorage.setItem(\"cachedDatabaseAccountName\", selectedAccountName);\n        }\n    }, [selectedAccountName]);\n    useEffect(() => {\n        if (selectedSubscriptionId) {\n            localStorage.setItem(\"cachedSubscriptionId\", selectedSubscriptionId);\n        }\n    }, [selectedSubscriptionId]);\n    useEffect(() => {\n        if (selectedAccount) {\n            setDatabaseAccount(selectedAccount);\n        }\n    }, [selectedAccount]);\n    const buttonText = (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.name) || \"Select a Database Account\";\n    const items = [\n        {\n            key: \"switchSubscription\",\n            onRender: () => React.createElement(SwitchSubscription, Object.assign({}, { subscriptions, setSelectedSubscriptionId, selectedSubscription })),\n        },\n        {\n            key: \"switchAccount\",\n            onRender: (_, dismissMenu) => (React.createElement(SwitchAccount, Object.assign({}, { accounts, dismissMenu, selectedAccount, setSelectedAccountName }))),\n        },\n    ];\n    return (React.createElement(DefaultButton, { text: buttonText, menuProps: {\n            directionalHintFixed: true,\n            className: \"accountSwitchContextualMenu\",\n            items,\n        }, styles: buttonStyles, className: \"accountSwitchButton\", id: \"accountSwitchButton\" }));\n};\n","import { useBoolean } from \"@fluentui/react-hooks\";\nimport { userContext } from \"UserContext\";\nimport * as React from \"react\";\nimport ConnectImage from \"../../../../images/HdeConnectCosmosDB.svg\";\nimport ErrorImage from \"../../../../images/error.svg\";\nimport { AuthType } from \"../../../AuthType\";\nimport { HttpHeaders } from \"../../../Common/Constants\";\nimport { configContext } from \"../../../ConfigContext\";\nimport { isResourceTokenConnectionString } from \"../Helpers/ResourceTokenUtils\";\nexport const fetchEncryptedToken = async (connectionString) => {\n    const headers = new Headers();\n    headers.append(HttpHeaders.connectionString, connectionString);\n    const url = configContext.PORTAL_BACKEND_ENDPOINT + \"/api/connectionstring/token/generatetoken\";\n    const response = await fetch(url, { headers, method: \"POST\" });\n    if (!response.ok) {\n        throw response;\n    }\n    const encryptedTokenResponse = await response.json();\n    return decodeURIComponent(encryptedTokenResponse);\n};\nexport const isAccountRestrictedForConnectionStringLogin = async (connectionString) => {\n    const headers = new Headers();\n    headers.append(HttpHeaders.connectionString, connectionString);\n    const url = configContext.PORTAL_BACKEND_ENDPOINT + \"/api/guest/accountrestrictions/checkconnectionstringlogin\";\n    const response = await fetch(url, { headers, method: \"POST\" });\n    if (!response.ok) {\n        throw response;\n    }\n    return (await response.text()).toLowerCase() === \"true\";\n};\nexport const ConnectExplorer = ({ setEncryptedToken, login, setAuthType, connectionString, setConnectionString, }) => {\n    const [isFormVisible, { setTrue: showForm }] = useBoolean(false);\n    const [errorMessage, setErrorMessage] = React.useState(\"\");\n    const enableConnectionStringLogin = !userContext.features.disableConnectionStringLogin;\n    return (React.createElement(\"div\", { id: \"connectExplorer\", className: \"connectExplorerContainer\", style: { display: \"flex\" } },\n        React.createElement(\"div\", { className: \"connectExplorerFormContainer\" },\n            React.createElement(\"div\", { className: \"connectExplorer\" },\n                React.createElement(\"p\", { className: \"connectExplorerContent\" },\n                    React.createElement(\"img\", { src: ConnectImage, alt: \"Azure Cosmos DB\" })),\n                React.createElement(\"p\", { className: \"welcomeText\" }, \"Welcome to Azure Cosmos DB\"),\n                isFormVisible && enableConnectionStringLogin ? (React.createElement(\"form\", { id: \"connectWithConnectionString\", onSubmit: async (event) => {\n                        event.preventDefault();\n                        setErrorMessage(\"\");\n                        if (await isAccountRestrictedForConnectionStringLogin(connectionString)) {\n                            setErrorMessage(\"This account has been blocked from connection-string login. Please go to cosmos.azure.com/aad for AAD based login.\");\n                            return;\n                        }\n                        if (isResourceTokenConnectionString(connectionString)) {\n                            setAuthType(AuthType.ResourceToken);\n                            return;\n                        }\n                        const encryptedToken = await fetchEncryptedToken(connectionString);\n                        setEncryptedToken(encryptedToken);\n                        setAuthType(AuthType.ConnectionString);\n                    } },\n                    React.createElement(\"p\", { className: \"connectExplorerContent connectStringText\" }, \"Connect to your account with connection string\"),\n                    React.createElement(\"p\", { className: \"connectExplorerContent\" },\n                        React.createElement(\"input\", { className: \"inputToken\", type: \"text\", required: true, placeholder: \"Please enter a connection string\", value: connectionString, onChange: (event) => {\n                                setConnectionString(event.target.value);\n                            } }),\n                        errorMessage.length > 0 && (React.createElement(\"span\", { className: \"errorDetailsInfoTooltip\" },\n                            React.createElement(\"img\", { className: \"errorImg\", src: ErrorImage, alt: \"Error notification\" }),\n                            React.createElement(\"span\", { className: \"errorDetails\" }, errorMessage)))),\n                    React.createElement(\"p\", { className: \"connectExplorerContent\" },\n                        React.createElement(\"input\", { className: \"filterbtnstyle\", type: \"submit\", value: \"Connect\" })),\n                    React.createElement(\"p\", { className: \"switchConnectTypeText\", onClick: login }, \"Sign In with Azure Account\"))) : (React.createElement(\"div\", { id: \"connectWithAad\" },\n                    React.createElement(\"input\", { className: \"filterbtnstyle\", type: \"button\", value: \"Sign In\", onClick: login }),\n                    enableConnectionStringLogin && (React.createElement(\"p\", { className: \"switchConnectTypeText\", \"data-test\": \"Link:SwitchConnectionType\", onClick: showForm }, \"Connect to your account with connection string\"))))))));\n};\n","export function parseResourceTokenConnectionString(connectionString) {\n    let accountEndpoint;\n    let collectionId;\n    let databaseId;\n    let partitionKey;\n    let resourceToken;\n    const connectionStringParts = connectionString.split(\";\");\n    connectionStringParts.forEach((part) => {\n        if (part.startsWith(\"type=resource\")) {\n            resourceToken = part + \";\";\n        }\n        else if (part.startsWith(\"AccountEndpoint=\")) {\n            accountEndpoint = part.substring(16);\n        }\n        else if (part.startsWith(\"DatabaseId=\")) {\n            databaseId = part.substring(11);\n        }\n        else if (part.startsWith(\"CollectionId=\")) {\n            collectionId = part.substring(13);\n        }\n        else if (part.startsWith(\"PartitionKey=\")) {\n            partitionKey = part.substring(13);\n        }\n        else if (part !== \"\") {\n            resourceToken += part + \";\";\n        }\n    });\n    if (resourceToken && resourceToken.endsWith(\";\")) {\n        resourceToken = resourceToken.substring(0, resourceToken.length - 1);\n    }\n    return {\n        accountEndpoint,\n        collectionId,\n        databaseId,\n        partitionKey,\n        resourceToken,\n    };\n}\nexport function isResourceTokenConnectionString(connectionString) {\n    return !!connectionString && connectionString.includes(\"type=resource\");\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../../../Image';\nimport { Icon } from '../../../Icon';\nimport { classNamesFunction, getNativeProps, inputProperties, css, composeRenderFunction, getPropsWithDefaults, } from '../../../Utilities';\nvar getClassNames = classNamesFunction();\nvar LARGE_IMAGE_SIZE = 71;\nvar DEFAULT_PROPS = {\n    // This ensures default imageSize value doesn't mutate. Mutation can cause style re-calcuation.\n    imageSize: { width: 32, height: 32 },\n};\nexport var ChoiceGroupOptionBase = function (propsWithoutDefaults) {\n    // Mix the `key` prop back in since custom render functions may be expecting it\n    // (React uses `key` internally rather than passing it through to the component)\n    var props = getPropsWithDefaults(__assign(__assign({}, DEFAULT_PROPS), { key: propsWithoutDefaults.itemKey }), propsWithoutDefaults);\n    var ariaLabel = props.ariaLabel, focused = props.focused, required = props.required, theme = props.theme, iconProps = props.iconProps, imageSrc = props.imageSrc, imageSize = props.imageSize, disabled = props.disabled, checked = props.checked, id = props.id, styles = props.styles, name = props.name, rest = __rest(props, [\"ariaLabel\", \"focused\", \"required\", \"theme\", \"iconProps\", \"imageSrc\", \"imageSize\", \"disabled\", \"checked\", \"id\", \"styles\", \"name\"]);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        hasIcon: !!iconProps,\n        hasImage: !!imageSrc,\n        checked: checked,\n        disabled: disabled,\n        imageIsLarge: !!imageSrc && (imageSize.width > LARGE_IMAGE_SIZE || imageSize.height > LARGE_IMAGE_SIZE),\n        imageSize: imageSize,\n        focused: focused,\n    });\n    var _a = getNativeProps(rest, inputProperties), className = _a.className, nativeProps = __rest(_a, [\"className\"]);\n    var defaultOnRenderLabel = function () {\n        return (React.createElement(\"span\", { id: props.labelId, className: \"ms-ChoiceFieldLabel\" }, props.text));\n    };\n    var defaultOnRenderField = function () {\n        var _a = props.imageAlt, imageAlt = _a === void 0 ? '' : _a, selectedImageSrc = props.selectedImageSrc;\n        var onRenderLabel = props.onRenderLabel\n            ? composeRenderFunction(props.onRenderLabel, defaultOnRenderLabel)\n            : defaultOnRenderLabel;\n        var label = onRenderLabel(__assign(__assign({}, props), { key: props.itemKey }));\n        return (React.createElement(\"label\", { htmlFor: id, className: classNames.field },\n            imageSrc && (React.createElement(\"div\", { className: classNames.innerField },\n                React.createElement(\"div\", { className: classNames.imageWrapper },\n                    React.createElement(Image, __assign({ src: imageSrc, alt: imageAlt }, imageSize))),\n                React.createElement(\"div\", { className: classNames.selectedImageWrapper },\n                    React.createElement(Image, __assign({ src: selectedImageSrc, alt: imageAlt }, imageSize))))),\n            iconProps && (React.createElement(\"div\", { className: classNames.innerField },\n                React.createElement(\"div\", { className: classNames.iconWrapper },\n                    React.createElement(Icon, __assign({}, iconProps))))),\n            imageSrc || iconProps ? React.createElement(\"div\", { className: classNames.labelWrapper }, label) : label));\n    };\n    var _b = props.onRenderField, onRenderField = _b === void 0 ? defaultOnRenderField : _b;\n    var onChange = function (evt) {\n        var _a;\n        (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, evt, __assign(__assign({}, props), { key: props.itemKey }));\n    };\n    var onBlur = function (evt) {\n        var _a;\n        (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, evt);\n    };\n    var onFocus = function (evt) {\n        var _a;\n        (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, evt, __assign(__assign({}, props), { key: props.itemKey }));\n    };\n    return (React.createElement(\"div\", { className: classNames.root },\n        React.createElement(\"div\", { className: classNames.choiceFieldWrapper },\n            React.createElement(\"input\", __assign({ \"aria-label\": ariaLabel, id: id, className: css(classNames.input, className), type: \"radio\", name: name, disabled: disabled, checked: checked, required: required }, nativeProps, { onChange: onChange, onFocus: onFocus, onBlur: onBlur })),\n            onRenderField(__assign(__assign({}, props), { key: props.itemKey }), defaultOnRenderField))));\n};\nChoiceGroupOptionBase.displayName = 'ChoiceGroupOption';\n//# sourceMappingURL=ChoiceGroupOption.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nvar GlobalClassNames = {\n    root: 'ms-ChoiceField',\n    choiceFieldWrapper: 'ms-ChoiceField-wrapper',\n    input: 'ms-ChoiceField-input',\n    field: 'ms-ChoiceField-field',\n    innerField: 'ms-ChoiceField-innerField',\n    imageWrapper: 'ms-ChoiceField-imageWrapper',\n    iconWrapper: 'ms-ChoiceField-iconWrapper',\n    labelWrapper: 'ms-ChoiceField-labelWrapper',\n    checked: 'is-checked',\n};\nvar labelWrapperLineHeight = 15;\nvar labelWrapperHeight = labelWrapperLineHeight * 2 + 2; // adding 2px height to ensure text doesn't get cutoff\nvar iconSize = 32;\nvar choiceFieldSize = 20;\nvar choiceFieldTransitionDuration = '200ms';\nvar choiceFieldTransitionTiming = 'cubic-bezier(.4, 0, .23, 1)';\nvar radioButtonSpacing = 3;\nvar radioButtonInnerSize = 5;\nfunction getChoiceGroupFocusStyle(focusBorderColor, hasIconOrImage) {\n    var _a, _b;\n    return [\n        'is-inFocus',\n        {\n            selectors: (_a = {},\n                _a[\".\".concat(IsFocusVisibleClassName, \" &, :host(.\").concat(IsFocusVisibleClassName, \") &\")] = {\n                    position: 'relative',\n                    outline: 'transparent',\n                    selectors: {\n                        '::-moz-focus-inner': {\n                            border: 0,\n                        },\n                        ':after': {\n                            content: '\"\"',\n                            top: -2,\n                            right: -2,\n                            bottom: -2,\n                            left: -2,\n                            pointerEvents: 'none',\n                            border: \"1px solid \".concat(focusBorderColor),\n                            position: 'absolute',\n                            selectors: (_b = {},\n                                _b[HighContrastSelector] = {\n                                    borderColor: 'WindowText',\n                                    borderWidth: hasIconOrImage ? 1 : 2,\n                                },\n                                _b),\n                        },\n                    },\n                },\n                _a),\n        },\n    ];\n}\nfunction getImageWrapperStyle(isSelectedImageWrapper, className, checked) {\n    return [\n        className,\n        {\n            paddingBottom: 2,\n            transitionProperty: 'opacity',\n            transitionDuration: choiceFieldTransitionDuration,\n            transitionTimingFunction: 'ease',\n            selectors: {\n                '.ms-Image': {\n                    display: 'inline-block',\n                    borderStyle: 'none',\n                },\n            },\n        },\n        (checked ? !isSelectedImageWrapper : isSelectedImageWrapper) && [\n            'is-hidden',\n            {\n                position: 'absolute',\n                left: 0,\n                top: 0,\n                width: '100%',\n                height: '100%',\n                overflow: 'hidden',\n                opacity: 0,\n            },\n        ],\n    ];\n}\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e;\n    var theme = props.theme, hasIcon = props.hasIcon, hasImage = props.hasImage, checked = props.checked, disabled = props.disabled, imageIsLarge = props.imageIsLarge, focused = props.focused, imageSize = props.imageSize;\n    var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    // Tokens\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n    var circleBorderColor = palette.neutralPrimary;\n    var circleHoveredBorderColor = semanticColors.inputBorderHovered;\n    var circleCheckedBorderColor = semanticColors.inputBackgroundChecked;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n    var circleCheckedHoveredBorderColor = palette.themeDark;\n    var circleDisabledBorderColor = semanticColors.disabledBodySubtext;\n    var circleBackgroundColor = semanticColors.bodyBackground;\n    var dotUncheckedHoveredColor = palette.neutralSecondary;\n    var dotCheckedColor = semanticColors.inputBackgroundChecked;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n    var dotCheckedHoveredColor = palette.themeDark;\n    var dotDisabledColor = semanticColors.disabledBodySubtext;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.bodyTextChecked\n    var labelHoverFocusColor = palette.neutralDark;\n    var focusBorderColor = semanticColors.focusBorder;\n    var iconOrImageChoiceBorderUncheckedHoveredColor = semanticColors.inputBorderHovered;\n    // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBackgroundCheckedHovered\n    var iconOrImageChoiceBorderCheckedColor = semanticColors.inputBackgroundChecked;\n    var iconOrImageChoiceBorderCheckedHoveredColor = palette.themeDark;\n    var iconOrImageChoiceBackgroundColor = palette.neutralLighter;\n    var fieldHoverOrFocusProperties = {\n        selectors: {\n            '.ms-ChoiceFieldLabel': {\n                color: labelHoverFocusColor,\n            },\n            ':before': {\n                borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n            },\n            ':after': [\n                !hasIcon &&\n                    !hasImage &&\n                    !checked && {\n                    content: '\"\"',\n                    transitionProperty: 'background-color',\n                    left: 5,\n                    top: 5,\n                    width: 10,\n                    height: 10,\n                    backgroundColor: dotUncheckedHoveredColor,\n                },\n                checked && {\n                    borderColor: dotCheckedHoveredColor,\n                    background: dotCheckedHoveredColor,\n                },\n            ],\n        },\n    };\n    var enabledFieldWithImageHoverOrFocusProperties = {\n        borderColor: checked ? iconOrImageChoiceBorderCheckedHoveredColor : iconOrImageChoiceBorderUncheckedHoveredColor,\n        selectors: {\n            ':before': {\n                opacity: 1,\n                borderColor: checked ? circleCheckedHoveredBorderColor : circleHoveredBorderColor,\n            },\n        },\n    };\n    var circleAreaProperties = [\n        {\n            content: '\"\"',\n            display: 'inline-block',\n            backgroundColor: circleBackgroundColor,\n            borderWidth: 1,\n            borderStyle: 'solid',\n            borderColor: circleBorderColor,\n            width: choiceFieldSize,\n            height: choiceFieldSize,\n            fontWeight: 'normal',\n            position: 'absolute',\n            top: 0,\n            left: 0,\n            boxSizing: 'border-box',\n            transitionProperty: 'border-color',\n            transitionDuration: choiceFieldTransitionDuration,\n            transitionTimingFunction: choiceFieldTransitionTiming,\n            borderRadius: '50%',\n        },\n        disabled && {\n            borderColor: circleDisabledBorderColor,\n            selectors: (_a = {},\n                _a[HighContrastSelector] = __assign({ borderColor: 'GrayText', background: 'Window' }, getHighContrastNoAdjustStyle()),\n                _a),\n        },\n        checked && {\n            borderColor: disabled ? circleDisabledBorderColor : circleCheckedBorderColor,\n            selectors: (_b = {},\n                _b[HighContrastSelector] = {\n                    borderColor: 'Highlight',\n                    background: 'Window',\n                    forcedColorAdjust: 'none',\n                },\n                _b),\n        },\n        (hasIcon || hasImage) && {\n            top: radioButtonSpacing,\n            right: radioButtonSpacing,\n            left: 'auto',\n            opacity: checked ? 1 : 0,\n        },\n    ];\n    var dotAreaProperties = [\n        {\n            content: '\"\"',\n            width: 0,\n            height: 0,\n            borderRadius: '50%',\n            position: 'absolute',\n            left: choiceFieldSize / 2,\n            right: 0,\n            transitionProperty: 'border-width',\n            transitionDuration: choiceFieldTransitionDuration,\n            transitionTimingFunction: choiceFieldTransitionTiming,\n            boxSizing: 'border-box',\n        },\n        checked && {\n            borderWidth: 5,\n            borderStyle: 'solid',\n            borderColor: disabled ? dotDisabledColor : dotCheckedColor,\n            background: dotCheckedColor,\n            left: 5,\n            top: 5,\n            width: 10,\n            height: 10,\n            selectors: (_c = {},\n                _c[HighContrastSelector] = {\n                    borderColor: 'Highlight',\n                    forcedColorAdjust: 'none',\n                },\n                _c),\n        },\n        checked &&\n            (hasIcon || hasImage) && {\n            top: radioButtonSpacing + radioButtonInnerSize,\n            right: radioButtonSpacing + radioButtonInnerSize,\n            left: 'auto', // To reset the value of 'left' to its default value, so that 'right' works\n        },\n    ];\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            {\n                display: 'flex',\n                alignItems: 'center',\n                boxSizing: 'border-box',\n                color: semanticColors.bodyText,\n                minHeight: 26,\n                border: 'none',\n                position: 'relative',\n                marginTop: 8,\n                selectors: {\n                    '.ms-ChoiceFieldLabel': {\n                        display: 'inline-block',\n                    },\n                },\n            },\n            !hasIcon &&\n                !hasImage && {\n                selectors: {\n                    '.ms-ChoiceFieldLabel': {\n                        paddingLeft: '26px',\n                    },\n                },\n            },\n            hasImage && 'ms-ChoiceField--image',\n            hasIcon && 'ms-ChoiceField--icon',\n            (hasIcon || hasImage) && {\n                display: 'inline-flex',\n                fontSize: 0,\n                margin: '0 4px 4px 0',\n                paddingLeft: 0,\n                backgroundColor: iconOrImageChoiceBackgroundColor,\n                height: '100%',\n            },\n        ],\n        choiceFieldWrapper: [\n            classNames.choiceFieldWrapper,\n            focused && getChoiceGroupFocusStyle(focusBorderColor, hasIcon || hasImage),\n        ],\n        // The hidden input\n        input: [\n            classNames.input,\n            {\n                position: 'absolute',\n                opacity: 0,\n                top: 0,\n                right: 0,\n                width: '100%',\n                height: '100%',\n                margin: 0,\n            },\n            disabled && 'is-disabled',\n        ],\n        field: [\n            classNames.field,\n            checked && classNames.checked,\n            {\n                display: 'inline-block',\n                cursor: 'pointer',\n                marginTop: 0,\n                position: 'relative',\n                verticalAlign: 'top',\n                userSelect: 'none',\n                minHeight: 20,\n                selectors: {\n                    ':hover': !disabled && fieldHoverOrFocusProperties,\n                    ':focus': !disabled && fieldHoverOrFocusProperties,\n                    // The circle\n                    ':before': circleAreaProperties,\n                    // The dot\n                    ':after': dotAreaProperties,\n                },\n            },\n            hasIcon && 'ms-ChoiceField--icon',\n            hasImage && 'ms-ChoiceField-field--image',\n            (hasIcon || hasImage) && {\n                boxSizing: 'content-box',\n                cursor: 'pointer',\n                paddingTop: 22,\n                margin: 0,\n                textAlign: 'center',\n                transitionProperty: 'all',\n                transitionDuration: choiceFieldTransitionDuration,\n                transitionTimingFunction: 'ease',\n                border: '1px solid transparent',\n                justifyContent: 'center',\n                alignItems: 'center',\n                display: 'flex',\n                flexDirection: 'column',\n            },\n            checked && {\n                borderColor: iconOrImageChoiceBorderCheckedColor,\n            },\n            (hasIcon || hasImage) &&\n                !disabled && {\n                selectors: {\n                    ':hover': enabledFieldWithImageHoverOrFocusProperties,\n                    ':focus': enabledFieldWithImageHoverOrFocusProperties,\n                },\n            },\n            disabled && {\n                cursor: 'default',\n                selectors: {\n                    '.ms-ChoiceFieldLabel': {\n                        color: semanticColors.disabledBodyText,\n                        selectors: (_d = {},\n                            _d[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n                            _d),\n                    },\n                },\n            },\n            checked &&\n                disabled && {\n                borderColor: iconOrImageChoiceBackgroundColor,\n            },\n        ],\n        innerField: [\n            classNames.innerField,\n            hasImage && {\n                // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n                height: imageSize.height,\n                width: imageSize.width,\n            },\n            (hasIcon || hasImage) && {\n                position: 'relative',\n                display: 'inline-block',\n                paddingLeft: 30,\n                paddingRight: 30,\n            },\n            (hasIcon || hasImage) &&\n                imageIsLarge && {\n                paddingLeft: 24,\n                paddingRight: 24,\n            },\n            (hasIcon || hasImage) &&\n                disabled && {\n                opacity: 0.25,\n                selectors: (_e = {},\n                    _e[HighContrastSelector] = {\n                        color: 'GrayText',\n                        opacity: 1,\n                    },\n                    _e),\n            },\n        ],\n        imageWrapper: getImageWrapperStyle(false, classNames.imageWrapper, checked),\n        selectedImageWrapper: getImageWrapperStyle(true, classNames.imageWrapper, checked),\n        iconWrapper: [\n            classNames.iconWrapper,\n            {\n                fontSize: iconSize,\n                lineHeight: iconSize,\n                height: iconSize,\n            },\n        ],\n        labelWrapper: [\n            classNames.labelWrapper,\n            fonts.medium,\n            (hasIcon || hasImage) && {\n                display: 'block',\n                position: 'relative',\n                margin: '4px 8px 2px 8px',\n                height: labelWrapperHeight,\n                lineHeight: labelWrapperLineHeight,\n                // using non-null assertion because we have a default in `ChoiceGroupOptionBase` class.\n                maxWidth: imageSize.width * 2,\n                overflow: 'hidden',\n                whiteSpace: 'pre-wrap',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=ChoiceGroupOption.styles.js.map","import { styled } from '../../../Utilities';\nimport { ChoiceGroupOptionBase } from './ChoiceGroupOption.base';\nimport { getStyles } from './ChoiceGroupOption.styles';\nexport var ChoiceGroupOption = styled(ChoiceGroupOptionBase, getStyles, undefined, { scope: 'ChoiceGroupOption' });\n//# sourceMappingURL=ChoiceGroupOption.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { classNamesFunction, find, FocusRectsContext, getNativeProps, divProperties, setFocusVisibility, useFocusRects, } from '../../Utilities';\nimport { ChoiceGroupOption } from './ChoiceGroupOption/index';\nimport { useId, useControllableValue, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nimport { useDocumentEx } from '../../utilities/dom';\nvar getClassNames = classNamesFunction();\nvar getOptionId = function (option, id) {\n    return \"\".concat(id, \"-\").concat(option.key);\n};\nvar findOption = function (options, key) {\n    return key === undefined ? undefined : find(options, function (value) { return value.key === key; });\n};\nvar focusSelectedOption = function (options, keyChecked, id, focusProviders, doc) {\n    var optionToFocus = findOption(options, keyChecked) || options.filter(function (option) { return !option.disabled; })[0];\n    var elementToFocus = optionToFocus && (doc === null || doc === void 0 ? void 0 : doc.getElementById(getOptionId(optionToFocus, id)));\n    if (elementToFocus) {\n        elementToFocus.focus();\n        setFocusVisibility(true, elementToFocus, focusProviders);\n    }\n};\nvar focusFromFocusTrapZone = function (evt) {\n    return evt.relatedTarget instanceof HTMLElement && evt.relatedTarget.dataset.isFocusTrapZoneBumper === 'true';\n};\nvar useComponentRef = function (options, keyChecked, id, componentRef, focusProviders) {\n    var doc = useDocumentEx();\n    React.useImperativeHandle(componentRef, function () { return ({\n        get checkedOption() {\n            return findOption(options, keyChecked);\n        },\n        focus: function () {\n            focusSelectedOption(options, keyChecked, id, focusProviders, doc);\n        },\n    }); }, [options, keyChecked, id, focusProviders, doc]);\n};\nvar COMPONENT_NAME = 'ChoiceGroup';\nexport var ChoiceGroupBase = React.forwardRef(function (props, forwardedRef) {\n    var className = props.className, theme = props.theme, styles = props.styles, _a = props.options, options = _a === void 0 ? [] : _a, label = props.label, required = props.required, disabled = props.disabled, name = props.name, defaultSelectedKey = props.defaultSelectedKey, componentRef = props.componentRef, onChange = props.onChange;\n    var id = useId('ChoiceGroup');\n    var labelId = useId('ChoiceGroupLabel');\n    var divProps = getNativeProps(props, divProperties, [\n        'onChange',\n        'className',\n        'required',\n    ]);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        optionsContainIconOrImage: options.some(function (option) { return !!(option.iconProps || option.imageSrc); }),\n    });\n    var ariaLabelledBy = props.ariaLabelledBy || (label ? labelId : props['aria-labelledby']);\n    var _b = useControllableValue(props.selectedKey, defaultSelectedKey), keyChecked = _b[0], setKeyChecked = _b[1];\n    var _c = React.useState(), keyFocused = _c[0], setKeyFocused = _c[1];\n    var rootRef = React.useRef(null);\n    var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n    var focusContext = React.useContext(FocusRectsContext);\n    useDebugWarnings(props);\n    useComponentRef(options, keyChecked, id, componentRef, focusContext === null || focusContext === void 0 ? void 0 : focusContext.registeredProviders);\n    useFocusRects(rootRef);\n    var onFocus = React.useCallback(function (ev, option) {\n        var _a;\n        if (option) {\n            setKeyFocused(option.itemKey);\n            (_a = option.onFocus) === null || _a === void 0 ? void 0 : _a.call(option, ev);\n        }\n    }, []);\n    var onBlur = React.useCallback(function (ev, option) {\n        var _a;\n        setKeyFocused(undefined);\n        (_a = option === null || option === void 0 ? void 0 : option.onBlur) === null || _a === void 0 ? void 0 : _a.call(option, ev);\n    }, []);\n    var onOptionChange = React.useCallback(function (evt, option) {\n        var _a;\n        if (!option) {\n            return;\n        }\n        setKeyChecked(option.itemKey);\n        (_a = option.onChange) === null || _a === void 0 ? void 0 : _a.call(option, evt);\n        onChange === null || onChange === void 0 ? void 0 : onChange(evt, findOption(options, option.itemKey));\n    }, [onChange, options, setKeyChecked]);\n    var onRadioFocus = React.useCallback(function (evt) {\n        // Handles scenarios like this bug: https://github.com/microsoft/fluentui/issues/20173\n        if (focusFromFocusTrapZone(evt)) {\n            focusSelectedOption(options, keyChecked, id, focusContext === null || focusContext === void 0 ? void 0 : focusContext.registeredProviders);\n        }\n    }, [options, keyChecked, id, focusContext]);\n    return (React.createElement(\"div\", __assign({ className: classNames.root }, divProps, { ref: mergedRootRefs }),\n        React.createElement(\"div\", __assign({ role: \"radiogroup\" }, (ariaLabelledBy && { 'aria-labelledby': ariaLabelledBy }), { onFocus: onRadioFocus }),\n            label && (React.createElement(Label, { className: classNames.label, required: required, id: labelId, disabled: disabled }, label)),\n            React.createElement(\"div\", { className: classNames.flexContainer }, options.map(function (option) {\n                return (React.createElement(ChoiceGroupOption, __assign({ itemKey: option.key }, option, { key: option.key, onBlur: onBlur, onFocus: onFocus, onChange: onOptionChange, focused: option.key === keyFocused, checked: option.key === keyChecked, disabled: option.disabled || disabled, id: getOptionId(option, id), labelId: option.labelId || \"\".concat(labelId, \"-\").concat(option.key), name: name || id, required: required })));\n            })))));\n});\nChoiceGroupBase.displayName = COMPONENT_NAME;\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: COMPONENT_NAME,\n            props: props,\n            mutuallyExclusive: {\n                selectedKey: 'defaultSelectedKey',\n            },\n        });\n    }\n}\n//# sourceMappingURL=ChoiceGroup.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-ChoiceFieldGroup',\n    flexContainer: 'ms-ChoiceFieldGroup-flexContainer',\n};\nexport var getStyles = function (props) {\n    var className = props.className, optionsContainIconOrImage = props.optionsContainIconOrImage, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            className,\n            classNames.root,\n            theme.fonts.medium,\n            {\n                display: 'block',\n            },\n        ],\n        flexContainer: [\n            classNames.flexContainer,\n            optionsContainIconOrImage && {\n                display: 'flex',\n                flexDirection: 'row',\n                flexWrap: 'wrap',\n            },\n        ],\n    };\n};\n//# sourceMappingURL=ChoiceGroup.styles.js.map","import { styled } from '../../Utilities';\nimport { ChoiceGroupBase } from './ChoiceGroup.base';\nimport { getStyles } from './ChoiceGroup.styles';\nexport var ChoiceGroup = styled(ChoiceGroupBase, getStyles, undefined, { scope: 'ChoiceGroup' });\n//# sourceMappingURL=ChoiceGroup.js.map","import { useEffect, useState } from \"react\";\nimport { configContext } from \"../ConfigContext\";\nexport async function fetchDirectories(accessToken) {\n    const headers = new Headers();\n    const bearer = `Bearer ${accessToken}`;\n    headers.append(\"Authorization\", bearer);\n    let tenents = [];\n    let nextLink = `${configContext.ARM_ENDPOINT}/tenants?api-version=2020-01-01`;\n    while (nextLink) {\n        const response = await fetch(nextLink, { headers });\n        const result = response.status === 204 || response.status === 304 ? undefined : await response.json();\n        if (!response.ok) {\n            throw result;\n        }\n        nextLink = result.nextLink;\n        tenents = [...tenents, ...result.value];\n    }\n    return tenents;\n}\nexport function useDirectories(armToken) {\n    const [state, setState] = useState();\n    useEffect(() => {\n        if (armToken) {\n            fetchDirectories(armToken).then((response) => setState(response));\n        }\n    }, [armToken]);\n    return state || [];\n}\n","import { Panel, PanelType, ChoiceGroup } from \"@fluentui/react\";\nimport * as React from \"react\";\nimport { useDirectories } from \"../../../hooks/useDirectories\";\nexport const DirectoryPickerPanel = ({ isOpen, dismissPanel, armToken, tenantId, switchTenant, }) => {\n    const directories = useDirectories(armToken);\n    return (React.createElement(Panel, { type: PanelType.medium, headerText: \"Select Directory\", isOpen: isOpen, onDismiss: dismissPanel, closeButtonAriaLabel: \"Close\" },\n        React.createElement(ChoiceGroup, { options: directories.map((dir) => ({ key: dir.tenantId, text: `${dir.displayName} (${dir.tenantId})` })), selectedKey: tenantId, onChange: (event, option) => {\n                switchTenant(option.key);\n                dismissPanel();\n            } })));\n};\n","import * as React from \"react\";\nimport CollapseChevronDownIcon from \"../../../../images/QueryBuilder/CollapseChevronDown_16x.png\";\nimport { KeyCodes } from \"../../../Common/Constants\";\nimport { Action, ActionModifiers } from \"../../../Shared/Telemetry/TelemetryConstants\";\nimport * as TelemetryProcessor from \"../../../Shared/Telemetry/TelemetryProcessor\";\nimport * as StringUtils from \"../../../Utils/StringUtils\";\nexport class CommandButtonComponent extends React.Component {\n    componentDidUpdate() {\n        if (!this.dropdownElt || !this.expandButtonElt) {\n            return;\n        }\n        $(this.dropdownElt).offset({ left: $(this.expandButtonElt).offset().left });\n    }\n    onKeyPress(event) {\n        if (event.keyCode === KeyCodes.Space || event.keyCode === KeyCodes.Enter) {\n            this.commandClickCallback && this.commandClickCallback(event);\n            event.stopPropagation();\n            return false;\n        }\n        return true;\n    }\n    onLauncherKeyDown(event) {\n        if (event.keyCode === KeyCodes.DownArrow) {\n            $(this.dropdownElt).hide();\n            $(this.dropdownElt).show().focus();\n            event.stopPropagation();\n            return false;\n        }\n        if (event.keyCode === KeyCodes.UpArrow) {\n            $(this.dropdownElt).hide();\n            event.stopPropagation();\n            return false;\n        }\n        return true;\n    }\n    getCommandButtonId() {\n        if (this.props.id) {\n            return this.props.id;\n        }\n        else {\n            return `commandButton-${StringUtils.stripSpacesFromString(this.props.commandButtonLabel)}`;\n        }\n    }\n    static renderButton(options, key) {\n        return React.createElement(CommandButtonComponent, Object.assign({ key: key }, options));\n    }\n    commandClickCallback(e) {\n        if (this.props.disabled) {\n            return;\n        }\n        // TODO Query component's parent, not document\n        const el = document.querySelector(\".commandDropdownContainer\");\n        if (el) {\n            el.style.display = \"none\";\n        }\n        this.props.onCommandClick(e);\n        TelemetryProcessor.trace(Action.SelectItem, ActionModifiers.Mark, {\n            commandButtonClicked: this.props.commandButtonLabel,\n        });\n    }\n    renderChildren() {\n        if (!this.props.children || this.props.children.length < 1) {\n            return React.createElement(React.Fragment, null);\n        }\n        return (React.createElement(\"div\", { className: \"commandExpand\", tabIndex: 0, ref: (ref) => {\n                this.expandButtonElt = ref;\n            }, onKeyDown: (e) => this.onLauncherKeyDown(e) },\n            React.createElement(\"div\", { className: \"commandDropdownLauncher\" },\n                React.createElement(\"span\", { className: \"partialSplitter\" }),\n                React.createElement(\"span\", { className: \"expandDropdown\" },\n                    React.createElement(\"img\", { src: CollapseChevronDownIcon }))),\n            React.createElement(\"div\", { className: \"commandDropdownContainer\", ref: (ref) => {\n                    this.dropdownElt = ref;\n                } },\n                React.createElement(\"div\", { className: \"commandDropdown\" }, this.props.children.map((c, index) => {\n                    return CommandButtonComponent.renderButton(c, `${index}`);\n                })))));\n    }\n    static renderLabel(props, key, refct) {\n        if (!props.commandButtonLabel) {\n            return React.createElement(React.Fragment, null);\n        }\n        return (React.createElement(\"span\", { className: \"commandLabel\", key: key, ref: refct }, props.commandButtonLabel));\n    }\n    render() {\n        let mainClassName = \"commandButtonComponent\";\n        if (this.props.disabled) {\n            mainClassName += \" commandDisabled\";\n        }\n        if (this.props.isSelected) {\n            mainClassName += \" selectedButton\";\n        }\n        let contentClassName = \"commandContent\";\n        if (this.props.children && this.props.children.length > 0) {\n            contentClassName += \" hasHiddenItems\";\n        }\n        return (React.createElement(\"div\", { className: \"commandButtonReact\" },\n            React.createElement(\"span\", { className: mainClassName, role: \"menuitem\", tabIndex: this.props.tabIndex, onKeyPress: (e) => this.onKeyPress(e), title: this.props.tooltipText, id: this.getCommandButtonId(), \"aria-disabled\": this.props.disabled, \"aria-haspopup\": this.props.hasPopup, \"aria-label\": this.props.ariaLabel, onClick: (e) => this.commandClickCallback(e) },\n                React.createElement(\"div\", { className: contentClassName },\n                    React.createElement(\"img\", { className: \"commandIcon\", src: this.props.iconSrc, alt: this.props.iconAlt }),\n                    CommandButtonComponent.renderLabel(this.props))),\n            this.props.children && this.renderChildren()));\n    }\n}\n","export function stripSpacesFromString(inputString) {\n    if (inputString === undefined || typeof inputString !== \"string\") {\n        return inputString;\n    }\n    return inputString.replace(/ /g, \"\");\n}\n/**\n * Implementation of endsWith which works for IE\n * @param stringToTest\n * @param suffix\n */\nexport function endsWith(stringToTest, suffix) {\n    return stringToTest.indexOf(suffix, stringToTest.length - suffix.length) !== -1;\n}\nexport function startsWith(stringToTest, prefix) {\n    return stringToTest.indexOf(prefix) === 0;\n}\n","import * as React from \"react\";\nimport { CommandButtonComponent } from \"../../../Explorer/Controls/CommandButton/CommandButtonComponent\";\nimport FeedbackIcon from \"../../../../images/Feedback.svg\";\nexport const FeedbackCommandButton = () => {\n    return (React.createElement(\"div\", { className: \"feedbackConnectSettingIcons\" },\n        React.createElement(CommandButtonComponent, { id: \"commandbutton-feedback\", iconSrc: FeedbackIcon, iconAlt: \"feeback button\", onCommandClick: () => window.open(\"https://aka.ms/cosmosdbfeedback?subject=Cosmos%20DB%20Hosted%20Data%20Explorer%20Feedback\"), ariaLabel: \"feeback button\", tooltipText: \"Send feedback\", hasPopup: true, disabled: false })));\n};\n","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipOverflowMode;\n(function (TooltipOverflowMode) {\n    /** Only show tooltip if parent DOM element is overflowing */\n    TooltipOverflowMode[TooltipOverflowMode[\"Parent\"] = 0] = \"Parent\";\n    /**\n     * Only show tooltip if tooltip host's content is overflowing.\n     * Note that this does not check the children for overflow, only the TooltipHost root.\n     */\n    TooltipOverflowMode[TooltipOverflowMode[\"Self\"] = 1] = \"Self\";\n})(TooltipOverflowMode || (TooltipOverflowMode = {}));\n//# sourceMappingURL=TooltipHost.types.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipDelay;\n(function (TooltipDelay) {\n    TooltipDelay[TooltipDelay[\"zero\"] = 0] = \"zero\";\n    /** 300 ms delay before showing the tooltip */\n    TooltipDelay[TooltipDelay[\"medium\"] = 1] = \"medium\";\n    /** 500 ms delay before showing the tooltip */\n    TooltipDelay[TooltipDelay[\"long\"] = 2] = \"long\";\n})(TooltipDelay || (TooltipDelay = {}));\n//# sourceMappingURL=Tooltip.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar TooltipBase = /** @class */ (function (_super) {\n    __extends(TooltipBase, _super);\n    function TooltipBase() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._onRenderContent = function (props) {\n            if (typeof props.content === 'string') {\n                return React.createElement(\"p\", { className: _this._classNames.subText }, props.content);\n            }\n            else {\n                return React.createElement(\"div\", { className: _this._classNames.subText }, props.content);\n            }\n        };\n        return _this;\n    }\n    TooltipBase.prototype.render = function () {\n        var _a = this.props, className = _a.className, calloutProps = _a.calloutProps, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, styles = _a.styles, id = _a.id, maxWidth = _a.maxWidth, _b = _a.onRenderContent, onRenderContent = _b === void 0 ? this._onRenderContent : _b, targetElement = _a.targetElement, theme = _a.theme;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className || (calloutProps && calloutProps.className),\n            beakWidth: calloutProps && calloutProps.isBeakVisible ? calloutProps.beakWidth : 0,\n            gapSpace: calloutProps && calloutProps.gapSpace,\n            maxWidth: maxWidth,\n        });\n        return (React.createElement(Callout, __assign({ target: targetElement, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL }, calloutProps, getNativeProps(this.props, divProperties, ['id']), { className: this._classNames.root }),\n            React.createElement(\"div\", { className: this._classNames.content, id: id, onFocus: this.props.onFocus, onMouseEnter: this.props.onMouseEnter, onMouseLeave: this.props.onMouseLeave }, onRenderContent(this.props, this._onRenderContent))));\n    };\n    // Specify default props values\n    TooltipBase.defaultProps = {\n        directionalHint: DirectionalHint.topCenter,\n        maxWidth: '364px',\n        calloutProps: {\n            isBeakVisible: true,\n            beakWidth: 16,\n            gapSpace: 0,\n            setInitialFocus: true,\n            doNotLayer: false,\n        },\n    };\n    return TooltipBase;\n}(React.Component));\nexport { TooltipBase };\n//# sourceMappingURL=Tooltip.base.js.map","import { styled } from '../../Utilities';\nimport { TooltipBase } from './Tooltip.base';\nimport { getStyles } from './Tooltip.styles';\nexport var Tooltip = styled(TooltipBase, getStyles, undefined, {\n    scope: 'Tooltip',\n});\n//# sourceMappingURL=Tooltip.js.map","import { AnimationClassNames } from '../../Styling';\nexport var getStyles = function (props) {\n    var className = props.className, _a = props.beakWidth, beakWidth = _a === void 0 ? 16 : _a, _b = props.gapSpace, gapSpace = _b === void 0 ? 0 : _b, maxWidth = props.maxWidth, theme = props.theme;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n    // The math here is done to account for the 45 degree rotation of the beak\n    // and sub-pixel rounding that differs across browsers, which is more noticeable when\n    // the device pixel ratio is larger\n    var tooltipGapSpace = -(Math.sqrt((beakWidth * beakWidth) / 2) + gapSpace) +\n        1 /\n            // There isn't really a great way to pass in a `window` reference here so disabling the line rule\n            // eslint-disable-next-line no-restricted-globals\n            window.devicePixelRatio;\n    return {\n        root: [\n            'ms-Tooltip',\n            theme.fonts.medium,\n            AnimationClassNames.fadeIn200,\n            {\n                background: semanticColors.menuBackground,\n                boxShadow: effects.elevation8,\n                padding: '8px',\n                maxWidth: maxWidth,\n                selectors: {\n                    ':after': {\n                        content: \"''\",\n                        position: 'absolute',\n                        bottom: tooltipGapSpace,\n                        left: tooltipGapSpace,\n                        right: tooltipGapSpace,\n                        top: tooltipGapSpace,\n                        zIndex: 0,\n                    },\n                },\n            },\n            className,\n        ],\n        content: [\n            'ms-Tooltip-content',\n            fonts.small,\n            {\n                position: 'relative',\n                zIndex: 1,\n                color: semanticColors.menuItemText,\n                wordWrap: 'break-word',\n                overflowWrap: 'break-word',\n                overflow: 'hidden',\n            },\n        ],\n        subText: [\n            'ms-Tooltip-subtext',\n            {\n                // Using inherit here to avoid unintentional global overrides of the <p> tag.\n                fontSize: 'inherit',\n                fontWeight: 'inherit',\n                color: 'inherit',\n                margin: 0,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=Tooltip.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hiddenContentStyle } from '../../Styling';\nimport { initializeComponentRef, Async, divProperties, getNativeProps, getId, assign, hasOverflow, portalContainsElement, classNamesFunction, KeyCodes, } from '../../Utilities';\nimport { TooltipOverflowMode } from './TooltipHost.types';\nimport { Tooltip } from './Tooltip';\nimport { TooltipDelay } from './Tooltip.types';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { getDocumentEx } from '../../utilities/dom';\nvar getClassNames = classNamesFunction();\nvar TooltipHostBase = /** @class */ (function (_super) {\n    __extends(TooltipHostBase, _super);\n    // Constructor\n    function TooltipHostBase(props) {\n        var _this = _super.call(this, props) || this;\n        // The wrapping div that gets the hover events\n        _this._tooltipHost = React.createRef();\n        _this._defaultTooltipId = getId('tooltip');\n        _this.show = function () {\n            _this._toggleTooltip(true);\n        };\n        _this.dismiss = function () {\n            _this._hideTooltip();\n        };\n        _this._getTargetElement = function () {\n            if (!_this._tooltipHost.current) {\n                return undefined;\n            }\n            var overflowMode = _this.props.overflowMode;\n            // Select target element based on overflow mode. For parent mode, you want to position the tooltip relative\n            // to the parent element, otherwise it might look off.\n            if (overflowMode !== undefined) {\n                switch (overflowMode) {\n                    case TooltipOverflowMode.Parent:\n                        return _this._tooltipHost.current.parentElement;\n                    case TooltipOverflowMode.Self:\n                        return _this._tooltipHost.current;\n                }\n            }\n            return _this._tooltipHost.current;\n        };\n        _this._onTooltipFocus = function (ev) {\n            if (_this._ignoreNextFocusEvent) {\n                _this._ignoreNextFocusEvent = false;\n                return;\n            }\n            _this._onTooltipMouseEnter(ev);\n        };\n        _this._onTooltipContentFocus = function (ev) {\n            if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n                TooltipHostBase._currentVisibleTooltip.dismiss();\n            }\n            TooltipHostBase._currentVisibleTooltip = _this;\n            _this._clearDismissTimer();\n            _this._clearOpenTimer();\n        };\n        _this._onTooltipBlur = function (ev) {\n            var _a;\n            // The focused element gets a blur event when the document loses focus\n            // (e.g. switching tabs in the browser), but we don't want to show the\n            // tooltip again when the document gets focus back. Handle this case by\n            // checking if the blurred element is still the document's activeElement,\n            // and ignoring when it next gets focus back.\n            // See https://github.com/microsoft/fluentui/issues/13541\n            _this._ignoreNextFocusEvent = ((_a = getDocumentEx(_this.context)) === null || _a === void 0 ? void 0 : _a.activeElement) === ev.target;\n            _this._dismissTimerId = _this._async.setTimeout(function () {\n                _this._hideTooltip();\n            }, 0);\n        };\n        // Show Tooltip\n        _this._onTooltipMouseEnter = function (ev) {\n            var _a = _this.props, overflowMode = _a.overflowMode, delay = _a.delay;\n            var doc = getDocumentEx(_this.context);\n            if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n                TooltipHostBase._currentVisibleTooltip.dismiss();\n            }\n            TooltipHostBase._currentVisibleTooltip = _this;\n            if (overflowMode !== undefined) {\n                var overflowElement = _this._getTargetElement();\n                if (overflowElement && !hasOverflow(overflowElement)) {\n                    return;\n                }\n            }\n            if (ev.target && portalContainsElement(ev.target, _this._getTargetElement(), doc)) {\n                // Do not show tooltip when target is inside a portal relative to TooltipHost.\n                return;\n            }\n            _this._clearDismissTimer();\n            _this._clearOpenTimer();\n            if (delay !== TooltipDelay.zero) {\n                var delayTime = _this._getDelayTime(delay); // non-null assertion because we set it in `defaultProps`\n                _this._openTimerId = _this._async.setTimeout(function () {\n                    _this._toggleTooltip(true);\n                }, delayTime);\n            }\n            else {\n                _this._toggleTooltip(true);\n            }\n        };\n        // Hide Tooltip\n        _this._onTooltipMouseLeave = function (ev) {\n            var closeDelay = _this.props.closeDelay;\n            _this._clearDismissTimer();\n            _this._clearOpenTimer();\n            if (closeDelay) {\n                _this._dismissTimerId = _this._async.setTimeout(function () {\n                    _this._toggleTooltip(false);\n                }, closeDelay);\n            }\n            else {\n                _this._toggleTooltip(false);\n            }\n            if (TooltipHostBase._currentVisibleTooltip === _this) {\n                TooltipHostBase._currentVisibleTooltip = undefined;\n            }\n        };\n        _this._onTooltipKeyDown = function (ev) {\n            // eslint-disable-next-line deprecation/deprecation\n            if ((ev.which === KeyCodes.escape || ev.ctrlKey) && _this.state.isTooltipVisible) {\n                _this._hideTooltip();\n                ev.stopPropagation();\n            }\n        };\n        _this._clearDismissTimer = function () {\n            _this._async.clearTimeout(_this._dismissTimerId);\n        };\n        _this._clearOpenTimer = function () {\n            _this._async.clearTimeout(_this._openTimerId);\n        };\n        // Hide Tooltip\n        _this._hideTooltip = function () {\n            _this._clearOpenTimer();\n            _this._clearDismissTimer();\n            _this._toggleTooltip(false);\n        };\n        _this._toggleTooltip = function (isTooltipVisible) {\n            if (_this.state.isTooltipVisible !== isTooltipVisible) {\n                _this.setState({ isTooltipVisible: isTooltipVisible }, function () { return _this.props.onTooltipToggle && _this.props.onTooltipToggle(isTooltipVisible); });\n            }\n        };\n        _this._getDelayTime = function (delay) {\n            switch (delay) {\n                case TooltipDelay.medium:\n                    return 300;\n                case TooltipDelay.long:\n                    return 500;\n                default:\n                    return 0;\n            }\n        };\n        initializeComponentRef(_this);\n        _this.state = {\n            isAriaPlaceholderRendered: false,\n            isTooltipVisible: false,\n        };\n        return _this;\n    }\n    // Render\n    TooltipHostBase.prototype.render = function () {\n        var _a = this.props, calloutProps = _a.calloutProps, children = _a.children, content = _a.content, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, className = _a.hostClassName, id = _a.id, \n        // eslint-disable-next-line deprecation/deprecation\n        _b = _a.setAriaDescribedBy, \n        // eslint-disable-next-line deprecation/deprecation\n        setAriaDescribedBy = _b === void 0 ? true : _b, tooltipProps = _a.tooltipProps, styles = _a.styles, theme = _a.theme;\n        this._classNames = getClassNames(styles, {\n            theme: theme,\n            className: className,\n        });\n        var isTooltipVisible = this.state.isTooltipVisible;\n        var tooltipId = id || this._defaultTooltipId;\n        var tooltipRenderProps = __assign(__assign({ id: \"\".concat(tooltipId, \"--tooltip\"), content: content, targetElement: this._getTargetElement(), directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, calloutProps: assign({}, calloutProps, {\n                onDismiss: this._hideTooltip,\n                onFocus: this._onTooltipContentFocus,\n                onMouseEnter: this._onTooltipMouseEnter,\n                onMouseLeave: this._onTooltipMouseLeave,\n            }), onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave }, getNativeProps(this.props, divProperties, ['id'])), tooltipProps);\n        // Get the content of the tooltip for use in the hidden div used for screen readers\n        var tooltipContent = (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.onRenderContent)\n            ? tooltipProps.onRenderContent(tooltipRenderProps, function (props) { return ((props === null || props === void 0 ? void 0 : props.content) ? React.createElement(React.Fragment, null, props.content) : null); })\n            : content;\n        var showTooltip = isTooltipVisible && !!tooltipContent;\n        var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && !!tooltipContent ? tooltipId : undefined;\n        return (React.createElement(\"div\", __assign({ className: this._classNames.root, ref: this._tooltipHost }, { onFocusCapture: this._onTooltipFocus }, { onBlurCapture: this._onTooltipBlur }, { onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onKeyDown: this._onTooltipKeyDown, role: \"none\", \"aria-describedby\": ariaDescribedBy }),\n            children,\n            showTooltip && React.createElement(Tooltip, __assign({}, tooltipRenderProps)),\n            React.createElement(\"div\", { hidden: true, id: tooltipId, style: hiddenContentStyle }, tooltipContent)));\n    };\n    TooltipHostBase.prototype.componentDidMount = function () {\n        this._async = new Async(this);\n    };\n    TooltipHostBase.prototype.componentWillUnmount = function () {\n        if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) {\n            TooltipHostBase._currentVisibleTooltip = undefined;\n        }\n        this._async.dispose();\n    };\n    TooltipHostBase.defaultProps = {\n        delay: TooltipDelay.medium,\n    };\n    TooltipHostBase.contextType = WindowContext;\n    return TooltipHostBase;\n}(React.Component));\nexport { TooltipHostBase };\n//# sourceMappingURL=TooltipHost.base.js.map","/**\n * Detects whether an element's content has horizontal overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasHorizontalOverflow(element) {\n    return element.clientWidth < element.scrollWidth;\n}\n/**\n * Detects whether an element's content has vertical overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasVerticalOverflow(element) {\n    return element.clientHeight < element.scrollHeight;\n}\n/**\n * Detects whether an element's content has overflow in any direction\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasOverflow(element) {\n    return hasHorizontalOverflow(element) || hasVerticalOverflow(element);\n}\n//# sourceMappingURL=overflow.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n    root: 'ms-TooltipHost',\n    ariaPlaceholder: 'ms-TooltipHost-aria-placeholder',\n};\nexport var getStyles = function (props) {\n    var className = props.className, theme = props.theme;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    return {\n        root: [\n            classNames.root,\n            {\n                display: 'inline',\n            },\n            className,\n        ],\n    };\n};\n//# sourceMappingURL=TooltipHost.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipHostBase } from './TooltipHost.base';\nimport { getStyles } from './TooltipHost.styles';\nexport var TooltipHost = styled(TooltipHostBase, getStyles, undefined, {\n    scope: 'TooltipHost',\n});\n//# sourceMappingURL=TooltipHost.js.map","/**\n * Regular expressions matching characters to ignore when calculating the initials.\n */\n/**\n * Regular expression matching characters within various types of enclosures, including the enclosures themselves\n *  so for example, (xyz) [xyz] {xyz} <xyz> all would be ignored\n */\nvar UNWANTED_ENCLOSURES_REGEX = /[\\(\\[\\{\\<][^\\)\\]\\}\\>]*[\\)\\]\\}\\>]/g;\n/**\n * Regular expression matching special ASCII characters except space, plus some unicode special characters.\n * Applies after unwanted enclosures have been removed\n */\nvar UNWANTED_CHARS_REGEX = /[\\0-\\u001F\\!-/:-@\\[-`\\{-\\u00BF\\u0250-\\u036F\\uD800-\\uFFFF]/g;\n/**\n * Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed\n * and number has been trimmed for whitespaces\n */\nvar PHONENUMBER_REGEX = /^\\d+[\\d\\s]*(:?ext|x|)\\s*\\d+$/i;\n/** Regular expression matching one or more spaces. */\nvar MULTIPLE_WHITESPACES_REGEX = /\\s+/g;\n/**\n * Regular expression matching languages for which we currently don't support initials.\n * Arabic:   Arabic, Arabic Supplement, Arabic Extended-A.\n * Korean:   Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.\n * Japanese: Hiragana, Katakana.\n * CJK:      CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,\n *             CJK Unified Ideographs Extension B\n */\nvar UNSUPPORTED_TEXT_REGEX = \n// eslint-disable-next-line @fluentui/max-len\n/[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD869][\\uDC00-\\uDED6]/;\nfunction getInitialsLatin(displayName, isRtl) {\n    var initials = '';\n    var splits = displayName.split(' ');\n    if (splits.length === 2) {\n        initials += splits[0].charAt(0).toUpperCase();\n        initials += splits[1].charAt(0).toUpperCase();\n    }\n    else if (splits.length === 3) {\n        initials += splits[0].charAt(0).toUpperCase();\n        initials += splits[2].charAt(0).toUpperCase();\n    }\n    else if (splits.length !== 0) {\n        initials += splits[0].charAt(0).toUpperCase();\n    }\n    if (isRtl && initials.length > 1) {\n        return initials.charAt(1) + initials.charAt(0);\n    }\n    return initials;\n}\nfunction cleanupDisplayName(displayName) {\n    displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');\n    displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');\n    displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');\n    displayName = displayName.trim();\n    return displayName;\n}\n/**\n * Get (up to 2 characters) initials based on display name of the persona.\n *\n * @public\n */\nexport function getInitials(displayName, isRtl, allowPhoneInitials) {\n    if (!displayName) {\n        return '';\n    }\n    displayName = cleanupDisplayName(displayName);\n    // For names containing CJK characters, and phone numbers, we don't display initials\n    if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {\n        return '';\n    }\n    return getInitialsLatin(displayName, isRtl);\n}\n//# sourceMappingURL=initials.js.map","/**\n * {@docCategory Persona}\n */\nexport var PersonaSize;\n(function (PersonaSize) {\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size8` instead.\n     */\n    PersonaSize[PersonaSize[\"tiny\"] = 0] = \"tiny\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size24` instead.\n     */\n    PersonaSize[PersonaSize[\"extraExtraSmall\"] = 1] = \"extraExtraSmall\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size32` instead.\n     */\n    PersonaSize[PersonaSize[\"extraSmall\"] = 2] = \"extraSmall\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size40` instead.\n     */\n    PersonaSize[PersonaSize[\"small\"] = 3] = \"small\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size48` instead.\n     */\n    PersonaSize[PersonaSize[\"regular\"] = 4] = \"regular\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size72` instead.\n     */\n    PersonaSize[PersonaSize[\"large\"] = 5] = \"large\";\n    /**\n     * Deprecated in favor of standardized numeric sizing.\n     * @deprecated Use `size100` instead.\n     */\n    PersonaSize[PersonaSize[\"extraLarge\"] = 6] = \"extraLarge\";\n    /**\n     * No `PersonaCoin` is rendered.\n     */\n    PersonaSize[PersonaSize[\"size8\"] = 17] = \"size8\";\n    /**\n     * No `PersonaCoin` is rendered. Deprecated to align with design specifications.\n     * @deprecated Use `size8` instead.\n     */\n    PersonaSize[PersonaSize[\"size10\"] = 9] = \"size10\";\n    /**\n     * Renders a 16px `PersonaCoin`.\n     * @deprecated Deprecated due to not being in the design specification.\n     */\n    PersonaSize[PersonaSize[\"size16\"] = 8] = \"size16\";\n    /**\n     * Renders a 24px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size24\"] = 10] = \"size24\";\n    /**\n     * Renders a 28px `PersonaCoin`.\n     * @deprecated Deprecated due to not being in the design specification.\n     */\n    PersonaSize[PersonaSize[\"size28\"] = 7] = \"size28\";\n    /**\n     * Renders a 32px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size32\"] = 11] = \"size32\";\n    /**\n     * Renders a 40px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size40\"] = 12] = \"size40\";\n    /**\n     * Renders a 48px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size48\"] = 13] = \"size48\";\n    /**\n     * Renders a 56px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size56\"] = 16] = \"size56\";\n    /**\n     * Renders a 72px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size72\"] = 14] = \"size72\";\n    /**\n     * Renders a 100px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size100\"] = 15] = \"size100\";\n    /**\n     * Renders a 120px `PersonaCoin`.\n     */\n    PersonaSize[PersonaSize[\"size120\"] = 18] = \"size120\";\n})(PersonaSize || (PersonaSize = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaPresence;\n(function (PersonaPresence) {\n    PersonaPresence[PersonaPresence[\"none\"] = 0] = \"none\";\n    PersonaPresence[PersonaPresence[\"offline\"] = 1] = \"offline\";\n    PersonaPresence[PersonaPresence[\"online\"] = 2] = \"online\";\n    PersonaPresence[PersonaPresence[\"away\"] = 3] = \"away\";\n    PersonaPresence[PersonaPresence[\"dnd\"] = 4] = \"dnd\";\n    PersonaPresence[PersonaPresence[\"blocked\"] = 5] = \"blocked\";\n    PersonaPresence[PersonaPresence[\"busy\"] = 6] = \"busy\";\n})(PersonaPresence || (PersonaPresence = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaInitialsColor;\n(function (PersonaInitialsColor) {\n    PersonaInitialsColor[PersonaInitialsColor[\"lightBlue\"] = 0] = \"lightBlue\";\n    PersonaInitialsColor[PersonaInitialsColor[\"blue\"] = 1] = \"blue\";\n    PersonaInitialsColor[PersonaInitialsColor[\"darkBlue\"] = 2] = \"darkBlue\";\n    PersonaInitialsColor[PersonaInitialsColor[\"teal\"] = 3] = \"teal\";\n    PersonaInitialsColor[PersonaInitialsColor[\"lightGreen\"] = 4] = \"lightGreen\";\n    PersonaInitialsColor[PersonaInitialsColor[\"green\"] = 5] = \"green\";\n    PersonaInitialsColor[PersonaInitialsColor[\"darkGreen\"] = 6] = \"darkGreen\";\n    PersonaInitialsColor[PersonaInitialsColor[\"lightPink\"] = 7] = \"lightPink\";\n    PersonaInitialsColor[PersonaInitialsColor[\"pink\"] = 8] = \"pink\";\n    PersonaInitialsColor[PersonaInitialsColor[\"magenta\"] = 9] = \"magenta\";\n    PersonaInitialsColor[PersonaInitialsColor[\"purple\"] = 10] = \"purple\";\n    /**\n     * @deprecated `black` is a color that can result in offensive persona coins with some initials combinations,\n     * so it can only be set with overrides. Will be removed in a future major release.\n     */\n    PersonaInitialsColor[PersonaInitialsColor[\"black\"] = 11] = \"black\";\n    PersonaInitialsColor[PersonaInitialsColor[\"orange\"] = 12] = \"orange\";\n    /**\n     * @deprecated `red` is a color that often has a special meaning, so it is considered a reserved color and\n     * can only be set with overrides. Will be removed in a future major release.\n     */\n    PersonaInitialsColor[PersonaInitialsColor[\"red\"] = 13] = \"red\";\n    PersonaInitialsColor[PersonaInitialsColor[\"darkRed\"] = 14] = \"darkRed\";\n    /**\n     * Transparent is not intended to be used with typical initials due to accessibility issues.\n     * Its primary use is for overflow buttons, so it is considered a reserved color and can only be set with overrides.\n     */\n    PersonaInitialsColor[PersonaInitialsColor[\"transparent\"] = 15] = \"transparent\";\n    PersonaInitialsColor[PersonaInitialsColor[\"violet\"] = 16] = \"violet\";\n    PersonaInitialsColor[PersonaInitialsColor[\"lightRed\"] = 17] = \"lightRed\";\n    PersonaInitialsColor[PersonaInitialsColor[\"gold\"] = 18] = \"gold\";\n    PersonaInitialsColor[PersonaInitialsColor[\"burgundy\"] = 19] = \"burgundy\";\n    PersonaInitialsColor[PersonaInitialsColor[\"warmGray\"] = 20] = \"warmGray\";\n    PersonaInitialsColor[PersonaInitialsColor[\"coolGray\"] = 21] = \"coolGray\";\n    /**\n     * `gray` is a color that can result in offensive persona coins with some initials combinations,\n     * so it can only be set with overrides.\n     */\n    PersonaInitialsColor[PersonaInitialsColor[\"gray\"] = 22] = \"gray\";\n    PersonaInitialsColor[PersonaInitialsColor[\"cyan\"] = 23] = \"cyan\";\n    PersonaInitialsColor[PersonaInitialsColor[\"rust\"] = 24] = \"rust\";\n})(PersonaInitialsColor || (PersonaInitialsColor = {}));\n//# sourceMappingURL=Persona.types.js.map","var _a;\nimport { PersonaPresence, PersonaSize } from './Persona.types';\n// Persona Sizes\nexport var personaSize;\n(function (personaSize) {\n    personaSize.size8 = '20px';\n    // TODO: remove in a future major release as it's deprecated.\n    personaSize.size10 = '20px';\n    // TODO: remove in a future major release as it's deprecated.\n    personaSize.size16 = '16px';\n    personaSize.size24 = '24px';\n    // TODO: remove in a future major release as it's deprecated.\n    personaSize.size28 = '28px';\n    personaSize.size32 = '32px';\n    personaSize.size40 = '40px';\n    personaSize.size48 = '48px';\n    personaSize.size56 = '56px';\n    personaSize.size72 = '72px';\n    personaSize.size100 = '100px';\n    personaSize.size120 = '120px';\n})(personaSize || (personaSize = {}));\n// Persona Presence Sizes\nexport var personaPresenceSize;\n(function (personaPresenceSize) {\n    personaPresenceSize.size6 = '6px';\n    personaPresenceSize.size8 = '8px';\n    personaPresenceSize.size12 = '12px';\n    personaPresenceSize.size16 = '16px';\n    personaPresenceSize.size20 = '20px';\n    personaPresenceSize.size28 = '28px';\n    personaPresenceSize.size32 = '32px';\n    /**\n     * @deprecated This is now unused\n     */\n    personaPresenceSize.border = '2px';\n})(personaPresenceSize || (personaPresenceSize = {}));\n// TODO: remove the deprecated parts in a future major release.\nexport var sizeBoolean = function (size) { return ({\n    isSize8: size === PersonaSize.size8,\n    /* eslint-disable deprecation/deprecation */\n    isSize10: size === PersonaSize.size10 || size === PersonaSize.tiny,\n    isSize16: size === PersonaSize.size16,\n    isSize24: size === PersonaSize.size24 || size === PersonaSize.extraExtraSmall,\n    isSize28: size === PersonaSize.size28 || size === PersonaSize.extraSmall,\n    isSize32: size === PersonaSize.size32,\n    isSize40: size === PersonaSize.size40 || size === PersonaSize.small,\n    isSize48: size === PersonaSize.size48 || size === PersonaSize.regular,\n    isSize56: size === PersonaSize.size56,\n    isSize72: size === PersonaSize.size72 || size === PersonaSize.large,\n    isSize100: size === PersonaSize.size100 || size === PersonaSize.extraLarge,\n    isSize120: size === PersonaSize.size120,\n}); };\nexport var sizeToPixels = (_a = {},\n    // Old deprecated sizes\n    _a[PersonaSize.tiny] = 10,\n    _a[PersonaSize.extraExtraSmall] = 24,\n    _a[PersonaSize.extraSmall] = 28,\n    _a[PersonaSize.small] = 40,\n    _a[PersonaSize.regular] = 48,\n    _a[PersonaSize.large] = 72,\n    _a[PersonaSize.extraLarge] = 100,\n    // New sizes\n    _a[PersonaSize.size8] = 8,\n    _a[PersonaSize.size10] = 10,\n    _a[PersonaSize.size16] = 16,\n    _a[PersonaSize.size24] = 24,\n    _a[PersonaSize.size28] = 28,\n    /* eslint-enable deprecation/deprecation */\n    _a[PersonaSize.size32] = 32,\n    _a[PersonaSize.size40] = 40,\n    _a[PersonaSize.size48] = 48,\n    _a[PersonaSize.size56] = 56,\n    _a[PersonaSize.size72] = 72,\n    _a[PersonaSize.size100] = 100,\n    _a[PersonaSize.size120] = 120,\n    _a);\nexport var presenceBoolean = function (presence) { return ({\n    isAvailable: presence === PersonaPresence.online,\n    isAway: presence === PersonaPresence.away,\n    isBlocked: presence === PersonaPresence.blocked,\n    isBusy: presence === PersonaPresence.busy,\n    isDoNotDisturb: presence === PersonaPresence.dnd,\n    isOffline: presence === PersonaPresence.offline,\n}); };\n//# sourceMappingURL=PersonaConsts.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nimport { Icon } from '../../../Icon';\nimport { PersonaPresence as PersonaPresenceEnum } from '../Persona.types';\nimport { sizeBoolean } from '../PersonaConsts';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar coinSizeFontScaleFactor = 6;\nvar coinSizePresenceScaleFactor = 3;\nvar presenceMaxSize = 40;\nvar presenceFontMaxSize = 20;\nvar getClassNames = classNamesFunction({\n    // There can be many PersonaPresence rendered with different sizes.\n    // Therefore setting a larger cache size.\n    cacheSize: 100,\n});\n/**\n * PersonaPresence with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaPresenceBase = React.forwardRef(function (props, forwardedRef) {\n    var coinSize = props.coinSize, isOutOfOffice = props.isOutOfOffice, styles = props.styles, // Use getStyles from props.\n    presence = props.presence, theme = props.theme, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors;\n    var rootRef = React.useRef(null);\n    var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n    var size = sizeBoolean(props.size);\n    // Render Presence Icon if Persona is above size 32.\n    var renderIcon = !(size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) &&\n        (coinSize ? coinSize > 32 : true);\n    var presenceHeightWidth = coinSize\n        ? coinSize / coinSizePresenceScaleFactor < presenceMaxSize\n            ? coinSize / coinSizePresenceScaleFactor + 'px'\n            : presenceMaxSize + 'px'\n        : '';\n    var presenceFontSize = coinSize\n        ? coinSize / coinSizeFontScaleFactor < presenceFontMaxSize\n            ? coinSize / coinSizeFontScaleFactor + 'px'\n            : presenceFontMaxSize + 'px'\n        : '';\n    var coinSizeWithPresenceIconStyle = coinSize\n        ? { fontSize: presenceFontSize, lineHeight: presenceHeightWidth }\n        : undefined;\n    var coinSizeWithPresenceStyle = coinSize ? { width: presenceHeightWidth, height: presenceHeightWidth } : undefined;\n    // Use getStyles from props, or fall back to getStyles from styles file.\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        presence: presence,\n        size: props.size,\n        isOutOfOffice: isOutOfOffice,\n        presenceColors: presenceColors,\n    });\n    if (presence === PersonaPresenceEnum.none) {\n        return null;\n    }\n    return (React.createElement(\"div\", { role: \"presentation\", className: classNames.presence, style: coinSizeWithPresenceStyle, title: presenceTitle, ref: mergedRootRef }, renderIcon && (React.createElement(Icon, { className: classNames.presenceIcon, iconName: determineIcon(props.presence, props.isOutOfOffice), style: coinSizeWithPresenceIconStyle }))));\n});\nPersonaPresenceBase.displayName = 'PersonaPresenceBase';\nfunction determineIcon(presence, isOutOfOffice) {\n    if (!presence) {\n        return undefined;\n    }\n    var oofIcon = 'SkypeArrow';\n    switch (PersonaPresenceEnum[presence]) {\n        case 'online':\n            return 'SkypeCheck';\n        case 'away':\n            return isOutOfOffice ? oofIcon : 'SkypeClock';\n        case 'dnd':\n            return 'SkypeMinus';\n        case 'offline':\n            return isOutOfOffice ? oofIcon : '';\n    }\n    return '';\n}\n//# sourceMappingURL=PersonaPresence.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { personaPresenceSize, presenceBoolean, sizeBoolean } from '../PersonaConsts';\nvar GlobalClassNames = {\n    presence: 'ms-Persona-presence',\n    presenceIcon: 'ms-Persona-presenceIcon',\n};\nexport var getStyles = function (props) {\n    var _a, _b, _c, _d, _e, _f;\n    var theme = props.theme, presenceColors = props.presenceColors;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var size = sizeBoolean(props.size);\n    var presence = presenceBoolean(props.presence);\n    // Presence colors\n    var presenceColorAvailable = (presenceColors && presenceColors.available) || '#6BB700';\n    var presenceColorAway = (presenceColors && presenceColors.away) || '#FFAA44';\n    var presenceColorBusy = (presenceColors && presenceColors.busy) || '#C43148';\n    var presenceColorDnd = (presenceColors && presenceColors.dnd) || '#C50F1F';\n    var presenceColorOffline = (presenceColors && presenceColors.offline) || '#8A8886';\n    var presenceColorOof = (presenceColors && presenceColors.oof) || '#B4009E';\n    var presenceColorBackground = (presenceColors && presenceColors.background) || semanticColors.bodyBackground;\n    var isOpenCirclePresence = presence.isOffline ||\n        (props.isOutOfOffice && (presence.isAvailable || presence.isBusy || presence.isAway || presence.isDoNotDisturb));\n    var borderSizeForSmallPersonas = '1px';\n    var borderSizeForLargePersonas = '2px';\n    var borderSize = size.isSize72 || size.isSize100 ? borderSizeForLargePersonas : borderSizeForSmallPersonas;\n    return {\n        presence: [\n            classNames.presence,\n            __assign(__assign({ position: 'absolute', height: personaPresenceSize.size12, width: personaPresenceSize.size12, borderRadius: '50%', top: 'auto', right: '-2px', bottom: '-2px', border: \"2px solid \".concat(presenceColorBackground), textAlign: 'center', boxSizing: 'content-box', backgroundClip: 'border-box' }, getHighContrastNoAdjustStyle()), { selectors: (_a = {},\n                    _a[HighContrastSelector] = {\n                        borderColor: 'Window',\n                        backgroundColor: 'WindowText',\n                    },\n                    _a) }),\n            (size.isSize8 || size.isSize10) && {\n                right: 'auto',\n                top: '7px',\n                left: 0,\n                border: 0,\n                selectors: (_b = {},\n                    _b[HighContrastSelector] = {\n                        top: '9px',\n                        border: '1px solid WindowText',\n                    },\n                    _b),\n            },\n            (size.isSize8 || size.isSize10 || size.isSize24 || size.isSize28 || size.isSize32) &&\n                makeSizeStyle(personaPresenceSize.size8),\n            (size.isSize40 || size.isSize48) && makeSizeStyle(personaPresenceSize.size12),\n            size.isSize16 && {\n                height: personaPresenceSize.size6,\n                width: personaPresenceSize.size6,\n                borderWidth: '1.5px',\n            },\n            size.isSize56 && makeSizeStyle(personaPresenceSize.size16),\n            size.isSize72 && makeSizeStyle(personaPresenceSize.size20),\n            size.isSize100 && makeSizeStyle(personaPresenceSize.size28),\n            size.isSize120 && makeSizeStyle(personaPresenceSize.size32),\n            presence.isAvailable && {\n                backgroundColor: presenceColorAvailable,\n                selectors: (_c = {},\n                    _c[HighContrastSelector] = backgroundColor('Highlight'),\n                    _c),\n            },\n            presence.isAway && backgroundColor(presenceColorAway),\n            presence.isBlocked && [\n                {\n                    selectors: (_d = {\n                            // Only show :after at larger sizes\n                            ':after': size.isSize40 || size.isSize48 || size.isSize72 || size.isSize100\n                                ? {\n                                    content: '\"\"',\n                                    width: '100%',\n                                    height: borderSize,\n                                    backgroundColor: presenceColorBusy,\n                                    transform: 'translateY(-50%) rotate(-45deg)',\n                                    position: 'absolute',\n                                    top: '50%',\n                                    left: 0,\n                                }\n                                : undefined\n                        },\n                        _d[HighContrastSelector] = {\n                            selectors: {\n                                ':after': {\n                                    width: \"calc(100% - 4px)\",\n                                    left: '2px',\n                                    backgroundColor: 'Window',\n                                },\n                            },\n                        },\n                        _d),\n                },\n            ],\n            presence.isBusy && backgroundColor(presenceColorBusy),\n            presence.isDoNotDisturb && backgroundColor(presenceColorDnd),\n            presence.isOffline && backgroundColor(presenceColorOffline),\n            (isOpenCirclePresence || presence.isBlocked) && [\n                {\n                    backgroundColor: presenceColorBackground,\n                    selectors: (_e = {\n                            ':before': {\n                                content: '\"\"',\n                                width: '100%',\n                                height: '100%',\n                                position: 'absolute',\n                                top: 0,\n                                left: 0,\n                                border: \"\".concat(borderSize, \" solid \").concat(presenceColorBusy),\n                                borderRadius: '50%',\n                                boxSizing: 'border-box',\n                            }\n                        },\n                        _e[HighContrastSelector] = {\n                            backgroundColor: 'WindowText',\n                            selectors: {\n                                ':before': {\n                                    width: \"calc(100% - 2px)\",\n                                    height: \"calc(100% - 2px)\",\n                                    top: '1px',\n                                    left: '1px',\n                                    borderColor: 'Window',\n                                },\n                            },\n                        },\n                        _e),\n                },\n            ],\n            isOpenCirclePresence && presence.isAvailable && makeBeforeBorderStyle(borderSize, presenceColorAvailable),\n            isOpenCirclePresence && presence.isBusy && makeBeforeBorderStyle(borderSize, presenceColorBusy),\n            isOpenCirclePresence && presence.isAway && makeBeforeBorderStyle(borderSize, presenceColorOof),\n            isOpenCirclePresence && presence.isDoNotDisturb && makeBeforeBorderStyle(borderSize, presenceColorDnd),\n            isOpenCirclePresence && presence.isOffline && makeBeforeBorderStyle(borderSize, presenceColorOffline),\n            isOpenCirclePresence &&\n                presence.isOffline &&\n                props.isOutOfOffice &&\n                makeBeforeBorderStyle(borderSize, presenceColorOof),\n        ],\n        presenceIcon: [\n            classNames.presenceIcon,\n            {\n                color: presenceColorBackground,\n                fontSize: '6px',\n                lineHeight: personaPresenceSize.size12,\n                verticalAlign: 'top',\n                selectors: (_f = {},\n                    _f[HighContrastSelector] = {\n                        color: 'Window',\n                    },\n                    _f),\n            },\n            size.isSize56 && {\n                fontSize: '8px',\n                lineHeight: personaPresenceSize.size16,\n            },\n            size.isSize72 && {\n                fontSize: fonts.small.fontSize,\n                lineHeight: personaPresenceSize.size20,\n            },\n            size.isSize100 && {\n                fontSize: fonts.medium.fontSize,\n                lineHeight: personaPresenceSize.size28,\n            },\n            size.isSize120 && {\n                fontSize: fonts.medium.fontSize,\n                lineHeight: personaPresenceSize.size32,\n            },\n            presence.isAway && {\n                position: 'relative',\n                left: isOpenCirclePresence ? undefined : '1px',\n            },\n            isOpenCirclePresence && presence.isAvailable && makeOpenCircleIconStyle(presenceColorAvailable),\n            isOpenCirclePresence && presence.isBusy && makeOpenCircleIconStyle(presenceColorBusy),\n            isOpenCirclePresence && presence.isAway && makeOpenCircleIconStyle(presenceColorOof),\n            isOpenCirclePresence && presence.isDoNotDisturb && makeOpenCircleIconStyle(presenceColorDnd),\n            isOpenCirclePresence && presence.isOffline && makeOpenCircleIconStyle(presenceColorOffline),\n            isOpenCirclePresence && presence.isOffline && props.isOutOfOffice && makeOpenCircleIconStyle(presenceColorOof),\n        ],\n    };\n};\nfunction makeOpenCircleIconStyle(color) {\n    return {\n        color: color,\n        borderColor: color,\n    };\n}\nfunction makeBeforeBorderStyle(borderSize, color) {\n    return {\n        selectors: {\n            ':before': {\n                border: \"\".concat(borderSize, \" solid \").concat(color),\n            },\n        },\n    };\n}\nfunction makeSizeStyle(size) {\n    return {\n        height: size,\n        width: size,\n    };\n}\nfunction backgroundColor(color) {\n    return { backgroundColor: color };\n}\n//# sourceMappingURL=PersonaPresence.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaPresenceBase } from './PersonaPresence.base';\nimport { getStyles } from './PersonaPresence.styles';\n/**\n * PersonaPresence is used to render an individual's presence.\n */\nexport var PersonaPresence = styled(PersonaPresenceBase, getStyles, undefined, { scope: 'PersonaPresence' });\n//# sourceMappingURL=PersonaPresence.js.map","import { PersonaInitialsColor } from './Persona.types';\n/**\n * Following colors are considered reserved and can only be set with overrides, so they are excluded from this set:\n * - `gray` and `black` can result in offensive persona coins with some initials combinations\n * - `red` often has a special meaning\n * - `transparent` is not intended to be used with typical initials due to accessibility issues;\n *   its primary use is for Facepile overflow buttons.\n */\nvar COLOR_SWATCHES_LOOKUP = [\n    PersonaInitialsColor.lightBlue,\n    PersonaInitialsColor.blue,\n    PersonaInitialsColor.darkBlue,\n    PersonaInitialsColor.teal,\n    PersonaInitialsColor.green,\n    PersonaInitialsColor.darkGreen,\n    PersonaInitialsColor.lightPink,\n    PersonaInitialsColor.pink,\n    PersonaInitialsColor.magenta,\n    PersonaInitialsColor.purple,\n    PersonaInitialsColor.orange,\n    PersonaInitialsColor.lightRed,\n    PersonaInitialsColor.darkRed,\n    PersonaInitialsColor.violet,\n    PersonaInitialsColor.gold,\n    PersonaInitialsColor.burgundy,\n    PersonaInitialsColor.warmGray,\n    PersonaInitialsColor.cyan,\n    PersonaInitialsColor.rust,\n    PersonaInitialsColor.coolGray,\n];\nvar COLOR_SWATCHES_NUM_ENTRIES = COLOR_SWATCHES_LOOKUP.length;\nfunction getInitialsColorFromName(displayName) {\n    var color = PersonaInitialsColor.blue;\n    if (!displayName) {\n        return color;\n    }\n    var hashCode = 0;\n    for (var iLen = displayName.length - 1; iLen >= 0; iLen--) {\n        var ch = displayName.charCodeAt(iLen);\n        var shift = iLen % 8;\n        // eslint-disable-next-line no-bitwise\n        hashCode ^= (ch << shift) + (ch >> (8 - shift));\n    }\n    color = COLOR_SWATCHES_LOOKUP[hashCode % COLOR_SWATCHES_NUM_ENTRIES];\n    return color;\n}\nfunction personaInitialsColorToHexCode(personaInitialsColor) {\n    switch (personaInitialsColor) {\n        case PersonaInitialsColor.lightBlue:\n            return '#4F6BED';\n        case PersonaInitialsColor.blue:\n            return '#0078D4';\n        case PersonaInitialsColor.darkBlue:\n            return '#004E8C';\n        case PersonaInitialsColor.teal:\n            return '#038387';\n        case PersonaInitialsColor.lightGreen:\n        case PersonaInitialsColor.green:\n            return '#498205';\n        case PersonaInitialsColor.darkGreen:\n            return '#0B6A0B';\n        case PersonaInitialsColor.lightPink:\n            return '#C239B3';\n        case PersonaInitialsColor.pink:\n            return '#E3008C';\n        case PersonaInitialsColor.magenta:\n            return '#881798';\n        case PersonaInitialsColor.purple:\n            return '#5C2E91';\n        case PersonaInitialsColor.orange:\n            return '#CA5010';\n        // eslint-disable-next-line deprecation/deprecation\n        case PersonaInitialsColor.red:\n            return '#EE1111';\n        case PersonaInitialsColor.lightRed:\n            return '#D13438';\n        case PersonaInitialsColor.darkRed:\n            return '#A4262C';\n        case PersonaInitialsColor.transparent:\n            return 'transparent';\n        case PersonaInitialsColor.violet:\n            return '#8764B8';\n        case PersonaInitialsColor.gold:\n            return '#986F0B';\n        case PersonaInitialsColor.burgundy:\n            return '#750B1C';\n        case PersonaInitialsColor.warmGray:\n            return '#7A7574';\n        case PersonaInitialsColor.cyan:\n            return '#005B70';\n        case PersonaInitialsColor.rust:\n            return '#8E562E';\n        case PersonaInitialsColor.coolGray:\n            return '#69797E';\n        // eslint-disable-next-line deprecation/deprecation\n        case PersonaInitialsColor.black:\n            return '#1D1D1D';\n        case PersonaInitialsColor.gray:\n            return '#393939';\n    }\n}\n/** @deprecated Use `getPersonaInitialsColor` */\nexport function initialsColorPropToColorCode(props) {\n    return getPersonaInitialsColor(props);\n}\n/**\n * Gets the hex color string (prefixed with #) for the given persona props.\n * This is the logic used internally by the Persona control.\n * @param props - Current persona props\n * @returns Hex color string prefixed with #\n */\nexport function getPersonaInitialsColor(props) {\n    // eslint-disable-next-line deprecation/deprecation\n    var primaryText = props.primaryText, text = props.text;\n    var initialsColor = props.initialsColor;\n    var initialsColorCode;\n    if (typeof initialsColor === 'string') {\n        initialsColorCode = initialsColor;\n    }\n    else {\n        initialsColor = initialsColor !== undefined ? initialsColor : getInitialsColorFromName(text || primaryText);\n        initialsColorCode = personaInitialsColorToHexCode(initialsColor);\n    }\n    return initialsColorCode;\n}\n//# sourceMappingURL=PersonaInitialsColor.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, memoizeFunction, getInitials, getNativeProps, getRTL, getPropsWithDefaults, } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nimport { PersonaPresence } from '../PersonaPresence/index';\nimport { Icon } from '../../../Icon';\nimport { Image, ImageFit, ImageLoadState } from '../../../Image';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from '../Persona.types';\nimport { getPersonaInitialsColor } from '../PersonaInitialsColor';\nimport { sizeToPixels } from '../PersonaConsts';\nimport { useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction({\n    // There can be many PersonaCoin rendered with different sizes.\n    // Therefore setting a larger cache size.\n    cacheSize: 100,\n});\nvar getInitialsStyles = memoizeFunction(function (className, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin) {\n    return mergeStyles(className, !showUnknownPersonaCoin && {\n        backgroundColor: getPersonaInitialsColor({ text: text, initialsColor: initialsColor, primaryText: primaryText }),\n        color: initialsTextColor,\n    });\n});\nvar DEFAULT_PROPS = {\n    size: PersonaSize.size48,\n    presence: PersonaPresenceEnum.none,\n    imageAlt: '',\n};\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: 'PersonaCoin',\n            props: props,\n            deprecations: { primaryText: 'text' },\n        });\n    }\n}\nfunction useImageLoadState(_a) {\n    var onPhotoLoadingStateChange = _a.onPhotoLoadingStateChange, imageUrl = _a.imageUrl;\n    var _b = React.useState(ImageLoadState.notLoaded), imageLoadState = _b[0], setImageLoadstate = _b[1];\n    React.useEffect(function () {\n        setImageLoadstate(ImageLoadState.notLoaded);\n    }, [imageUrl]);\n    var onLoadingStateChange = function (loadState) {\n        setImageLoadstate(loadState);\n        onPhotoLoadingStateChange === null || onPhotoLoadingStateChange === void 0 ? void 0 : onPhotoLoadingStateChange(loadState);\n    };\n    return [imageLoadState, onLoadingStateChange];\n}\n/**\n * PersonaCoin with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaCoinBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    useDebugWarnings(props);\n    var _a = useImageLoadState(props), imageLoadState = _a[0], onLoadingStateChange = _a[1];\n    var renderCoin = getCoinRenderer(onLoadingStateChange);\n    var className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, \n    // eslint-disable-next-line deprecation/deprecation\n    _b = props.onRenderCoin, \n    // eslint-disable-next-line deprecation/deprecation\n    onRenderCoin = _b === void 0 ? renderCoin : _b, \n    // eslint-disable-next-line deprecation/deprecation\n    _c = props.onRenderPersonaCoin, \n    // eslint-disable-next-line deprecation/deprecation\n    onRenderPersonaCoin = _c === void 0 ? onRenderCoin : _c, _d = props.onRenderInitials, onRenderInitials = _d === void 0 ? renderPersonaCoinInitials : _d, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, \n    // eslint-disable-next-line deprecation/deprecation\n    primaryText = props.primaryText, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, text = props.text, theme = props.theme, size = props.size;\n    var divProps = getNativeProps(props, divProperties);\n    var divCoinProps = getNativeProps(coinProps || {}, divProperties);\n    var coinSizeStyle = coinSize ? { width: coinSize, height: coinSize } : undefined;\n    var hideImage = showUnknownPersonaCoin;\n    var personaPresenceProps = {\n        coinSize: coinSize,\n        isOutOfOffice: isOutOfOffice,\n        presence: presence,\n        presenceTitle: presenceTitle,\n        presenceColors: presenceColors,\n        size: size,\n        theme: theme,\n    };\n    // Use getStyles from props, or fall back to getStyles from styles file.\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: coinProps && coinProps.className ? coinProps.className : className,\n        size: size,\n        coinSize: coinSize,\n        showUnknownPersonaCoin: showUnknownPersonaCoin,\n    });\n    var shouldRenderInitials = Boolean(imageLoadState !== ImageLoadState.loaded &&\n        ((showInitialsUntilImageLoads && imageUrl) || !imageUrl || imageLoadState === ImageLoadState.error || hideImage));\n    return (React.createElement(\"div\", __assign({ role: \"presentation\" }, divProps, { className: classNames.coin, ref: forwardedRef }),\n        // Render PersonaCoin if size is not size8. size10 and tiny need to removed after a deprecation cleanup.\n        // eslint-disable-next-line deprecation/deprecation\n        size !== PersonaSize.size8 && size !== PersonaSize.size10 && size !== PersonaSize.tiny ? (React.createElement(\"div\", __assign({ role: \"presentation\" }, divCoinProps, { className: classNames.imageArea, style: coinSizeStyle }),\n            shouldRenderInitials && (React.createElement(\"div\", { className: getInitialsStyles(classNames.initials, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin), style: coinSizeStyle, \"aria-hidden\": \"true\" }, onRenderInitials(props, renderPersonaCoinInitials))),\n            !hideImage && onRenderPersonaCoin(props, renderCoin),\n            React.createElement(PersonaPresence, __assign({}, personaPresenceProps)))) : // Otherwise, render just PersonaPresence.\n            props.presence ? (React.createElement(PersonaPresence, __assign({}, personaPresenceProps))) : (\n            // Just render Contact Icon if there isn't a Presence prop.\n            React.createElement(Icon, { iconName: \"Contact\", className: classNames.size10WithoutPresenceIcon })),\n        props.children));\n});\nPersonaCoinBase.displayName = 'PersonaCoinBase';\nvar getCoinRenderer = function (onLoadingStateChange) {\n    return function (_a) {\n        var coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, imageAlt = _a.imageAlt, imageShouldFadeIn = _a.imageShouldFadeIn, imageShouldStartVisible = _a.imageShouldStartVisible, theme = _a.theme, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, _b = _a.size, size = _b === void 0 ? DEFAULT_PROPS.size : _b;\n        // Render the Image component only if an image URL is provided\n        if (!imageUrl) {\n            return null;\n        }\n        var classNames = getClassNames(styles, {\n            theme: theme,\n            size: size,\n            showUnknownPersonaCoin: showUnknownPersonaCoin,\n        });\n        var dimension = coinSize || sizeToPixels[size];\n        return (React.createElement(Image, { className: classNames.image, imageFit: ImageFit.cover, src: imageUrl, width: dimension, height: dimension, alt: imageAlt, shouldFadeIn: imageShouldFadeIn, shouldStartVisible: imageShouldStartVisible, onLoadingStateChange: onLoadingStateChange }));\n    };\n};\nvar renderPersonaCoinInitials = function (_a) {\n    var imageInitials = _a.imageInitials, allowPhoneInitials = _a.allowPhoneInitials, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, text = _a.text, \n    // eslint-disable-next-line deprecation/deprecation\n    primaryText = _a.primaryText, theme = _a.theme;\n    if (showUnknownPersonaCoin) {\n        return React.createElement(Icon, { iconName: \"Help\" });\n    }\n    var isRTL = getRTL(theme);\n    imageInitials = imageInitials || getInitials(text || primaryText || '', isRTL, allowPhoneInitials);\n    return imageInitials !== '' ? React.createElement(\"span\", null, imageInitials) : React.createElement(Icon, { iconName: \"Contact\" });\n};\n//# sourceMappingURL=PersonaCoin.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { sizeBoolean, sizeToPixels } from '../PersonaConsts';\nvar GlobalClassNames = {\n    coin: 'ms-Persona-coin',\n    imageArea: 'ms-Persona-imageArea',\n    image: 'ms-Persona-image',\n    initials: 'ms-Persona-initials',\n    size8: 'ms-Persona--size8',\n    size10: 'ms-Persona--size10',\n    size16: 'ms-Persona--size16',\n    size24: 'ms-Persona--size24',\n    size28: 'ms-Persona--size28',\n    size32: 'ms-Persona--size32',\n    size40: 'ms-Persona--size40',\n    size48: 'ms-Persona--size48',\n    size56: 'ms-Persona--size56',\n    size72: 'ms-Persona--size72',\n    size100: 'ms-Persona--size100',\n    size120: 'ms-Persona--size120',\n};\nexport var getStyles = function (props) {\n    var _a;\n    var className = props.className, theme = props.theme, coinSize = props.coinSize;\n    var palette = theme.palette, fonts = theme.fonts;\n    var size = sizeBoolean(props.size);\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    // Static colors used when displaying 'unknown persona' coin\n    var unknownPersonaBackgroundColor = 'rgb(234, 234, 234)';\n    var unknownPersonaFontColor = 'rgb(168, 0, 0)';\n    var dimension = coinSize || (props.size && sizeToPixels[props.size]) || 48;\n    return {\n        coin: [\n            classNames.coin,\n            fonts.medium,\n            size.isSize8 && classNames.size8,\n            size.isSize10 && classNames.size10,\n            size.isSize16 && classNames.size16,\n            size.isSize24 && classNames.size24,\n            size.isSize28 && classNames.size28,\n            size.isSize32 && classNames.size32,\n            size.isSize40 && classNames.size40,\n            size.isSize48 && classNames.size48,\n            size.isSize56 && classNames.size56,\n            size.isSize72 && classNames.size72,\n            size.isSize100 && classNames.size100,\n            size.isSize120 && classNames.size120,\n            className,\n        ],\n        size10WithoutPresenceIcon: {\n            fontSize: fonts.xSmall.fontSize,\n            position: 'absolute',\n            top: '5px',\n            right: 'auto',\n            left: 0,\n        },\n        imageArea: [\n            classNames.imageArea,\n            {\n                position: 'relative',\n                textAlign: 'center',\n                flex: '0 0 auto',\n                height: dimension,\n                width: dimension,\n            },\n            dimension <= 10 && {\n                overflow: 'visible',\n                background: 'transparent',\n                height: 0,\n                width: 0,\n            },\n        ],\n        image: [\n            classNames.image,\n            {\n                marginRight: '10px',\n                position: 'absolute',\n                top: 0,\n                left: 0,\n                width: '100%',\n                height: '100%',\n                border: 0,\n                borderRadius: '50%',\n                perspective: '1px',\n            },\n            dimension <= 10 && {\n                overflow: 'visible',\n                background: 'transparent',\n                height: 0,\n                width: 0,\n            },\n            dimension > 10 && {\n                height: dimension,\n                width: dimension,\n            },\n        ],\n        initials: [\n            classNames.initials,\n            {\n                borderRadius: '50%',\n                color: props.showUnknownPersonaCoin ? unknownPersonaFontColor : palette.white,\n                fontSize: fonts.large.fontSize,\n                fontWeight: FontWeights.semibold,\n                // copying the logic for the dimensions; defaulted to 46 for size48\n                lineHeight: dimension === 48 ? 46 : dimension,\n                height: dimension,\n                selectors: (_a = {},\n                    _a[HighContrastSelector] = __assign(__assign({ border: '1px solid WindowText' }, getHighContrastNoAdjustStyle()), { color: 'WindowText', boxSizing: 'border-box', backgroundColor: 'Window !important' }),\n                    _a.i = {\n                        fontWeight: FontWeights.semibold,\n                    },\n                    _a),\n            },\n            props.showUnknownPersonaCoin && {\n                backgroundColor: unknownPersonaBackgroundColor,\n            },\n            dimension < 32 && {\n                fontSize: fonts.xSmall.fontSize,\n            },\n            dimension >= 32 &&\n                dimension < 40 && {\n                fontSize: fonts.medium.fontSize,\n            },\n            dimension >= 40 &&\n                dimension < 56 && {\n                fontSize: fonts.mediumPlus.fontSize,\n            },\n            dimension >= 56 &&\n                dimension < 72 && {\n                fontSize: fonts.xLarge.fontSize,\n            },\n            dimension >= 72 &&\n                dimension < 100 && {\n                fontSize: fonts.xxLarge.fontSize,\n            },\n            dimension >= 100 && {\n                fontSize: fonts.superLarge.fontSize,\n            },\n        ],\n    };\n};\n//# sourceMappingURL=PersonaCoin.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaCoinBase } from './PersonaCoin.base';\nimport { getStyles } from './PersonaCoin.styles';\n/**\n * PersonaCoin is used to render an individual's avatar and presence.\n */\nexport var PersonaCoin = styled(PersonaCoinBase, getStyles, undefined, {\n    scope: 'PersonaCoin',\n});\n//# sourceMappingURL=PersonaCoin.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps, getPropsWithDefaults } from '../../Utilities';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { PersonaCoin } from './PersonaCoin/PersonaCoin';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from './Persona.types';\nimport { useWarnings, useMergedRefs } from '@fluentui/react-hooks';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n    size: PersonaSize.size48,\n    presence: PersonaPresenceEnum.none,\n    imageAlt: '',\n    showOverflowTooltip: true,\n};\nfunction useDebugWarnings(props) {\n    if (process.env.NODE_ENV !== 'production') {\n        // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n        useWarnings({\n            name: 'Persona',\n            props: props,\n            deprecations: { primaryText: 'text' },\n        });\n    }\n}\n/**\n * Persona with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n    var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n    useDebugWarnings(props);\n    var rootRef = React.useRef(null);\n    var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n    /**\n     * Deprecation helper for getting text.\n     */\n    var getText = function () {\n        // eslint-disable-next-line deprecation/deprecation\n        return props.text || props.primaryText || '';\n    };\n    /**\n     * Renders various types of Text (primaryText, secondaryText, etc)\n     * based on the classNames passed\n     * @param elementClassNames - element className\n     * @param renderFunction - render function\n     * @param defaultRenderFunction - default render function\n     */\n    var renderElement = function (elementClassNames, renderFunction, defaultRenderFunction) {\n        var content = renderFunction && renderFunction(props, defaultRenderFunction);\n        return content ? (React.createElement(\"div\", { dir: \"auto\", className: elementClassNames }, content)) : undefined;\n    };\n    /**\n     * using closure to wrap the default render behavior\n     * to make it independent of the type of text passed\n     * @param text - text to render\n     */\n    var onRenderText = function (text, tooltip) {\n        if (tooltip === void 0) { tooltip = true; }\n        // return default render behavior for valid text or undefined\n        return text\n            ? tooltip\n                ? function () {\n                    // default onRender behavior\n                    return (React.createElement(TooltipHost, { content: text, overflowMode: TooltipOverflowMode.Parent, directionalHint: DirectionalHint.topLeftEdge }, text));\n                }\n                : function () { return React.createElement(React.Fragment, null, text); }\n            : undefined;\n    };\n    var onInternalRenderPersonaCoin = function (providedCoinProps) {\n        return React.createElement(PersonaCoin, __assign({}, providedCoinProps));\n    };\n    // wrapping default render behavior based on various props properties\n    var onInternalRenderPrimaryText = onRenderText(getText(), props.showOverflowTooltip);\n    var onInternalRenderSecondaryText = onRenderText(props.secondaryText, props.showOverflowTooltip);\n    var onInternalRenderTertiaryText = onRenderText(props.tertiaryText, props.showOverflowTooltip);\n    var onInternalRenderOptionalText = onRenderText(props.optionalText, props.showOverflowTooltip);\n    var hidePersonaDetails = props.hidePersonaDetails, _a = props.onRenderOptionalText, onRenderOptionalText = _a === void 0 ? onInternalRenderOptionalText : _a, _b = props.onRenderPrimaryText, onRenderPrimaryText = _b === void 0 ? onInternalRenderPrimaryText : _b, _c = props.onRenderSecondaryText, onRenderSecondaryText = _c === void 0 ? onInternalRenderSecondaryText : _c, _d = props.onRenderTertiaryText, onRenderTertiaryText = _d === void 0 ? onInternalRenderTertiaryText : _d, _e = props.onRenderPersonaCoin, onRenderPersonaCoin = _e === void 0 ? onInternalRenderPersonaCoin : _e;\n    var size = props.size;\n    // These properties are to be explicitly passed into PersonaCoin because they are the only props directly used\n    var allowPhoneInitials = props.allowPhoneInitials, className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageAlt = props.imageAlt, imageInitials = props.imageInitials, imageShouldFadeIn = props.imageShouldFadeIn, imageShouldStartVisible = props.imageShouldStartVisible, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, onPhotoLoadingStateChange = props.onPhotoLoadingStateChange, \n    // eslint-disable-next-line deprecation/deprecation\n    onRenderCoin = props.onRenderCoin, onRenderInitials = props.onRenderInitials, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, showSecondaryText = props.showSecondaryText, theme = props.theme;\n    var personaCoinProps = __assign({ allowPhoneInitials: allowPhoneInitials, showUnknownPersonaCoin: showUnknownPersonaCoin, coinSize: coinSize, imageAlt: imageAlt, imageInitials: imageInitials, imageShouldFadeIn: imageShouldFadeIn, imageShouldStartVisible: imageShouldStartVisible, imageUrl: imageUrl, initialsColor: initialsColor, initialsTextColor: initialsTextColor, onPhotoLoadingStateChange: onPhotoLoadingStateChange, onRenderCoin: onRenderCoin, onRenderInitials: onRenderInitials, presence: presence, presenceTitle: presenceTitle, showInitialsUntilImageLoads: showInitialsUntilImageLoads, size: size, text: getText(), isOutOfOffice: isOutOfOffice, presenceColors: presenceColors }, coinProps);\n    var classNames = getClassNames(styles, {\n        theme: theme,\n        className: className,\n        showSecondaryText: showSecondaryText,\n        presence: presence,\n        size: size,\n    });\n    var divProps = getNativeProps(props, divProperties);\n    var personaDetails = (React.createElement(\"div\", { className: classNames.details },\n        renderElement(classNames.primaryText, onRenderPrimaryText, onInternalRenderPrimaryText),\n        renderElement(classNames.secondaryText, onRenderSecondaryText, onInternalRenderSecondaryText),\n        renderElement(classNames.tertiaryText, onRenderTertiaryText, onInternalRenderTertiaryText),\n        renderElement(classNames.optionalText, onRenderOptionalText, onInternalRenderOptionalText),\n        props.children));\n    return (React.createElement(\"div\", __assign({}, divProps, { ref: mergedRootRef, className: classNames.root, style: coinSize ? { height: coinSize, minWidth: coinSize } : undefined }),\n        onRenderPersonaCoin(personaCoinProps, onRenderPersonaCoin),\n        /* eslint-disable deprecation/deprecation */\n        (!hidePersonaDetails ||\n            size === PersonaSize.size8 ||\n            size === PersonaSize.size10 ||\n            size === PersonaSize.tiny) &&\n            personaDetails\n    /* eslint-enable deprecation/deprecation */\n    ));\n});\nPersonaBase.displayName = 'PersonaBase';\n//# sourceMappingURL=Persona.base.js.map","import { FontWeights, normalize, noWrap, getGlobalClassNames } from '../../Styling';\nimport { personaSize, presenceBoolean, sizeBoolean } from './PersonaConsts';\nvar GlobalClassNames = {\n    root: 'ms-Persona',\n    size8: 'ms-Persona--size8',\n    size10: 'ms-Persona--size10',\n    size16: 'ms-Persona--size16',\n    size24: 'ms-Persona--size24',\n    size28: 'ms-Persona--size28',\n    size32: 'ms-Persona--size32',\n    size40: 'ms-Persona--size40',\n    size48: 'ms-Persona--size48',\n    size56: 'ms-Persona--size56',\n    size72: 'ms-Persona--size72',\n    size100: 'ms-Persona--size100',\n    size120: 'ms-Persona--size120',\n    available: 'ms-Persona--online',\n    away: 'ms-Persona--away',\n    blocked: 'ms-Persona--blocked',\n    busy: 'ms-Persona--busy',\n    doNotDisturb: 'ms-Persona--donotdisturb',\n    offline: 'ms-Persona--offline',\n    details: 'ms-Persona-details',\n    primaryText: 'ms-Persona-primaryText',\n    secondaryText: 'ms-Persona-secondaryText',\n    tertiaryText: 'ms-Persona-tertiaryText',\n    optionalText: 'ms-Persona-optionalText',\n    textContent: 'ms-Persona-textContent',\n};\nexport var getStyles = function (props) {\n    var className = props.className, showSecondaryText = props.showSecondaryText, theme = props.theme;\n    var semanticColors = theme.semanticColors, fonts = theme.fonts;\n    var classNames = getGlobalClassNames(GlobalClassNames, theme);\n    var size = sizeBoolean(props.size);\n    var presence = presenceBoolean(props.presence);\n    var showSecondaryTextDefaultHeight = '16px';\n    var sharedTextStyles = {\n        color: semanticColors.bodySubtext,\n        fontWeight: FontWeights.regular,\n        fontSize: fonts.small.fontSize,\n    };\n    return {\n        root: [\n            classNames.root,\n            theme.fonts.medium,\n            normalize,\n            {\n                color: semanticColors.bodyText,\n                position: 'relative',\n                height: personaSize.size48,\n                minWidth: personaSize.size48,\n                display: 'flex',\n                alignItems: 'center',\n                selectors: {\n                    '.contextualHost': {\n                        display: 'none',\n                    },\n                },\n            },\n            size.isSize8 && [\n                classNames.size8,\n                {\n                    height: personaSize.size8,\n                    minWidth: personaSize.size8,\n                },\n            ],\n            // TODO: Deprecated size and needs to be removed in a future major release.\n            size.isSize10 && [\n                classNames.size10,\n                {\n                    height: personaSize.size10,\n                    minWidth: personaSize.size10,\n                },\n            ],\n            // TODO: Deprecated size and needs to be removed in a future major release.\n            size.isSize16 && [\n                classNames.size16,\n                {\n                    height: personaSize.size16,\n                    minWidth: personaSize.size16,\n                },\n            ],\n            size.isSize24 && [\n                classNames.size24,\n                {\n                    height: personaSize.size24,\n                    minWidth: personaSize.size24,\n                },\n            ],\n            size.isSize24 &&\n                showSecondaryText && {\n                height: '36px',\n            },\n            // TODO: Deprecated size and needs to be removed in a future major release.\n            size.isSize28 && [\n                classNames.size28,\n                {\n                    height: personaSize.size28,\n                    minWidth: personaSize.size28,\n                },\n            ],\n            size.isSize28 &&\n                showSecondaryText && {\n                height: '32px',\n            },\n            size.isSize32 && [\n                classNames.size32,\n                {\n                    height: personaSize.size32,\n                    minWidth: personaSize.size32,\n                },\n            ],\n            size.isSize40 && [\n                classNames.size40,\n                {\n                    height: personaSize.size40,\n                    minWidth: personaSize.size40,\n                },\n            ],\n            size.isSize48 && classNames.size48,\n            size.isSize56 && [\n                classNames.size56,\n                {\n                    height: personaSize.size56,\n                    minWidth: personaSize.size56,\n                },\n            ],\n            size.isSize72 && [\n                classNames.size72,\n                {\n                    height: personaSize.size72,\n                    minWidth: personaSize.size72,\n                },\n            ],\n            size.isSize100 && [\n                classNames.size100,\n                {\n                    height: personaSize.size100,\n                    minWidth: personaSize.size100,\n                },\n            ],\n            size.isSize120 && [\n                classNames.size120,\n                {\n                    height: personaSize.size120,\n                    minWidth: personaSize.size120,\n                },\n            ],\n            /**\n             * Modifiers: presence\n             */\n            presence.isAvailable && classNames.available,\n            presence.isAway && classNames.away,\n            presence.isBlocked && classNames.blocked,\n            presence.isBusy && classNames.busy,\n            presence.isDoNotDisturb && classNames.doNotDisturb,\n            presence.isOffline && classNames.offline,\n            className,\n        ],\n        details: [\n            classNames.details,\n            {\n                padding: '0 24px 0 16px',\n                minWidth: 0,\n                width: '100%',\n                textAlign: 'left',\n                display: 'flex',\n                flexDirection: 'column',\n                justifyContent: 'space-around',\n            },\n            (size.isSize8 || size.isSize10) && {\n                paddingLeft: 17, // increased padding because we don't render a coin at this size\n            },\n            (size.isSize24 || size.isSize28 || size.isSize32) && {\n                padding: '0 8px',\n            },\n            (size.isSize40 || size.isSize48) && {\n                padding: '0 12px',\n            },\n        ],\n        primaryText: [\n            classNames.primaryText,\n            noWrap,\n            {\n                color: semanticColors.bodyText,\n                fontWeight: FontWeights.regular,\n                fontSize: fonts.medium.fontSize,\n                selectors: {\n                    ':hover': {\n                        color: semanticColors.inputTextHovered,\n                    },\n                },\n            },\n            showSecondaryText && {\n                height: showSecondaryTextDefaultHeight,\n                lineHeight: showSecondaryTextDefaultHeight,\n                overflowX: 'hidden',\n            },\n            (size.isSize8 || size.isSize10) && {\n                fontSize: fonts.small.fontSize,\n                lineHeight: personaSize.size8,\n            },\n            size.isSize16 && {\n                lineHeight: personaSize.size28,\n            },\n            (size.isSize24 || size.isSize28 || size.isSize32 || size.isSize40 || size.isSize48) &&\n                showSecondaryText && {\n                height: 18,\n            },\n            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n                fontSize: fonts.xLarge.fontSize,\n            },\n            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n                showSecondaryText && {\n                height: 22,\n            },\n        ],\n        secondaryText: [\n            classNames.secondaryText,\n            noWrap,\n            sharedTextStyles,\n            (size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) && {\n                display: 'none',\n            },\n            showSecondaryText && {\n                display: 'block',\n                height: showSecondaryTextDefaultHeight,\n                lineHeight: showSecondaryTextDefaultHeight,\n                overflowX: 'hidden',\n            },\n            size.isSize24 &&\n                showSecondaryText && {\n                height: 18,\n            },\n            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n                fontSize: fonts.medium.fontSize,\n            },\n            (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n                showSecondaryText && {\n                height: 18,\n            },\n        ],\n        tertiaryText: [\n            classNames.tertiaryText,\n            noWrap,\n            sharedTextStyles,\n            {\n                display: 'none',\n                fontSize: fonts.medium.fontSize,\n            },\n            (size.isSize72 || size.isSize100 || size.isSize120) && {\n                display: 'block',\n            },\n        ],\n        optionalText: [\n            classNames.optionalText,\n            noWrap,\n            sharedTextStyles,\n            {\n                display: 'none',\n                fontSize: fonts.medium.fontSize,\n            },\n            (size.isSize100 || size.isSize120) && {\n                display: 'block',\n            },\n        ],\n        textContent: [classNames.textContent, noWrap],\n    };\n};\n//# sourceMappingURL=Persona.styles.js.map","import { styled } from '../../Utilities';\nimport { PersonaBase } from './Persona.base';\nimport { getStyles } from './Persona.styles';\n/**\n * Personas are used for rendering an individual's avatar, presence and details.\n * They are used within the PeoplePicker components.\n */\nexport var Persona = styled(PersonaBase, getStyles, undefined, {\n    scope: 'Persona',\n});\n//# sourceMappingURL=Persona.js.map","import { useEffect, useState } from \"react\";\nimport { configContext } from \"../ConfigContext\";\nexport async function fetchPhoto(accessToken) {\n    const headers = new Headers();\n    const bearer = `Bearer ${accessToken}`;\n    headers.append(\"Authorization\", bearer);\n    headers.append(\"Content-Type\", \"image/jpg\");\n    const options = {\n        method: \"GET\",\n        headers: headers,\n    };\n    return fetch(`${configContext.GRAPH_ENDPOINT}/me/thumbnailPhoto?api-version=1.6`, options).then((response) => response.blob());\n}\nexport function useGraphPhoto(graphToken) {\n    const [photo, setPhoto] = useState(\"\");\n    useEffect(() => {\n        if (graphToken) {\n            fetchPhoto(graphToken).then((response) => setPhoto(URL.createObjectURL(response)));\n        }\n    }, [graphToken]);\n    return photo;\n}\n","import { DefaultButton, DirectionalHint, FocusZone, Persona, PersonaInitialsColor, PersonaSize } from \"@fluentui/react\";\nimport * as React from \"react\";\nimport { useGraphPhoto } from \"../../../hooks/useGraphPhoto\";\nexport const MeControl = ({ openPanel, logout, account, graphToken }) => {\n    const photo = useGraphPhoto(graphToken);\n    return (React.createElement(FocusZone, null,\n        React.createElement(DefaultButton, { id: \"mecontrolHeader\", className: \"mecontrolHeaderButton\", menuProps: {\n                className: \"mecontrolContextualMenu\",\n                isBeakVisible: false,\n                directionalHintFixed: true,\n                directionalHint: DirectionalHint.bottomRightEdge,\n                calloutProps: {\n                    minPagePadding: 0,\n                },\n                items: [\n                    {\n                        key: \"SwitchDirectory\",\n                        text: \"Switch Directory\",\n                        onClick: openPanel,\n                    },\n                    {\n                        key: \"SignOut\",\n                        text: \"Sign Out\",\n                        onClick: logout,\n                    },\n                ],\n            }, styles: {\n                rootHovered: { backgroundColor: \"#393939\" },\n                rootFocused: { backgroundColor: \"#393939\" },\n                rootPressed: { backgroundColor: \"#393939\" },\n                rootExpanded: { backgroundColor: \"#393939\" },\n            } },\n            React.createElement(Persona, { imageUrl: photo, text: account === null || account === void 0 ? void 0 : account.name, secondaryText: account === null || account === void 0 ? void 0 : account.username, showSecondaryText: true, showInitialsUntilImageLoads: true, initialsColor: PersonaInitialsColor.teal, size: PersonaSize.size28, className: \"mecontrolHeaderPersona\" }))));\n};\n","import { DefaultButton } from \"@fluentui/react\";\nimport * as React from \"react\";\nexport const SignInButton = ({ login }) => {\n    return (React.createElement(DefaultButton, { className: \"mecontrolSigninButton\", text: \"Sign In\", onClick: login, styles: {\n            rootHovered: { backgroundColor: \"#393939\", color: \"#fff\" },\n            rootFocused: { backgroundColor: \"#393939\", color: \"#fff\" },\n            rootPressed: { backgroundColor: \"#393939\", color: \"#fff\" },\n        } }));\n};\n","import { AccountKind, CapabilityNames } from \"../../Common/Constants\";\nimport { ApiKind } from \"../../Contracts/DataModels\";\nimport { DefaultExperienceUtility } from \"../../Shared/DefaultExperienceUtility\";\nexport function getDatabaseAccountPropertiesFromMetadata(metadata) {\n    let properties = { documentEndpoint: metadata.documentEndpoint };\n    const apiExperience = DefaultExperienceUtility.getDefaultExperienceFromApiKind(metadata.apiKind);\n    if (apiExperience === \"Cassandra\") {\n        properties = Object.assign(properties, {\n            cassandraEndpoint: metadata.apiEndpoint,\n            capabilities: [{ name: CapabilityNames.EnableCassandra }],\n        });\n    }\n    else if (apiExperience === \"Tables\") {\n        properties = Object.assign(properties, {\n            tableEndpoint: metadata.apiEndpoint,\n            capabilities: [{ name: CapabilityNames.EnableTable }],\n        });\n    }\n    else if (apiExperience === \"Gremlin\") {\n        properties = Object.assign(properties, {\n            gremlinEndpoint: metadata.apiEndpoint,\n            capabilities: [{ name: CapabilityNames.EnableGremlin }],\n        });\n    }\n    else if (apiExperience === \"Mongo\") {\n        if (metadata.apiKind === ApiKind.MongoDBCompute) {\n            properties = Object.assign(properties, {\n                mongoEndpoint: metadata.mongoEndpoint,\n            });\n        }\n    }\n    return properties;\n}\nexport function getDatabaseAccountKindFromExperience(apiExperience) {\n    if (apiExperience === \"Mongo\") {\n        return AccountKind.MongoDB;\n    }\n    return AccountKind.GlobalDocumentDB;\n}\nexport function extractMasterKeyfromConnectionString(connectionString) {\n    // Only Gremlin uses the actual master key for connection to cosmos\n    const matchedParts = connectionString.match(\"AccountKey=(.*);ApiKind=Gremlin;$\");\n    return (matchedParts && matchedParts.length > 1 && matchedParts[1]) || undefined;\n}\n","export function extractFeatures(given = new URLSearchParams(window.location.search)) {\n    var _a;\n    const downcased = new URLSearchParams();\n    const set = (value, key) => {\n        downcased.set(key.toLowerCase(), value);\n    };\n    const get = (key, defaultValue) => { var _a, _b; return (_b = (_a = downcased.get(\"feature.\" + key)) !== null && _a !== void 0 ? _a : downcased.get(key)) !== null && _b !== void 0 ? _b : defaultValue; };\n    try {\n        new URLSearchParams(window.parent.location.search).forEach(set);\n    }\n    catch (_b) {\n        //\n    }\n    finally {\n        given.forEach(set);\n    }\n    return {\n        canExceedMaximumValue: \"true\" === get(\"canexceedmaximumvalue\"),\n        cosmosdb: \"true\" === get(\"cosmosdb\"),\n        enableAadDataPlane: \"true\" === get(\"enableaaddataplane\"),\n        enableResourceGraph: \"true\" === get(\"enableresourcegraph\"),\n        enableChangeFeedPolicy: \"true\" === get(\"enablechangefeedpolicy\"),\n        enableFixedCollectionWithSharedThroughput: \"true\" === get(\"enablefixedcollectionwithsharedthroughput\"),\n        enableKOPanel: \"true\" === get(\"enablekopanel\"),\n        enableNotebooks: \"true\" === get(\"enablenotebooks\"),\n        enableReactPane: \"true\" === get(\"enablereactpane\"),\n        enableRightPanelV2: \"true\" === get(\"enablerightpanelv2\"),\n        enableSchema: \"true\" === get(\"enableschema\"),\n        enableSDKoperations: \"true\" === get(\"enablesdkoperations\"),\n        enableSpark: \"true\" === get(\"enablespark\"),\n        enableTtl: \"true\" === get(\"enablettl\"),\n        enableKoResourceTree: \"true\" === get(\"enablekoresourcetree\"),\n        enableThroughputBuckets: \"true\" === get(\"enablethroughputbuckets\"),\n        executeSproc: \"true\" === get(\"dataexplorerexecutesproc\"),\n        hostedDataExplorer: \"true\" === get(\"hosteddataexplorerenabled\"),\n        mongoProxyEndpoint: get(\"mongoproxyendpoint\"),\n        mongoProxyAPIs: get(\"mongoproxyapis\"),\n        junoEndpoint: get(\"junoendpoint\"),\n        phoenixEndpoint: get(\"phoenixendpoint\"),\n        notebookBasePath: get(\"notebookbasepath\"),\n        notebookServerToken: get(\"notebookservertoken\"),\n        notebookServerUrl: get(\"notebookserverurl\"),\n        sandboxNotebookOutputs: \"true\" === get(\"sandboxnotebookoutputs\", \"true\"),\n        selfServeType: get(\"selfservetype\"),\n        pr: get(\"pr\"),\n        showMinRUSurvey: \"true\" === get(\"showminrusurvey\"),\n        ttl90Days: \"true\" === get(\"ttl90days\"),\n        autoscaleDefault: \"true\" === get(\"autoscaledefault\"),\n        partitionKeyDefault: \"true\" === get(\"partitionkeytest\"),\n        partitionKeyDefault2: \"true\" === get(\"pkpartitionkeytest\"),\n        notebooksDownBanner: \"true\" === get(\"notebooksDownBanner\"),\n        enableThroughputCap: \"true\" === get(\"enablethroughputcap\"),\n        enableHierarchicalKeys: \"true\" === get(\"enablehierarchicalkeys\"),\n        enableCopilot: \"true\" === get(\"enablecopilot\", \"true\"),\n        copilotVersion: (_a = get(\"copilotversion\")) !== null && _a !== void 0 ? _a : \"v2.0\",\n        disableCopilotPhoenixGateaway: \"true\" === get(\"disablecopilotphoenixgateaway\"),\n        enableCopilotFullSchema: \"true\" === get(\"enablecopilotfullschema\", \"true\"),\n        copilotChatFixedMonacoEditorHeight: \"true\" === get(\"copilotchatfixedmonacoeditorheight\"),\n        enablePriorityBasedExecution: \"true\" === get(\"enableprioritybasedexecution\"),\n        disableConnectionStringLogin: \"true\" === get(\"disableconnectionstringlogin\"),\n    };\n}\nexport function hasFlag(flags, desiredFlag) {\n    if (!flags || !desiredFlag) {\n        return false;\n    }\n    const features = flags.split(\"|\");\n    return features.find((feature) => feature === desiredFlag) ? true : false;\n}\n","import { SubscriptionType } from \"../Contracts/SubscriptionType\";\nexport const hoursInAMonth = 730;\nexport class AutoscalePricing {\n}\nAutoscalePricing.MonthlyPricing = {\n    default: {\n        singleMaster: {\n            Currency: \"USD\",\n            CurrencySign: \"$\",\n            Standard: {\n                StartingPrice: 24,\n                PricePerRU: 0.09,\n                PricePerGB: 0.25,\n            },\n        },\n        multiMaster: {\n            Currency: \"USD\",\n            CurrencySign: \"$\",\n            Standard: {\n                StartingPrice: 24,\n                PricePerRU: 0.12,\n                PricePerGB: 0.25,\n            },\n        },\n    },\n    mooncake: {\n        singleMaster: {\n            Currency: \"RMB\",\n            CurrencySign: \"¥\",\n            Standard: {\n                StartingPrice: 152,\n                PricePerRU: 0.57,\n                PricePerGB: 2.576,\n            },\n        },\n        multiMaster: {\n            Currency: \"RMB\",\n            CurrencySign: \"¥\",\n            Standard: {\n                StartingPrice: 152,\n                PricePerRU: 0.76,\n                PricePerGB: 2.576,\n            },\n        },\n    },\n};\nAutoscalePricing.HourlyPricing = {\n    default: {\n        singleMaster: {\n            Currency: \"USD\",\n            CurrencySign: \"$\",\n            Standard: {\n                StartingPrice: 24 / hoursInAMonth,\n                PricePerRU: 0.00012,\n                PricePerGB: 0.25 / hoursInAMonth,\n            },\n        },\n        multiMaster: {\n            Currency: \"USD\",\n            CurrencySign: \"$\",\n            Standard: {\n                StartingPrice: 24 / hoursInAMonth,\n                PricePerRU: 0.00016,\n                PricePerGB: 0.25 / hoursInAMonth,\n            },\n        },\n    },\n    mooncake: {\n        singleMaster: {\n            Currency: \"RMB\",\n            CurrencySign: \"¥\",\n            Standard: {\n                StartingPrice: AutoscalePricing.MonthlyPricing.mooncake.singleMaster.Standard.StartingPrice / hoursInAMonth,\n                PricePerRU: 0.000765,\n                PricePerGB: AutoscalePricing.MonthlyPricing.mooncake.singleMaster.Standard.PricePerGB / hoursInAMonth,\n            },\n        },\n        multiMaster: {\n            Currency: \"RMB\",\n            CurrencySign: \"¥\",\n            Standard: {\n                StartingPrice: AutoscalePricing.MonthlyPricing.mooncake.multiMaster.Standard.StartingPrice / hoursInAMonth,\n                PricePerRU: 0.00102,\n                PricePerGB: AutoscalePricing.MonthlyPricing.mooncake.multiMaster.Standard.PricePerGB / hoursInAMonth,\n            },\n        },\n    },\n};\nexport class OfferPricing {\n}\nOfferPricing.MonthlyPricing = {\n    default: {\n        Currency: \"USD\",\n        CurrencySign: \"$\",\n        S1Price: 25,\n        S2Price: 50,\n        S3Price: 100,\n        Standard: {\n            StartingPrice: 24,\n            PricePerRU: 0.06,\n            PricePerGB: 0.25,\n        },\n    },\n    mooncake: {\n        Currency: \"RMB\",\n        CurrencySign: \"¥\",\n        S1Price: 110.3,\n        S2Price: 220.6,\n        S3Price: 441.2,\n        Standard: {\n            StartingPrice: 152,\n            PricePerRU: 0.3794,\n            PricePerGB: 2.576,\n        },\n    },\n};\nOfferPricing.HourlyPricing = {\n    default: {\n        Currency: \"USD\",\n        CurrencySign: \"$\",\n        S1Price: 0.0336,\n        S2Price: 0.0672,\n        S3Price: 0.1344,\n        Standard: {\n            StartingPrice: 24 / hoursInAMonth,\n            SingleMasterPricePerRU: 0.00008,\n            MultiMasterPricePerRU: 0.00016,\n            PricePerGB: 0.25 / hoursInAMonth,\n        },\n    },\n    mooncake: {\n        Currency: \"RMB\",\n        CurrencySign: \"¥\",\n        S1Price: 0.15,\n        S2Price: 0.3,\n        S3Price: 0.6,\n        Standard: {\n            StartingPrice: OfferPricing.MonthlyPricing.mooncake.Standard.StartingPrice / hoursInAMonth,\n            SingleMasterPricePerRU: 0.00051,\n            MultiMasterPricePerRU: 0.00102,\n            PricePerGB: OfferPricing.MonthlyPricing.mooncake.Standard.PricePerGB / hoursInAMonth,\n        },\n    },\n};\nexport class CollectionCreation {\n}\n// TODO generate these values based on Product\\Services\\Documents\\ImageStore\\GatewayApplication\\Settings.xml\nCollectionCreation.MinRUPerPartitionBelow7Partitions = 400;\nCollectionCreation.MinRU7PartitionsTo25Partitions = 2500;\nCollectionCreation.MinRUPerPartitionAbove25Partitions = 100;\nCollectionCreation.MaxRUPerPartition = 10000;\nCollectionCreation.MinPartitionedCollectionRUs = 2500;\nCollectionCreation.NumberOfPartitionsInFixedCollection = 1;\nCollectionCreation.NumberOfPartitionsInUnlimitedCollection = 10;\nCollectionCreation.storage10Gb = \"10\";\nCollectionCreation.storage100Gb = \"100\";\nCollectionCreation.DefaultCollectionRUs1000 = 1000;\nCollectionCreation.DefaultCollectionRUs10K = 10000;\nCollectionCreation.DefaultCollectionRUs400 = 400;\nCollectionCreation.DefaultCollectionRUs2000 = 2000;\nCollectionCreation.DefaultCollectionRUs2500 = 2500;\nCollectionCreation.DefaultCollectionRUs5000 = 5000;\nCollectionCreation.DefaultCollectionRUs15000 = 15000;\nCollectionCreation.DefaultCollectionRUs20000 = 20000;\nCollectionCreation.DefaultCollectionRUs25000 = 25000;\nCollectionCreation.DefaultCollectionRUs100K = 100000;\nCollectionCreation.DefaultCollectionRUs1Million = 1000000;\nCollectionCreation.DefaultSubscriptionType = SubscriptionType.Free;\nCollectionCreation.TablesAPIDefaultDatabase = \"TablesDB\";\nexport const CollectionCreationDefaults = {\n    storage: CollectionCreation.storage100Gb,\n    throughput: {\n        fixed: CollectionCreation.DefaultCollectionRUs400,\n        unlimited: CollectionCreation.DefaultCollectionRUs400,\n        unlimitedmax: CollectionCreation.DefaultCollectionRUs1Million,\n        unlimitedmin: CollectionCreation.DefaultCollectionRUs400,\n        shared: CollectionCreation.DefaultCollectionRUs400,\n    },\n};\nexport class SubscriptionUtilMappings {\n}\nSubscriptionUtilMappings.FreeTierSubscriptionIds = [\n    \"b8f2ff04-0a81-4cf9-95ef-5828d16981d2\",\n    \"39b1fdff-e5b2-4f83-adb4-33cb3aabf5ea\",\n    \"41f6d14d-ece1-46e4-942c-02c00d67f7d6\",\n    \"11dc62e3-77dc-4ef5-a46b-480ec6caa8fe\",\n    \"199d0919-60bd-448e-b64d-8461a0fe9747\",\n    \"a57b6849-d443-44cf-a3b7-7dd07ead9401\",\n];\nexport class AutopilotDocumentation {\n}\nAutopilotDocumentation.Url = \"https://aka.ms/cosmos-autoscale-info\";\nexport class FreeTierLimits {\n}\nFreeTierLimits.RU = 1000;\nFreeTierLimits.Storage = 25;\nexport class QueryConstants {\n}\nQueryConstants.CancelQueryTitle = \"Cancel query\";\nQueryConstants.CancelQuerySubTextTemplate = \"{0} Do you want to cancel this query?\";\nQueryConstants.CancelQueryTimeoutThresholdReached = \"The query timeout threshold has been reached.\";\n","// Data Explorer specific actions. No need to keep this in sync with the one in Portal.\nexport var Action;\n(function (Action) {\n    Action[Action[\"CollapseTreeNode\"] = 0] = \"CollapseTreeNode\";\n    Action[Action[\"CreateCollection\"] = 1] = \"CreateCollection\";\n    Action[Action[\"CreateDocument\"] = 2] = \"CreateDocument\";\n    Action[Action[\"CreateStoredProcedure\"] = 3] = \"CreateStoredProcedure\";\n    Action[Action[\"CreateTrigger\"] = 4] = \"CreateTrigger\";\n    Action[Action[\"CreateUDF\"] = 5] = \"CreateUDF\";\n    Action[Action[\"DeleteCollection\"] = 6] = \"DeleteCollection\";\n    Action[Action[\"DeleteDatabase\"] = 7] = \"DeleteDatabase\";\n    Action[Action[\"DeleteDocument\"] = 8] = \"DeleteDocument\";\n    Action[Action[\"ExpandTreeNode\"] = 9] = \"ExpandTreeNode\";\n    Action[Action[\"ExecuteQuery\"] = 10] = \"ExecuteQuery\";\n    Action[Action[\"HasFeature\"] = 11] = \"HasFeature\";\n    Action[Action[\"GetVNETServices\"] = 12] = \"GetVNETServices\";\n    Action[Action[\"InitializeAccountLocationFromResourceGroup\"] = 13] = \"InitializeAccountLocationFromResourceGroup\";\n    Action[Action[\"InitializeDataExplorer\"] = 14] = \"InitializeDataExplorer\";\n    Action[Action[\"LoadDatabaseAccount\"] = 15] = \"LoadDatabaseAccount\";\n    Action[Action[\"LoadCollections\"] = 16] = \"LoadCollections\";\n    Action[Action[\"LoadDatabases\"] = 17] = \"LoadDatabases\";\n    Action[Action[\"LoadOffers\"] = 18] = \"LoadOffers\";\n    Action[Action[\"MongoShell\"] = 19] = \"MongoShell\";\n    Action[Action[\"ContextualPane\"] = 20] = \"ContextualPane\";\n    Action[Action[\"ScaleThroughput\"] = 21] = \"ScaleThroughput\";\n    Action[Action[\"ToggleAutoscaleSetting\"] = 22] = \"ToggleAutoscaleSetting\";\n    Action[Action[\"SelectItem\"] = 23] = \"SelectItem\";\n    Action[Action[\"Tab\"] = 24] = \"Tab\";\n    Action[Action[\"UpdateDocument\"] = 25] = \"UpdateDocument\";\n    Action[Action[\"UpdateSettings\"] = 26] = \"UpdateSettings\";\n    Action[Action[\"UpdateStoredProcedure\"] = 27] = \"UpdateStoredProcedure\";\n    Action[Action[\"UpdateTrigger\"] = 28] = \"UpdateTrigger\";\n    Action[Action[\"UpdateUDF\"] = 29] = \"UpdateUDF\";\n    Action[Action[\"LoadResourceTree\"] = 30] = \"LoadResourceTree\";\n    Action[Action[\"CreateDatabase\"] = 31] = \"CreateDatabase\";\n    Action[Action[\"ResolveConflict\"] = 32] = \"ResolveConflict\";\n    Action[Action[\"DeleteConflict\"] = 33] = \"DeleteConflict\";\n    Action[Action[\"SaveQuery\"] = 34] = \"SaveQuery\";\n    Action[Action[\"SetupSavedQueries\"] = 35] = \"SetupSavedQueries\";\n    Action[Action[\"LoadSavedQuery\"] = 36] = \"LoadSavedQuery\";\n    Action[Action[\"DeleteSavedQuery\"] = 37] = \"DeleteSavedQuery\";\n    Action[Action[\"ConnectEncryptionToken\"] = 38] = \"ConnectEncryptionToken\";\n    Action[Action[\"SignInAad\"] = 39] = \"SignInAad\";\n    Action[Action[\"SignOutAad\"] = 40] = \"SignOutAad\";\n    Action[Action[\"FetchTenants\"] = 41] = \"FetchTenants\";\n    Action[Action[\"FetchSubscriptions\"] = 42] = \"FetchSubscriptions\";\n    Action[Action[\"FetchAccounts\"] = 43] = \"FetchAccounts\";\n    Action[Action[\"GetAccountKeys\"] = 44] = \"GetAccountKeys\";\n    Action[Action[\"LoadingStatus\"] = 45] = \"LoadingStatus\";\n    Action[Action[\"AccountSwitch\"] = 46] = \"AccountSwitch\";\n    Action[Action[\"SubscriptionSwitch\"] = 47] = \"SubscriptionSwitch\";\n    Action[Action[\"TenantSwitch\"] = 48] = \"TenantSwitch\";\n    Action[Action[\"DefaultTenantSwitch\"] = 49] = \"DefaultTenantSwitch\";\n    Action[Action[\"CreateNotebookWorkspace\"] = 50] = \"CreateNotebookWorkspace\";\n    Action[Action[\"NotebookErrorNotification\"] = 51] = \"NotebookErrorNotification\";\n    Action[Action[\"CreateSparkCluster\"] = 52] = \"CreateSparkCluster\";\n    Action[Action[\"UpdateSparkCluster\"] = 53] = \"UpdateSparkCluster\";\n    Action[Action[\"DeleteSparkCluster\"] = 54] = \"DeleteSparkCluster\";\n    Action[Action[\"LibraryManage\"] = 55] = \"LibraryManage\";\n    Action[Action[\"ClusterLibraryManage\"] = 56] = \"ClusterLibraryManage\";\n    Action[Action[\"ModifyOptionForThroughputWithSharedDatabase\"] = 57] = \"ModifyOptionForThroughputWithSharedDatabase\";\n    Action[Action[\"EnableAzureSynapseLink\"] = 58] = \"EnableAzureSynapseLink\";\n    Action[Action[\"CreateNewNotebook\"] = 59] = \"CreateNewNotebook\";\n    Action[Action[\"OpenSampleNotebook\"] = 60] = \"OpenSampleNotebook\";\n    Action[Action[\"ExecuteCell\"] = 61] = \"ExecuteCell\";\n    Action[Action[\"ExecuteCellPromptBtn\"] = 62] = \"ExecuteCellPromptBtn\";\n    Action[Action[\"ExecuteAllCells\"] = 63] = \"ExecuteAllCells\";\n    Action[Action[\"NotebookEnabled\"] = 64] = \"NotebookEnabled\";\n    Action[Action[\"NotebooksGitHubConnect\"] = 65] = \"NotebooksGitHubConnect\";\n    Action[Action[\"NotebooksGitHubAuthorize\"] = 66] = \"NotebooksGitHubAuthorize\";\n    Action[Action[\"NotebooksGitHubManualRepoAdd\"] = 67] = \"NotebooksGitHubManualRepoAdd\";\n    Action[Action[\"NotebooksGitHubManageRepo\"] = 68] = \"NotebooksGitHubManageRepo\";\n    Action[Action[\"NotebooksGitHubCommit\"] = 69] = \"NotebooksGitHubCommit\";\n    Action[Action[\"NotebooksGitHubDisconnect\"] = 70] = \"NotebooksGitHubDisconnect\";\n    Action[Action[\"NotebooksFetched\"] = 71] = \"NotebooksFetched\";\n    Action[Action[\"NotebooksKernelSpecName\"] = 72] = \"NotebooksKernelSpecName\";\n    Action[Action[\"NotebooksExecuteCellFromMenu\"] = 73] = \"NotebooksExecuteCellFromMenu\";\n    Action[Action[\"NotebooksClearOutputsFromMenu\"] = 74] = \"NotebooksClearOutputsFromMenu\";\n    Action[Action[\"NotebooksInsertCodeCellAboveFromMenu\"] = 75] = \"NotebooksInsertCodeCellAboveFromMenu\";\n    Action[Action[\"NotebooksInsertCodeCellBelowFromMenu\"] = 76] = \"NotebooksInsertCodeCellBelowFromMenu\";\n    Action[Action[\"NotebooksInsertTextCellAboveFromMenu\"] = 77] = \"NotebooksInsertTextCellAboveFromMenu\";\n    Action[Action[\"NotebooksInsertTextCellBelowFromMenu\"] = 78] = \"NotebooksInsertTextCellBelowFromMenu\";\n    Action[Action[\"NotebooksMoveCellUpFromMenu\"] = 79] = \"NotebooksMoveCellUpFromMenu\";\n    Action[Action[\"NotebooksMoveCellDownFromMenu\"] = 80] = \"NotebooksMoveCellDownFromMenu\";\n    Action[Action[\"PhoenixConnection\"] = 81] = \"PhoenixConnection\";\n    Action[Action[\"PhoenixHeartBeat\"] = 82] = \"PhoenixHeartBeat\";\n    Action[Action[\"PhoenixResetWorkspace\"] = 83] = \"PhoenixResetWorkspace\";\n    Action[Action[\"PhoenixDBAccountAllowed\"] = 84] = \"PhoenixDBAccountAllowed\";\n    Action[Action[\"DeleteCellFromMenu\"] = 85] = \"DeleteCellFromMenu\";\n    Action[Action[\"OpenTerminal\"] = 86] = \"OpenTerminal\";\n    Action[Action[\"CreateMongoCollectionWithWildcardIndex\"] = 87] = \"CreateMongoCollectionWithWildcardIndex\";\n    Action[Action[\"ClickCommandBarButton\"] = 88] = \"ClickCommandBarButton\";\n    Action[Action[\"RefreshResourceTreeMyNotebooks\"] = 89] = \"RefreshResourceTreeMyNotebooks\";\n    Action[Action[\"ClickResourceTreeNodeContextMenuItem\"] = 90] = \"ClickResourceTreeNodeContextMenuItem\";\n    Action[Action[\"DiscardSettings\"] = 91] = \"DiscardSettings\";\n    Action[Action[\"SettingsV2Updated\"] = 92] = \"SettingsV2Updated\";\n    Action[Action[\"SettingsV2Discarded\"] = 93] = \"SettingsV2Discarded\";\n    Action[Action[\"MongoIndexUpdated\"] = 94] = \"MongoIndexUpdated\";\n    Action[Action[\"NotebooksGalleryPublish\"] = 95] = \"NotebooksGalleryPublish\";\n    Action[Action[\"NotebooksGalleryReportAbuse\"] = 96] = \"NotebooksGalleryReportAbuse\";\n    Action[Action[\"NotebooksGalleryClickReportAbuse\"] = 97] = \"NotebooksGalleryClickReportAbuse\";\n    Action[Action[\"NotebooksGalleryViewCodeOfConduct\"] = 98] = \"NotebooksGalleryViewCodeOfConduct\";\n    Action[Action[\"NotebooksGalleryAcceptCodeOfConduct\"] = 99] = \"NotebooksGalleryAcceptCodeOfConduct\";\n    Action[Action[\"NotebooksGalleryFavorite\"] = 100] = \"NotebooksGalleryFavorite\";\n    Action[Action[\"NotebooksGalleryUnfavorite\"] = 101] = \"NotebooksGalleryUnfavorite\";\n    Action[Action[\"NotebooksGalleryClickDelete\"] = 102] = \"NotebooksGalleryClickDelete\";\n    Action[Action[\"NotebooksGalleryDelete\"] = 103] = \"NotebooksGalleryDelete\";\n    Action[Action[\"NotebooksGalleryClickDownload\"] = 104] = \"NotebooksGalleryClickDownload\";\n    Action[Action[\"NotebooksGalleryDownload\"] = 105] = \"NotebooksGalleryDownload\";\n    Action[Action[\"NotebooksGalleryViewNotebook\"] = 106] = \"NotebooksGalleryViewNotebook\";\n    Action[Action[\"NotebooksGalleryViewGallery\"] = 107] = \"NotebooksGalleryViewGallery\";\n    Action[Action[\"NotebooksGalleryViewOfficialSamples\"] = 108] = \"NotebooksGalleryViewOfficialSamples\";\n    Action[Action[\"NotebooksGalleryViewPublicGallery\"] = 109] = \"NotebooksGalleryViewPublicGallery\";\n    Action[Action[\"NotebooksGalleryViewFavorites\"] = 110] = \"NotebooksGalleryViewFavorites\";\n    Action[Action[\"NotebooksGalleryViewPublishedNotebooks\"] = 111] = \"NotebooksGalleryViewPublishedNotebooks\";\n    Action[Action[\"NotebooksGalleryClickPublishToGallery\"] = 112] = \"NotebooksGalleryClickPublishToGallery\";\n    Action[Action[\"NotebooksGalleryOfficialSamplesCount\"] = 113] = \"NotebooksGalleryOfficialSamplesCount\";\n    Action[Action[\"NotebooksGalleryPublicGalleryCount\"] = 114] = \"NotebooksGalleryPublicGalleryCount\";\n    Action[Action[\"NotebooksGalleryFavoritesCount\"] = 115] = \"NotebooksGalleryFavoritesCount\";\n    Action[Action[\"NotebooksGalleryPublishedCount\"] = 116] = \"NotebooksGalleryPublishedCount\";\n    Action[Action[\"SelfServe\"] = 117] = \"SelfServe\";\n    Action[Action[\"ExpandAddCollectionPaneAdvancedSection\"] = 118] = \"ExpandAddCollectionPaneAdvancedSection\";\n    Action[Action[\"SchemaAnalyzerClickAnalyze\"] = 119] = \"SchemaAnalyzerClickAnalyze\";\n    Action[Action[\"SelfServeComponent\"] = 120] = \"SelfServeComponent\";\n    Action[Action[\"LaunchQuickstart\"] = 121] = \"LaunchQuickstart\";\n    Action[Action[\"NewContainerHomepage\"] = 122] = \"NewContainerHomepage\";\n    Action[Action[\"Top3ItemsClicked\"] = 123] = \"Top3ItemsClicked\";\n    Action[Action[\"LearningResourcesClicked\"] = 124] = \"LearningResourcesClicked\";\n    Action[Action[\"PlayCarouselVideo\"] = 125] = \"PlayCarouselVideo\";\n    Action[Action[\"OpenCarousel\"] = 126] = \"OpenCarousel\";\n    Action[Action[\"CompleteCarousel\"] = 127] = \"CompleteCarousel\";\n    Action[Action[\"LaunchUITour\"] = 128] = \"LaunchUITour\";\n    Action[Action[\"CancelUITour\"] = 129] = \"CancelUITour\";\n    Action[Action[\"CompleteUITour\"] = 130] = \"CompleteUITour\";\n    Action[Action[\"OpenQueryCopilotFromSplashScreen\"] = 131] = \"OpenQueryCopilotFromSplashScreen\";\n    Action[Action[\"OpenQueryCopilotFromNewQuery\"] = 132] = \"OpenQueryCopilotFromNewQuery\";\n    Action[Action[\"ActivateQueryCopilot\"] = 133] = \"ActivateQueryCopilot\";\n    Action[Action[\"DeactivateQueryCopilot\"] = 134] = \"DeactivateQueryCopilot\";\n    Action[Action[\"QueryGenerationFromCopilotPrompt\"] = 135] = \"QueryGenerationFromCopilotPrompt\";\n    Action[Action[\"QueryEdited\"] = 136] = \"QueryEdited\";\n    Action[Action[\"ExecuteQueryGeneratedFromQueryCopilot\"] = 137] = \"ExecuteQueryGeneratedFromQueryCopilot\";\n    Action[Action[\"DeleteDocuments\"] = 138] = \"DeleteDocuments\";\n    Action[Action[\"ReadPersistedTabState\"] = 139] = \"ReadPersistedTabState\";\n    Action[Action[\"SavePersistedTabState\"] = 140] = \"SavePersistedTabState\";\n    Action[Action[\"DeletePersistedTabState\"] = 141] = \"DeletePersistedTabState\";\n})(Action || (Action = {}));\nexport const ActionModifiers = {\n    Start: \"start\",\n    Success: \"success\",\n    Failed: \"failed\",\n    Mark: \"mark\",\n    Open: \"open\",\n    IFrameReady: \"iframeready\",\n    Close: \"close\",\n    Submit: \"submit\",\n    IndexAll: \"index all properties\",\n    NoIndex: \"no indexing\",\n    Cancel: \"cancel\",\n    ToggleAutoscaleOn: \"autoscale on\",\n    ToggleAutoscaleOff: \"autoscale off\",\n};\nexport var SourceBlade;\n(function (SourceBlade) {\n    SourceBlade[SourceBlade[\"AddCollection\"] = 0] = \"AddCollection\";\n    SourceBlade[SourceBlade[\"AzureFunction\"] = 1] = \"AzureFunction\";\n    SourceBlade[SourceBlade[\"BrowseCollectionBlade\"] = 2] = \"BrowseCollectionBlade\";\n    SourceBlade[SourceBlade[\"CassandraAccountCreateBlade\"] = 3] = \"CassandraAccountCreateBlade\";\n    SourceBlade[SourceBlade[\"CollectionSetting\"] = 4] = \"CollectionSetting\";\n    SourceBlade[SourceBlade[\"DatabaseAccountCreateBlade\"] = 5] = \"DatabaseAccountCreateBlade\";\n    SourceBlade[SourceBlade[\"DataExplorer\"] = 6] = \"DataExplorer\";\n    SourceBlade[SourceBlade[\"DeleteCollection\"] = 7] = \"DeleteCollection\";\n    SourceBlade[SourceBlade[\"DeleteDatabase\"] = 8] = \"DeleteDatabase\";\n    SourceBlade[SourceBlade[\"DocumentExplorer\"] = 9] = \"DocumentExplorer\";\n    SourceBlade[SourceBlade[\"FirewallVNETBlade\"] = 10] = \"FirewallVNETBlade\";\n    SourceBlade[SourceBlade[\"Metrics\"] = 11] = \"Metrics\";\n    SourceBlade[SourceBlade[\"NonDocumentDBAccountCreateBlade\"] = 12] = \"NonDocumentDBAccountCreateBlade\";\n    SourceBlade[SourceBlade[\"OverviewBlade\"] = 13] = \"OverviewBlade\";\n    SourceBlade[SourceBlade[\"QueryExplorer\"] = 14] = \"QueryExplorer\";\n    SourceBlade[SourceBlade[\"Quickstart\"] = 15] = \"Quickstart\";\n    SourceBlade[SourceBlade[\"ReaderWarning\"] = 16] = \"ReaderWarning\";\n    SourceBlade[SourceBlade[\"ResourceMenu\"] = 17] = \"ResourceMenu\";\n    SourceBlade[SourceBlade[\"RpcProvider\"] = 18] = \"RpcProvider\";\n    SourceBlade[SourceBlade[\"ScaleCollection\"] = 19] = \"ScaleCollection\";\n    SourceBlade[SourceBlade[\"ScriptExplorer\"] = 20] = \"ScriptExplorer\";\n    SourceBlade[SourceBlade[\"Keys\"] = 21] = \"Keys\";\n})(SourceBlade || (SourceBlade = {}));\nexport var Source;\n(function (Source) {\n    Source[\"ResourceTreeMenu\"] = \"ResourceTreeMenu\";\n    Source[\"CommandBarMenu\"] = \"CommandBarMenu\";\n})(Source || (Source = {}));\n","import { sendMessage } from \"../../Common/MessageHandler\";\nimport { configContext } from \"../../ConfigContext\";\nimport { MessageTypes } from \"../../Contracts/ExplorerContracts\";\nimport { userContext } from \"../../UserContext\";\nimport { startTrackEvent, stopTrackEvent, trackEvent } from \"../appInsights\";\nimport { Action, ActionModifiers } from \"./TelemetryConstants\";\nexport function trace(action, actionModifier = ActionModifiers.Mark, data = {}, type = MessageTypes.TelemetryInfo) {\n    sendMessage({\n        type: type,\n        data: {\n            action: Action[action],\n            actionModifier: actionModifier,\n            data: JSON.stringify(decorateData(data)),\n        },\n    });\n    trackEvent({ name: Action[action] }, decorateData(data, actionModifier));\n}\nexport function traceStart(action, data, type = MessageTypes.TelemetryInfo) {\n    const timestamp = Date.now();\n    sendMessage({\n        type: type,\n        data: {\n            action: Action[action],\n            actionModifier: ActionModifiers.Start,\n            timestamp: timestamp,\n            data: JSON.stringify(decorateData(data)),\n        },\n    });\n    startTrackEvent(Action[action]);\n    return timestamp;\n}\nexport function traceSuccess(action, data, timestamp, type = MessageTypes.TelemetryInfo) {\n    sendMessage({\n        type: type,\n        data: {\n            action: Action[action],\n            actionModifier: ActionModifiers.Success,\n            timestamp: timestamp || Date.now(),\n            data: JSON.stringify(decorateData(data)),\n        },\n    });\n    stopTrackEvent(Action[action], decorateData(data, ActionModifiers.Success));\n}\nexport function traceFailure(action, data, timestamp, type = MessageTypes.TelemetryInfo) {\n    sendMessage({\n        type: type,\n        data: {\n            action: Action[action],\n            actionModifier: ActionModifiers.Failed,\n            timestamp: timestamp || Date.now(),\n            data: JSON.stringify(decorateData(data)),\n        },\n    });\n    stopTrackEvent(Action[action], decorateData(data, ActionModifiers.Failed));\n}\nexport function traceCancel(action, data, timestamp, type = MessageTypes.TelemetryInfo) {\n    sendMessage({\n        type: type,\n        data: {\n            action: Action[action],\n            actionModifier: ActionModifiers.Cancel,\n            timestamp: timestamp || Date.now(),\n            data: JSON.stringify(decorateData(data)),\n        },\n    });\n    stopTrackEvent(Action[action], decorateData(data, ActionModifiers.Cancel));\n}\nexport function traceOpen(action, data, timestamp, type = MessageTypes.TelemetryInfo) {\n    const validTimestamp = timestamp || Date.now();\n    sendMessage({\n        type: type,\n        data: {\n            action: Action[action],\n            actionModifier: ActionModifiers.Open,\n            timestamp: validTimestamp,\n            data: JSON.stringify(decorateData(data)),\n        },\n    });\n    startTrackEvent(Action[action]);\n    return validTimestamp;\n}\nexport function traceMark(action, data, timestamp, type = MessageTypes.TelemetryInfo) {\n    const validTimestamp = timestamp || Date.now();\n    sendMessage({\n        type: type,\n        data: {\n            action: Action[action],\n            actionModifier: ActionModifiers.Mark,\n            timestamp: validTimestamp,\n            data: JSON.stringify(decorateData(data)),\n        },\n    });\n    startTrackEvent(Action[action]);\n    return validTimestamp;\n}\nfunction decorateData(data = {}, actionModifier) {\n    var _a;\n    return Object.assign({ databaseAccountName: (_a = userContext.databaseAccount) === null || _a === void 0 ? void 0 : _a.name, defaultExperience: userContext.apiType, authType: userContext.authType, subscriptionId: userContext.subscriptionId, platform: configContext.platform, env: process.env.NODE_ENV, actionModifier }, data);\n}\n","import { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\n// TODO: Remove this after 06/01/21.\n// This points to an old app insights instance that is difficult to access\n// For now we are sending data to two instances of app insights\nconst appInsights = new ApplicationInsights({\n    config: {\n        instrumentationKey: \"fa645d97-6237-4656-9559-0ee0cb55ee49\",\n        disableFetchTracking: false,\n        disableCorrelationHeaders: true,\n    },\n});\nconst appInsights2 = new ApplicationInsights({\n    config: {\n        instrumentationKey: \"023d2c39-8f86-468e-bb8f-bcaebd9025c7\",\n        disableFetchTracking: false,\n        disableCorrelationHeaders: true,\n    },\n});\nappInsights.loadAppInsights();\nappInsights.trackPageView();\nappInsights2.loadAppInsights();\nappInsights2.trackPageView();\nconst trackEvent = (...args) => {\n    appInsights.trackEvent(...args);\n    appInsights2.trackEvent(...args);\n};\nconst startTrackEvent = (...args) => {\n    appInsights.startTrackEvent(...args);\n    appInsights2.startTrackEvent(...args);\n};\nconst stopTrackEvent = (...args) => {\n    appInsights.stopTrackEvent(...args);\n    appInsights2.stopTrackEvent(...args);\n};\nconst trackTrace = (...args) => {\n    appInsights.trackTrace(...args);\n    appInsights2.trackTrace(...args);\n};\nexport { trackEvent, startTrackEvent, stopTrackEvent, trackTrace };\n","import { CosmosDbArtifactType } from \"Contracts/FabricMessagesContract\";\nimport { Action } from \"Shared/Telemetry/TelemetryConstants\";\nimport { traceOpen } from \"Shared/Telemetry/TelemetryProcessor\";\nimport { useCarousel } from \"hooks/useCarousel\";\nimport { usePostgres } from \"hooks/usePostgres\";\nimport { extractFeatures } from \"./Platform/Hosted/extractFeatures\";\nimport { CollectionCreation, CollectionCreationDefaults } from \"./Shared/Constants\";\nconst ONE_WEEK_IN_MS = 604800000;\nconst features = extractFeatures();\nconst userContext = {\n    apiType: \"SQL\",\n    hasWriteAccess: true,\n    isTryCosmosDBSubscription: false,\n    portalEnv: \"prod\",\n    features,\n    subscriptionType: CollectionCreation.DefaultSubscriptionType,\n    collectionCreationDefaults: CollectionCreationDefaults,\n};\nexport function isAccountNewerThanThresholdInMs(createdAt, threshold) {\n    let createdAtMs = Date.parse(createdAt);\n    if (isNaN(createdAtMs)) {\n        createdAtMs = 0;\n    }\n    const nowMs = Date.now();\n    const millisecsSinceAccountCreation = nowMs - createdAtMs;\n    return threshold > millisecsSinceAccountCreation;\n}\nfunction updateUserContext(newContext) {\n    var _a, _b;\n    if (newContext.databaseAccount) {\n        newContext.apiType = apiType(newContext.databaseAccount);\n        const isNewAccount = isAccountNewerThanThresholdInMs(((_b = (_a = newContext.databaseAccount) === null || _a === void 0 ? void 0 : _a.systemData) === null || _b === void 0 ? void 0 : _b.createdAt) || \"\", ONE_WEEK_IN_MS);\n        if (!localStorage.getItem(newContext.databaseAccount.id)) {\n            if (newContext.isTryCosmosDBSubscription || isNewAccount) {\n                if (newContext.apiType === \"Postgres\" && !newContext.isReplica) {\n                    usePostgres.getState().setShowResetPasswordBubble(true);\n                    usePostgres.getState().setShowPostgreTeachingBubble(true);\n                }\n                else {\n                    useCarousel.getState().setShouldOpen(true);\n                    localStorage.setItem(newContext.databaseAccount.id, \"true\");\n                    traceOpen(Action.OpenCarousel);\n                }\n            }\n            else if (newContext.apiType === \"Postgres\") {\n                usePostgres.getState().setShowPostgreTeachingBubble(true);\n                localStorage.setItem(newContext.databaseAccount.id, \"true\");\n            }\n        }\n    }\n    Object.assign(userContext, newContext);\n}\nfunction apiType(account) {\n    var _a;\n    if (!account) {\n        return \"SQL\";\n    }\n    const capabilities = (_a = account.properties) === null || _a === void 0 ? void 0 : _a.capabilities;\n    if (capabilities) {\n        if (capabilities.find((c) => c.name === \"EnableCassandra\")) {\n            return \"Cassandra\";\n        }\n        if (capabilities.find((c) => c.name === \"EnableGremlin\")) {\n            return \"Gremlin\";\n        }\n        if (capabilities.find((c) => c.name === \"EnableMongo\")) {\n            return \"Mongo\";\n        }\n        if (capabilities.find((c) => c.name === \"EnableTable\")) {\n            return \"Tables\";\n        }\n    }\n    if (account.kind === \"MongoDB\" || account.kind === \"Parse\") {\n        return \"Mongo\";\n    }\n    if (account.kind === \"Postgres\") {\n        return \"Postgres\";\n    }\n    if (account.kind === \"VCoreMongo\") {\n        return \"VCoreMongo\";\n    }\n    return \"SQL\";\n}\nexport { updateUserContext, userContext };\n","import * as msal from \"@azure/msal-browser\";\nimport { Action, ActionModifiers } from \"Shared/Telemetry/TelemetryConstants\";\nimport { AuthType } from \"../AuthType\";\nimport * as Constants from \"../Common/Constants\";\nimport * as Logger from \"../Common/Logger\";\nimport { configContext } from \"../ConfigContext\";\nimport { trace, traceFailure } from \"../Shared/Telemetry/TelemetryProcessor\";\nimport { userContext } from \"../UserContext\";\nexport function getAuthorizationHeader() {\n    if (userContext.authType === AuthType.EncryptedToken) {\n        return {\n            header: Constants.HttpHeaders.guestAccessToken,\n            token: userContext.accessToken,\n        };\n    }\n    else {\n        return {\n            header: Constants.HttpHeaders.authorization,\n            token: userContext.authorizationToken || \"\",\n        };\n    }\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function decryptJWTToken(token) {\n    if (!token) {\n        Logger.logError(\"Cannot decrypt token: No JWT token found\", \"AuthorizationUtils/decryptJWTToken\");\n        throw new Error(\"No JWT token found\");\n    }\n    const tokenParts = token.split(\".\");\n    if (tokenParts.length < 2) {\n        Logger.logError(`Invalid JWT token: ${token}`, \"AuthorizationUtils/decryptJWTToken\");\n        throw new Error(`Invalid JWT token: ${token}`);\n    }\n    let tokenPayloadBase64 = tokenParts[1];\n    tokenPayloadBase64 = tokenPayloadBase64.replace(/-/g, \"+\").replace(/_/g, \"/\");\n    const tokenPayload = decodeURIComponent(atob(tokenPayloadBase64)\n        .split(\"\")\n        .map((p) => \"%\" + (\"00\" + p.charCodeAt(0).toString(16)).slice(-2))\n        .join(\"\"));\n    return JSON.parse(tokenPayload);\n}\nexport async function getMsalInstance() {\n    const msalConfig = {\n        cache: {\n            cacheLocation: \"localStorage\",\n        },\n        auth: {\n            authority: `${configContext.AAD_ENDPOINT}organizations`,\n            clientId: \"203f1145-856a-4232-83d4-a43568fba23d\",\n        },\n    };\n    if (process.env.NODE_ENV === \"development\") {\n        msalConfig.auth.redirectUri = \"https://dataexplorer-dev.azurewebsites.net\";\n    }\n    const msalInstance = new msal.PublicClientApplication(msalConfig);\n    return msalInstance;\n}\nexport async function acquireMsalTokenForAccount(account, silent = false, user_hint) {\n    var _a, _b, _c, _d;\n    if (((_a = userContext.databaseAccount.properties) === null || _a === void 0 ? void 0 : _a.documentEndpoint) === undefined) {\n        throw new Error(\"Database account has no document endpoint defined\");\n    }\n    const hrefEndpoint = new URL(userContext.databaseAccount.properties.documentEndpoint).href.replace(/\\/+$/, \"/.default\");\n    const msalInstance = await getMsalInstance();\n    const knownAccounts = msalInstance.getAllAccounts();\n    // If user_hint is provided, we will try to use it to find the account.\n    // If no account is found, we will use the current active account or first account in the list.\n    const msalAccount = (_c = (_b = knownAccounts === null || knownAccounts === void 0 ? void 0 : knownAccounts.filter((account) => account.username === user_hint)[0]) !== null && _b !== void 0 ? _b : msalInstance.getActiveAccount()) !== null && _c !== void 0 ? _c : knownAccounts === null || knownAccounts === void 0 ? void 0 : knownAccounts[0];\n    if (!msalAccount) {\n        // If no account was found, we need to sign in.\n        // This will eventually throw InteractionRequiredAuthError if silent is true, we won't handle it here.\n        const loginRequest = {\n            scopes: [hrefEndpoint],\n            loginHint: user_hint !== null && user_hint !== void 0 ? user_hint : userContext.userName,\n            authority: userContext.tenantId ? `${configContext.AAD_ENDPOINT}${userContext.tenantId}` : undefined,\n        };\n        try {\n            if (silent) {\n                // We can try to use SSO between different apps to avoid showing a popup.\n                // With a hint provided, this should work in most cases.\n                // See https://learn.microsoft.com/en-us/entra/identity-platform/msal-js-sso#sso-between-different-apps\n                try {\n                    const loginResponse = await msalInstance.ssoSilent(loginRequest);\n                    return loginResponse.accessToken;\n                }\n                catch (silentError) {\n                    trace(Action.SignInAad, ActionModifiers.Mark, {\n                        request: JSON.stringify(loginRequest),\n                        acquireTokenType: silent ? \"silent\" : \"interactive\",\n                        errorMessage: JSON.stringify(silentError),\n                    });\n                }\n            }\n            // If silent acquisition failed, we need to show a popup.\n            // Passing prompt: \"none\" will still show a popup but not perform a full sign-in.\n            // This will only work if the user has already signed in and the session is still valid.\n            // See https://learn.microsoft.com/en-us/entra/identity-platform/msal-js-prompt-behavior#interactive-requests-with-promptnone\n            // The hint will be used to pre-fill the username field in the popup if silent is false.\n            const loginResponse = await msalInstance.loginPopup(Object.assign({ prompt: silent ? \"none\" : \"login\" }, loginRequest));\n            return loginResponse.accessToken;\n        }\n        catch (error) {\n            traceFailure(Action.SignInAad, {\n                request: JSON.stringify(loginRequest),\n                acquireTokenType: silent ? \"silent\" : \"interactive\",\n                errorMessage: JSON.stringify(error),\n            });\n            throw error;\n        }\n    }\n    else {\n        msalInstance.setActiveAccount(msalAccount);\n    }\n    const tokenRequest = {\n        account: msalAccount || null,\n        forceRefresh: true,\n        scopes: [hrefEndpoint],\n        loginHint: user_hint !== null && user_hint !== void 0 ? user_hint : userContext.userName,\n        authority: `${configContext.AAD_ENDPOINT}${(_d = userContext.tenantId) !== null && _d !== void 0 ? _d : msalAccount.tenantId}`,\n    };\n    return acquireTokenWithMsal(msalInstance, tokenRequest, silent);\n}\nexport async function acquireTokenWithMsal(msalInstance, request, silent = false) {\n    const tokenRequest = Object.assign({ account: msalInstance.getActiveAccount() || null }, request);\n    try {\n        // attempt silent acquisition first\n        return (await msalInstance.acquireTokenSilent(tokenRequest)).accessToken;\n    }\n    catch (silentError) {\n        if (silentError instanceof msal.InteractionRequiredAuthError && silent === false) {\n            try {\n                // The error indicates that we need to acquire the token interactively.\n                // This will display a pop-up to re-establish authorization. If user does not\n                // have pop-ups enabled in their browser, this will fail.\n                return (await msalInstance.acquireTokenPopup(tokenRequest)).accessToken;\n            }\n            catch (interactiveError) {\n                traceFailure(Action.SignInAad, {\n                    request: JSON.stringify(tokenRequest),\n                    acquireTokenType: \"interactive\",\n                    errorMessage: JSON.stringify(interactiveError),\n                });\n                throw interactiveError;\n            }\n        }\n        else {\n            traceFailure(Action.SignInAad, {\n                request: JSON.stringify(tokenRequest),\n                acquireTokenType: \"silent\",\n                errorMessage: JSON.stringify(silentError),\n            });\n            throw silentError;\n        }\n    }\n}\n","import { CassandraProxyEndpoints, JunoEndpoints, MongoProxyEndpoints, PortalBackendEndpoints } from \"Common/Constants\";\nimport * as Logger from \"../Common/Logger\";\nexport function validateEndpoint(endpointToValidate, allowedEndpoints) {\n    try {\n        return validateEndpointInternal(endpointToValidate, allowedEndpoints.map((e) => e));\n    }\n    catch (reason) {\n        Logger.logError(`${endpointToValidate} not allowed`, \"validateEndpoint\");\n        Logger.logError(`${JSON.stringify(reason)}`, \"validateEndpoint\");\n        return false;\n    }\n}\nfunction validateEndpointInternal(endpointToValidate, allowedEndpoints) {\n    if (endpointToValidate === undefined) {\n        return false;\n    }\n    const originToValidate = new URL(endpointToValidate).origin;\n    const allowedOrigins = allowedEndpoints.map((allowedEndpoint) => new URL(allowedEndpoint).origin) || [];\n    const valid = allowedOrigins.indexOf(originToValidate) >= 0;\n    if (!valid) {\n        throw new Error(`${endpointToValidate} is not an allowed endpoint. Allowed endpoints are ${allowedEndpoints.toString()}`);\n    }\n    return valid;\n}\nexport const defaultAllowedArmEndpoints = [\n    \"https://api-dogfood.resources.windows-int.net/\",\n    \"https://​management.azure.com\",\n    \"https://​management.usgovcloudapi.net\",\n    \"https://management.chinacloudapi.cn\",\n];\nexport const allowedAadEndpoints = [\n    \"https://login.microsoftonline.com/\",\n    \"https://login.microsoftonline.us/\",\n    \"https://login.partner.microsoftonline.cn/\",\n];\nexport const defaultAllowedBackendEndpoints = [\n    \"https://main.documentdb.ext.azure.com\",\n    \"https://main.documentdb.ext.azure.cn\",\n    \"https://main.documentdb.ext.azure.us\",\n    \"https://main.cosmos.ext.azure\",\n    \"https://localhost:12901\",\n    \"https://localhost:1234\",\n];\nexport const PortalBackendIPs = {\n    \"https://main.documentdb.ext.azure.com\": [\"104.42.195.92\", \"40.76.54.131\"],\n    // DE doesn't talk to prod2 (main2) but it might be added\n    //\"https://main2.documentdb.ext.azure.com\": [\"104.42.196.69\"],\n    \"https://main.documentdb.ext.azure.cn\": [\"139.217.8.252\"],\n    \"https://main.documentdb.ext.azure.us\": [\"52.244.48.71\"],\n};\nexport const PortalBackendOutboundIPs = {\n    [PortalBackendEndpoints.Mpac]: [\"13.91.105.215\", \"4.210.172.107\"],\n    [PortalBackendEndpoints.Prod]: [\"13.88.56.148\", \"40.91.218.243\"],\n    [PortalBackendEndpoints.Fairfax]: [\"52.247.163.6\", \"52.244.134.181\"],\n    [PortalBackendEndpoints.Mooncake]: [\"163.228.137.6\", \"143.64.170.142\"],\n};\nexport const MongoProxyOutboundIPs = {\n    [MongoProxyEndpoints.Mpac]: [\"20.245.81.54\", \"40.118.23.126\"],\n    [MongoProxyEndpoints.Prod]: [\"40.80.152.199\", \"13.95.130.121\"],\n    [MongoProxyEndpoints.Fairfax]: [\"52.244.176.112\", \"52.247.148.42\"],\n    [MongoProxyEndpoints.Mooncake]: [\"52.131.240.99\", \"143.64.61.130\"],\n};\nexport const defaultAllowedMongoProxyEndpoints = [\n    MongoProxyEndpoints.Development,\n    MongoProxyEndpoints.Mpac,\n    MongoProxyEndpoints.Prod,\n    MongoProxyEndpoints.Fairfax,\n    MongoProxyEndpoints.Mooncake,\n];\nexport const defaultAllowedCassandraProxyEndpoints = [\n    CassandraProxyEndpoints.Development,\n    CassandraProxyEndpoints.Mpac,\n    CassandraProxyEndpoints.Prod,\n    CassandraProxyEndpoints.Fairfax,\n    CassandraProxyEndpoints.Mooncake,\n];\nexport const allowedCassandraProxyEndpoints_ToBeDeprecated = [\n    \"https://main.documentdb.ext.azure.com\",\n    \"https://main.documentdb.ext.azure.cn\",\n    \"https://main.documentdb.ext.azure.us\",\n    \"https://main.cosmos.ext.azure\",\n    \"https://localhost:12901\",\n];\nexport const CassandraProxyOutboundIPs = {\n    [CassandraProxyEndpoints.Mpac]: [\"40.113.96.14\", \"104.42.11.145\"],\n    [CassandraProxyEndpoints.Prod]: [\"137.117.230.240\", \"168.61.72.237\"],\n    [CassandraProxyEndpoints.Fairfax]: [\"52.244.50.101\", \"52.227.165.24\"],\n    [CassandraProxyEndpoints.Mooncake]: [\"40.73.99.146\", \"143.64.62.47\"],\n};\nexport const allowedEmulatorEndpoints = [\"https://localhost:8081\"];\nexport const allowedMongoBackendEndpoints = [\"https://localhost:1234\"];\nexport const allowedGraphEndpoints = [\"https://graph.microsoft.com\"];\nexport const allowedArcadiaEndpoints = [\"https://workspaceartifacts.projectarcadia.net\"];\nexport const allowedHostedExplorerEndpoints = [\"https://cosmos.azure.com/\"];\nexport const allowedMsalRedirectEndpoints = [\"https://dataexplorer-preview.azurewebsites.net/\"];\nexport const allowedJunoOrigins = [\n    JunoEndpoints.Test,\n    JunoEndpoints.Test2,\n    JunoEndpoints.Test3,\n    JunoEndpoints.Prod,\n    JunoEndpoints.Stage,\n    \"https://localhost\",\n];\nexport const allowedNotebookServerUrls = [];\n","import { isFabric } from \"Platform/Fabric/FabricUtil\";\nimport { Platform, configContext } from \"./../ConfigContext\";\nexport const getDataExplorerWindow = (currentWindow) => {\n    // Data explorer is always loaded in an iframe, so traverse the parents until we hit the top and return the first child window.\n    try {\n        while (currentWindow) {\n            if (currentWindow.parent === currentWindow) {\n                return undefined;\n            }\n            if (isFabric() && currentWindow.parent.parent === currentWindow.top) {\n                // in Fabric data explorer is inside an extension iframe, so we have two parent iframes\n                return currentWindow;\n            }\n            if (configContext.platform !== Platform.Fabric && currentWindow.parent === currentWindow.top) {\n                return currentWindow;\n            }\n            currentWindow = currentWindow.parent;\n        }\n    }\n    catch (error) {\n        // Hitting a cross domain error means we are in the portal and the current window is data explorer\n        return currentWindow;\n    }\n    return undefined;\n};\n","var _a;\nimport * as msal from \"@azure/msal-browser\";\nimport { useBoolean } from \"@fluentui/react-hooks\";\nimport * as React from \"react\";\nimport { configContext } from \"../ConfigContext\";\nimport { acquireTokenWithMsal, getMsalInstance } from \"../Utils/AuthorizationUtils\";\nconst msalInstance = await getMsalInstance();\nconst cachedAccount = (_a = msalInstance.getAllAccounts()) === null || _a === void 0 ? void 0 : _a[0];\nconst cachedTenantId = localStorage.getItem(\"cachedTenantId\");\nexport function useAADAuth() {\n    const [isLoggedIn, { setTrue: setLoggedIn, setFalse: setLoggedOut }] = useBoolean(Boolean(cachedAccount && cachedTenantId) || false);\n    const [account, setAccount] = React.useState(cachedAccount);\n    const [tenantId, setTenantId] = React.useState(cachedTenantId);\n    const [graphToken, setGraphToken] = React.useState();\n    const [armToken, setArmToken] = React.useState();\n    const [authFailure, setAuthFailure] = React.useState(undefined);\n    msalInstance.setActiveAccount(account);\n    const login = React.useCallback(async () => {\n        const response = await msalInstance.loginPopup({\n            redirectUri: configContext.msalRedirectURI,\n            scopes: [],\n        });\n        setLoggedIn();\n        setAccount(response.account);\n        setTenantId(response.tenantId);\n        localStorage.setItem(\"cachedTenantId\", response.tenantId);\n    }, []);\n    const logout = React.useCallback(() => {\n        setLoggedOut();\n        localStorage.removeItem(\"cachedTenantId\");\n        msalInstance.logoutRedirect();\n    }, []);\n    const switchTenant = React.useCallback(async (id) => {\n        const response = await msalInstance.loginPopup({\n            redirectUri: configContext.msalRedirectURI,\n            authority: `${configContext.AAD_ENDPOINT}${id}`,\n            scopes: [],\n        });\n        setTenantId(response.tenantId);\n        setAccount(response.account);\n        localStorage.setItem(\"cachedTenantId\", response.tenantId);\n    }, [account, tenantId]);\n    const acquireTokens = React.useCallback(async () => {\n        if (!(account && tenantId)) {\n            return;\n        }\n        try {\n            const armToken = await acquireTokenWithMsal(msalInstance, {\n                authority: `${configContext.AAD_ENDPOINT}${tenantId}`,\n                scopes: [`${configContext.ARM_ENDPOINT}/.default`],\n            });\n            setArmToken(armToken);\n            setAuthFailure(null);\n        }\n        catch (error) {\n            if (error instanceof msal.AuthError && error.errorCode === msal.BrowserAuthErrorMessage.popUpWindowError.code) {\n                // This error can occur when acquireTokenWithMsal() has attempted to acquire token interactively\n                // and user has popups disabled in browser. This fails as the popup is not the result of a explicit user\n                // action. In this case, we display the failure and a link to repeat the operation. Clicking on the\n                // link is a user action so it will work even if popups have been disabled.\n                // See: https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/76#issuecomment-324787539\n                setAuthFailure({\n                    failureMessage: \"We were unable to establish authorization for this account, due to pop-ups being disabled in the browser.\\nPlease click below to retry authorization without requiring popups being enabled.\",\n                    failureLinkTitle: \"Retry Authorization\",\n                    failureLinkAction: acquireTokens,\n                });\n            }\n            else {\n                const errorJson = JSON.stringify(error);\n                setAuthFailure({\n                    failureMessage: `We were unable to establish authorization for this account, due to the following error: \\n${errorJson}`,\n                });\n            }\n        }\n        try {\n            const graphToken = await acquireTokenWithMsal(msalInstance, {\n                authority: `${configContext.AAD_ENDPOINT}${tenantId}`,\n                scopes: [`${configContext.GRAPH_ENDPOINT}/.default`],\n            });\n            setGraphToken(graphToken);\n        }\n        catch (error) {\n            // Graph token is used only for retrieving user photo at the moment, so\n            // it's not critical if this fails.\n            console.warn(\"Error acquiring graph token: \" + error);\n        }\n    }, [account, tenantId]);\n    React.useEffect(() => {\n        if (account && tenantId && !authFailure) {\n            acquireTokens();\n        }\n    }, [account, tenantId, acquireTokens, authFailure]);\n    return {\n        account,\n        tenantId,\n        isLoggedIn,\n        graphToken,\n        armToken,\n        login,\n        logout,\n        switchTenant,\n        authFailure,\n    };\n}\n","import create from \"zustand\";\nexport const useCarousel = create((set) => ({\n    shouldOpen: false,\n    showCoachMark: false,\n    showCopilotCarousel: false,\n    setShouldOpen: (shouldOpen) => set({ shouldOpen }),\n    setShowCoachMark: (showCoachMark) => set({ showCoachMark }),\n    setShowCopilotCarousel: (showCopilotCarousel) => set({ showCopilotCarousel }),\n}));\n","import { useEffect, useState } from \"react\";\nimport { initializeConfiguration } from \"../ConfigContext\";\n// This hook initializes global configuration from a config.json file that is injected at deploy time\n// This allows the same main Data Explorer build to be exactly the same in all clouds/platforms,\n// but override some of the configuration as nesssary\nexport function useConfig() {\n    const [state, setState] = useState();\n    useEffect(() => {\n        initializeConfiguration().then((response) => setState(response));\n    }, []);\n    return state;\n}\n","import create from \"zustand\";\nexport const useNotificationConsole = create((set) => ({\n    isExpanded: false,\n    consoleData: undefined,\n    inProgressConsoleDataIdToBeDeleted: \"\",\n    consoleAnimationFinished: false,\n    expandConsole: () => set((state) => (Object.assign(Object.assign({}, state), { isExpanded: true }))),\n    setIsExpanded: (isExpanded) => set((state) => (Object.assign(Object.assign({}, state), { isExpanded }))),\n    setNotificationConsoleData: (consoleData) => set((state) => (Object.assign(Object.assign({}, state), { consoleData }))),\n    setInProgressConsoleDataIdToBeDeleted: (id) => set((state) => (Object.assign(Object.assign({}, state), { inProgressConsoleDataIdToBeDeleted: id }))),\n    setConsoleAnimationFinished: (consoleAnimationFinished) => set({ consoleAnimationFinished: consoleAnimationFinished }),\n}));\n","import { useEffect, useState } from \"react\";\nimport { HttpHeaders } from \"../Common/Constants\";\nimport { configContext } from \"../ConfigContext\";\nexport async function fetchAccessData(portalToken) {\n    const headers = new Headers();\n    // Portal encrypted token API quirk: The token header must be URL encoded\n    headers.append(HttpHeaders.guestAccessToken, encodeURIComponent(portalToken));\n    const url = `${configContext.PORTAL_BACKEND_ENDPOINT}/api/connectionstring/runtimeproxy/accessinputmetadata`;\n    const options = {\n        method: \"GET\",\n        headers: headers,\n    };\n    return fetch(url, options)\n        .then((response) => response.json())\n        .catch((error) => console.error(error));\n}\nexport function useTokenMetadata(token) {\n    const [state, setState] = useState();\n    useEffect(() => {\n        if (token) {\n            fetchAccessData(token).then((response) => setState(response));\n        }\n    }, [token]);\n    return state;\n}\n","import create from \"zustand\";\nexport const usePostgres = create((set) => ({\n    showPostgreTeachingBubble: false,\n    showResetPasswordBubble: false,\n    setShowPostgreTeachingBubble: (showPostgreTeachingBubble) => set({ showPostgreTeachingBubble }),\n    setShowResetPasswordBubble: (showResetPasswordBubble) => set({ showResetPasswordBubble }),\n}));\n","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n  return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n  if (!isObject(prototype)) return {};\n  if (nativeCreate) return nativeCreate(prototype);\n  var Ctor = ctor();\n  Ctor.prototype = prototype;\n  var result = new Ctor;\n  Ctor.prototype = null;\n  return result;\n}\n","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n  if (value == null) return identity;\n  if (isFunction(value)) return optimizeCb(value, context, argCount);\n  if (isObject(value) && !isArray(value)) return matcher(value);\n  return property(value);\n}\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n  if (_.iteratee !== iteratee) return _.iteratee(value, context);\n  return baseIteratee(value, context, argCount);\n}\n","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n  return instance._chain ? _(obj).chain() : obj;\n}\n","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n  var hash = {};\n  for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n  return {\n    contains: function(key) { return hash[key]; },\n    push: function(key) {\n      hash[key] = true;\n      return keys.push(key);\n    }\n  };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n  keys = emulatedSet(keys);\n  var nonEnumIdx = nonEnumerableProps.length;\n  var constructor = obj.constructor;\n  var proto = isFunction(constructor) && constructor.prototype || ObjProto;\n\n  // Constructor is a special case.\n  var prop = 'constructor';\n  if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n  while (nonEnumIdx--) {\n    prop = nonEnumerableProps[nonEnumIdx];\n    if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n      keys.push(prop);\n    }\n  }\n}\n","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n  return function(obj) {\n    var length = arguments.length;\n    if (defaults) obj = Object(obj);\n    if (length < 2 || obj == null) return obj;\n    for (var index = 1; index < length; index++) {\n      var source = arguments[index],\n          keys = keysFunc(source),\n          l = keys.length;\n      for (var i = 0; i < l; i++) {\n        var key = keys[i];\n        if (!defaults || obj[key] === void 0) obj[key] = source[key];\n      }\n    }\n    return obj;\n  };\n}\n","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n  var escaper = function(match) {\n    return map[match];\n  };\n  // Regexes for identifying a key that needs to be escaped.\n  var source = '(?:' + keys(map).join('|') + ')';\n  var testRegexp = RegExp(source);\n  var replaceRegexp = RegExp(source, 'g');\n  return function(string) {\n    string = string == null ? '' : '' + string;\n    return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n  };\n}\n","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n  return function(array, item, idx) {\n    var i = 0, length = getLength(array);\n    if (typeof idx == 'number') {\n      if (dir > 0) {\n        i = idx >= 0 ? idx : Math.max(idx + length, i);\n      } else {\n        length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n      }\n    } else if (sortedIndex && idx && length) {\n      idx = sortedIndex(array, item);\n      return array[idx] === item ? idx : -1;\n    }\n    if (item !== item) {\n      idx = predicateFind(slice.call(array, i, length), isNaN);\n      return idx >= 0 ? idx + i : -1;\n    }\n    for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n      if (array[idx] === item) return idx;\n    }\n    return -1;\n  };\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n  return function(array, predicate, context) {\n    predicate = cb(predicate, context);\n    var length = getLength(array);\n    var index = dir > 0 ? 0 : length - 1;\n    for (; index >= 0 && index < length; index += dir) {\n      if (predicate(array[index], index, array)) return index;\n    }\n    return -1;\n  };\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n  // Wrap code that reassigns argument variables in a separate function than\n  // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n  var reducer = function(obj, iteratee, memo, initial) {\n    var _keys = !isArrayLike(obj) && keys(obj),\n        length = (_keys || obj).length,\n        index = dir > 0 ? 0 : length - 1;\n    if (!initial) {\n      memo = obj[_keys ? _keys[index] : index];\n      index += dir;\n    }\n    for (; index >= 0 && index < length; index += dir) {\n      var currentKey = _keys ? _keys[index] : index;\n      memo = iteratee(memo, obj[currentKey], currentKey, obj);\n    }\n    return memo;\n  };\n\n  return function(obj, iteratee, memo, context) {\n    var initial = arguments.length >= 3;\n    return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n  };\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n  return function(collection) {\n    var sizeProperty = getSizeProperty(collection);\n    return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n  }\n}\n","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n  var length = path.length;\n  for (var i = 0; i < length; i++) {\n    if (obj == null) return void 0;\n    obj = obj[path[i]];\n  }\n  return length ? obj : void 0;\n}\n","// Internal list of HTML entities for escaping.\nexport default {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#x27;',\n  '`': '&#x60;'\n};\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n  if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n  var self = baseCreate(sourceFunc.prototype);\n  var result = sourceFunc.apply(self, args);\n  if (isObject(result)) return result;\n  return self;\n}\n","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict, output) {\n  output = output || [];\n  if (!depth && depth !== 0) {\n    depth = Infinity;\n  } else if (depth <= 0) {\n    return output.concat(input);\n  }\n  var idx = output.length;\n  for (var i = 0, length = getLength(input); i < length; i++) {\n    var value = input[i];\n    if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n      // Flatten current level of array or arguments object.\n      if (depth > 1) {\n        flatten(value, depth - 1, strict, output);\n        idx = output.length;\n      } else {\n        var j = 0, len = value.length;\n        while (j < len) output[idx++] = value[j++];\n      }\n    } else if (!strict) {\n      output[idx++] = value;\n    }\n  }\n  return output;\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n  return function(obj, iteratee, context) {\n    var result = partition ? [[], []] : {};\n    iteratee = cb(iteratee, context);\n    each(obj, function(value, index) {\n      var key = iteratee(value, index, obj);\n      behavior(result, value, key);\n    });\n    return result;\n  };\n}\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n  return obj != null && hasOwnProperty.call(obj, key);\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n  return key in obj;\n}\n","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n  var length = getLength(methods);\n  return function(obj) {\n    if (obj == null) return false;\n    // `Map`, `WeakMap` and `Set` have no enumerable keys.\n    var keys = allKeys(obj);\n    if (getLength(keys)) return false;\n    for (var i = 0; i < length; i++) {\n      if (!isFunction(obj[methods[i]])) return false;\n    }\n    // If we are testing against `WeakMap`, we need to ensure that\n    // `obj` doesn't have a `forEach` method in order to distinguish\n    // it from a regular `Map`.\n    return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n  };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n    hasName = 'has',\n    commonInit = ['clear', 'delete'],\n    mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n    weakMapMethods = commonInit.concat(mapTail),\n    setMethods = ['add'].concat(commonInit, forEachName, hasName);\n","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n  if (context === void 0) return func;\n  switch (argCount == null ? 3 : argCount) {\n    case 1: return function(value) {\n      return func.call(context, value);\n    };\n    // The 2-argument case is omitted because we’re not using it.\n    case 3: return function(value, index, collection) {\n      return func.call(context, value, index, collection);\n    };\n    case 4: return function(accumulator, value, index, collection) {\n      return func.call(context, accumulator, value, index, collection);\n    };\n  }\n  return function() {\n    return func.apply(context, arguments);\n  };\n}\n","// Current version.\nexport var VERSION = '1.12.1';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = typeof self == 'object' && self.self === self && self ||\n          typeof global == 'object' && global.global === global && global ||\n          Function('return this')() ||\n          {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n    slice = ArrayProto.slice,\n    toString = ObjProto.toString,\n    hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n    supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n    nativeKeys = Object.keys,\n    nativeCreate = Object.create,\n    nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n    _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n  'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n  return function(obj) {\n    return obj == null ? void 0 : obj[key];\n  };\n}\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nexport var hasStringTagBug = (\n      supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n    ),\n    isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n  var tag = '[object ' + name + ']';\n  return function(obj) {\n    return toString.call(obj) === tag;\n  };\n}\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n  return new Uint8Array(\n    bufferSource.buffer || bufferSource,\n    bufferSource.byteOffset || 0,\n    getByteLength(bufferSource)\n  );\n}\n","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n  return _.toPath(path);\n}\n","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n  return function() {\n    if (--times < 1) {\n      return func.apply(this, arguments);\n    }\n  };\n}\n","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n  if (!isObject(obj)) return [];\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  // Ahem, IE < 9.\n  if (hasEnumBug) collectNonEnumProps(obj, keys);\n  return keys;\n}\n","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n  var memo;\n  return function() {\n    if (--times > 0) {\n      memo = func.apply(this, arguments);\n    }\n    if (times <= 1) func = null;\n    return memo;\n  };\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n  if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n  var bound = restArguments(function(callArgs) {\n    return executeBound(func, bound, context, this, args.concat(callArgs));\n  });\n  return bound;\n});\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n  keys = flatten(keys, false, false);\n  var index = keys.length;\n  if (index < 1) throw new Error('bindAll must be passed function names');\n  while (index--) {\n    var key = keys[index];\n    obj[key] = bind(obj[key], obj);\n  }\n  return obj;\n});\n","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n  var instance = _(obj);\n  instance._chain = true;\n  return instance;\n}\n","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n  if (count == null || count < 1) return [];\n  var result = [];\n  var i = 0, length = array.length;\n  while (i < length) {\n    result.push(slice.call(array, i, i += count));\n  }\n  return result;\n}\n","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n  if (!isObject(obj)) return obj;\n  return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n  return filter(array, Boolean);\n}\n","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n  var args = arguments;\n  var start = args.length - 1;\n  return function() {\n    var i = start;\n    var result = args[start].apply(this, arguments);\n    while (i--) result = args[i].call(this, result);\n    return result;\n  };\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n  return function() {\n    return value;\n  };\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n  if (!isArrayLike(obj)) obj = values(obj);\n  if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n  return indexOf(obj, item, fromIndex) >= 0;\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n  if (has(result, key)) result[key]++; else result[key] = 1;\n});\n","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n  var result = baseCreate(prototype);\n  if (props) extendOwn(result, props);\n  return result;\n}\n","import restArguments from './restArguments.js';\nimport now from './now.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n  var timeout, previous, args, result, context;\n\n  var later = function() {\n    var passed = now() - previous;\n    if (wait > passed) {\n      timeout = setTimeout(later, wait - passed);\n    } else {\n      timeout = null;\n      if (!immediate) result = func.apply(context, args);\n      // This check is needed because `func` can recursively invoke `debounced`.\n      if (!timeout) args = context = null;\n    }\n  };\n\n  var debounced = restArguments(function(_args) {\n    context = this;\n    args = _args;\n    previous = now();\n    if (!timeout) {\n      timeout = setTimeout(later, wait);\n      if (immediate) result = func.apply(context, args);\n    }\n    return result;\n  });\n\n  debounced.cancel = function() {\n    clearTimeout(timeout);\n    timeout = args = context = null;\n  };\n\n  return debounced;\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n  return setTimeout(function() {\n    return func.apply(null, args);\n  }, wait);\n});\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n  rest = flatten(rest, true, true);\n  return filter(array, function(value){\n    return !contains(rest, value);\n  });\n});\n","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n  iteratee = optimizeCb(iteratee, context);\n  var i, length;\n  if (isArrayLike(obj)) {\n    for (i = 0, length = obj.length; i < length; i++) {\n      iteratee(obj[i], i, obj);\n    }\n  } else {\n    var _keys = keys(obj);\n    for (i = 0, length = _keys.length; i < length; i++) {\n      iteratee(obj[_keys[i]], _keys[i], obj);\n    }\n  }\n  return obj;\n}\n","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n  predicate = cb(predicate, context);\n  var _keys = !isArrayLike(obj) && keys(obj),\n      length = (_keys || obj).length;\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys ? _keys[index] : index;\n    if (!predicate(obj[currentKey], currentKey, obj)) return false;\n  }\n  return true;\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n  var results = [];\n  predicate = cb(predicate, context);\n  each(obj, function(value, index, list) {\n    if (predicate(value, index, list)) results.push(value);\n  });\n  return results;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n  var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n  var key = keyFinder(obj, predicate, context);\n  if (key !== void 0 && key !== -1) return obj[key];\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n  predicate = cb(predicate, context);\n  var _keys = keys(obj), key;\n  for (var i = 0, length = _keys.length; i < length; i++) {\n    key = _keys[i];\n    if (predicate(obj[key], key, obj)) return key;\n  }\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n  return find(obj, matcher(attrs));\n}\n","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n  if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n  if (n == null || guard) return array[0];\n  return initial(array, array.length - n);\n}\n","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n  return _flatten(array, depth, false);\n}\n","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n  var names = [];\n  for (var key in obj) {\n    if (isFunction(obj[key])) names.push(key);\n  }\n  return names.sort();\n}\n","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n  var value = deepGet(object, toPath(path));\n  return isUndefined(value) ? defaultValue : value;\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n  if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n  path = toPath(path);\n  var length = path.length;\n  for (var i = 0; i < length; i++) {\n    var key = path[i];\n    if (!_has(obj, key)) return false;\n    obj = obj[key];\n  }\n  return !!length;\n}\n","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n  return value;\n}\n","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n  result[key] = value;\n});\n","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n  return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n  var result = [];\n  var argsLength = arguments.length;\n  for (var i = 0, length = getLength(array); i < length; i++) {\n    var item = array[i];\n    if (contains(result, item)) continue;\n    var j;\n    for (j = 1; j < argsLength; j++) {\n      if (!contains(arguments[j], item)) break;\n    }\n    if (j === argsLength) result.push(item);\n  }\n  return result;\n}\n","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n  var result = {};\n  var _keys = keys(obj);\n  for (var i = 0, length = _keys.length; i < length; i++) {\n    result[obj[_keys[i]]] = _keys[i];\n  }\n  return result;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n  var contextPath, func;\n  if (isFunction(path)) {\n    func = path;\n  } else {\n    path = toPath(path);\n    contextPath = path.slice(0, -1);\n    path = path[path.length - 1];\n  }\n  return map(obj, function(context) {\n    var method = func;\n    if (!method) {\n      if (contextPath && contextPath.length) {\n        context = deepGet(context, contextPath);\n      }\n      if (context == null) return void 0;\n      method = context[path];\n    }\n    return method == null ? method : method.apply(context, args);\n  });\n});\n","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n  if (!isArguments(arguments)) {\n    isArguments = function(obj) {\n      return has(obj, 'callee');\n    };\n  }\n}());\n\nexport default isArguments;\n","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n  return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n  return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasStringTagBug ? ie10IsDataView : isDataView);\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n","// Is a given value a DOM element?\nexport default function isElement(obj) {\n  return !!(obj && obj.nodeType === 1);\n}\n","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n  if (obj == null) return true;\n  // Skip the more expensive `toString`-based type checks if `obj` has no\n  // `.length`.\n  var length = getLength(obj);\n  if (typeof length == 'number' && (\n    isArray(obj) || isString(obj) || isArguments(obj)\n  )) return length === 0;\n  return getLength(keys(obj)) === 0;\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasStringTagBug }  from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n  // Identical objects are equal. `0 === -0`, but they aren't identical.\n  // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n  if (a === b) return a !== 0 || 1 / a === 1 / b;\n  // `null` or `undefined` only equal to itself (strict comparison).\n  if (a == null || b == null) return false;\n  // `NaN`s are equivalent, but non-reflexive.\n  if (a !== a) return b !== b;\n  // Exhaust primitive checks\n  var type = typeof a;\n  if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n  return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n  // Unwrap any wrapped objects.\n  if (a instanceof _) a = a._wrapped;\n  if (b instanceof _) b = b._wrapped;\n  // Compare `[[Class]]` names.\n  var className = toString.call(a);\n  if (className !== toString.call(b)) return false;\n  // Work around a bug in IE 10 - Edge 13.\n  if (hasStringTagBug && className == '[object Object]' && isDataView(a)) {\n    if (!isDataView(b)) return false;\n    className = tagDataView;\n  }\n  switch (className) {\n    // These types are compared by value.\n    case '[object RegExp]':\n      // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n    case '[object String]':\n      // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n      // equivalent to `new String(\"5\")`.\n      return '' + a === '' + b;\n    case '[object Number]':\n      // `NaN`s are equivalent, but non-reflexive.\n      // Object(NaN) is equivalent to NaN.\n      if (+a !== +a) return +b !== +b;\n      // An `egal` comparison is performed for other numeric values.\n      return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n    case '[object Date]':\n    case '[object Boolean]':\n      // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n      // millisecond representations. Note that invalid dates with millisecond representations\n      // of `NaN` are not equivalent.\n      return +a === +b;\n    case '[object Symbol]':\n      return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n    case '[object ArrayBuffer]':\n    case tagDataView:\n      // Coerce to typed array so we can fall through.\n      return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n  }\n\n  var areArrays = className === '[object Array]';\n  if (!areArrays && isTypedArray(a)) {\n      var byteLength = getByteLength(a);\n      if (byteLength !== getByteLength(b)) return false;\n      if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n      areArrays = true;\n  }\n  if (!areArrays) {\n    if (typeof a != 'object' || typeof b != 'object') return false;\n\n    // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n    // from different frames are.\n    var aCtor = a.constructor, bCtor = b.constructor;\n    if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n                             isFunction(bCtor) && bCtor instanceof bCtor)\n                        && ('constructor' in a && 'constructor' in b)) {\n      return false;\n    }\n  }\n  // Assume equality for cyclic structures. The algorithm for detecting cyclic\n  // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n  // Initializing stack of traversed objects.\n  // It's done here since we only need them for objects and arrays comparison.\n  aStack = aStack || [];\n  bStack = bStack || [];\n  var length = aStack.length;\n  while (length--) {\n    // Linear search. Performance is inversely proportional to the number of\n    // unique nested structures.\n    if (aStack[length] === a) return bStack[length] === b;\n  }\n\n  // Add the first object to the stack of traversed objects.\n  aStack.push(a);\n  bStack.push(b);\n\n  // Recursively compare objects and arrays.\n  if (areArrays) {\n    // Compare array lengths to determine if a deep comparison is necessary.\n    length = a.length;\n    if (length !== b.length) return false;\n    // Deep compare the contents, ignoring non-numeric properties.\n    while (length--) {\n      if (!eq(a[length], b[length], aStack, bStack)) return false;\n    }\n  } else {\n    // Deep compare objects.\n    var _keys = keys(a), key;\n    length = _keys.length;\n    // Ensure that both objects contain the same number of properties before comparing deep equality.\n    if (keys(b).length !== length) return false;\n    while (length--) {\n      // Deep compare each member\n      key = _keys[length];\n      if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n    }\n  }\n  // Remove the first object from the stack of traversed objects.\n  aStack.pop();\n  bStack.pop();\n  return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n  return eq(a, b);\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n  return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n  isFunction = function(obj) {\n    return typeof obj == 'function' || false;\n  };\n}\n\nexport default isFunction;\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods }  from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n  var _keys = keys(attrs), length = _keys.length;\n  if (object == null) return !length;\n  var obj = Object(object);\n  for (var i = 0; i < length; i++) {\n    var key = _keys[i];\n    if (attrs[key] !== obj[key] || !(key in obj)) return false;\n  }\n  return true;\n}\n","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n  return isNumber(obj) && _isNaN(obj);\n}\n","// Is a given value equal to null?\nexport default function isNull(obj) {\n  return obj === null;\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n","// Is a given variable an object?\nexport default function isObject(obj) {\n  var type = typeof obj;\n  return type === 'function' || type === 'object' && !!obj;\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods }  from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n  // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n  // Otherwise, fall back on the above regular expression.\n  return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n                isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n  return obj === void 0;\n}\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods }  from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n  return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n  if (!isObject(obj)) return [];\n  if (nativeKeys) return nativeKeys(obj);\n  var keys = [];\n  for (var key in obj) if (has(obj, key)) keys.push(key);\n  // Ahem, IE < 9.\n  if (hasEnumBug) collectNonEnumProps(obj, keys);\n  return keys;\n}\n","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n  if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n  if (n == null || guard) return array[array.length - 1];\n  return rest(array, Math.max(0, array.length - n));\n}\n","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n  iteratee = cb(iteratee, context);\n  var _keys = !isArrayLike(obj) && keys(obj),\n      length = (_keys || obj).length,\n      results = Array(length);\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys ? _keys[index] : index;\n    results[index] = iteratee(obj[currentKey], currentKey, obj);\n  }\n  return results;\n}\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n  iteratee = cb(iteratee, context);\n  var _keys = keys(obj),\n      length = _keys.length,\n      results = {};\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys[index];\n    results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n  }\n  return results;\n}\n","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n  attrs = extendOwn({}, attrs);\n  return function(obj) {\n    return isMatch(obj, attrs);\n  };\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n  var result = -Infinity, lastComputed = -Infinity,\n      value, computed;\n  if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n    obj = isArrayLike(obj) ? obj : values(obj);\n    for (var i = 0, length = obj.length; i < length; i++) {\n      value = obj[i];\n      if (value != null && value > result) {\n        result = value;\n      }\n    }\n  } else {\n    iteratee = cb(iteratee, context);\n    each(obj, function(v, index, list) {\n      computed = iteratee(v, index, list);\n      if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n        result = v;\n        lastComputed = computed;\n      }\n    });\n  }\n  return result;\n}\n","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n  var memoize = function(key) {\n    var cache = memoize.cache;\n    var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n    if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n    return cache[address];\n  };\n  memoize.cache = {};\n  return memoize;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n  var result = Infinity, lastComputed = Infinity,\n      value, computed;\n  if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n    obj = isArrayLike(obj) ? obj : values(obj);\n    for (var i = 0, length = obj.length; i < length; i++) {\n      value = obj[i];\n      if (value != null && value < result) {\n        result = value;\n      }\n    }\n  } else {\n    iteratee = cb(iteratee, context);\n    each(obj, function(v, index, list) {\n      computed = iteratee(v, index, list);\n      if (computed < lastComputed || computed === Infinity && result === Infinity) {\n        result = v;\n        lastComputed = computed;\n      }\n    });\n  }\n  return result;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n  each(functions(obj), function(name) {\n    var func = _[name] = obj[name];\n    _.prototype[name] = function() {\n      var args = [this._wrapped];\n      push.apply(args, arguments);\n      return chainResult(this, func.apply(_, args));\n    };\n  });\n  return _;\n}\n","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n  return function() {\n    return !predicate.apply(this, arguments);\n  };\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n  return new Date().getTime();\n};\n","import getLength  from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n  var result = {};\n  for (var i = 0, length = getLength(list); i < length; i++) {\n    if (values) {\n      result[list[i]] = values[i];\n    } else {\n      result[list[i][0]] = list[i][1];\n    }\n  }\n  return result;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n  var iteratee = keys[0], context;\n  if (isFunction(iteratee)) {\n    iteratee = negate(iteratee);\n    if (keys.length > 1) context = keys[1];\n  } else {\n    keys = map(flatten(keys, false, false), String);\n    iteratee = function(value, key) {\n      return !contains(keys, key);\n    };\n  }\n  return pick(obj, iteratee, context);\n});\n","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n  var _keys = keys(obj);\n  var length = _keys.length;\n  var pairs = Array(length);\n  for (var i = 0; i < length; i++) {\n    pairs[i] = [_keys[i], obj[_keys[i]]];\n  }\n  return pairs;\n}\n","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n  var placeholder = partial.placeholder;\n  var bound = function() {\n    var position = 0, length = boundArgs.length;\n    var args = Array(length);\n    for (var i = 0; i < length; i++) {\n      args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n    }\n    while (position < arguments.length) args.push(arguments[position++]);\n    return executeBound(func, bound, this, this, args);\n  };\n  return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n  result[pass ? 0 : 1].push(value);\n}, true);\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n  var result = {}, iteratee = keys[0];\n  if (obj == null) return result;\n  if (isFunction(iteratee)) {\n    if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n    keys = allKeys(obj);\n  } else {\n    iteratee = keyInObj;\n    keys = flatten(keys, false, false);\n    obj = Object(obj);\n  }\n  for (var i = 0, length = keys.length; i < length; i++) {\n    var key = keys[i];\n    var value = obj[key];\n    if (iteratee(value, key, obj)) result[key] = value;\n  }\n  return result;\n});\n","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n  return map(obj, property(key));\n}\n","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n  path = toPath(path);\n  return function(obj) {\n    return deepGet(obj, path);\n  };\n}\n","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n  if (obj == null) return noop;\n  return function(path) {\n    return get(obj, path);\n  };\n}\n","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n  if (max == null) {\n    max = min;\n    min = 0;\n  }\n  return min + Math.floor(Math.random() * (max - min + 1));\n}\n","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n  if (stop == null) {\n    stop = start || 0;\n    start = 0;\n  }\n  if (!step) {\n    step = stop < start ? -1 : 1;\n  }\n\n  var length = Math.max(Math.ceil((stop - start) / step), 0);\n  var range = Array(length);\n\n  for (var idx = 0; idx < length; idx++, start += step) {\n    range[idx] = start;\n  }\n\n  return range;\n}\n","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n  return filter(obj, negate(cb(predicate)), context);\n}\n","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n  return slice.call(array, n == null || guard ? 1 : n);\n}\n","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n  startIndex = startIndex == null ? func.length - 1 : +startIndex;\n  return function() {\n    var length = Math.max(arguments.length - startIndex, 0),\n        rest = Array(length),\n        index = 0;\n    for (; index < length; index++) {\n      rest[index] = arguments[index + startIndex];\n    }\n    switch (startIndex) {\n      case 0: return func.call(this, rest);\n      case 1: return func.call(this, arguments[0], rest);\n      case 2: return func.call(this, arguments[0], arguments[1], rest);\n    }\n    var args = Array(startIndex + 1);\n    for (index = 0; index < startIndex; index++) {\n      args[index] = arguments[index];\n    }\n    args[startIndex] = rest;\n    return func.apply(this, args);\n  };\n}\n","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n  path = toPath(path);\n  var length = path.length;\n  if (!length) {\n    return isFunction(fallback) ? fallback.call(obj) : fallback;\n  }\n  for (var i = 0; i < length; i++) {\n    var prop = obj == null ? void 0 : obj[path[i]];\n    if (prop === void 0) {\n      prop = fallback;\n      i = length; // Ensure we don't continue iterating.\n    }\n    obj = isFunction(prop) ? prop.call(obj) : prop;\n  }\n  return obj;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport clone from './clone.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n  if (n == null || guard) {\n    if (!isArrayLike(obj)) obj = values(obj);\n    return obj[random(obj.length - 1)];\n  }\n  var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n  var length = getLength(sample);\n  n = Math.max(Math.min(n, length), 0);\n  var last = length - 1;\n  for (var index = 0; index < n; index++) {\n    var rand = random(index, last);\n    var temp = sample[index];\n    sample[index] = sample[rand];\n    sample[rand] = temp;\n  }\n  return sample.slice(0, n);\n}\n","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n  return sample(obj, Infinity);\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n  if (obj == null) return 0;\n  return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n  predicate = cb(predicate, context);\n  var _keys = !isArrayLike(obj) && keys(obj),\n      length = (_keys || obj).length;\n  for (var index = 0; index < length; index++) {\n    var currentKey = _keys ? _keys[index] : index;\n    if (predicate(obj[currentKey], currentKey, obj)) return true;\n  }\n  return false;\n}\n","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n  var index = 0;\n  iteratee = cb(iteratee, context);\n  return pluck(map(obj, function(value, key, list) {\n    return {\n      value: value,\n      index: index++,\n      criteria: iteratee(value, key, list)\n    };\n  }).sort(function(left, right) {\n    var a = left.criteria;\n    var b = right.criteria;\n    if (a !== b) {\n      if (a > b || a === void 0) return 1;\n      if (a < b || b === void 0) return -1;\n    }\n    return left.index - right.index;\n  }), 'value');\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n  iteratee = cb(iteratee, context, 1);\n  var value = iteratee(obj);\n  var low = 0, high = getLength(array);\n  while (low < high) {\n    var mid = Math.floor((low + high) / 2);\n    if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n  }\n  return low;\n}\n","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n  interceptor(obj);\n  return obj;\n}\n","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n  \"'\": \"'\",\n  '\\\\': '\\\\',\n  '\\r': 'r',\n  '\\n': 'n',\n  '\\u2028': 'u2028',\n  '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n  return '\\\\' + escapes[match];\n}\n\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n  if (!settings && oldSettings) settings = oldSettings;\n  settings = defaults({}, settings, _.templateSettings);\n\n  // Combine delimiters into one regular expression via alternation.\n  var matcher = RegExp([\n    (settings.escape || noMatch).source,\n    (settings.interpolate || noMatch).source,\n    (settings.evaluate || noMatch).source\n  ].join('|') + '|$', 'g');\n\n  // Compile the template source, escaping string literals appropriately.\n  var index = 0;\n  var source = \"__p+='\";\n  text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n    source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n    index = offset + match.length;\n\n    if (escape) {\n      source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n    } else if (interpolate) {\n      source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n    } else if (evaluate) {\n      source += \"';\\n\" + evaluate + \"\\n__p+='\";\n    }\n\n    // Adobe VMs need the match returned to produce the correct offset.\n    return match;\n  });\n  source += \"';\\n\";\n\n  var argument = settings.variable;\n  if (argument) {\n    if (!bareIdentifier.test(argument)) throw new Error(argument);\n  } else {\n    // If a variable is not specified, place data values in local scope.\n    source = 'with(obj||{}){\\n' + source + '}\\n';\n    argument = 'obj';\n  }\n\n  source = \"var __t,__p='',__j=Array.prototype.join,\" +\n    \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n    source + 'return __p;\\n';\n\n  var render;\n  try {\n    render = new Function(argument, '_', source);\n  } catch (e) {\n    e.source = source;\n    throw e;\n  }\n\n  var template = function(data) {\n    return render.call(this, data, _);\n  };\n\n  // Provide the compiled source as a convenience for precompilation.\n  template.source = 'function(' + argument + '){\\n' + source + '}';\n\n  return template;\n}\n","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n  evaluate: /<%([\\s\\S]+?)%>/g,\n  interpolate: /<%=([\\s\\S]+?)%>/g,\n  escape: /<%-([\\s\\S]+?)%>/g\n};\n","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n  var timeout, context, args, result;\n  var previous = 0;\n  if (!options) options = {};\n\n  var later = function() {\n    previous = options.leading === false ? 0 : now();\n    timeout = null;\n    result = func.apply(context, args);\n    if (!timeout) context = args = null;\n  };\n\n  var throttled = function() {\n    var _now = now();\n    if (!previous && options.leading === false) previous = _now;\n    var remaining = wait - (_now - previous);\n    context = this;\n    args = arguments;\n    if (remaining <= 0 || remaining > wait) {\n      if (timeout) {\n        clearTimeout(timeout);\n        timeout = null;\n      }\n      previous = _now;\n      result = func.apply(context, args);\n      if (!timeout) context = args = null;\n    } else if (!timeout && options.trailing !== false) {\n      timeout = setTimeout(later, remaining);\n    }\n    return result;\n  };\n\n  throttled.cancel = function() {\n    clearTimeout(timeout);\n    previous = 0;\n    timeout = context = args = null;\n  };\n\n  return throttled;\n}\n","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n  var accum = Array(Math.max(0, n));\n  iteratee = optimizeCb(iteratee, context, 1);\n  for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n  return accum;\n}\n","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n  if (!obj) return [];\n  if (isArray(obj)) return slice.call(obj);\n  if (isString(obj)) {\n    // Keep surrogate pair characters together.\n    return obj.match(reStrSymbol);\n  }\n  if (isArrayLike(obj)) return map(obj, identity);\n  return values(obj);\n}\n","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n  return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n  var method = ArrayProto[name];\n  _.prototype[name] = function() {\n    var obj = this._wrapped;\n    if (obj != null) {\n      method.apply(obj, arguments);\n      if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n        delete obj[0];\n      }\n    }\n    return chainResult(this, obj);\n  };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n  var method = ArrayProto[name];\n  _.prototype[name] = function() {\n    var obj = this._wrapped;\n    if (obj != null) obj = method.apply(obj, arguments);\n    return chainResult(this, obj);\n  };\n});\n\nexport default _;\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n  if (obj instanceof _) return obj;\n  if (!(this instanceof _)) return new _(obj);\n  this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n  return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n  return String(this._wrapped);\n};\n","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n  return uniq(flatten(arrays, true, true));\n});\n","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n  if (!isBoolean(isSorted)) {\n    context = iteratee;\n    iteratee = isSorted;\n    isSorted = false;\n  }\n  if (iteratee != null) iteratee = cb(iteratee, context);\n  var result = [];\n  var seen = [];\n  for (var i = 0, length = getLength(array); i < length; i++) {\n    var value = array[i],\n        computed = iteratee ? iteratee(value, i, array) : value;\n    if (isSorted && !iteratee) {\n      if (!i || seen !== computed) result.push(value);\n      seen = computed;\n    } else if (iteratee) {\n      if (!contains(seen, computed)) {\n        seen.push(computed);\n        result.push(value);\n      }\n    } else if (!contains(result, value)) {\n      result.push(value);\n    }\n  }\n  return result;\n}\n","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n  var id = ++idCounter + '';\n  return prefix ? prefix + id : id;\n}\n","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n  var length = array && max(array, getLength).length || 0;\n  var result = Array(length);\n\n  for (var index = 0; index < length; index++) {\n    result[index] = pluck(array, index);\n  }\n  return result;\n}\n","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n  var _keys = keys(obj);\n  var length = _keys.length;\n  var values = Array(length);\n  for (var i = 0; i < length; i++) {\n    values[i] = obj[_keys[i]];\n  }\n  return values;\n}\n","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n  return filter(obj, matcher(attrs));\n}\n","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n  return difference(array, otherArrays);\n});\n","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n  return partial(wrapper, func);\n}\n","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n","import { useReducer, useRef, useEffect, useLayoutEffect } from 'react';\n\nfunction create$1(createState) {\n  let state;\n  const listeners = new Set();\n  const setState = (partial, replace) => {\n    const nextState = typeof partial === \"function\" ? partial(state) : partial;\n    if (nextState !== state) {\n      const previousState = state;\n      state = replace ? nextState : Object.assign({}, state, nextState);\n      listeners.forEach((listener) => listener(state, previousState));\n    }\n  };\n  const getState = () => state;\n  const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n    let currentSlice = selector(state);\n    function listenerToAdd() {\n      const nextSlice = selector(state);\n      if (!equalityFn(currentSlice, nextSlice)) {\n        const previousSlice = currentSlice;\n        listener(currentSlice = nextSlice, previousSlice);\n      }\n    }\n    listeners.add(listenerToAdd);\n    return () => listeners.delete(listenerToAdd);\n  };\n  const subscribe = (listener, selector, equalityFn) => {\n    if (selector || equalityFn) {\n      return subscribeWithSelector(listener, selector, equalityFn);\n    }\n    listeners.add(listener);\n    return () => listeners.delete(listener);\n  };\n  const destroy = () => listeners.clear();\n  const api = {setState, getState, subscribe, destroy};\n  state = createState(setState, getState, api);\n  return api;\n}\n\nconst isSSR = typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nconst useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\nfunction create(createState) {\n  const api = typeof createState === \"function\" ? create$1(createState) : createState;\n  const useStore = (selector = api.getState, equalityFn = Object.is) => {\n    const [, forceUpdate] = useReducer((c) => c + 1, 0);\n    const state = api.getState();\n    const stateRef = useRef(state);\n    const selectorRef = useRef(selector);\n    const equalityFnRef = useRef(equalityFn);\n    const erroredRef = useRef(false);\n    const currentSliceRef = useRef();\n    if (currentSliceRef.current === void 0) {\n      currentSliceRef.current = selector(state);\n    }\n    let newStateSlice;\n    let hasNewStateSlice = false;\n    if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n      newStateSlice = selector(state);\n      hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n    }\n    useIsomorphicLayoutEffect(() => {\n      if (hasNewStateSlice) {\n        currentSliceRef.current = newStateSlice;\n      }\n      stateRef.current = state;\n      selectorRef.current = selector;\n      equalityFnRef.current = equalityFn;\n      erroredRef.current = false;\n    });\n    const stateBeforeSubscriptionRef = useRef(state);\n    useIsomorphicLayoutEffect(() => {\n      const listener = () => {\n        try {\n          const nextState = api.getState();\n          const nextStateSlice = selectorRef.current(nextState);\n          if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n            stateRef.current = nextState;\n            currentSliceRef.current = nextStateSlice;\n            forceUpdate();\n          }\n        } catch (error) {\n          erroredRef.current = true;\n          forceUpdate();\n        }\n      };\n      const unsubscribe = api.subscribe(listener);\n      if (api.getState() !== stateBeforeSubscriptionRef.current) {\n        listener();\n      }\n      return unsubscribe;\n    }, []);\n    return hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n  };\n  Object.assign(useStore, api);\n  useStore[Symbol.iterator] = function* () {\n    console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");\n    yield useStore;\n    yield api;\n  };\n  return useStore;\n}\n\nexport default create;\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","// 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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(5896);\n"],"names":["webpackQueues","webpackExports","webpackError","resolveQueue","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","__read","o","m","r","ar","error","__spread","concat","BrowserCacheLocation","HTTP_REQUEST_TYPE","TemporaryCacheKeys","ApiId","InteractionType","InteractionStatus","BrowserConstants","WrapperSKU","DEFAULT_REQUEST","scopes","KEY_FORMAT_JWK","LogLevel","MathUtils","decimalToHex","num","hex","toString","GuidGenerator","cryptoObj","generateGuid","buffer","Uint8Array","getRandomValues","err","guidHolder","guidResponse","Math","random","isGuid","guid","test","BrowserStringUtils","stringToUtf8Arr","sDOMStr","nChr","nArrLen","nStrLen","nMapIdx","charCodeAt","aBytes","nIdx","nChrIdx","stringToArrayBuffer","dataString","data","ArrayBuffer","dataView","utf8ArrToString","sView","nPart","nLen","String","fromCharCode","Base64Encode","urlEncode","input","encodeURIComponent","encode","replace","urlEncodeArr","inputArr","base64EncArr","inputUtf8Arr","eqLen","sB64Enc","nMod3","nUint24","uint6ToB64","substring","nUint6","Base64Decode","decode","encodedString","Error","base64DecToArr","base64String","nBlockSize","nInLen","nOutLen","ceil","nMod4","nOutIdx","nInIdx","b64ToUint6","charNum","PkceGenerator","base64Encode","generateCodes","codeVerifier","codeChallenge","_a","generateCodeVerifier","generateCodeChallengeFromVerifier","verifier","challenge","BrowserAuthError","createPkceNotGeneratedError","pkceCodeVerifier","pkceHashedCodeVerifier","e_1","sha256Digest","S256_HASH_ALG","PUBLIC_EXPONENT","BrowserCrypto","hasCryptoAPI","createCryptoNotAvailableError","_keygenAlgorithmOptions","name","hash","modulusLength","publicExponent","hasIECrypto","getMSCryptoDigest","getSubtleCryptoDigest","dataBuffer","window","crypto","generateKeyPair","extractable","usages","msCryptoGenerateKey","subtle","generateKey","exportJwk","key","msCryptoExportJwk","exportKey","importJwk","keyString","keyBuffer","getJwkString","msCryptoImportKey","importKey","sign","msCryptoSign","hasBrowserCrypto","algorithm","digest","digestOperation","addEventListener","target","_this","msGenerateKey","msExportKey","resultBuffer","resultString","split","join","JSON","parse","msImportKey","msSign","jwk","stringify","keys","sort","DatabaseStorage","dbName","tableName","version","dbOpen","open","openDB","indexedDB","createObjectStore","event","db","get","createDatabaseNotOpenError","dbGet","transaction","objectStore","put","payload","dbPut","CryptoOps","browserCrypto","b64Encode","b64Decode","guidGenerator","pkceGenerator","cache","DB_NAME","TABLE_NAME","DB_VERSION","createNewGuid","base64Decode","generatePkceCodes","getPublicKeyThumbprint","request","keyPair","publicKeyJwk","pubKeyThumprintObj","publicJwkString","publicJwkBuffer","publicJwkHash","privateKeyJwk","unextractablePrivateKey","EXTRACTABLE","POP_KEY_USAGES","publicKey","kty","privateKey","requestMethod","resourceRequestMethod","requestUri","resourceRequestUri","signJwt","kid","cachedKeyPair","publicKeyJwkString","header","encodedHeader","encodedPayload","tokenString","tokenBuffer","signatureBuffer","encodedSignature","alg","type","cnf","AuthorityType","Logger","loggerOptions","packageName","packageVersion","level","Info","localCallback","loggerCallback","piiLoggingEnabled","logLevel","correlationId","Constants","EMPTY_STRING","clone","logMessage","options","containsPii","timestamp","Date","toUTCString","log","StringUtils","isEmpty","executeCallback","message","errorPii","warning","Warning","warningPii","info","infoPii","verbose","Verbose","verbosePii","trace","Trace","tracePii","isPiiLoggingEnabled","DEFAULT_CRYPTO_IMPLEMENTATION","AuthError","createUnexpectedError","ClientConfigurationErrorMessage","code","desc","ClientConfigurationError","_super","errorCode","errorMessage","createRedirectUriEmptyError","createPostLogoutRedirectUriEmptyError","createClaimsRequestParsingError","claimsRequestParseError","createInsecureAuthorityUriError","urlString","createUrlParseError","urlParseError","createUrlEmptyError","createEmptyScopesArrayError","createClientIdSingleScopeError","inputScopes","createInvalidPromptError","promptValue","createInvalidClaimsRequestError","createEmptyLogoutRequestError","createEmptyTokenRequestError","createInvalidCodeChallengeMethodError","createInvalidCodeChallengeParamsError","createInvalidCloudDiscoveryMetadataError","createInvalidAuthorityMetadataError","createUntrustedAuthorityError","ClientAuthError","UrlString","url","_urlString","getHash","canonicalizeUri","defineProperty","enumerable","configurable","lowerCaseUrl","toLowerCase","endsWith","slice","validateAsUri","components","getUrlComponents","HostNameAndPort","PathSegments","Protocol","urlRemoveQueryStringParameter","regex","RegExp","appendQueryString","queryString","indexOf","removeHashFromUrl","replaceTenantPath","tenantId","urlObject","pathArray","COMMON","ORGANIZATIONS","constructAuthorityUriFromObject","parseHash","regEx","match","urlComponents","AbsolutePath","QueryString","pathSegments","filter","val","getDomainFromUrl","getAbsoluteUrl","relativeUrl","baseUrl","FORWARD_SLASH","baseComponents","hashString","hashIndex1","hashIndex2","getDeserializedHash","parsedHash","deserializedHash","queryStringToObject","createHashNotDeserializedError","hashContainsKnownProperties","parameters","error_description","state","ThrottlingUtils","generateThrottlingStorageKey","thumbprint","THROTTLING_PREFIX","preProcess","cacheManager","getThrottlingCache","throttleTime","now","removeItem","THROTTLING","ServerError","errorCodes","subError","postProcess","response","checkResponseStatus","checkResponseForRetryAfter","thumbprintValue","calculateThrottleTime","parseInt","headers","RETRY_AFTER","error_codes","suberror","setThrottlingCache","status","time","currentSeconds","floor","min","DEFAULT_THROTTLE_TIME_SECONDS","DEFAULT_MAX_THROTTLE_TIME_SECONDS","removeThrottle","clientId","authority","homeAccountIdentifier","buildClientInfo","rawClientInfo","createClientInfoEmptyError","decodedClientInfo","createClientInfoDecodingError","buildClientInfoFromHomeAccountId","homeAccountId","clientInfoParts","CLIENT_INFO_SEPARATOR","uid","utid","ProtocolMode","AccountEntity","generateAccountId","environment","CACHE_KEY_SEPARATOR","generateAccountKey","generateAccountCacheKey","realm","username","localAccountId","generateType","authorityType","ADFS_ACCOUNT_TYPE","ADFS","MSAV1_ACCOUNT_TYPE","MSA","MSSTS_ACCOUNT_TYPE","MSSTS","GENERIC_ACCOUNT_TYPE","GENERIC","createUnexpectedAccountTypeError","getAccountInfo","idTokenClaims","accountInterface","createAccount","clientInfo","idToken","oboAssertion","cloudGraphHostName","msGraphHost","_b","_c","_d","_e","_f","account","env","getPreferredCache","createInvalidCacheEnvironmentError","claims","tid","oid","sub","preferred_username","emails","createGenericAccount","Adfs","upn","generateHomeAccountId","serverClientInfo","authType","logger","accountId","isAccountEntity","entity","accountInfoIsEqual","accountA","accountB","compareClaims","claimsMatch","accountAClaims","accountBClaims","iat","nonce","isOpenIdConfigResponse","TimeUtils","nowSeconds","round","getTime","isTokenExpired","expiresOn","offset","expirationSec","Number","wasClockTurnedBack","cachedAt","delay","setTimeout","AuthorityMetadataEntity","expiresAt","REFRESH_TIME_SECONDS","updateCloudDiscoveryMetadata","metadata","fromNetwork","aliases","preferred_cache","preferred_network","aliasesFromNetwork","updateEndpointMetadata","authorization_endpoint","token_endpoint","end_session_endpoint","issuer","endpointsFromNetwork","updateCanonicalAuthority","canonical_authority","resetExpiresAt","isExpired","isAuthorityMetadataEntity","CACHE_KEY","RegionDiscovery","networkInterface","detectRegion","environmentRegion","regionDiscoveryMetadata","autodetectedRegionName","localIMDSVersionResponse","currentIMDSVersion","currentIMDSVersionResponse","getRegionFromIMDS","IMDS_VERSION","httpSuccess","region_source","IMDS","httpBadRequest","getCurrentVersion","FAILED_AUTO_DETECTION","ENVIRONMENT_VARIABLE","sendGetRequestAsync","IMDS_ENDPOINT","IMDS_OPTIONS","IMDS_TIMEOUT","Authority","authorityOptions","canonicalAuthority","_canonicalAuthority","regionDiscovery","region_used","undefined","region_outcome","canonicalAuthorityUrlComponents","Default","protocolMode","set","_canonicalAuthorityUrlComponents","discoveryComplete","endpoint","replacePath","replaceTenant","createEndpointDiscoveryIncompleteError","tenant","cachedAuthorityParts","forEach","currentPart","index","cachedPart","OIDC","resolveEndpointsAsync","metadataEntity","cloudDiscoverySource","endpointSource","cacheKey","getAuthorityMetadataByAlias","hostnameAndPort","CACHE","generateAuthorityMetadataCacheKey","setAuthorityMetadata","azureRegion","getEndpointMetadataFromConfig","CONFIG","isAuthoritySameType","getEndpointMetadataFromNetwork","azureRegionConfiguration","AZURE_REGION_AUTO_DISCOVER_FLAG","AUTO_DETECTION_REQUESTED_SUCCESSFUL","AUTO_DETECTION_REQUESTED_FAILED","CONFIGURED_MATCHES_DETECTED","CONFIGURED_NOT_DETECTED","CONFIGURED_NO_AUTO_DETECTION","replaceWithRegionalInformation","NETWORK","createUnableToGetOpenidConfigError","defaultOpenIdConfigurationEndpoint","authorityMetadata","getCloudDiscoveryMetadataFromConfig","getCloudDiscoveryMetadataFromNetwork","cloudDiscoveryMetadata","parsedResponse","getCloudDiscoveryMetadataFromNetworkResponse","isInKnownAuthorities","createCloudDiscoveryMetadataFromHost","instanceDiscoveryEndpoint","AAD_INSTANCE_DISCOVERY_ENDPT","isCloudInstanceDiscoveryResponse","knownAuthorities","host","isAlias","isPublicCloudAuthority","KNOWN_PUBLIC_CLOUDS","buildRegionalAuthorityString","region","authorityUrlInstance","authorityUrlParts","hostNameAndPort","REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX","AuthorityFactory","createDiscoveredInstance","authorityUri","networkClient","acquireTokenAuthority","createInstance","authorityUrl","CredentialEntity","generateAccountIdForCacheKey","generateCredentialId","generateCredentialIdForCacheKey","credentialType","familyId","generateTarget","generateTargetForCacheKey","generateCredentialKey","generateCredentialCacheKey","ID_TOKEN","ACCESS_TOKEN","REFRESH_TOKEN","createUnexpectedCredentialTypeError","getCredentialType","ACCESS_TOKEN_WITH_AUTH_SCHEME","NOT_DEFINED","ScopeSet","scopeArr","trimArrayEntries","filteredInput","removeEmptyStringsFromArray","validateInputScopes","Set","scope","add","fromString","inputScopeString","containsScope","lowerCaseScopesSet","printScopesLowerCase","has","containsScopeSet","scopeSet","size","asArray","every","containsOnlyOIDCScopes","defaultScopeCount","defaultScope","appendScope","newScope","trim","appendScopes","newScopes","createAppendScopeSetError","removeScope","createRemoveEmptyScopeFromSetError","delete","removeOIDCScopes","unionScopeSets","otherScopes","createEmptyInputScopeSetError","unionScopes","intersectingScopeSets","sizeOtherScopes","getScopeCount","sizeThisScopes","array","printScopes","AuthToken","rawToken","createTokenNullOrEmptyError","extractTokenClaims","encodedToken","decodedToken","decodeAuthToken","base64TokenPayload","JWSPayload","base64Decoded","createTokenParsingError","CacheManager","cryptoImpl","getAllAccounts","currentAccounts","getAccountsFilteredBy","accountValues","map","accountKey","accountInfo","toObject","readIdTokenFromCache","secret","saveCacheRecord","cacheRecord","createNullOrUndefinedCacheRecord","setAccount","setIdTokenCredential","accessToken","saveAccessToken","refreshToken","setRefreshTokenCredential","appMetadata","setAppMetadata","credential","currentTokenCache","getCredentialsFilteredBy","currentScopes","currentAccessTokens","accessTokens","tokenEntity","removeCredential","setAccessTokenCredential","accountFilter","getAccountsFilteredByInternal","allCacheKeys","getKeys","matchingAccounts","getAccount","matchHomeAccountId","matchEnvironment","matchRealm","getCredentialsFilteredByInternal","matchingCredentials","idTokens","refreshTokens","credType","getSpecificCredential","matchOboAssertion","matchCredentialType","matchClientId","matchFamilyId","matchTarget","getAppMetadataFilteredBy","getAppMetadataFilteredByInternal","matchingAppMetadata","isAppMetadata","getAppMetadata","getAuthorityMetadataKeys","matchedEntity","isAuthorityMetadata","getAuthorityMetadata","removeAllAccounts","removeAccount","createNoAccountFoundError","removeAccountContext","ACCOUNT","cacheEntity","CREDENTIAL","removeAppMetadata","APP_METADATA","readCacheRecord","authScheme","cachedAccount","readAccountFromCache","cachedIdToken","cachedAccessToken","readAccessTokenFromCache","cachedRefreshToken","readRefreshTokenFromCache","cachedAppMetadata","readAppMetadataFromCache","idTokenFilter","credentialCache","numIdTokens","createMultipleMatchingTokensInCacheError","POP","accessTokenFilter","numAccessTokens","familyRT","id","refreshTokenFilter","appMetadataFilter","appMetadataEntries","numAppMetadata","createMultipleMatchingAppMetadataInCacheError","isAppMetadataFOCI","cloudMetadata","entityScopeSet","requestTargetScopeSet","OFFLINE_ACCESS_SCOPE","getIdTokenCredential","getAccessTokenCredential","getRefreshTokenCredential","obj","json","propertyName","DefaultStorageClass","setServerTelemetry","getServerTelemetry","containsKey","clear","DEFAULT_SYSTEM_OPTIONS","tokenRenewalOffsetSeconds","preventCorsPreflight","DEFAULT_LOGGER_IMPLEMENTATION","DEFAULT_NETWORK_IMPLEMENTATION","sendPostRequestAsync","DEFAULT_LIBRARY_INFO","sku","SKU","cpu","os","DEFAULT_CLIENT_CREDENTIALS","clientSecret","clientAssertion","CcsCredentialType","NetworkManager","sendPostRequest","tokenEndpoint","createNetworkError","KeyLocation","BaseClient","configuration","authOptions","userAuthOptions","userSystemOptions","userLoggerOption","storageImplementation","networkImplementation","cryptoImplementation","clientCredentials","libraryInfo","serverTelemetryManager","persistencePlugin","serializableCache","config","systemOptions","storageInterface","cryptoInterface","clientCapabilities","cryptoUtils","networkManager","createTokenRequestHeaders","ccsCred","CONTENT_TYPE","URL_FORM_CONTENT_TYPE","HOME_ACCOUNT_ID","CCS_HEADER","UPN","executePostToTokenEndpoint","clearTelemetryCache","updateAuthority","updatedAuthority","RequestValidator","validateRedirectUri","redirectUri","validatePrompt","prompt","promptValues","validateClaims","validateCodeChallengeParams","codeChallengeMethod","validateCodeChallengeMethod","PLAIN","S256","sanitizeEQParams","eQParams","queryParams","RequestParameterBuilder","Map","addResponseTypeCode","RESPONSE_TYPE","CODE_RESPONSE_TYPE","addResponseMode","responseMode","RESPONSE_MODE","QUERY","addScopes","addOidcScopes","requestScopes","SCOPE","addClientId","CLIENT_ID","addRedirectUri","REDIRECT_URI","addPostLogoutRedirectUri","POST_LOGOUT_URI","addIdTokenHint","idTokenHint","ID_TOKEN_HINT","addDomainHint","domainHint","DOMAIN_HINT","addLoginHint","loginHint","LOGIN_HINT","addCcsUpn","addCcsOid","addSid","sid","SID","addClaims","mergedClaims","addClientCapabilitiesToClaims","CLAIMS","addCorrelationId","CLIENT_REQUEST_ID","addLibraryInfo","X_CLIENT_SKU","X_CLIENT_VER","X_CLIENT_OS","X_CLIENT_CPU","addPrompt","PROMPT","addState","STATE","addNonce","NONCE","addCodeChallengeParams","CODE_CHALLENGE","CODE_CHALLENGE_METHOD","addAuthorizationCode","CODE","addDeviceCode","DEVICE_CODE","addRefreshToken","addCodeVerifier","CODE_VERIFIER","addClientSecret","CLIENT_SECRET","addClientAssertion","CLIENT_ASSERTION","addClientAssertionType","clientAssertionType","CLIENT_ASSERTION_TYPE","addOboAssertion","OBO_ASSERTION","addRequestTokenUse","tokenUse","REQUESTED_TOKEN_USE","addGrantType","grantType","GRANT_TYPE","addClientInfo","addExtraQueryParameters","eQparams","XMS_CC","values","addUsername","addPassword","password","addPopToken","cnfString","TOKEN_TYPE","REQ_CNF","addServerTelemetry","X_CLIENT_CURR_TELEM","generateCurrentRequestHeaderValue","X_CLIENT_LAST_TELEM","generateLastRequestHeaderValue","addThrottling","X_MS_LIB_CAPABILITY","X_MS_LIB_CAPABILITY_VALUE","createQueryString","queryParameterArray","IdTokenEntity","createIdTokenEntity","idTokenEntity","isIdTokenEntity","AccessTokenEntity","createAccessTokenEntity","extExpiresOn","refreshOn","tokenType","atEntity","currentTime","extendedExpiresOn","BEARER","tokenClaims","createTokenClaimsRequiredError","keyId","isAccessTokenEntity","RefreshTokenEntity","createRefreshTokenEntity","rtEntity","isRefreshTokenEntity","CacheRecord","accountEntity","accessTokenEntity","refreshTokenEntity","appMetadataEntity","ProtocolUtils","setRequestState","userState","meta","libraryState","generateLibraryState","RESOURCE_DELIM","createNoCryptoObjectError","stateObj","stateString","parseRequestState","createInvalidStateError","splitState","libraryStateString","libraryStateObj","userRequestState","PopTokenGenerator","generateCnf","kidThumbprint","reqCnf","xms_ksl","SW","signPopToken","shrClaims","resourceUrlString","resourceUrlComponents","at","ts","toUpperCase","u","q","client_claims","AppMetadataEntity","generateAppMetadataKey","generateAppMetadataCacheKey","createAppMetadataEntity","isAppMetadataEntity","TokenCacheContext","tokenCache","hasChanged","ResponseHandler","cacheStorage","validateServerAuthorizationCodeResponse","serverResponseHash","cachedState","createStateNotFoundError","decodeURIComponent","createStateMismatchError","InteractionRequiredAuthError","isInteractionRequiredError","client_info","validateTokenResponse","serverResponse","errString","correlation_id","trace_id","handleServerTokenResponse","serverTokenResponse","reqTimestamp","authCodePayload","handlingRefreshTokenResponse","idTokenObj","requestStateObj","cacheContext","id_token","createNonceMismatchError","generateCacheRecord","beforeCacheAccess","generateAuthenticationResult","afterCacheAccess","generateAccountEntity","access_token","responseScopes","expiresIn","expires_in","extExpiresIn","ext_expires_in","refreshIn","refresh_in","tokenExpirationSeconds","extendedTokenExpirationSeconds","refreshOnSeconds","token_type","refresh_token","foci","cloud_graph_host_name","msGraphhost","msgraph_host","fromTokenCache","requestState","uniqueId","fromCache","AuthorizationCodeClient","getAuthCodeUrl","createAuthCodeUrlQueryString","authorizationEndpoint","acquireToken","responseHandler","createTokenRequestCannotBeMadeError","executeTokenRequest","handleFragmentResponse","hashFragment","hashUrlString","serverParams","createNoAuthCodeInServerResponseError","getLogoutUri","logoutRequest","createLogoutUrlQueryString","endSessionEndpoint","requestBody","queryParameters","ccsCredential","createTokenRequestBody","createTokenQueryParameters","parameterBuilder","tokenQueryParameters","assertion","assertionType","AUTHORIZATION_CODE_GRANT","authenticationScheme","isEmptyObj","extraScopesToConsent","SELECT_ACCOUNT","NONE","accountSid","extractAccountSid","extraQueryParameters","postLogoutRedirectUri","RefreshTokenClient","acquireTokenByRefreshToken","noFamilyRTInCache","clientMismatchErrorWithFamilyRT","createNoAccountInSilentRequestError","acquireTokenWithCachedRefreshToken","noTokensFoundError","INVALID_GRANT_ERROR","CLIENT_MISMATCH_ERROR","refreshTokenRequest","createNoTokensFoundError","popTokenGenerator","REFRESH_TOKEN_GRANT","SilentFlowClient","acquireCachedToken","tokenRefreshRequired","forceRefresh","setCacheOutcome","FORCE_REFRESH","createRefreshRequiredError","NO_CACHED_ACCESS_TOKEN","CACHED_ACCESS_TOKEN_EXPIRED","REFRESH_CACHED_ACCESS_TOKEN","incrementCacheHits","generateResultFromCacheRecord","ServerTelemetryEntity","failedRequests","errors","cacheHits","isServerTelemetryEntity","validateKey","validateEntity","ServerTelemetryManager","telemetryRequest","cacheOutcome","NO_CACHE_HIT","apiId","wrapperSKU","wrapperVer","telemetryCacheKey","VALUE_SEPARATOR","platformFields","requestWithRegionDiscoveryFields","getRegionDiscoveryFields","SCHEMA_VERSION","CATEGORY_SEPARATOR","lastRequests","getLastRequests","maxErrors","maxErrorsToSend","errorCount","OVERFLOW_TRUE","OVERFLOW_FALSE","cacheFailedRequest","MAX_CACHED_ERRORS","shift","UNKNOWN_ERROR","initialValue","numErrorsFlushed","serverTelemEntity","serverTelemetryEntity","dataSize","MAX_LAST_HEADER_BYTES","regionDiscoveryFields","regionUsed","regionSource","regionOutcome","updateRegionDiscoveryMetadata","ThrottlingEntity","isThrottlingEntity","BrowserConfigurationAuthErrorMessage","BrowserConfigurationAuthError","createStorageNotSupportedError","givenStorageLocation","createInvalidCallbackObjectError","callbackObject","createRedirectCallbacksNotSetError","createStubPcaInstanceCalledError","createInMemoryRedirectUnavailableError","BrowserStorage","cacheLocation","validateWindowStorage","windowStorage","LocalStorage","SessionStorage","getItem","setItem","MemoryStorage","cacheKeys","BrowserProtocolUtils","extractBrowserRequestState","parseServerResponseFromHash","locationHash","BrowserCacheManager","cacheConfig","COOKIE_LIFE_MULTIPLIER","internalStorage","browserStorage","setupBrowserStorage","temporaryCacheStorage","setupTemporaryCacheStorage","migrateCacheEntries","idTokenKey","CACHE_PREFIX","clientInfoKey","CLIENT_INFO","errorKey","ERROR","errorDescKey","ERROR_DESC","migrateCacheEntry","newKey","setTemporaryCache","validateAndParseJson","jsonValue","parsedJson","parsedAccount","parsedIdToken","accessTokenKey","parsedAccessToken","refreshTokenKey","parsedRefreshToken","appMetadataKey","parsedMetadata","serverTelemetryKey","serverTelemetry","throttlingCacheKey","parsedThrottlingCache","throttlingCache","getTemporaryCache","generateCacheKey","storeAuthStateInCookie","itemCookie","getItemCookie","item","setItemCookie","clearItemCookie","cookieName","cookieValue","expires","cookieStr","getCookieExpirationTime","secureCookies","document","cookie","cookieList","charAt","clearMsalCookies","cookiePrefix","cookieKey","cookieLifeDays","today","getCache","setCache","startsWith","ADAL_ID_TOKEN","generateAuthorityKey","stateId","AUTHORITY","generateNonceKey","NONCE_IDTOKEN","generateStateKey","REQUEST_STATE","getCachedAuthority","stateCacheKey","authorityCacheKey","updateCacheEntries","authorityInstance","nonceCacheKey","resetRequestCache","REQUEST_PARAMS","ORIGIN_URI","URL_HASH","INTERACTION_STATUS_KEY","cleanRequestByState","stateKey","cleanRequestByInteractionType","interactionType","stateValue","parsedState","cacheCodeRequest","authCodeRequest","encodedValue","getCachedRequest","encodedTokenRequest","createNoTokenRequestCacheError","parsedRequest","createUnableToParseTokenRequestCacheError","cachedAuthority","createNoCachedAuthorityError","StubbedNetworkModule","FetchClient","fetch","method","GET","getFetchHeaders","navigator","onLine","createGetRequestFailedError","createNoNetworkConnectivityError","getHeaderDict","createFailedToParseNetworkResponseError","reqBody","e_3","POST","createPostRequestFailedError","Headers","optionsHeaders","append","headerDict","XhrClient","sendRequestAsync","xhr","XMLHttpRequest","setXhrHeaders","onload","jsonResponse","responseText","networkResponse","onerror","send","createHttpMethodNotImplementedError","headers_1","setRequestHeader","headerArr","getAllResponseHeaders","parts","headerName","headerVal","BrowserUtils","clearHash","contentWindow","location","history","replaceState","pathname","search","replaceHash","urlParts","isInIframe","parent","getCurrentUri","href","getHomepage","getBrowserNetworkClient","blockReloadInHiddenIframes","createBlockReloadInHiddenIframeError","blockRedirectInIframe","allowRedirectInIframe","isIframedApp","Redirect","createRedirectInIframeError","blockAcquireTokenInPopups","opener","createBlockAcquireTokenInPopupsError","blockNonBrowserEnvironment","isBrowserEnvironment","createNonBrowserEnvironmentError","detectIEOrEdge","ua","userAgent","msie","msie11","msedge","NavigationClient","navigateInternal","defaultNavigateWindow","navigateExternal","noHistory","timeout","DEFAULT_IFRAME_TIMEOUT_MS","EventType","InteractionHandler","authCodeModule","storageImpl","authModule","handleCodeResponse","networkModule","authCodeResponse","nonceKey","cachedNonce","tokenResponse","createEmptyHashError","cloud_instance_host_name","updateTokenEndpointAuthority","cloudInstanceHostname","cloudInstanceAuthorityUri","cloudInstanceAuthority","RedirectHandler","initiateAuthRequest","requestUrl","params","navigationOptions","redirectStartPage","acquireTokenRedirect","redirectTimeout","onRedirectNavigate","navigationClient","createEmptyNavigationUriError","PopupUtils","unloadWindow","bind","openPopup","urlNavigate","popupName","popup","popupWindow","openSizedPopup","createEmptyWindowCreatedError","focus","currentWindow","createPopupWindowError","winLeft","screenLeft","screenX","winTop","screenTop","screenY","width","innerWidth","documentElement","clientWidth","height","innerHeight","clientHeight","left","max","top","Popup","close","preventDefault","cleanPopup","removeEventListener","monitorPopupForSameOrigin","intervalId","setInterval","closed","clearInterval","createUserCancelledError","generatePopupName","generateLogoutPopupName","PopupHandler","popupUtils","monitorPopupForHash","contentHash","createHashDoesNotContainKnownPropertiesError","SilentHandler","navigateFrameWait","loadFrame","loadFrameSync","monitorIframeForHash","iframe","timeoutMark","performance","removeHiddenIframe","createMonitorIframeTimeoutError","frameHandle","createHiddenIframe","src","authFrame","createElement","style","visibility","position","border","setAttribute","getElementsByTagName","appendChild","parentNode","removeChild","ClientApplication","userInputAuth","userInputCache","userInputSystem","DEFAULT_AUTH_OPTIONS","DEFAULT_CACHE_OPTIONS","DEFAULT_LOGGER_OPTIONS","DEFAULT_BROWSER_SYSTEM_OPTIONS","cacheOptions","auth","system","DEFAULT_AUTHORITY","navigateToLoginRequestUrl","AAD","loadFrameTimeout","windowHashTimeout","iframeHashTimeout","redirectNavigationTimeout","asyncPopups","activeLocalAccountId","eventCallbacks","redirectResponse","handleRedirectPromise","loggedInAccounts","redirectResponseKey","emitEvent","HANDLE_REDIRECT_START","handleRedirectResponse","LOGIN_SUCCESS","ACQUIRE_TOKEN_SUCCESS","HANDLE_REDIRECT_END","catch","ACQUIRE_TOKEN_FAILURE","LOGIN_FAILURE","responseHash","loginRequestUrl","loginRequestUrlNormalized","currentUrlNormalized","handleHashResult","processHashOnRedirect","homepage","interactionInProgress","getRedirectResponseHash","validateAndExtractStateFromHash","handleHash","isResponseHash","cachedHash","createHashDoesNotContainStateError","platformStateObj","createUnableToParseStateError","createStateInteractionTypeMismatchError","cachedRequest","currentAuthority","authClient","initializeServerTelemetryManager","createAuthCodeClient","isLoggedIn","validRequest","interactionHandler","navigateUrl","e_2","preflightBrowserEnvironmentCheck","ACQUIRE_TOKEN_START","LOGIN_START","preflightInteractiveRequest","initializeAuthorizationCodeRequest","getRedirectStartPage","acquireTokenPopup","acquireTokenPopupAsync","popupParameters","POPUP_OPENED","ssoSilent","silentTokenResult","e_4","Silent","SSO_SILENT_START","acquireTokenByIframe","SSO_SILENT_SUCCESS","SSO_SILENT_FAILURE","silentRequest","e_5","createSilentSSOInsufficientInfoError","createSilentPromptValueError","initializeAuthorizationRequest","silentTokenHelper","e_6","isServerError","isInvalidGrantError","ACQUIRE_TOKEN_NETWORK_START","initializeBaseRequest","acquireTokenSilent_silentFlow","createRefreshTokenClient","acquireTokenSilent_authCode","silentHandler","msalFrame","logout","logoutRedirect","validLogoutRequest","logoutUri","e_7","initializeLogoutRequest","LOGOUT_START","getActiveAccount","setActiveAccount","LOGOUT_SUCCESS","LOGOUT_FAILURE","LOGOUT_END","logoutPopup","mainWindowRedirectUri","logoutPopupAsync","requestAuthority","e_8","absoluteUrl","e_9","getAccountByUsername","userName","allAccounts","accountObj","getAccountByHomeId","getAccountByLocalId","getRedirectUri","requestRedirectUri","requestStartPage","getDiscoveredAuthority","clientConfig","getClientConfiguration","createSilentFlowClient","discoveredAuthority","createInteractionInProgressError","telemetryPayload","browserState","validatedRequest","FRAGMENT","adalIdTokenString","adalIdToken","generatedPkceParams","S256_CODE_CHALLENGE_METHOD","eventType","message_1","callback","callbackId","addEventCallback","removeEventCallback","getLogger","setLogger","initializeWrapperLibrary","setNavigationClient","PublicClientApplication","loginRedirect","loginPopup","acquireTokenSilent","cachedToken","tokenRenewalResult","tokenRenewalError_1","createNoAccountError","BrowserAuthErrorMessage","pkceNotGenerated","cryptoDoesNotExist","httpMethodNotImplementedError","emptyNavigateUriError","hashEmptyError","hashDoesNotContainStateError","hashDoesNotContainKnownPropertiesError","unableToParseStateError","stateInteractionTypeMismatchError","popUpWindowError","emptyWindowError","userCancelledError","monitorPopupTimeoutError","monitorIframeTimeoutError","redirectInIframeError","blockTokenRequestsInHiddenIframeError","blockAcquireTokenInPopupsError","iframeClosedPrematurelyError","silentSSOInsufficientInfoError","noAccountError","silentPromptValueError","noTokenRequestCacheError","unableToParseTokenRequestCacheError","noCachedAuthorityError","authRequestNotSet","invalidCacheType","notInBrowserEnvironment","databaseNotOpen","noNetworkConnectivity","postRequestFailed","getRequestFailed","failedToParseNetworkResponse","errDetail","hashValue","createMonitorPopupTimeoutError","windowParentCheck","createIframeClosedPrematurelyError","givenPrompt","createAuthRequestNotSetError","createInvalidCacheTypeError","errorDesc","__spreadArrays","il","k","a","j","jl","AuthErrorMessage","errorString","errDesc","ClientAuthErrorMessage","clientInfoDecodingError","clientInfoEmptyError","tokenParsingError","nullOrEmptyToken","endpointResolutionError","networkError","unableToGetOpenidConfigError","hashNotDeserialized","blankGuidGenerated","invalidStateError","stateMismatchError","stateNotFoundError","nonceMismatchError","nonceNotFoundError","multipleMatchingTokens","multipleMatchingAccounts","multipleMatchingAppMetadata","tokenRequestCannotBeMade","appendEmptyScopeError","removeEmptyScopeError","appendScopeSetError","emptyInputScopeSetError","DeviceCodePollingCancelled","DeviceCodeExpired","DeviceCodeUnknownError","NoAccountInSilentRequest","invalidCacheRecord","invalidCacheEnvironment","noAccountFound","CachePluginError","noCryptoObj","unexpectedAccountType","unexpectedCredentialType","invalidAssertion","invalidClientCredential","userTimeoutReached","tokenClaimsRequired","noAuthorizationCodeFromServer","noAzureRegionDetected","accessTokenEntityNullError","caughtError","caughtExtractionError","invalidRawTokenString","hashParamObj","invalidState","missingState","createNonceNotFoundError","missingNonce","createMultipleMatchingAccountsInCacheError","createAppendEmptyScopeToSetError","givenScope","appendError","createDeviceCodeCancelledError","createDeviceCodeExpiredError","createDeviceCodeUnknownError","createCachePluginError","operationName","createInvalidAssertionError","createInvalidCredentialError","createUserTimeoutReachedError","InteractionRequiredAuthErrorMessage","InteractionRequiredAuthSubErrorMessage","isInteractionRequiredErrorCode","isInteractionRequiredSubError","isInteractionRequiredErrorDesc","some","irErrorCode","HeaderNames","PersistentCacheKeys","AADAuthorityConstants","AADServerParamKeys","ClaimsRequestKeys","LIBRARY_NAME","DEFAULT_AUTHORITY_HOST","NO_ACCOUNT","CONSUMER_UTID","OPENID_SCOPE","PROFILE_SCOPE","EMAIL_SCOPE","CODE_GRANT_TYPE","RT_GRANT_TYPE","FRAGMENT_RESPONSE_MODE","AUTHORIZATION_PENDING","OIDC_DEFAULT_SCOPES","OIDC_SCOPES","SSOTypes","PromptValue","LOGIN","CONSENT","CREATE","ResponseMode","GrantType","CacheAccountType","Separators","CredentialType","CacheSchemaType","CacheType","CodeChallengeMethodValues","AuthorityMetadataSource","THE_FAMILY_ID","AUTHORITY_METADATA_CONSTANTS","AuthenticationScheme","SERVER_TELEM_CONSTANTS","MAX_CUR_HEADER_BYTES","PasswordGrantConstants","ResponseCodes","RegionDiscoverySources","RegionDiscoveryOutcomes","CacheOutcome","ThrottlingConstants","Errors","authToken","matches","exec","JWSSig","str","strObj","lastIndexOf","query","pl","arr","entry","jsonParseHelper","matchPattern","pattern","elementContains","child","allowVirtualParents","isContained","nextParent","contains","elementContainsAttribute","element","attribute","doc","elementMatch","testElement","hasAttribute","getAttribute","findElementRecursive","matchFunction","getActiveElement","ae","activeElement","shadowRoot","getEventTarget","composedPath","getParent","assignedElements","assignedSlot","nodeType","getVirtualParent","_virtual","isVirtualElement","portalContainsElement","DATA_PORTAL_ATTRIBUTE","setPortalAttribute","setVirtualParent","virtualChild","virtualParent","children","oldParent","splice","initializeIcons","subset","MozOsxFontSmoothing","WebkitFontSmoothing","fontStyle","fontWeight","speak","fontFace","fontFamily","icons","GlobalNavButton","ChevronDown","ChevronUp","Edit","Add","Cancel","More","Settings","Mail","Filter","Search","Share","BlockedSite","FavoriteStar","FavoriteStarFill","CheckMark","Delete","ChevronLeft","ChevronRight","Calendar","Megaphone","Undo","Flag","Page","Pinned","View","Clear","Download","Upload","Folder","Sort","AlignRight","AlignLeft","Tag","AddFriend","SortLines","List","CircleRing","Heart","HeartFill","Tiles","Embed","Glimmer","Ascending","Descending","SortUp","SortDown","SyncToPC","LargeGrid","SkypeCheck","SkypeClock","SkypeMinus","ClearFilter","Flow","StatusCircleCheckmark","MoreVertical","registerIconAliases","DEFAULT_BASE_URL","win","FabricConfig","iconBaseUrl","fontBaseUrl","initialize","_rtl","setRTL","isRTL","getRTL","getStyleOptions","rtl","shadowConfig","_stylesheet","InjectionMode","STYLESHEET_SETTING","REUSE_STYLE_NODE","_global","Stylesheet","serializedStylesheet","_rules","_preservedRules","_counter","_keyToClassName","_onInsertRuleCallbacks","_onResetCallbacks","_classNameToArgs","_config","injectionMode","defaultPrefix","namespace","cspSettings","classNameToArgs","counter","classNameCache","keyToClassName","preservedRules","rules","getInstance","_lastStyleElement","ownerDocument","fabricConfig","stylesheet","mergeStyles","serialize","setConfig","onReset","cb","onInsertRule","getClassName","displayName","prefix","cacheClassName","className","args","_getCacheKey","classNameFromKey","getClassNameCache","argsFromClassName","insertedRulesFromClassName","insertRule","rule","preserve","stylesheetKey","_getStyleElement","_insertRuleIntoSheet","sheet","createTextNode","getRules","includePreservedRules","reset","resetKeys","_createStyleElement","head","styleElement","nodeToInsertBefore","nextElementSibling","placeholderStyleTag","_findPlaceholderStyleTag","childNodes","insertBefore","cssRules","_styleElement","requestAnimationFrame","querySelector","concatStyleSets","styleSets","_i","subComponentStyles","mergedSet","workingSubcomponentStyles","styleSets_1","currentSet","prop","currentComponentStyles","subCompProp","mergedValue","currentValue","isArray","mergedSubStyles","_loop_1","workingSet_1","styleProps","styleFunctionOrObject","concatStyleSetsWithProps","allStyles","allStyles_1","styles","extractStyleParts","classes","objects","_processArgs","argsList","argsList_1","arg","translatedArgs","font","_vendorSettings","getVendorSettings","nav","isWebkit","isMoz","isOpera","isMs","keyframes","timeline","rulesArray","mergeStyleSets","mergeCssSets","styleSet","classNameSet","opts","concatenatedStyleSet","registrations","styleSetArea","registration","registrations_1","specificityMultiplier","styleArgs","mergeCss","GLOBAL_STYLESHEET_KEY","SHADOW_DOM_STYLESHEET_SETTING","DEFAULT_SHADOW_CONFIG","inShadow","__isShadowConfig__","makeShadowConfig","isShadowConfig","isRecord","DISPLAY_NAME","globalSelectorRegExp","expandSelector","newSelector","currentSelector","extractSelector","selector","__order","extractRules","selectorWithGlobals","replacementInfo","findGlobal","reverse","reduce","matchIndex","matchEndIndex","replacement","expandCommaSeparatedGlobals","separatedSelector","potentialSelector","currentRules","args_1","expandedRules","propValue","selectors","expandQuads","repeatString","count","serializeRuleEntries","ruleEntries","allEntries","styleToRegistration","serialized","hasProps","rulesForSelector","propName","getKeyForRules","rootStyle","getDisplayName","rulesToInsert","applyRegistration","processedRule","styleToClassName","tokenizeWithParentheses","partStart","parens","kebabRules","rulePairs","autoPrefixNames","prefixRules","vendorSettings","NON_PIXEL_NUMBER_PROPS","provideUnits","isNonPixelProp","isVariableOrPrefixed","unit","LEFT","RIGHT","NO_FLIP","NAME_REPLACEMENTS","VALUE_REPLACEMENTS","rtlifyRules","name_1","flipQuad","partIndex","numberVal","negateNum","focusZoneStyles","IS_FOCUSABLE_ATTRIBUTE","FOCUSZONE_ID_ATTRIBUTE","TABINDEX","NO_VERTICAL_WRAP","NO_HORIZONTAL_WRAP","LARGE_DISTANCE_FROM_CENTER","LARGE_NEGATIVE_DISTANCE_FROM_CENTER","raiseClickFromKeyboardEvent","ev","MouseEvent","ctrlKey","metaKey","shiftKey","altKey","bubbles","cancelable","createEvent","initMouseEvent","dispatchEvent","_allInstances","_outerZones","ALLOWED_INPUT_TYPES","ALLOW_VIRTUAL_ELEMENTS","FocusZone","props","_root","_mergedRef","_onFocus","_portalContainsElement","newActiveElement","onActiveElementChanged","doNotAllowFocusEventToPropagate","stopFocusPropagation","onFocusNotification","onFocus","shouldFocusInnerElementWhenReceivedFocus","defaultTabbableElement","isImmediateDescendant","_isImmediateDescendantOfZone","parentElement","current","_inShadowRoot","maybeElementToFocus","_activeElement","initialElementFocused","_setFocusAlignment","_updateTabIndexes","stopPropagation","_onBlur","_setParkedFocus","_onMouseDown","disabled","path","_setActiveElement","_onKeyDown","theme","direction","isInnerZoneKeystroke","pagingSupportDisabled","shouldEnterInnerZone","onKeyDown","isDefaultPrevented","_getDocument","_isInnerZone","innerZone","_getFirstInnerZone","focusElement","firstChild","which","space","_shouldRaiseClicksOnSpace","_tryInvokeClickForFocusable","vertical","_preventDefaultWhenHandled","_moveFocusLeft","right","_moveFocusRight","up","horizontal","_moveFocusUp","down","_moveFocusDown","pageDown","_moveFocusPaging","pageUp","tab","allowTabKey","handleTabKey","all","inputOnly","_isElementInput","focusChanged","_processingTabKey","_shouldWrapFocus","shouldResetActiveElementWhenTabFromZone","home","_isContentEditableElement","_shouldInputLoseFocus","end","lastChild","enter","_shouldRaiseClicksOnEnter","_getHorizontalDistanceFromCenter","isForward","activeRect","targetRect","leftAlignment","_focusAlignment","x","targetRectTop","activeRectBottom","bottom","targetRectBottom","activeRectTop","abs","_id","shouldRaiseClicksFallback","shouldRaiseClicks","defaultProps","shouldRaiseClicksOnEnter","shouldRaiseClicksOnSpace","getOuterZones","_onKeyDownCapture","zone","componentDidMount","root","context","defaultActiveElement","shouldFocusOnMount","componentDidUpdate","_defaultFocusElement","preventFocusRestoration","_lastIndexPath","elementToFocus","componentWillUnmount","render","tag","as","elementType","rootProps","ariaDescribedBy","ariaLabelledBy","divProps","_evaluateFocusBeforeRender","outline","ref","elementRef","onMouseDownCapture","forceIntoFirstElement","bypassHiddenElements","ownerZoneElement","_getOwnerZone","ownerZone","focusLast","forceAlignment","onBeforeFocus","shouldReceiveFocus","setFocusAlignment","point","focusedElement","shouldRestoreFocus","isParked","_isParked","allowFocusRoot","_parkedTabIndex","removeAttribute","previousActiveElement","tabIndex","preventDefaultWhenHandled","targetElement","tagName","rootElement","firstElementChild","_moveFocus","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","bidirectional","getBoundingClientRect","elementDistance","isCircularNavigation","lastElementChild","targetTop","distance","shouldWrap","parseFloat","toFixed","scrollableParent","targetBottom","pagesize","isHorizontal","isVertical","rect","top_1","childIndex","selectionStart","isRangeSelected","selectionEnd","inputValue","isReadonly","readOnly","shouldInputLoseFocusOnArrowKey","noWrapDataAttribute","checkForNoWrap","contextType","FocusZoneDirection","FocusZoneTabbableElements","none","useAsync","asyncRef","dispose","useBoolean","initialState","setValue","setTrue","setFalse","toggle","useConst","useControllableValue","controlledValue","defaultUncontrolledValue","onChange","isControlled","valueRef","onChangeRef","setValueOrCallOnChange","update","newValue","useEventCallback","fn","callbackRef","useId","providedId","useMergedRefs","refs","mergedCallback","refs_1","useOnEvent","eventName","useCapture","actualElement","on","usePrevious","useRef","useEffect","useTarget","hostElement","previousTargetProp","targetRef","targetWindow","currentElement","getRootNode","currentDoc","useUnmount","unmountRef","useWarnings","PortalCompatContext","portalCompatContextDefaultValue","Provider","usePortalCompat","_React_useContext","WindowContext","useWindow","useDocument","DirectionalHint","topLeftEdge","topCenter","topRightEdge","topAutoEdge","bottomLeftEdge","bottomCenter","bottomRightEdge","bottomAutoEdge","leftTopEdge","leftCenter","leftBottomEdge","rightTopEdge","rightCenter","rightBottomEdge","ButtonGlobalClassNames","msButton","msButtonHasMenu","msButtonIcon","msButtonMenuIcon","msButtonLabel","msButtonDescription","msButtonScreenReaderText","msButtonFlexContainer","msButtonTextContainer","getBaseButtonClassNames","variantClassName","iconClassName","menuIconClassName","hasMenu","checked","expanded","isSplit","classNames","isExpanded","__shadowConfig__","rootChecked","rootExpanded","iconExpandedHovered","menuIconExpandedHovered","rootExpandedHovered","rootHasMenu","rootDisabled","rootHovered","labelHovered","iconHovered","descriptionHovered","menuIconHovered","rootFocused","rootPressed","iconPressed","descriptionPressed","menuIconPressed","rootCheckedDisabled","rootCheckedHovered","rootCheckedPressed","flexContainer","textContainer","icon","iconExpanded","iconChecked","iconDisabled","labelChecked","labelDisabled","menuIcon","menuIconChecked","menuIconDisabled","menuIconExpanded","description","descriptionChecked","descriptionDisabled","screenReaderText","COMPONENT_NAME","BaseButton","_buttonElement","_splitButtonContainer","_renderedVisibleMenu","_getMemoizedMenuButtonKeytipProps","keytipProps","_onRenderIcon","buttonProps","defaultRender","iconProps","iconName","imageProps","rest","_classNames","_onRenderTextContents","text","secondaryText","onRenderText","_onRenderText","onRenderDescription","_onRenderDescription","_hasText","_labelId","_onRenderChildren","_descriptionId","_onRenderAriaDescription","ariaDescription","_ariaDescriptionId","_onRenderMenuIcon","menuIconProps","_onRenderMenu","menuProps","MenuType","menuAs","_onDismissMenu","onDismiss","defaultPrevented","_dismissMenu","_menuShouldFocusOnMount","_menuShouldFocusOnContainer","setState","menuHidden","_openMenu","shouldFocusOnContainer","_onToggleMenu","_onSplitContainerFocusCapture","container","_onSplitButtonPrimaryClick","singleTouchTarget","_processingTouch","onClick","_onMenuClick","_onMenuKeyDown","_onKeyUp","onKeyUp","_onKeyPress","onKeyPress","_onMouseUp","onMouseUp","onMouseDown","_onClick","_onSplitButtonContainerKeyDown","click","isUp","isDown","_isValidMenuOpenKey","onMenuClick","registeredProviders","forceUpdate","_onTouchStart","_isSplitButton","_handleTouchAndPointerEvent","nativeEvent","pointerType","_async","_events","w","toggled","ariaLabel","ariaHidden","allowDisabledFocus","primaryDisabled","getClassNames","role","isPrimaryButtonDisabled","renderAsAnchor","nativeProps","resolvedAriaLabel","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","_onRenderSplitButtonContent","_onRenderContent","_onPointerDown","onPointerUp","prevProps","prevState","onAfterMenuDismiss","dismissMenu","openMenu","onRenderIcon","onRenderAriaDescription","onRenderChildren","onRenderMenu","onRenderMenuIcon","Button","keytipAttributes","doNotLayer","_shouldRenderMenu","_getMenuProps","Content","persistMenu","renderPersistedMenuHiddenOnMount","labelElementId","directionalHint","hidden","getSplitButtonClassNames","primaryActionButtonProps","onPointerDown","containerProps","SplitButton","splitButtonContainer","onTouchStart","onFocusCapture","display","_onRenderSplitButtonMenuButton","_onRenderSplitButtonDivider","divider","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","stopImmediatePropagation","_lastTouchTimeoutId","clearTimeout","menuTriggerKeyCode","baseClassName","noOutline","iconStyle","fontSize","margin","lineHeight","textAlign","flexShrink","getStyles","semanticColors","effects","fonts","buttonBorder","disabledBackground","disabledText","buttonHighContrastFocus","outlineColor","inset","highContrastStyle","borderColor","medium","borderRadius","roundedCorner2","boxSizing","cursor","padding","textDecoration","userSelect","backgroundColor","color","flexWrap","justifyContent","alignItems","flexGrow","mediumPlus","small","splitButtonDividerBaseStyles","standardStyles","palette","buttonBackground","buttonBackgroundPressed","buttonBackgroundHovered","buttonBackgroundDisabled","buttonText","buttonTextHovered","buttonTextDisabled","buttonTextChecked","buttonTextCheckedHovered","splitButtonMenuButton","white","neutralLight","splitButtonMenuButtonDisabled","splitButtonDivider","neutralTertiaryAlt","splitButtonDividerDisabled","splitButtonMenuButtonChecked","neutralQuaternaryAlt","splitButtonMenuButtonExpanded","splitButtonMenuIcon","splitButtonMenuIconDisabled","primaryStyles","_g","_h","_j","primaryButtonBackground","primaryButtonText","primaryButtonBackgroundHovered","primaryButtonTextHovered","primaryButtonBackgroundPressed","primaryButtonTextPressed","primaryButtonTextDisabled","primaryButtonBackgroundDisabled","neutralTertiary","DefaultButton","primary","customStyles","baseButtonStyles","splitButtonStyles","defaultButtonStyles","minWidth","semibold","IconButton","iconButtonStyles","link","themeDarkAlt","neutralLighter","themeDark","SplitButtonGlobalClassNames","splitButtonMenuFocused","splitButtonContainerChecked","splitButtonContainerCheckedHovered","splitButtonContainerHovered","splitButtonContainerFocused","splitButtonContainerDisabled","splitButtonFlexContainer","_k","_l","_m","_o","_p","_q","_r","pointerEvents","borderTopRightRadius","borderBottomRightRadius","borderRight","borderRightWidth","borderLeftWidth","neutralSecondaryAlt","borderLeft","verticalAlign","marginLeft","marginTop","marginRight","marginBottom","Callout","forwardedRef","layerProps","content","ANIMATIONS","slideUpIn10","slideDownIn10","slideLeftIn10","slideRightIn10","BEAK_ORIGIN_POSITION","OFF_SCREEN_STYLE","opacity","ARIA_ROLE_ATTRIBUTES","DEFAULT_PROPS","preventDismissOnLostFocus","preventDismissOnScroll","preventDismissOnResize","isBeakVisible","beakWidth","gapSpace","minPagePadding","disableCaching","usePositions","calloutElement","getBounds","popupRef","popupStyles","positions","setPositions","positionAttempts","previousTarget","async","finalHeight","calloutMaxHeight","onPositioned","hideOverflow","preferScrollResizePositioning","localRef","getComputedStyle","popupOverflowY","overflowY","timerId_1","prevElementPositions","newElementPosition","currentProps","bounds","dupeCalloutElement","cloneNode","maxHeight","previousPositions","shouldScroll","newPositions","comparePositions","elementPosition","beakPosition","cancelAnimationFrame","CalloutContentBase","propsWithoutDefaults","calloutWidth","calloutMaxWidth","calloutMinWidth","onScroll","onLayerMounted","popupProps","mergedPopupRefs","setCalloutElement","calloutCallback","calloutEl","rootRef","targetWindowResized","setTargetWindowResized","cachedBounds","currentBounds","debounce","leading","useBounds","directionalHintFixed","coverTarget","setMaxHeight","calculatedHeight","topBounds","bottomBounds","targetEdge","useMaxHeight","dismissOnTargetClick","shouldDismissOnWindowFocus","preventDismissOnEvent","isMouseDownOnPopup","mouseDownHandlers","positionsExists","dismissOnScroll","dismissOnClickOrScroll","dismissOnResize","dismissOnLostFocus","eventPaths","isEventTargetOutsideCallout","dismissOnTargetWindowBlur","hasFocus","relatedTarget","disposablesPromise","disposables_1","useDismissHandlers","mouseDownOnPopup","mouseUpOnPopup","isForcedInBounds","cssPositions","setInitialFocus","hasPositions","timerId_2","useAutoFocus","overflowYHidden","beakVisible","overflowStyle","visibilityStyle","beak","getBeakPosition","beakCurtain","calloutMain","onRestoreFocus","previousProps","nextProps","shouldUpdateWhenHidden","beakPositionStyle","hideBeak","newElementPositions","oldPositionEdge","newPositionEdge","CalloutContent","getBeakStyle","GlobalClassNames","zIndex","Layer","boxShadow","elevation16","borderWidth","borderStyle","maxWidth","menuBackground","transform","overflowX","getContextualMenuItemClassNames","items","getItemCount","totalItemCount","items_1","itemType","Divider","Header","customOnRenderListLength","getSubmenuItems","subMenuProps","overrideItems","items_2","subItem","preferMenuTargetAsEventTarget","contextItem","getOnClickWithOverrideTarget","_getMenuItemStylesFunction","useSubMenuState","dismiss","menuTarget","expandedMenuItemKey","setExpandedMenuItemKey","submenuTarget","setSubmenuTarget","setShouldFocusOnContainer","subMenuId","closeSubMenu","openSubMenu","focusContainer","submenuItemKey","onSubMenuDismiss","isMountedRef","dismissAll","useOnSubmenuDismiss","findItemByKeyFromItems","submenuProps","isSubMenu","onItemClick","useKeyHandlers","focusZoneProps","focusZoneDirection","lastKeyDownWasAltOrMeta","keyHandler","shouldHandleKey","dismissAllMenus","handled","shouldHandleKeyDown","escape","submenuCloseKey","shouldCloseSubMenu","isAltOrMeta","shouldHandleKeyUp","keyPressIsAltOrMetaAlone","hasModifier","openKey","currentTarget","ContextualMenuBase","asyncTracker","menuId","deprecations","getMenuClassNames","tryFocusPreviousActiveElement","documentContainsFocus","originalElement","containsFocus","newElement","usePreviousActiveElement","getSubmenuProps","delayUpdateFocusOnHover","shouldUpdateFocusOnMouseEvent","gotMouseMove","onMenuFocusCapture","useShouldUpdateFocusOnMouseMove","isScrollIdle","scrollIdleTimeoutId","useScrollHandler","subMenuHoverDelay","enterTimerRef","cancelSubMenuTimer","onTimerExpired","useSubmenuEnterTimer","startSubmenuTimer","subMenuEntryTimer","responsiveMode","onMenuDismissed","onMenuOpened","previousHidden","onMenuOpenedRef","onMenuClosedRef","propsRef","useVisibility","onMenuKeyDown","onItemKeyDown","shouldIgnoreMouseEvent","updateFocusOnMouseEvent","onItemClickBase","executeItemClick","isDisabled","overrideTarget","shouldDismiss","setActive","useMouseHandlers","onItemMouseEnterBase","onItemMouseMoveBase","onMouseItemLeave","onAnchorClick","onDefaultRenderMenuList","menuListProps","menuClassNames","indexCorrection","hasCheckmarks","hasIcons","list","menuItem","renderMenuItem","indexIncrease","focusableElementIndex","itemClassNames","renderedItems","getItemClassNames","itemProps","dividerClassName","subMenuIconClassName","submenuIconProps","itemStyleProps","isAnchorLink","knownIcon","itemClassName","subMenuClassName","renderSeparator","headerItem","renderHeaderMenuItem","renderListItem","title","Section","renderSectionItem","defaultRenderNormalItem","renderNormalItem","onRenderContextualMenuItem","sectionItem","sectionProps","groupProps","headerContextualMenuItem","ariaLabelledby","id_1","id_2","correctedIndex_1","topDivider","contextualMenuItem","itemsIndex","bottomDivider","fromSection","onRender","commonProps","contextualMenuItemAs","onItemMouseEnter","onItemMouseLeave","onItemMouseMove","onItemMouseDown","dismissSubMenu","ContextualMenuAnchorAs","contextualMenuItemWrapperAs","ContextualMenuSplitButtonAs","onTap","ContextualMenuButtonAs","ChildrenRenderer","divHtmlProperties","onCheckmarkClick","directionalHintForRTL","alignTargetEdge","useTargetWidth","useTargetAsMinWidth","calloutProps","onRenderSubMenu","onDefaultRenderSubMenu","onRenderMenuList","itemsHaveIcons","contextualMenuItems","contextualMenuItems_1","contextMenuStyle","adjustedFocusZoneProps","canCheck","submenuItem","canAnyMenuItemsCheck","targetAsHtmlElement","offsetWidth","targetWidth","totalItemCount_1","calloutStyles_1","callout","Consumer","menuContext","focusZoneAs","renderFocusZone","defaultMenuItemRenderer","newProps","alt","items_3","persist","Event","Element","CONTEXTUAL_SPLIT_MENU_MINWIDTH","MediumScreenSelector","getSplitButtonVerticalDividerClassNames","wrapper","isChecked","linkContent","linkContentMenu","iconColor","checkmarkIcon","subMenuIcon","splitMenu","anchorLink","background","splitPrimary","flexBasis","neutralPrimary","splitContainer","getItemStyles","CONTEXTUAL_MENU_ITEM_HEIGHT","getMenuItemStyles","ContextualMenuItemBackgroundHoverColor","menuItemBackgroundHovered","ContextualMenuItemTextHoverColor","menuItemTextHovered","ContextualMenuItemBackgroundSelectedColor","menuItemBackgroundPressed","ContextualMenuItemDividerColor","bodyDivider","menuItemStyles","bodyText","disabledBodyText","bodyTextChecked","whiteSpace","textRendering","letterSpacing","wordSpacing","textTransform","textIndent","textShadow","textOverflow","overflow","neutralSecondary","paddingLeft","minHeight","large","bodySubtext","LocalContextualMenu","ContextualMenu","isopen","listStyleType","menuHeader","paddingRight","paddingBottom","paddingTop","elevation8","ContextualMenuItemType","defaultIconRenderer","renderItemIcon","renderCheckMarkIcon","isItemChecked","renderItemName","renderSecondaryText","renderSubMenuIcon","ContextualMenuItemBase","getSubmenuTarget","renderContent","onRenderContent","_renderLayout","defaultRenders","ContextualMenuItem","ContextualMenuAnchor","_anchor","_getSubmenuTarget","_onItemClick","_renderAriaDescription","anchorRel","rel","itemHasSubmenu","ariaDescribedByIds","additionalItemProperties","onMouseEnter","_onItemMouseEnter","onMouseLeave","_onItemMouseLeave","onMouseMove","_onItemMouseMove","_onItemKeyDown","componentRef","ContextualMenuButton","_btn","defaultRole","buttonNativeProperties","itemRole","itemButtonProperties","ContextualMenuItemWrapper","shouldComponentUpdate","ContextualMenuSplitButton","_executeItemClick","_splitButton","_onItemMouseEnterPrimary","_onItemMouseEnterIcon","_onItemMouseMovePrimary","_onItemMouseMoveIcon","_onIconItemClick","_dismissLabelId","ariaChecked","splitButton","_renderSplitPrimaryButton","_renderSplitDivider","_renderSplitIconButton","itemComponentProps","getDividerClassNames","VerticalDividerBase","deprecatedGetClassNames","VerticalDivider","names","getFabricTheme","FabricBase","applyTheme","applyThemeToBody","bodyThemed","currentDoc_1","classList","remove","useApplyThemeToBody","Root","dir","contextDir","pageDir","componentDir","rootDir","needsTheme","getDir","renderedContent","providerRef","settings","useRenderedContent","Fabric","inheritFont","preventBlanketFontInheritance","bodyBackground","disableFirstFocus","forceFocusInsideTrap","isClickableOutsideFocusTrap","FocusTrapZone","firstBumper","lastBumper","mergedRootRef","isFirstRender","internalState","focusStackId","focusPreviouslyFocusedInnerElement","firstFocusableSelector","firstFocusableTarget","disableRestoreFocus","ignoreExternalFocusing","enableAriaHiddenSiblings","bumperProps","focusElementAsync","focusFTZ","previouslyFocusedElementInTrapZone","firstFocusableChild","focusSelector","focusBumper","isFirstBumper","nextFocusable","returnFocusToInitiator","elementToFocusOnDismiss","focusStack","forceFocusOrClickInTrap","disposables","previouslyFocusedElement","useComponentRef","onBlurCapture","getIconContent","mergeImageProps","FontIcon","iconContent","accessibleName","finalChildren","placeholder","cacheSize","IconBase","_onImageLoadingStateChange","onLoadingStateChange","imageLoadError","imageErrorAs","isPlaceholder","isImage","iconType","image","Image","iconContentChildren","RootType","ImageType","finalIconContentChildren","Icon","MS_ICON","imageContainer","IconType","ImageIcon","altText","hasName","imageNameProps","SVG_REGEX","ImageBase","frameElement","imageElement","onLoad","onError","notLoaded","loadState","setLoadState","naturalWidth","naturalHeight","complete","loaded","onImageLoaded","onImageError","useLoadState","shouldFadeIn","shouldStartVisible","imageFit","maximizeFrame","loading","coverStyle","previousLoadState","cover","contain","centerContain","centerCover","desiredRatio","landscape","portrait","computeCoverStyle","useCoverStyle","isLoaded","isLandscape","isCenter","center","isCenterContain","isCenterCover","isContain","isCover","isNone","isError","isNotImageFit","rootMaximizeFrame","imageCenter","imageContain","imageCover","imageCenterContain","imageCenterCover","imageNone","imageLandscape","imagePortrait","ImageFitStyles","supportsObjectFit","msMaxTouchPoints","fallbackObjectFitStyles","fadeIn400","objectFit","ImageFit","ImageCoverStyle","ImageLoadState","KeytipData","keytipDataProps","keytipId","useKeytipData","keytipManager","K","prevOptions","register","unregister","nativeKeytipProps","describedByPrepend","newKeytipProps","addParentOverflow","keySequences","overflowSetSequence","getKeytipData","LabelBase","required","Label","labelFontWeight","labelColor","labelDisabledColor","labelRequiredStarColor","errorText","wordWrap","overflowWrap","filteredEventProps","LayerBase","registerPortalEl","mergedRef","layerRef","fabricElementRef","focusContext","needRaiseLayerMount","setNeedRaiseLayerMount","focusRectsRef","el","isFocusVisible","eventBubblingEnabled","fabricProps","hostId","insertFirst","onLayerDidMount","onLayerWillUnmount","fabricRef","isNotHost","removeLayerElement","elem","createLayerElement","layerHost","getElementById","defaultHostSelector","getHost","__tabsterElementFlags","noDirectAriaHidden","unregisterPortalEl","layerRoot","onFilterEvent","getFilteredEvents","eventPhase","BUBBLING_PHASE","fields","_layersByHostId","_layerHostsById","defaultHostId","_defaultHostSelector","registerLayer","layerHosts","layerHosts_1","notifyLayersChanged","unregisterLayer","layers","idx","layerHosts_2","getLayerHost","createDefaultLayerHost","cssText","getDefaultTarget","rootNoHost","OverlayBase","allowTouchBodyScroll","_allowTouchBodyScroll","isDark","isDarkThemed","Overlay","rootDark","whiteTranslucent40","blackTranslucent40","PanelVisibilityState","PanelBase","_panel","_animationCallback","_hasCustomNavigation","onRenderNavigation","onRenderNavigationContent","isActive","_allowScrollOnPanel","elt","off","_scrollableContent","_onRenderNavigation","hasCloseButton","_onRenderNavigationContent","navigation","closeButtonAriaLabel","onRenderHeader","_onRenderHeader","closeButton","_headerTextId","_onPanelClick","headerTextId","headerText","headerTextProps","_onRenderBody","_onRenderFooter","onRenderFooterContent","footer","footerInner","_animateTo","newVisibilityState","onOpen","_onTransitionComplete","_clearExistingAnimationTimer","_updateFooterPosition","onOpened","onDismissed","isFooterSticky","getDerivedStateFromProps","isOpen","animatingClosed","animatingOpen","_shouldListenForOuterClick","_dismissOnOuterClick","previousState","shouldListenOnOuterClick","previousShouldListenOnOuterClick","focusTrapZoneProps","headerClassName","isBlocking","isFooterAtBottom","isLightDismiss","isHiddenOnDismiss","overlayProps","customWidth","onLightDismissClick","onRenderBody","onRenderFooter","isLeft","smallFixedNear","customNear","isOnRightSide","customWidthStyles","custom","isAnimating","focusTrapZoneClassName","hasCustomNavigation","overlay","hiddenPanel","main","contentInner","scrollableContent","commands","innerHeight_1","scrollHeight","panel","onOuterClick","smallFixedFar","Panel","smallFluid","largeFixed","extraLarge","panelWidth","panelMargin","smallPanelSelectors","mediumPanelSelectors","largePanelSelectors","largeFixedPanelSelectors","extraLargePanelSelectors","getPanelBreakpoints","sharedPaddingStyles","isCustomPanel","fadeIn100","fadeOut100","elevation64","flexDirection","WebkitOverflowScrolling","variantBorder","slideRightIn40","slideLeftIn40","slideLeftOut40","slideRightOut40","alignSelf","xLarge","wordBreak","hyphens","borderTop","transition","durationValue3","easeFunction2","borderTopColor","PanelType","defaultFocusRestorer","shouldHideSiblings","useHideSiblingNodes","originalFocusedElement","useRestoreFocus","needsVerticalScrollBar","needsVerticalScrollBarState","setNeedsVerticalScrollBar","rootHeight","firstChildHeight","useScrollbarAsync","MenuContext","getIsChecked","hasSubmenu","isItemDisabled","getMenuItemAriaRole","ResponsiveMode","_defaultMode","_lastMode","RESPONSIVE_MAX_CONSTRAINT","getInitialResponsiveMode","getWidthOfCurrentWindow","getResponsiveMode","useDocumentEx","useWindowEx","getDocumentEx","ctx","getWindowEx","useResponsiveMode","overrideResponsiveMode","lastResponsiveMode","setLastResponsiveMode","onResize","newResponsiveMode","KeytipEvents","KTP_PREFIX","KTP_SEPARATOR","DATAKTP_TARGET","DATAKTP_EXECUTE_TARGET","KTP_LAYER_ID","KEYTIP_ADDED","KEYTIP_REMOVED","KEYTIP_UPDATED","PERSISTED_KEYTIP_ADDED","PERSISTED_KEYTIP_REMOVED","PERSISTED_KEYTIP_EXECUTE","ENTER_KEYTIP_MODE","EXIT_KEYTIP_MODE","KeytipManager","keytips","persistedKeytips","sequenceMapping","inKeytipMode","shouldEnterKeytipMode","delayUpdatingKeytipChange","_instance","init","persisted","uniqueKeytip","_getUniqueKtp","uniqueID","event_1","raise","keytip","oldKeyTip","visible","keytipToRemove","enterKeytipMode","exitKeytipMode","getKeytips","fullSequence","parentKeytip","menuExecute","overflowButtonSequences","keytipSequences","sequencesToID","prevValue","keySequence","mergeOverflows","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","getAriaDescribedBy","describedby","_createPositionData","alignmentEdge","isAuto","DirectionalDictionary","_isRectangleWithinBounds","boundingRect","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","edge","_setEdgeValue","_getCenterValue","edges","_getFlankingEdges","positiveEdge","negativeEdge","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","_moveEdge","maintainSize","difference","returnRect","_alignEdges","gap","_isEdgeInBounds","_getOutOfBoundsDegree","total","breakingEdges_1","pow","_canScrollResizeToFitEdge","bounding","minimumScrollResizeHeight","_adjustFitWithinBounds","positionData","elementEstimate","elementRectangle","directions","oobDegree","currentEstimate","currentEdge","currentAlignment","bestEdge","bestAlignment","forcedInBounds","currentOOBDegree","_estimatePosition","_flipToFit","fixedEdge","flippedElementEstimate","oppositeEdge","_flipAlignmentEdge","_alignOutOfBoundsEdges","outOfBoundsEdges","preserveEdge","outOfBoundsEdges_1","edgeAttempt","_centerEdgeToPoint","elementToPosition","estimatedElementPosition","elementEdge","adjustedGap","_alignOppositeEdges","_finalizeReturnEdge","returnEdge","_finalizeElementPosition","doNotFinalizeReturnEdge","forceWithinBounds","returnValue","_getRectangleFromElement","_isEdgeOnBounds","_calculateActualBeakWidthInPixels","sqrt","_getPositionData","positionInformation","getClosestEdge","targetCenter","boundingCenter","_positionElementWithinBounds","_finalizeBeakPosition","positionedBeak","showBeak","targetRectangle","closestEdge","_positionBeak","beakTargetPoint","elementBounds","clientRect","_getRectangleFromIRect","_positionElementRelative","clientX","clientY","rectOrPoint","outOfBounds_1","_getTargetRect","_getAlignmentData","positionedElement","_finalizePositionData","_calculateGapSpace","_positionCallout","theWin","positionProps","finalizedBeakPosition","_getRectangleFromTarget","mouseTarget","elementTarget","rectOrPointTarget","positionCallout","positionCard","_positionCard","getBoundsFromTargetWindow","segments","getWindowSegments","segments_1","segment","_getBoundsFromTargetWindow","calculateGapSpace","getRectangleFromTarget","RectangleEdge","Position","packagesCache","_win","setVersion","packages","__packages__","FLUENT_CDN_BASE_URL","AnimationClassNames","HighContrastSelector","HighContrastSelectorWhite","ScreenWidthMinMedium","ScreenWidthMinLarge","ScreenWidthMinXLarge","ScreenWidthMinXXLarge","ScreenWidthMaxMedium","ScreenWidthMinUhfMobile","getScreenSelector","minSelector","maxSelector","getHighContrastNoAdjustStyle","forcedColorAdjust","MsHighContrastAdjust","normalize","noWrap","getFocusStyle","insetOrOptions","isFocusedOnly","_getFocusStyleInternal","FocusStyle","focusClear","_getGlobalClassNames","disableGlobalClassNames","styleSheet","acc","getGlobalClassNames","hiddenContentStyle","_theme","_onThemeChangeCallbacks","ThemeSettingName","initializeThemeInCustomizations","legacyTheme","depComments","lines","fontName","_loadFonts","applySettings","loadTheme","getSettings","getTheme","ZIndexes","Nav","ScrollablePane","Coachmark","KeytipLayer","buildClassMap","styleName","className_1","_iconSettings","getValue","__options","disableWarnings","warnOnMissingIcons","__remapped","normalizeIconName","registerIcons","iconSubset","isRegistered","normalizedIconName","_warnDuplicateIcon","registerIconAlias","mappedToName","getIcon","_missingIcons","_missingIconsTimer","DefaultPalette","themeDarker","themePrimary","themeSecondary","themeTertiary","themeLight","themeLighter","themeLighterAlt","black","neutralDark","neutralPrimaryAlt","neutralQuaternary","neutralLighterAlt","accent","yellowDark","yellow","yellowLight","orange","orangeLight","orangeLighter","redDark","red","magentaDark","magenta","magentaLight","purpleDark","purple","purpleLight","blueDark","blueMid","blue","blueLight","tealDark","teal","tealLight","greenDark","green","greenLight","createTheme","isInverted","baseTheme","spacing","DefaultEffects","elevation4","depth4","depth8","depth16","depth64","roundedCorner4","roundedCorner6","Depths","depth0","DefaultFontStyles","_registerFontFace","localFontName","localFontSrc","fontDisplay","_registerFontFaceSet","cdnFolder","cdnFontName","urlBase","light","semilight","regular","bold","fontUrl","Thai","Arabic","Cyrillic","EastEuropean","Greek","Hebrew","Vietnamese","WestEuropean","Selawik","Armenian","Georgian","registerDefaultFontFaces","LocalizedFontNames","LocalizedFontFamilies","FontSizes","FontWeights","IconFontSizes","ChineseSimplified","ChineseTraditional","Hindi","Japanese","Korean","size10","size12","size14","size16","size18","size20","size24","size28","size32","size42","size68","mini","xSmall","smallPlus","xLargePlus","xxLarge","xxLargePlus","superLarge","mega","FontFamilyFallbacks","defaultFontFamily","LanguageToFontMap","bg","cs","et","he","hi","hr","hu","ja","kk","ko","lt","lv","ru","sk","th","tr","uk","vi","hy","ka","_createFont","weight","createFontStyles","localeCode","localizedFont","language","lang","_getLocalizedFontFamily","fontFamilyWithFallback","tiny","mergeThemes","partialTheme","mergedTheme","defaultFontStyle","EASING_FUNCTION_1","EASING_FUNCTION_2","DURATION_1","DURATION_2","DURATION_3","DURATION_4","FADE_IN","from","to","FADE_OUT","SLIDE_RIGHT_IN10","_createSlideInX","SLIDE_RIGHT_IN20","SLIDE_RIGHT_IN40","SLIDE_RIGHT_IN400","SLIDE_LEFT_IN10","SLIDE_LEFT_IN20","SLIDE_LEFT_IN40","SLIDE_LEFT_IN400","SLIDE_UP_IN10","_createSlideInY","SLIDE_UP_IN20","SLIDE_DOWN_IN10","SLIDE_DOWN_IN20","SLIDE_RIGHT_OUT10","_createSlideOutX","SLIDE_RIGHT_OUT20","SLIDE_RIGHT_OUT40","SLIDE_RIGHT_OUT400","SLIDE_LEFT_OUT10","SLIDE_LEFT_OUT20","SLIDE_LEFT_OUT40","SLIDE_LEFT_OUT400","SLIDE_UP_OUT10","_createSlideOutY","SLIDE_UP_OUT20","SLIDE_DOWN_OUT10","SLIDE_DOWN_OUT20","SCALE_UP100","SCALE_DOWN98","SCALE_DOWN100","SCALE_UP103","ROTATE90","ROTATE_N90","AnimationVariables","easeFunction1","durationValue1","durationValue2","durationValue4","AnimationStyles","_createAnimation","slideRightIn20","slideRightIn400","slideLeftIn20","slideLeftIn400","slideUpIn20","slideDownIn20","slideRightOut10","slideRightOut20","slideRightOut400","slideLeftOut10","slideLeftOut20","slideLeftOut400","slideUpOut10","slideUpOut20","slideDownOut10","slideDownOut20","scaleUpIn100","scaleDownIn100","scaleUpOut103","scaleDownOut98","fadeIn200","fadeIn500","fadeOut200","fadeOut400","fadeOut500","rotate90deg","rotateN90deg","animationName","animationDuration","animationTimingFunction","animationFillMode","fromX","fromY","toX","toY","DefaultSpacing","s2","s1","l1","l2","makeSemanticColors","dep","listTextColor","listText","menuItemBackgroundChecked","warningHighlight","warningText","messageText","successText","_fixDeprecatedSlots","getSemanticColors","primaryButtonBorder","messageLink","messageLinkHovered","infoIcon","errorIcon","blockingIcon","warningIcon","severeWarningIcon","successIcon","infoBackground","errorBackground","blockingBackground","warningBackground","severeWarningBackground","successBackground","bodyFrameBackground","accentButtonText","inputBackground","inputForegroundChecked","listBackground","cardStandoutBackground","inputBackgroundChecked","inputIcon","inputFocusBorderAlt","accentButtonBackground","inputBackgroundCheckedHovered","inputIconHovered","linkHovered","inputPlaceholderBackgroundChecked","bodyBackgroundChecked","bodyFrameDivider","buttonBackgroundCheckedHovered","listItemBackgroundChecked","listHeaderBackgroundPressed","bodyBackgroundHovered","buttonBorderDisabled","listItemBackgroundHovered","listHeaderBackgroundHovered","disabledSubtext","listItemBackgroundCheckedHovered","variantBorderHovered","inputIconDisabled","actionLink","inputBorderHovered","inputText","menuItemText","bodyStandoutBackground","defaultStateBackground","actionLinkHovered","buttonTextPressed","inputTextHovered","focusBorder","inputBorder","smallInputBorder","inputPlaceholderText","disabledBodySubtext","disabledBorder","buttonBackgroundChecked","menuDivider","cardShadow","cardShadowHovered","Async","_timeoutIds","_immediateIds","_intervalIds","_animationFrameIds","_isDisposed","_parent","_onErrorHandler","_noop","clearImmediate","duration","timeoutId","_logError","setImmediate","immediateId","throttle","func","wait","lastResult","lastArgs","waitMS","trailing","lastExecuteTime","userCall","delta","waitLength","noOpFunction","cancel","flush","pending","maxWait","lastCallTime","isNaN","markExecuted","invokeFunction","executeImmediately","maxWaitDelta","maxWaitExpired","resultFunction","animationFrameId","animationFrameCallback","BaseComponent","methodNames","len","_makeSafe","_makeAllSafe","_updateComponentRef","_setComponentRef","__disposables","_disposables","disposable","__className","results","__async","__events","_resolveRef","refName","__resolves","_warnDeprecations","deprecationMap","_warnMutuallyExclusive","mutuallyExclusiveMap","_warnConditionallyRequiredProps","requiredProps","conditionalPropName","condition","_skipComponentRefResolution","methodName","classMethod","prototypeMethod","retVal","nullRender","EventGroup","_uniqueId","_eventRecords","eventArgs","bubbleEvent","theDoc","_isElement","initEvent","createEventObject","evObj","fireEvent","events","__events__","eventRecords","eventRecordList","listIndex","record","objectCallback","isObserved","isDeclared","declaredEvents","__declaredEvents","cancelBubble","HTMLElement","onAll","parent_1","eventRecord","processElementEvent","elementCallback","attachEvent","targetArrayLookup","targetArray","detachEvent","declare","FocusRectsProvider","parentContext","inheritParentContext","registerProvider","unregisterProvider","GLOBAL_SETTINGS_PROP_NAME","CALLBACK_STATE_PROP_NAME","GlobalSettings","defaultValue","globalSettings","_getGlobalSettings","callbacks","oldValue","changeDescription","addChangeListener","__id__","_getCallbacks","removeChangeListener","globalObj","KeyCodes","backspace","ctrl","pauseBreak","capslock","insert","del","zero","one","two","three","four","five","six","seven","eight","nine","colon","c","h","l","z","leftWindow","rightWindow","select","zero_numpad","one_numpad","two_numpad","three_numpad","four_numpad","five_numpad","six_numpad","seven_numpad","eight_numpad","nine_numpad","multiply","subtract","decimalPoint","divide","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","numlock","scrollLock","semicolon","equalSign","comma","dash","period","forwardSlash","graveAccent","openBracket","backSlash","closeBracket","singleQuote","Rectangle","equals","appendFunction","functions","mergeAriaAttributeValues","ariaAttributes","mergedAttribute","findIndex","fromIndex","find","addElementAtIndex","itemToAdd","copy","arraysEqual","array1","array2","MAX_CACHE_COUNT","DEFAULT_SPECIFICITY_MULTIPLIER","_memoizedClassNames","classNamesFunction","windowMap","styleCalcCount","getClassNamesCount","currentMemoizedClassNames","useStaticStyles","__noStyleOverride__","_traverseMap","enableClassNameCacheFullWarning","console","warn","_traverseEdge","_normalizeValue","inputs","__cachedInputs__","componentAsMemoizer","outer","Outer","inner","Inner","innerMemoizer","innerProps","outerProps","composeComponentAs","createMergedRef","local","newRefs","resolver","createResolver","css","NO_CUSTOMIZATIONS","scopedSettings","inCustomizerContext","_allSettings","Customizations","_raiseChange","applyScopedSettings","scopeName","properties","localSettings","localScopedSettings","globalScopedSettings","properties_1","property","applyBatchedUpdates","suppressUpdate","_suppressUpdates","observe","unobserve","Customizer","_onCustomizationChange","contextTransform","newContext","CustomizerContext","customizations","memoizedMakeShadowConfig","mergeComponentStyles","defaultStyles","componentStyles","customizable","concatStyles","ComposedComponent","resultClass","ComponentWithInjectedProps","_styleCache","_onSettingChanged","componentProps","default","component","mergedStyles","merged","mergeCustomizations","mergeSettings","oldSettings","newSettings","mergeSettingsWith","_isSettingsFunction","_settingsMergeWith","mergeScopedSettings","scopedSettingsFromProps","oldScopedSettings","newScopedSettings","_scopedSettingsMergeWith","useCustomizationSettings","canUseDOM","getDocument","_window","getWindow","defaultView","extendComponent","methods","IS_VISIBLE_ATTRIBUTE","FOCUSZONE_SUB_ATTRIBUTE","getFirstFocusable","includeElementsInFocusZones","includeShadowRoots","getNextElement","getLastFocusable","getPreviousElement","getFirstTabbable","checkNode","getLastTabbable","focusFirstChild","focusAsync","suppressParentTraversal","traverseChildren","tabbable","isCurrentElementVisible","isElementVisible","isElementFocusZone","isElementFocusSubZone","childMatch","isElementTabbable","childMatchSiblingMatch","previousElementSibling","childMatchParent","childMatchParentMatch","siblingMatch","suppressChildTraversal","isElementVisibleAndNotHidden","visibilityAttribute","offsetHeight","offsetParent","isVisible","checkTabIndex","checkShadowRoot","tabIndexAttributeValue","isFocusableAttribute","isTabIndexSet","delegatesFocus","doesElementContainFocus","currentActiveElement","shouldWrapFocus","animationId","getFocusableByIndexPath","path_1","nextChild","getElementIndexPath","fromElement","toElement","unshift","CURRENT_ID_PROPERTY","DEFAULT_ID_STRING","_initializedStylesheetResets","getId","resetIds","getPropsWithDefaults","hoistStatics","source","dest","initializeComponentRef","_onMount","_onUpdate","_onUnmount","DirectionalKeyCodes","isDirectionalKeyCode","_language","STORAGE_KEY","getLanguage","persistenceType","savedLanguage","localStorage","_resetCounter","_emptyObject","empty","_dictionary","_weakMap","WeakMap","resetMemoizations","memoizeFunction","maxCacheSize","ignoreNullOrUndefinedResult","rootNode","localResetCounter","currentNode","_createNode","_normalizeArg","createMemoizer","merge","_merge","circularReferences","isCircularReference","isIOS","tagsToIgnore","modalize","targetDocument","affectedNodes","sibling","node","originalValue","unmodalize","shallowCompare","filteredAssign","isAllowed","sourceObject","isMacResult","isMac","toObjectMap","keys_1","baseElementEvents","baseElementProperties","htmlElementProperties","audioProperties","anchorProperties","buttonProperties","inputProperties","imgProperties","divProperties","getNativeProps","allowedPropNames","excludedPropNames","keys_2","memoizer","composeRenderFunction","_isRTL","RTL_LOCAL_STORAGE_KEY","savedRTL","persistSetting","_scrollbarWidth","_bodyScrollDisabledCount","DisabledScrollClassName","DATA_IS_SCROLLABLE_ATTRIBUTE","allowScrollOnElement","_previousClientY","_element","computedStyles","targetTouches","passive","findScrollableParent","scrollTop","isColumnReverse","allowOverscrollOnElement","_disableIosBodyScroll","disableBodyScroll","capture","enableBodyScroll","getScrollbarWidth","scrollDiv","setProperty","startingElement","getPropertyValue","sessionStorage","IsFocusVisibleClassName","IsFocusHiddenClassName","updateClassList","enabled","setFocusVisibility","noop","noopUndefined","MergeStylesRootContext","stylesheets","useAdoptedStylesheetEx","useAdoptedStylesheet","useShadowConfig","useMergeStylesShadowRootContext","useHasMergeStylesShadowRootContext","useMergeStylesRootStylesheets","useStyled","MergeStylesShadowRootConsumer","shadowCtx","rootMergeStyles","MergeStylesShadowRootContext","useMergeStylesHooks","DefaultFields","styled","Component","baseStyles","getProps","pure","Wrapped","customizedStyles","additionalProps","propStyles","concatenatedStyles","pureComponent","mountCounters","callbackMap","setMountCounters","currValue","setCallbackMap","FocusRectsContext","useFocusRects","disableFocusRects","FocusRects","useIsomorphicLayoutEffect","warnConditionallyRequiredProps","componentName","warnDeprecations","warnMutuallyExclusive","exclusiveMap","durationProperty","_dispatchEvent","evnt","_formatMessage","ApplicationInsights","_eventTracking","_pageTracking","_properties","identifier","priority","autoRoutePVDelay","_prevUri","_currUri","_self","_base","getCookieMgr","core","processTelemetry","itemCtx","doNotSendItem","telemetryInitializersCount","_telemetryInitializers","_getTelCtx","telemetryInitializer","diagLog","throwInternal","CRITICAL","TelemetryInitializerFailed","exception","processNext","trackEvent","customProperties","telemetryItem","dataType","envelopeType","track","WARNING","TrackTraceFailed","startTrackEvent","start","StartTrackEventFailed","stopTrackEvent","measurements","stop","StopTrackEventFailed","trackTrace","trackMetric","metric","TrackMetricFailed","trackPageView","pageView","inPv","_pageViewManager","autoTrackPageVisitTime","_pageVisitTimeManager","trackPreviousPageVisit","uri","TrackPVFailed","sendPageViewInternal","systemProperties","refUri","referrer","sendPageViewPerformanceInternal","pageViewPerformance","trackPageViewPerformance","_pageViewPerformanceManager","populatePageViewPerformanceEvent","startTrackPage","StartTrackFailed","stopTrackPage","measurement","loc","StopTrackFailed","sendExceptionInternal","exceptionPartB","severityLevel","toInterface","trackException","TrackExceptionFailed","_onerror","URL","lineNumber","columnNumber","_sendCORSException","stack","ExceptionWhileLoggingError","addTelemetryInitializer","extensions","pluginChain","isInitialized","setInitialized","getExtCfg","defaults","getDefaultConfig","field","getConfig","isStorageUseDisabled","configGetters","instrumentationKey","sessionRenewalMs","sessionExpirationMs","sampleRate","samplingPercentage","sdkExtension","isBrowserLinkTrackingEnabled","appId","overridePageViewDuration","pageName","pageUrl","pageVisitTime","PageName","PageUrl","average","sampleCount","trackPageVisitTime","browserLinkPaths_1","envelope","baseType","remoteData","baseData","_addDefaultTelemetryInitializers","Timing","action","pageViewItem","_history","_location","instance","disableExceptionTracking","autoExceptionInstrumented","originalOnError_1","enableUnhandledPromiseRejectionTracking","autoUnhandledPromiseInstrumented","onunhandledrejection","originalOnUnhandledRejection_1","reason","enableAutoRouteTracking","pushState","_self_1","extension","ret","namePrefix","telemetryTrace","traceID","Version","StartCalledMoreThanOnce","StopCalledWithoutStart","PageViewManager","appInsights","pageViewPerformanceManager","_logger","intervalHandle","itemQueue","pageViewPerformanceSent","_flushChannels","getTransmissionControls","queues","location_1","isPerformanceTimingSupported","NavigationTimingNotSupported","customDuration","pageViewSent","getPerformanceTiming","navigationStart","shouldCollectDuration","processed","isPerformanceTimingDataReady","isValid","durationMs","TrackPVFailedCalc","allItems","doFlush","PageViewPerformanceManager","MAX_DURATION_ALLOWED","navigationTiming","getPerformanceNavigationTiming","timing","network","startTime","connectEnd","requestStart","responseStart","responseEnd","dom","loadEventEnd","ErrorPVCalc","ClientPerformanceMathError","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","InvalidDurationValue","isPerformanceNavigationTimingSupported","getEntriesByType","perf","domainLookupStart","domLoading","durations","botAgentNames","isGoogleBot","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","warnToConsole","prevPageVisitData","stopPageVisitTimer","startPageVisitTimer","currPageVisitData","PageVisitData","currPageVisitDataStr","pageVisitEndTime","pageVisitDataJsonStr","pageVisitStartTime","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","EnvelopeCreator","extractPropsAndMeasurements","createEnvelope","iKey","iKeyNoDashes","extractPartAExtensions","tags","envTags","itmExt","ext","itmTags","extUser","user","userAuthUserId","authId","userId","localId","extApp","app","sessionId","sesId","extDevice","device","deviceId","deviceType","deviceClass","deviceIp","ip","deviceModel","model","web","deviceLanguage","browserLang","deviceBrowserVersion","browserVer","deviceBrowser","browser","envData","envBaseData","envProps","domain","isManual","screenRes","userConsent","extOs","deviceOS","extTrace","operationParentId","parentID","operationId","tgs","tg","theTags","internalSdkVersion","Init","TelemetryEnvelopeInvalid","DependencyEnvelopeCreator","Create","customMeasurements","bd","remoteDepData","success","responseCode","correlationContext","EventEnvelopeCreator","eventData","ExceptionEnvelopeCreator","exData","CreateFromInterface","MetricEnvelopeCreator","baseMetricData","PageViewEnvelopeCreator","strDuration","currentContextId","pageType","pageTags","pageViewData","PageViewPerformanceEnvelopeCreator","TraceEnvelopeCreator","Offline","OfflineListener","_document","isListening","_onlineStatus","Attach","_setOnline","_setOffline","ononline","onoffline","isOnline","_navigator","isOffline","ArraySendBuffer","_buffer","enqueue","getItems","batchPayloads","emitLineDelimitedJson","markAsSent","clearSent","SessionStorageSendBuffer","_bufferFullMessageSent","bufferItems","_getBuffer","BUFFER_KEY","notDeliveredItems","SENT_BUFFER_KEY","_removePayloadsFromBuffer","payloads","remaining","prefixedKey","bufferJson","FailedToRestoreStorageBuffer","_setBuffer","FailedToSetStorageBuffer","MAX_BUFFER_SIZE","SessionStorageBufferFull","sentElements","_getResponseText","Sender","_consecutiveErrors","_retryAt","_timeoutHandle","_serializer","_stamp_specific_redirects","_XMLHttpRequestSupported","_notImplemented","_checkAndUpdateEndPointUrl","responseUrl","responseURL","_senderConfig","endpointUrl","_beaconSender","isAsync","batch","plainTextBatch","Blob","sendBeacon","_onSuccess","_xhrSender","TransmissionFailed","endPointUrl","sdkContextHeader","sdkContextHeaderAppIdRequest","onreadystatechange","_xhrReadyStateChange","_onError","_formatErrorMessageXhr","_parseResponse","itemsReceived","itemsAccepted","InvalidBackendResponse","_resendPayload","linearFactor","payload_1","delayInSeconds","SlotDelayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","_setRetryTime","_setupTimer","retryInterval","timerValue","maxBatchInterval","triggerSend","_isRetriable","statusCode","_xdrSender","xdr","XDomainRequest","_xdrOnLoad","_formatErrorMessageXdr","hostingProtocol","protocol","pause","resume","FlushFailed","onunloadFlush","onunloadDisableBeacon","isBeaconApiDisabled","FailedToSendQueuedTelemetry","teardown","_sender","defaultConfig","_getDefaultAppInsightsChannelConfig","_getEmptyAppInsightsChannelConfig","enableSessionStorageBuffer","_sample","disableIKeyValidationFlag","disableInstrumentationKeyValidation","_validateInstrumentationKey","InvalidInstrumentationKey","disableTelemetry","CannotSendEmptyTelemetry","InvalidEvent","SenderNotInitialized","isSampledIn","TelemetrySampledAndNotSent","SampleRate","aiEnvelope_1","constructEnvelope","CreateEnvelopeError","doNotSendItem_1","callBack","bufferPayload","maxBatchSizeInBytes","FailedAddingTelemetryToBuffer","countOfItemsInPayload","readyState","_appId","isRetryDisabled","_onPartialSuccess","forcedSender","sendReason","sendRequest","manager","_getNotifyMgr","eventsSendRequest","NotificationException","_notifySendRequest","ieVer","OnError","failed","retry","errors_1","extracted","orig","Serializer","_serializeObject","circularReferenceCheck","output","CannotSerializeObject","CircularReferenceDetected","aiDataContract","_serializeStringMap","_serializeArray","CannotSerializeObjectNonSerializable","contract","isRequired","Required","isHidden","Hidden","isPresent","isObj","MissingRequiredFieldSpecification","sources","ItemNotInArray","expectedType","Sample","INT_MAX_VALUE","SampleRateOutOfRange","samplingRate","samplingScoreGenerator","getSamplingScore","HashCodeScoreGenerator","getHashCodeScore","getHashCode","MIN_INPUT_LENGTH","SamplingScoreGenerator","hashCodeGeneragor","_FIELDS_SEPARATOR","_FIELD_KEY_VALUE_SEPARATOR","parseConnectionString","connectionString","kvPairs","kv","kvParts","endpointsuffix","locationPrefix","ingestionendpoint","ConnectionStringParser","DisabledPropertyName","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","strNotSpecified","createDomEvent","StorageType","FieldType","DistributedTracingModes","stringToBoolOrDefault","msToTimeSpan","totalms","ms","sec","hour","days","isBeaconApiSupported","getExtensionByName","isCrossOriginError","Base","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceLocale","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceMachineName","deviceVMName","locationIp","locationCountry","locationProvince","locationCity","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userStoreRegion","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalAgentVersion","internalSnippet","internalSdkSrc","Data","DataPoint","kind","Measurement","DataPointType","Envelope","ver","EventData","ExceptionData","exceptions","ExceptionDetails","hasFullStack","parsedStack","MessageData","MetricData","metrics","PageViewData","PageViewPerfData","RemoteDependencyData","SeverityLevel","StackFrame","ConfigurationManager","configValue","extensionConfig","Extensions","UserExt","DeviceExt","TraceExt","WebExt","AppExt","OSExt","SessionExt","SDKExt","CtxTagKeys","RequestHeaders","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","requestContextHeaderLowerCase","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","storage","fail","_getSessionStorageObject","utlCanUseSessionStorage","utlDisableStorage","utlGetLocalStorage","BrowserCannotReadLocalStorage","utlSetLocalStorage","BrowserCannotWriteLocalStorage","utlRemoveStorage","BrowserFailedRemovalFromLocalStorage","utlGetSessionStorageKeys","utlGetSessionStorage","BrowserCannotReadSessionStorage","utlSetSessionStorage","BrowserCannotWriteSessionStorage","utlRemoveSessionStorage","BrowserFailedRemovalFromSessionStorage","stdDev","DataSanitizer","sanitizeKeyAndAddUniqueness","origLength","sanitizeKey","uniqueField","MAX_NAME_LENGTH","padNumber","nameTrunc","NameTooLong","sanitizeString","maxLength","valueTrunc","MAX_STRING_LENGTH","StringValueTooLong","sanitizeUrl","sanitizeInput","MAX_URL_LENGTH","UrlTooLong","sanitizeMessage","messageTrunc","MAX_MESSAGE_LENGTH","MessageTruncated","sanitizeException","exceptionTrunc","MAX_EXCEPTION_LENGTH","ExceptionTruncated","sanitizeProperties","tempProps_1","MAX_PROPERTY_LENGTH","sanitizeMeasurements","tempMeasurements_1","measure","sanitizeId","MAX_ID_LENGTH","IdTooLong","_msgId","inputTrunc","substr","Exception","problemGroup","_ExceptionDetails","ex","CreateSimpleException","typeName","assembly","fileName","details","line","outerId","evt","errorType","_getErrorType","parseStack","frame","_StackFrame","frames_1","totalSizeInBytes","parsedFrame","sizeInBytes","acceptedLeft","acceptedRight","howMany","sourceFrame","baseSize","Metric","dataPoint","PageView","PageViewPerformance","unused","cs4BaseData","commandName","resultCode","requestAPI","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","TelemetryItemCreator","envelopeName","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","urlParseHost","urlGetAbsoluteUrl","urlGetPathName","urlGetCompleteUrl","inclPort","fullHost","urlParseFullHost","port","_internalEndpoints","isInternalApplicationInsightsEndpoint","Util","NotSpecified","disableStorage","canUseLocalStorage","getStorage","setStorage","removeStorage","canUseSessionStorage","getSessionStorageKeys","getSessionStorage","setSessionStorage","removeSessionStorage","disableCookies","canUseCookies","disallowsSameSiteNone","setCookie","getCookie","deleteCookie","newId","random32","generateW3CId","isDate","toISOStringForIE8","getIEVersion","dump","getExceptionName","addEventHandler","IsBeaconApiSupported","getExtension","UrlHelper","parseUrl","getPathName","getCompleteUrl","parseHost","parseFullHost","CorrelationIdHelper","correlationIdPrefix","canIncludeCorrelationHeader","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","requestHost","enableCorsCorrelation","matchExists_1","includedDomains","correlationHeaderDomains","excludedDomains","correlationHeaderExcludedDomains","getCorrelationContext","responseHeader","getCorrelationContextValue","keyValues","keyValue","AjaxHelperParseDependencyPath","parsedUrl","pathName","dateTimeUtilsNow","dateTimeUtilsDuration","DateTimeUtils","Now","GetDuration","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","EventsDiscardedReason","Unknown","NonRetryableStatus","SizeLimitExceeded","KillSwitch","QueueFull","LoggingSeverity","_InternalMessageId","BrowserDoesNotSupportLocalStorage","ErrorParsingAISessionCookie","FailedMonitorAjaxAbort","FailedMonitorAjaxDur","FailedMonitorAjaxOpen","FailedMonitorAjaxRSC","FailedMonitorAjaxSend","FailedMonitorAjaxGetCorrelationHeader","FailedToAddHandlerForOnBeforeUnload","FailedToReportDataLoss","MessageLimitPerPVExceeded","SessionRenewalDateIsZero","TrackEventFailed","FailedToFixDepricatedValues","ClearAuthContextFailed","IllegalCharsInName","MaxAjaxPerPVExceeded","SetAuthContextFailed","SetAuthContextFailedAccountName","TrackArgumentsNotSpecified","CannotAccessCookie","FailedMonitorAjaxSetRequestHeader","SendBrowserInfoOnUserInit","PluginException","SnippetScriptLoadFailure","CannotParseAiBlobValue","InvalidContentBlob","TrackPageActionEventFailed","AppInsightsCore","_notifyInvalidEvent","getNotifyMgr","eventsDiscarded","notificationManager","getPerfMgr","_validateTelemetryItem","addNotificationListener","listener","removeNotificationListener","pollInternalLogs","interval","diagnosticLogInterval","queue","messageId","strNotificationManager","BaseCore","_eventQueue","_channelController","_notificationManager","_perfManager","_cookieManager","_isInitialized","_extensions","severity","msgId","msg","isUserAct","resetInternalMessageCount","NotificationManager","allExtensions","coreExtensions","channelExtensions","extPriorities","extPriority","releaseQueue","getChannelControls","getProcessTelContext","thePlugins","eventsSent","setCookieMgr","cookieMgr","enablePerfMgr","setPerfMgr","perfMgr","eventCnt","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","setNextPlugin","currentCtx","rootCtx","createNew","_baseTelInit","getNext","nextPlugin","ChannelControllerPriority","ChannelController","_channelQueue","_addChannelQueue","queueItem","_checkQueuePriority","channels","extensionQueue_1","plugin","_createChannelQueues","proto","_staticInit","strIKey","strExtensionConfig","strToGMTString","strToUTCString","strCookie","strExpires","strEnabled","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","strEmpty","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","_gblCookieMgr","inst","createCookieMgr","_isMgrEnabled","isEnabled","safeGetCookieMgr","cookieCfg","rootConfig","cookieMgrConfig","cookieMgrCfg","cookieDomain","cookiePath","cookieEnabled","_createCookieMgrConfig","_path","_domain","_enabled","areCookiesSupported","gblManager","setEnabled","maxAgeSec","theValue","_extractParts","_isIE","expireMs","expiry","setTime","_formatDate","uaDisallowsSameSiteNone","_setCookieValue","_formatCookieValue","_getCookieValue","purge","delCookie","thePart","theDate","theCookie","_canUseCookies","_cookieMgrs","EventHelper","number","chars","tmp","hexValues","oct","clockSequenceHi","CoreUtils","isTypeof","isUndefined","isNullOrUndefined","isFunction","isObject","isString","isNumber","isBoolean","toISOString","arrForEach","arrIndexOf","arrMap","arrReduce","strTrim","objCreate","objKeys","objDefineAccessors","dateNow","isIE","newGuid","GuidRegex","perfNow","randomValue","mwcRandomSeed","mwcRandom32","AttachEvent","Detach","DetachEvent","_legacyCookieMgr","legacyCanUseCookies","mgr","_sanitizeDiagnosticText","_InternalLogMessage","strProps","diagnosticText","safeGetLogger","DiagnosticLogger","_messageCount","_messageLogged","_getConfigValue","defValue","consoleLoggingLevel","telemetryLoggingLevel","maxInternalMessageLimit","enableDebugExceptions","messageKey","logInternalMessage","theConsole","logFunc","throttleLimitMessage","throttleMessage","strUndefined","strObject","strPrototype","strFunction","strWindow","strDocument","strNavigator","strHistory","strLocation","strConsole","strPerformance","strJSON","strCrypto","strMsCrypto","strReactNative","strMsie","strTrident","_isTrident","_navUserAgentCheck","_enableMocks","getGlobal","getGlobalInst","gbl","hasWindow","Boolean","hasDocument","getNavigator","getHistory","getLocation","checkForMock","mockLocation","getConsole","getPerformance","hasJSON","getJSON","getCrypto","getMsCrypto","isReactNative","product","userAgentStr","myNav","navigator_1","tridentVer","dumpObj","object","objectTypeDump","propertyValueDump","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","ObjClass","ObjProto","_objHasOwnProperty","_objDefineProperty","_objAssign","objToString","theType","isNotNullOrUndefined","eventNameWithoutOn","handlerRef","normalizeJsName","objForEachKey","callbackfn","strEndsWith","searchLen","valLen","pos","lp","strContains","date","pad","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","searchElement","_objKeysHasDontEnumBug","propertyIsEnumerable","_objKeysDontEnums","objType","dontEnumsLength","getProp","setProp","descriptor","dt","valChk","srcChk","getSetValue","isNotTruthy","isTruthy","throwError","proxyAssign","chkSet","funcName","originalArguments","createClassFromInterface","optimizeObject","theObject","aiInstrumentHooks","cbNames","str__Proto","strConstructor","_arrLoop","_doCallbacks","hooks","callDetails","cbArgs","hookCtx","hook","cbks","orgEx","hookErrorCb","_objGetPrototypeOf","_getOwner","checkPrototype","owner","newProto","_getObjProto","InstrumentProto","InstrumentFunc","aiHook_1","newFunc","aiHook","orgArgs","funcArgs","_createArgs","theArgs","theFunc","rslt","theHook","rm","listeners","perfEvtsSendAll","perfEvent","isChildEvt","strExecutionContextKey","PerfEvent","payloadDetails","theDetails_1","accessorDefined","getCtx","ParentContextKey","ChildrenContextKey","setCtx","childTime","childEvts","childEvt","exTime","PerfManager","fire","doPerfActiveKey","doPerf","mgrSource","getSource","perfEvt","currentActive","_createProxyChain","plugins","proxies","lastProxy","thePlugin","newProxy","setNext","ProcessTelemetryContext","startAt","_nextProxy","getPlugin","proxy","_copyProxyChain","srcPlugins","_copyPluginChain","getCfg","theConfig","extConfig","hasNext","UInt32Mask","MaxUInt32","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","maxValue","signed","Uint32Array","initializePlugins","processContext","initPlugins","lastPlugin","sortPlugins","extA","extB","bHasProcess","TelemetryPluginChain","defItemCtx","_hasProcessTelemetry","_hasSetNext","_hasRun","hasRun","Traceparent","traceId","spanId","self","traceFlag","DEFAULT_TRACE_FLAG","DEFAULT_VERSION","isValidTraceId","isValidSpanId","AJAX_MONITOR_PREFIX","strDiagLog","strAjaxData","strThrowInternal","strFetch","_markCount","_getFailedAjaxDiagnosticsMessage","_throwInternalCritical","ajaxMonitorInstance","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","ajaxDiagnosticsMessage","_indexOf","AjaxMonitor","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","strTrackDependencyDataInternal","_fetchInitialized","_xhrInitialized","_currentWindowHost","getEmptyConfig","_enableRequestHeaderTracking","_trackAjaxAttempts","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_hooks","_disabledUrls","base","_hookProto","_isDisabledRequest","theUrl","idx2","_isMonitoredXhrInstance","excludeAjaxDataValidation","ajaxValidation","initialized","responseType","_getAjaxCorrelationContext","responseHeadersString","getResponseHeader","_createMarkId","ajaxData","performance_1","mark","markId","entries","getEntriesByName","perfMark","_findPerfResourceEntry","initiatorType","trackCallback","reportError","maxAttempts","maxAjaxPerfLookupAttempts","retryDelay","ajaxPerfLookupDelay","attempt","locateResourceTiming","perfTiming","getEntries","entryType","clearMarks","perfAttempts","_getFailedFetchDiagnosticsMessage","_reportFetchMetrics","getResponse","_reportFetchError","failedProps","errorProps","responseFinishedTime","dependency","CreateTrackItem","requestSentTime","_getFetchCorrelationContext","fetchDiagnosticsMessage","ctx_1","distributedTracingMode","enableRequestHeaderTracking","enableAjaxPerfTracking","maxAjaxCallsPerView","enableResponseHeaderTracking","AI","AI_AND_W3C","W3C","disableAjaxTracking","abort","theOpen","_supportsAjaxMonitoring","req","xhrMonitoringState","openDone","spanID","requestHeaders","stateChangeAttached","_reportXhrError","ajaxResponse","statusText","headerMap","responseHeaderMap_2","_onAjaxComplete","exceptionText","_attachToOnReadyStateChange","_openHandler","hkErr","sendDone","includeCorrelationHeaders","abortDone","aborted","Request","global","isPolyfill","polyfill","disableFetchTracking","fetchData","_createFetchRecord","newInit","rsp","responseHeaderMap_1","_instrumentFetch","propExt","extIx","trackDependencyData","currentWindowHost","traceparent","enableAjaxErrorStatusText","emptyConfig","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","XHRMonitoringState","setRequestHeaderDone","ajaxRecord","strResponseText","completed","requestHeadersSize","responseReceivingDuration","callbackDuration","ajaxTotalDuration","requestSize","responseStartedTime","callbackFinishedTime","endTime","clientFailure","ajaxType","propsSet","strName","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","_populatePerfData","responseHeaders","Application","Device","Internal","sdkVersion","Location","cookieNameConst","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_initializeAutomaticSessionWithData","session","sessionData","sessionReset","tokens","acqMs","renewalMs","acquisitionDate","renewalDate","_setCookie","nowMs","acq","renewalPeriodMs","acqTimeLeftMs","acquisitionSpan","renewalSpan","automaticSession","storageValue","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","getNewId","idLength","_renew","cookieUpdateInterval","backup","renewal","TelemetryTrace","parentId","_validateUserInput","User","isNewUser","userCookieName","cookieSeparator","acqStr","accountAcquisitionDate","newCookie","authCookie","authUserCookieName","authCookieString","decodeURI","authenticatedId","setAuthenticatedUserContext","authenticatedUserId","storeInCookie","encodeURI","clearAuthenticatedUserContext","PropertiesPlugin","_breezeChannel","_extensionConfig","T","theContext","sessionManager","applySessionContext","applyApplicationContext","applyDeviceContext","applyOperationContext","applyUserContext","applyOperatingSystemContxt","applyWebContext","applyLocationContext","applyInternalContext","cleanUp","_processTelemetryInternal","strExt","strTags","_removeEmpty","TelemetryContext","application","internal","build","agentVersion","snippetVer","sdkSrc","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strShimHasOwnProperty","globalThis","objCreateFn","tmpFunc","__extendStaticsFn","assignFn","extendsFn","_internalSdkSrc","_ignoreUpdateSnippetProperties","Initialization","snippet","_snippetVersion","sv","ingest","instrumentationkey","dependencies","getSKUDefaults","inPvp","channel","loadAppInsights","legacyMode","appInsightsChannel","_updateSnippetProperties","emptyQueue","addHousekeepingBeforeUnload","updateSnippetDefinitions","length_1","appInsightsInstance","performHousekeeping","_sessionManager","disableFlushOnBeforeUnload","added","disableFlushOnUnload","cdns","scrpt","currentScript","UNDEFINED","Constructor","Prototype","DynInstFuncTable","DynProxyTag","DynClassName","DynClassNamePrefix","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetOwnProps","_gbl","_gblInst","_hasOwnProperty","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","Function","curProto","_forEachProp","_isDynamicCandidate","skipOwn","_throwTypeError","_hasVisited","_populatePrototype","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFunc","currentDynProtoProxy","instFuncTable","canAddInst","objProto","visited","protoFunc","_getInstFunc","_getProtoFunc","instFuncs_1","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","baseFuncs","_instFuncProxy","funcHost","baseProto","_getBaseFuncs","_styleNonce","CSPSettings","_themeState","__themeState__","lastStyleElement","registeredStyles","runState","flushTimer","mode","registeredThemableStyles","initializeThemeState","applyThemableStyles","stylesArray","styleRecord","loadStyles","resolveThemableArray","styleString","styleArray","themable","newStyle","themableStyle","registerStyles","themableStyles","option","clearStylesInternal","clearStyles","reloadStyles","records","splitStyleArray","themeSlot","themedValue","DEBUG","rawString","module","exports","getOwnPropertySymbols","propIsEnumerable","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","symbols","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","definition","bootstrap","hasStacks","qFileName","qStartingLine","captureLine","task","tail","flushing","requestTick","isNodeJS","laterQueue","runSingle","exit","MessageChannel","port1","onmessage","requestPortTick","port2","postMessage","runAfter","uncurryThis","QReturnValue","array_slice","array_reduce","basis","array_indexOf","array_map","thisp","collect","object_create","Type","object_defineProperty","object_hasOwnProperty","object_keys","object_toString","ReturnValue","makeStackTraceLong","promise","stacks","__minimumStackCounter__","stackCounter","stackString","desiredLines","isInternalFrame","isNodeFrame","filterStackString","stackLine","getFileNameAndLineNumber","attempt1","attempt2","attempt3","fileNameAndLineNumber","qEndingLine","Q","isPromiseAlike","deferred","defer","notify","coerce","fulfill","longStackSupport","longStackCounter","resolvedPromise","messages","progressListeners","promiseDispatch","operands","valueOf","nearerValue","nearer","isPromise","inspect","become","newPromise","progress","progressListener","race","answerPs","fallback","inspected","when","progressed","Q_DEBUG","makeNodeResolver","passByCopy","that","spread","makePromise","_fulfilled","newException","_rejected","threw","_progressed","tap","fcall","thenResolve","thenReject","isPending","isFulfilled","isRejected","alternative","unhandledReasons","unhandledRejections","reportedUnhandledRejections","trackUnhandledRejections","resetUnhandledRejections","rejection","atReport","untrackRejection","trackRejection","rhs","dispatch","promises","pendingCount","snapshot","any","prev","allResolved","getUnhandledReasons","stopUnhandledRejectionTracking","master","makeGenerator","continuer","StopIteration","errback","isStopIteration","spawn","promised","mapply","post","mcall","invoke","fapply","fbind","allSettled","regardless","fin","onUnhandledError","nfapply","nodeArgs","nfcall","nfbind","denodeify","baseArgs","nbind","nmapply","npost","nsend","nmcall","ninvoke","nodeify","nodeback","noConflict","aa","ba","da","ea","fa","ha","ia","la","ma","na","oa","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","sanitizeURL","C","Ua","Va","xlinkHref","Wa","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","Xa","Sa","Ta","Ra","setAttributeNS","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","Ya","E","for","Za","$a","ab","bb","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","$$typeof","_status","_result","qb","_debugOwner","_debugSource","return","rb","sb","nodeName","xb","_valueTracker","getOwnPropertyDescriptor","stopTracking","tb","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","controlled","Bb","Cb","Db","Eb","Gb","Children","Fb","Hb","selected","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","Rb","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","Xb","Yb","Zb","$b","ac","bc","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","F","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","nd","menuitem","area","br","col","embed","img","keygen","param","wbr","od","pd","is","qd","rd","sd","td","ud","vd","nextSibling","wd","compareDocumentPosition","xd","HTMLIFrameElement","yd","contentEditable","zd","Ad","Bd","Cd","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","be","ce","G","Interface","ee","eventPool","fe","destructor","de","getPooled","timeStamp","isTrusted","extend","ge","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","re","detail","se","ve","locale","te","char","ue","we","datetime","email","month","range","tel","week","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","pageX","pageY","button","buttons","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","ef","ff","gf","hf","jf","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","repeat","sf","dataTransfer","tf","touches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","H","I","Af","J","Bf","Cf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","L","childContextTypes","Df","Ef","Ff","getChildContext","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","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","_currentValue","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","ug","updateQueue","baseState","baseQueue","shared","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","D","Bg","Cg","Dg","Eg","Fg","Jg","isMounted","_reactInternalFiber","enqueueSetState","Gg","Hg","Ig","enqueueReplaceState","enqueueForceUpdate","Kg","isPureReactComponent","Lg","updater","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_owner","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","implementation","Vg","Wg","A","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","M","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","N","O","mh","nh","oh","ph","qh","rh","sh","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","destroy","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useState","useDebugValue","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","ReactCurrentOwner","R","Zh","$h","ai","bi","compare","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","getDerivedStateFromError","pendingContext","ni","oi","pi","qi","ii","retryTime","ji","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","last","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","createElementNS","S","ti","ui","wi","xi","U","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","Ri","_reactRootContainer","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","V","ej","fj","gj","hj","ij","jj","W","X","kj","lj","mj","nj","oj","pj","Y","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","Z","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","B","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","vb","Uj","Vj","Wj","_ctor","ob","Xj","_calculateChangedBits","unstable_observedBits","Zj","isReactComponent","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","unmount","querySelectorAll","form","Lj","lk","Events","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","checkDCE","unstable_forceFrameRate","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","__self","__source","keyPrefix","IsSomeRendererActing","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","createFactory","createRef","forwardRef","isValidElement","lazy","memo","AuthType","CodeOfConductEndpoints","privacyStatement","codeOfConduct","termsOfUse","EndpointsRegex","cassandra","mongo","mongoCompute","sql","table","ApiEndpoints","runtimeProxy","guestRuntimeProxy","ServerIds","localhost","blackforest","fairfax","mooncake","productionPortal","dev","ArmApiVersions","documentDB","arcadia","arcadiaLivy","arm","armFeatures","publicVersion","ArmResourceTypes","notebookWorkspaces","synapseWorkspaces","BackendDefaults","partitionKeyKind","partitionKeyMultiHash","maxNumMultiHashPartition","singlePartitionStorageInGb","multiPartitionStorageInGb","maxChangeFeedRetentionDuration","partitionKeyVersion","ClientDefaults","AccountKind","CapacityMode","WorkloadType","MongoBackendEndpointType","ConflictOperationType","ConnectionStatusType","ContainerStatusType","PoolIdType","requestTimeoutMs","portalCacheTimeoutMs","errorNotificationTimeoutMs","copyHelperTimeoutMs","waitForDOMElementMs","cacheBustingTimeoutMs","databaseThroughputIncreaseFactor","arcadiaTokenRefreshInterval","arcadiaTokenRefreshIntervalPaddingMs","CapabilityNames","EnableTable","EnableGremlin","EnableCassandra","EnableAutoScale","EnableNotebooks","EnableStorageAnalytics","EnableMongo","EnableServerless","EnableNoSQLVectorSearch","EnableNoSQLFullTextSearch","Flights","SettingsV2","MongoIndexEditor","MongoIndexing","AutoscaleTest","PartitionKeyTest","PKPartitionKeyTest","PhoenixNotebooks","PhoenixFeatures","NotebooksDownBanner","PublicGallery","AfecFeatures","Spark","Notebooks","StorageAnalytics","TagNames","defaultExperience","MongoDBAccounts","defaultPort","BackendApi","GenerateToken","PortalSettings","AccountRestrictions","RuntimeProxy","DisallowedLocations","SampleData","PortalBackendEndpoints","Development","Mpac","Prod","Fairfax","Mooncake","MongoProxyEndpoints","MongoProxyApi","ResourceList","QueryDocuments","CreateDocument","ReadDocument","UpdateDocument","DeleteDocument","CreateCollectionWithProxy","LegacyMongoShell","BulkDelete","CassandraProxyEndpoints","CassandraBackend","createOrDeleteApi","guestCreateOrDeleteApi","queryApi","guestQueryApi","keysApi","guestKeysApi","schemaApi","guestSchemaApi","CassandraProxyAPIs","connectionStringCreateOrDeleteApi","connectionStringQueryApi","connectionStringKeysApi","connectionStringSchemaApi","AadEndpoints","Queries","CustomPageOption","UnlimitedPageOption","itemsPerPage","unlimitedItemsPerPage","containersPerPage","QueryEditorMinHeightRatio","QueryEditorMaxHeightRatio","DefaultMaxDegreeOfParallelism","DefaultRetryAttempts","DefaultRetryIntervalInMs","DefaultMaxWaitTimeInSeconds","RBACOptions","setAutomaticRBACOption","setTrueRBACOption","setFalseRBACOption","SavedQueries","CollectionName","DatabaseName","OfferThroughput","PartitionKeyProperty","DocumentsGridMetrics","DocumentsPerPage","IndividualRowHeight","BufferHeight","SplitterMinWidth","SplitterMaxWidth","DocumentEditorMinWidthRatio","DocumentEditorMaxWidthRatio","Areas","ResourceTree","ContextualPane","Tab","ShareDialog","Notebook","Copilot","HttpHeaders","activityId","apiType","authorization","collectionIndexTransformationProgress","continuation","correlationRequestId","enableScriptLogging","guestAccessToken","getReadOnlyKey","msDate","contentType","offerReplacePending","populatePartitionStatistics","queryMetrics","requestCharge","resourceQuota","resourceUsage","retryAfterMs","scriptLogResults","populateCollectionThroughputInfo","supportSpatialLegacyCoordinates","usePolygonsSmallerThanAHemisphere","autoPilotThroughput","autoPilotThroughputSDK","partitionKey","migrateOfferToManualThroughput","migrateOfferToAutopilot","xAPIKey","ApiType","MongoDB","Gremlin","Cassandra","Table","SQL","HttpStatusCodes","OK","Created","Accepted","NoContent","NotModified","BadRequest","Unauthorized","Forbidden","NotFound","TooManyRequests","Conflict","InternalServerError","BadGateway","ServiceUnavailable","GatewayTimeout","RetryableStatusCodes","Urls","feedbackEmail","autoscaleMigration","freeTierInformation","cosmosPricing","HashRoutePrefixes","databasesWithId","databaseId","databases","collectionsWithIds","collectionId","collections","sprocWithIds","sprocId","stripFirstSlash","transformedSprocRoute","sprocs","conflictsWithIds","conflicts","docsWithIds","docId","docs","sprocHash","Space","Enter","Escape","UpArrow","DownArrow","LeftArrow","RightArrow","NormalizedEventKey","TryCosmosExperience","extendUrl","deleteUrl","collectionsPerAccount","maxRU","defaultRU","OfferVersions","V1","V2","defaultBasePath","heartbeatDelayMs","containerStatusHeartbeatDelayMs","kernelRestartInitialDelayMs","kernelRestartMaxDelayMs","autoSaveIntervalMs","memoryGuageToGB","lowMemoryThreshold","remainingTimeForAlert","retryAttempts","retryAttemptDelayMs","temporarilyDownMsg","mongoShellTemporarilyDownMsg","cassandraShellTemporarilyDownMsg","saveNotebookModalTitle","saveNotebookModalContent","newNotebookModalTitle","newNotebookUploadModalTitle","newNotebookModalContent1","newNotebookModalContent2","galleryNotebookDownloadContent1","galleryNotebookDownloadContent2","cosmosNotebookHomePageUrl","cosmosNotebookGitDocumentationUrl","learnMore","SparkLibrary","nameMinLength","nameMaxLength","AnalyticalStorageTtl","Days90","Infinite","Disabled","TerminalQueryParams","Terminal","Server","Token","SubscriptionId","TerminalEndpoint","JunoEndpoints","Test","Test2","Test3","Stage","PriorityLevel","High","Low","ariaLabelForLearnMoreLink","AnalyticalStore","AzureSynapseLink","logError","_logEntry","_generateLogEntry","LogInfo","Custom","Debug","Information","sendMessage","_sendMessage","signature","portalChildWindow","origin","Platform","__rest","configContext","platform","Portal","allowedArmEndpoints","allowedBackendEndpoints","allowedCassandraProxyEndpoints","allowedMongoProxyEndpoints","allowedParentFrameOrigins","gitSha","hostedExplorerURL","AAD_ENDPOINT","ARM_AUTH_AREA","ARM_ENDPOINT","ARM_API_VERSION","GRAPH_ENDPOINT","GRAPH_API_VERSION","CATALOG_ENDPOINT","CATALOG_API_VERSION","CATALOG_API_KEY","ARCADIA_ENDPOINT","ARCADIA_LIVY_ENDPOINT_DNS_ZONE","GITHUB_CLIENT_ID","GITHUB_TEST_ENV_CLIENT_ID","JUNO_ENDPOINT","PORTAL_BACKEND_ENDPOINT","MONGO_PROXY_ENDPOINT","CASSANDRA_PROXY_ENDPOINT","NEW_CASSANDRA_APIS","isTerminalEnabled","isPhoenixEnabled","globallyEnabledCassandraAPIs","globallyEnabledMongoAPIs","updateConfigContext","EMULATOR_ENDPOINT","msalRedirectURI","initializeConfiguration","URLSearchParams","armAPIVersion","Hosted","Emulator","TabKind","PaneKind","ActionType","ApiKind","ConflictResolutionMode","SparkClusterEndpointKind","PhoenixErrorType","LogEntryLevel","FabricMessageTypes","CosmosDbArtifactType","MessageTypes","SubscriptionType","ConsoleDataType","App","encryptedToken","setEncryptedToken","encryptedTokenMetadata","openPanel","dismissPanel","armToken","graphToken","login","switchTenant","authFailure","databaseAccount","setDatabaseAccount","setAuthType","EncryptedToken","setConnectionString","frameWindow","hostedConfig","authorizationToken","ConnectionString","masterKey","ResourceToken","resourceToken","showExplorer","accountName","isFabric","AadAuthorizationFailure","failureMessage","failureLinkTitle","failureLinkAction","StyleConstants","Cache","initialData","__cache","__listeners","_key","serializeKey","_hash","subscribe","isSubscribed","isDocumentVisible","visibilityState","fetcher","res","slowConnection","effectiveType","onLoadingSlow","onSuccess","onErrorRetry","revalidate","errorRetryCount","retryCount","errorRetryInterval","focusThrottleInterval","dedupingInterval","loadingTimeout","refreshInterval","revalidateOnFocus","revalidateOnReconnect","refreshWhenHidden","refreshWhenOffline","shouldRetryOnError","dequal","foo","bar","ctor","isPaused","IS_SERVER","Deno","deno","rAF","CONCURRENT_PROMISES","CONCURRENT_PROMISES_TS","FOCUS_REVALIDATORS","RECONNECT_REVALIDATORS","CACHE_REVALIDATORS","MUTATION_TS","MUTATION_END_TS","revalidate_1","revalidators","trigger","shouldRevalidate","keyErr","keyValidating","updaters","currentData","currentError","currentIsValidating","broadcastState","isValidating","fnArgs","configRef","resolveData","cachedData","initialError","initialIsValidating","stateDependencies","stateRef","rerender","shouldUpdateState","unmountedRef","initialMountedRef","keyRef","eventsRef","boundMutate","_data","beforeMutationTs","beforeConcurrentPromisesTs","isAsyncMutation","err_1","shouldAbort","mutate","addRevalidator","removeRevalidator","revlidators","revalidateOpts","shouldDeduping","newData","newState","err_2","dedupe","currentHookData","latestKeyedData","softRevalidate","revalidateOnMount","onReconnect","onUpdate","updatedData","updatedError","updatedIsValidating","needUpdate","timer","tick","defineProperties","latestData","latestError","useDatabaseAccounts","subscriptionId","bearer","managementResourceGraphAPIURL","databaseAccounts","skipToken","subscriptions","$skipToken","$top","ok","queryResponse","localeCompare","fetchDatabaseAccountsFromGraph","useSubscriptions","$allowPartialScopes","subscription","subscriptionName","subscriptionState","fetchSubscriptionsFromGraph","SelectableOptionMenuItemType","memoize","actionButtonStyles","ActionButton","CommandButton","DropdownSizePosCache","_size","updateOptions","displayOnlyOptionsCache","notSelectableOptionsCache","_displayOnlyOptionsCache","_notSelectableOptionsCache","_cachedOptions","positionInSet","getAllSelectedOptions","selectedIndices","selectedOptions","selectedIndices_1","CheckboxBase","inputProps","ariaPositionInSet","ariaSetSize","checkmarkIconProps","boxSide","mergedRootRefs","inputRef","setIsChecked","indeterminate","defaultIndeterminate","isIndeterminate","setIsIndeterminate","reversed","isUsingCustomLabelRender","onRenderLabel","defaultLabelRenderer","checkboxProps","setNativeIndeterminate","setIndeterminate","checkBoxRef","mergedInputProps","htmlFor","checkbox","checkmark","MS_CHECKBOX_LABEL_SIZE","MS_CHECKBOX_TRANSITION_DURATION","MS_CHECKBOX_TRANSITION_TIMING","Checkbox","_s","_t","checkmarkFontColor","checkmarkFontColorHovered","checkboxBorderColor","checkboxBorderIndeterminateColor","checkboxBorderColorChecked","checkboxBorderColorDisabled","checkboxBorderHoveredColor","checkboxBorderIndeterminateHoveredColor","checkboxBackgroundChecked","checkboxBackgroundCheckedHovered","checkboxBorderColorCheckedHovered","checkboxHoveredTextColor","checkboxBackgroundDisabledChecked","checkboxTextColor","checkboxTextColorDisabled","indeterminateDotStyles","transitionProperty","transitionDuration","transitionTimingFunction","outlineOffset","DropdownBase","selectedKeyPropToUse","defaultSelectedKeys","selectedKeys","defaultSelectedKey","selectedKey","multiSelect","oldOptions","setSelectedIndices","didOptionsChange","oldSelectedKeyProp","getAllSelectedIndices","getSelectedIndex","searchKey","isSelected","selectedIndex","selectedKeyPropToUse_1","getSelectedIndexes","useSelectedItemsState","DropdownInternal","hoisted","activeTimeouts","_host","_focusZone","_dropDown","_scrollIdleDelay","_sizePosCache","_requestAnimationFrame","_onChange","onChanged","changedOpt","_getPlaceholder","placeHolder","_getTitle","_unused","multiSelectDelimiter","_onRenderTitle","_onRenderPlaceholder","_onRenderContainer","panelProps","dropdownWidth","isSmall","_listId","panelStyles","_onDismiss","_renderFocusableList","_onScroll","_onPositioned","_onRenderCaretDown","caretDown","_onRenderList","onRenderItem","_onRenderItem","renderedList","newGroup","placeRenderedOptionIntoQueue","_renderSeparator","_renderHeader","_renderOption","onRenderOption","_onRenderOption","isItemSelected","dropdownItemHidden","dropdownItemSelectedAndDisabled","dropdownItemSelected","dropdownItemDisabled","dropdownItem","labelId","multiSelectItemStyles","multiSelectItem","_onMouseItemLeave","_onRenderItemLabel","optionSetSize","dropdownOptionText","_onRenderMultiselectOption","_hasBeenPositioned","calloutRenderEdge","setSelectedIndex","_isScrollIdle","_scrollIdleTimeoutId","_shouldIgnoreMouseEvent","_onDropdownBlur","_isDisabled","onBlur","_onDropdownKeyDown","_lastKeyDownWasAltOrMeta","_isAltOrMeta","newIndex","containsExpandCollapseModifier","_moveIndex","_onDropdownKeyUp","_shouldHandleKeyUp","_onZoneKeyDown","document_1","_onZoneKeyUp","_onDropdownClick","_shouldOpenOnFocus","_isFocusedByClick","_onDropdownMouseDown","_onRenderLabel","labelStyles","_optionId","_gotMouseMove","onRenderTitle","onRenderContainer","onRenderCaretDown","onRenderPlaceholder","onRenderPlaceHolder","cachedOptions","errorMessageId","hasError","hasLabel","isRenderingPlaceholder","panelClassName","calloutClassName","hasErrorMessage","dropdown","caretDownWrapper","shouldOpenOnFocus","notifyOnReselect","newIndexes","_copyArray","newArray","array_1","stepValue","stepCounter","onRenderList","dropdownItemsWrapper","dropdownItems","separatorClassName","dropdownDividerHidden","dropdownDivider","dropdownItemHeaderHidden","dropdownItemHeader","openOnKeyboardFocus","titleIsPlaceHolder","titleHasError","highContrastAdjustMixin","highContrastItemAndTitleStateMixin","highContrastBorderState","MinimumScreenSelector","Dropdown","globalClassnames","rootHoverFocusActiveSelectorNeutralDarkMixin","rootHoverFocusActiveSelectorNeutralPrimaryMixin","borderColorError","dropdownItemStyle","dropdownHeaderStyle","selectedItemBackgroundColor","itemSelectors","titleOpenBorderRadius","calloutOpenBorderRadius","DROPDOWN_HEIGHT","SwitchAccount","accounts","setSelectedAccountName","selectedAccount","SwitchSubscription","setSelectedSubscriptionId","selectedSubscription","buttonStyles","DefaultFontSize","BaseDark","BaseLight","BaseHigh","AccountSwitcher","selectedSubscriptionId","selectedAccountName","ConnectExplorer","isFormVisible","showForm","setErrorMessage","enableConnectionStringLogin","userContext","features","disableConnectionStringLogin","onSubmit","isAccountRestrictedForConnectionStringLogin","includes","isResourceTokenConnectionString","encryptedTokenResponse","fetchEncryptedToken","imageSize","ChoiceGroupOptionBase","itemKey","focused","imageSrc","hasIcon","hasImage","imageIsLarge","defaultOnRenderLabel","defaultOnRenderField","imageAlt","selectedImageSrc","innerField","imageWrapper","selectedImageWrapper","iconWrapper","labelWrapper","onRenderField","choiceFieldWrapper","choiceFieldTransitionDuration","choiceFieldTransitionTiming","getChoiceGroupFocusStyle","focusBorderColor","hasIconOrImage","getImageWrapperStyle","isSelectedImageWrapper","ChoiceGroupOption","circleBorderColor","circleHoveredBorderColor","circleCheckedBorderColor","circleCheckedHoveredBorderColor","circleDisabledBorderColor","circleBackgroundColor","dotUncheckedHoveredColor","dotCheckedColor","dotCheckedHoveredColor","dotDisabledColor","labelHoverFocusColor","iconOrImageChoiceBorderUncheckedHoveredColor","iconOrImageChoiceBorderCheckedColor","iconOrImageChoiceBorderCheckedHoveredColor","iconOrImageChoiceBackgroundColor","fieldHoverOrFocusProperties","enabledFieldWithImageHoverOrFocusProperties","circleAreaProperties","dotAreaProperties","choiceFieldSize","radioButtonSpacing","labelWrapperLineHeight","getOptionId","findOption","focusSelectedOption","keyChecked","focusProviders","optionToFocus","ChoiceGroupBase","optionsContainIconOrImage","setKeyChecked","keyFocused","setKeyFocused","checkedOption","onOptionChange","onRadioFocus","dataset","isFocusTrapZoneBumper","focusFromFocusTrapZone","ChoiceGroup","useDirectories","tenents","nextLink","fetchDirectories","DirectoryPickerPanel","directories","CommandButtonComponent","dropdownElt","expandButtonElt","$","commandClickCallback","onLauncherKeyDown","hide","show","getCommandButtonId","inputString","commandButtonLabel","renderButton","onCommandClick","TelemetryProcessor","SelectItem","Mark","commandButtonClicked","renderChildren","renderLabel","refct","mainClassName","contentClassName","tooltipText","hasPopup","iconSrc","iconAlt","FeedbackCommandButton","TooltipOverflowMode","TooltipDelay","TooltipBase","subText","Tooltip","tooltipGapSpace","devicePixelRatio","TooltipHostBase","_tooltipHost","_defaultTooltipId","_toggleTooltip","_hideTooltip","_getTargetElement","overflowMode","Parent","Self","_onTooltipFocus","_ignoreNextFocusEvent","_onTooltipMouseEnter","_onTooltipContentFocus","_currentVisibleTooltip","_clearDismissTimer","_clearOpenTimer","_onTooltipBlur","_dismissTimerId","overflowElement","scrollWidth","hasHorizontalOverflow","hasVerticalOverflow","delayTime","_getDelayTime","_openTimerId","_onTooltipMouseLeave","closeDelay","_onTooltipKeyDown","isTooltipVisible","onTooltipToggle","long","isAriaPlaceholderRendered","hostClassName","setAriaDescribedBy","tooltipProps","tooltipId","tooltipRenderProps","tooltipContent","showTooltip","ariaPlaceholder","TooltipHost","UNWANTED_ENCLOSURES_REGEX","UNWANTED_CHARS_REGEX","PHONENUMBER_REGEX","MULTIPLE_WHITESPACES_REGEX","UNSUPPORTED_TEXT_REGEX","getInitials","isRtl","allowPhoneInitials","cleanupDisplayName","initials","splits","getInitialsLatin","PersonaSize","PersonaPresence","PersonaInitialsColor","personaSize","personaPresenceSize","size8","size40","size48","size56","size72","size100","size120","size6","sizeBoolean","isSize8","isSize10","isSize16","isSize24","extraExtraSmall","isSize28","extraSmall","isSize32","isSize40","isSize48","isSize56","isSize72","isSize100","isSize120","sizeToPixels","presenceBoolean","presence","isAvailable","online","isAway","away","isBlocked","blocked","isBusy","busy","isDoNotDisturb","dnd","offline","PersonaPresenceBase","coinSize","isOutOfOffice","presenceTitle","presenceColors","renderIcon","presenceHeightWidth","presenceMaxSize","coinSizeWithPresenceIconStyle","presenceFontMaxSize","coinSizeWithPresenceStyle","presenceIcon","determineIcon","oofIcon","makeOpenCircleIconStyle","makeBeforeBorderStyle","borderSize","makeSizeStyle","presenceColorAvailable","available","presenceColorAway","presenceColorBusy","presenceColorDnd","presenceColorOffline","presenceColorOof","oof","presenceColorBackground","isOpenCirclePresence","backgroundClip","COLOR_SWATCHES_LOOKUP","lightBlue","darkBlue","darkGreen","lightPink","pink","lightRed","darkRed","violet","gold","burgundy","warmGray","cyan","rust","coolGray","COLOR_SWATCHES_NUM_ENTRIES","getPersonaInitialsColor","primaryText","initialsColor","personaInitialsColor","lightGreen","transparent","gray","personaInitialsColorToHexCode","hashCode","iLen","getInitialsColorFromName","getInitialsStyles","initialsTextColor","showUnknownPersonaCoin","PersonaCoinBase","onPhotoLoadingStateChange","imageUrl","imageLoadState","setImageLoadstate","useImageLoadState","renderCoin","getCoinRenderer","coinProps","onRenderCoin","onRenderPersonaCoin","onRenderInitials","renderPersonaCoinInitials","showInitialsUntilImageLoads","divCoinProps","coinSizeStyle","hideImage","personaPresenceProps","shouldRenderInitials","coin","imageArea","size10WithoutPresenceIcon","imageShouldFadeIn","imageShouldStartVisible","dimension","imageInitials","PersonaCoin","perspective","showOverflowTooltip","PersonaBase","getText","renderElement","elementClassNames","renderFunction","defaultRenderFunction","tooltip","onInternalRenderPrimaryText","onInternalRenderSecondaryText","onInternalRenderTertiaryText","tertiaryText","onInternalRenderOptionalText","optionalText","hidePersonaDetails","onRenderOptionalText","onRenderPrimaryText","onRenderSecondaryText","onRenderTertiaryText","providedCoinProps","showSecondaryText","personaCoinProps","personaDetails","doNotDisturb","Persona","showSecondaryTextDefaultHeight","sharedTextStyles","useGraphPhoto","photo","setPhoto","blob","fetchPhoto","createObjectURL","MeControl","SignInButton","extractMasterKeyfromConnectionString","matchedParts","extractFeatures","given","downcased","canExceedMaximumValue","cosmosdb","enableAadDataPlane","enableResourceGraph","enableChangeFeedPolicy","enableFixedCollectionWithSharedThroughput","enableKOPanel","enableNotebooks","enableReactPane","enableRightPanelV2","enableSchema","enableSDKoperations","enableSpark","enableTtl","enableKoResourceTree","enableThroughputBuckets","executeSproc","hostedDataExplorer","mongoProxyEndpoint","mongoProxyAPIs","junoEndpoint","phoenixEndpoint","notebookBasePath","notebookServerToken","notebookServerUrl","sandboxNotebookOutputs","selfServeType","pr","showMinRUSurvey","ttl90Days","autoscaleDefault","partitionKeyDefault","partitionKeyDefault2","notebooksDownBanner","enableThroughputCap","enableHierarchicalKeys","enableCopilot","copilotVersion","disableCopilotPhoenixGateaway","enableCopilotFullSchema","copilotChatFixedMonacoEditorHeight","enablePriorityBasedExecution","hoursInAMonth","AutoscalePricing","MonthlyPricing","singleMaster","Currency","CurrencySign","Standard","StartingPrice","PricePerRU","PricePerGB","multiMaster","HourlyPricing","OfferPricing","S1Price","S2Price","S3Price","SingleMasterPricePerRU","MultiMasterPricePerRU","CollectionCreation","MinRUPerPartitionBelow7Partitions","MinRU7PartitionsTo25Partitions","MinRUPerPartitionAbove25Partitions","MaxRUPerPartition","MinPartitionedCollectionRUs","NumberOfPartitionsInFixedCollection","NumberOfPartitionsInUnlimitedCollection","storage10Gb","storage100Gb","DefaultCollectionRUs1000","DefaultCollectionRUs10K","DefaultCollectionRUs400","DefaultCollectionRUs2000","DefaultCollectionRUs2500","DefaultCollectionRUs5000","DefaultCollectionRUs15000","DefaultCollectionRUs20000","DefaultCollectionRUs25000","DefaultCollectionRUs100K","DefaultCollectionRUs1Million","DefaultSubscriptionType","Free","TablesAPIDefaultDatabase","CollectionCreationDefaults","throughput","fixed","unlimited","unlimitedmax","unlimitedmin","FreeTierLimits","RU","Storage","QueryConstants","CancelQueryTitle","CancelQuerySubTextTemplate","CancelQueryTimeoutThresholdReached","Action","ActionModifiers","Start","Success","Failed","Open","IFrameReady","Close","Submit","IndexAll","NoIndex","ToggleAutoscaleOn","ToggleAutoscaleOff","SourceBlade","Source","actionModifier","TelemetryInfo","decorateData","traceFailure","databaseAccountName","appInsights2","hasWriteAccess","isTryCosmosDBSubscription","portalEnv","subscriptionType","collectionCreationDefaults","getMsalInstance","msalConfig","acquireTokenWithMsal","msalInstance","silent","tokenRequest","silentError","SignInAad","acquireTokenType","interactiveError","validateEndpoint","endpointToValidate","allowedEndpoints","originToValidate","allowedOrigins","allowedEndpoint","valid","validateEndpointInternal","defaultAllowedArmEndpoints","allowedAadEndpoints","defaultAllowedBackendEndpoints","defaultAllowedMongoProxyEndpoints","defaultAllowedCassandraProxyEndpoints","allowedEmulatorEndpoints","allowedGraphEndpoints","allowedArcadiaEndpoints","allowedHostedExplorerEndpoints","allowedMsalRedirectEndpoints","allowedJunoOrigins","getDataExplorerWindow","cachedTenantId","useAADAuth","setLoggedIn","setLoggedOut","setTenantId","setGraphToken","setArmToken","setAuthFailure","acquireTokens","errorJson","shouldOpen","showCoachMark","showCopilotCarousel","setShouldOpen","setShowCoachMark","setShowCopilotCarousel","useConfig","consoleData","inProgressConsoleDataIdToBeDeleted","consoleAnimationFinished","expandConsole","setIsExpanded","setNotificationConsoleData","setInProgressConsoleDataIdToBeDeleted","setConsoleAnimationFinished","useTokenMetadata","token","portalToken","fetchAccessData","showPostgreTeachingBubble","showResetPasswordBubble","setShowPostgreTeachingBubble","setShowResetPasswordBubble","baseCreate","Ctor","baseIteratee","argCount","iteratee","chainResult","_chain","chain","collectNonEnumProps","emulatedSet","nonEnumIdx","createAssigner","keysFunc","createEscaper","escaper","testRegexp","replaceRegexp","string","createIndexFinder","predicateFind","sortedIndex","createPredicateIndexFinder","predicate","createReduce","initial","_keys","currentKey","reducer","createSizePropertyCheck","getSizeProperty","collection","sizeProperty","deepGet","executeBound","sourceFunc","boundFunc","callingContext","flatten","depth","strict","Infinity","group","behavior","partition","keyInObj","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","optimizeCb","accumulator","VERSION","ArrayProto","SymbolProto","supportsArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","shallowProperty","hasStringTagBug","isIE11","tagTester","toBufferView","bufferSource","byteOffset","toPath","after","times","allKeys","before","bound","callArgs","chunk","compact","compose","constant","guard","immediate","previous","later","passed","debounced","_args","each","findKey","findWhere","attrs","first","identity","mixin","intersection","argsLength","invert","contextPath","isArguments","isDataView","getInt8","isElement","tagDataView","eq","aStack","bStack","deepEq","_wrapped","areArrays","aCtor","bCtor","isEqual","nodelist","Int8Array","isMatch","isNull","typedArrayPattern","mapObject","matcher","computed","lastComputed","hasher","address","negate","pairs","partial","boundArgs","pass","pluck","propertyOf","restArguments","startIndex","sample","rand","temp","shuffle","sortBy","criteria","low","high","mid","interceptor","noMatch","escapes","escapeRegExp","escapeChar","bareIdentifier","template","templateSettings","interpolate","evaluate","argument","variable","throttled","_now","accum","reStrSymbol","toJSON","arrays","uniq","isSorted","seen","idCounter","unzip","where","otherArrays","wrap","create$1","createState","nextState","getState","api","equalityFn","currentSlice","listenerToAdd","nextSlice","previousSlice","subscribeWithSelector","useStore","selectorRef","equalityFnRef","erroredRef","currentSliceRef","newStateSlice","hasNewStateSlice","stateBeforeSubscriptionRef","nextStateSlice","unsubscribe","__spreadArray","pack","SuppressedError","__decorate","decorators","Reflect","decorate","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","hasAwait","currentDeps","outerResolve","depQueues","rej","wrapDeps","getResult","fnQueue","getter","__esModule","toStringTag"],"sourceRoot":""}