@spteck/react-controls-v2 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +420 -0
- package/dist/ILoggingProvider-C4FFlnQ0.js +2 -0
- package/dist/ILoggingProvider-C4FFlnQ0.js.map +1 -0
- package/dist/ILoggingProvider-CYYYCGLY.mjs +18 -0
- package/dist/ILoggingProvider-CYYYCGLY.mjs.map +1 -0
- package/dist/abstractions/IApplicationContext.d.ts +37 -0
- package/dist/abstractions/IApplicationContext.d.ts.map +1 -0
- package/dist/abstractions/IAuthenticationProvider.d.ts +25 -0
- package/dist/abstractions/IAuthenticationProvider.d.ts.map +1 -0
- package/dist/abstractions/IGraphProvider.d.ts +42 -0
- package/dist/abstractions/IGraphProvider.d.ts.map +1 -0
- package/dist/abstractions/ILoggingProvider.d.ts +56 -0
- package/dist/abstractions/ILoggingProvider.d.ts.map +1 -0
- package/dist/abstractions/IPageContext.d.ts +85 -0
- package/dist/abstractions/IPageContext.d.ts.map +1 -0
- package/dist/abstractions/IStorageProvider.d.ts +38 -0
- package/dist/abstractions/IStorageProvider.d.ts.map +1 -0
- package/dist/abstractions/index.d.ts +7 -0
- package/dist/abstractions/index.d.ts.map +1 -0
- package/dist/abstractions/providers/ConsoleLoggingProvider.d.ts +16 -0
- package/dist/abstractions/providers/ConsoleLoggingProvider.d.ts.map +1 -0
- package/dist/abstractions/providers/DefaultGraphClient.d.ts +28 -0
- package/dist/abstractions/providers/DefaultGraphClient.d.ts.map +1 -0
- package/dist/abstractions/providers/LocalStorageProvider.d.ts +20 -0
- package/dist/abstractions/providers/LocalStorageProvider.d.ts.map +1 -0
- package/dist/abstractions/providers/index.d.ts +4 -0
- package/dist/abstractions/providers/index.d.ts.map +1 -0
- package/dist/components/AISearchControl/AISearchControl.d.ts +20 -0
- package/dist/components/AISearchControl/AISearchControl.d.ts.map +1 -0
- package/dist/components/AISearchControl/AISearchIcon.d.ts +15 -0
- package/dist/components/AISearchControl/AISearchIcon.d.ts.map +1 -0
- package/dist/components/AISearchControl/AISearchIconExample.d.ts +6 -0
- package/dist/components/AISearchControl/AISearchIconExample.d.ts.map +1 -0
- package/dist/components/AISearchControl/index.d.ts +4 -0
- package/dist/components/AISearchControl/index.d.ts.map +1 -0
- package/dist/components/AISearchControl/useAISearchControlStyles.d.ts +11 -0
- package/dist/components/AISearchControl/useAISearchControlStyles.d.ts.map +1 -0
- package/dist/components/AspectRatio/AspectRatio.d.ts +13 -0
- package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -0
- package/dist/components/AspectRatio/IAspectRationProps.d.ts +7 -0
- package/dist/components/AspectRatio/IAspectRationProps.d.ts.map +1 -0
- package/dist/components/AspectRatio/index.d.ts +4 -0
- package/dist/components/AspectRatio/index.d.ts.map +1 -0
- package/dist/components/AspectRatio/useAspectRatioStyles.d.ts +6 -0
- package/dist/components/AspectRatio/useAspectRatioStyles.d.ts.map +1 -0
- package/dist/components/Card/Card.d.ts +4 -0
- package/dist/components/Card/Card.d.ts.map +1 -0
- package/dist/components/Card/ICardProps.d.ts +19 -0
- package/dist/components/Card/ICardProps.d.ts.map +1 -0
- package/dist/components/Card/index.d.ts +4 -0
- package/dist/components/Card/index.d.ts.map +1 -0
- package/dist/components/Card/useCardStyles.d.ts +7 -0
- package/dist/components/Card/useCardStyles.d.ts.map +1 -0
- package/dist/components/Carousel/Carousel.d.ts +4 -0
- package/dist/components/Carousel/Carousel.d.ts.map +1 -0
- package/dist/components/Carousel/ICarouselProps.d.ts +8 -0
- package/dist/components/Carousel/ICarouselProps.d.ts.map +1 -0
- package/dist/components/Carousel/index.d.ts +6 -0
- package/dist/components/Carousel/index.d.ts.map +1 -0
- package/dist/components/Carousel/useCarouselButton.d.ts +11 -0
- package/dist/components/Carousel/useCarouselButton.d.ts.map +1 -0
- package/dist/components/Carousel/useCarouselStyles.d.ts +11 -0
- package/dist/components/Carousel/useCarouselStyles.d.ts.map +1 -0
- package/dist/components/Carousel/useCarouselStylesMain.d.ts +6 -0
- package/dist/components/Carousel/useCarouselStylesMain.d.ts.map +1 -0
- package/dist/components/Center/Center.d.ts +4 -0
- package/dist/components/Center/Center.d.ts.map +1 -0
- package/dist/components/Center/ICenterProps.d.ts +5 -0
- package/dist/components/Center/ICenterProps.d.ts.map +1 -0
- package/dist/components/Center/index.d.ts +4 -0
- package/dist/components/Center/index.d.ts.map +1 -0
- package/dist/components/Center/useCenterStyles.d.ts +7 -0
- package/dist/components/Center/useCenterStyles.d.ts.map +1 -0
- package/dist/components/Container/Container.d.ts +12 -0
- package/dist/components/Container/Container.d.ts.map +1 -0
- package/dist/components/Container/IContainerProps.d.ts +6 -0
- package/dist/components/Container/IContainerProps.d.ts.map +1 -0
- package/dist/components/Container/index.d.ts +3 -0
- package/dist/components/Container/index.d.ts.map +1 -0
- package/dist/components/Container/useContainerStyles.d.ts +6 -0
- package/dist/components/Container/useContainerStyles.d.ts.map +1 -0
- package/dist/components/DataGridV2/DataGridV2.d.ts +39 -0
- package/dist/components/DataGridV2/DataGridV2.d.ts.map +1 -0
- package/dist/components/DataGridV2/index.d.ts +2 -0
- package/dist/components/DataGridV2/index.d.ts.map +1 -0
- package/dist/components/Grid/Grid.d.ts +4 -0
- package/dist/components/Grid/Grid.d.ts.map +1 -0
- package/dist/components/Grid/IGridProps.d.ts +9 -0
- package/dist/components/Grid/IGridProps.d.ts.map +1 -0
- package/dist/components/Grid/index.d.ts +4 -0
- package/dist/components/Grid/index.d.ts.map +1 -0
- package/dist/components/Grid/useGridStyles.d.ts +6 -0
- package/dist/components/Grid/useGridStyles.d.ts.map +1 -0
- package/dist/components/Layout/ILayoutProps.d.ts +15 -0
- package/dist/components/Layout/ILayoutProps.d.ts.map +1 -0
- package/dist/components/Layout/Layout.d.ts +6 -0
- package/dist/components/Layout/Layout.d.ts.map +1 -0
- package/dist/components/Layout/LayoutItem.d.ts +6 -0
- package/dist/components/Layout/LayoutItem.d.ts.map +1 -0
- package/dist/components/Layout/index.d.ts +5 -0
- package/dist/components/Layout/index.d.ts.map +1 -0
- package/dist/components/Layout/useLayoutStyles.d.ts +9 -0
- package/dist/components/Layout/useLayoutStyles.d.ts.map +1 -0
- package/dist/components/ListItemActivityMessage/IAction.d.ts +14 -0
- package/dist/components/ListItemActivityMessage/IAction.d.ts.map +1 -0
- package/dist/components/ListItemActivityMessage/IActivity.d.ts +12 -0
- package/dist/components/ListItemActivityMessage/IActivity.d.ts.map +1 -0
- package/dist/components/ListItemActivityMessage/IActivityMessageProps.d.ts +18 -0
- package/dist/components/ListItemActivityMessage/IActivityMessageProps.d.ts.map +1 -0
- package/dist/components/ListItemActivityMessage/IActor.d.ts +6 -0
- package/dist/components/ListItemActivityMessage/IActor.d.ts.map +1 -0
- package/dist/components/ListItemActivityMessage/IUserActor.d.ts +7 -0
- package/dist/components/ListItemActivityMessage/IUserActor.d.ts.map +1 -0
- package/dist/components/ListItemActivityMessage/ListItemActivityMessage.d.ts +4 -0
- package/dist/components/ListItemActivityMessage/ListItemActivityMessage.d.ts.map +1 -0
- package/dist/components/ListItemActivityMessage/index.d.ts +7 -0
- package/dist/components/ListItemActivityMessage/index.d.ts.map +1 -0
- package/dist/components/ListItemActivityMessage/useSharePointActivities.d.ts +18 -0
- package/dist/components/ListItemActivityMessage/useSharePointActivities.d.ts.map +1 -0
- package/dist/components/LivePersona/ILivePersonaProps.d.ts +16 -0
- package/dist/components/LivePersona/ILivePersonaProps.d.ts.map +1 -0
- package/dist/components/LivePersona/LivePersona.d.ts +13 -0
- package/dist/components/LivePersona/LivePersona.d.ts.map +1 -0
- package/dist/components/LivePersona/index.d.ts +3 -0
- package/dist/components/LivePersona/index.d.ts.map +1 -0
- package/dist/components/Popup/Popup.d.ts +16 -0
- package/dist/components/Popup/Popup.d.ts.map +1 -0
- package/dist/components/Popup/index.d.ts +2 -0
- package/dist/components/Popup/index.d.ts.map +1 -0
- package/dist/components/Provider/UniversalProvider.d.ts +44 -0
- package/dist/components/Provider/UniversalProvider.d.ts.map +1 -0
- package/dist/components/Provider/index.d.ts +2 -0
- package/dist/components/Provider/index.d.ts.map +1 -0
- package/dist/components/RenderLabel/RenderLabel.d.ts +9 -0
- package/dist/components/RenderLabel/RenderLabel.d.ts.map +1 -0
- package/dist/components/RenderLabel/index.d.ts +3 -0
- package/dist/components/RenderLabel/index.d.ts.map +1 -0
- package/dist/components/RenderLabel/useRenderLabelStylesStyles.d.ts +2 -0
- package/dist/components/RenderLabel/useRenderLabelStylesStyles.d.ts.map +1 -0
- package/dist/components/RenderSpninner/RenderSpinner.d.ts +10 -0
- package/dist/components/RenderSpninner/RenderSpinner.d.ts.map +1 -0
- package/dist/components/RenderSpninner/index.d.ts +2 -0
- package/dist/components/RenderSpninner/index.d.ts.map +1 -0
- package/dist/components/Space/ISpaceProps.d.ts +7 -0
- package/dist/components/Space/ISpaceProps.d.ts.map +1 -0
- package/dist/components/Space/SPace.d.ts +4 -0
- package/dist/components/Space/SPace.d.ts.map +1 -0
- package/dist/components/Space/index.d.ts +4 -0
- package/dist/components/Space/index.d.ts.map +1 -0
- package/dist/components/Space/useSpaceStyles.d.ts +6 -0
- package/dist/components/Space/useSpaceStyles.d.ts.map +1 -0
- package/dist/components/Stack/IStackProps.d.ts +13 -0
- package/dist/components/Stack/IStackProps.d.ts.map +1 -0
- package/dist/components/Stack/Stack.d.ts +4 -0
- package/dist/components/Stack/Stack.d.ts.map +1 -0
- package/dist/components/Stack/StackItem.d.ts +12 -0
- package/dist/components/Stack/StackItem.d.ts.map +1 -0
- package/dist/components/Stack/index.d.ts +5 -0
- package/dist/components/Stack/index.d.ts.map +1 -0
- package/dist/components/Stack/useStackStyles.d.ts +6 -0
- package/dist/components/Stack/useStackStyles.d.ts.map +1 -0
- package/dist/components/StackedUsers/IStackedUsersProps.d.ts +45 -0
- package/dist/components/StackedUsers/IStackedUsersProps.d.ts.map +1 -0
- package/dist/components/StackedUsers/StackedUsers.d.ts +13 -0
- package/dist/components/StackedUsers/StackedUsers.d.ts.map +1 -0
- package/dist/components/StackedUsers/index.d.ts +3 -0
- package/dist/components/StackedUsers/index.d.ts.map +1 -0
- package/dist/components/StackedUsers/useStackedUsersStyles.d.ts +12 -0
- package/dist/components/StackedUsers/useStackedUsersStyles.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/AdaptiveCardHost.Exports.d.ts +2 -0
- package/dist/components/adaptiveCardHost/AdaptiveCardHost.Exports.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/AdaptiveCardHost.HostConfig.d.ts +6 -0
- package/dist/components/adaptiveCardHost/AdaptiveCardHost.HostConfig.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/AdaptiveCardHost.Utilities.d.ts +9 -0
- package/dist/components/adaptiveCardHost/AdaptiveCardHost.Utilities.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/AdaptiveCardHost.d.ts +4 -0
- package/dist/components/adaptiveCardHost/AdaptiveCardHost.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/IAdaptiveCardHostProps.d.ts +92 -0
- package/dist/components/adaptiveCardHost/IAdaptiveCardHostProps.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/Actions.d.ts +42 -0
- package/dist/components/adaptiveCardHost/fluentUI/Actions.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/Elements.d.ts +5 -0
- package/dist/components/adaptiveCardHost/fluentUI/Elements.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUIChoiceSetInput.d.ts +32 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUIChoiceSetInput.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUIDateInput.d.ts +28 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUIDateInput.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUINumberInput.d.ts +22 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUINumberInput.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUITextInput.d.ts +36 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUITextInput.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUITimeInput.d.ts +34 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUITimeInput.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUIToggleInput.d.ts +25 -0
- package/dist/components/adaptiveCardHost/fluentUI/FluentUIToggleInput.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/HostCapability.d.ts +7 -0
- package/dist/components/adaptiveCardHost/fluentUI/HostCapability.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/HostConfig.d.ts +5 -0
- package/dist/components/adaptiveCardHost/fluentUI/HostConfig.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/IconButton.d.ts +19 -0
- package/dist/components/adaptiveCardHost/fluentUI/IconButton.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/Styles.d.ts +4 -0
- package/dist/components/adaptiveCardHost/fluentUI/Styles.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/index.d.ts +6 -0
- package/dist/components/adaptiveCardHost/fluentUI/index.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/inlineButtonRootStyle.d.ts +2 -0
- package/dist/components/adaptiveCardHost/fluentUI/inlineButtonRootStyle.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/fluentUI/internalRender.d.ts +2 -0
- package/dist/components/adaptiveCardHost/fluentUI/internalRender.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/index.d.ts +8 -0
- package/dist/components/adaptiveCardHost/index.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/AdaptiveCardHostThemeType.d.ts +7 -0
- package/dist/components/adaptiveCardHost/models/AdaptiveCardHostThemeType.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/IAadInfo.d.ts +6 -0
- package/dist/components/adaptiveCardHost/models/IAadInfo.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/IAdaptiveCardHostActionResult.d.ts +8 -0
- package/dist/components/adaptiveCardHost/models/IAdaptiveCardHostActionResult.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/IAdaptiveCardHostConfigResult.d.ts +8 -0
- package/dist/components/adaptiveCardHost/models/IAdaptiveCardHostConfigResult.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/IAdaptiveCardHostEvaluationContext.d.ts +20 -0
- package/dist/components/adaptiveCardHost/models/IAdaptiveCardHostEvaluationContext.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/ICultureInfo.d.ts +6 -0
- package/dist/components/adaptiveCardHost/models/ICultureInfo.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/ISPListInfo.d.ts +6 -0
- package/dist/components/adaptiveCardHost/models/ISPListInfo.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/ISPListItemInfo.d.ts +4 -0
- package/dist/components/adaptiveCardHost/models/ISPListItemInfo.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/ISPSiteInfo.d.ts +13 -0
- package/dist/components/adaptiveCardHost/models/ISPSiteInfo.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/ISPWebInfo.d.ts +13 -0
- package/dist/components/adaptiveCardHost/models/ISPWebInfo.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/IUserInfo.d.ts +9 -0
- package/dist/components/adaptiveCardHost/models/IUserInfo.d.ts.map +1 -0
- package/dist/components/adaptiveCardHost/models/index.d.ts +12 -0
- package/dist/components/adaptiveCardHost/models/index.d.ts.map +1 -0
- package/dist/components/aiAssistant/AIAssistant.d.ts +5 -0
- package/dist/components/aiAssistant/AIAssistant.d.ts.map +1 -0
- package/dist/components/aiAssistant/ChatAction.d.ts +26 -0
- package/dist/components/aiAssistant/ChatAction.d.ts.map +1 -0
- package/dist/components/aiAssistant/ChatInput.d.ts +10 -0
- package/dist/components/aiAssistant/ChatInput.d.ts.map +1 -0
- package/dist/components/aiAssistant/ChatInputProps.d.ts +31 -0
- package/dist/components/aiAssistant/ChatInputProps.d.ts.map +1 -0
- package/dist/components/aiAssistant/ChatInputWithMensions.d.ts +6 -0
- package/dist/components/aiAssistant/ChatInputWithMensions.d.ts.map +1 -0
- package/dist/components/aiAssistant/ChatInputWithMensionsProps.d.ts +14 -0
- package/dist/components/aiAssistant/ChatInputWithMensionsProps.d.ts.map +1 -0
- package/dist/components/aiAssistant/ChatInputWithMensionsV1.d.ts +17 -0
- package/dist/components/aiAssistant/ChatInputWithMensionsV1.d.ts.map +1 -0
- package/dist/components/aiAssistant/ChatInputWithMensionsV2.d.ts +6 -0
- package/dist/components/aiAssistant/ChatInputWithMensionsV2.d.ts.map +1 -0
- package/dist/components/aiAssistant/ChatState.d.ts +10 -0
- package/dist/components/aiAssistant/ChatState.d.ts.map +1 -0
- package/dist/components/aiAssistant/IAIAssistantProps.d.ts +21 -0
- package/dist/components/aiAssistant/IAIAssistantProps.d.ts.map +1 -0
- package/dist/components/aiAssistant/IChatItem.d.ts +7 -0
- package/dist/components/aiAssistant/IChatItem.d.ts.map +1 -0
- package/dist/components/aiAssistant/IResponse.d.ts +5 -0
- package/dist/components/aiAssistant/IResponse.d.ts.map +1 -0
- package/dist/components/aiAssistant/LoadingDots.d.ts +3 -0
- package/dist/components/aiAssistant/LoadingDots.d.ts.map +1 -0
- package/dist/components/aiAssistant/chatReducer.d.ts +5 -0
- package/dist/components/aiAssistant/chatReducer.d.ts.map +1 -0
- package/dist/components/aiAssistant/index.d.ts +7 -0
- package/dist/components/aiAssistant/index.d.ts.map +1 -0
- package/dist/components/aiAssistant/useAIAssistantStyles.d.ts +8 -0
- package/dist/components/aiAssistant/useAIAssistantStyles.d.ts.map +1 -0
- package/dist/components/aiAssistant/useChatInputStyles.d.ts +4 -0
- package/dist/components/aiAssistant/useChatInputStyles.d.ts.map +1 -0
- package/dist/components/aiAssistant/useChatInputWithMensionsStyles.d.ts +4 -0
- package/dist/components/aiAssistant/useChatInputWithMensionsStyles.d.ts.map +1 -0
- package/dist/components/aiAssistant/useLoadingDotsStyles.d.ts +9 -0
- package/dist/components/aiAssistant/useLoadingDotsStyles.d.ts.map +1 -0
- package/dist/components/aiAssistant/useStreamRequest.d.ts +10 -0
- package/dist/components/aiAssistant/useStreamRequest.d.ts.map +1 -0
- package/dist/components/aiAssistant/useStyles.d.ts +4 -0
- package/dist/components/aiAssistant/useStyles.d.ts.map +1 -0
- package/dist/components/appDashboard/AppDashboard.d.ts +6 -0
- package/dist/components/appDashboard/AppDashboard.d.ts.map +1 -0
- package/dist/components/appDashboard/ExampleAppDashboardUsage.d.ts +9 -0
- package/dist/components/appDashboard/ExampleAppDashboardUsage.d.ts.map +1 -0
- package/dist/components/appDashboard/IAppDashboardProps.d.ts +55 -0
- package/dist/components/appDashboard/IAppDashboardProps.d.ts.map +1 -0
- package/dist/components/appDashboard/NoDashboards.d.ts +6 -0
- package/dist/components/appDashboard/NoDashboards.d.ts.map +1 -0
- package/dist/components/appDashboard/index.d.ts +3 -0
- package/dist/components/appDashboard/index.d.ts.map +1 -0
- package/dist/components/appDashboard/selectZoom/SelectZoom.d.ts +16 -0
- package/dist/components/appDashboard/selectZoom/SelectZoom.d.ts.map +1 -0
- package/dist/components/appDashboard/useDashboardStyles.d.ts +8 -0
- package/dist/components/appDashboard/useDashboardStyles.d.ts.map +1 -0
- package/dist/components/baseComponentProps/IBaseProps.d.ts +24 -0
- package/dist/components/baseComponentProps/IBaseProps.d.ts.map +1 -0
- package/dist/components/breadcrumb/Breadcrumb.d.ts +6 -0
- package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb/IBreadcrumItem.d.ts +6 -0
- package/dist/components/breadcrumb/IBreadcrumItem.d.ts.map +1 -0
- package/dist/components/breadcrumb/IBreadcrumProps.d.ts +13 -0
- package/dist/components/breadcrumb/IBreadcrumProps.d.ts.map +1 -0
- package/dist/components/breadcrumb/OverflowMenu.d.ts +12 -0
- package/dist/components/breadcrumb/OverflowMenu.d.ts.map +1 -0
- package/dist/components/breadcrumb/index.d.ts +3 -0
- package/dist/components/breadcrumb/index.d.ts.map +1 -0
- package/dist/components/breadcrumb/useBreadcrumStyles.d.ts +11 -0
- package/dist/components/breadcrumb/useBreadcrumStyles.d.ts.map +1 -0
- package/dist/components/buttonMenu/ButtonMenu.d.ts +15 -0
- package/dist/components/buttonMenu/ButtonMenu.d.ts.map +1 -0
- package/dist/components/buttonMenu/IButtonMenuOption.d.ts +10 -0
- package/dist/components/buttonMenu/IButtonMenuOption.d.ts.map +1 -0
- package/dist/components/buttonMenu/index.d.ts +3 -0
- package/dist/components/buttonMenu/index.d.ts.map +1 -0
- package/dist/components/calendarControl/CalendarControl.d.ts +7 -0
- package/dist/components/calendarControl/CalendarControl.d.ts.map +1 -0
- package/dist/components/calendarControl/Day.d.ts +12 -0
- package/dist/components/calendarControl/Day.d.ts.map +1 -0
- package/dist/components/calendarControl/DayView.d.ts +13 -0
- package/dist/components/calendarControl/DayView.d.ts.map +1 -0
- package/dist/components/calendarControl/EventDetailsPopover.d.ts +10 -0
- package/dist/components/calendarControl/EventDetailsPopover.d.ts.map +1 -0
- package/dist/components/calendarControl/EventPopoverCard.d.ts +19 -0
- package/dist/components/calendarControl/EventPopoverCard.d.ts.map +1 -0
- package/dist/components/calendarControl/EventRender.d.ts +13 -0
- package/dist/components/calendarControl/EventRender.d.ts.map +1 -0
- package/dist/components/calendarControl/RenderEventToDayOfMonth.d.ts +10 -0
- package/dist/components/calendarControl/RenderEventToDayOfMonth.d.ts.map +1 -0
- package/dist/components/calendarControl/SelectCalendarView.d.ts +11 -0
- package/dist/components/calendarControl/SelectCalendarView.d.ts.map +1 -0
- package/dist/components/calendarControl/Toolbar.d.ts +17 -0
- package/dist/components/calendarControl/Toolbar.d.ts.map +1 -0
- package/dist/components/calendarControl/WeekView.d.ts +13 -0
- package/dist/components/calendarControl/WeekView.d.ts.map +1 -0
- package/dist/components/calendarControl/hooks/index.d.ts +6 -0
- package/dist/components/calendarControl/hooks/index.d.ts.map +1 -0
- package/dist/components/calendarControl/hooks/useCalendar.d.ts +18 -0
- package/dist/components/calendarControl/hooks/useCalendar.d.ts.map +1 -0
- package/dist/components/calendarControl/hooks/useCalendarStyles.d.ts +20 -0
- package/dist/components/calendarControl/hooks/useCalendarStyles.d.ts.map +1 -0
- package/dist/components/calendarControl/hooks/useDayViewStyles.d.ts +23 -0
- package/dist/components/calendarControl/hooks/useDayViewStyles.d.ts.map +1 -0
- package/dist/components/calendarControl/hooks/useUtils.d.ts +19 -0
- package/dist/components/calendarControl/hooks/useUtils.d.ts.map +1 -0
- package/dist/components/calendarControl/hooks/useWeekViewStyles.d.ts +29 -0
- package/dist/components/calendarControl/hooks/useWeekViewStyles.d.ts.map +1 -0
- package/dist/components/calendarControl/index.d.ts +4 -0
- package/dist/components/calendarControl/index.d.ts.map +1 -0
- package/dist/components/calendarControl/models/ECalendarViews.d.ts +6 -0
- package/dist/components/calendarControl/models/ECalendarViews.d.ts.map +1 -0
- package/dist/components/calendarControl/models/IAttendee.d.ts +8 -0
- package/dist/components/calendarControl/models/IAttendee.d.ts.map +1 -0
- package/dist/components/calendarControl/models/ICalendarControlProps.d.ts +20 -0
- package/dist/components/calendarControl/models/ICalendarControlProps.d.ts.map +1 -0
- package/dist/components/calendarControl/models/ICalendarDay.d.ts +6 -0
- package/dist/components/calendarControl/models/ICalendarDay.d.ts.map +1 -0
- package/dist/components/calendarControl/models/IEventColors.d.ts +5 -0
- package/dist/components/calendarControl/models/IEventColors.d.ts.map +1 -0
- package/dist/components/calendarControl/models/IEvents.d.ts +27 -0
- package/dist/components/calendarControl/models/IEvents.d.ts.map +1 -0
- package/dist/components/calendarControl/models/IStrings.d.ts +180 -0
- package/dist/components/calendarControl/models/IStrings.d.ts.map +1 -0
- package/dist/components/calendarControl/models/index.d.ts +8 -0
- package/dist/components/calendarControl/models/index.d.ts.map +1 -0
- package/dist/components/customControlBar/CustomControlBar.d.ts +16 -0
- package/dist/components/customControlBar/CustomControlBar.d.ts.map +1 -0
- package/dist/components/customControlBar/index.d.ts +2 -0
- package/dist/components/customControlBar/index.d.ts.map +1 -0
- package/dist/components/dataGrid/DataGrid.d.ts +4 -0
- package/dist/components/dataGrid/DataGrid.d.ts.map +1 -0
- package/dist/components/dataGrid/IColumnConfig.d.ts +10 -0
- package/dist/components/dataGrid/IColumnConfig.d.ts.map +1 -0
- package/dist/components/dataGrid/IDataGridProps.d.ts +26 -0
- package/dist/components/dataGrid/IDataGridProps.d.ts.map +1 -0
- package/dist/components/dataGrid/ISortState.d.ts +7 -0
- package/dist/components/dataGrid/ISortState.d.ts.map +1 -0
- package/dist/components/dataGrid/index.d.ts +6 -0
- package/dist/components/dataGrid/index.d.ts.map +1 -0
- package/dist/components/dataGrid/stack/IStackProps.d.ts +78 -0
- package/dist/components/dataGrid/stack/IStackProps.d.ts.map +1 -0
- package/dist/components/dataGrid/stack/Stack.d.ts +10 -0
- package/dist/components/dataGrid/stack/Stack.d.ts.map +1 -0
- package/dist/components/dataGrid/useDataGridStyles.d.ts +10 -0
- package/dist/components/dataGrid/useDataGridStyles.d.ts.map +1 -0
- package/dist/components/dropDownField/DropDownField.d.ts +4 -0
- package/dist/components/dropDownField/DropDownField.d.ts.map +1 -0
- package/dist/components/dropDownField/IDropDownFieldProps.d.ts +16 -0
- package/dist/components/dropDownField/IDropDownFieldProps.d.ts.map +1 -0
- package/dist/components/dropDownField/IOption.d.ts +8 -0
- package/dist/components/dropDownField/IOption.d.ts.map +1 -0
- package/dist/components/dropDownField/index.d.ts +4 -0
- package/dist/components/dropDownField/index.d.ts.map +1 -0
- package/dist/components/genericOverFlowMenu/GenericOverFlowMenu.d.ts +11 -0
- package/dist/components/genericOverFlowMenu/GenericOverFlowMenu.d.ts.map +1 -0
- package/dist/components/genericOverFlowMenu/index.d.ts +2 -0
- package/dist/components/genericOverFlowMenu/index.d.ts.map +1 -0
- package/dist/components/genericOverFlowMenu/useOverflowMenuStyles.d.ts +2 -0
- package/dist/components/genericOverFlowMenu/useOverflowMenuStyles.d.ts.map +1 -0
- package/dist/components/iconButton/IconButton.d.ts +7 -0
- package/dist/components/iconButton/IconButton.d.ts.map +1 -0
- package/dist/components/iconButton/IconButtonProps.d.ts +31 -0
- package/dist/components/iconButton/IconButtonProps.d.ts.map +1 -0
- package/dist/components/iconButton/index.d.ts +3 -0
- package/dist/components/iconButton/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +47 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/mensions/IMensionsProps.d.ts +52 -0
- package/dist/components/mensions/IMensionsProps.d.ts.map +1 -0
- package/dist/components/mensions/Mensions.d.ts +6 -0
- package/dist/components/mensions/Mensions.d.ts.map +1 -0
- package/dist/components/mensions/MensionsExample.d.ts +13 -0
- package/dist/components/mensions/MensionsExample.d.ts.map +1 -0
- package/dist/components/mensions/index.d.ts +6 -0
- package/dist/components/mensions/index.d.ts.map +1 -0
- package/dist/components/mensions/useMensionsStyles.d.ts +7 -0
- package/dist/components/mensions/useMensionsStyles.d.ts.map +1 -0
- package/dist/components/renderAdaptiveCard/RenderAdaptiveCard.d.ts +9 -0
- package/dist/components/renderAdaptiveCard/RenderAdaptiveCard.d.ts.map +1 -0
- package/dist/components/renderAdaptiveCard/index.d.ts +2 -0
- package/dist/components/renderAdaptiveCard/index.d.ts.map +1 -0
- package/dist/components/renderDialog/RenderDialog.d.ts +15 -0
- package/dist/components/renderDialog/RenderDialog.d.ts.map +1 -0
- package/dist/components/renderDialog/index.d.ts +2 -0
- package/dist/components/renderDialog/index.d.ts.map +1 -0
- package/dist/components/renderDrawer/RenderDrawer.d.ts +22 -0
- package/dist/components/renderDrawer/RenderDrawer.d.ts.map +1 -0
- package/dist/components/renderDrawer/index.d.ts +2 -0
- package/dist/components/renderDrawer/index.d.ts.map +1 -0
- package/dist/components/renderHeader/IRenderHeaderProps.d.ts +9 -0
- package/dist/components/renderHeader/IRenderHeaderProps.d.ts.map +1 -0
- package/dist/components/renderHeader/RenderHeader.d.ts +4 -0
- package/dist/components/renderHeader/RenderHeader.d.ts.map +1 -0
- package/dist/components/renderHeader/index.d.ts +3 -0
- package/dist/components/renderHeader/index.d.ts.map +1 -0
- package/dist/components/renderHeader/useRenderHeaderStyles.d.ts +4 -0
- package/dist/components/renderHeader/useRenderHeaderStyles.d.ts.map +1 -0
- package/dist/components/selectDay/SelectDay.d.ts +7 -0
- package/dist/components/selectDay/SelectDay.d.ts.map +1 -0
- package/dist/components/selectDay/index.d.ts +2 -0
- package/dist/components/selectDay/index.d.ts.map +1 -0
- package/dist/components/selectMonth/CalendarMonth.d.ts +11 -0
- package/dist/components/selectMonth/CalendarMonth.d.ts.map +1 -0
- package/dist/components/selectMonth/SelectMonth.d.ts +7 -0
- package/dist/components/selectMonth/SelectMonth.d.ts.map +1 -0
- package/dist/components/selectMonth/index.d.ts +3 -0
- package/dist/components/selectMonth/index.d.ts.map +1 -0
- package/dist/components/selectView/SelectView.d.ts +12 -0
- package/dist/components/selectView/SelectView.d.ts.map +1 -0
- package/dist/components/selectView/index.d.ts +2 -0
- package/dist/components/selectView/index.d.ts.map +1 -0
- package/dist/components/selectWeek/SelectWeek.d.ts +13 -0
- package/dist/components/selectWeek/SelectWeek.d.ts.map +1 -0
- package/dist/components/selectWeek/index.d.ts +2 -0
- package/dist/components/selectWeek/index.d.ts.map +1 -0
- package/dist/components/shareDialog/ShareDialog.d.ts +15 -0
- package/dist/components/shareDialog/ShareDialog.d.ts.map +1 -0
- package/dist/components/shareDialog/index.d.ts +2 -0
- package/dist/components/shareDialog/index.d.ts.map +1 -0
- package/dist/components/showError/IErrorDisplayProps.d.ts +5 -0
- package/dist/components/showError/IErrorDisplayProps.d.ts.map +1 -0
- package/dist/components/showError/ShowError.d.ts +6 -0
- package/dist/components/showError/ShowError.d.ts.map +1 -0
- package/dist/components/showError/index.d.ts +4 -0
- package/dist/components/showError/index.d.ts.map +1 -0
- package/dist/components/showError/useShowErrorStyles.d.ts +9 -0
- package/dist/components/showError/useShowErrorStyles.d.ts.map +1 -0
- package/dist/components/showMessage/IShowMessage.d.ts +8 -0
- package/dist/components/showMessage/IShowMessage.d.ts.map +1 -0
- package/dist/components/showMessage/ShowMessage.d.ts +4 -0
- package/dist/components/showMessage/ShowMessage.d.ts.map +1 -0
- package/dist/components/showMessage/index.d.ts +4 -0
- package/dist/components/showMessage/index.d.ts.map +1 -0
- package/dist/components/showMessage/useShowMessageStyles.d.ts +2 -0
- package/dist/components/showMessage/useShowMessageStyles.d.ts.map +1 -0
- package/dist/components/stackv2/IStackV2Props.d.ts +78 -0
- package/dist/components/stackv2/IStackV2Props.d.ts.map +1 -0
- package/dist/components/stackv2/StackV2.d.ts +10 -0
- package/dist/components/stackv2/StackV2.d.ts.map +1 -0
- package/dist/components/stackv2/index.d.ts +3 -0
- package/dist/components/stackv2/index.d.ts.map +1 -0
- package/dist/components/svgImages/BusinessReportIcon.d.ts +7 -0
- package/dist/components/svgImages/BusinessReportIcon.d.ts.map +1 -0
- package/dist/components/typographyControl/ITypographyControlProps.d.ts +58 -0
- package/dist/components/typographyControl/ITypographyControlProps.d.ts.map +1 -0
- package/dist/components/typographyControl/TypographyControl.d.ts +8 -0
- package/dist/components/typographyControl/TypographyControl.d.ts.map +1 -0
- package/dist/components/typographyControl/index.d.ts +3 -0
- package/dist/components/typographyControl/index.d.ts.map +1 -0
- package/dist/components/userCard/IUserCardProps.d.ts +43 -0
- package/dist/components/userCard/IUserCardProps.d.ts.map +1 -0
- package/dist/components/userCard/IUserInfo.d.ts +7 -0
- package/dist/components/userCard/IUserInfo.d.ts.map +1 -0
- package/dist/components/userCard/UserCard.d.ts +5 -0
- package/dist/components/userCard/UserCard.d.ts.map +1 -0
- package/dist/components/userCard/constants.d.ts +13 -0
- package/dist/components/userCard/constants.d.ts.map +1 -0
- package/dist/components/userCard/index.d.ts +3 -0
- package/dist/components/userCard/index.d.ts.map +1 -0
- package/dist/components/userCard/useUserCardStyles.d.ts +8 -0
- package/dist/components/userCard/useUserCardStyles.d.ts.map +1 -0
- package/dist/components/userCard/useUserProfile.d.ts +19 -0
- package/dist/components/userCard/useUserProfile.d.ts.map +1 -0
- package/dist/components/videoPlayer/VideoPlayer.d.ts +104 -0
- package/dist/components/videoPlayer/VideoPlayer.d.ts.map +1 -0
- package/dist/components/videoPlayer/index.d.ts +3 -0
- package/dist/components/videoPlayer/index.d.ts.map +1 -0
- package/dist/components/videoPlayer/useVideoStyles.d.ts +8 -0
- package/dist/components/videoPlayer/useVideoStyles.d.ts.map +1 -0
- package/dist/components/worldMap/IWorldMapProps.d.ts +14 -0
- package/dist/components/worldMap/IWorldMapProps.d.ts.map +1 -0
- package/dist/components/worldMap/MapNavigation.d.ts +14 -0
- package/dist/components/worldMap/MapNavigation.d.ts.map +1 -0
- package/dist/components/worldMap/MaplibreWorldMapProps.d.ts +17 -0
- package/dist/components/worldMap/MaplibreWorldMapProps.d.ts.map +1 -0
- package/dist/components/worldMap/TooltipContent.d.ts +8 -0
- package/dist/components/worldMap/TooltipContent.d.ts.map +1 -0
- package/dist/components/worldMap/WorldMap.d.ts +6 -0
- package/dist/components/worldMap/WorldMap.d.ts.map +1 -0
- package/dist/components/worldMap/WorldMapControl.d.ts +10 -0
- package/dist/components/worldMap/WorldMapControl.d.ts.map +1 -0
- package/dist/components/worldMap/data.d.ts +9 -0
- package/dist/components/worldMap/data.d.ts.map +1 -0
- package/dist/components/worldMap/index.d.ts +4 -0
- package/dist/components/worldMap/index.d.ts.map +1 -0
- package/dist/components/worldMap/marker.d.ts +10 -0
- package/dist/components/worldMap/marker.d.ts.map +1 -0
- package/dist/components/worldMap/useCleanMapStyle.d.ts +7 -0
- package/dist/components/worldMap/useCleanMapStyle.d.ts.map +1 -0
- package/dist/components/worldMap/useContentToolTipStyles.d.ts +16 -0
- package/dist/components/worldMap/useContentToolTipStyles.d.ts.map +1 -0
- package/dist/components/worldMap/useGeocodedCountries.d.ts +7 -0
- package/dist/components/worldMap/useGeocodedCountries.d.ts.map +1 -0
- package/dist/constants/EBreakPoints.d.ts +10 -0
- package/dist/constants/EBreakPoints.d.ts.map +1 -0
- package/dist/constants/EMessageTypes.d.ts +6 -0
- package/dist/constants/EMessageTypes.d.ts.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useGraphAPI.d.ts +25 -0
- package/dist/hooks/useGraphAPI.d.ts.map +1 -0
- package/dist/hooks/useIndexedDB.d.ts +19 -0
- package/dist/hooks/useIndexedDB.d.ts.map +1 -0
- package/dist/hooks/useLogging.d.ts +18 -0
- package/dist/hooks/useLogging.d.ts.map +1 -0
- package/dist/hooks/usePolling.d.ts +13 -0
- package/dist/hooks/usePolling.d.ts.map +1 -0
- package/dist/hooks/useTimeZone.d.ts +12 -0
- package/dist/hooks/useTimeZone.d.ts.map +1 -0
- package/dist/hooks/useTimeZoneHelper.d.ts +15 -0
- package/dist/hooks/useTimeZoneHelper.d.ts.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +185 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +27188 -0
- package/dist/index.mjs.map +1 -0
- package/dist/models/IAppCardContainer.d.ts +18 -0
- package/dist/models/IAppCardContainer.d.ts.map +1 -0
- package/dist/providers.d.ts +1 -0
- package/dist/providers.js +2 -0
- package/dist/providers.js.map +1 -0
- package/dist/providers.mjs +226 -0
- package/dist/providers.mjs.map +1 -0
- package/dist/types/TBaseSpacing.d.ts +2 -0
- package/dist/types/TBaseSpacing.d.ts.map +1 -0
- package/dist/types/THorizontalSpacing.d.ts +4 -0
- package/dist/types/THorizontalSpacing.d.ts.map +1 -0
- package/dist/types/THorizontalSpacingBreakPoints.d.ts +10 -0
- package/dist/types/THorizontalSpacingBreakPoints.d.ts.map +1 -0
- package/dist/types/TLayoutBreakPoints.d.ts +8 -0
- package/dist/types/TLayoutBreakPoints.d.ts.map +1 -0
- package/dist/types/TPaddingBreakPoints.d.ts +10 -0
- package/dist/types/TPaddingBreakPoints.d.ts.map +1 -0
- package/dist/types/TPading.d.ts +4 -0
- package/dist/types/TPading.d.ts.map +1 -0
- package/dist/types/TVerticalSpacing.d.ts +4 -0
- package/dist/types/TVerticalSpacing.d.ts.map +1 -0
- package/dist/types/TVerticalSpacingBreakPoints.d.ts +10 -0
- package/dist/types/TVerticalSpacingBreakPoints.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/lodash.d.ts +59 -0
- package/dist/utils/lodash.d.ts.map +1 -0
- package/dist/utils/useComponentsUtils.d.ts +19 -0
- package/dist/utils/useComponentsUtils.d.ts.map +1 -0
- package/dist/utils/useDateUtils.d.ts +6 -0
- package/dist/utils/useDateUtils.d.ts.map +1 -0
- package/dist/utils/useImageUtils.d.ts +7 -0
- package/dist/utils/useImageUtils.d.ts.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/constants/EBreakPoints.ts","../src/constants/EMessageTypes.ts","../src/components/Provider/UniversalProvider.tsx","../src/hooks/useLogging.ts","../src/hooks/useIndexedDB.ts","../src/hooks/usePolling.ts","../src/utils/useComponentsUtils.ts","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js","../node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/de/_lib/localize/index.js","../node_modules/date-fns/esm/locale/de/index.js","../node_modules/date-fns/esm/locale/de/_lib/match/index.js","../node_modules/date-fns/esm/locale/es/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/es/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/es/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/es/index.js","../node_modules/date-fns/esm/locale/es/_lib/localize/index.js","../node_modules/date-fns/esm/locale/es/_lib/match/index.js","../node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/fr/index.js","../node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","../node_modules/date-fns/esm/locale/fr/_lib/match/index.js","../node_modules/date-fns/esm/locale/it/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/it/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/it/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/it/index.js","../node_modules/date-fns/esm/locale/it/_lib/localize/index.js","../node_modules/date-fns/esm/locale/it/_lib/match/index.js","../node_modules/date-fns/esm/locale/ja/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/ja/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/ja/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/ja/index.js","../node_modules/date-fns/esm/locale/ja/_lib/localize/index.js","../node_modules/date-fns/esm/locale/ja/_lib/match/index.js","../node_modules/date-fns/esm/locale/ko/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/ko/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/ko/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/ko/index.js","../node_modules/date-fns/esm/locale/ko/_lib/localize/index.js","../node_modules/date-fns/esm/locale/ko/_lib/match/index.js","../node_modules/date-fns/esm/locale/pt/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/pt/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/pt/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/pt/index.js","../node_modules/date-fns/esm/locale/pt/_lib/localize/index.js","../node_modules/date-fns/esm/locale/pt/_lib/match/index.js","../node_modules/date-fns/esm/locale/zh-CN/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/zh-CN/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/zh-CN/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/zh-CN/_lib/localize/index.js","../node_modules/date-fns/esm/locale/zh-CN/_lib/match/index.js","../src/hooks/useTimeZoneHelper.ts","../node_modules/date-fns/esm/locale/zh-CN/index.js","../src/utils/useImageUtils.ts","../src/utils/lodash.ts","../src/components/Card/useCardStyles.tsx","../src/components/Card/Card.tsx","../src/components/Grid/useGridStyles.tsx","../src/components/Layout/useLayoutStyles.tsx","../src/components/Layout/Layout.tsx","../src/components/Space/useSpaceStyles.tsx","../src/components/Stack/useStackStyles.tsx","../src/components/Stack/Stack.tsx","../src/components/Center/useCenterStyles.tsx","../src/components/Center/Center.tsx","../src/components/Container/useContainerStyles.tsx","../src/components/Carousel/useCarouselButton.tsx","../src/components/Carousel/useCarouselStyles.ts","../src/components/Carousel/useCarouselStylesMain.tsx","../src/components/Carousel/Carousel.tsx","../src/components/Popup/Popup.tsx","../src/components/stackv2/StackV2.tsx","../src/components/RenderLabel/useRenderLabelStylesStyles.ts","../src/components/RenderLabel/RenderLabel.tsx","../src/components/RenderSpninner/RenderSpinner.tsx","../src/components/typographyControl/TypographyControl.tsx","../src/components/buttonMenu/ButtonMenu.tsx","../src/components/breadcrumb/useBreadcrumStyles.ts","../src/components/breadcrumb/OverflowMenu.tsx","../src/components/calendarControl/hooks/useUtils.ts","../src/components/calendarControl/EventDetailsPopover.tsx","../src/components/calendarControl/hooks/useCalendarStyles.ts","../src/components/calendarControl/RenderEventToDayOfMonth.tsx","../src/components/calendarControl/Day.tsx","../src/components/calendarControl/hooks/useWeekViewStyles.ts","../src/components/calendarControl/EventPopoverCard.tsx","../src/components/calendarControl/EventRender.tsx","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/components/calendarControl/hooks/useCalendar.ts","../src/components/calendarControl/hooks/useDayViewStyles.ts","../src/components/calendarControl/DayView.tsx","../src/components/calendarControl/models/ECalendarViews.ts","../src/components/calendarControl/SelectCalendarView.tsx","../src/components/selectDay/SelectDay.tsx","../src/components/selectMonth/CalendarMonth.tsx","../src/components/selectMonth/SelectMonth.tsx","../src/components/selectWeek/SelectWeek.tsx","../src/components/calendarControl/Toolbar.tsx","../src/components/calendarControl/WeekView.tsx","../src/components/calendarControl/CalendarControl.tsx","../src/components/dataGrid/stack/Stack.tsx","../src/components/dataGrid/useDataGridStyles.tsx","../src/components/DataGridV2/DataGridV2.tsx","../src/components/renderDialog/RenderDialog.tsx","../src/components/renderHeader/useRenderHeaderStyles.ts","../src/components/showError/useShowErrorStyles.tsx","../src/components/showMessage/useShowMessageStyles.ts","../src/components/showMessage/ShowMessage.tsx","../src/components/customControlBar/CustomControlBar.tsx","../src/components/genericOverFlowMenu/GenericOverFlowMenu.tsx","../src/components/videoPlayer/useVideoStyles.ts","../src/components/adaptiveCardHost/models/AdaptiveCardHostThemeType.ts","../src/components/adaptiveCardHost/fluentUI/Styles.ts","../src/components/adaptiveCardHost/fluentUI/HostConfig.ts","../src/components/adaptiveCardHost/fluentUI/HostCapability.tsx","../src/components/adaptiveCardHost/AdaptiveCardHost.HostConfig.ts","../node_modules/adaptivecards/lib/enums.js","../node_modules/adaptivecards/lib/shared.js","../node_modules/adaptivecards/lib/utils.js","../node_modules/adaptivecards/lib/strings.js","../node_modules/adaptivecards/lib/serialization.js","../node_modules/adaptivecards/lib/host-capabilities.js","../node_modules/adaptivecards/lib/host-config.js","../node_modules/adaptivecards/lib/text-formatters.js","../node_modules/adaptivecards/lib/card-object.js","../node_modules/adaptivecards/lib/registry.js","../node_modules/adaptivecards/lib/controls/constants.js","../node_modules/adaptivecards/lib/controls/menu-item.js","../node_modules/adaptivecards/lib/controls/collection.js","../node_modules/adaptivecards/lib/controls/popup-control.js","../node_modules/adaptivecards/lib/controls/popup-menu.js","../node_modules/adaptivecards/lib/controls/index.js","../node_modules/adaptivecards/lib/card-elements.js","../src/components/adaptiveCardHost/fluentUI/Actions.tsx","../src/components/adaptiveCardHost/fluentUI/internalRender.tsx","../src/components/adaptiveCardHost/fluentUI/FluentUIChoiceSetInput.tsx","../src/components/adaptiveCardHost/fluentUI/FluentUIDateInput.tsx","../src/components/adaptiveCardHost/fluentUI/FluentUINumberInput.tsx","../src/components/adaptiveCardHost/fluentUI/IconButton.tsx","../src/components/adaptiveCardHost/fluentUI/inlineButtonRootStyle.tsx","../src/components/adaptiveCardHost/fluentUI/FluentUITextInput.tsx","../src/components/adaptiveCardHost/fluentUI/FluentUITimeInput.tsx","../src/components/adaptiveCardHost/fluentUI/FluentUIToggleInput.tsx","../src/components/adaptiveCardHost/AdaptiveCardHost.tsx","../../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../node_modules/stylis/src/Enum.js","../../node_modules/stylis/src/Utility.js","../../node_modules/stylis/src/Tokenizer.js","../../node_modules/stylis/src/Parser.js","../../node_modules/stylis/src/Serializer.js","../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../node_modules/stylis/src/Middleware.js","../../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../../node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js","../src/components/AISearchControl/AISearchIcon.tsx","../src/components/AISearchControl/AISearchIconExample.tsx","../src/components/iconButton/IconButton.tsx","../src/components/aiAssistant/ChatInput.tsx","../src/components/aiAssistant/useChatInputStyles.tsx","../src/components/mensions/useMensionsStyles.ts","../src/components/mensions/Mensions.tsx","../src/components/aiAssistant/useChatInputWithMensionsStyles.tsx","../src/components/aiAssistant/ChatInputWithMensions.tsx","../src/components/aiAssistant/LoadingDots.tsx","../src/components/aiAssistant/useLoadingDotsStyles.ts","../src/components/aiAssistant/chatReducer.tsx","../src/components/aiAssistant/AIAssistant.tsx","../src/components/LivePersona/LivePersona.tsx","../src/components/userCard/useUserProfile.tsx","../src/components/userCard/UserCard.tsx","../src/components/userCard/useUserCardStyles.ts","../src/components/userCard/constants.ts","../src/components/ListItemActivityMessage/ListItemActivityMessage.tsx","../src/components/svgImages/BusinessReportIcon.tsx","../src/components/appDashboard/NoDashboards.tsx","../src/components/appDashboard/selectZoom/SelectZoom.tsx","../src/components/aiAssistant/useAIAssistantStyles.ts","../src/components/aiAssistant/useStreamRequest.ts","../src/components/AISearchControl/AISearchControl.tsx","../src/components/AISearchControl/useAISearchControlStyles.ts","../src/components/adaptiveCardHost/AdaptiveCardHost.Utilities.ts","../src/components/adaptiveCardHost/fluentUI/Elements.tsx","../src/components/appDashboard/AppDashboard.tsx","../src/components/appDashboard/useDashboardStyles.ts","../src/components/AspectRatio/AspectRatio.tsx","../src/components/breadcrumb/Breadcrumb.tsx","../src/components/aiAssistant/ChatInputWithMensionsV1.tsx","../src/components/Container/Container.tsx","../src/components/dataGrid/DataGrid.tsx","../src/components/dropDownField/DropDownField.tsx","../src/components/Grid/Grid.tsx","../src/components/Layout/LayoutItem.tsx","../src/components/ListItemActivityMessage/useSharePointActivities.ts","../src/components/mensions/MensionsExample.tsx","../src/components/renderAdaptiveCard/RenderAdaptiveCard.tsx","../src/components/renderDrawer/RenderDrawer.tsx","../src/components/renderHeader/RenderHeader.tsx","../src/components/selectView/SelectView.tsx","../src/components/shareDialog/ShareDialog.tsx","../src/components/showError/ShowError.tsx","../src/components/Space/SPace.tsx","../src/components/Stack/StackItem.tsx","../src/components/StackedUsers/StackedUsers.tsx","../src/components/StackedUsers/useStackedUsersStyles.ts","../src/components/videoPlayer/VideoPlayer.tsx","../src/components/AspectRatio/useAspectRatioStyles.tsx","../src/utils/useDateUtils.ts","../src/hooks/useGraphAPI.ts","../src/components/aiAssistant/useStyles.tsx","../src/hooks/useTimeZone.ts"],"sourcesContent":["export enum EBreakPoints { \n XXXLarge = 1900,\n ExtraExtraLarge = 1400,\n ExtraLarge = 1200,\n Large = 992,\n Medium = 768,\n Small = 576,\n ExtraSmall = 320\n\n }\n\n","export enum EMessageType {\n INFO = 'info',\n ERROR = 'error',\n SUCCESS = 'success',\n}\n","import React, { createContext, useContext, ReactNode } from 'react';\nimport { IApplicationContext } from '../../abstractions';\n\nconst ApplicationContext = createContext<IApplicationContext | undefined>(undefined);\n\nexport interface IUniversalProviderProps {\n /**\n * Application context containing providers and page context\n */\n context?: IApplicationContext;\n \n /**\n * Child components\n */\n children: ReactNode;\n}\n\n/**\n * Universal Provider component\n * Wraps your application to provide context to all controls\n * \n * @example\n * ```tsx\n * import { UniversalProvider } from '@spteck/react-controls-universal';\n * \n * function App() {\n * return (\n * <UniversalProvider context={myContext}>\n * <YourComponents />\n * </UniversalProvider>\n * );\n * }\n * ```\n */\nexport const UniversalProvider: React.FC<IUniversalProviderProps> = ({ \n context, \n children \n}) => {\n return (\n <ApplicationContext.Provider value={context}>\n {children}\n </ApplicationContext.Provider>\n );\n};\n\n/**\n * Hook to access the application context\n * \n * @returns The application context or undefined if not within a UniversalProvider\n * \n * @example\n * ```tsx\n * const context = useApplicationContext();\n * const user = context?.pageContext?.user;\n * ```\n */\nexport const useApplicationContext = (): IApplicationContext | undefined => {\n return useContext(ApplicationContext);\n};\n","import { useApplicationContext } from '../components/Provider';\nimport { LogLevel, ErrorType } from '../abstractions';\n\n/**\n * Hook for logging operations\n * Uses the logging provider from the application context\n * \n * @returns Logging functions\n */\nexport const useLogging = () => {\n const context = useApplicationContext();\n const logger = context?.loggingProvider;\n\n const log = (message: string, level: LogLevel = LogLevel.Info, data?: any) => {\n if (logger) {\n logger.log(message, level, data);\n } else {\n console.log(message, data);\n }\n };\n\n const error = (message: string, err?: Error, errorType?: ErrorType) => {\n if (logger) {\n logger.error(message, err, errorType);\n } else {\n console.error(message, err, errorType);\n }\n };\n\n const warn = (message: string, data?: any) => {\n if (logger) {\n logger.warn(message, data);\n } else {\n console.warn(message, data);\n }\n };\n\n const info = (message: string, data?: any) => {\n if (logger) {\n logger.info(message, data);\n } else {\n console.info(message, data);\n }\n };\n\n const verbose = (message: string, data?: any) => {\n if (logger) {\n logger.verbose(message, data);\n } else {\n console.debug(message, data);\n }\n };\n\n return {\n log,\n error,\n warn,\n info,\n verbose,\n LogLevel,\n ErrorType,\n };\n};\n","import { useState, useEffect, useCallback } from 'react';\nimport { useApplicationContext } from '../components/Provider';\n\n/**\n * Hook for IndexedDB or generic storage operations\n * Uses the storage provider from the application context\n */\nexport const useIndexedDBCache = <T = any>() => {\n const context = useApplicationContext();\n const storage = context?.storageProvider;\n\n const getCachedData = useCallback(async (key: string): Promise<T | undefined> => {\n if (!storage) {\n console.warn('Storage provider not available');\n return undefined;\n }\n\n try {\n return await storage.get<T>(key);\n } catch (error) {\n console.error('Error reading from cache:', error);\n return undefined;\n }\n }, [storage]);\n\n const setCachedData = useCallback(async (\n key: string, \n value: T, \n expirationInMinutes?: number\n ): Promise<void> => {\n if (!storage) {\n console.warn('Storage provider not available');\n return;\n }\n\n try {\n await storage.set(key, value, expirationInMinutes);\n } catch (error) {\n console.error('Error writing to cache:', error);\n }\n }, [storage]);\n\n const removeCachedData = useCallback(async (key: string): Promise<void> => {\n if (!storage) {\n console.warn('Storage provider not available');\n return;\n }\n\n try {\n await storage.remove(key);\n } catch (error) {\n console.error('Error removing from cache:', error);\n }\n }, [storage]);\n\n const clearCache = useCallback(async (): Promise<void> => {\n if (!storage) {\n console.warn('Storage provider not available');\n return;\n }\n\n try {\n await storage.clear();\n } catch (error) {\n console.error('Error clearing cache:', error);\n }\n }, [storage]);\n\n return {\n getCachedData,\n setCachedData,\n removeCachedData,\n clearCache,\n };\n};\n\n/**\n * Hook for caching data with automatic retrieval and storage\n */\nexport const useCachedData = <T = any>(\n key: string,\n fetcher: () => Promise<T>,\n expirationInMinutes?: number\n) => {\n const [data, setData] = useState<T | undefined>(undefined);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | undefined>(undefined);\n const { getCachedData, setCachedData } = useIndexedDBCache<T>();\n\n useEffect(() => {\n let mounted = true;\n\n const loadData = async () => {\n try {\n // Try to get from cache first\n const cached = await getCachedData(key);\n \n if (cached && mounted) {\n setData(cached);\n setLoading(false);\n return;\n }\n\n // If not in cache, fetch fresh data\n const freshData = await fetcher();\n \n if (mounted) {\n setData(freshData);\n await setCachedData(key, freshData, expirationInMinutes);\n }\n } catch (err) {\n if (mounted) {\n setError(err as Error);\n }\n } finally {\n if (mounted) {\n setLoading(false);\n }\n }\n };\n\n loadData();\n\n return () => {\n mounted = false;\n };\n }, [key]);\n\n return { data, loading, error };\n};\n","import { useState, useEffect, useRef, useCallback } from 'react';\n\n/**\n * Hook for polling data at regular intervals\n * \n * @param callback - Function to call on each poll\n * @param interval - Polling interval in milliseconds\n * @param immediate - Whether to call immediately on mount\n */\nexport const usePolling = (\n callback: () => void | Promise<void>,\n interval: number,\n immediate: boolean = true\n) => {\n const [isPolling, setIsPolling] = useState(false);\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\n const callbackRef = useRef(callback);\n\n // Update callback ref when callback changes\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const startPolling = useCallback(() => {\n if (intervalRef.current) {\n return; // Already polling\n }\n\n setIsPolling(true);\n\n if (immediate) {\n callbackRef.current();\n }\n\n intervalRef.current = setInterval(() => {\n callbackRef.current();\n }, interval);\n }, [interval, immediate]);\n\n const stopPolling = useCallback(() => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n setIsPolling(false);\n }\n }, []);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n stopPolling();\n };\n }, [stopPolling]);\n\n return {\n startPolling,\n stopPolling,\n isPolling,\n };\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\n\nimport {\n THorizontalSpacing,\n TPading,\n TVerticalSpacing,\n} from '../types';\n\nimport { EBreakPoints } from '../constants';\nimport {\n IBaseProps,\n} from '../components/baseComponentProps/IBaseProps';\nimport {\n tokens,\n} from '@fluentui/react-components';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\ninterface IUseUtils {\n getCacheKey: (key: string, uniqueId: string) => string;\n validateUrl: (url: string) => boolean;\n trimBeginDoubleSlash: (value: string) => string;\n \n isValidGUID: (str: string) => boolean;\n getPageNameFromUrl: (url: string) => string;\n getSPSiteAbsoluteUrl: (absolutefileUrl: string) => string;\n getFileServerRelativeUrlFromAbsoluteUrl: (absoluteFileUrl: string) => string;\n encodeRestUrl: (query: string) => string;\n getSpacing: <T>(value: string | T, containerWidth: number, type: \"vertical\" | \"horizontal\" | \"padding\") => string;\n getCurrentDevice: (containerWidth: number) => string;\n getBaseStyles: (baseProps: IBaseProps, containerWidth: number, containerHeight: number) => React.CSSProperties;\n getLayoutBreakPoint: <T>(value: string | T, containerWidth: number) => string;\n}\n\nexport const useComponentUtils = (): IUseUtils => {\n const getCacheKey = React.useCallback((key: string, uniqueId: string) => {\n return `${key}${uniqueId}`;\n }, []);\n\n const validateUrl = React.useCallback((url: string): boolean => {\n if (!url) {\n return false;\n }\n try {\n const urlValid = new URL(url);\n return !!urlValid;\n } catch (e) {\n return false;\n }\n }, []);\n\n const trimBeginDoubleSlash = (value: string) => {\n if (value.charAt(0) === \"/\" && value.charAt(1) === \"/\") {\n return value.substring(1, value.length);\n }\n return value;\n };\n\n \n\n const isValidGUID = React.useCallback((str: string): boolean => {\n const regex = new RegExp(/^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$/);\n if (!str) {\n return false;\n }\n\n if (regex.test(str) === true) {\n return true;\n } else {\n return false;\n }\n }, []);\n\n const getPageNameFromUrl = React.useCallback((url: string): string => {\n if (!url) {\n return \"\";\n }\n const urlParts = url.split(\"/\");\n return urlParts[urlParts.length - 1];\n }, []);\n\n const getSPSiteAbsoluteUrl = React.useCallback((absolutefileUrl: string): string => {\n const hostname = window.location.hostname;\n const rootSiteUrl = `https://${hostname}`;\n if (\n absolutefileUrl.indexOf(`${rootSiteUrl}/sites/`) > -1 ||\n absolutefileUrl.indexOf(`${rootSiteUrl}/teams/`) > -1\n ) {\n const fileServerRelativeUrl = absolutefileUrl.split(hostname)[1];\n // Split server relative URL by '/' to obtain web name\n const webName = fileServerRelativeUrl.split(\"/\")[2];\n\n let webAbsoluteUrl = `https://${hostname}/sites/${webName}`;\n if (absolutefileUrl.indexOf(`${rootSiteUrl}/teams/`) > -1) {\n webAbsoluteUrl = `https://${hostname}/teams/${webName}`;\n }\n return webAbsoluteUrl;\n }\n return rootSiteUrl;\n }, []);\n\n const getFileServerRelativeUrlFromAbsoluteUrl = React.useCallback((absoluteFileUrl: string): string => {\n let fileServerRelativeUrl = absoluteFileUrl.split(window.location.hostname)[1];\n fileServerRelativeUrl = trimBeginDoubleSlash(fileServerRelativeUrl);\n return fileServerRelativeUrl;\n }, []);\n\n const encodeRestUrl = React.useCallback((query: string) => {\n return encodeURIComponent(query.replace(/[%]/g, \"%25\"))\n .replace(/[']/g, \"%27%27\")\n .replace(/[&]/g, \"%26\")\n .replace(/[#]/g, \"%23\")\n .replace(/[?]/g, \"%3F\")\n .replace(/[/]/g, \"%2F\")\n .replace(/[+]/g, \"%2B\");\n }, []);\n\n const checkValueBreakPoint = React.useCallback(<T>(value: string | T): boolean => {\n if (value === null || value === undefined) { return false}\n return (\n Object.prototype.hasOwnProperty.call(value, \"extraSmall\") ||\n Object.prototype.hasOwnProperty.call(value, \"small\") ||\n Object.prototype.hasOwnProperty.call(value, \"medium\") ||\n Object.prototype.hasOwnProperty.call(value, \"large\") ||\n Object.prototype.hasOwnProperty.call(value, \"extraLarge\")\n );\n }, []);\n\n const getProperty = React.useCallback(<T, K extends keyof T>(obj: T, key: K): T[K] => {\n return obj[key.toString().toLowerCase() as K];\n }, []);\n\n const getCurrentDevice = React.useCallback((containerWidth: number): string => {\n if (containerWidth >= EBreakPoints.XXXLarge) return 'XXXLarge';\n if (containerWidth >= EBreakPoints.ExtraExtraLarge) return 'ExtraExtraLarge';\n if (containerWidth >= EBreakPoints.ExtraLarge) return 'ExtraLarge';\n if (containerWidth >= Number(EBreakPoints.Large)) return 'Large';\n if (containerWidth >= Number(EBreakPoints.Medium)) return 'Medium';\n if (containerWidth >= Number(EBreakPoints.Small)) return 'Small';\n return 'ExtraSmall';\n }, []);\n\n const getSpacingBreakPoint = React.useCallback(\n <T>(value: string | T, containerWidth: number): string => {\n const device = getCurrentDevice(containerWidth);\n const breakPoints: Record<string, string> = {\n ExtraSmall: \"xs\",\n Small: \"s\",\n Medium: \"m\",\n Large: \"l\",\n ExtraLarge: \"xl\",\n ExtraExtraLarge: \"xxl\",\n };\n\n let newValue = value;\n if (checkValueBreakPoint<T>(value as string | T)) {\n newValue =\n (getProperty<T, keyof T >(value as T, (device as keyof T) ?? \"Medium\") as unknown as string) || breakPoints[device];\n }\n return newValue as string;\n },\n [getCurrentDevice, checkValueBreakPoint, getProperty]\n );\n\n // \"none\" | \"xxs\" | \"xs\" | \"sNudge\" | \"s\" | \"mNudge\" | \"m\" | \"l\" | \"xl\" | \"xxl\" | \"xxxl\"\n const getSpacing = React.useCallback(\n <T>(value: string | T, containerWidth: number, type: \"vertical\" | \"horizontal\" | \"padding\"): string => {\n if (!value) return \"none\";\n \n // Check if value is in pixel format like '20px' or percentage format like '20%'\n if (typeof value === \"string\" && (/^\\d+px$/.test(value) || /^\\d+%$/.test(value))) {\n return value; // Return the same value for all sides\n }\n \n const newType = type;\n const spacingTokens: Record<string, string> = {\n padding: \"spacingHorizontal\",\n vertical: \"spacingVertical\",\n horizontal: \"spacingHorizontal\",\n };\n \n const newValue = getSpacingBreakPoint<T>(value, containerWidth);\n \n switch (newValue) {\n case \"none\":\n return tokens[`${spacingTokens[newType]}None` as keyof typeof tokens];\n case \"xxs\":\n return tokens[`${spacingTokens[newType]}XXS` as keyof typeof tokens];\n case \"xs\":\n return tokens[`${spacingTokens[newType]}XS` as keyof typeof tokens];\n case \"sNudge\":\n return tokens[`${spacingTokens[newType]}SNudge` as keyof typeof tokens];\n case \"s\":\n return tokens[`${spacingTokens[newType]}S` as keyof typeof tokens];\n case \"mNudge\":\n return tokens[`${spacingTokens[newType]}MNudge` as keyof typeof tokens];\n case \"m\":\n return tokens[`${spacingTokens[newType]}M` as keyof typeof tokens];\n case \"l\":\n return tokens[`${spacingTokens[newType]}L` as keyof typeof tokens];\n case \"xl\":\n return tokens[`${spacingTokens[newType]}XL` as keyof typeof tokens];\n case \"xxl\":\n return tokens[`${spacingTokens[newType]}XXL` as keyof typeof tokens];\n case \"xxxl\":\n return tokens[`${spacingTokens[newType]}XXXL` as keyof typeof tokens];\n default:\n return tokens[`${spacingTokens[newType]}M` as keyof typeof tokens];\n }\n },\n [getSpacingBreakPoint]\n );\n\n const getBaseStyles = React.useCallback((baseProps:IBaseProps, containerWidth: number, _containerHeight: number): React.CSSProperties => {\n const {\n verticalSpacing,\n horizontalSpacing,\n paddingLeft,\n paddingRight,\n paddingBottom,\n background,\n width,\n maxWidth,\n height,\n maxHeight,\n marginLeft,\n marginRight,\n marginTop,\n marginBottom,\n paddingTop,\n padding,\n margin,\n styles,\n } = baseProps;\n \n\n let wpaddingTop = getSpacing<TPading>(paddingTop as string, containerWidth, \"padding\");\n let wpaddingLeft = getSpacing<TPading>(paddingLeft as string, containerWidth, \"padding\");\n let wpaddingRight = getSpacing<TPading>(paddingRight as string, containerWidth, \"padding\");\n let wpaddingBottom = getSpacing<TPading>(paddingBottom as string, containerWidth, \"padding\");\n const wpadding = getSpacing<TPading>(padding as string, containerWidth, \"padding\");\n\n let wmarginLeft = getSpacing<TPading>(marginLeft as string, containerWidth, \"padding\");\n let wmarginRight = getSpacing<TPading>(marginRight as string, containerWidth, \"padding\");\n let wmarginTop = getSpacing<TPading>(marginTop as string, containerWidth, \"padding\");\n let wmarginBottom = getSpacing<TPading>(marginBottom as string, containerWidth, \"padding\");\n\n const wmargin = getSpacing<TPading>(margin as string, containerWidth, \"padding\");\n\n if (wpadding) {\n wpaddingTop = wpaddingTop === 'none' ? wpadding : wpaddingTop;\n wpaddingLeft = wpaddingLeft === 'none' ? wpadding : wpaddingLeft;\n wpaddingRight = wpaddingRight === 'none' ? wpadding : wpaddingRight;\n wpaddingBottom = wpaddingBottom === 'none' ? wpadding : wpaddingBottom;\n }\n\n if (wmargin) {\n wmarginLeft = wmarginLeft === 'none' ? wmargin : wmarginLeft;\n wmarginRight = wmarginRight === 'none' ? wmargin : wmarginRight;\n wmarginTop = wmarginTop === 'none' ? wmargin : wmarginTop; \n wmarginBottom = wmarginBottom === 'none' ? wmargin : wmarginBottom;\n }\n\n const wgapRow = getSpacing<TVerticalSpacing>(verticalSpacing as string, containerWidth, \"vertical\");\n const wgapCol = getSpacing<THorizontalSpacing>(horizontalSpacing as string, containerWidth, \"horizontal\");\n\n const wgap = `${wgapRow} ${wgapCol}`;\n return {\n ...styles,\n gap: wgap,\n paddingTop: wpaddingTop,\n paddingLeft: wpaddingLeft,\n paddingRight: wpaddingRight,\n paddingBottom: wpaddingBottom,\n marginLeft: wmarginLeft,\n marginRight: wmarginRight,\n marginTop: wmarginTop,\n marginBottom: wmarginBottom,\n background: background,\n width: width ?? undefined,\n height: height ?? undefined,\n maxWidth: maxWidth ?? undefined,\n maxHeight: maxHeight ?? undefined,\n overflow: \"auto\",\n \n };\n }, [getSpacing]);\n\n\n const getLayoutBreakPoint = React.useCallback(\n <T>(value: string | T, containerWidth: number): string => {\n const device = getCurrentDevice(containerWidth);\n let newValue = value;\n if (checkValueBreakPoint<T>(value as string | T)) {\n newValue =\n (getProperty<T, keyof T>(value as T, (device as keyof T) ?? \"Medium\") as unknown as string) || \"\";\n }\n return newValue as string;\n },\n [getCurrentDevice, checkValueBreakPoint, getProperty]\n );\n\n return {\n getCacheKey,\n validateUrl,\n trimBeginDoubleSlash,\n isValidGUID,\n getPageNameFromUrl,\n getSPSiteAbsoluteUrl,\n getFileServerRelativeUrlFromAbsoluteUrl,\n encodeRestUrl,\n getSpacing,\n getCurrentDevice,\n getBaseStyles,\n getLayoutBreakPoint,\n };\n}; // ... }\n","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nexport default function isSameUTCWeek(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var dateLeftStartOfWeek = startOfUTCWeek(dirtyDateLeft, options);\n var dateRightStartOfWeek = startOfUTCWeek(dirtyDateRight, options);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n },\n withPreposition: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n }\n },\n xSeconds: {\n standalone: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n },\n withPreposition: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n }\n },\n halfAMinute: {\n standalone: 'halbe Minute',\n withPreposition: 'halben Minute'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n },\n withPreposition: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n }\n },\n xMinutes: {\n standalone: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n },\n withPreposition: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n },\n withPreposition: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n }\n },\n xHours: {\n standalone: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n },\n withPreposition: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n }\n },\n xDays: {\n standalone: {\n one: '1 Tag',\n other: '{{count}} Tage'\n },\n withPreposition: {\n one: '1 Tag',\n other: '{{count}} Tagen'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n },\n withPreposition: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n }\n },\n xWeeks: {\n standalone: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n },\n withPreposition: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monate'\n },\n withPreposition: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monaten'\n }\n },\n xMonths: {\n standalone: {\n one: '1 Monat',\n other: '{{count}} Monate'\n },\n withPreposition: {\n one: '1 Monat',\n other: '{{count}} Monaten'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahre'\n },\n withPreposition: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahren'\n }\n },\n xYears: {\n standalone: {\n one: '1 Jahr',\n other: '{{count}} Jahre'\n },\n withPreposition: {\n one: '1 Jahr',\n other: '{{count}} Jahren'\n }\n },\n overXYears: {\n standalone: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahre'\n },\n withPreposition: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahren'\n }\n },\n almostXYears: {\n standalone: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahre'\n },\n withPreposition: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahren'\n }\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = options !== null && options !== void 0 && options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return 'vor ' + result;\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n // Montag, 7. Januar 2018\n long: 'do MMMM y',\n // 7. Januar 2018\n medium: 'do MMM y',\n // 7. Jan. 2018\n short: 'dd.MM.y' // 07.01.2018\n};\n\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n};\n\n// Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n};\n\n// https://st.unicode.org/cldr-apps/v#/de/Gregorian/\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/de.html#1881\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Asia [@asia-t]{@link https://github.com/asia-t}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author RomanErnst [@pex]{@link https://github.com/pex}\n * @author Philipp Keck [@Philipp91]{@link https://github.com/Philipp91}\n */\nvar locale = {\n code: 'de',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i\n};\nvar parseEraPatterns = {\n any: [/^v/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^j[aä]/i, /^f/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i\n};\nvar parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated: /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i,\n // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i // will never be matched. Night is matched by `pm`\n }\n};\n\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'menos de un segundo',\n other: 'menos de {{count}} segundos'\n },\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundos'\n },\n halfAMinute: 'medio minuto',\n lessThanXMinutes: {\n one: 'menos de un minuto',\n other: 'menos de {{count}} minutos'\n },\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutos'\n },\n aboutXHours: {\n one: 'alrededor de 1 hora',\n other: 'alrededor de {{count}} horas'\n },\n xHours: {\n one: '1 hora',\n other: '{{count}} horas'\n },\n xDays: {\n one: '1 día',\n other: '{{count}} días'\n },\n aboutXWeeks: {\n one: 'alrededor de 1 semana',\n other: 'alrededor de {{count}} semanas'\n },\n xWeeks: {\n one: '1 semana',\n other: '{{count}} semanas'\n },\n aboutXMonths: {\n one: 'alrededor de 1 mes',\n other: 'alrededor de {{count}} meses'\n },\n xMonths: {\n one: '1 mes',\n other: '{{count}} meses'\n },\n aboutXYears: {\n one: 'alrededor de 1 año',\n other: 'alrededor de {{count}} años'\n },\n xYears: {\n one: '1 año',\n other: '{{count}} años'\n },\n overXYears: {\n one: 'más de 1 año',\n other: 'más de {{count}} años'\n },\n almostXYears: {\n one: 'casi 1 año',\n other: 'casi {{count}} años'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'en ' + result;\n } else {\n return 'hace ' + result;\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'a las' {{time}}\",\n long: \"{{date}} 'a las' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'el' eeee 'pasado a la' p\",\n yesterday: \"'ayer a la' p\",\n today: \"'hoy a la' p\",\n tomorrow: \"'mañana a la' p\",\n nextWeek: \"eeee 'a la' p\",\n other: 'P'\n};\nvar formatRelativeLocalePlural = {\n lastWeek: \"'el' eeee 'pasado a las' p\",\n yesterday: \"'ayer a las' p\",\n today: \"'hoy a las' p\",\n tomorrow: \"'mañana a las' p\",\n nextWeek: \"eeee 'a las' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, date, _baseDate, _options) {\n if (date.getUTCHours() !== 1) {\n return formatRelativeLocalePlural[token];\n } else {\n return formatRelativeLocale[token];\n }\n};\nexport default formatRelative;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Spanish locale.\n * @language Spanish\n * @iso-639-2 spa\n * @author Juan Angosto [@juanangosto]{@link https://github.com/juanangosto}\n * @author Guillermo Grau [@guigrpa]{@link https://github.com/guigrpa}\n * @author Fernando Agüero [@fjaguero]{@link https://github.com/fjaguero}\n * @author Gastón Haro [@harogaston]{@link https://github.com/harogaston}\n * @author Yago Carballo [@YagoCarballo]{@link https://github.com/YagoCarballo}\n */\nvar locale = {\n code: 'es',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['AC', 'DC'],\n abbreviated: ['AC', 'DC'],\n wide: ['antes de cristo', 'después de cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['e', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],\n wide: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre']\n};\nvar dayValues = {\n narrow: ['d', 'l', 'm', 'm', 'j', 'v', 's'],\n short: ['do', 'lu', 'ma', 'mi', 'ju', 'vi', 'sá'],\n abbreviated: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],\n wide: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'mañana',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noche'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'mañana',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noche'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'mañana',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noche'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'de la mañana',\n afternoon: 'de la tarde',\n evening: 'de la tarde',\n night: 'de la noche'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'de la mañana',\n afternoon: 'de la tarde',\n evening: 'de la tarde',\n night: 'de la noche'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'de la mañana',\n afternoon: 'de la tarde',\n evening: 'de la tarde',\n night: 'de la noche'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n return number + 'º';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|antes de la era com[uú]n|despu[eé]s de cristo|era com[uú]n)/i\n};\nvar parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^(antes de cristo|antes de la era com[uú]n)/i, /^(despu[eé]s de cristo|era com[uú]n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[efmajsond]/i,\n abbreviated: /^(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/i,\n wide: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^e/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^en/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmjvs]/i,\n short: /^(do|lu|ma|mi|ju|vi|s[áa])/i,\n abbreviated: /^(dom|lun|mar|mi[ée]|jue|vie|s[áa]b)/i,\n wide: /^(domingo|lunes|martes|mi[ée]rcoles|jueves|viernes|s[áa]bado)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^do/i, /^lu/i, /^ma/i, /^mi/i, /^ju/i, /^vi/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(de la|a las) (mañana|tarde|noche))/i,\n any: /^([ap]\\.?\\s?m\\.?|medianoche|mediodia|(de la|a las) (mañana|tarde|noche))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn/i,\n noon: /^md/i,\n morning: /mañana/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noche/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'moins d’une seconde',\n other: 'moins de {{count}} secondes'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} secondes'\n },\n halfAMinute: '30 secondes',\n lessThanXMinutes: {\n one: 'moins d’une minute',\n other: 'moins de {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'environ 1 heure',\n other: 'environ {{count}} heures'\n },\n xHours: {\n one: '1 heure',\n other: '{{count}} heures'\n },\n xDays: {\n one: '1 jour',\n other: '{{count}} jours'\n },\n aboutXWeeks: {\n one: 'environ 1 semaine',\n other: 'environ {{count}} semaines'\n },\n xWeeks: {\n one: '1 semaine',\n other: '{{count}} semaines'\n },\n aboutXMonths: {\n one: 'environ 1 mois',\n other: 'environ {{count}} mois'\n },\n xMonths: {\n one: '1 mois',\n other: '{{count}} mois'\n },\n aboutXYears: {\n one: 'environ 1 an',\n other: 'environ {{count}} ans'\n },\n xYears: {\n one: '1 an',\n other: '{{count}} ans'\n },\n overXYears: {\n one: 'plus d’un an',\n other: 'plus de {{count}} ans'\n },\n almostXYears: {\n one: 'presqu’un an',\n other: 'presque {{count}} ans'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var form = formatDistanceLocale[token];\n if (typeof form === 'string') {\n result = form;\n } else if (count === 1) {\n result = form.one;\n } else {\n result = form.other.replace('{{count}}', String(count));\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'dans ' + result;\n } else {\n return 'il y a ' + result;\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'à' {{time}}\",\n long: \"{{date}} 'à' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"eeee 'dernier à' p\",\n yesterday: \"'hier à' p\",\n today: \"'aujourd’hui à' p\",\n tomorrow: \"'demain à' p'\",\n nextWeek: \"eeee 'prochain à' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n */\nvar locale = {\n code: 'fr',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['av. J.-C', 'ap. J.-C'],\n abbreviated: ['av. J.-C', 'ap. J.-C'],\n wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n narrow: ['T1', 'T2', 'T3', 'T4'],\n abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'mat.',\n afternoon: 'ap.m.',\n evening: 'soir',\n night: 'mat.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'matin',\n afternoon: 'après-midi',\n evening: 'soir',\n night: 'matin'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'du matin',\n afternoon: 'de l’après-midi',\n evening: 'du soir',\n night: 'du matin'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, options) {\n var number = Number(dirtyNumber);\n var unit = options === null || options === void 0 ? void 0 : options.unit;\n if (number === 0) return '0';\n var feminineUnits = ['year', 'week', 'hour', 'minute', 'second'];\n var suffix;\n if (number === 1) {\n suffix = unit && feminineUnits.includes(unit) ? 'ère' : 'er';\n } else {\n suffix = 'ème';\n }\n return number + suffix;\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^T?[1234]/i,\n abbreviated: /^[1234](er|ème|e)? trim\\.?/i,\n wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[lmjvsd]/i,\n short: /^(di|lu|ma|me|je|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^min/i,\n noon: /^mid/i,\n morning: /mat/i,\n afternoon: /ap/i,\n evening: /soir/i,\n night: /nuit/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'meno di un secondo',\n other: 'meno di {{count}} secondi'\n },\n xSeconds: {\n one: 'un secondo',\n other: '{{count}} secondi'\n },\n halfAMinute: 'alcuni secondi',\n lessThanXMinutes: {\n one: 'meno di un minuto',\n other: 'meno di {{count}} minuti'\n },\n xMinutes: {\n one: 'un minuto',\n other: '{{count}} minuti'\n },\n aboutXHours: {\n one: \"circa un'ora\",\n other: 'circa {{count}} ore'\n },\n xHours: {\n one: \"un'ora\",\n other: '{{count}} ore'\n },\n xDays: {\n one: 'un giorno',\n other: '{{count}} giorni'\n },\n aboutXWeeks: {\n one: 'circa una settimana',\n other: 'circa {{count}} settimane'\n },\n xWeeks: {\n one: 'una settimana',\n other: '{{count}} settimane'\n },\n aboutXMonths: {\n one: 'circa un mese',\n other: 'circa {{count}} mesi'\n },\n xMonths: {\n one: 'un mese',\n other: '{{count}} mesi'\n },\n aboutXYears: {\n one: 'circa un anno',\n other: 'circa {{count}} anni'\n },\n xYears: {\n one: 'un anno',\n other: '{{count}} anni'\n },\n overXYears: {\n one: 'più di un anno',\n other: 'più di {{count}} anni'\n },\n almostXYears: {\n one: 'quasi un anno',\n other: 'quasi {{count}} anni'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'tra ' + result;\n } else {\n return result + ' fa';\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import isSameUTCWeek from \"../../../../_lib/isSameUTCWeek/index.js\";\nvar weekdays = ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato'];\nfunction _lastWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica scorsa alle' p\";\n default:\n return \"'\" + weekdays[day] + \" scorso alle' p\";\n }\n}\nfunction thisWeek(day) {\n return \"'\" + weekdays[day] + \" alle' p\";\n}\nfunction _nextWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica prossima alle' p\";\n default:\n return \"'\" + weekdays[day] + \" prossimo alle' p\";\n }\n}\nvar formatRelativeLocale = {\n lastWeek: function lastWeek(date, baseDate, options) {\n var day = date.getUTCDay();\n if (isSameUTCWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return _lastWeek(day);\n }\n },\n yesterday: \"'ieri alle' p\",\n today: \"'oggi alle' p\",\n tomorrow: \"'domani alle' p\",\n nextWeek: function nextWeek(date, baseDate, options) {\n var day = date.getUTCDay();\n if (isSameUTCWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return _nextWeek(day);\n }\n },\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n return format;\n};\nexport default formatRelative;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Italian locale.\n * @language Italian\n * @iso-639-2 ita\n * @author Alberto Restifo [@albertorestifo]{@link https://github.com/albertorestifo}\n * @author Giovanni Polimeni [@giofilo]{@link https://github.com/giofilo}\n * @author Vincenzo Carrese [@vin-car]{@link https://github.com/vin-car}\n */\nvar locale = {\n code: 'it',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['aC', 'dC'],\n abbreviated: ['a.C.', 'd.C.'],\n wide: ['avanti Cristo', 'dopo Cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],\n wide: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'G', 'V', 'S'],\n short: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],\n abbreviated: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],\n wide: ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'm.',\n pm: 'p.',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'mattina',\n afternoon: 'pomeriggio',\n evening: 'sera',\n night: 'notte'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'mattina',\n afternoon: 'pomeriggio',\n evening: 'sera',\n night: 'notte'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'mattina',\n afternoon: 'pomeriggio',\n evening: 'sera',\n night: 'notte'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'm.',\n pm: 'p.',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'di mattina',\n afternoon: 'del pomeriggio',\n evening: 'di sera',\n night: 'di notte'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'di mattina',\n afternoon: 'del pomeriggio',\n evening: 'di sera',\n night: 'di notte'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'mezzanotte',\n noon: 'mezzogiorno',\n morning: 'di mattina',\n afternoon: 'del pomeriggio',\n evening: 'di sera',\n night: 'di notte'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n return String(number);\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(aC|dC)/i,\n abbreviated: /^(a\\.?\\s?C\\.?|a\\.?\\s?e\\.?\\s?v\\.?|d\\.?\\s?C\\.?|e\\.?\\s?v\\.?)/i,\n wide: /^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i\n};\nvar parseEraPatterns = {\n any: [/^a/i, /^(d|e)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^t[1234]/i,\n wide: /^[1234](º)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[gfmalsond]/i,\n abbreviated: /^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,\n wide: /^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^g/i, /^f/i, /^m/i, /^a/i, /^m/i, /^g/i, /^l/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ge/i, /^f/i, /^mar/i, /^ap/i, /^mag/i, /^gi/i, /^l/i, /^ag/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmgvs]/i,\n short: /^(do|lu|ma|me|gi|ve|sa)/i,\n abbreviated: /^(dom|lun|mar|mer|gio|ven|sab)/i,\n wide: /^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^g/i, /^v/i, /^s/i],\n any: [/^d/i, /^l/i, /^ma/i, /^me/i, /^g/i, /^v/i, /^s/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|m\\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,\n any: /^([ap]\\.?\\s?m\\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mezza/i,\n noon: /^mezzo/i,\n morning: /mattina/i,\n afternoon: /pomeriggio/i,\n evening: /sera/i,\n night: /notte/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: '1秒未満',\n other: '{{count}}秒未満',\n oneWithSuffix: '約1秒',\n otherWithSuffix: '約{{count}}秒'\n },\n xSeconds: {\n one: '1秒',\n other: '{{count}}秒'\n },\n halfAMinute: '30秒',\n lessThanXMinutes: {\n one: '1分未満',\n other: '{{count}}分未満',\n oneWithSuffix: '約1分',\n otherWithSuffix: '約{{count}}分'\n },\n xMinutes: {\n one: '1分',\n other: '{{count}}分'\n },\n aboutXHours: {\n one: '約1時間',\n other: '約{{count}}時間'\n },\n xHours: {\n one: '1時間',\n other: '{{count}}時間'\n },\n xDays: {\n one: '1日',\n other: '{{count}}日'\n },\n aboutXWeeks: {\n one: '約1週間',\n other: '約{{count}}週間'\n },\n xWeeks: {\n one: '1週間',\n other: '{{count}}週間'\n },\n aboutXMonths: {\n one: '約1か月',\n other: '約{{count}}か月'\n },\n xMonths: {\n one: '1か月',\n other: '{{count}}か月'\n },\n aboutXYears: {\n one: '約1年',\n other: '約{{count}}年'\n },\n xYears: {\n one: '1年',\n other: '{{count}}年'\n },\n overXYears: {\n one: '1年以上',\n other: '{{count}}年以上'\n },\n almostXYears: {\n one: '1年近く',\n other: '{{count}}年近く'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n options = options || {};\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n if (options.addSuffix && tokenValue.oneWithSuffix) {\n result = tokenValue.oneWithSuffix;\n } else {\n result = tokenValue.one;\n }\n } else {\n if (options.addSuffix && tokenValue.otherWithSuffix) {\n result = tokenValue.otherWithSuffix.replace('{{count}}', String(count));\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n }\n if (options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return result + '後';\n } else {\n return result + '前';\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'y年M月d日EEEE',\n long: 'y年M月d日',\n medium: 'y/MM/dd',\n short: 'y/MM/dd'\n};\nvar timeFormats = {\n full: 'H時mm分ss秒 zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: '先週のeeeeのp',\n yesterday: '昨日のp',\n today: '今日のp',\n tomorrow: '明日のp',\n nextWeek: '翌週のeeeeのp',\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Japanese locale.\n * @language Japanese\n * @iso-639-2 jpn\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Yamagishi Kazutoshi [@ykzts]{@link https://github.com/ykzts}\n * @author Luca Ban [@mesqueeb]{@link https://github.com/mesqueeb}\n * @author Terrence Lam [@skyuplam]{@link https://github.com/skyuplam}\n * @author Taiki IKeda [@so99ynoodles]{@link https://github.com/so99ynoodles}\n */\nvar locale = {\n code: 'ja',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['BC', 'AC'],\n abbreviated: ['紀元前', '西暦'],\n wide: ['紀元前', '西暦']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['第1四半期', '第2四半期', '第3四半期', '第4四半期']\n};\nvar monthValues = {\n narrow: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n abbreviated: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n wide: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']\n};\nvar dayValues = {\n narrow: ['日', '月', '火', '水', '木', '金', '土'],\n short: ['日', '月', '火', '水', '木', '金', '土'],\n abbreviated: ['日', '月', '火', '水', '木', '金', '土'],\n wide: ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日']\n};\nvar dayPeriodValues = {\n narrow: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n },\n abbreviated: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n },\n wide: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n },\n abbreviated: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n },\n wide: {\n am: '午前',\n pm: '午後',\n midnight: '深夜',\n noon: '正午',\n morning: '朝',\n afternoon: '午後',\n evening: '夜',\n night: '深夜'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, options) {\n var number = Number(dirtyNumber);\n var unit = String(options === null || options === void 0 ? void 0 : options.unit);\n switch (unit) {\n case 'year':\n return \"\".concat(number, \"\\u5E74\");\n case 'quarter':\n return \"\\u7B2C\".concat(number, \"\\u56DB\\u534A\\u671F\");\n case 'month':\n return \"\".concat(number, \"\\u6708\");\n case 'week':\n return \"\\u7B2C\".concat(number, \"\\u9031\");\n case 'date':\n return \"\".concat(number, \"\\u65E5\");\n case 'hour':\n return \"\".concat(number, \"\\u6642\");\n case 'minute':\n return \"\".concat(number, \"\\u5206\");\n case 'second':\n return \"\".concat(number, \"\\u79D2\");\n default:\n return \"\".concat(number);\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^第?\\d+(年|四半期|月|週|日|時|分|秒)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(B\\.?C\\.?|A\\.?D\\.?)/i,\n abbreviated: /^(紀元[前後]|西暦)/i,\n wide: /^(紀元[前後]|西暦)/i\n};\nvar parseEraPatterns = {\n narrow: [/^B/i, /^A/i],\n any: [/^(紀元前)/i, /^(西暦|紀元後)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^Q[1234]/i,\n wide: /^第[1234一二三四1234]四半期/i\n};\nvar parseQuarterPatterns = {\n any: [/(1|一|1)/i, /(2|二|2)/i, /(3|三|3)/i, /(4|四|4)/i]\n};\nvar matchMonthPatterns = {\n narrow: /^([123456789]|1[012])/,\n abbreviated: /^([123456789]|1[012])月/i,\n wide: /^([123456789]|1[012])月/i\n};\nvar parseMonthPatterns = {\n any: [/^1\\D/, /^2/, /^3/, /^4/, /^5/, /^6/, /^7/, /^8/, /^9/, /^10/, /^11/, /^12/]\n};\nvar matchDayPatterns = {\n narrow: /^[日月火水木金土]/,\n short: /^[日月火水木金土]/,\n abbreviated: /^[日月火水木金土]/,\n wide: /^[日月火水木金土]曜日/\n};\nvar parseDayPatterns = {\n any: [/^日/, /^月/, /^火/, /^水/, /^木/, /^金/, /^土/]\n};\nvar matchDayPeriodPatterns = {\n any: /^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^(A|午前)/i,\n pm: /^(P|午後)/i,\n midnight: /^深夜|真夜中/i,\n noon: /^正午/i,\n morning: /^朝/i,\n afternoon: /^午後/i,\n evening: /^夜/i,\n night: /^深夜/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: '1초 미만',\n other: '{{count}}초 미만'\n },\n xSeconds: {\n one: '1초',\n other: '{{count}}초'\n },\n halfAMinute: '30초',\n lessThanXMinutes: {\n one: '1분 미만',\n other: '{{count}}분 미만'\n },\n xMinutes: {\n one: '1분',\n other: '{{count}}분'\n },\n aboutXHours: {\n one: '약 1시간',\n other: '약 {{count}}시간'\n },\n xHours: {\n one: '1시간',\n other: '{{count}}시간'\n },\n xDays: {\n one: '1일',\n other: '{{count}}일'\n },\n aboutXWeeks: {\n one: '약 1주',\n other: '약 {{count}}주'\n },\n xWeeks: {\n one: '1주',\n other: '{{count}}주'\n },\n aboutXMonths: {\n one: '약 1개월',\n other: '약 {{count}}개월'\n },\n xMonths: {\n one: '1개월',\n other: '{{count}}개월'\n },\n aboutXYears: {\n one: '약 1년',\n other: '약 {{count}}년'\n },\n xYears: {\n one: '1년',\n other: '{{count}}년'\n },\n overXYears: {\n one: '1년 이상',\n other: '{{count}}년 이상'\n },\n almostXYears: {\n one: '거의 1년',\n other: '거의 {{count}}년'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return result + ' 후';\n } else {\n return result + ' 전';\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'y년 M월 d일 EEEE',\n long: 'y년 M월 d일',\n medium: 'y.MM.dd',\n short: 'y.MM.dd'\n};\nvar timeFormats = {\n full: 'a H시 mm분 ss초 zzzz',\n long: 'a H:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'지난' eeee p\",\n yesterday: \"'어제' p\",\n today: \"'오늘' p\",\n tomorrow: \"'내일' p\",\n nextWeek: \"'다음' eeee p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Korean locale.\n * @language Korean\n * @iso-639-2 kor\n * @author Hong Chulju [@angdev]{@link https://github.com/angdev}\n * @author Lee Seoyoen [@iamssen]{@link https://github.com/iamssen}\n * @author Taiki IKeda [@so99ynoodles]{@link https://github.com/so99ynoodles}\n */\nvar locale = {\n code: 'ko',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['BC', 'AD'],\n abbreviated: ['BC', 'AD'],\n wide: ['기원전', '서기']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1분기', '2분기', '3분기', '4분기']\n};\nvar monthValues = {\n narrow: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n abbreviated: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],\n wide: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']\n};\nvar dayValues = {\n narrow: ['일', '월', '화', '수', '목', '금', '토'],\n short: ['일', '월', '화', '수', '목', '금', '토'],\n abbreviated: ['일', '월', '화', '수', '목', '금', '토'],\n wide: ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일']\n};\nvar dayPeriodValues = {\n narrow: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n },\n abbreviated: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n },\n wide: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n },\n abbreviated: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n },\n wide: {\n am: '오전',\n pm: '오후',\n midnight: '자정',\n noon: '정오',\n morning: '아침',\n afternoon: '오후',\n evening: '저녁',\n night: '밤'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, options) {\n var number = Number(dirtyNumber);\n var unit = String(options === null || options === void 0 ? void 0 : options.unit);\n switch (unit) {\n case 'minute':\n case 'second':\n return String(number);\n case 'date':\n return number + '일';\n default:\n return number + '번째';\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(일|번째)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(기원전|서기)/i\n};\nvar parseEraPatterns = {\n any: [/^(bc|기원전)/i, /^(ad|서기)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234]사?분기/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(1[012]|[123456789])/,\n abbreviated: /^(1[012]|[123456789])월/i,\n wide: /^(1[012]|[123456789])월/i\n};\nvar parseMonthPatterns = {\n any: [/^1월?$/, /^2/, /^3/, /^4/, /^5/, /^6/, /^7/, /^8/, /^9/, /^10/, /^11/, /^12/]\n};\nvar matchDayPatterns = {\n narrow: /^[일월화수목금토]/,\n short: /^[일월화수목금토]/,\n abbreviated: /^[일월화수목금토]/,\n wide: /^[일월화수목금토]요일/\n};\nvar parseDayPatterns = {\n any: [/^일/, /^월/, /^화/, /^수/, /^목/, /^금/, /^토/]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^(am|오전)/i,\n pm: /^(pm|오후)/i,\n midnight: /^자정/i,\n noon: /^정오/i,\n morning: /^아침/i,\n afternoon: /^오후/i,\n evening: /^저녁/i,\n night: /^밤/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'menos de um segundo',\n other: 'menos de {{count}} segundos'\n },\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundos'\n },\n halfAMinute: 'meio minuto',\n lessThanXMinutes: {\n one: 'menos de um minuto',\n other: 'menos de {{count}} minutos'\n },\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutos'\n },\n aboutXHours: {\n one: 'aproximadamente 1 hora',\n other: 'aproximadamente {{count}} horas'\n },\n xHours: {\n one: '1 hora',\n other: '{{count}} horas'\n },\n xDays: {\n one: '1 dia',\n other: '{{count}} dias'\n },\n aboutXWeeks: {\n one: 'aproximadamente 1 semana',\n other: 'aproximadamente {{count}} semanas'\n },\n xWeeks: {\n one: '1 semana',\n other: '{{count}} semanas'\n },\n aboutXMonths: {\n one: 'aproximadamente 1 mês',\n other: 'aproximadamente {{count}} meses'\n },\n xMonths: {\n one: '1 mês',\n other: '{{count}} meses'\n },\n aboutXYears: {\n one: 'aproximadamente 1 ano',\n other: 'aproximadamente {{count}} anos'\n },\n xYears: {\n one: '1 ano',\n other: '{{count}} anos'\n },\n overXYears: {\n one: 'mais de 1 ano',\n other: 'mais de {{count}} anos'\n },\n almostXYears: {\n one: 'quase 1 ano',\n other: 'quase {{count}} anos'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'daqui a ' + result;\n } else {\n return 'há ' + result;\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d 'de' MMM 'de' y\",\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: function lastWeek(date) {\n var weekday = date.getUTCDay();\n var last = weekday === 0 || weekday === 6 ? 'último' : 'última';\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, date, _baseDate, _options) {\n var format = formatRelativeLocale[token];\n if (typeof format === 'function') {\n return format(date);\n }\n return format;\n};\nexport default formatRelative;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Portuguese locale.\n * @language Portuguese\n * @iso-639-2 por\n * @author Dário Freire [@dfreire]{@link https://github.com/dfreire}\n * @author Adrián de la Rosa [@adrm]{@link https://github.com/adrm}\n */\nvar locale = {\n code: 'pt',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['aC', 'dC'],\n abbreviated: ['a.C.', 'd.C.'],\n wide: ['antes de Cristo', 'depois de Cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],\n wide: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro']\n};\nvar dayValues = {\n narrow: ['d', 's', 't', 'q', 'q', 's', 's'],\n short: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n abbreviated: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n wide: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'noite',\n night: 'madrugada'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'noite',\n night: 'madrugada'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'manhã',\n afternoon: 'tarde',\n evening: 'noite',\n night: 'madrugada'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da noite',\n night: 'da madrugada'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da noite',\n night: 'da madrugada'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'meia-noite',\n noon: 'meio-dia',\n morning: 'da manhã',\n afternoon: 'da tarde',\n evening: 'da noite',\n night: 'da madrugada'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n return number + 'º';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(º|ª)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|antes da era comum|depois de cristo|era comum)/i\n};\nvar parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^(antes de cristo|antes da era comum)/i, /^(depois de cristo|era comum)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º|ª)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ab/i, /^mai/i, /^jun/i, /^jul/i, /^ag/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dstq]/i,\n short: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,\n wide: /^(domingo|segunda-?\\s?feira|terça-?\\s?feira|quarta-?\\s?feira|quinta-?\\s?feira|sexta-?\\s?feira|s[áa]bado)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^s/i, /^t/i, /^q/i, /^q/i, /^s/i, /^s/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[áa]/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|meia-?\\s?noite|meio-?\\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia-?\\s?noite|meio-?\\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^meia/i,\n noon: /^meio/i,\n morning: /manh[ãa]/i,\n afternoon: /tarde/i,\n evening: /noite/i,\n night: /madrugada/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: '不到 1 秒',\n other: '不到 {{count}} 秒'\n },\n xSeconds: {\n one: '1 秒',\n other: '{{count}} 秒'\n },\n halfAMinute: '半分钟',\n lessThanXMinutes: {\n one: '不到 1 分钟',\n other: '不到 {{count}} 分钟'\n },\n xMinutes: {\n one: '1 分钟',\n other: '{{count}} 分钟'\n },\n xHours: {\n one: '1 小时',\n other: '{{count}} 小时'\n },\n aboutXHours: {\n one: '大约 1 小时',\n other: '大约 {{count}} 小时'\n },\n xDays: {\n one: '1 天',\n other: '{{count}} 天'\n },\n aboutXWeeks: {\n one: '大约 1 个星期',\n other: '大约 {{count}} 个星期'\n },\n xWeeks: {\n one: '1 个星期',\n other: '{{count}} 个星期'\n },\n aboutXMonths: {\n one: '大约 1 个月',\n other: '大约 {{count}} 个月'\n },\n xMonths: {\n one: '1 个月',\n other: '{{count}} 个月'\n },\n aboutXYears: {\n one: '大约 1 年',\n other: '大约 {{count}} 年'\n },\n xYears: {\n one: '1 年',\n other: '{{count}} 年'\n },\n overXYears: {\n one: '超过 1 年',\n other: '超过 {{count}} 年'\n },\n almostXYears: {\n one: '将近 1 年',\n other: '将近 {{count}} 年'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return result + '内';\n } else {\n return result + '前';\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: \"y'年'M'月'd'日' EEEE\",\n long: \"y'年'M'月'd'日'\",\n medium: 'yyyy-MM-dd',\n short: 'yy-MM-dd'\n};\nvar timeFormats = {\n full: 'zzzz a h:mm:ss',\n long: 'z a h:mm:ss',\n medium: 'a h:mm:ss',\n short: 'a h:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import isSameUTCWeek from \"../../../../_lib/isSameUTCWeek/index.js\";\nfunction checkWeek(date, baseDate, options) {\n var baseFormat = 'eeee p';\n if (isSameUTCWeek(date, baseDate, options)) {\n return baseFormat; // in same week\n } else if (date.getTime() > baseDate.getTime()) {\n return \"'下个'\" + baseFormat; // in next week\n }\n\n return \"'上个'\" + baseFormat; // in last week\n}\n\nvar formatRelativeLocale = {\n lastWeek: checkWeek,\n // days before yesterday, maybe in this week or last week\n yesterday: \"'昨天' p\",\n today: \"'今天' p\",\n tomorrow: \"'明天' p\",\n nextWeek: checkWeek,\n // days after tomorrow, maybe in this week or next week\n other: 'PP p'\n};\nvar formatRelative = function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n return format;\n};\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['前', '公元'],\n abbreviated: ['前', '公元'],\n wide: ['公元前', '公元']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['第一季', '第二季', '第三季', '第四季'],\n wide: ['第一季度', '第二季度', '第三季度', '第四季度']\n};\nvar monthValues = {\n narrow: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],\n abbreviated: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n wide: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar dayValues = {\n narrow: ['日', '一', '二', '三', '四', '五', '六'],\n short: ['日', '一', '二', '三', '四', '五', '六'],\n abbreviated: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n wide: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']\n};\nvar dayPeriodValues = {\n narrow: {\n am: '上',\n pm: '下',\n midnight: '凌晨',\n noon: '午',\n morning: '早',\n afternoon: '下午',\n evening: '晚',\n night: '夜'\n },\n abbreviated: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜间'\n },\n wide: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜间'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: '上',\n pm: '下',\n midnight: '凌晨',\n noon: '午',\n morning: '早',\n afternoon: '下午',\n evening: '晚',\n night: '夜'\n },\n abbreviated: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜间'\n },\n wide: {\n am: '上午',\n pm: '下午',\n midnight: '凌晨',\n noon: '中午',\n morning: '早晨',\n afternoon: '中午',\n evening: '晚上',\n night: '夜间'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, options) {\n var number = Number(dirtyNumber);\n switch (options === null || options === void 0 ? void 0 : options.unit) {\n case 'date':\n return number.toString() + '日';\n case 'hour':\n return number.toString() + '时';\n case 'minute':\n return number.toString() + '分';\n case 'second':\n return number.toString() + '秒';\n default:\n return '第 ' + number.toString();\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(第\\s*)?\\d+(日|时|分|秒)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(前)/i,\n abbreviated: /^(前)/i,\n wide: /^(公元前|公元)/i\n};\nvar parseEraPatterns = {\n any: [/^(前)/i, /^(公元)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^第[一二三四]刻/i,\n wide: /^第[一二三四]刻钟/i\n};\nvar parseQuarterPatterns = {\n any: [/(1|一)/i, /(2|二)/i, /(3|三)/i, /(4|四)/i]\n};\nvar matchMonthPatterns = {\n narrow: /^(一|二|三|四|五|六|七|八|九|十[二一])/i,\n abbreviated: /^(一|二|三|四|五|六|七|八|九|十[二一]|\\d|1[12])月/i,\n wide: /^(一|二|三|四|五|六|七|八|九|十[二一])月/i\n};\nvar parseMonthPatterns = {\n narrow: [/^一/i, /^二/i, /^三/i, /^四/i, /^五/i, /^六/i, /^七/i, /^八/i, /^九/i, /^十(?!(一|二))/i, /^十一/i, /^十二/i],\n any: [/^一|1/i, /^二|2/i, /^三|3/i, /^四|4/i, /^五|5/i, /^六|6/i, /^七|7/i, /^八|8/i, /^九|9/i, /^十(?!(一|二))|10/i, /^十一|11/i, /^十二|12/i]\n};\nvar matchDayPatterns = {\n narrow: /^[一二三四五六日]/i,\n short: /^[一二三四五六日]/i,\n abbreviated: /^周[一二三四五六日]/i,\n wide: /^星期[一二三四五六日]/i\n};\nvar parseDayPatterns = {\n any: [/日/i, /一/i, /二/i, /三/i, /四/i, /五/i, /六/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^上午?/i,\n pm: /^下午?/i,\n midnight: /^午夜/i,\n noon: /^[中正]午/i,\n morning: /^早上/i,\n afternoon: /^下午/i,\n evening: /^晚上?/i,\n night: /^凌晨/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import { formatDistanceToNow, format, parseISO } from 'date-fns';\nimport { enUS, es, fr, de, it, pt, ja, ko, zhCN } from 'date-fns/locale';\n\n// Map of locale codes to date-fns locales\nconst localeMap: { [key: string]: Locale } = {\n 'en-US': enUS,\n 'es-ES': es,\n 'fr-FR': fr,\n 'de-DE': de,\n 'it-IT': it,\n 'pt-BR': pt,\n 'pt-PT': pt,\n 'ja-JP': ja,\n 'ko-KR': ko,\n 'zh-CN': zhCN,\n};\n\n/**\n * Hook for time zone and date/time formatting operations\n * \n * @param timezone - Optional timezone string (e.g., 'America/New_York')\n * @param locale - Optional locale string (e.g., 'en-US')\n * @returns Object with date formatting functions\n */\nexport const useTimeZoneHelper = (timezone?: string, locale?: string) => {\n const currentLocale = locale ? localeMap[locale] || enUS : enUS;\n\n /**\n * Get relative time format (e.g., \"2 hours ago\")\n */\n const getFormatRelative = (date: Date | string): string => {\n try {\n const dateObj = typeof date === 'string' ? parseISO(date) : date;\n return formatDistanceToNow(dateObj, { \n addSuffix: true,\n locale: currentLocale \n });\n } catch (error) {\n console.error('Error formatting relative time:', error);\n return '';\n }\n };\n\n /**\n * Convert date to UTC\n */\n const convertDateToUTC = (date: Date | string): Date => {\n try {\n const dateObj = typeof date === 'string' ? parseISO(date) : date;\n return new Date(dateObj.toUTCString());\n } catch (error) {\n console.error('Error converting to UTC:', error);\n return new Date();\n }\n };\n\n /**\n * Format date with custom format string\n */\n const formatDate = (date: Date | string, formatString: string = 'PPpp'): string => {\n try {\n const dateObj = typeof date === 'string' ? parseISO(date) : date;\n return format(dateObj, formatString, { locale: currentLocale });\n } catch (error) {\n console.error('Error formatting date:', error);\n return '';\n }\n };\n\n /**\n * Get current timezone offset in minutes\n */\n const getTimezoneOffset = (): number => {\n return new Date().getTimezoneOffset();\n };\n\n /**\n * Convert date to specific timezone (simplified - using browser's Intl API)\n */\n const convertToTimezone = (date: Date | string, tz?: string): string => {\n try {\n const dateObj = typeof date === 'string' ? parseISO(date) : date;\n const targetTimezone = tz || timezone || Intl.DateTimeFormat().resolvedOptions().timeZone;\n \n return dateObj.toLocaleString(locale || 'en-US', {\n timeZone: targetTimezone,\n });\n } catch (error) {\n console.error('Error converting timezone:', error);\n const dateObj = typeof date === 'string' ? new Date(date) : date;\n return dateObj.toString();\n }\n };\n\n return {\n getFormatRelative,\n convertDateToUTC,\n formatDate,\n getTimezoneOffset,\n convertToTimezone,\n };\n};\n","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Chinese Simplified locale.\n * @language Chinese Simplified\n * @iso-639-2 zho\n * @author Changyu Geng [@KingMario]{@link https://github.com/KingMario}\n * @author Song Shuoyun [@fnlctrl]{@link https://github.com/fnlctrl}\n * @author sabrinaM [@sabrinamiao]{@link https://github.com/sabrinamiao}\n * @author Carney Wu [@cubicwork]{@link https://github.com/cubicwork}\n * @author Terrence Lam [@skyuplam]{@link https://github.com/skyuplam}\n */\nvar locale = {\n code: 'zh-CN',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback } from 'react';\n\nconst DEBUG = process.env.NODE_ENV !== 'production';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { isEmpty } from 'lodash';\n\nconst DATA_IMAGE = \"data:image/\";\n\nexport const useImageUtils = () => {\n \n\n const base64FromSVGUrl = useCallback(async (url: string): Promise<string> => {\n const svg = await fetch(url).then((response) => response.text());\n const svg64 = btoa(svg);\n const b64Start = \"data:image/svg+xml;base64,\";\n const image64 = b64Start + svg64;\n return image64;\n }, []);\n\n const getImageBase64 = useCallback(async (pictureUrl: string, customWidth?: number, customHeight?: number): Promise<\n string\n > => {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.crossOrigin = \"anonymous\";\n image.addEventListener(\"load\", () => {\n const tempCanvas = document.createElement(\"canvas\");\n tempCanvas.width = customWidth ?? image.width;\n tempCanvas.height = customHeight ?? image.height;\n tempCanvas?.getContext(\"2d\")?.drawImage(image, 0, 0, customWidth ?? image.width, customHeight ?? image.height);\n let base64Str;\n try {\n base64Str = tempCanvas.toDataURL(\"image/png\", 1);\n resolve(base64Str);\n } catch (err) {\n if (DEBUG) {\n console.error(`[ImageService.getBase64Image]: Err='${(err as Error).message}'`);\n }\n reject(err);\n }\n });\n image.addEventListener(\"error\", (err) => {\n if (DEBUG) {\n console.error(`[ImageService.getBase64Image]: Image load error='${err.message}'`);\n }\n reject(err);\n });\n image.src = pictureUrl;\n });\n }, []);\n\n const isBase64Image = useCallback((data: string) => {\n return !isEmpty(data) && data.indexOf(DATA_IMAGE) >= 0;\n }, []);\n\n const getBase64ImageFromDOMImg = useCallback((imgElementId: string): string | undefined => {\n try {\n const imgElement = document.getElementById(imgElementId) as any;\n const canvas = document.createElement(\"canvas\");\n canvas.width = imgElement.width;\n canvas.height = imgElement.height;\n const ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(imgElement, 0, 0);\n const dataURL = canvas.toDataURL(\"image/png\");\n\n return dataURL;\n } catch (err) {\n if (DEBUG) {\n console.error(`[getBase64ImageFromDOMImg]: Err='${(err as Error).message}'`);\n }\n return undefined;\n }\n }, []);\n\n return {\n getBase64ImageFromDOMImg,\n isBase64Image,\n getImageBase64,\n base64FromSVGUrl,\n };\n};\n","/**\n * Minimal lodash utility functions\n * Replacing @microsoft/sp-lodash-subset dependency\n */\n\n/**\n * Creates a debounced function that delays invoking func until after wait milliseconds\n * have elapsed since the last time the debounced function was invoked\n */\nexport function debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number = 0\n): (...args: Parameters<T>) => void {\n let timeout: NodeJS.Timeout | null = null;\n\n return function(this: any, ...args: Parameters<T>) {\n const context = this;\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n timeout = setTimeout(() => {\n func.apply(context, args);\n }, wait);\n };\n}\n\n/**\n * Creates a throttled function that only invokes func at most once per every wait milliseconds\n */\nexport function throttle<T extends (...args: any[]) => any>(\n func: T,\n wait: number = 0\n): (...args: Parameters<T>) => void {\n let timeout: NodeJS.Timeout | null = null;\n let previous = 0;\n\n return function(this: any, ...args: Parameters<T>) {\n const context = this;\n const now = Date.now();\n\n if (!previous) {\n previous = now;\n }\n\n const remaining = wait - (now - previous);\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout) {\n timeout = setTimeout(() => {\n previous = Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\n\n/**\n * Creates a deep clone of value\n */\nexport function cloneDeep<T>(value: T): T {\n if (value === null || typeof value !== 'object') {\n return value;\n }\n\n if (value instanceof Date) {\n return new Date(value.getTime()) as any;\n }\n\n if (value instanceof Array) {\n return value.map(item => cloneDeep(item)) as any;\n }\n\n if (value instanceof Object) {\n const clonedObj: any = {};\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n clonedObj[key] = cloneDeep(value[key]);\n }\n }\n return clonedObj;\n }\n\n return value;\n}\n\n/**\n * Checks if value is empty\n */\nexport function isEmpty(value: any): boolean {\n if (value == null) {\n return true;\n }\n\n if (typeof value === 'string' || Array.isArray(value)) {\n return value.length === 0;\n }\n\n if (typeof value === 'object') {\n return Object.keys(value).length === 0;\n }\n\n return false;\n}\n\n/**\n * Gets the value at path of object\n */\nexport function get<T = any>(\n object: any,\n path: string | string[],\n defaultValue?: T\n): T {\n const keys = Array.isArray(path) ? path : path.split('.');\n let result = object;\n\n for (const key of keys) {\n if (result == null) {\n return defaultValue as T;\n }\n result = result[key];\n }\n\n return result === undefined ? (defaultValue as T) : result;\n}\n\n/**\n * Sets the value at path of object\n */\nexport function set(object: any, path: string | string[], value: any): any {\n const keys = Array.isArray(path) ? path : path.split('.');\n const lastKey = keys.pop();\n\n if (!lastKey) {\n return object;\n }\n\n let current = object;\n\n for (const key of keys) {\n if (!(key in current) || typeof current[key] !== 'object') {\n current[key] = {};\n }\n current = current[key];\n }\n\n current[lastKey] = value;\n return object;\n}\n\n/**\n * Creates an array of unique values\n */\nexport function uniq<T>(array: T[]): T[] {\n return Array.from(new Set(array));\n}\n\n/**\n * Creates an array of unique values based on iteratee\n */\nexport function uniqBy<T>(array: T[], iteratee: (item: T) => any): T[] {\n const seen = new Set();\n return array.filter(item => {\n const key = iteratee(item);\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n}\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of collection through iteratee\n */\nexport function groupBy<T>(\n array: T[],\n iteratee: (item: T) => string | number\n): Record<string, T[]> {\n return array.reduce((result, item) => {\n const key = String(iteratee(item));\n if (!result[key]) {\n result[key] = [];\n }\n result[key].push(item);\n return result;\n }, {} as Record<string, T[]>);\n}\n\n/**\n * Creates an array of values by running each element in collection through iteratee\n */\nexport function map<T, U>(\n array: T[],\n iteratee: (item: T, index: number) => U\n): U[] {\n return array.map(iteratee);\n}\n\n/**\n * Iterates over elements of collection, returning an array of all elements predicate returns truthy for\n */\nexport function filter<T>(\n array: T[],\n predicate: (item: T, index: number) => boolean\n): T[] {\n return array.filter(predicate);\n}\n\n/**\n * Checks if predicate returns truthy for any element of collection\n */\nexport function some<T>(\n array: T[],\n predicate: (item: T) => boolean\n): boolean {\n return array.some(predicate);\n}\n\n/**\n * Checks if predicate returns truthy for all elements of collection\n */\nexport function every<T>(\n array: T[],\n predicate: (item: T) => boolean\n): boolean {\n return array.every(predicate);\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\nimport { ICardProps } from './ICardProps';\nimport { useComponentUtils } from '../../utils';\n\nexport const useCardStyles = (props: ICardProps) => {\n const { styles } = props;\n const { getBaseStyles } = useComponentUtils();\n\n const cardStyles = React.useCallback(\n (containerWidth: number, containerHeight: number): React.CSSProperties => {\n const baseStyles = getBaseStyles(props, containerWidth, containerHeight);\n return {\n ...baseStyles,\n ...styles,\n \n };\n },\n [getBaseStyles, props, styles]\n );\n\n const bodyCardDefaultStyles: React.CSSProperties = React.useMemo(() => {\n return {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"start\",\n alignItems: \"stretch\",\n overflow: \"unset\",\n };\n }, []);\n\n return { cardStyles, bodyCardDefaultStyles };\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\nimport {\n Card as CarFUI,\n CardFooter,\n CardHeader,\n CardPreview,\n mergeClasses,\n} from '@fluentui/react-components';\n\nimport { ICardProps } from './ICardProps';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { useCardStyles } from './useCardStyles';\n\nexport const Card = (props: React.PropsWithChildren<ICardProps>) => {\n const {\n className,\n cardBody,\n cardBodyClassName,\n cardHeader,\n cardHeaderClassName,\n cardHeaderImage,\n cardHeaderAction,\n cardHeaderDescription,\n cardFooterAction,\n cardFooterClassName,\n cardFooterContent,\n cardPreviewImage,\n cardPreviewLogo,\n cardPreviewPosition = \"top\",\n } = props;\n const { cardStyles, bodyCardDefaultStyles } = useCardStyles(props);\n const ref = React.useRef<HTMLDivElement>(null);\n\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n\n React.useEffect(() => {\n let resizeObserver: ResizeObserver;\n if (ref.current) {\n // observer to detect changes in the size of the container\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setWidth(width);\n setHeight(height);\n }\n });\n resizeObserver.observe(ref.current);\n }\n return () => {\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, []);\n return (\n <>\n <div ref={ref}>\n <CarFUI className={className} style={cardStyles(width, height)} {...props}>\n {cardPreviewImage && cardPreviewPosition === \"top\" && (\n <CardPreview logo={cardPreviewLogo}>{cardPreviewImage} </CardPreview>\n )}\n {cardHeader && (\n <CardHeader\n className={cardHeaderClassName}\n image={cardHeaderImage}\n header={cardHeader}\n description={cardHeaderDescription}\n action={cardHeaderAction}\n />\n )}\n {cardPreviewImage && cardPreviewPosition === \"afterHeader\" && (\n <CardPreview logo={cardPreviewLogo}>{cardPreviewImage} </CardPreview>\n )}\n {cardBody && (\n <div className={mergeClasses(cardBodyClassName)} style={bodyCardDefaultStyles}>\n {cardBody}\n </div>\n )}\n {cardPreviewImage && cardPreviewPosition === \"bottom\" && (\n <CardPreview logo={cardPreviewLogo}>{cardPreviewImage} </CardPreview>\n )}\n {cardFooterContent && (\n <CardFooter action={cardFooterAction} className={cardFooterClassName}>\n {cardFooterContent}\n </CardFooter>\n )}\n </CarFUI>\n </div>\n </>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\nimport { THorizontalSpacing, TVerticalSpacing } from '../../types';\n\nimport { IGridProps } from './IGridProps';\nimport { useComponentUtils } from '../../utils';\n\nexport const useGridStyles = (props: IGridProps) => {\n const { cols, verticalSpacing, horizontalSpacing, styles, gridItemAutoFlow, minItemWidth } = props;\n const { getSpacing, getCurrentDevice, getBaseStyles } = useComponentUtils();\n\n const gridStyles = React.useCallback(\n (containerWidth: number, containerHeight: number): React.CSSProperties => {\n const baseStyles = getBaseStyles(props, containerWidth, containerHeight);\n const wgapRow = getSpacing<TVerticalSpacing>(verticalSpacing as string, containerWidth, \"vertical\");\n const wgapCol = getSpacing<THorizontalSpacing>(horizontalSpacing as string, containerWidth, \"horizontal\");\n const wgap = `${wgapRow} ${wgapCol}`;\n const device = getCurrentDevice(containerWidth);\n let gridTemplateColumns = `repeat(auto-${gridItemAutoFlow ?? \"fill\"}, minmax(${minItemWidth ?? 250}px, 1fr))`;\n if (cols && cols > 0) {\n let numberCols = cols ?? 0;\n switch (device) {\n case \"ExtraSmall\":\n numberCols = Math.min(cols, 1);\n break;\n case \"Small\":\n numberCols = Math.min(cols, 2);\n break;\n case \"Medium\":\n numberCols = Math.min(cols, 3);\n break;\n case \"Large\":\n numberCols = Math.min(cols, 4);\n break;\n case \"ExtraLarge\":\n numberCols = Math.min(cols, 4);\n break;\n case \"ExtraExtraLarge\":\n numberCols = Math.min(cols, 5);\n break;\n case \"XXXLarge\":\n numberCols = Math.min(cols, 6);\n break;\n default:\n numberCols = 0;\n }\n gridTemplateColumns = `repeat(${numberCols}, minmax(auto, 1fr))`;\n }\n\n return {\n ...baseStyles,\n display: \"grid\",\n gridTemplateColumns: gridTemplateColumns,\n gap: wgap,\n \n \n overflow: \"hidden\",\n \n ...styles,\n };\n },\n [getBaseStyles, props, getSpacing, verticalSpacing, horizontalSpacing, getCurrentDevice, cols, styles, gridItemAutoFlow, minItemWidth]\n );\n\n return { gridStyles };\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from \"react\";\n\nimport { ILayoutConfig, ILayoutProps } from \"./ILayoutProps\";\n\nimport { css } from \"@emotion/css\";\nimport { useComponentUtils } from \"../../utils\";\n\nexport const useLayoutStyles = (props: ILayoutProps & { layoutConfig?: ILayoutConfig }) => {\n const { maxWith, } = props;\n const { getBaseStyles } = useComponentUtils();\n\n const rootStyles = React.useCallback(\n (LayoutWidth: number, LayoutHeight: number): React.CSSProperties => ({\n ...getBaseStyles(props, LayoutWidth, LayoutHeight),\n maxWidth: maxWith,\n }),\n [getBaseStyles, maxWith, props]\n );\n\n const layoutGridStyles = css({\n display: \"grid\",\n overflow: \"hidden\",\n });\n\n return {\n rootStyles,\n layoutGridStyles,\n };\n};","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from \"react\";\n\nimport { ILayoutConfig, ILayoutProps } from \"./ILayoutProps\";\n\nimport { ResizeObserver } from \"@juggle/resize-observer\";\nimport { mergeClasses } from \"@fluentui/react-components\";\nimport { useLayoutStyles } from \"./useLayoutStyles\";\n\n// Default layout configuration\nconst defaultLayoutConfig: ILayoutConfig = {\n areas: [\"header header header\", \"sidebar content sidebar\", \"footer footer footer\"],\n columns: \"1fr 3fr 1fr\",\n rows: \"auto 1fr auto\",\n};\n\nexport const Layout = (props: React.PropsWithChildren<ILayoutProps & { layoutConfig?: ILayoutConfig }>) => {\n const { className, children, layoutConfig = defaultLayoutConfig } = props;\n const ref = React.useRef<HTMLDivElement>(null);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n\n const { rootStyles, layoutGridStyles } = useLayoutStyles({ ...props, layoutConfig });\n\n const useDebounce = (fn: Function, delay: number) => {\n let timer: NodeJS.Timeout;\n return React.useCallback((...args: any[]) => {\n clearTimeout(timer);\n timer = setTimeout(() => fn(...args), delay);\n }, [fn, delay]);\n };\n\n const handleResize = useDebounce((width: number, height: number) => {\n setWidth(width);\n setHeight(height);\n }, 200);\n\n React.useEffect(() => {\n if (!ref.current) return;\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n handleResize(width, height);\n }\n });\n observer.observe(ref.current);\n\n return () => observer.disconnect();\n }, [handleResize]);\n\n return (\n <div\n id=\"-Layout\"\n className={mergeClasses(className, layoutGridStyles)}\n style={{\n ...rootStyles(width, height),\n gridTemplateAreas: layoutConfig.areas.join(\" \"),\n gridTemplateColumns: layoutConfig.columns,\n gridTemplateRows: layoutConfig.rows,\n }}\n ref={ref}\n >\n {React.Children.map(children, (child, index) => {\n if (React.isValidElement(child)) {\n const childElement = child as React.ReactElement;\n return (\n <div\n key={index}\n style={{\n gridArea: childElement.props?.area ?? `area-${index}`, // Fallback to dynamic area\n }}\n >\n {child}\n </div>\n );\n }\n return child;\n })}\n </div>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as React from 'react';\n\n \n \nimport { ISpaceProps } from './ISpaceProps';\nimport { useComponentUtils } from '../../utils';\nimport { THorizontalSpacing, TVerticalSpacing } from '../../types';\n\nexport const useSpaceStyles = (props: ISpaceProps) => {\n const { verticalSpacing, horizontalSpacing } = props;\n const { getSpacing } = useComponentUtils();\n const spaceStyles = React.useCallback(\n (containerWidth: number): React.CSSProperties => {\n if (!containerWidth ) return {};\n \n\n \n if (horizontalSpacing) {\n const width = getSpacing<THorizontalSpacing>(horizontalSpacing as string, containerWidth, \"horizontal\");\n return {\n width: width,\n };\n }\n if (verticalSpacing) {\n const height = getSpacing<TVerticalSpacing>(verticalSpacing as string, containerWidth, \"vertical\");\n return {\n height: height,\n };\n }\n return {};\n },\n [getSpacing, horizontalSpacing, verticalSpacing]\n );\n\n return { spaceStyles };\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\n\nimport { IStackProps } from './IStackProps';\nimport { useComponentUtils } from '../../utils';\n\nexport const useStackStyles = (props: IStackProps) => {\n const { horizontal, horizontalAlign, verticalAlign, verticalFill, wrap, columnGap, RowGap } = props;\n const { getBaseStyles } = useComponentUtils();\n\n const stackStyles = React.useCallback(\n (containerWidth: number, containerHeight: number): React.CSSProperties => {\n const alignValue = verticalAlign || \"start\";\n const justifyValue = horizontal ? horizontalAlign : \"start\";\n\n const wflexFlow: React.CSSProperties | undefined = horizontal\n ? { flexFlow: wrap ? \"row wrap\" : \"row nowrap\", height: \"100%\" }\n : { height: \"100%\", maxHeight: \"100%\" };\n\n const baseStyles = getBaseStyles(props, containerWidth, containerHeight);\n\n return {\n columnGap: columnGap,\n rowGap: RowGap,\n display: \"flex\",\n flexDirection: horizontal ? \"row\" : \"column\",\n alignItems: alignValue,\n justifyContent: justifyValue,\n ...wflexFlow,\n height: verticalFill ? \"100%\" : baseStyles.height,\n ...baseStyles,\n ...props.styles,\n };\n },\n [getBaseStyles, horizontal, horizontalAlign, props, verticalAlign, verticalFill, wrap]\n );\n\n return { stackStyles };\n};\n\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\nimport { IStackProps } from './IStackProps';\nimport { useStackStyles } from './useStackStyles';\nimport { ResizeObserver } from '@juggle/resize-observer';\nexport const Stack = (\n props: React.PropsWithChildren<IStackProps>\n) => {\n const { children, className, } = props;\n const { stackStyles } = useStackStyles(props);\n const ref = React.useRef<HTMLDivElement>(null);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n\n\n React.useEffect(() => {\n let resizeObserver: ResizeObserver;\n if (ref.current) {\n // observer to detect changes in the size of the container\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setWidth(width);\n setHeight(height);\n }\n });\n resizeObserver.observe(ref.current);\n }\n return () => {\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n }\n }, []);\n return (\n <>\n <div className={className} style={stackStyles(width, height)} ref={ref}>\n {children}\n </div>\n </>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\n import { css } from '@emotion/css';\n \nimport { ICenterProps } from './ICenterProps';\nimport { useComponentUtils } from '../../utils';\n\nexport const useCenterStyles = (props: ICenterProps) => {\n const { styles } = props;\n\n const { getBaseStyles } = useComponentUtils();\n const centerStyles = React.useCallback(\n (containerWidth: number, containerHeight: number): React.CSSProperties => {\n \n const baseStyles = getBaseStyles(props, containerWidth, containerHeight);\n return {\n ...baseStyles,\n ...styles,\n overflow: \"hidden\",\n display: \"flex\",\n \n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n \n };\n },\n [getBaseStyles, props, styles]\n );\n\n const childrenStyles = css({\n justifyContent: \"center\",\n textAlign: \"center\",\n });\n\n return { centerStyles, childrenStyles };\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\nimport { ICenterProps } from './ICenterProps';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { useCenterStyles } from './useCenterStyles';\n\nexport const Center: React.FC<React.PropsWithChildren<ICenterProps>> = (props) => {\n const { className, children } = props;\n\n const ref = React.useRef<HTMLDivElement>(null);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const { centerStyles } = useCenterStyles(props);\n\n // Debounce utility function\n const debounce = (func: (...args: any[]) => void, delay: number) => {\n let timeout: NodeJS.Timeout;\n return (...args: any[]) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => func(...args), delay);\n };\n };\n\n React.useEffect(() => {\n const handleResize = (entries: any) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setWidth(width);\n setHeight(height);\n }\n };\n\n const debouncedResize = debounce(handleResize, 200);\n\n const resizeObserver = new ResizeObserver((entries) => {\n debouncedResize(entries);\n });\n\n if (ref.current) {\n resizeObserver.observe(ref.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n return (\n <div\n id=\"center\"\n className={className}\n style={{\n ...centerStyles(width, height),\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%', // Ensures the container takes up the full height\n width: '100%', // Ensures the container takes up the full width\n }}\n ref={ref}\n >\n {children}\n </div>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\nimport { IContainerProps } from './IContainerProps';\nimport { useComponentUtils } from '../../utils';\n\nexport const useContainerStyles = (props: IContainerProps) => {\n const {maxWith } = props;\n const { getBaseStyles } = useComponentUtils();\n const containerStyles = React.useCallback(\n (containerWidth: number, containerHeight: number): React.CSSProperties => {\n if (!containerWidth || !containerHeight) return {};\n const baseStyles = getBaseStyles(props, containerWidth, containerHeight);\n return {\n ...baseStyles,\n maxWidth: maxWith,\n };\n }, [getBaseStyles, maxWith, props]);\n \n return { containerStyles };\n};\n","import {\n useCallback,\n useEffect,\n useState,\n} from 'react';\n\nimport { EmblaCarouselType } from 'embla-carousel';\n\ntype UsePrevNextButtonsType = {\n prevBtnDisabled: boolean\n nextBtnDisabled: boolean\n onPrevButtonClick: () => void\n onNextButtonClick: () => void\n }\n \n export const usePrevNextButtons = (\n emblaApi: EmblaCarouselType | undefined\n ): UsePrevNextButtonsType => {\n const [prevBtnDisabled, setPrevBtnDisabled] = useState(true)\n const [nextBtnDisabled, setNextBtnDisabled] = useState(true)\n \n const onPrevButtonClick = useCallback(() => {\n if (!emblaApi) return\n emblaApi.scrollPrev()\n }, [emblaApi])\n \n const onNextButtonClick = useCallback(() => {\n if (!emblaApi) return\n emblaApi.scrollNext()\n }, [emblaApi])\n \n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setPrevBtnDisabled(!emblaApi.canScrollPrev())\n setNextBtnDisabled(!emblaApi.canScrollNext())\n }, [])\n \n useEffect(() => {\n if (!emblaApi) return\n \n onSelect(emblaApi)\n emblaApi.on('reInit', onSelect)\n emblaApi.on('select', onSelect)\n }, [emblaApi, onSelect])\n \n return {\n prevBtnDisabled,\n nextBtnDisabled,\n onPrevButtonClick,\n onNextButtonClick\n }\n }\n \n \n \n \n \n \n ","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\nimport * as React from 'react';\n\n import { css } from '@emotion/css';\n\nimport { tokens } from '@fluentui/react-components';\n\n \nimport { ICarouselProps } from './ICarouselProps';\nimport { useComponentUtils } from '../../utils';\n\nexport const useCarouselStyles = (_props: ICarouselProps, containerWidth: number, ) => {\n const { getCurrentDevice } = useComponentUtils();\n\n const slideSizeBasedOnWidth = React.useCallback(() => {\n const deviceSize = getCurrentDevice(containerWidth);\n let slideSize = \"95%\";\n switch (deviceSize) {\n case \"Medium\":\n slideSize = \"45%\";\n break;\n case \"Large\":\n slideSize = \"calc(95% / 4)\";\n break;\n case \"ExtraLarge\":\n slideSize = \"calc(95% / 5)\";\n break;\n default:\n slideSize = \"95%\";\n break;\n }\n return slideSize;\n }, [containerWidth, getCurrentDevice]);\n\n const getSlideSpacing = React.useCallback(() => {\n const deviceSize = getCurrentDevice(containerWidth);\n\n let slideSpacing = tokens.spacingVerticalM;\n\n switch (deviceSize) {\n case \"Medium\":\n slideSpacing = tokens.spacingVerticalM;\n break;\n case \"Large\":\n slideSpacing = tokens.spacingVerticalL;\n break;\n case \"ExtraLarge\":\n slideSpacing = tokens.spacingVerticalXL;\n break;\n default:\n slideSpacing = tokens.spacingVerticalM;\n break;\n }\n return slideSpacing;\n }, [containerWidth, getCurrentDevice]);\n\n const enableControls = css({\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"stretch\",\n gap: 10,\n padding: 5,\n });\n\n const embla__viewport = css({\n overflow: \"hidden\",\n paddingTop: \"10px\",\n paddingBottom: \"20px\",\n });\n\n const embla__container = css({\n backfaceVisibility: \"hidden\",\n display: \"flex\",\n touchAction: \"pan-y\",\n \n });\n\n const embla = css({\n \".embla\": {},\n });\n\n const embla__slide = css({\n minWidth: 0,\n flex: `0 0 ${slideSizeBasedOnWidth()}`,\n paddingLeft: `${getSlideSpacing()}`,\n });\n\nconst embla__buttons = css({\n display: \"grid\",\n gridTemplateColumns: \"repeat(2, 1fr)\",\n gap: 0,\n alignItems: \"center\",\n});\n\n\n return { enableControls, embla__viewport, embla__container, embla, embla__slide, embla__buttons };\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\n \nimport { ICarouselProps } from './ICarouselProps';\nimport { useComponentUtils } from '../../utils';\n\nexport const useCarouselStylesMain = (props: ICarouselProps) => {\n const { styles } = props;\n\n const { getBaseStyles } = useComponentUtils();\n const carouselStyles = React.useCallback(\n (containerWidth: number, containerHeight: number): React.CSSProperties => {\n const baseStyles = getBaseStyles(props, containerWidth, containerHeight);\n return {\n ...baseStyles,\n ...styles,\n };\n },\n [getBaseStyles, props, styles]\n );\n\n return { carouselStyles };\n};\n ","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport useEmblaCarousel from 'embla-carousel-react';\n\nimport {\n Button,\n makeStyles,\n mergeClasses,\n Subtitle2,\n} from '@fluentui/react-components';\nimport {\n ChevronLeftRegular,\n ChevronRightRegular,\n} from '@fluentui/react-icons';\n\nimport { ICarouselProps } from './ICarouselProps';\nimport { usePrevNextButtons } from './useCarouselButton';\nimport { useCarouselStyles } from './useCarouselStyles';\nimport { useCarouselStylesMain } from './useCarouselStylesMain';\n\nconst useStyle = makeStyles({\n titleStyles:{\n display: \"-webkit-box\",\n overflow : \"hidden\",\n textOverflow: \"ellipsis\",\n \"-webkit-line-clamp\": \"1\",\n \"-webkit-box-orient\": \"vertical\",\n textAlign: \"start\",\n height: \"25px\",\n }\n})\n\nexport const Carousel = (\n props: React.PropsWithChildren<ICarouselProps>\n) => {\n const { className, items, title } = props;\n const ref = React.useRef<HTMLDivElement>(null);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const { carouselStyles } = useCarouselStylesMain(props);\n const [emblaRef, emblaApi] = useEmblaCarousel();\nconst styles = useStyle();\n const {\n enableControls,\n embla__slide,\n embla__container,\n embla__viewport,\n embla__buttons,\n \n } = useCarouselStyles(props, width );\n const { prevBtnDisabled, nextBtnDisabled, onPrevButtonClick, onNextButtonClick } = usePrevNextButtons(emblaApi);\n\n React.useEffect(() => {\n let resizeObserver: ResizeObserver;\n if (ref.current) {\n // observer to detect changes in the size of the container\n\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setWidth(width);\n setHeight(height);\n }\n });\n setWidth(ref.current.clientWidth);\n setHeight(ref.current.clientHeight);\n resizeObserver.observe(ref.current);\n }\n return () => {\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, []);\n\n return (\n <>\n <div\n id=\"-carousel\"\n className={mergeClasses(className, \"embla\")}\n style={{ ...carouselStyles(width, height) }}\n ref={ref}\n >\n <div className={enableControls}>\n <Subtitle2\n className={styles.titleStyles}\n \n >\n {title}\n </Subtitle2>\n\n <div className={embla__buttons}>\n <Button\n onClick={onPrevButtonClick}\n disabled={prevBtnDisabled}\n appearance=\"subtle\"\n icon={<ChevronLeftRegular />}\n />\n <Button\n onClick={onNextButtonClick}\n disabled={nextBtnDisabled}\n appearance=\"subtle\"\n icon={<ChevronRightRegular />}\n />\n </div>\n </div>\n\n <div className={embla__viewport} ref={emblaRef}>\n <div className={embla__container}>\n {items.map((item, index) => (\n <div className={embla__slide} key={index}>\n {item}\n </div>\n ))}\n </div>\n </div>\n </div>\n </>\n );\n};\n","import {\n Card,\n FluentProvider,\n Theme,\n teamsLightTheme,\n} from \"@fluentui/react-components\";\nimport React, { useEffect, useLayoutEffect, useRef, useState } from \"react\";\n\nimport ReactDOM from \"react-dom\";\nimport { css } from \"@emotion/css\";\n\nexport interface PopupProps {\n anchorPoint: { left: number; top: number };\n isOpen: boolean;\n onClose: () => void;\n // Elements that should be excluded from triggering the onClose (for example, the input)\n excludeRefs?: React.RefObject<HTMLElement>[];\n children: React.ReactNode;\n theme?: Theme;\n}\n\ninterface IStyles {\n card: string;\n}\n\nconst useStyles = (): IStyles => {\n return {\n card: css({\n position: \"absolute\",\n zIndex: 1000,\n }),\n };\n};\n\nexport const Popup: React.FC<PopupProps> = ({\n anchorPoint,\n isOpen,\n onClose,\n excludeRefs,\n children,\n theme,\n}) => {\n const popupRef = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState(anchorPoint);\n const styles = useStyles();\n\n // Adjust position to stay within window boundaries.\n useLayoutEffect(() => {\n if (popupRef.current) {\n const rect = popupRef.current.getBoundingClientRect();\n let newLeft = anchorPoint.left;\n let newTop = anchorPoint.top;\n // Adjust horizontally if overflow\n if (newLeft + rect.width > window.innerWidth) {\n newLeft = window.innerWidth - rect.width - 10; // 10px margin\n }\n // Adjust vertically if overflow\n if (newTop + rect.height > window.innerHeight) {\n newTop = window.innerHeight - rect.height - 10; // 10px margin\n }\n setPosition({ left: newLeft, top: newTop });\n }\n }, [anchorPoint, children]);\n\n // Memoize the click handler to avoid unnecessary re-creation\n const handleClickOutside = React.useCallback(\n (e: MouseEvent): void => {\n const target = e.target as Node;\n if (popupRef.current && !popupRef.current.contains(target)) {\n if (\n excludeRefs &&\n excludeRefs.some((ref) => ref.current && ref.current.contains(target))\n ) {\n return;\n }\n onClose();\n }\n },\n [onClose, excludeRefs]\n );\n\n // Global click handler: close if click is outside popup and excludeRefs.\n useEffect(() => {\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n const handleEscapeKey = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\") {\n onClose();\n }\n };\n document.addEventListener(\"keydown\", handleEscapeKey);\n\n return () => {\n document.removeEventListener(\"keydown\", handleEscapeKey);\n };\n }\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpen, handleClickOutside]);\n\n if (!isOpen) return null;\n\n return ReactDOM.createPortal(\n <FluentProvider theme={theme || teamsLightTheme}>\n <Card\n ref={popupRef}\n className={styles.card}\n style={{\n top: position.top,\n left: position.left,\n }}\n >\n {children}\n </Card>\n </FluentProvider>,\n document.body\n );\n};\n","import { mergeClasses, tokens } from \"@fluentui/react-components\";\n\nimport { IStackV2Props } from \"./IStackV2Props\";\nimport React from \"react\";\nimport { css } from \"@emotion/css\";\n\n/**\n * Mapping of predefined sizes to Fluent UI tokens.\n */\nconst sizeMap: Record<string, string> = {\n xs: tokens.spacingHorizontalXS,\n s: tokens.spacingHorizontalS,\n m: tokens.spacingHorizontalM,\n l: tokens.spacingHorizontalL,\n xl: tokens.spacingHorizontalXL,\n xxl: tokens.spacingHorizontalXXL,\n};\n\n/**\n * Stack component provides a flexible layout using Flexbox.\n * It allows stacking child components either horizontally or vertically with predefined spacing options.\n */\nexport const StackV2: React.FC<IStackV2Props> = React.memo(\n ({\n direction = \"vertical\",\n justifyContent = \"flex-start\",\n alignItems = \"stretch\",\n gap,\n columnGap,\n rowGap,\n margin,\n padding,\n marginTop,\n marginBottom,\n marginLeft,\n marginRight,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n width,\n height,\n wrap = false,\n children,\n style,\n className,\n overflow,\n background\n }) => {\n const stackStyle = css({\n display: \"flex\",\n flexDirection: direction === \"horizontal\" ? \"row\" : \"column\",\n justifyContent,\n alignItems,\n gap: gap && sizeMap[gap] ? sizeMap[gap] : gap,\n columnGap:\n columnGap && sizeMap[columnGap] ? sizeMap[columnGap] : columnGap,\n rowGap: rowGap && sizeMap[rowGap] ? sizeMap[rowGap] : rowGap,\n margin: margin && sizeMap[margin] ? sizeMap[margin] : margin,\n padding: padding && sizeMap[padding] ? sizeMap[padding] : padding,\n marginTop:\n marginTop && sizeMap[marginTop] ? sizeMap[marginTop] : marginTop,\n marginBottom:\n marginBottom && sizeMap[marginBottom]\n ? sizeMap[marginBottom]\n : marginBottom,\n marginLeft:\n marginLeft && sizeMap[marginLeft] ? sizeMap[marginLeft] : marginLeft,\n marginRight:\n marginRight && sizeMap[marginRight]\n ? sizeMap[marginRight]\n : marginRight,\n paddingTop:\n paddingTop && sizeMap[paddingTop] ? sizeMap[paddingTop] : paddingTop,\n paddingBottom:\n paddingBottom && sizeMap[paddingBottom]\n ? sizeMap[paddingBottom]\n : paddingBottom,\n paddingLeft:\n paddingLeft && sizeMap[paddingLeft]\n ? sizeMap[paddingLeft]\n : paddingLeft,\n paddingRight:\n paddingRight && sizeMap[paddingRight]\n ? sizeMap[paddingRight]\n : paddingRight,\n width,\n height,\n overflow,\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n backgroundColor: background,\n ...style,\n });\n\n return (\n <div className={mergeClasses(className, stackStyle)}>{children}</div>\n );\n }\n);\n\nexport default StackV2;\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n makeStyles,\n shorthands,\n} from '@fluentui/react-components';\n\nexport const useRenderLabelStyles = makeStyles({\n\n labelContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n ...shorthands.gap(\"6px\"),\n },\n iconStyles: {\n width: \"26px\",\n },\n item: {\n paddingLeft: \"15px\",\n },\n \n\n});\n","import * as React from 'react';\n\nimport {\n Caption1,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nimport { useRenderLabelStyles } from './useRenderLabelStylesStyles';\n\nexport interface IRenderLabelProps {\n label: string; icon?: string | JSX.Element; isRequired?: boolean\n}\n\nexport const RenderLabel: React.FunctionComponent<IRenderLabelProps> = (props: React.PropsWithChildren<IRenderLabelProps>) => {\n const { label, icon, isRequired } = props;\n const styles = useRenderLabelStyles();\n return (\n <>\n <div className={styles.labelContainer}>\n {icon && React.isValidElement(icon) ? (\n icon\n ) : (\n <Icon\n icon={icon as string}\n className={styles.iconStyles}\n width={\"20px\"}\n height={\"20px\"}\n color={tokens.colorBrandForeground1}\n />\n )}\n <Caption1 style={{ color: tokens.colorBrandForeground1 }}>{label}</Caption1>\n <Caption1 style={{ color: tokens.colorPaletteRedForeground1 }}>{isRequired ? \" *\" : \"\"}</Caption1>\n </div>\n </>\n );\n};\n\nexport default RenderLabel;\n","import * as React from 'react';\n\nimport {\n makeStyles,\n mergeClasses,\n Spinner,\n} from '@fluentui/react-components';\n\nconst useStyles = makeStyles({\n root: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n\n height: \"100%\",\n width: \"100%\",\n },\n spinner: {\n width: \"100px\",\n height: \"100px\",\n },\n});\n\nexport interface IRenderSpinnerProps {\n size: \"medium\" | \"small\" | \"extra-tiny\" | \"tiny\" | \"extra-small\" | \"large\" | \"extra-large\" | \"huge\";\n label?: string;\n labelPosition?: \"above\" | \"below\" | \"before\" | \"after\";\n style?: React.CSSProperties;\n className?: string;\n}\n\nexport const RenderSpinner: React.FunctionComponent<IRenderSpinnerProps> = (\n props: React.PropsWithChildren<IRenderSpinnerProps>\n) => {\n const { size, label, labelPosition, style, className } = props;\n\n const styles = useStyles();\n return (\n <div className={styles.root}>\n <Spinner\n style={style}\n className={mergeClasses(styles.spinner, className)}\n size={size}\n label={label}\n labelPosition={labelPosition}\n />\n </div>\n );\n};\n","import * as React from \"react\";\n\nimport { Text, mergeClasses, tokens } from \"@fluentui/react-components\";\n\nimport { ITypographyControlProps } from \"./ITypographyControlProps\";\nimport { css } from \"@emotion/css\";\n\n/**\n * Mapping of predefined font sizes to Fluent UI tokens.\n */\nconst fontSizeMap: Record<string, string> = {\n xs: tokens.fontSizeBase200,\n s: tokens.fontSizeBase300,\n m: tokens.fontSizeBase400,\n l: tokens.fontSizeBase500,\n xl: tokens.fontSizeBase600,\n xxl: tokens.fontSizeHero700,\n};\n\n/**\n * Mapping of predefined spacing sizes to Fluent UI tokens.\n */\nconst spacingMap: Record<string, string> = {\n xs: tokens.spacingHorizontalXS,\n s: tokens.spacingHorizontalS,\n m: tokens.spacingHorizontalM,\n l: tokens.spacingHorizontalL,\n xl: tokens.spacingHorizontalXL,\n xxl: tokens.spacingHorizontalXXL,\n};\n\n/**\n * Mapping of predefined font weights to Fluent UI tokens.\n */\nconst fontWeightMap: Record<string, string> = {\n regular: tokens.fontWeightRegular,\n semibold: tokens.fontWeightSemibold,\n bold: tokens.fontWeightBold,\n};\n\n/**\n * TypographyControl component provides a way to control typography styles with Fluent UI's `Text` component as the base.\n */\nexport const TypographyControl: React.FC<ITypographyControlProps> = (props: ITypographyControlProps) => {\n const {\n fontSize,\n fontWeight,\n numberOfLines,\n as,\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n margin,\n marginTop,\n marginBottom,\n marginLeft,\n marginRight,\n children,\n style,\n className,\n color\n } = props;\n const typographyStyle = css({\n color: color,\n fontSize:\n fontSize && fontSizeMap[fontSize] ? fontSizeMap[fontSize] : fontSize,\n fontWeight:\n fontWeight && fontWeightMap[fontWeight]\n ? fontWeightMap[fontWeight]\n : fontWeight,\n display: numberOfLines ? \"-webkit-box\" : undefined,\n WebkitBoxOrient: \"vertical\",\n overflow: numberOfLines ? \"hidden\" : undefined,\n WebkitLineClamp: numberOfLines,\n padding: padding && spacingMap[padding] ? spacingMap[padding] : padding,\n paddingTop:\n paddingTop && spacingMap[paddingTop]\n ? spacingMap[paddingTop]\n : paddingTop,\n paddingBottom:\n paddingBottom && spacingMap[paddingBottom]\n ? spacingMap[paddingBottom]\n : paddingBottom,\n paddingLeft:\n paddingLeft && spacingMap[paddingLeft]\n ? spacingMap[paddingLeft]\n : paddingLeft,\n paddingRight:\n paddingRight && spacingMap[paddingRight]\n ? spacingMap[paddingRight]\n : paddingRight,\n margin: margin && spacingMap[margin] ? spacingMap[margin] : margin,\n marginTop:\n marginTop && spacingMap[marginTop] ? spacingMap[marginTop] : marginTop,\n marginBottom:\n marginBottom && spacingMap[marginBottom]\n ? spacingMap[marginBottom]\n : marginBottom,\n marginLeft:\n marginLeft && spacingMap[marginLeft]\n ? spacingMap[marginLeft]\n : marginLeft,\n marginRight:\n marginRight && spacingMap[marginRight]\n ? spacingMap[marginRight]\n : marginRight,\n ...style,\n });\n\n return (\n <Text as={as} className={mergeClasses(className, typographyStyle)}>\n {children}\n </Text>\n );\n};\n\nexport default TypographyControl;\n","import * as React from \"react\";\n\nimport {\n Field,\n Menu,\n MenuButton,\n MenuItemRadio,\n MenuList,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n Theme,\n} from \"@fluentui/react-components\";\n\nimport { IButtonMenuOption } from \"./IButtonMenuOption\";\n\nexport interface IButtonMenuProps {\n onSelected: (option: IButtonMenuOption) => void;\n value?: IButtonMenuOption;\n label?: string;\n styles?: React.CSSProperties;\n theme?: Theme;\n options: IButtonMenuOption[];\n apparence?: \"primary\" | \"subtle\" | \"outline\" | \"transparent\";\n shape?: \"circular\" | \"square\";\n}\n\nexport const ButtonMenu: React.FunctionComponent<IButtonMenuProps> = (\n props: React.PropsWithChildren<IButtonMenuProps>\n) => {\n const { onSelected, value, styles, options, apparence, shape, label } = props;\n const iconSelectedRef = React.useRef<JSX.Element>();\n\n // State for selected option\n const [selectedOption, setSelectedOption] = React.useState<IButtonMenuOption>(\n value ?? options[0]\n );\n\n const [checkedValues, setCheckedValues] = React.useState<\n Record<string, string[]>\n >({\n option: [value ? value?.key : options?.[0]?.key],\n });\n\n const fieldRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n // Synchronize selectedOption with props\n if (value !== undefined) {\n setSelectedOption(value);\n setCheckedValues({ option: [value.key] });\n }\n iconSelectedRef.current = options.find(\n (option) => option.key === (value?.key ?? options[0]?.key)\n )?.icon;\n }, [value]);\n\n const [open, setOpen] = React.useState(false);\n const onOpenChange: MenuProps[\"onOpenChange\"] = React.useCallback(\n (_e: any, data: any) => {\n setOpen(data.open);\n },\n []\n );\n\n const getOptionLabel = React.useCallback((option: IButtonMenuOption) => {\n return option?.text ?? \"\";\n }, []);\n\n const onCheckedValueChange: MenuProps[\"onCheckedValueChange\"] =\n React.useCallback(\n (\n _e: unknown,\n { name, checkedItems }: { name: string; checkedItems: string[] }\n ) => {\n if (name === \"option\") {\n const newOption = checkedItems[0];\n setSelectedOption(\n options.find((option) => option.key === newOption)!\n );\n setCheckedValues({ option: checkedItems });\n iconSelectedRef.current = options.find(\n (option) => option.key === newOption\n )?.icon;\n onSelected(options.find((option) => option.key === newOption)!);\n }\n },\n [options, onSelected]\n );\n \n return (\n <>\n <Field label={label} style={styles} ref={fieldRef}>\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <MenuButton\n shape={shape ?? \"circular\"}\n icon={iconSelectedRef.current}\n appearance={apparence ?? \"secondary\"}\n >\n {getOptionLabel(selectedOption) ?? \"No data available\"}\n </MenuButton>\n </MenuTrigger>\n <MenuPopover>\n <MenuList\n onCheckedValueChange={onCheckedValueChange}\n checkedValues={checkedValues}\n style={{ width: fieldRef.current?.offsetWidth }}\n >\n {options.map((option: IButtonMenuOption) => (\n <MenuItemRadio\n key={option.key}\n name=\"option\"\n value={option.key}\n icon={option.icon}\n disabled={option.disabled}\n >\n {getOptionLabel(option)}\n </MenuItemRadio>\n ))}\n </MenuList>\n </MenuPopover>\n </Menu>\n </Field>\n </>\n );\n};\n","import { IBreadcrumbItem } from './IBreadcrumItem';\nimport { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useBreadcrumStyles = () => {\n const styles = {\n container: css({\n display: 'flex',\n alignItems: 'center',\n alignContent: 'center',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n padding: '8px',\n backgroundColor: 'transparent'\n }),\n breadcrumbItem: css({\n minWidth: 'fit-content',\n padding: 0,\n margin: '0px',\n }),\n separator: css({\n marginRight: '8px',\n }),\n };\n const getStyles = (\n props: IBreadcrumbItem,\n size: 'small' | 'medium' | 'large' | 'current'\n ) => {\n const { icon } = props;\n switch (size) {\n case 'small':\n return css({\n fontSize: '12px',\n padding: '4px',\n paddingLeft: icon ? '0px' : '4px',\n });\n case 'medium':\n return css({\n fontSize: '14px',\n padding: '6px',\n paddingLeft: icon ? '0px' : '6px',\n });\n case 'large':\n return css({\n fontSize: '16px',\n padding: '8px',\n paddingLeft: icon ? '0px' : '8px',\n });\n case 'current':\n return css({\n fontWeight: tokens.fontWeightBold,\n cursor: 'default',\n display: '-webkit-box',\n '-webkit-line-clamp': '1',\n '-webkit-box-orient': 'vertical',\n overflow: 'hidden',\n textAlign: 'start',\n textOverflow: 'ellipsis',\n wordBreak: 'break-word',\n fontFamily: tokens.fontFamilyBase,\n });\n\n default:\n return css({\n fontSize: '14px',\n padding: '6px',\n paddingLeft: icon ? '0px' : '6px',\n });\n }\n };\n return { styles, getStyles };\n};\n","import {\n Button,\n Card,\n FluentProvider,\n Text,\n Theme,\n} from \"@fluentui/react-components\";\nimport React, { useEffect, useRef, useState } from \"react\";\n\nimport { IBreadcrumbItem } from \"./IBreadcrumItem\";\nimport { MoreHorizontalRegular } from \"@fluentui/react-icons\";\nimport { createPortal } from \"react-dom\";\nimport { useBreadcrumStyles } from \"./useBreadcrumStyles\";\n\ninterface OverflowMenuProps {\n items: IBreadcrumbItem[];\n theme?: Theme; // Fluent UI theme\n size?: 'small' | 'medium' | 'large'; // Add size property\n }\n \n export const OverflowMenu: React.FC<OverflowMenuProps> = ({ items, theme , size=\"medium\"}) => {\n const [showDropdown, setShowDropdown] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [dropdownStyles, setDropdownStyles] = useState<React.CSSProperties>({\n top: 0,\n left: 0,\n position: \"absolute\",\n });\n\n const { getStyles} = useBreadcrumStyles();\n \n const handleButtonClick = () => {\n if (buttonRef.current) {\n const buttonRect = buttonRef.current.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n \n const dropdownWidth = dropdownRef.current?.offsetWidth || 200; // Fallback to 200px width\n const dropdownHeight = dropdownRef.current?.offsetHeight || 100; // Fallback to 100px height\n \n let top = buttonRect.bottom + window.scrollY;\n let left = buttonRect.left + window.scrollX;\n \n // Adjust for right edge\n if (left + dropdownWidth > viewportWidth) {\n left = viewportWidth - dropdownWidth - 10; // Add some padding from the edge\n }\n \n // Adjust for bottom edge\n if (top + dropdownHeight > viewportHeight) {\n top = buttonRect.top + window.scrollY - dropdownHeight; // Show above the button\n }\n \n setDropdownStyles({\n top,\n left,\n position: \"absolute\",\n });\n \n setShowDropdown((prev) => !prev);\n }\n };\n \n useEffect(() => {\n const handleOutsideClick = (event: MouseEvent) => {\n if (\n !buttonRef.current?.contains(event.target as Node) &&\n !dropdownRef.current?.contains(event.target as Node) &&\n showDropdown\n ) {\n setShowDropdown(false);\n }\n };\n \n document.addEventListener(\"mousedown\", handleOutsideClick);\n return () => {\n document.removeEventListener(\"mousedown\", handleOutsideClick);\n };\n }, [showDropdown]);\n \n return (\n <>\n <Button\n ref={buttonRef}\n icon={<MoreHorizontalRegular />}\n appearance=\"transparent\"\n onClick={handleButtonClick}\n />\n {showDropdown &&\n createPortal(\n <FluentProvider theme={theme}>\n <Card\n ref={dropdownRef}\n style={{\n ...dropdownStyles,\n zIndex: 1000, // Ensure it's above other elements\n padding: \"8px\",\n minWidth: \"150px\",\n }}\n >\n {items.map((item, index) => (\n <Button\n icon={item.icon ? item.icon : null}\n key={`overflow-${index}`}\n appearance=\"transparent\"\n onClick={() => {\n item.onClick?.();\n setShowDropdown(false);\n }}\n >\n <Text className={getStyles(item, size)}>{item.label}</Text>\n </Button>\n ))}\n </Card>\n </FluentProvider>,\n document.body // Append to the body using React Portal\n )}\n </>\n );\n };\n \n export default OverflowMenu;","import * as React from 'react';\n\nimport { AvatarNamedColor, tokens } from '@fluentui/react-components';\nimport { format, parseISO } from 'date-fns';\n\nimport { IEventColors } from '../models/IEventColors';\n\nexport const useUtils = () => {\n const getSpanSlots = React.useCallback((start: Date, end: Date) => {\n const startDate = new Date(start);\n const endDate = new Date(end);\n // Calculate the start and end slots based on event times\n const startHour = startDate.getHours();\n const startMinute = startDate.getMinutes();\n const startSlot = startHour * 2 + (startMinute >= 1 ? 1 : 0); // Adjust for 30-minute slots\n const endHour = endDate.getHours();\n const endMinute = endDate.getMinutes();\n const endSlot = endHour * 2 + (endMinute >= 1 ? 2 : 0); // Adjust for 30-minute slots\n const spanSlots = endSlot - startSlot;\n return { spanSlots, startSlot, endSlot };\n }, []);\n const generateLightAndHoverColors = React.useCallback((\n baseColor: string,\n lightnessIncrease: number = 20, // Increase in lightness for light variant\n hoverIncrease: number = 10 // Increase in lightness for hover variant\n ): { lightColor: string; hoverColor: string } => {\n // Function to convert hex to HSL\n const hexToHsl = (hex: string): { h: number; s: number; l: number } => {\n const r = parseInt(hex.slice(1, 3), 16) / 255;\n const g = parseInt(hex.slice(3, 5), 16) / 255;\n const b = parseInt(hex.slice(5, 7), 16) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const delta = max - min;\n\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n\n if (delta !== 0) {\n s = l > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n switch (max) {\n case r:\n h = (g - b) / delta + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / delta + 2;\n break;\n case b:\n h = (r - g) / delta + 4;\n break;\n }\n h /= 6;\n }\n\n return { h: h * 360, s: s * 100, l: l * 100 };\n };\n // Function to convert HSL to hex\n const hslToHex = (h: number, s: number, l: number): string => {\n const a = (s * Math.min(l, 100 - l)) / 100;\n const f = (n: number): string => {\n const k = (n + h / 30) % 12;\n const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return Math.round(255 * color)\n .toString(16)\n .padStart(2, '0');\n };\n return `#${f(0)}${f(8)}${f(4)}`;\n };\n // Convert base color to HSL\n const { h, s, l } = hexToHsl(baseColor);\n // Generate light and hover colors by adjusting lightness\n const lightColor = hslToHex(h, s, Math.min(l + lightnessIncrease, 100));\n const hoverColor = hslToHex(h, s, Math.min(l + hoverIncrease, 100));\n\n return { lightColor, hoverColor };\n }, []);\n const getEventColors = React.useCallback((category: string): IEventColors => {\n // Default colors if the category is not recognized\n const defaultColors: IEventColors = {\n backgroundColor: tokens.colorNeutralBackground3,\n hoverColor: tokens.colorNeutralBackground3Hover,\n };\n\n // Define a color map using Fluent UI 9 tokens\n const colorMap: Record<string, IEventColors> = {\n 'no category': defaultColors,\n meeting: {\n backgroundColor: tokens.colorPaletteBlueBackground2,\n hoverColor: tokens.colorPaletteBlueBorderActive,\n },\n appointment: {\n backgroundColor: tokens.colorPaletteGreenBackground2,\n hoverColor: tokens.colorPaletteGreenBorderActive,\n },\n task: {\n backgroundColor: tokens.colorPaletteRedBackground2,\n hoverColor: tokens.colorPaletteRedBorderActive,\n },\n deadline: {\n backgroundColor: tokens.colorPaletteYellowBackground2,\n hoverColor: tokens.colorPaletteYellowBorderActive,\n },\n holiday: {\n backgroundColor: tokens.colorPalettePurpleBackground2,\n hoverColor: tokens.colorPalettePurpleBorderActive,\n },\n celebration: {\n backgroundColor: tokens.colorPaletteDarkOrangeBackground2,\n hoverColor: tokens.colorPaletteDarkOrangeBorderActive,\n },\n reminder: {\n backgroundColor: tokens.colorPaletteTealBackground2,\n hoverColor: tokens.colorPaletteTealBorderActive,\n },\n workshop: {\n backgroundColor: tokens.colorPaletteTealBackground2,\n hoverColor: tokens.colorPaletteTealBorderActive,\n },\n webinar: {\n backgroundColor: tokens.colorPaletteMagentaBackground2,\n hoverColor: tokens.colorPaletteMagentaBorderActive,\n },\n conference: {\n backgroundColor: tokens.colorPaletteBrownBackground2,\n hoverColor: tokens.colorPaletteBrownBorderActive,\n },\n };\n\n \n // Return the corresponding colors or fallback to the default\n return colorMap[category.toLowerCase()] || defaultColors;\n }, []);\n const generateColor = React.useCallback((str: string): string => {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n const c = (hash & 0x00ffffff).toString(16).toUpperCase();\n\n return `#${'00000'.substring(0, 6 - c.length) + c}`;\n }, []);\n const getCalendarColors = React.useCallback(\n (colorName: AvatarNamedColor): IEventColors => {\n const calendarColorMap: Record<AvatarNamedColor, IEventColors> = {\n beige: {\n backgroundColor: tokens.colorPaletteBeigeBackground2,\n hoverColor: tokens.colorPaletteBeigeBorderActive,\n },\n blue: {\n backgroundColor: tokens.colorPaletteBlueBackground2,\n hoverColor: tokens.colorPaletteBlueBorderActive,\n },\n brown: {\n backgroundColor: tokens.colorPaletteBrownBackground2,\n hoverColor: tokens.colorPaletteBrownBorderActive,\n },\n gold: {\n backgroundColor: tokens.colorPaletteGoldBackground2,\n hoverColor: tokens.colorPaletteGoldBorderActive,\n },\n lavender: {\n backgroundColor: tokens.colorPaletteLavenderBackground2,\n hoverColor: tokens.colorPaletteLavenderBorderActive,\n },\n magenta: {\n backgroundColor: tokens.colorPaletteMagentaBackground2,\n hoverColor: tokens.colorPaletteMagentaBorderActive,\n },\n navy: {\n backgroundColor: tokens.colorPaletteNavyBackground2,\n hoverColor: tokens.colorPaletteNavyBorderActive,\n },\n pink: {\n backgroundColor: tokens.colorPalettePinkBackground2,\n hoverColor: tokens.colorPalettePinkBorderActive,\n },\n plum: {\n backgroundColor: tokens.colorPalettePlumBackground2,\n hoverColor: tokens.colorPalettePlumBorderActive,\n },\n purple: {\n backgroundColor: tokens.colorPalettePurpleBackground2,\n hoverColor: tokens.colorPalettePurpleBorderActive,\n },\n red: {\n backgroundColor: tokens.colorPaletteRedBackground2,\n hoverColor: tokens.colorPaletteRedBorderActive,\n },\n teal: {\n backgroundColor: tokens.colorPaletteTealBackground2,\n hoverColor: tokens.colorPaletteTealBorderActive,\n },\n anchor: {\n backgroundColor: tokens.colorPaletteAnchorBackground2,\n hoverColor: tokens.colorPaletteAnchorBorderActive,\n },\n 'dark-red': {\n backgroundColor: tokens.colorPaletteDarkRedBackground2,\n hoverColor: tokens.colorPaletteDarkRedBorderActive,\n },\n cranberry: {\n backgroundColor: tokens.colorPaletteCranberryBackground2,\n hoverColor: tokens.colorPaletteCranberryBorderActive,\n },\n pumpkin: {\n backgroundColor: tokens.colorPalettePumpkinBackground2,\n hoverColor: tokens.colorPalettePumpkinBorderActive,\n },\n peach: {\n backgroundColor: tokens.colorPalettePeachBackground2,\n hoverColor: tokens.colorPalettePeachBorderActive,\n },\n marigold: {\n backgroundColor: tokens.colorPaletteMarigoldBackground2,\n hoverColor: tokens.colorPaletteMarigoldBorderActive,\n },\n brass: {\n backgroundColor: tokens.colorPaletteBrassBackground2,\n hoverColor: tokens.colorPaletteBrassBorderActive,\n },\n forest: {\n backgroundColor: tokens.colorPaletteForestBackground2,\n hoverColor: tokens.colorPaletteForestBorderActive,\n },\n seafoam: {\n backgroundColor: tokens.colorPaletteSeafoamBackground2,\n hoverColor: tokens.colorPaletteSeafoamBorderActive,\n },\n 'dark-green': {\n backgroundColor: tokens.colorPaletteDarkGreenBackground2,\n hoverColor: tokens.colorPaletteDarkGreenBorderActive,\n },\n 'light-teal': {\n backgroundColor: tokens.colorPaletteLightTealBackground2,\n hoverColor: tokens.colorPaletteLightTealBorderActive,\n },\n steel: {\n backgroundColor: tokens.colorPaletteSteelBackground2,\n hoverColor: tokens.colorPaletteSteelBorderActive,\n },\n 'royal-blue': {\n backgroundColor: tokens.colorPaletteRoyalBlueBackground2,\n hoverColor: tokens.colorPaletteRoyalBlueBorderActive,\n },\n cornflower: {\n backgroundColor: tokens.colorPaletteCornflowerBackground2,\n hoverColor: tokens.colorPaletteCornflowerBorderActive,\n },\n grape: {\n backgroundColor: tokens.colorPaletteGrapeBackground2,\n hoverColor: tokens.colorPaletteGrapeBorderActive,\n },\n lilac: {\n backgroundColor: tokens.colorPaletteLilacBackground2,\n hoverColor: tokens.colorPaletteLilacBorderActive,\n },\n mink: {\n backgroundColor: tokens.colorPaletteMinkBackground2,\n hoverColor: tokens.colorPaletteMinkBorderActive,\n },\n platinum: {\n backgroundColor: tokens.colorPalettePlatinumBackground2,\n hoverColor: tokens.colorPalettePlatinumBorderActive,\n },\n };\n\n // Fallback to royal-blue if the provided color isn't mapped\n const defaultColor: IEventColors = calendarColorMap['royal-blue'];\n return calendarColorMap[colorName] || defaultColor;\n },\n []\n );\n const formatDate = React.useCallback((dateISO: string, dateFormat: string): string => {\n const date = parseISO(dateISO);\n return format(date, dateFormat);\n }, []);\n\n return {\n getSpanSlots,\n generateLightAndHoverColors,\n getEventColors,\n generateColor,\n getCalendarColors,\n formatDate,\n };\n}","import * as React from \"react\";\n\nimport {\n AvatarGroup,\n AvatarGroupItem,\n AvatarGroupPopover,\n Badge,\n Body1,\n Button,\n Divider,\n Subtitle1,\n partitionAvatarGroupItems,\n} from \"@fluentui/react-components\";\n\nimport { Card } from \"../Card\";\nimport { IEvent } from \"./models/IEvents\";\nimport { IEventDetailsPopoverStrings } from \"./models/IStrings\";\nimport { RenderLabel } from \"../RenderLabel\";\nimport { Stack } from \"../Stack\";\nimport { css } from \"@emotion/css\";\nimport { useUtils } from \"./hooks/useUtils\";\n\n// Default strings values\nexport const defaultEventDetailsPopoverStrings: IEventDetailsPopoverStrings = {\n start: \"Start\",\n end: \"End\",\n location: \"Location\",\n attendees: \"Attendees\",\n details: \"Details\",\n};\n\nexport interface IEventDetailsPopoverProps {\n event: IEvent;\n // Optional strings prop for localization\n strings?: IEventDetailsPopoverStrings;\n}\n\nconst PADDING_LEFT = \"32px\";\n\nconst useStyles = (_props?: IEvent) => {\n const styles = {\n banner: css({\n display: \"flex\",\n justifyContent: \"center\",\n alignContent: \"center\",\n alignItems: \"center\",\n padding: `5px 10px 0px 10px`,\n }),\n fieldContainer: css({\n paddingLeft: PADDING_LEFT,\n }),\n title: css({\n lineClamp: 2,\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n wordBreak: 'break-word',\n WebkitLineClamp: 2,}),\n };\n return { styles };\n};\n\nconst RenderProperty: React.FC<{\n fieldLabel: string;\n fieldValue: string;\n icon: JSX.Element | string;\n}> = ({ fieldLabel, fieldValue, icon }) => {\n return (\n <Stack>\n <RenderLabel label={fieldLabel} icon={icon} />\n <Stack paddingLeft={PADDING_LEFT}>\n <Body1>{fieldValue}</Body1>\n </Stack>\n </Stack>\n );\n};\n\nexport const EventDetailsPopover: React.FunctionComponent<IEventDetailsPopoverProps> = (\n props: React.PropsWithChildren<IEventDetailsPopoverProps>\n) => {\n const { event, strings = defaultEventDetailsPopoverStrings } = props;\n const { title, start, end, location, category, attendees, weblink } = event;\n const { styles } = useStyles(event);\n const { formatDate } = useUtils();\n const formatedStartDate = formatDate(start, \"PPp\");\n const formatedEndDate = formatDate(end, \"PPp\");\n\n const partitionedItems = partitionAvatarGroupItems({\n items: attendees?.map((attendee) => attendee.id) || [],\n });\n\n const getAttendee = React.useCallback(\n (id: string) => {\n return attendees?.find((attendee) => attendee.id === id) || undefined;\n },\n [attendees]\n );\n\n const RenderAttendees = React.useCallback((): JSX.Element => {\n return (\n <Stack>\n <RenderLabel label={strings.attendees} icon={\"ph:users-three\"} />\n <Stack paddingLeft={PADDING_LEFT}>\n <AvatarGroup layout=\"stack\">\n {partitionedItems.inlineItems.map((id) => (\n <AvatarGroupItem\n name={getAttendee(id)?.name}\n key={id}\n image={{ src: getAttendee(id)?.imageUrl }}\n />\n ))}\n {partitionedItems.overflowItems && (\n <AvatarGroupPopover>\n {partitionedItems.overflowItems.map((id) => (\n <AvatarGroupItem\n name={getAttendee(id)?.name}\n key={id}\n image={{ src: getAttendee(id)?.imageUrl }}\n />\n ))}\n </AvatarGroupPopover>\n )}\n </AvatarGroup>\n </Stack>\n </Stack>\n );\n }, [partitionedItems, getAttendee, strings.attendees]);\n\n return (\n <>\n <Card\n appearance=\"subtle\"\n padding=\"m\"\n paddingTop={\"s\"}\n width=\"250px\"\n cardBody={\n <Stack RowGap={10}>\n <div className={styles.banner}>\n <Subtitle1 className={styles.title}>{title}</Subtitle1>\n </div>\n <Divider />\n {category && (\n <Stack horizontal horizontalAlign=\"end\" width={\"100%\"}>\n <Badge appearance=\"filled\">{category}</Badge>\n </Stack>\n )}\n <RenderProperty\n fieldLabel={strings.start}\n fieldValue={formatedStartDate}\n icon={\"mingcute:time-line\"}\n />\n <RenderProperty\n fieldLabel={strings.end}\n fieldValue={formatedEndDate}\n icon={\"mingcute:time-line\"}\n />\n <RenderProperty\n fieldLabel={strings.location}\n fieldValue={location as string}\n icon={\"mingcute:location-line\"}\n />\n <RenderAttendees />\n </Stack>\n }\n cardFooterContent={\n <Stack horizontal horizontalAlign=\"end\" width=\"100%\">\n <Button\n appearance=\"subtle\"\n onClick={() => {\n window.open(weblink, \"_blank\");\n }}\n >\n {strings.details}\n </Button>\n </Stack>\n }\n />\n </>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\nimport { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useCalendarStyles = () => {\n const styles = {\n calendarWrapper: css({\n padding: '20px',\n paddingTop: '10px',\n overflow: 'auto',\n flex: 1,\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)', // 7 columns for the days of the week\n gridTemplateRows: 'auto', // Automatically sizes the header row\n gridAutoRows: 'minmax(100px, 1fr)', // Ensures all rows have a minimum height of 100px and grow equally\n gap: '1px', // Gap between cells\n width: 'calc(100% - 40px)', // Full width minus padding\n }),\n header: css({\n display: 'flex',\n justifyContent: 'start',\n gap: '10px',\n alignItems: 'center',\n padding: '16px',\n }),\n dayHeader: css({\n textAlign: 'start',\n padding: '8px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke1}`,\n }),\n day: css({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n backgroundColor: tokens.colorNeutralBackground1,\n position: 'relative', // Ensure proper stacking context\n }),\n otherMonthDay: css({\n color: tokens.colorNeutralStroke2,\n backgroundColor: tokens.colorNeutralBackground2,\n }),\n cardDay: css({\n height: '100%',\n minHeight: 100,\n borderRadius: 0,\n overflow: 'hidden !important',\n rowGap: 5,\n }),\n cardDayOnHover: css({\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground2,\n },\n }),\n\n currentDay: css({\n borderTop: `5px solid ${tokens.colorBrandBackground}`,\n }),\n currentDayLabel: css({\n color: tokens.colorBrandBackground,\n fontWeight: 600,\n }),\n eventCard: css({\n /* backgroundColor: tokens.colorNeutralBackground1, */\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n\n zIndex: 1, // Ensure it appears above parent hover styles\n }),\n eventContainer: css({\n display: 'flex',\n flexDirection: 'column',\n overflowY: 'auto', // Ensures proper overflow handling\n paddingTop: '5px',\n paddingBottom: '5px',\n paddingLeft: '5px',\n paddingRight: '5px',\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n }),\n eventCardWeekView: css({\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n borderRadius: '4px',\n padding: '4px',\n margin: '2px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n height: '100%',\n }),\n popoverContent: css({\n padding: 0,\n borderTopWidth: 20,\n borderTopStyle: 'solid',\n }),\n cardMonthTitle: css({\n display: '-webkit-box',\n '-webkit-line-clamp': '1',\n '-webkit-box-orient': 'vertical',\n textAlign: 'start',\n textOverflow: 'ellipsis',\n paddingLeft: '8px',\n wordBreak: 'break-word',\n overflow: 'hidden',\n \n }),\n };\n const applyEventHouverColorClass = (\n backgroundColor: string,\n houverColor: string\n ) => {\n return css({\n backgroundColor: backgroundColor ?? tokens.colorBrandBackground,\n ':hover': {\n backgroundColor: houverColor ?? tokens.colorBrandBackgroundHover,\n },\n });\n };\n\n return { styles, applyEventHouverColorClass };\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from \"react\";\n\nimport {\n Caption1,\n Popover,\n PopoverSurface,\n PopoverTrigger,\n PositioningImperativeRef,\n mergeClasses,\n useId,\n} from \"@fluentui/react-components\";\nimport { endOfDay, isWithinInterval, startOfDay } from \"date-fns\";\n\nimport { Card } from \"../Card\";\nimport { EventDetailsPopover } from \"./EventDetailsPopover\";\nimport { IEvent } from \"./models/IEvents\";\nimport { IEventColors } from \"./models/IEventColors\";\nimport { useCalendarStyles } from \"./hooks/useCalendarStyles\";\nimport { useUtils } from \"./hooks/useUtils\";\n\nexport interface IRenderEventToDayOfMonthProps {\n events: IEvent[];\n date: Date;\n onCardHoverChange?: (isHovered: boolean, eventTitle: string) => void;\n columnHeight: number; // Height of the column passed as a prop\n\n}\n\nexport const RenderEventToDayOfMonth: React.FunctionComponent<\n React.PropsWithChildren<IRenderEventToDayOfMonthProps>\n> = (props) => {\n const headerId = useId();\n const {\n events,\n date,\n onCardHoverChange,\n columnHeight,\n\n } = props;\n const { styles, applyEventHouverColorClass } = useCalendarStyles();\n\n const positioningRef = React.useRef<PositioningImperativeRef>(null);\n const { getEventColors, getCalendarColors } = useUtils();\n\n const handleMouseEnter = React.useCallback((eventTitle: string): void => {\n if (onCardHoverChange) {\n onCardHoverChange(true, eventTitle);\n }\n }, [onCardHoverChange]);\n\n const handleMouseLeave = React.useCallback(\n (eventTitle: string) => {\n if (onCardHoverChange) {\n onCardHoverChange(false, eventTitle);\n }\n },\n [onCardHoverChange]\n );\n\n // Set the target for the popover\n const buttonRef = React.useCallback(\n (el: HTMLDivElement | null) => {\n positioningRef.current?.setTarget(el);\n },\n [positioningRef]\n );\n\n // Render the card without popover\n const renderCard = React.useCallback(\n (index: number, calEvent: IEvent, colors: IEventColors) => {\n return (\n <div ref={buttonRef}>\n <Card\n key={index}\n className={mergeClasses(\n styles.eventCard,\n applyEventHouverColorClass(\n colors.backgroundColor,\n colors.backgroundColor\n )\n )}\n paddingTop=\"4px\"\n paddingBottom=\"4px\"\n paddingLeft=\"8px\"\n paddingRight=\"8px\"\n marginTop={index === 0 ? \"0px\" : \"5px\"}\n cardHeader={<Caption1 className={styles.cardMonthTitle}>{calEvent.title}</Caption1>}\n onMouseEnter={() => handleMouseEnter(calEvent.title)}\n onMouseLeave={() => handleMouseLeave(calEvent.title)}\n />\n </div>\n );\n },\n [handleMouseEnter, handleMouseLeave, applyEventHouverColorClass]\n );\n\n // Render the card with popover to show event details\n const renderCardWithPopOver = React.useCallback(\n (calEvent: IEvent, index: number, colors: IEventColors) => {\n return (\n <Popover\n withArrow\n key={index}\n mouseLeaveDelay={30}\n closeOnScroll={true}\n closeOnIframeFocus={true}\n openOnHover\n >\n <PopoverTrigger>\n {renderCard(index, calEvent, colors)}\n </PopoverTrigger>\n <PopoverSurface\n aria-labelledby={headerId}\n className={mergeClasses(styles.popoverContent)}\n >\n <EventDetailsPopover event={calEvent} />\n </PopoverSurface>\n </Popover>\n );\n },\n [renderCard, headerId, styles.popoverContent]\n );\n\n if (!events || !events?.length) return <> </>;\n\n return (\n <div style={{ height: columnHeight }} className={styles.eventContainer}>\n {events.map((calEvent, index) => {\n const eventStart = startOfDay(new Date(calEvent.start));\n const eventEnd = endOfDay(new Date(calEvent.end));\n\n const isEventInDay = isWithinInterval(date, {\n start: eventStart,\n end: eventEnd,\n });\n\n if (!isEventInDay) return null;\n let colors: IEventColors | undefined = undefined;\n if (calEvent.color) {\n colors = getCalendarColors(calEvent.color);\n } else {\n colors = getEventColors(calEvent.category!);\n }\n const customRender = calEvent.onRenderInMonthView?.(calEvent);\n // If the event has a custom renderer, use it\n if (React.isValidElement(customRender)) {\n return React.cloneElement(customRender as React.ReactElement, {\n className: mergeClasses(\n (customRender.props as any).className,\n styles.eventCard\n ),\n });\n }\n return calEvent.enableOnHouver\n ? renderCardWithPopOver(calEvent, index, colors)\n : renderCard(index, calEvent, colors);\n })}\n </div>\n );\n};\n","import * as React from 'react';\n\nimport { Body2, mergeClasses } from '@fluentui/react-components';\n\nimport { Card } from '../Card';\nimport { IEvent } from './models/IEvents';\nimport { RenderEventToDayOfMonth } from './RenderEventToDayOfMonth';\nimport { Stack } from '../Stack';\nimport { isSameDay } from 'date-fns';\nimport { useCalendarStyles } from './hooks/useCalendarStyles';\n\nexport interface IDayProps {\n day: number;\n date: Date;\n currentMonth: boolean;\n events: IEvent[];\n columnHeight: number;\n onDayClick?: (date: Date) => void;\n}\n\nexport const Day: React.FunctionComponent<IDayProps> = (\n props: React.PropsWithChildren<IDayProps>\n) => {\n const { day, currentMonth, events, date, columnHeight, onDayClick } = props;\n const { styles } = useCalendarStyles();\n const currentDate = new Date();\n const [isEventHovered, setIsEventHovered] = React.useState(false);\n\n const isCurrentDayAndMonth = React.useMemo(() => {\n return isSameDay(date, currentDate);\n }, [date, currentDate]);\n\n const renderCurrentDayLabel = React.useMemo(() => {\n return (\n <Stack\n horizontal\n horizontalAlign=\"start\"\n verticalAlign=\"center\"\n paddingLeft={'m'}\n paddingRight={'m'}\n >\n <Body2 className={styles.currentDayLabel}>\n {day} {currentDate.toLocaleString('default', { month: 'short' })}\n </Body2>\n </Stack>\n );\n }, [day]);\n\n const handleCardHoverChange = React.useCallback(\n (isHovered: boolean): void => {\n setIsEventHovered(isHovered);\n },\n []\n );\n\n return (\n <>\n <Card\n onClick={onDayClick ? () => onDayClick(date) : undefined}\n className={mergeClasses(\n styles.cardDay,\n currentMonth ? '' : styles.otherMonthDay,\n isCurrentDayAndMonth ? styles.currentDay : '',\n !isEventHovered ? styles.cardDayOnHover : ''\n )}\n cardHeader={\n isCurrentDayAndMonth ? (\n renderCurrentDayLabel\n ) : (\n <Stack horizontal paddingLeft={'m'} paddingRight={'m'}>\n <Body2>{day}</Body2>\n </Stack>\n )\n }\n paddingTop=\"m\"\n paddingBottom=\"m\"\n paddingLeft=\"0px\"\n paddingRight=\"0px\"\n cardBody={\n <RenderEventToDayOfMonth\n events={events}\n date={date}\n onCardHoverChange={handleCardHoverChange}\n columnHeight={columnHeight - 60}\n />\n }\n />\n </>\n );\n};\n","import React from 'react';\nimport { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\ninterface WeekViewStyles {\n container: string;\n header: string;\n weekGrid: string;\n blankHeader: string;\n timeColumn: string;\n timeCell: string;\n fullDayRow: string;\n fullDayLabel: string;\n fullDayCell: string;\n fullDayEvent: string;\n dayHeaderCell: string;\n todayHeaderCell: string;\n eventCard: string;\n event: string;\n dayCell: string;\n currentTimeIndicator: string;\n currentHalfHourCell: string;\n eventTitle: string;\n popoverContent: string;\n}\n\ninterface UseWeekViewStyles {\n styles: WeekViewStyles;\n applyEventHouverColorClass: (\n backgroundColor: string,\n hoverColor: string\n ) => string;\n appyDynamicStyles: (\n eventIndex: number,\n eventCount: number,\n rowHeight: number,\n spanSlots: number\n ) => string;\n}\n\nexport const useWeekViewStyles = (): UseWeekViewStyles => {\n const styles: WeekViewStyles = {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n width: 'calc(100% - 40px)',\n height: '100vh', // Make the container take the full viewport height\n overflow: 'hidden', // Prevent window scrolling\n padding: '20px',\n }),\n header: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '16px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke1}`,\n }),\n weekGrid: css({\n display: 'grid',\n gridTemplateColumns: '80px repeat(7, 1fr)', // Time column + 7 day columns\n gridTemplateRows: '50px 40px repeat(48, 33px)', // Header row + Full-day row + 48 rows (2 per hour)\n height: 'fit-content',\n overflowY: 'auto',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n maxHeight: 'calc(100vh - 100px)', // Limit the grid height to the viewport minus header/footer areas\n scrollbarWidth: 'thin', // Thin scrollbar for Firefox\n scrollbarColor: `${tokens.colorBrandBackground} ${tokens.colorNeutralBackground1}`, // Scrollbar colors for Firefox\n '&::-webkit-scrollbar': {\n width: '8px', // Width of the scrollbar\n },\n '&::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground1, // Scrollbar track background\n },\n '&::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandBackground, // Scrollbar thumb color (brand color)\n borderRadius: '4px', // Rounded corners for the thumb\n },\n '&::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorBrandBackgroundHover, // Lighter color on hover\n },\n }),\n blankHeader: css({\n gridColumn: '1',\n backgroundColor: tokens.colorNeutralBackground3,\n borderBottom: `3px solid ${tokens.colorNeutralStroke3}`,\n position: 'sticky',\n top: 0, // Sticks to the top of the scrollable container\n zIndex: 10, // Ensures it stays above the scrolling grid\n }),\n timeColumn: css({\n gridColumn: '1',\n gridRow: '3 / span 49', // Spans the entire rows after the header and full-day row\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: tokens.colorNeutralBackground1,\n borderRight: `1px solid ${tokens.colorNeutralStroke1}`,\n }),\n timeCell: css({\n height: '100%', // Let the height be dictated by the grid row's size\n display: 'flex',\n alignItems: 'center',\n fontSize: '12px',\n color: tokens.colorNeutralForeground3,\n borderBottom: `1px solid ${tokens.colorNeutralStroke1}`,\n justifyContent: 'center',\n }),\n fullDayRow: css({\n gridRow: '2', // Full-day events occupy the second row\n display: 'grid',\n gridTemplateColumns: '80px repeat(7, 1fr)', // Time column + 7 day columns\n gap: '0', // Ensure cells align properly\n padding: '0', // Remove padding for proper alignment\n backgroundColor: tokens.colorNeutralBackground2,\n borderBottom: `3px solid ${tokens.colorNeutralStroke2}`, // Bottom border for the row\n }),\n fullDayLabel: css({\n gridColumn: '1', // Place in the first column\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n alignContent: 'center',\n color: tokens.colorBrandBackground,\n padding: '5px',\n borderRight: `1px solid ${tokens.colorNeutralStroke1}`, // Right border for the label cell\n borderBottom: `3px solid ${tokens.colorNeutralStroke2}`, // Bottom border for the cell\n }),\n fullDayCell: css({\n borderRight: `1px solid ${tokens.colorNeutralStroke1}`, // Right border between day cells\n display: 'flex',\n flexDirection: 'row', // Arrange events horizontally\n gap: '0px',\n padding: '4px', // Ensure events have spacing within the cell\n borderBottom: `3px solid ${tokens.colorNeutralStroke2}`, // Bottom border for the cell\n overflow: 'hidden', // Ensure events don’t overflow the cell\n }),\n fullDayEvent: css({\n flex: '1 1 auto', // Allow events to share space equally\n minWidth: '24px',\n height: '24px',\n padding: '4px 8px',\n backgroundColor: tokens.colorBrandBackground,\n\n borderRadius: '4px',\n overflow: 'hidden',\n\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }),\n dayHeaderCell: css({\n textAlign: 'center',\n backgroundColor: tokens.colorNeutralBackground2,\n padding: '8px',\n fontWeight: 'bold',\n borderBottom: `1px solid ${tokens.colorNeutralStroke1}`,\n position: 'sticky',\n top: 0, // Sticks to the top of the scrollable container\n zIndex: 10, // Ensures it stays above the scrolling grid\n }),\n todayHeaderCell: css({\n borderTop: `5px solid ${tokens.colorBrandBackground}`,\n }),\n eventCard: css({\n padding: 2,\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '2px', // Spacing between events\n zIndex: 1, // Ensure event appears above others\n position: 'absolute', // Position relative to the cell\n alignContent: 'center',\n overflow: 'hidden',\n ':hover': {\n pointerEvents: 'auto',\n cursor: 'pointer',\n },\n }),\n event: css({\n height: '100%',\n backgroundColor: tokens.colorBrandBackground,\n borderRadius: '4px',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '2px', // Spacing between events\n zIndex: 1, // Ensure event appears above others\n position: 'absolute', // Position relative to the cell\n alignContent: 'center',\n ':hover': {\n pointerEvents: 'auto',\n cursor: 'pointer',\n },\n }),\n dayCell: css({\n borderBottom: `1px solid ${tokens.colorNeutralStroke1}`, // Cell borders\n borderRight: `1px solid ${tokens.colorNeutralStroke1}`,\n position: 'relative', // Allow child events to be positioned absolutely\n overflow: 'visible', // Ensure events aren't clipped\n FlexDirection: 'column', // Ensure events are stacked vertically\n gap: '4px',\n }),\n currentTimeIndicator: css({\n position: 'absolute',\n left: 0,\n height: '2px',\n backgroundColor: tokens.colorPaletteRedBorderActive,\n width: '100%',\n zIndex: 1,\n }),\n currentHalfHourCell: css({\n border: `2px solid ${tokens.colorPaletteRedBorderActive}`, // Highlight with a red border\n }),\n eventTitle: css({\n display: '-webkit-box',\n '-webkit-line-clamp': '1',\n '-webkit-box-orient': 'vertical',\n textAlign: 'start',\n textOverflow: 'ellipsis',\n paddingLeft: '8px',\n wordBreak: 'break-word',\n overflow: 'hidden',\n }),\n popoverContent: css({\n padding: 0,\n borderTopWidth: 20,\n borderTopStyle: 'solid',\n }),\n };\n\n const applyEventHouverColorClass = React.useCallback(\n (backgroundColor: string, hoverColor: string) => {\n return css({\n backgroundColor: backgroundColor ?? tokens.colorBrandBackground,\n\n ':hover': {\n backgroundColor: hoverColor ?? tokens.colorBrandBackgroundHover,\n },\n });\n },\n [tokens.colorBrandBackground, tokens.colorBrandBackgroundHover]\n );\n\n const appyDynamicStyles = React.useCallback(\n (\n eventIndex: number,\n eventCount: number,\n rowHeight: number,\n spanSlots: number\n ) => {\n return css({\n flex: `0 0 calc(100% / ${eventCount})`,\n height: `${rowHeight * spanSlots}px`, // Dynamically calculate height\n left: `${eventIndex * 10}%`, // Adjust for overlapping events\n width: `calc(${100 - eventIndex * 10}% - 8px)`, // Adjust width for overlap\n margin: 4, // Add margin for spacing\n marginTop: 0,\n marginBottom: 0,\n });\n },\n []\n );\n\n return { styles, applyEventHouverColorClass, appyDynamicStyles };\n};\n","import * as React from \"react\";\n\nimport {\n Caption1,\n Caption1Strong,\n Card,\n Popover,\n PopoverSurface,\n PopoverTrigger,\n mergeClasses,\n useId,\n} from \"@fluentui/react-components\";\n\nimport { EventDetailsPopover } from \"./EventDetailsPopover\";\nimport { IEvent } from \"./models/IEvents\";\nimport { IEventPopoverCardStrings } from \"./models/IStrings\";\nimport { Stack } from \"../Stack\";\nimport { useUtils } from \"./hooks/useUtils\";\nimport { useWeekViewStyles } from \"./hooks/useWeekViewStyles\";\n\n// Default strings values\nexport const defaultEventPopoverCardStrings: IEventPopoverCardStrings = {\n timeSeparator: \" - \",\n hourSuffix: \"H\",\n};\n\ninterface EventPopoverCardProps {\n event: IEvent;\n colors: { backgroundColor: string; hoverColor: string };\n spanSlots: number;\n rowHeight: number;\n eventIndex: number;\n eventCount: number;\n // Optional strings prop for localization\n strings?: IEventPopoverCardStrings;\n}\n\nexport const EventPopoverCard: React.FC<EventPopoverCardProps> = ({\n event,\n colors,\n spanSlots,\n rowHeight,\n eventIndex,\n eventCount,\n strings = defaultEventPopoverCardStrings,\n}) => {\n const headerId = useId();\n const { styles, applyEventHouverColorClass, appyDynamicStyles } = useWeekViewStyles();\n const cardRef = React.useRef<HTMLDivElement>(null);\n const { formatDate } = useUtils();\n\n const cardContent = React.useMemo(\n () => (\n <div>\n <Stack columnGap={4} verticalAlign=\"center\">\n <Caption1Strong className={styles.eventTitle}>{event.title}</Caption1Strong>\n <Stack\n columnGap={4}\n horizontal\n verticalAlign=\"center\"\n horizontalAlign=\"start\"\n >\n <Caption1>\n {formatDate(event.start, \"HH:mm\")}\n {strings.hourSuffix}\n </Caption1>\n {strings.timeSeparator}\n <Caption1>\n {formatDate(event.end, \"HH:mm\")}\n {strings.hourSuffix}\n </Caption1>\n </Stack>\n </Stack>\n </div>\n ),\n [event, formatDate, strings, styles.eventTitle]\n );\n\n return (\n <Card\n ref={cardRef}\n key={event.id}\n className={mergeClasses(\n styles.eventCard,\n applyEventHouverColorClass(colors.backgroundColor, colors.backgroundColor),\n appyDynamicStyles(eventIndex, eventCount, rowHeight, spanSlots)\n )}\n >\n {event.enableOnHouver ? (\n <Popover\n withArrow\n mouseLeaveDelay={50}\n closeOnScroll={true}\n closeOnIframeFocus={true}\n openOnHover\n >\n <PopoverTrigger>{cardContent}</PopoverTrigger>\n <PopoverSurface\n aria-labelledby={headerId}\n className={mergeClasses(styles.popoverContent)}\n >\n <EventDetailsPopover event={event} />\n </PopoverSurface>\n </Popover>\n ) : (\n cardContent\n )}\n </Card>\n );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\n\nimport { EventPopoverCard } from './EventPopoverCard';\nimport { IEvent } from './models/IEvents';\nimport { mergeClasses } from '@fluentui/react-components';\nimport { useUtils } from './hooks/useUtils';\nimport { useWeekViewStyles } from './hooks/useWeekViewStyles';\n\ninterface IEventRendererProps {\n event: IEvent;\n eventCount: number;\n spanSlots: number;\n rowHeight: number;\n eventIndex: number;\n view: 'day' | 'week';\n}\n\nexport const EventRenderer: React.FC<IEventRendererProps> = ({\n event,\n eventCount,\n spanSlots,\n rowHeight,\n eventIndex,\n view,\n}) => {\n const { styles, appyDynamicStyles } = useWeekViewStyles();\n const { getEventColors, getCalendarColors } = useUtils();\n const colors = event.color\n ? getCalendarColors(event.color)\n : getEventColors(event.category as string);\n\n const customOnRenderEvent =\n view === 'day'\n ? event.onRenderInDayView?.(event)\n : event.onRenderInWeekView?.(event);\n\n if (React.isValidElement(customOnRenderEvent)) {\n return React.cloneElement(customOnRenderEvent as React.ReactElement, {\n event,\n className: mergeClasses(\n (customOnRenderEvent.props as any).className,\n styles.eventCard,\n appyDynamicStyles(eventIndex, eventCount, rowHeight, spanSlots)\n ),\n style: {\n ...(customOnRenderEvent.props as any).style,\n },\n });\n }\n\n // Return default card\n return (\n <EventPopoverCard\n key={event.id}\n event={event}\n colors={colors}\n spanSlots={spanSlots}\n rowHeight={rowHeight}\n eventIndex={eventIndex}\n eventCount={eventCount}\n />\n );\n};\n","import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","import { IEvent } from '../models/IEvents';\n/* eslint-disable no-unmodified-loop-condition */\nimport { format } from 'date-fns';\nimport { useCallback } from 'react';\nimport { v4 as uuidv4 } from 'uuid'; // Use UUID for generating unique IDs\n\nexport interface TimeSlot {\n time: string;\n events: IEvent[];\n}\n\nexport interface DayEvents {\n date: string;\n fullDayEvents: IEvent[]; \n timeSlots: TimeSlot[];\n}\n\nexport interface IUseCalendar {\n getMonthCalendar: (\n events: IEvent[],\n year: number,\n month: number\n ) => Record<string, IEvent[]>;\n\n getWeekEvents: (events: IEvent[], startDate: string) => DayEvents[];\n}\n\nexport const useCalendar = (timezone: string): IUseCalendar => {\n // Initialize events with a unique ID\n\n const initializeEventsWithId = useCallback(\n (events: IEvent[]): IEvent[] =>\n events.map(event => ({\n ...event,\n id: event.id || uuidv4(),\n })),\n []\n );\n\n\n const toLocalDate = useCallback(\n (dateString: string): Date => {\n return new Date(\n new Date(dateString).toLocaleString(undefined, { timeZone: timezone })\n );\n },\n [timezone]\n );\n\n // Memoize getMonthCalendar to avoid re-creation unless dependencies change\n const getMonthCalendar = useCallback(\n (\n events: IEvent[],\n year: number,\n month: number\n ): Record<string, IEvent[]> => {\n const eventsWithId = initializeEventsWithId(events);\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const calendarEventsByDay: Record<string, IEvent[]> = {};\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(year, month, day);\n const dateString = format(date, 'yyyy-MM-dd');\n calendarEventsByDay[dateString] = [];\n }\n\n eventsWithId.forEach(event => {\n const eventStart = toLocalDate(event.start);\n const eventEnd = toLocalDate(event.end);\n const currentDate = new Date(eventStart);\n\n while (currentDate <= eventEnd) {\n const dateString = format(currentDate, 'yyyy-MM-dd');\n if (calendarEventsByDay[dateString]) {\n calendarEventsByDay[dateString].push(event);\n }\n currentDate.setDate(currentDate.getDate() + 1);\n }\n });\n\n return calendarEventsByDay;\n },\n [toLocalDate]\n );\n\n // Memoize getWeekEvents to avoid unnecessary re-computation\n const getWeekEvents = useCallback(\n (events: IEvent[], startDate: string): DayEvents[] => {\n const weekEvents: DayEvents[] = [];\n const start = toLocalDate(startDate);\n const eventsWithId = initializeEventsWithId(events);\n for (let i = 0; i < 7; i++) {\n const currentDate = new Date(start);\n currentDate.setDate(start.getDate() + i);\n const dateString = format(currentDate, 'yyyy-MM-dd');\n\n const dayTimeSlots: TimeSlot[] = Array.from(\n { length: 48 },\n (_, index) => ({\n time: `${String(Math.floor(index / 2)).padStart(2, '0')}:${\n index % 2 === 0 ? '00' : '30'\n }`,\n events: [],\n })\n );\n\n const fullDayEvents: IEvent[] = [];\n\n eventsWithId.forEach(event => {\n const eventStart = toLocalDate(event.start);\n const eventEnd = toLocalDate(event.end);\n\n if (event.isFullDay) {\n if (\n format(eventStart, 'yyyy-MM-dd') <= dateString &&\n format(eventEnd, 'yyyy-MM-dd') >= dateString\n ) {\n fullDayEvents.push(event);\n }\n return;\n }\n\n if (\n format(eventStart, 'yyyy-MM-dd') <= dateString &&\n format(eventEnd, 'yyyy-MM-dd') >= dateString\n ) {\n const currentSlot = new Date(eventStart);\n while (currentSlot <= eventEnd) {\n const slotDateString = format(currentSlot, 'yyyy-MM-dd');\n if (slotDateString === dateString) {\n const slotIndex =\n currentSlot.getHours() * 2 +\n (currentSlot.getMinutes() >= 30 ? 1 : 0);\n if (dayTimeSlots[slotIndex]) {\n dayTimeSlots[slotIndex].events.push(event);\n }\n }\n currentSlot.setMinutes(currentSlot.getMinutes() + 30);\n }\n }\n });\n\n weekEvents.push({\n date: dateString,\n fullDayEvents,\n timeSlots: dayTimeSlots,\n });\n }\n\n return weekEvents;\n },\n [toLocalDate]\n );\n\n return {\n getMonthCalendar,\n getWeekEvents,\n };\n};\n\nexport default useCalendar;\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useDayViewStyles = () => {\n const styles = {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n width: 'calc(100% - 40px)',\n height: '100vh', // Make the container take the full viewport height\n overflow: 'hidden', // Prevent window scrolling\n padding: '20px',\n }),\n header: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '16px',\n borderBottom: `1px solid ${tokens.colorNeutralStroke1}`,\n }),\n dayGrid: css({\n display: 'grid',\n gridTemplateColumns: '80px 1fr',\n gridTemplateRows: '50px 40px repeat(48, 33px)', // Header row + Full-day row + 48 rows (2 per hour)\n height: 'calc(100vh - 100px)', // Full height minus header/footer areas\n overflowY: 'auto',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n maxHeight: 'fit-content', // Limit the grid height to the viewport minus header/footer areas\n scrollbarWidth: 'thin', // Thin scrollbar for Firefox\n scrollbarColor: `${tokens.colorBrandBackground} ${tokens.colorNeutralBackground1}`, // Scrollbar colors for Firefox\n '&::-webkit-scrollbar': {\n width: '8px', // Width of the scrollbar\n },\n '&::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground1, // Scrollbar track background\n },\n '&::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandBackground, // Scrollbar thumb color (brand color)\n borderRadius: '4px', // Rounded corners for the thumb\n },\n '&::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorBrandBackgroundHover, // Lighter color on hover\n },\n }),\n blankHeader: css({\n gridColumn: '1',\n backgroundColor: tokens.colorNeutralBackground3,\n borderBottom: `3px solid ${tokens.colorNeutralStroke3}`,\n }),\n timeColumn: css({\n gridColumn: '1',\n gridRow: '3 / span 49', // Spans the entire rows after the header and full-day row\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: tokens.colorNeutralBackground1,\n borderRight: `1px solid ${tokens.colorNeutralStroke1}`,\n }),\n timeCell: css({\n height: '100%', // Let the height be dictated by the grid row's size\n maxHeight: '32px', // Limit the cell height\n minHeight: '32px', // Ensure the cell has a minimum height\n display: 'flex',\n alignItems: 'center',\n fontSize: '12px',\n color: tokens.colorNeutralForeground3,\n borderBottom: `1px solid ${tokens.colorNeutralStroke1}`,\n justifyContent: 'center',\n }),\n fullDayRow: css({\n gridRow: '2', // Full-day events occupy the second row\n display: 'grid',\n gridTemplateColumns: '80px 33px', // Time column + 7 day columns\n gap: '0', // Ensure cells align properly\n padding: '0', // Remove padding for proper alignment\n backgroundColor: tokens.colorNeutralBackground2,\n borderBottom: `3px solid ${tokens.colorNeutralStroke2}`, // Bottom border for the row\n }),\n fullDayLabel: css({\n gridColumn: '1', // Place in the first column\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n alignContent: 'center',\n color: tokens.colorBrandBackground,\n padding: '5px',\n borderRight: `1px solid ${tokens.colorNeutralStroke1}`, // Right border for the label cell\n borderBottom: `3px solid ${tokens.colorNeutralStroke2}`, // Bottom border for the cell\n }),\n fullDayCell: css({\n borderRight: `1px solid ${tokens.colorNeutralStroke1}`, // Right border between day cells\n display: 'flex',\n flexDirection: 'row', // Arrange events horizontally\n gap: '2px',\n padding: '4px', // Ensure events have spacing within the cell\n borderBottom: `3px solid ${tokens.colorNeutralStroke2}`, // Bottom border for the cell\n overflow: 'hidden', // Ensure events don’t overflow the cell\n }),\n fullDayEvent: css({\n flex: '1 1 auto', // Allow events to share space equally\n minWidth: '24px',\n height: '24px',\n padding: '4px 8px',\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n borderRadius: '4px',\n overflow: 'hidden',\n\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }),\n dayHeaderCell: css({\n textAlign: 'center',\n backgroundColor: tokens.colorNeutralBackground2,\n padding: '8px',\n fontWeight: 'bold',\n borderBottom: `1px solid ${tokens.colorNeutralStroke1}`,\n }),\n todayHeaderCell: css({\n borderTop: `5px solid ${tokens.colorBrandBackground}`,\n }),\n eventCard: css({\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: '2px', // Spacing between events\n zIndex: 1, // Ensure event appears above others\n position: 'absolute', // Position relative to the cell\n alignContent: 'center',\n\n overflow: 'hidden',\n\n /* ':hover': {\n pointerEvents: 'auto',\n cursor: 'pointer',\n opacity: 0.8,\n color: tokens.colorNeutralForegroundOnBrand,\n }, */\n }),\n\n dayCell: css({\n borderBottom: `1px solid ${tokens.colorNeutralStroke1}`, // Cell borders\n borderRight: `1px solid ${tokens.colorNeutralStroke1}`,\n position: 'relative', // Allow child events to be positioned absolutely\n overflow: 'visible', // Ensure events aren't clipped\n FlexDirection: 'column', // Ensure events are stacked vertically\n gap: '4px',\n }),\n currentTimeIndicator: css({\n position: 'absolute',\n left: 0,\n height: '2px',\n backgroundColor: tokens.colorPaletteRedBorderActive,\n width: '100%',\n zIndex: 1,\n }),\n currentHalfHourCell: css({\n border: `2px solid ${tokens.colorPaletteRedBorderActive}`, // Highlight with a red border\n }),\n eventTitle: css({\n display: '-webkit-box',\n '-webkit-line-clamp': '1',\n '-webkit-box-orient': 'vertical',\n textAlign: 'start',\n textOverflow: 'ellipsis',\n paddingLeft: '8px',\n wordBreak: 'break-word',\n overflow: 'hidden',\n }),\n };\n\n const applyEventHouverColorClass = (\n backgroundColor: string,\n houveColor: string\n ) => {\n return css({\n backgroundColor: backgroundColor ?? tokens.colorBrandBackground,\n ':hover': {\n backgroundColor: houveColor ?? tokens.colorBrandBackgroundHover,\n },\n });\n };\n\n return { styles, applyEventHouverColorClass };\n};\n","import * as React from 'react';\n\nimport {\n Body1,\n Body1Strong,\n Caption1Strong,\n Subtitle1,\n Text,\n mergeClasses,\n} from '@fluentui/react-components';\nimport { addDays, format, isToday } from 'date-fns';\n\nimport { EventRenderer } from './EventRender';\nimport { IDayViewStrings } from './models/IStrings';\nimport { IEvent } from './models/IEvents';\nimport { useCalendar } from './hooks/useCalendar';\nimport { useDayViewStyles } from './hooks/useDayViewStyles';\nimport { useRef } from 'react';\nimport { useUtils } from './hooks/useUtils';\n\nexport interface IDayViewProps {\n events: IEvent[];\n currentDay: Date;\n height?: string | number;\n // Optional strings for localization\n strings?: IDayViewStrings;\n}\n\nexport const defaultDayViewStrings: IDayViewStrings = {\n allDay: 'All Day',\n};\n\nconst ROW_HEIGHT = 33;\n\nexport const DayView: React.FC<IDayViewProps> = (props: IDayViewProps) => {\n const { events, currentDay, height, strings = defaultDayViewStrings } = props;\n const { styles } = useDayViewStyles();\n\n const calendarRef = useRef<HTMLDivElement>(null);\n const { getSpanSlots, getEventColors, getCalendarColors } = useUtils();\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const { getWeekEvents } = useCalendar(timeZone);\n\n const renderTimeColumn = React.useCallback((): JSX.Element[] => {\n return Array.from({ length: 24 }, (_, hour) => (\n <React.Fragment key={hour}>\n <div className={styles.timeCell}>\n <Body1Strong>{hour}:00</Body1Strong>\n </div>\n <div className={styles.timeCell} />\n </React.Fragment>\n ));\n }, [styles.timeCell]);\n\n const renderDayHeaders = React.useCallback((): JSX.Element => {\n return (\n <>\n <div className={styles.blankHeader} />\n {Array.from({ length: 1 }, (_, dayIndex) => {\n const day = addDays(currentDay, dayIndex);\n const isTodayClass = isToday(day) ? styles.todayHeaderCell : '';\n return (\n <div\n key={dayIndex}\n className={mergeClasses(styles.dayHeaderCell, isTodayClass)}\n >\n <Text weight=\"semibold\" size={600} style={{ paddingRight: 10 }}>\n {format(day, 'dd')}\n </Text>\n <Subtitle1>{format(day, 'LLLL, yyyy')}</Subtitle1>\n </div>\n );\n })}\n </>\n );\n }, [\n currentDay,\n styles.blankHeader,\n styles.dayHeaderCell,\n styles.todayHeaderCell,\n ]);\n\n const renderFullDayEvents = React.useCallback((): JSX.Element => {\n const weekEvents = getWeekEvents(events, currentDay.toISOString());\n return (\n <>\n <div className={styles.fullDayLabel}>\n <Body1>{strings.allDay}</Body1>\n </div>\n {Array.from({ length: 1 }, (_, dayIndex) => {\n const weekDay = format(addDays(currentDay, dayIndex), 'yyyy-MM-dd');\n const dayEvents = weekEvents.find(day => day.date === weekDay);\n const fullDayEvents = dayEvents?.fullDayEvents || [];\n return (\n <div key={dayIndex} className={styles.fullDayCell}>\n {fullDayEvents.map(event => (\n <div\n key={event.id}\n className={styles.fullDayEvent}\n style={{\n gridColumn: `${dayIndex + 2}`,\n backgroundColor: event.color\n ? getCalendarColors(event.color).backgroundColor\n : getEventColors(event.category!).backgroundColor,\n }}\n >\n <Caption1Strong className={styles.eventTitle}>\n {event.title}\n </Caption1Strong>\n </div>\n ))}\n </div>\n );\n })}\n </>\n );\n }, [\n currentDay,\n getWeekEvents,\n styles.fullDayCell,\n styles.fullDayEvent,\n styles.fullDayLabel,\n styles.eventTitle,\n getCalendarColors,\n getEventColors,\n events,\n strings.allDay,\n ]);\n\n const renderDayCells = React.useCallback((): JSX.Element[] => {\n const weekEvents = getWeekEvents(events, currentDay.toISOString());\n return Array.from({ length: 1 }, (_, dayIndex) => {\n const weekDay = format(addDays(currentDay, dayIndex), 'yyyy-MM-dd');\n const dayEvents = weekEvents.find(day => day.date === weekDay);\n return (\n <React.Fragment key={dayIndex}>\n {dayEvents?.timeSlots.map((timeSlot, slotIndex) => {\n const eventCount = timeSlot.events.length;\n return (\n <div\n key={slotIndex}\n className={styles.dayCell}\n style={{\n gridRow: slotIndex + 3,\n }}\n >\n {timeSlot.events.map((event, eventIndex) => {\n const startDate = new Date(event.start);\n const endDate = new Date(event.end);\n const { spanSlots, startSlot } = getSpanSlots(\n startDate,\n endDate\n );\n if (slotIndex === startSlot) {\n return (\n <EventRenderer\n key={event.id}\n event={event}\n eventCount={eventCount}\n spanSlots={spanSlots}\n rowHeight={ROW_HEIGHT}\n eventIndex={eventIndex}\n view=\"day\"\n />\n );\n }\n return null;\n })}\n </div>\n );\n })}\n </React.Fragment>\n );\n });\n }, [currentDay, getSpanSlots, getWeekEvents, styles.dayCell, events]);\n\n return (\n <div className={styles.container} style={{ height: height }}>\n <div ref={calendarRef} className={styles.dayGrid}>\n <div className={styles.timeColumn}>{renderTimeColumn()}</div>\n {renderDayHeaders()}\n {renderFullDayEvents()}\n {renderDayCells()}\n </div>\n </div>\n );\n};\n\nexport default DayView;\n","export enum ECalendarViews {\n Day = \"day\",\n Week = \"week\",\n Month = \"month\",\n}","/* eslint-disable @typescript-eslint/no-var-requires */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-empty */\nimport * as React from \"react\";\n\nimport {\n CalendarDayFilled,\n CalendarDayRegular,\n CalendarMonthFilled,\n CalendarMonthRegular,\n CalendarWorkWeekFilled,\n CalendarWorkWeekRegular,\n bundleIcon,\n} from \"@fluentui/react-icons\";\nimport {\n Menu,\n MenuButton,\n MenuItemRadio,\n MenuList,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n} from \"@fluentui/react-components\";\n\nimport { ECalendarViews } from \"./models/ECalendarViews\";\nimport { ISelectCalendarViewStrings } from \"./models/IStrings\";\n\n// Default strings values\nexport const defaultSelectCalendarViewStrings: ISelectCalendarViewStrings = {\n month: \"Month\",\n week: \"Week\",\n day: \"Day\",\n};\n\nexport interface ISelectCalendarViewProps {\n onSelected: (view: ECalendarViews) => void;\n value?: ECalendarViews;\n // New strings prop for localization\n strings?: ISelectCalendarViewStrings;\n}\n\nexport const SelectCalendarView: React.FunctionComponent<\n React.PropsWithChildren<ISelectCalendarViewProps>\n> = (props) => {\n const { onSelected, value, strings = defaultSelectCalendarViewStrings } = props;\n\n // State for selected view\n const [selectedView, setSelectedView] = React.useState<ECalendarViews>(\n value ?? ECalendarViews.Month\n );\n\n const [checkedValues, setCheckedValues] = React.useState<Record<string, string[]>>({\n view: [value ?? ECalendarViews.Month],\n });\n\n const DayView = React.useMemo(\n () => bundleIcon(CalendarDayFilled, CalendarDayRegular),\n []\n );\n const MonthView = React.useMemo(\n () => bundleIcon(CalendarMonthFilled, CalendarMonthRegular),\n []\n );\n const WeekView = React.useMemo(\n () => bundleIcon(CalendarWorkWeekFilled, CalendarWorkWeekRegular),\n []\n );\n\n React.useEffect(() => {\n // Synchronize selectedView with props\n if (value !== undefined) {\n setSelectedView(value);\n setCheckedValues({ view: [value] });\n }\n }, [value]);\n\n const [open, setOpen] = React.useState(false);\n const onOpenChange: MenuProps[\"onOpenChange\"] = React.useCallback((_e: any, data: any) => {\n setOpen(data.open);\n }, []);\n\n const viewIcon = React.useCallback(() => {\n switch (selectedView) {\n case ECalendarViews.Month:\n return <MonthView />;\n case ECalendarViews.Week:\n return <WeekView />;\n case ECalendarViews.Day:\n return <DayView />;\n default:\n return <MonthView />;\n }\n }, [selectedView]);\n\n // Updated to use localized strings\n const getViewLabel = React.useCallback(\n (view: ECalendarViews) => {\n switch (view) {\n case ECalendarViews.Month:\n return strings.month;\n case ECalendarViews.Week:\n return strings.week;\n case ECalendarViews.Day:\n return strings.day;\n default:\n return strings.month;\n }\n },\n [strings]\n );\n\n const onCheckedValueChange: MenuProps[\"onCheckedValueChange\"] = React.useCallback(\n (\n _e: unknown,\n { name, checkedItems }: { name: string; checkedItems: string[] }\n ) => {\n if (name === \"view\") {\n const newView = checkedItems[0] as ECalendarViews;\n setSelectedView(newView);\n setCheckedValues({ view: checkedItems });\n onSelected(newView);\n }\n },\n [onSelected]\n );\n\n return (\n <>\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <MenuButton\n shape=\"circular\"\n icon={viewIcon()}\n style={{ minWidth: \"150px\" }}\n >\n {getViewLabel(selectedView)}\n </MenuButton>\n </MenuTrigger>\n <MenuPopover>\n <MenuList\n onCheckedValueChange={onCheckedValueChange}\n checkedValues={checkedValues}\n >\n <MenuItemRadio\n icon={<DayView />}\n name=\"view\"\n value={ECalendarViews.Day}\n >\n {strings.day}\n </MenuItemRadio>\n <MenuItemRadio\n icon={<WeekView />}\n name=\"view\"\n value={ECalendarViews.Week}\n >\n {strings.week}\n </MenuItemRadio>\n <MenuItemRadio\n icon={<MonthView />}\n name=\"view\"\n value={ECalendarViews.Month}\n >\n {strings.month}\n </MenuItemRadio>\n </MenuList>\n </MenuPopover>\n </Menu>\n </>\n );\n};\n","import * as React from 'react';\n\nimport {\n CalendarMonthFilled,\n CalendarMonthRegular,\n bundleIcon,\n} from '@fluentui/react-icons';\nimport {\n Menu,\n MenuButton,\n MenuList,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n} from '@fluentui/react-components';\n// @ts-ignore - date-fns-tz has type definition issues with package.json exports\nimport { format, utcToZonedTime } from 'date-fns-tz'; // Importing date-fns and timezone utilities\n\nimport { Calendar } from '@fluentui/react-calendar-compat'; // Assuming Fluent UI's Calendar is installed\n\nexport interface ISelectDayProps {\n onSelected: (date: Date) => void; // Returns the selected date\n value?: Date; // Initial date value\n}\n\nexport const SelectDay: React.FunctionComponent<ISelectDayProps> = React.memo(\n (props: React.PropsWithChildren<ISelectDayProps>) => {\n const { onSelected, value } = props;\n\n // State for selected date\n const [selectedDate, setSelectedDate] = React.useState<Date | undefined>(\n value ?? new Date()\n );\n const [selectedLabel, setSelectedLabel] = React.useState<string>(() => {\n const initialDate = value ?? new Date();\n return format(initialDate, 'dd MMM, yyyy');\n });\n\n const [open, setOpen] = React.useState(false);\n\n const onOpenChange: MenuProps['onOpenChange'] = React.useCallback(\n (\n _e: any,\n data: { open: boolean | ((prevState: boolean) => boolean) }\n ) => {\n setOpen(data.open);\n },\n []\n );\n\n const MonthIcon = React.useMemo(\n () => bundleIcon(CalendarMonthFilled, CalendarMonthRegular),\n []\n );\n\n const onSelectDate = React.useCallback(\n (date: Date | null | undefined) => {\n if (date) {\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const zonedDate = utcToZonedTime(date, timeZone);\n\n setSelectedDate(zonedDate);\n setSelectedLabel(format(zonedDate, 'dd MMM, yyyy'));\n onSelected(zonedDate);\n setOpen(false);\n }\n },\n [onSelected]\n );\n\n return (\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <MenuButton\n shape=\"circular\"\n icon={<MonthIcon />}\n style={{ minWidth: '200px' }}\n >\n {selectedLabel}\n </MenuButton>\n </MenuTrigger>\n <MenuPopover style={{ maxWidth: 'fit-content' }}>\n <MenuList>\n <Calendar\n \n highlightSelectedMonth\n showGoToToday\n onSelectDate={onSelectDate}\n value={selectedDate}\n />\n </MenuList>\n </MenuPopover>\n </Menu>\n );\n }\n);","import * as React from 'react';\n\nimport { Calendar, DateRangeType } from \"@fluentui/react-calendar-compat\";\n\nimport { ICalendarMonthStrings } from '../calendarControl/models/IStrings';\nimport { css } from '@emotion/css';\n\nconst useCalendarStyles = () => {\n return {\n root: css({\n outline: \"none\",\n }),\n };\n};\n\n \n// Default strings values (using English as default)\nexport const defaultCalendarMonthStrings: ICalendarMonthStrings = {\n months: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n shortMonths: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n days: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n shortDays: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n ],\n goToToday: \"Go to today\",\n};\n\nexport interface ICalendarMonthProps {\n onDateChange: (date: Date) => void;\n defaultSelectedDate?: Date;\n onDismiss: () => void;\n // Optional strings prop for localization\n strings?: ICalendarMonthStrings;\n}\n\nexport const CalendarMonth: React.FunctionComponent<ICalendarMonthProps> = (\n props: React.PropsWithChildren<ICalendarMonthProps>\n) => {\n const { onDateChange, defaultSelectedDate, onDismiss, strings = defaultCalendarMonthStrings } = props;\n const styles = useCalendarStyles();\n const [selectedDate, setSelectedDate] = React.useState<Date>(defaultSelectedDate ?? new Date());\n\n const onSelectDate = React.useCallback((date: Date, _selectedDateRangeArray?: Date[] | undefined): void => {\n setSelectedDate(date);\n onDateChange(date);\n onDismiss();\n }, [onDateChange, onDismiss]);\n\n return (\n <>\n <Calendar\n className={styles.root}\n dateRangeType={DateRangeType.Month}\n highlightSelectedMonth\n isDayPickerVisible={false}\n onSelectDate={onSelectDate}\n value={selectedDate}\n onDismiss={onDismiss}\n showGoToToday={false}\n allFocusable={false}\n strings={strings}\n />\n </>\n );\n};\n","/* eslint-disable @typescript-eslint/no-var-requires */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-empty */\nimport * as React from 'react';\n\nimport {\n CalendarMonthFilled,\n CalendarMonthRegular,\n bundleIcon,\n} from '@fluentui/react-icons';\nimport {\n Menu,\n MenuButton,\n MenuList,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n} from '@fluentui/react-components';\n\nimport { CalendarMonth } from './CalendarMonth';\nimport { format } from 'date-fns';\n\nexport interface ISelectMonthProps {\n onSelected: (date: Date) => void;\n value?: Date;\n}\n\n\n\nexport const SelectMonth: React.FunctionComponent<ISelectMonthProps> = (\n props: React.PropsWithChildren<ISelectMonthProps>\n) => {\n const { onSelected, value } = props;\n \n\n const Calendar = bundleIcon(CalendarMonthFilled, CalendarMonthRegular);\n const [selectedDate, setSelectedDate] = React.useState<Date>(value ?? new Date());\n\n React.useEffect(() => {\n onSelected(value ?? new Date());\n setSelectedDate(value ?? new Date());\n }, [value]);\n\n const [open, setOpen] = React.useState(false);\n const onOpenChange: MenuProps[\"onOpenChange\"] = (_e, data) => {\n setOpen(data.open);\n };\n\n const onDateChange = React.useCallback((date: Date) => {\n onSelected(date);\n setSelectedDate(date);\n }, []);\n\n return (\n <>\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <MenuButton shape=\"circular\" icon={<Calendar />} style={{minWidth: \"200px\"}}>\n {format(selectedDate, \"MMMM yyyy\" )}\n </MenuButton>\n </MenuTrigger>\n <MenuPopover>\n <MenuList>\n <CalendarMonth\n onDateChange={onDateChange}\n defaultSelectedDate={selectedDate}\n onDismiss={() => {\n setOpen(false);\n }}\n />\n </MenuList>\n </MenuPopover>\n </Menu>\n </>\n );\n};\n","import * as React from 'react';\n\nimport {\n Calendar,\n DateRangeType,\n} from '@fluentui/react-calendar-compat';\nimport {\n CalendarMonthFilled,\n CalendarMonthRegular,\n bundleIcon,\n} from '@fluentui/react-icons';\nimport {\n Menu,\n MenuButton,\n MenuList,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n} from '@fluentui/react-components';\n// @ts-ignore - date-fns-tz has type definition issues with package.json exports\nimport { format, utcToZonedTime } from 'date-fns-tz';\n\nimport { ISelectWeekStrings } from '../calendarControl/models/IStrings';\n\n// Default strings values\nexport const defaultSelectWeekStrings: ISelectWeekStrings = {\n selectWeekPlaceholder: \"Select a week\",\n};\n\nexport interface ISelectWeekProps {\n onSelected: (week: { startDate: Date; endDate: Date }) => void; // Returns start and end dates as Date objects\n value?: Date; // Start date as a Date object\n // Optional strings prop for localization\n strings?: ISelectWeekStrings;\n}\n\nconst formatWeekLabel = (week: { start: Date; end: Date }) => {\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const startMonth = format(week.start, 'MMM', { timeZone });\n const endMonth = format(week.end, 'MMM', { timeZone });\n const startYear = format(week.start, 'yyyy', { timeZone });\n const endYear = format(week.end, 'yyyy', { timeZone });\n\n if (startYear !== endYear) {\n return `${format(week.start, 'dd MMM yyyy', { timeZone })} - ${format(week.end, 'dd MMM yyyy', { timeZone })}`;\n } else if (startMonth !== endMonth) {\n return `${format(week.start, 'dd MMM', { timeZone })} - ${format(week.end, 'dd MMM yyyy', { timeZone })}`;\n } else {\n return `${format(week.start, 'dd', { timeZone })} - ${format(week.end, 'dd MMM yyyy', { timeZone })}`;\n }\n};\n\nconst getWeekRange = (date: Date) => {\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const zonedDate = utcToZonedTime(date, timeZone);\n\n const start = new Date(zonedDate);\n start.setDate(zonedDate.getDate() - zonedDate.getDay()); // Start of the week (Sunday)\n\n const end = new Date(start);\n end.setDate(start.getDate() + 6); // End of the week (Saturday)\n\n return {\n start: utcToZonedTime(start, timeZone),\n end: utcToZonedTime(end, timeZone),\n };\n};\n\nexport const SelectWeek: React.FunctionComponent<ISelectWeekProps> = React.memo(\n (props: React.PropsWithChildren<ISelectWeekProps>) => {\n const { onSelected, value, strings = defaultSelectWeekStrings } = props;\n\n const dateRangeType: DateRangeType = DateRangeType.Week;\n\n // State for selected week\n const [selectedDate, setSelectedDate] = React.useState<Date | undefined>(\n value ?? new Date()\n );\n const [selectedWeek, setSelectedWeek] = React.useState<string>(() => {\n const newValue = value ?? new Date();\n if (newValue) {\n const weekRange = getWeekRange(newValue);\n return formatWeekLabel(weekRange);\n }\n return strings.selectWeekPlaceholder;\n });\n\n const [open, setOpen] = React.useState(false);\n\n const onOpenChange: MenuProps['onOpenChange'] = React.useCallback(\n (\n _e: any,\n data: { open: boolean | ((prevState: boolean) => boolean) }\n ) => {\n setOpen(data.open);\n },\n []\n );\n\n const MonthIcon = React.useMemo(\n () => bundleIcon(CalendarMonthFilled, CalendarMonthRegular),\n []\n );\n\n const onSelectDate = React.useCallback(\n (date: Date | null | undefined) => {\n if (date) {\n setSelectedDate(date);\n const weekRange = getWeekRange(date);\n const weekLabel = formatWeekLabel(weekRange);\n\n setSelectedWeek(weekLabel);\n onSelected({ startDate: weekRange.start, endDate: weekRange.end });\n setOpen(false);\n }\n },\n [onSelected]\n );\n\n const firstDayOfWeek = React.useMemo(() => 0, []); // Week starts on Sunday\n\n return (\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <MenuButton\n shape=\"circular\"\n icon={<MonthIcon />}\n style={{ minWidth: '200px' }}\n >\n {selectedWeek}\n </MenuButton>\n </MenuTrigger>\n <MenuPopover style={{ maxWidth: 'fit-content' }}>\n <MenuList>\n <Calendar\n dateRangeType={dateRangeType}\n highlightSelectedMonth\n showGoToToday\n onSelectDate={onSelectDate}\n value={selectedDate}\n firstDayOfWeek={firstDayOfWeek}\n />\n </MenuList>\n </MenuPopover>\n </Menu>\n );\n }\n);\n","import * as React from \"react\";\n\nimport {\n ArrowDownFilled,\n ArrowDownRegular,\n ArrowUpFilled,\n ArrowUpRegular,\n CalendarTodayRegular,\n bundleIcon,\n} from \"@fluentui/react-icons\";\n\nimport { Button } from \"@fluentui/react-button\";\nimport { ECalendarViews } from \"./models/ECalendarViews\";\nimport { IToolbarStrings } from \"./models/IStrings\";\nimport { SelectCalendarView } from \"./SelectCalendarView\";\nimport { SelectDay } from \"../selectDay/SelectDay\";\nimport { SelectMonth } from \"../selectMonth/SelectMonth\";\nimport { SelectWeek } from \"../selectWeek/SelectWeek\";\nimport { Stack } from \"../Stack\";\nimport { Tooltip } from \"@fluentui/react-tooltip\";\n\n// Default strings values\nexport const defaultToolbarStrings: IToolbarStrings = {\n today: \"Today\",\n previous: \"Previous\",\n next: \"Next\",\n};\n\ninterface ToolbarProps {\n selectedView: ECalendarViews;\n onSelectedView: (view: ECalendarViews) => void;\n currentDate: Date;\n setCurrentDate: (date: Date) => void;\n onWeekChange: (date: Date) => void;\n onMonthChange: (date: Date) => void;\n onDayChange: (date: Date) => void;\n // Optional strings prop for localization\n strings?: IToolbarStrings;\n}\n\nexport const Toolbar: React.FC<ToolbarProps> = React.memo(\n ({\n selectedView,\n onSelectedView,\n currentDate,\n setCurrentDate,\n onWeekChange,\n onMonthChange,\n onDayChange,\n strings = defaultToolbarStrings,\n }) => {\n const ArrowDown = React.useMemo(\n () => bundleIcon(ArrowDownFilled, ArrowDownRegular),\n []\n );\n const ArrowUp = React.useMemo(\n () => bundleIcon(ArrowUpFilled, ArrowUpRegular),\n []\n );\n\n const onSelectWeek = React.useCallback(\n (week: { startDate: Date; endDate: Date }): void => {\n onWeekChange(week.startDate);\n setCurrentDate(week.startDate);\n },\n [onWeekChange, setCurrentDate]\n );\n\n const onSelectMonth = React.useCallback(\n (month: Date): void => {\n onMonthChange(month);\n setCurrentDate(month);\n },\n [onMonthChange, setCurrentDate]\n );\n\n const onSelectDay = React.useCallback(\n (day: Date): void => {\n onDayChange(day);\n setCurrentDate(day);\n },\n [onDayChange, setCurrentDate]\n );\n\n const RenderSelectView = React.useCallback((): JSX.Element => {\n switch (selectedView) {\n case ECalendarViews.Month:\n return <SelectMonth onSelected={onSelectMonth} value={currentDate} />;\n case ECalendarViews.Week:\n return <SelectWeek onSelected={onSelectWeek} value={currentDate} />;\n case ECalendarViews.Day:\n return <SelectDay onSelected={onSelectDay} value={currentDate} />;\n default:\n return <SelectMonth onSelected={onSelectMonth} value={currentDate} />;\n }\n }, [selectedView, onSelectMonth, onSelectWeek, onSelectDay, currentDate]);\n\n const RenderToday = React.useCallback((): JSX.Element => (\n <Tooltip content={strings.today} relationship=\"label\">\n <Button\n shape=\"circular\"\n icon={<CalendarTodayRegular />}\n size=\"medium\"\n onClick={() => onDayChange(new Date())}\n >\n {strings.today}\n </Button>\n </Tooltip>\n ), [onDayChange, strings.today]);\n\n const handleNavigation = React.useCallback(\n (offset: number): void => {\n const newDate = new Date(currentDate);\n switch (selectedView) {\n case ECalendarViews.Month:\n newDate.setMonth(newDate.getMonth() + offset);\n onMonthChange(newDate);\n break;\n case ECalendarViews.Week:\n newDate.setDate(newDate.getDate() + offset * 7);\n onWeekChange(newDate);\n break;\n case ECalendarViews.Day:\n newDate.setDate(newDate.getDate() + offset);\n onDayChange(newDate);\n break;\n default:\n break;\n }\n setCurrentDate(newDate);\n },\n [currentDate, selectedView, onMonthChange, onWeekChange, onDayChange, setCurrentDate]\n );\n\n return (\n <Stack\n width=\"calc(100% - 40px)\"\n height=\"fit-content\"\n horizontal\n horizontalAlign=\"space-between\"\n verticalAlign=\"center\"\n paddingLeft=\"20px\"\n paddingRight=\"20px\"\n paddingBottom=\"10px\"\n paddingTop=\"10px\"\n columnGap={10}\n styles={{ overflow: \"hidden\" }}\n >\n <Stack\n horizontal\n horizontalAlign=\"start\"\n verticalAlign=\"center\"\n columnGap={10}\n >\n <RenderToday />\n <RenderSelectView />\n <Tooltip content={strings.previous} relationship=\"label\">\n <Button\n size=\"medium\"\n icon={<ArrowUp fontSize={14} />}\n onClick={() => handleNavigation(-1)}\n />\n </Tooltip>\n <Tooltip content={strings.next} relationship=\"label\">\n <Button\n size=\"medium\"\n icon={<ArrowDown fontSize={14} />}\n onClick={() => handleNavigation(1)}\n />\n </Tooltip>\n </Stack>\n <Stack\n horizontal\n horizontalAlign=\"start\"\n verticalAlign=\"center\"\n columnGap={10}\n >\n <SelectCalendarView\n onSelected={onSelectedView}\n value={selectedView}\n />\n </Stack>\n </Stack>\n );\n }\n);\n\nexport default Toolbar;\n","import * as React from 'react';\n\nimport {\n Body1,\n Body1Strong,\n Caption1Strong,\n Text,\n mergeClasses,\n} from '@fluentui/react-components';\nimport { addDays, format, isToday, startOfWeek } from 'date-fns';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { EventRenderer } from './EventRender';\nimport { IEvent } from './models/IEvents';\nimport { IWeekViewStrings } from './models/IStrings';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { useCalendar } from './hooks/useCalendar';\nimport { useUtils } from './hooks/useUtils';\nimport { useWeekViewStyles } from './hooks/useWeekViewStyles';\n\n// Default strings values\nexport const defaultWeekViewStrings: IWeekViewStrings = {\n allDay: 'All Day',\n};\n\nexport interface IWeekViewProps {\n events: IEvent[];\n currentDay: Date;\n height?: string | number;\n // Optional strings prop for localization\n strings?: IWeekViewStrings;\n}\n\nexport const WeekView: React.FC<IWeekViewProps> = (props: IWeekViewProps) => {\n const {\n events,\n currentDay,\n height,\n strings = defaultWeekViewStrings,\n } = props;\n const { styles } = useWeekViewStyles();\n const [currentDate] = useState(currentDay);\n const [rowHeight, setRowHeight] = useState<number>(32); // Default row height\n const calendarRef = useRef<HTMLDivElement>(null);\n const {\n getSpanSlots,\n getEventColors,\n getCalendarColors,\n formatDate,\n } = useUtils();\n const weekStart = startOfWeek(currentDate, { weekStartsOn: 0 });\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n const { getWeekEvents } = useCalendar(timeZone);\n\n // Dynamic row height calculation using ResizeObserver\n useEffect(() => {\n const observer = new ResizeObserver(() => {\n if (calendarRef.current) {\n const firstRowCell = calendarRef.current.querySelector(\n '.dayCell'\n ) as HTMLDivElement;\n if (firstRowCell) {\n setRowHeight(firstRowCell.offsetHeight);\n }\n }\n });\n if (calendarRef.current) {\n observer.observe(calendarRef.current);\n }\n return () => {\n observer.disconnect();\n };\n }, []);\n\n const renderTimeColumn = React.useCallback((): JSX.Element[] => {\n return Array.from({ length: 24 }, (_, hour) => (\n <React.Fragment key={hour}>\n <div className={styles.timeCell}>\n <Body1Strong>{hour}:00</Body1Strong>\n </div>\n <div className={styles.timeCell} />\n </React.Fragment>\n ));\n }, [styles.timeCell]);\n\n const renderDayHeaders = React.useCallback((): JSX.Element => {\n return (\n <>\n {/* Blank Header Cell */}\n <div className={styles.blankHeader} />\n {/* Day Headers */}\n {Array.from({ length: 7 }, (_, dayIndex) => {\n const day = addDays(weekStart, dayIndex);\n const isTodayClass = isToday(day) ? styles.todayHeaderCell : '';\n return (\n <div\n key={dayIndex}\n className={mergeClasses(styles.dayHeaderCell, isTodayClass)}\n >\n <Text weight=\"regular\" size={600} style={{ paddingRight: 10 }}>\n {formatDate(day.toISOString(), 'dd')}\n </Text>\n <Body1>{formatDate(day.toISOString(), 'EEE')}</Body1>\n </div>\n );\n })}\n </>\n );\n }, [weekStart, styles, formatDate]);\n\n const renderFullDayEvents = React.useCallback((): JSX.Element => {\n const weekEvents = getWeekEvents(events, weekStart.toISOString());\n return (\n <>\n <div className={styles.fullDayLabel}>\n <Body1>{strings.allDay}</Body1>\n </div>\n {Array.from({ length: 7 }, (_, dayIndex) => {\n const weekDay = formatDate(\n addDays(weekStart, dayIndex).toISOString(),\n 'yyyy-MM-dd'\n );\n const dayEvents = weekEvents.find(day => day.date === weekDay);\n const fullDayEvents = dayEvents?.fullDayEvents || [];\n\n return (\n <div key={dayIndex} className={styles.fullDayCell}>\n {fullDayEvents.map(event => (\n <div\n key={event.id}\n className={styles.fullDayEvent}\n style={{\n gridColumn: `${dayIndex + 2}`, // Position event in the correct day column\n backgroundColor: event.color\n ? getCalendarColors(event.color).backgroundColor\n : getEventColors(event.category!).backgroundColor,\n }}\n >\n <Caption1Strong className={styles.eventTitle}>\n {event.title}\n </Caption1Strong>\n </div>\n ))}\n </div>\n );\n })}\n </>\n );\n }, [\n weekStart,\n styles,\n getWeekEvents,\n getCalendarColors,\n getEventColors,\n events,\n formatDate,\n strings.allDay,\n ]);\n\n\n const renderDayCells = React.useCallback((): JSX.Element[] => {\n const weekEvents = getWeekEvents(events, weekStart.toISOString());\n return Array.from({ length: 7 }, (_, dayIndex) => {\n const weekDay = format(addDays(weekStart, dayIndex), 'yyyy-MM-dd');\n const dayEvents = weekEvents.find(day => day.date === weekDay);\n\n return (\n <>\n {dayEvents?.timeSlots.map((timeSlot, slotIndex) => {\n const eventCount = timeSlot.events.length; // Total events in the slot\n\n return (\n <div\n key={slotIndex}\n className={styles.dayCell}\n style={{\n gridRow: slotIndex + 3, // Offset to account for header and full-day row\n }}\n >\n {timeSlot.events.map((event, eventIndex) => {\n const startDate = new Date(event.start);\n const endDate = new Date(event.end);\n // Calculate the start and end slots based on event times\n const { spanSlots, startSlot } = getSpanSlots(\n startDate,\n endDate\n );\n // Only render the event in its starting timeslot\n if (slotIndex === startSlot) {\n // Event Render\n return (\n <EventRenderer\n key={event.id}\n event={event}\n eventCount={eventCount}\n spanSlots={spanSlots}\n rowHeight={rowHeight}\n eventIndex={eventIndex}\n view=\"week\"\n />\n );\n }\n return null; // Skip rendering for non-starting slots\n })}\n </div>\n );\n })}\n </>\n );\n });\n }, [weekStart, styles, getWeekEvents, getSpanSlots, rowHeight, events]);\n\n return (\n <div className={styles.container} style={{ height: height }}>\n {/* Week Grid */}\n <div ref={calendarRef} className={styles.weekGrid}>\n <div className={styles.timeColumn}>{renderTimeColumn()}</div>\n {renderDayHeaders()}\n {renderFullDayEvents()}\n {renderDayCells()}\n </div>\n </div>\n );\n};\n\nexport default WeekView;\n","import * as React from 'react';\n\nimport {\n Body1,\n FluentProvider,\n IdPrefixProvider,\n webLightTheme,\n} from '@fluentui/react-components';\nimport { ICalendarControlStrings, IDayViewStrings, IToolbarStrings, IWeekViewStrings } from './models/IStrings';\nimport { addDays, format, startOfMonth, startOfWeek } from 'date-fns';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { Day } from './Day';\nimport DayView from './DayView';\nimport { ECalendarViews } from './models/ECalendarViews';\nimport { ICalendarControlProps } from './models/ICalendarControlProps';\nimport { ICalendarDay } from './models/ICalendarDay';\nimport { IEvent } from './models/IEvents';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { Stack } from '../Stack';\nimport Toolbar from './Toolbar';\nimport WeekView from './WeekView';\nimport { useCalendar } from './hooks/useCalendar';\nimport { useCalendarStyles } from './hooks/useCalendarStyles';\n\n// Default values for the strings\nexport const defaultCalendarControlStrings: ICalendarControlStrings = {\n daysOfWeek: [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ],\n};\n\ninterface CalendarState {\n currentDate: Date;\n}\n\n// Render month view props\ninterface RenderMonthViewProps {\n events: IEvent[];\n currentDate: Date;\n rowHeight: number | null;\n getCalendarDays: (date: Date) => ICalendarDay[];\n getEventsForDay: (dateObj: ICalendarDay) => IEvent[];\n styles: any;\n onDaySlotClick?: (date: Date) => void;\n height: number;\n calendarRef: React.RefObject<HTMLDivElement>;\n strings: ICalendarControlStrings;\n}\n// Render month view\nconst RenderMonthView: React.FC<RenderMonthViewProps> = \n ({\n currentDate,\n rowHeight,\n getCalendarDays,\n getEventsForDay,\n styles,\n onDaySlotClick,\n height,\n calendarRef,\n strings,\n }) => {\n const daysOfWeek = strings?.daysOfWeek || defaultCalendarControlStrings.daysOfWeek;\n return (\n <Stack\n height={height}\n width=\"100%\"\n verticalAlign=\"start\"\n horizontalAlign=\"start\"\n >\n <div className={styles.calendarWrapper} ref={calendarRef}>\n {daysOfWeek.map(day => (\n <Body1 key={day} className={styles.dayHeader}>\n {day}\n </Body1>\n ))}\n {getCalendarDays(currentDate).map((dateObj, index) => {\n const { day, currentMonth } = dateObj;\n const dayEvents = currentMonth ? getEventsForDay(dateObj) : [];\n return (\n <Day\n key={index}\n day={day}\n date={dateObj.date}\n currentMonth={dateObj.currentMonth}\n events={dayEvents}\n columnHeight={rowHeight || 0}\n onDayClick={onDaySlotClick}\n />\n );\n })}\n </div>\n </Stack>\n );\n }\n\n\ninterface RenderWeekViewProps {\n events: IEvent[];\n currentDay: Date;\n height: number;\n strings: IWeekViewStrings;\n}\n\nconst RenderWeekView: React.FC<RenderWeekViewProps> = React.memo(\n ({ events, currentDay, height, strings }) => {\n return <WeekView events={events} currentDay={currentDay} height={height} strings={strings}/>;\n }\n);\n\ninterface RenderDayViewProps {\n events: IEvent[];\n currentDay: Date;\n height: number;\n strings: IDayViewStrings;\n}\n\nconst RenderDayView: React.FC<RenderDayViewProps> = React.memo(\n ({ events, currentDay, height, strings }) => {\n return <DayView currentDay={currentDay} events={events} height={height} strings={strings} />;\n }\n);\n\nexport const CalendarControl: React.FC<ICalendarControlProps> = ({\n events,\n height = 800,\n theme,\n onDayChange,\n onMonthChange,\n onWeekChange,\n onViewChange,\n onDaySlotClick,\n defaultView,\n strings,\n}: ICalendarControlProps) => {\n const { styles } = useCalendarStyles();\n const calendarRef = useRef<HTMLDivElement>(null);\n const [rowHeight, setRowHeight] = useState<number | null>(null);\n const totalDisplayedDays = 42;\n const rowHeightRef = useRef<number>(0);\n // Default current date\n const [currentDate, setCurrentDate] = useState<CalendarState['currentDate']>(\n new Date()\n );\n // Default view\n const [selectedView, setSelectedView] = useState<ECalendarViews>(\n defaultView ?? ECalendarViews.Month\n );\n\n // Get month calendar\n const { getMonthCalendar } = useCalendar(\n Intl.DateTimeFormat().resolvedOptions().timeZone\n );\n // Get calendar days\n const getCalendarDays = React.useCallback((date: Date): ICalendarDay[] => {\n const month = date.getMonth();\n const firstDayOfMonth = startOfMonth(date);\n const firstDayOfWeek = startOfWeek(firstDayOfMonth);\n const calendarDays = Array.from(\n { length: totalDisplayedDays },\n (_, index): ICalendarDay => {\n const relativeDay = addDays(firstDayOfWeek, index);\n return {\n day: relativeDay.getDate(),\n currentMonth: relativeDay.getMonth() === month,\n date: relativeDay,\n };\n }\n );\n return calendarDays;\n }, [ totalDisplayedDays ]);\n // Handle month change\n const handleMonthChange = React.useCallback(\n (date: Date): void => {\n onMonthChange && onMonthChange(date);\n setCurrentDate(date);\n },\n [onMonthChange]\n );\n // Handle day change\n const handleDayChange = React.useCallback(\n (date: Date): void => {\n onDayChange && onDayChange(date);\n setCurrentDate(date);\n },\n [onDayChange]\n );\n // Handle week change\n const handleWeekChange = React.useCallback(\n (date: Date): void => {\n onWeekChange && onWeekChange(date);\n setCurrentDate(date);\n },\n [onWeekChange]\n );\n // Handle view change\n const handleViewChange = React.useCallback(\n (view: ECalendarViews): void => {\n onViewChange && onViewChange(view);\n setSelectedView(view);\n },\n [onViewChange]\n );\n // Get events for the day\n const getEventsForDay = React.useCallback(\n (dateObj: ICalendarDay): IEvent[] => {\n const { date } = dateObj;\n const monthEvents = getMonthCalendar(\n events,\n currentDate.getFullYear(),\n currentDate.getMonth()\n );\n const dayString = format(date, 'yyyy-MM-dd');\n return monthEvents[dayString]?.flatMap(slot => slot) || [];\n },\n [currentDate, events]\n );\n // Set the row height based on the calendarRef\n const handleResize = React.useCallback((): void => {\n if (calendarRef.current) {\n requestAnimationFrame(() => {\n if (calendarRef.current) {\n const firstDataColumnCell = calendarRef.current.querySelector(\n `.${styles.calendarWrapper} > div:nth-child(8)`\n ) as HTMLDivElement;\n if (firstDataColumnCell) {\n setRowHeight(firstDataColumnCell.offsetHeight);\n rowHeightRef.current = firstDataColumnCell.offsetHeight;\n }\n }\n });\n }\n }, [styles.calendarWrapper]);\n\n \n useEffect(() => {\n const observer = new ResizeObserver(handleResize);\n if (calendarRef.current) {\n observer.observe(calendarRef.current);\n }\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => {\n observer.disconnect();\n window.removeEventListener('resize', handleResize);\n };\n }, [handleResize, selectedView]);\n\n // Set the default view\n useEffect(() => {\n setSelectedView(defaultView || ECalendarViews.Month);\n \n }, [defaultView]);\n // Render content based on the selected view\n const RenderContent = React.useCallback(() => {\n switch (selectedView) {\n case ECalendarViews.Month:\n return (\n <RenderMonthView\n events={events}\n currentDate={currentDate}\n rowHeight={rowHeight}\n getCalendarDays={getCalendarDays}\n getEventsForDay={getEventsForDay}\n styles={styles}\n onDaySlotClick={onDaySlotClick}\n height={height as number}\n calendarRef={calendarRef}\n strings={strings?.calendarControl as ICalendarControlStrings}\n />\n );\n case ECalendarViews.Week:\n return (\n <RenderWeekView\n events={events}\n currentDay={currentDate}\n height={height as number}\n strings={strings?.weekView as IWeekViewStrings} \n />\n ); \n case ECalendarViews.Day:\n return (\n <RenderDayView\n events={events}\n currentDay={currentDate}\n height={height as number}\n strings={strings?.dayView as IDayViewStrings}\n />\n );\n default:\n return (\n <RenderMonthView\n events={events}\n currentDate={currentDate}\n rowHeight={rowHeight}\n getCalendarDays={getCalendarDays}\n getEventsForDay={getEventsForDay}\n styles={styles}\n onDaySlotClick={onDaySlotClick}\n height={height as number}\n calendarRef={calendarRef}\n strings={strings?.calendarControl as ICalendarControlStrings}\n />\n );\n }\n }, [\n selectedView,\n events,\n currentDate,\n rowHeight,\n getCalendarDays,\n getEventsForDay,\n styles,\n onDaySlotClick,\n height,\n ]);\n // Render the calendar control\n return (\n <IdPrefixProvider value=\"calendarControl-\">\n <FluentProvider theme={theme ?? webLightTheme} style={{ width: '100%' }}>\n <Stack height=\"100%\" verticalAlign=\"start\">\n <Toolbar\n selectedView={selectedView}\n onSelectedView={handleViewChange}\n currentDate={currentDate}\n setCurrentDate={setCurrentDate}\n onWeekChange={handleWeekChange}\n onMonthChange={handleMonthChange}\n onDayChange={handleDayChange}\n strings={strings?.toolbar as IToolbarStrings}\n />\n <RenderContent />\n </Stack>\n </FluentProvider>\n </IdPrefixProvider>\n );\n};\n\nexport default CalendarControl;\n","import { mergeClasses, tokens } from \"@fluentui/react-components\";\n\nimport { IStackProps } from \"./IStackProps\";\nimport React from \"react\";\nimport { css } from \"@emotion/css\";\n\n/**\n * Mapping of predefined sizes to Fluent UI tokens.\n */\nconst sizeMap: Record<string, string> = {\n xs: tokens.spacingHorizontalXS,\n s: tokens.spacingHorizontalS,\n m: tokens.spacingHorizontalM,\n l: tokens.spacingHorizontalL,\n xl: tokens.spacingHorizontalXL,\n xxl: tokens.spacingHorizontalXXL,\n};\n\n/**\n * Stack component provides a flexible layout using Flexbox.\n * It allows stacking child components either horizontally or vertically with predefined spacing options.\n */\nexport const Stack: React.FC<IStackProps> = React.memo(\n ({\n direction = \"vertical\",\n justifyContent = \"flex-start\",\n alignItems = \"stretch\",\n gap,\n columnGap,\n rowGap,\n margin,\n padding,\n marginTop,\n marginBottom,\n marginLeft,\n marginRight,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n width,\n height,\n wrap = false,\n children,\n style,\n className,\n overflow,\n background\n }) => {\n const stackStyle = css({\n display: \"flex\",\n flexDirection: direction === \"horizontal\" ? \"row\" : \"column\",\n justifyContent,\n alignItems,\n gap: gap && sizeMap[gap] ? sizeMap[gap] : gap,\n columnGap:\n columnGap && sizeMap[columnGap] ? sizeMap[columnGap] : columnGap,\n rowGap: rowGap && sizeMap[rowGap] ? sizeMap[rowGap] : rowGap,\n margin: margin && sizeMap[margin] ? sizeMap[margin] : margin,\n padding: padding && sizeMap[padding] ? sizeMap[padding] : padding,\n marginTop:\n marginTop && sizeMap[marginTop] ? sizeMap[marginTop] : marginTop,\n marginBottom:\n marginBottom && sizeMap[marginBottom]\n ? sizeMap[marginBottom]\n : marginBottom,\n marginLeft:\n marginLeft && sizeMap[marginLeft] ? sizeMap[marginLeft] : marginLeft,\n marginRight:\n marginRight && sizeMap[marginRight]\n ? sizeMap[marginRight]\n : marginRight,\n paddingTop:\n paddingTop && sizeMap[paddingTop] ? sizeMap[paddingTop] : paddingTop,\n paddingBottom:\n paddingBottom && sizeMap[paddingBottom]\n ? sizeMap[paddingBottom]\n : paddingBottom,\n paddingLeft:\n paddingLeft && sizeMap[paddingLeft]\n ? sizeMap[paddingLeft]\n : paddingLeft,\n paddingRight:\n paddingRight && sizeMap[paddingRight]\n ? sizeMap[paddingRight]\n : paddingRight,\n width,\n height,\n overflow,\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n backgroundColor: background,\n ...style,\n });\n\n return (\n <div className={mergeClasses(className, stackStyle)}>{children}</div>\n );\n }\n);\n\nexport default Stack;\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\nimport { IDataGridProps } from \"./IDataGridProps\";\nimport { css } from \"@emotion/css\";\n\nexport const useDataGridStyles = <T,>(_props: IDataGridProps<T>) => {\n const styles = {\n loadingContainer: css({\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"100%\",\n }),\n noItemsMessage: css({\n textAlign: \"center\",\n marginTop: 20,\n }),\n rowSelection: css({\n \":hover\": {\n cursor: \"pointer\",\n },\n }),\n };\n\n return { styles };\n};\n","import * as React from 'react';\n\nimport {\n Body1Strong,\n Spinner,\n TableCellLayout,\n TableColumnDefinition,\n createTableColumn,\n tokens,\n} from '@fluentui/react-components';\nimport {\n DataGridBody,\n DataGridCell,\n DataGridHeader,\n DataGridHeaderCell,\n DataGridRow,\n DataGrid as VWDataGrid,\n} from '@fluentui-contrib/react-data-grid-react-window';\n\nimport type { FixedSizeList } from 'react-window';\n// Reuse the SAME contracts from the original (non-virtualized) DataGrid\nimport type { IDataGridProps } from '../dataGrid/IDataGridProps';\nimport type { ISortState } from '../dataGrid/ISortState';\nimport type { TableRowId } from '@fluentui/react-components';\n\n// Extended props that are specific to the virtualized version.\nexport interface IDataGridV2ExtraProps<T> extends IDataGridProps<T> {\n /** Enable infinite scrolling (request next page). */\n enableInfiniteScroll?: boolean;\n /** Size of a page used to infer when to prefetch next data chunk. */\n infiniteScrollPageSize?: number;\n /** Fixed height for the scrollable virtualized area. */\n virtualizedHeight?: number;\n /** Pixel height of each row (itemSize for react-window). */\n virtualizedItemSize?: number;\n /** Called when we near the end (used with infinite scroll). */\n onLoadMore?: () => void;\n /** Additional flag to indicate more data is available. */\n hasNextPage?: boolean;\n /** Loading state for pagination. */\n isLoadingMore?: boolean;\n /** Auto scroll to end when new items appended. */\n autoShowLastPage?: boolean;\n /** Initial row index to reveal. */\n startIndex?: number;\n /** Called when a row is clicked. */\n onRowClick?: (item: T, index: number) => void;\n}\n\nexport type DataGridHandle<T = any> = {\n /** Imperatively scroll to a row index. Align defaults to 'auto'. */\n scrollToIndex: (index: number, align?: 'auto' | 'smart' | 'center' | 'start' | 'end') => void;\n /** Reset the grid (force remount, clear selection, etc). */\n resetGrid: () => void;\n /** Get the currently selected row item and index (for row selection mode). */\n getSelectedRow: () => { item: T; index: number } | null;\n /** Force selection of a specific item. */\n setSelectedRow: (item: T) => void;\n};\nexport const DataGridV2 = React.forwardRef(<T,>(\n props: IDataGridV2ExtraProps<T>,\n ref: React.ForwardedRef<DataGridHandle<T>>,\n) => {\n const {\n columns,\n items,\n enableSorting = false,\n enableResizing = false,\n selectionMode = 'none',\n onSelectionChange,\n defaultSelectedItems = [],\n defaultSortState,\n onSortChange,\n columnSizingOptions,\n resizableColumnsOptions,\n noItemsMessage,\n isLoadingData,\n isLoadingDataMessage,\n dataGridBodyClassName,\n dataGridBodyStyles,\n refreshData,\n enableInfiniteScroll,\n onLoadMore,\n infiniteScrollPageSize,\n hasNextPage,\n isLoadingMore,\n autoShowLastPage = true,\n virtualizedHeight = 600,\n virtualizedItemSize = 44,\n startIndex,\n onRowClick,\n } = props;\n\n // Map IColumnConfig<T> -> TableColumnDefinition<T>\n const tableColumns: TableColumnDefinition<T>[] = React.useMemo(\n () =>\n columns.map((colConfig) =>\n createTableColumn<T>({\n columnId: colConfig.column as string,\n // header cell replicating original DataGrid style\n renderHeaderCell: () => <Body1Strong>{colConfig.header}</Body1Strong>,\n renderCell: (item) => (\n <TableCellLayout\n media={colConfig.media ? colConfig.media(item) : undefined}\n className={colConfig?.className}\n style={colConfig?.style}\n >\n {colConfig.onRender ? colConfig.onRender(item) : String(item[colConfig.column] ?? '')}\n </TableCellLayout>\n ),\n compare: colConfig.order,\n })\n ),\n [columns]\n );\n\n // Selection state (mirrors original DataGrid logic)\n const getItemIndex = React.useCallback((item: T) => items.findIndex((i) => i === item), [items]);\n const [selectedItems, setSelectedItems] = React.useState<Set<number>>(\n new Set(defaultSelectedItems.map((item) => getItemIndex(item)))\n );\n const [gridKey, setGridKey] = React.useState(0);\n\n React.useEffect(() => {\n if (defaultSelectedItems.length) {\n setSelectedItems(new Set(defaultSelectedItems.map((it) => getItemIndex(it))));\n }\n }, [defaultSelectedItems, items, getItemIndex]);\n\n React.useEffect(() => {\n if (refreshData) {\n setSelectedItems(new Set());\n \n }\n }, [refreshData]);\n\n const handleSelectionChange = (\n _e: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\n data: { selectedItems: Set<TableRowId> }\n ) => {\n const newSel = new Set<number>();\n data.selectedItems.forEach((id) => {\n const idx = Number(id);\n if (!isNaN(idx)) newSel.add(idx);\n });\n setSelectedItems(newSel);\n if (onSelectionChange) {\n onSelectionChange(Array.from(newSel).map((i) => items[i]));\n }\n };\n\n const handleSortChange = (\n _e: React.MouseEvent<Element, MouseEvent>,\n sortState: ISortState\n ) => {\n if (onSortChange) onSortChange(sortState);\n };\n // Row selection (when selectionMode === 'row')\n const [rowSelectedIndex, setRowSelectedIndex] = React.useState<number | null>(null);\n \n const itemIndexMap = React.useMemo(() => new Map(items.map((it, i) => [it as unknown as object, i])), [items]);\n React.useEffect(() => {\n if (selectionMode !== 'row') return;\n if (rowSelectedIndex != null && rowSelectedIndex >= items.length) {\n setRowSelectedIndex(null);\n }\n }, [items, rowSelectedIndex, selectionMode]);\n React.useEffect(() => {\n if (refreshData && selectionMode === 'row') setRowSelectedIndex(null);\n }, [refreshData, selectionMode]);\n\n const listRef = React.useRef<FixedSizeList | null>(null);\n const prevCountRef = React.useRef<number>(items.length);\n const didInitScrollRef = React.useRef(false);\n // Skip the very first onItemsRendered call (react-window fires one on mount)\n // We want to ignore the very first onItemsRendered call from react-window.\n const skippedFirstItemsRendered = React.useRef(false);\n // Prevent firing onLoadMore again until items length increases.\n const pendingLoadRef = React.useRef(false);\n // Note: listRef cannot be passed through listProps due to typing constraints\n // Scroll tracking and imperative scrollToIndex may be limited without proper ref access\n\n // Expose imperative API\n React.useImperativeHandle(ref, () => ({\n scrollToIndex: (index: number, align: 'auto' | 'smart' | 'center' | 'start' | 'end' = 'auto') => {\n const list = listRef.current;\n if (list && 'scrollToItem' in list) {\n (list as FixedSizeList).scrollToItem(Math.max(0, index), align);\n }\n },\n resetGrid: () => {\n // Changing key forces remount of VWDataGrid and internal FixedSizeList\n setGridKey((k) => k + 1);\n // Reset refs\n prevCountRef.current = 0;\n didInitScrollRef.current = false;\n skippedFirstItemsRendered.current = false;\n pendingLoadRef.current = false;\n lastLoadTriggerLength.current = -1;\n setSelectedItems(new Set());\n setRowSelectedIndex(null);\n },\n getSelectedRow: () => {\n if (rowSelectedIndex !== null && rowSelectedIndex < items.length) {\n return { item: items[rowSelectedIndex], index: rowSelectedIndex };\n }\n return null;\n },\n setSelectedRow: (item: T) => {\n const index = items.findIndex((i) => i === item);\n if (index !== -1) {\n setRowSelectedIndex(index);\n onSelectionChange?.([item]);\n }\n },\n }));\n\n // Initial positioning\n React.useEffect(() => {\n if (didInitScrollRef.current) return;\n if (typeof startIndex === 'number' && listRef.current) {\n const list = listRef.current;\n if ('scrollToItem' in list) {\n (list as FixedSizeList).scrollToItem(Math.min(startIndex, Math.max(items.length - 1, 0)), 'start');\n }\n didInitScrollRef.current = true;\n }\n }, [startIndex, items.length]);\n\n // Stick to last row when new page appended (but skip initial first page load to keep at top)\n React.useEffect(() => {\n const prev = prevCountRef.current;\n const next = items.length;\n const grew = next > prev;\n prevCountRef.current = next;\n\n if (!autoShowLastPage || !grew || prev === 0) return;\n const list = listRef.current;\n if (list && 'scrollToItem' in list) {\n (list as FixedSizeList).scrollToItem(Math.max(next - 1, 0), 'end');\n }\n }, [items.length, autoShowLastPage]);\n\n // Prevent multiple load-more calls for the same item length.\n const lastLoadTriggerLength = React.useRef<number>(-1);\n // Load-more trigger when user nears the end via onItemsRendered from react-window\n const handleItemsRendered = React.useCallback(\n ({ visibleStopIndex }: { visibleStartIndex: number; visibleStopIndex: number }) => {\n if (!enableInfiniteScroll || !onLoadMore) return;\n if (isLoadingMore || pendingLoadRef.current) return; // already fetching / waiting for data growth\n\n // Ignore the very first invocation to avoid auto-loading second page on initial mount\n if (!skippedFirstItemsRendered.current) {\n skippedFirstItemsRendered.current = true;\n \n return;\n }\n\n const pageSize = infiniteScrollPageSize ?? 20;\n // Avoid triggering load more on first page until scroll happens naturally\n // if (!hasUserScrolled.current) return; // Removed: no scroll tracking available without ref\n // If still within first page (not exceeded pageSize) do not prefetch.\n if (items.length < pageSize) return; const prefetchWindow = Math.max(5, Math.ceil(pageSize / 5));\n const threshold = items.length - prefetchWindow;\n \n if (\n\n visibleStopIndex >= threshold &&\n hasNextPage &&\n lastLoadTriggerLength.current !== items.length\n ) {\n lastLoadTriggerLength.current = items.length;\n pendingLoadRef.current = true;\n onLoadMore();\n }\n },\n [enableInfiniteScroll, onLoadMore, hasNextPage, isLoadingMore, items.length, infiniteScrollPageSize],\n );\n\n\n\n // Clear pending flag when new data actually arrives (items length grows)\n React.useEffect(() => {\n if (pendingLoadRef.current && items.length > lastLoadTriggerLength.current) {\n pendingLoadRef.current = false;\n }\n }, [items.length]);\n const hostStyle: React.CSSProperties = React.useMemo(\n () => ({ overflowX: 'auto', overflowY: 'hidden', position: 'relative' }),\n [],\n );\n\n return (\n <div style={hostStyle}>\n {isLoadingData && (\n <div style={{ display: 'flex', gap: 8, alignItems: 'center', padding: 8 }}>\n { React.isValidElement(isLoadingDataMessage) ? isLoadingDataMessage : <Spinner size=\"extra-tiny\"> {isLoadingDataMessage ?? 'Loading data...' } </Spinner> }\n </div>\n )}\n {!isLoadingData && items.length ? (\n <VWDataGrid \n key={gridKey} // force remount on key change \n items={items}\n columns={tableColumns}\n sortable={enableSorting}\n onSortChange={enableSorting ? handleSortChange : undefined}\n selectionMode={\n selectionMode === 'none' || selectionMode === 'row'\n ? undefined\n : selectionMode === 'multiple'\n ? 'multiselect'\n : selectionMode === 'single'\n ? 'single'\n : undefined\n }\n selectedItems={selectedItems}\n onSelectionChange={handleSelectionChange}\n defaultSortState={defaultSortState}\n resizableColumns={enableResizing}\n columnSizingOptions={columnSizingOptions}\n resizableColumnsOptions={resizableColumnsOptions}\n focusMode=\"cell\"\n className={dataGridBodyClassName}\n style={dataGridBodyStyles}\n >\n <DataGridHeader>\n <DataGridRow>\n {({ renderHeaderCell }) => (\n <DataGridHeaderCell>{renderHeaderCell()}</DataGridHeaderCell>\n )}\n </DataGridRow>\n </DataGridHeader>\n <DataGridBody\n itemSize={virtualizedItemSize}\n height={virtualizedHeight}\n width={'100%'}\n listProps={{\n onItemsRendered: handleItemsRendered,\n }}\n className={dataGridBodyClassName}\n style={dataGridBodyStyles}\n >\n {(row: { item: T }, style: React.CSSProperties) => (\n (() => {\n const item = row.item;\n const idx = itemIndexMap.get(item as unknown as object) ?? items.indexOf(item);\n const isRowMode = selectionMode === 'row';\n const isSelected = isRowMode && rowSelectedIndex === idx;\n const clickHandler = (_e: React.MouseEvent) => {\n setRowSelectedIndex(idx);\n onSelectionChange?.([item]);\n \n // Call the prop callback if provided\n onRowClick?.(item, idx);\n };\n return (\n <DataGridRow\n \n style={{\n ...(style as React.CSSProperties),\n cursor: isRowMode ? 'pointer' : undefined,\n background: isSelected ? tokens.colorSubtleBackgroundSelected : undefined,\n }}\n onClick={clickHandler}\n aria-selected={isSelected || undefined}\n >\n {({ renderCell }) => <DataGridCell>{renderCell(item)}</DataGridCell>}\n </DataGridRow>\n );\n })()\n )}\n </DataGridBody>\n </VWDataGrid>\n ) : (!isLoadingData && !items.length ) ? (\n <div >{noItemsMessage}</div>\n ) : null}\n \n </div>\n );\n});\n\nDataGridV2.displayName = 'DataGridV2';\n\n// Usage\n// const gridRef = React.useRef<DataGridHandle<YourItemType>>(null);\n// \n// const handleRowClick = (item: YourItemType, index: number) => {\n// console.log('Row clicked:', item, 'at index:', index);\n// // Handle row click logic here\n// };\n// \n// <DataGridV2\n// ref={gridRef}\n// columns={columns}\n// items={items}\n// enableSorting\n// enableResizing\n// enableInfiniteScroll\n// infiniteScrollPageSize={50}\n// onLoadMore={fetchNext}\n// hasNextPage={hasNext}\n// isLoadingMore={isFetching}\n// virtualizedHeight={500}\n// virtualizedItemSize={44}\n// autoShowLastPage\n// startIndex={20} // scroll to 21st item on mount\n// onRowClick={handleRowClick} // Handle row clicks via prop\n// />\n// \n// // Force selection of a specific item\n// const selectSpecificItem = (item: YourItemType) => {\n// gridRef.current?.setSelectedRow(item);\n// };\n// \n// // Get currently selected row\n// const selectedRow = gridRef.current?.getSelectedRow();\n// \n// gridRef.current?.scrollToIndex(200, 'center');\n","import * as React from 'react';\n\nimport {\n Dialog,\n DialogActions,\n DialogBody,\n DialogContent,\n DialogSurface,\n DialogTitle,\n makeStyles,\n mergeClasses,\n} from '@fluentui/react-components';\n\nexport interface IRenderDialogProps {\n isOpen: boolean;\n dialogTitle?: string | React.ReactNode;\n dialogActions?: JSX.Element;\n onDismiss?: (open?: boolean) => void;\n minWidth?: number | string;\n maxWidth?: number | string;\n className?: string;\n minHeight?: number | string;\n maxHeight?: number | string;\n children: React.ReactNode;\n}\n\nconst DEFAULT_MIN_WIDTH = 200;\n\nconst DEFAULT_MIN_HEIGHT = 200;\n\nconst useStyles = makeStyles({\n dialog: {\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n maxHeight: \"600px\",\n padding: 0,\n },\n dialogBody: {\n height: \"calc(100% - 200px)\",\n },\n});\n\nexport const RenderDialog: React.FunctionComponent<IRenderDialogProps> = (\n props: React.PropsWithChildren<IRenderDialogProps>\n) => {\n const { isOpen, dialogTitle, dialogActions, children, maxWidth, className, minHeight, minWidth, maxHeight } = props;\n const styles = useStyles();\n if (!isOpen) return <></>;\n return (\n <Dialog open={isOpen} modalType=\"modal\">\n <DialogSurface\n className={mergeClasses(styles.dialog, className)}\n style={{\n maxWidth: maxWidth,\n minWidth: minWidth ?? DEFAULT_MIN_WIDTH,\n minHeight: minHeight ?? DEFAULT_MIN_HEIGHT,\n height: \"fit-content\",\n maxHeight: maxHeight ?? \"\",\n }}\n >\n <DialogTitle>{dialogTitle}</DialogTitle>\n <DialogBody className={styles.dialogBody}>\n <DialogContent>{children}</DialogContent>\n </DialogBody>\n <DialogActions fluid position=\"end\">\n {dialogActions}\n </DialogActions>\n </DialogSurface>\n </Dialog>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport { css } from \"@emotion/css\";\nimport { tokens } from \"@fluentui/react-components\";\nexport const useRenderHeaderStyles = (): { [key: string]: string } => {\n return {\n closeButton: css({\n marginLeft: \"auto\",\n position: \"absolute\",\n top: \"10px\",\n right: \"10px\",\n zIndex: 99999,\n }),\n\n divider: css({\n width: \"100%\",\n height: \"1px\",\n backgroundColor: tokens.colorNeutralStroke1, \n marginTop: \"6px\",\n }),\n\n renderHeaderContent: css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"stretch\",\n width: \"100%\",\n }),\n\n renderHeaderHeader: css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n padding: \"10px\",\n gap: \"20px\",\n }),\n\n renderHeaderFooter: css({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n padding: \"20px\",\n gap: \"20px\",\n }),\n\n renderHeaderBody: css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n padding: \"20px\",\n gap: \"20px\",\n }),\n\n renderHeaderTitleContainer: css({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n \n }),\n\n renderHeaderTitle: css({\n display: \"-webkit-box\",\n WebkitLineClamp: \"1\",\n WebkitBoxOrient: \"vertical\",\n textAlign: \"start\",\n textOverflow: \"ellipsis\",\n paddingTop: 0 ,\n wordBreak: \"break-word\",\n }),\n\n renderHeaderDescription: css({\n display: \"-webkit-box\",\n WebkitLineClamp: \"4\",\n WebkitBoxOrient: \"vertical\",\n textAlign: \"start\",\n textOverflow: \"ellipsis\",\n wordBreak: \"break-word\",\n }),\n\n dialogTitleAndDescriptionContainer: css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"start\",\n alignItems: \"start\",\n paddingLeft: \"10px\",\n paddingRight: \"20px\",\n width: \"100%\",\n }),\n };\n};","import { css } from \"@emotion/css\";\nimport { tokens } from \"@fluentui/react-components\";\nimport { useMemo } from \"react\";\n\ninterface INewUseShowErrorStyles {\n container: string;\n icon: string;\n title: string;\n message: string;\n}\n\nexport const useShowErrorStyles = (): INewUseShowErrorStyles => {\n return useMemo(\n () => ({\n container: css({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n minHeight: \"200px\",\n textAlign: \"center\",\n backgroundColor: tokens.colorNeutralBackground1,\n border: `1px solid ${tokens.colorNeutralStroke2}`,\n borderRadius: tokens.borderRadiusLarge,\n padding: `${tokens.spacingVerticalXXL} ${tokens.spacingHorizontalXXL}`,\n boxShadow: tokens.shadow4,\n maxWidth: \"500px\",\n margin: \"20px auto\",\n }),\n icon: css({\n fontSize: \"48px\",\n color: tokens.colorPaletteRedForeground1,\n animation: \"pulse 2s infinite\",\n \"@keyframes pulse\": {\n \"0%\": { transform: \"scale(1)\" },\n \"50%\": { transform: \"scale(1.05)\" },\n \"100%\": { transform: \"scale(1)\" },\n },\n }),\n title: css({\n color: tokens.colorNeutralForeground1,\n fontWeight: tokens.fontWeightSemibold,\n textAlign: \"center\",\n }),\n message: css({\n color: tokens.colorNeutralForeground2,\n textAlign: \"center\",\n lineHeight: tokens.lineHeightBase400,\n }),\n }),\n []\n );\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n makeStyles,\n shorthands,\n tokens,\n} from '@fluentui/react-components';\n\nexport const useShowMessageStyles = makeStyles({\n root: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"center\",\n alignItems: \"center\",\n ...shorthands.padding(\"10px\"),\n gap: '10px',\n } as any,\n iconClass: {\n width: \"32px\",\n height: \"32px\",\n } as any,\n errorContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"start\",\n alignItems: \"center\",\n gap: '10px',\n ...shorthands.padding(\"10px\"),\n backgroundColor: tokens.colorStatusDangerBackground1,\n } as any,\n errorIcon: {\n height: \"100%\",\n } as any,\n});\n","import * as React from 'react';\n\nimport {\n Body1,\n Body1Strong,\n tokens,\n} from '@fluentui/react-components';\nimport {\n CheckmarkCircle32Regular,\n Info32Regular,\n} from '@fluentui/react-icons';\nimport { Icon } from '@iconify/react';\n\nimport { EMessageType } from '../../constants/EMessageTypes';\nimport { IShowMessageProps } from './IShowMessage';\nimport { useShowMessageStyles } from './useShowMessageStyles';\n\nexport const ShowMessage: React.FunctionComponent<IShowMessageProps> = (\n props: React.PropsWithChildren<IShowMessageProps>\n) => {\n const { messageType, children, message } = props;\n const styles = useShowMessageStyles();\n const [renderMessageIcon, setRenderMessageIcon] = React.useState<JSX.Element | null>(null);\n\n const RenderError = React.useCallback(() => {\n return (\n <>\n <div className={styles.errorContainer}>\n <div className={styles.errorIcon}>\n <Icon\n icon=\"fluent:error-circle-12-regular\"\n width=\"32\"\n height=\"32\"\n color={tokens.colorStatusDangerForeground1}\n />\n </div>\n <Body1>{message}</Body1>\n </div>\n </>\n );\n }, [message, styles.errorContainer, styles.errorIcon]);\n\n React.useEffect(() => {\n switch (messageType) {\n case EMessageType.SUCCESS:\n setRenderMessageIcon(\n <CheckmarkCircle32Regular primaryFill={tokens.colorStatusSuccessForeground1} />\n );\n break;\n case EMessageType.INFO:\n setRenderMessageIcon(<Info32Regular primaryFill={tokens.colorStatusWarningForeground1} />);\n break;\n default:\n break;\n }\n }, [messageType]);\n\n if (messageType === EMessageType.ERROR) {\n return <RenderError />;\n }\n\n return (\n <>\n <div className={styles.root}>\n {renderMessageIcon}\n <Body1Strong>{message}</Body1Strong>\n {children}\n </div>\n </>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport * as React from 'react';\n\nimport {\n FluentProvider,\n IdPrefixProvider,\n Menu,\n MenuButton,\n MenuItem,\n MenuList,\n MenuPopover,\n MenuTrigger,\n Overflow,\n OverflowItem,\n Theme,\n mergeClasses,\n useIsOverflowItemVisible,\n useOverflowMenu,\n} from '@fluentui/react-components';\nimport {\n MoreHorizontalFilled,\n MoreHorizontalRegular,\n bundleIcon,\n} from '@fluentui/react-icons';\n\nimport { css } from '@emotion/css';\n\n// Styles\nconst useStyles = () => {\n return {\n container: css({\n display: \"flex\",\n flexWrap: \"nowrap\",\n minWidth: 0,\n overflow: \"hidden\",\n gap: 10,\n marginBottom: 20,\n width: \"100%\",\n }),\n text1LineStyle: css({\n display: \"-webkit-box\",\n WebkitLineClamp: 1,\n WebkitBoxOrient: \"vertical\",\n overflow: \"hidden\",\n textAlign: \"start\",\n textOverflow: \"ellipsis\",\n wordBreak: \"break-word\",\n }),\n button: css({\n cursor: \"pointer\",\n minWidth: 107,\n }),\n };\n};\n\n// Interfaces\nexport interface IControlItem {\n id: string;\n name: string;\n icon?: JSX.Element | string;\n}\n\nexport interface ICustomControlBarProps {\n items: IControlItem[];\n selectedItemId: string | undefined;\n onSelectedItem: (itemId: string) => void;\n renderControl: (item: IControlItem, isSelected: boolean, onClick: () => void) => JSX.Element;\n theme: Theme; // Add theme property\n}\n\n// CustomControlBar Component\nexport const CustomControlBar: React.FunctionComponent<ICustomControlBarProps> = ({\n items,\n selectedItemId,\n onSelectedItem,\n renderControl,\n theme,\n}) => {\n const styles = useStyles();\n const onItemSelect = React.useCallback(\n (itemId: string) => {\n if (onSelectedItem) {\n onSelectedItem(itemId);\n }\n },\n [onSelectedItem]\n );\n\n return (\n <Overflow>\n <FluentProvider theme={theme}>\n {\" \"}\n {/* Apply theme */}\n <div className={mergeClasses(styles.container)}>\n {items.map((item) => {\n const isSelected = item.id === selectedItemId;\n return (\n <OverflowItem key={item.id} id={item.id} priority={isSelected ? 2 : 1}>\n {renderControl(item, isSelected, () => onItemSelect(item.id))}\n </OverflowItem>\n );\n })}\n <OverflowMenu items={items} onSelectedItem={onItemSelect} theme={theme} /> {/* Pass theme to OverflowMenu */}\n </div>\n </FluentProvider>\n </Overflow>\n );\n};\n\n// Overflow Menu and Overflow Menu Item Components\nconst OverflowMenuItem: React.FunctionComponent<{ item: IControlItem; onSelectedItem: (itemId: string) => void }> = ({\n item,\n onSelectedItem,\n}) => {\n const isVisible = useIsOverflowItemVisible(item.id);\n if (isVisible) {\n return null;\n }\n\n return (\n <MenuItem key={item.id} icon={item.icon} onClick={() => onSelectedItem(item.id)}>\n <div>{item.name}</div>\n </MenuItem>\n );\n};\n\nconst OverflowMenu: React.FC<{ items: IControlItem[]; onSelectedItem: (itemId: string) => void; theme: Theme }> = ({\n items,\n onSelectedItem,\n theme,\n}) => {\n const { ref, overflowCount, isOverflowing } = useOverflowMenu<HTMLButtonElement>();\n const MoreHorizontal = React.useMemo(() => bundleIcon(MoreHorizontalFilled, MoreHorizontalRegular), []);\n\n if (!isOverflowing) {\n return null;\n }\n\n return (\n <IdPrefixProvider value=\"menu-over-\">\n <FluentProvider theme={theme}>\n \n <Menu>\n <MenuTrigger disableButtonEnhancement>\n <MenuButton\n appearance=\"transparent\"\n ref={ref}\n icon={<MoreHorizontal />}\n aria-label={`${overflowCount} more options`}\n role=\"button\"\n />\n </MenuTrigger>\n <MenuPopover>\n <MenuList>\n {items.map((item) => (\n <OverflowMenuItem key={item.id} item={item} onSelectedItem={onSelectedItem} />\n ))}\n </MenuList>\n </MenuPopover>\n </Menu>\n </FluentProvider>\n </IdPrefixProvider>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as React from 'react';\n\nimport {\n Menu,\n MenuButton,\n MenuItem,\n MenuList,\n MenuPopover,\n MenuTrigger,\n useIsOverflowItemVisible,\n useOverflowMenu,\n} from '@fluentui/react-components';\n\n// Generic type for item\ninterface GenericOverFlowMenuProps<T> {\n items: T[];\n renderItem: (item: T) => React.ReactNode;\n keyExtractor: (item: T) => string;\n}\n\nconst OverflowMenuItem = ({ id, children }: { id: string; children: React.ReactNode }) => {\n const isVisible = useIsOverflowItemVisible(id);\n\n if (isVisible) {\n return null;\n }\n\n return <MenuItem>{children}</MenuItem>;\n};\n\nexport const GenericOverFlowMenu = <T extends { id: string }>({\n items,\n renderItem,\n keyExtractor,\n}: GenericOverFlowMenuProps<T>) => {\n const { ref, overflowCount, isOverflowing } = useOverflowMenu<HTMLButtonElement>();\n\n if (!isOverflowing) {\n return null;\n }\n\n return (\n <Menu>\n <MenuTrigger disableButtonEnhancement>\n <MenuButton ref={ref}>+{overflowCount} items</MenuButton>\n </MenuTrigger>\n <MenuPopover>\n <MenuList>\n {items.map((item) => (\n <OverflowMenuItem key={keyExtractor(item)} id={keyExtractor(item)}>\n {renderItem(item)}\n </OverflowMenuItem>\n ))}\n </MenuList>\n </MenuPopover>\n </Menu>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { css } from '@emotion/css';\n\nimport { IVideoPlayerProps } from './VideoPlayer';\n\nexport const useVideoStyles = (props: IVideoPlayerProps) => {\n return {\n videoPlayerContainer: css({\n position: \"relative\",\n width: props.width,\n height: props.height,\n }),\n reactPlayer: css({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n }) ,\n playButton: css({\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n fontSize: \"64px\",\n cursor: \"pointer\",\n zIndex: 1,\n userSelect: \"none\",\n color: \"white\",\n border: \"none\",\n borderRadius: \"50%\",\n padding: \"10px 20px\",\n '&:hover': {\n backgroundColor: \"rgba(0, 0, 0, 0.7)\",\n }\n }),\n \n };\n};\n","export enum AdaptiveCardHostThemeType {\n SharePoint = 0,\n Teams = 1,\n TeamsDark = 2,\n TeamsHighContrast = 3\n}","import { Theme, } from '@fluentui/react-theme';\nimport { create } from 'nano-css';\n\nexport const applyAdaptiveCardHostStyles = (theme: Theme, classPrefix: string): void => {\n const nanoCss = create();\n \n nanoCss.put(`.${classPrefix}-ac-container:focus`, {\n outline: \"none !important\"\n });\n nanoCss.put(`.${classPrefix}-ac-adaptiveCard:focus`, {\n outline: \"none !important\"\n });\n nanoCss.put(`.${classPrefix}-ac-pushButton`, {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n textAlign: \"center\",\n verticalAlign: \"middle\",\n cursor: \"pointer\",\n fontFamily: \"inherit\", // or use theme.fontFamilyBase if available\n fontSize: \"14px\",\n fontWeight: \"600\",\n padding: \"4px 10px 5px 10px\",\n WebkitUserSelect: \"none\",\n MozUserSelect: \"none\",\n MsUserSelect: \"none\",\n userSelect: \"none\",\n height: \"32px\",\n borderRadius: \"2px\",\n border: `1px solid ${theme.colorNeutralStrokeAccessible}`,\n backgroundColor: theme.colorNeutralBackground1,\n color: theme.colorNeutralForeground1\n });\n nanoCss.put(`.${classPrefix}-ac-pushButton:hover`, {\n border: `1px solid ${theme.colorNeutralStrokeAccessible}`,\n backgroundColor: theme.colorNeutralBackground2,\n color: theme.colorNeutralForeground2\n });\n nanoCss.put(`.${classPrefix}-ac-pushButton:active`, {\n border: `1px solid ${theme.colorNeutralStrokeAccessible}`,\n backgroundColor: theme.colorNeutralBackground3,\n color: theme.colorNeutralForeground3\n });\n nanoCss.put(`.${classPrefix}-ac-pushButton-disabled`, {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n textAlign: \"center\",\n verticalAlign: \"middle\",\n cursor: \"pointer\",\n fontFamily: \"inherit\",\n fontSize: \"14px\",\n fontWeight: \"600\",\n padding: \"4px 10px 5px 10px\",\n WebkitUserSelect: \"none\",\n MozUserSelect: \"none\",\n MsUserSelect: \"none\",\n userSelect: \"none\",\n height: \"32px\",\n borderRadius: \"2px\",\n border: `1px solid ${theme.colorNeutralStrokeDisabled}`,\n backgroundColor: theme.colorNeutralBackgroundDisabled,\n color: theme.colorNeutralForegroundDisabled\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-overlay`, {\n fontFamily: theme.fontFamilyBase,\n position: \"absolute\",\n left: \"0\",\n top: \"0\",\n zIndex: \"10000\"\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl`, {\n boxSizing: \"border-box\",\n fontSize: \"14px\",\n fontWeight: \"normal\"\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-popup-container`, {\n backgroundColor: theme.colorNeutralBackground1,\n position: \"absolute\",\n overflowY: \"auto\",\n boxShadow: \"0px 3.2px 7.2px rgba(0,0,0,0.13), 0px 0.6px 1.8px rgba(0,0,0,0.11)\",\n borderRadius: \"2px\"\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-popup-container:focus`, {\n outline: \"0\"\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-slide`, {\n animationDuration: \"0.5s\",\n animationTimingFunction: \"cubic-bezier(0.1, 0.9, 0.2, 1)\"\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-slide.${classPrefix}-ac-ctrl-slideTopToBottom`, {\n animationName: \"fadeIn, slideTopToBottom\"\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-slide.${classPrefix}-ac-ctrl-slideBottomToTop`, {\n animationName: \"fadeIn, slideBottomToTop\"\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-slide.${classPrefix}-ac-ctrl-slideLeftToRight`, {\n animationName: \"fadeIn, slideLeftToRight\"\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-slide.${classPrefix}-ac-ctrl-slideRightToLeft`, {\n animationName: \"fadeIn, slideRightToLeft\"\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-dropdown-item`, {\n width: \"100%\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n display: \"block\",\n padding: \"0px 12px\",\n lineHeight: \"30px\",\n cursor: \"pointer\",\n backgroundColor: theme.colorNeutralBackground1,\n color: theme.colorNeutralForeground1\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-dropdown-item:hover`, {\n backgroundColor: theme.colorNeutralBackground2,\n color: theme.colorNeutralForeground2\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-dropdown-item:focus`, {\n outline: \"0\",\n backgroundColor: theme.colorNeutralBackground3,\n color: theme.colorNeutralForeground3\n });\n nanoCss.put(`.${classPrefix}-ac-ctrl-dropdown-item-disabled`, {\n width: \"100%\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n display: \"block\",\n padding: \"0px 12px\",\n lineHeight: \"30px\",\n cursor: \"pointer\",\n backgroundColor: theme.colorNeutralBackgroundDisabled,\n color: theme.colorNeutralForegroundDisabled\n });\n};\n","import { HostConfig } from 'adaptivecards';\nimport { Theme, } from '@fluentui/react-components';\n\nexport const createHostConfig = (theme: Theme): HostConfig => {\n return new HostConfig({\n fontFamily: theme.fontFamilyBase,\n separator: {\n lineThickness: 1,\n lineColor: theme.colorNeutralStroke2\n },\n containerStyles: {\n default: {\n backgroundColor: theme.colorNeutralBackground1,\n foregroundColors: {\n default: {\n default: theme.colorNeutralForeground1,\n subtle: theme.colorNeutralForeground2\n },\n dark: {\n default: theme.colorNeutralForeground3,\n subtle: theme.colorNeutralForeground4\n },\n light: {\n default: theme.colorNeutralForeground1,\n subtle: theme.colorNeutralForeground2\n },\n accent: {\n default: theme.colorBrandForeground1,\n subtle: theme.colorBrandForeground2\n },\n attention: {\n default: theme.colorPaletteRedBackground3,\n subtle: theme.colorPaletteRedBackground2\n },\n good: {\n default: theme.colorPaletteGreenBackground3,\n subtle: theme.colorPaletteGreenBackground2\n },\n warning: {\n default: theme.colorPaletteYellowBackground3,\n subtle: theme.colorPaletteYellowBackground2\n }\n }\n },\n emphasis: {\n backgroundColor: theme.colorNeutralBackground3,\n foregroundColors: {\n default: {\n default: theme.colorNeutralForeground1,\n subtle: theme.colorNeutralForeground2\n },\n dark: {\n default: theme.colorNeutralForeground3,\n subtle: theme.colorNeutralForeground4\n },\n light: {\n default: theme.colorNeutralForeground1,\n subtle: theme.colorNeutralForeground2\n },\n accent: {\n default: theme.colorBrandForeground1,\n subtle: theme.colorBrandForeground2\n },\n attention: {\n default: theme.colorPaletteRedBackground3,\n subtle: theme.colorPaletteRedBackground2\n },\n good: {\n default: theme.colorPaletteGreenBackground3,\n subtle: theme.colorPaletteGreenBackground2\n },\n warning: {\n default: theme.colorPaletteYellowBackground3,\n subtle: theme.colorPaletteYellowBackground2\n }\n }\n }\n // Add other container styles as needed\n },\n inputs: {\n label: {\n requiredInputs: { weight: 'bold' },\n optionalInputs: { weight: 'bold' },\n },\n errorMessage: {\n color: 'attention',\n weight: 'bold'\n }\n },\n actions: {\n buttonSpacing: 10,\n actionAlignment: 'right'\n }\n });\n};\n","import { Theme, webLightTheme } from \"@fluentui/react-components\";\n\nimport { HostConfig } from \"adaptivecards\";\n\nexport const hostCapabilitiesFluentUIThemeKey = \"fluentUITheme\";\n\n// Sets the Fluent UI v9 theme as a host capability\nexport const setFluentUIThemeAsHostCapability = (\n hostConfig: HostConfig,\n theme: Theme\n): void => {\n hostConfig.hostCapabilities.setCustomProperty(\n hostCapabilitiesFluentUIThemeKey,\n theme\n );\n};\n\n// Retrieves the Fluent UI v9 theme from host capability (fallback to default if missing)\nexport const getFluentUIThemeFromHostCapability = (\n hostConfig: HostConfig\n): Theme => {\n let theme = hostConfig.hostCapabilities.getCustomProperty(\n hostCapabilitiesFluentUIThemeKey\n ) as Theme;\n\n if (!theme) {\n theme = webLightTheme;\n }\n\n return theme;\n};\n","import { Theme, teamsDarkTheme, teamsHighContrastTheme, teamsLightTheme, } from '@fluentui/react-components';\n\nimport { AdaptiveCardHostThemeType } from './models/AdaptiveCardHostThemeType';\nimport { IAdaptiveCardHostConfigResult } from './models/IAdaptiveCardHostConfigResult';\nimport {applyAdaptiveCardHostStyles} from './fluentUI/Styles';\nimport { createHostConfig } from './fluentUI/HostConfig';\nimport { setFluentUIThemeAsHostCapability } from './fluentUI/HostCapability';\n\nexport const initializeAdaptiveCardHost = (themeType: AdaptiveCardHostThemeType, currentTheme: Theme): IAdaptiveCardHostConfigResult => {\n\n let hostConfigResult: IAdaptiveCardHostConfigResult;\n\n switch (themeType) {\n case AdaptiveCardHostThemeType.SharePoint:\n hostConfigResult = {\n theme: currentTheme,\n hostConfig: createHostConfig(currentTheme)\n };\n break;\n case AdaptiveCardHostThemeType.Teams:\n hostConfigResult = {\n theme: teamsLightTheme,\n hostConfig: createHostConfig(teamsLightTheme)\n };\n break;\n case AdaptiveCardHostThemeType.TeamsDark:\n hostConfigResult = {\n theme: teamsDarkTheme,\n hostConfig: createHostConfig(teamsDarkTheme) \n }; \n break;\n case AdaptiveCardHostThemeType.TeamsHighContrast:\n hostConfigResult = {\n theme: teamsHighContrastTheme, \n hostConfig: createHostConfig(teamsHighContrastTheme)\n };\n break;\n default:\n hostConfigResult = {\n theme: currentTheme,\n hostConfig: createHostConfig(currentTheme)\n };\n break;\n }\n\n hostConfigResult.hostConfig.cssClassNamePrefix = `ach${Math.random().toString().replace(/\\./g, \"\")}`;\n setFluentUIThemeAsHostCapability(hostConfigResult.hostConfig, hostConfigResult.theme);\n applyAdaptiveCardHostStyles(hostConfigResult.theme, hostConfigResult.hostConfig.cssClassNamePrefix);\n\n return hostConfigResult;\n};\n\n ","\"use strict\";\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionRole = exports.CarouselInteractionEvent = exports.LogLevel = exports.RefreshMode = exports.TypeErrorType = exports.ContainerFitStatus = exports.ValidationEvent = exports.ValidationPhase = exports.InputLabelPosition = exports.InputTextStyle = exports.ActionIconPlacement = exports.FillMode = exports.Orientation = exports.ShowCardActionMode = exports.ImageStyle = exports.ActionAlignment = exports.VerticalAlignment = exports.HorizontalAlignment = exports.TextColor = exports.Spacing = exports.FontType = exports.TextWeight = exports.InputStyle = exports.TextSize = exports.SizeUnit = exports.ImageSetPresentationStyle = exports.ImageSize = exports.Size = exports.ActionMode = exports.ActionStyle = exports.ContainerStyle = void 0;\n/*\n This should really be a string enum, e.g.\n\n export enum ContainerStyle {\n Default = \"default\",\n Emphasis = \"emphasis\"\n }\n\n However, some hosts do not use a version of TypeScript\n recent enough to understand string enums. This is\n a compatible construct that does not require using\n a more recent version of TypeScript.\n\n Also note the \"weird\" way these readonly fields are declared is to work around\n a breaking change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\n and adopt this syntax for all other static readonly fields.\n*/\n/* eslint-disable @typescript-eslint/no-extraneous-class, @typescript-eslint/naming-convention */\nvar ContainerStyle = /** @class */ (function () {\n function ContainerStyle() {\n }\n ContainerStyle.Default = \"default\";\n ContainerStyle.Emphasis = \"emphasis\";\n ContainerStyle.Accent = \"accent\";\n ContainerStyle.Good = \"good\";\n ContainerStyle.Attention = \"attention\";\n ContainerStyle.Warning = \"warning\";\n return ContainerStyle;\n}());\nexports.ContainerStyle = ContainerStyle;\nvar ActionStyle = /** @class */ (function () {\n function ActionStyle() {\n }\n ActionStyle.Default = \"default\";\n ActionStyle.Positive = \"positive\";\n ActionStyle.Destructive = \"destructive\";\n return ActionStyle;\n}());\nexports.ActionStyle = ActionStyle;\nvar ActionMode = /** @class */ (function () {\n function ActionMode() {\n }\n ActionMode.Primary = \"primary\";\n ActionMode.Secondary = \"secondary\";\n return ActionMode;\n}());\nexports.ActionMode = ActionMode;\n/* eslint-enable @typescript-eslint/no-extraneous-class, @typescript-eslint/naming-convention */\nvar Size;\n(function (Size) {\n Size[Size[\"Auto\"] = 0] = \"Auto\";\n Size[Size[\"Stretch\"] = 1] = \"Stretch\";\n Size[Size[\"Small\"] = 2] = \"Small\";\n Size[Size[\"Medium\"] = 3] = \"Medium\";\n Size[Size[\"Large\"] = 4] = \"Large\";\n})(Size = exports.Size || (exports.Size = {}));\nvar ImageSize;\n(function (ImageSize) {\n ImageSize[ImageSize[\"Small\"] = 0] = \"Small\";\n ImageSize[ImageSize[\"Medium\"] = 1] = \"Medium\";\n ImageSize[ImageSize[\"Large\"] = 2] = \"Large\";\n})(ImageSize = exports.ImageSize || (exports.ImageSize = {}));\nvar ImageSetPresentationStyle;\n(function (ImageSetPresentationStyle) {\n ImageSetPresentationStyle[ImageSetPresentationStyle[\"Default\"] = 0] = \"Default\";\n ImageSetPresentationStyle[ImageSetPresentationStyle[\"Stacked\"] = 1] = \"Stacked\";\n})(ImageSetPresentationStyle = exports.ImageSetPresentationStyle || (exports.ImageSetPresentationStyle = {}));\nvar SizeUnit;\n(function (SizeUnit) {\n SizeUnit[SizeUnit[\"Weight\"] = 0] = \"Weight\";\n SizeUnit[SizeUnit[\"Pixel\"] = 1] = \"Pixel\";\n})(SizeUnit = exports.SizeUnit || (exports.SizeUnit = {}));\nvar TextSize;\n(function (TextSize) {\n TextSize[TextSize[\"Small\"] = 0] = \"Small\";\n TextSize[TextSize[\"Default\"] = 1] = \"Default\";\n TextSize[TextSize[\"Medium\"] = 2] = \"Medium\";\n TextSize[TextSize[\"Large\"] = 3] = \"Large\";\n TextSize[TextSize[\"ExtraLarge\"] = 4] = \"ExtraLarge\";\n})(TextSize = exports.TextSize || (exports.TextSize = {}));\nvar InputStyle;\n(function (InputStyle) {\n InputStyle[InputStyle[\"RevealOnHover\"] = 0] = \"RevealOnHover\";\n InputStyle[InputStyle[\"Default\"] = 1] = \"Default\";\n})(InputStyle = exports.InputStyle || (exports.InputStyle = {}));\nvar TextWeight;\n(function (TextWeight) {\n TextWeight[TextWeight[\"Lighter\"] = 0] = \"Lighter\";\n TextWeight[TextWeight[\"Default\"] = 1] = \"Default\";\n TextWeight[TextWeight[\"Bolder\"] = 2] = \"Bolder\";\n})(TextWeight = exports.TextWeight || (exports.TextWeight = {}));\nvar FontType;\n(function (FontType) {\n FontType[FontType[\"Default\"] = 0] = \"Default\";\n FontType[FontType[\"Monospace\"] = 1] = \"Monospace\";\n})(FontType = exports.FontType || (exports.FontType = {}));\nvar Spacing;\n(function (Spacing) {\n Spacing[Spacing[\"None\"] = 0] = \"None\";\n Spacing[Spacing[\"Small\"] = 1] = \"Small\";\n Spacing[Spacing[\"Default\"] = 2] = \"Default\";\n Spacing[Spacing[\"Medium\"] = 3] = \"Medium\";\n Spacing[Spacing[\"Large\"] = 4] = \"Large\";\n Spacing[Spacing[\"ExtraLarge\"] = 5] = \"ExtraLarge\";\n Spacing[Spacing[\"Padding\"] = 6] = \"Padding\";\n})(Spacing = exports.Spacing || (exports.Spacing = {}));\nvar TextColor;\n(function (TextColor) {\n TextColor[TextColor[\"Default\"] = 0] = \"Default\";\n TextColor[TextColor[\"Dark\"] = 1] = \"Dark\";\n TextColor[TextColor[\"Light\"] = 2] = \"Light\";\n TextColor[TextColor[\"Accent\"] = 3] = \"Accent\";\n TextColor[TextColor[\"Good\"] = 4] = \"Good\";\n TextColor[TextColor[\"Warning\"] = 5] = \"Warning\";\n TextColor[TextColor[\"Attention\"] = 6] = \"Attention\";\n})(TextColor = exports.TextColor || (exports.TextColor = {}));\nvar HorizontalAlignment;\n(function (HorizontalAlignment) {\n HorizontalAlignment[HorizontalAlignment[\"Left\"] = 0] = \"Left\";\n HorizontalAlignment[HorizontalAlignment[\"Center\"] = 1] = \"Center\";\n HorizontalAlignment[HorizontalAlignment[\"Right\"] = 2] = \"Right\";\n})(HorizontalAlignment = exports.HorizontalAlignment || (exports.HorizontalAlignment = {}));\nvar VerticalAlignment;\n(function (VerticalAlignment) {\n VerticalAlignment[VerticalAlignment[\"Top\"] = 0] = \"Top\";\n VerticalAlignment[VerticalAlignment[\"Center\"] = 1] = \"Center\";\n VerticalAlignment[VerticalAlignment[\"Bottom\"] = 2] = \"Bottom\";\n})(VerticalAlignment = exports.VerticalAlignment || (exports.VerticalAlignment = {}));\nvar ActionAlignment;\n(function (ActionAlignment) {\n ActionAlignment[ActionAlignment[\"Left\"] = 0] = \"Left\";\n ActionAlignment[ActionAlignment[\"Center\"] = 1] = \"Center\";\n ActionAlignment[ActionAlignment[\"Right\"] = 2] = \"Right\";\n ActionAlignment[ActionAlignment[\"Stretch\"] = 3] = \"Stretch\";\n})(ActionAlignment = exports.ActionAlignment || (exports.ActionAlignment = {}));\nvar ImageStyle;\n(function (ImageStyle) {\n ImageStyle[ImageStyle[\"Default\"] = 0] = \"Default\";\n ImageStyle[ImageStyle[\"Person\"] = 1] = \"Person\";\n})(ImageStyle = exports.ImageStyle || (exports.ImageStyle = {}));\nvar ShowCardActionMode;\n(function (ShowCardActionMode) {\n ShowCardActionMode[ShowCardActionMode[\"Inline\"] = 0] = \"Inline\";\n ShowCardActionMode[ShowCardActionMode[\"Popup\"] = 1] = \"Popup\";\n})(ShowCardActionMode = exports.ShowCardActionMode || (exports.ShowCardActionMode = {}));\nvar Orientation;\n(function (Orientation) {\n Orientation[Orientation[\"Horizontal\"] = 0] = \"Horizontal\";\n Orientation[Orientation[\"Vertical\"] = 1] = \"Vertical\";\n})(Orientation = exports.Orientation || (exports.Orientation = {}));\nvar FillMode;\n(function (FillMode) {\n FillMode[FillMode[\"Cover\"] = 0] = \"Cover\";\n FillMode[FillMode[\"RepeatHorizontally\"] = 1] = \"RepeatHorizontally\";\n FillMode[FillMode[\"RepeatVertically\"] = 2] = \"RepeatVertically\";\n FillMode[FillMode[\"Repeat\"] = 3] = \"Repeat\";\n})(FillMode = exports.FillMode || (exports.FillMode = {}));\nvar ActionIconPlacement;\n(function (ActionIconPlacement) {\n ActionIconPlacement[ActionIconPlacement[\"LeftOfTitle\"] = 0] = \"LeftOfTitle\";\n ActionIconPlacement[ActionIconPlacement[\"AboveTitle\"] = 1] = \"AboveTitle\";\n})(ActionIconPlacement = exports.ActionIconPlacement || (exports.ActionIconPlacement = {}));\nvar InputTextStyle;\n(function (InputTextStyle) {\n InputTextStyle[InputTextStyle[\"Text\"] = 0] = \"Text\";\n InputTextStyle[InputTextStyle[\"Tel\"] = 1] = \"Tel\";\n InputTextStyle[InputTextStyle[\"Url\"] = 2] = \"Url\";\n InputTextStyle[InputTextStyle[\"Email\"] = 3] = \"Email\";\n InputTextStyle[InputTextStyle[\"Password\"] = 4] = \"Password\";\n})(InputTextStyle = exports.InputTextStyle || (exports.InputTextStyle = {}));\nvar InputLabelPosition;\n(function (InputLabelPosition) {\n InputLabelPosition[InputLabelPosition[\"Inline\"] = 0] = \"Inline\";\n InputLabelPosition[InputLabelPosition[\"Above\"] = 1] = \"Above\";\n})(InputLabelPosition = exports.InputLabelPosition || (exports.InputLabelPosition = {}));\nvar ValidationPhase;\n(function (ValidationPhase) {\n ValidationPhase[ValidationPhase[\"Parse\"] = 0] = \"Parse\";\n ValidationPhase[ValidationPhase[\"ToJSON\"] = 1] = \"ToJSON\";\n ValidationPhase[ValidationPhase[\"Validation\"] = 2] = \"Validation\";\n})(ValidationPhase = exports.ValidationPhase || (exports.ValidationPhase = {}));\nvar ValidationEvent;\n(function (ValidationEvent) {\n ValidationEvent[ValidationEvent[\"Hint\"] = 0] = \"Hint\";\n ValidationEvent[ValidationEvent[\"ActionTypeNotAllowed\"] = 1] = \"ActionTypeNotAllowed\";\n ValidationEvent[ValidationEvent[\"CollectionCantBeEmpty\"] = 2] = \"CollectionCantBeEmpty\";\n ValidationEvent[ValidationEvent[\"Deprecated\"] = 3] = \"Deprecated\";\n ValidationEvent[ValidationEvent[\"ElementTypeNotAllowed\"] = 4] = \"ElementTypeNotAllowed\";\n ValidationEvent[ValidationEvent[\"InteractivityNotAllowed\"] = 5] = \"InteractivityNotAllowed\";\n ValidationEvent[ValidationEvent[\"InvalidPropertyValue\"] = 6] = \"InvalidPropertyValue\";\n ValidationEvent[ValidationEvent[\"MissingCardType\"] = 7] = \"MissingCardType\";\n ValidationEvent[ValidationEvent[\"PropertyCantBeNull\"] = 8] = \"PropertyCantBeNull\";\n ValidationEvent[ValidationEvent[\"TooManyActions\"] = 9] = \"TooManyActions\";\n ValidationEvent[ValidationEvent[\"UnknownActionType\"] = 10] = \"UnknownActionType\";\n ValidationEvent[ValidationEvent[\"UnknownElementType\"] = 11] = \"UnknownElementType\";\n ValidationEvent[ValidationEvent[\"UnsupportedCardVersion\"] = 12] = \"UnsupportedCardVersion\";\n ValidationEvent[ValidationEvent[\"DuplicateId\"] = 13] = \"DuplicateId\";\n ValidationEvent[ValidationEvent[\"UnsupportedProperty\"] = 14] = \"UnsupportedProperty\";\n ValidationEvent[ValidationEvent[\"RequiredInputsShouldHaveLabel\"] = 15] = \"RequiredInputsShouldHaveLabel\";\n ValidationEvent[ValidationEvent[\"RequiredInputsShouldHaveErrorMessage\"] = 16] = \"RequiredInputsShouldHaveErrorMessage\";\n ValidationEvent[ValidationEvent[\"Other\"] = 17] = \"Other\";\n})(ValidationEvent = exports.ValidationEvent || (exports.ValidationEvent = {}));\nvar ContainerFitStatus;\n(function (ContainerFitStatus) {\n ContainerFitStatus[ContainerFitStatus[\"FullyInContainer\"] = 0] = \"FullyInContainer\";\n ContainerFitStatus[ContainerFitStatus[\"Overflowing\"] = 1] = \"Overflowing\";\n ContainerFitStatus[ContainerFitStatus[\"FullyOutOfContainer\"] = 2] = \"FullyOutOfContainer\";\n})(ContainerFitStatus = exports.ContainerFitStatus || (exports.ContainerFitStatus = {}));\nvar TypeErrorType;\n(function (TypeErrorType) {\n TypeErrorType[TypeErrorType[\"UnknownType\"] = 0] = \"UnknownType\";\n TypeErrorType[TypeErrorType[\"ForbiddenType\"] = 1] = \"ForbiddenType\";\n})(TypeErrorType = exports.TypeErrorType || (exports.TypeErrorType = {}));\nvar RefreshMode;\n(function (RefreshMode) {\n RefreshMode[RefreshMode[\"Disabled\"] = 0] = \"Disabled\";\n RefreshMode[RefreshMode[\"Manual\"] = 1] = \"Manual\";\n RefreshMode[RefreshMode[\"Automatic\"] = 2] = \"Automatic\";\n})(RefreshMode = exports.RefreshMode || (exports.RefreshMode = {}));\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"Info\"] = 0] = \"Info\";\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\n LogLevel[LogLevel[\"Error\"] = 2] = \"Error\";\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\nvar CarouselInteractionEvent;\n(function (CarouselInteractionEvent) {\n CarouselInteractionEvent[CarouselInteractionEvent[\"NavigationNext\"] = 0] = \"NavigationNext\";\n CarouselInteractionEvent[CarouselInteractionEvent[\"NavigationPrevious\"] = 1] = \"NavigationPrevious\";\n CarouselInteractionEvent[CarouselInteractionEvent[\"Pagination\"] = 2] = \"Pagination\";\n CarouselInteractionEvent[CarouselInteractionEvent[\"Autoplay\"] = 3] = \"Autoplay\";\n})(CarouselInteractionEvent = exports.CarouselInteractionEvent || (exports.CarouselInteractionEvent = {}));\nvar ActionRole;\n(function (ActionRole) {\n ActionRole[ActionRole[\"Button\"] = 0] = \"Button\";\n ActionRole[ActionRole[\"Link\"] = 1] = \"Link\";\n ActionRole[ActionRole[\"Tab\"] = 2] = \"Tab\";\n ActionRole[ActionRole[\"Menu\"] = 3] = \"Menu\";\n ActionRole[ActionRole[\"MenuItem\"] = 4] = \"MenuItem\";\n})(ActionRole = exports.ActionRole || (exports.ActionRole = {}));\n//# sourceMappingURL=enums.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UUID = exports.SizeAndUnit = exports.PaddingDefinition = exports.SpacingDefinition = exports.StringWithSubstitutions = exports.ContentTypes = exports.GlobalSettings = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar Enums = require(\"./enums\");\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nvar GlobalSettings = /** @class */ (function () {\n function GlobalSettings() {\n }\n GlobalSettings.useAdvancedTextBlockTruncation = true;\n GlobalSettings.useAdvancedCardBottomTruncation = false;\n GlobalSettings.useMarkdownInRadioButtonAndCheckbox = true;\n GlobalSettings.allowMarkForTextHighlighting = false;\n GlobalSettings.alwaysBleedSeparators = false;\n GlobalSettings.enableFullJsonRoundTrip = false;\n GlobalSettings.displayInputValidationErrors = true;\n GlobalSettings.allowPreProcessingPropertyValues = false;\n GlobalSettings.setTabIndexAtCardRoot = true;\n GlobalSettings.enableFallback = true;\n GlobalSettings.useWebkitLineClamp = true;\n GlobalSettings.allowMoreThanMaxActionsInOverflowMenu = false;\n GlobalSettings.removePaddingFromContainersWithBackgroundImage = false;\n GlobalSettings.resetInputsDirtyStateAfterActionExecution = true;\n GlobalSettings.applets = {\n logEnabled: true,\n logLevel: Enums.LogLevel.Error,\n maximumRetryAttempts: 3,\n defaultTimeBetweenRetryAttempts: 3000,\n authPromptWidth: 400,\n authPromptHeight: 600,\n refresh: {\n mode: Enums.RefreshMode.Manual,\n timeBetweenAutomaticRefreshes: 3000,\n maximumConsecutiveAutomaticRefreshes: 3,\n allowManualRefreshesAfterAutomaticRefreshes: true\n }\n };\n return GlobalSettings;\n}());\nexports.GlobalSettings = GlobalSettings;\nexports.ContentTypes = {\n applicationJson: \"application/json\",\n applicationXWwwFormUrlencoded: \"application/x-www-form-urlencoded\"\n};\nvar StringWithSubstitutions = /** @class */ (function () {\n function StringWithSubstitutions() {\n this._isProcessed = false;\n }\n StringWithSubstitutions.prototype.getReferencedInputs = function (inputs, referencedInputs) {\n if (!referencedInputs) {\n throw new Error(\"The referencedInputs parameter cannot be null.\");\n }\n if (this._original) {\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n var matches = new RegExp(\"\\\\{{2}(\" + input.id + \").value\\\\}{2}\", \"gi\").exec(this._original);\n if (matches != null && input.id) {\n referencedInputs[input.id] = input;\n }\n }\n }\n };\n StringWithSubstitutions.prototype.substituteInputValues = function (inputs, contentType) {\n this._processed = this._original;\n if (this._original) {\n var regEx = /\\{{2}([a-z0-9_$@]+).value\\}{2}/gi;\n var matches = void 0;\n while ((matches = regEx.exec(this._original)) !== null && this._processed) {\n for (var _i = 0, _a = Object.keys(inputs); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key.toLowerCase() === matches[1].toLowerCase()) {\n var matchedInput = inputs[key];\n var valueForReplace = \"\";\n if (matchedInput.value) {\n valueForReplace = matchedInput.value;\n }\n if (contentType === exports.ContentTypes.applicationJson) {\n valueForReplace = JSON.stringify(valueForReplace);\n valueForReplace = valueForReplace.slice(1, -1);\n }\n else if (contentType === exports.ContentTypes.applicationXWwwFormUrlencoded) {\n valueForReplace = encodeURIComponent(valueForReplace);\n }\n this._processed = this._processed.replace(matches[0], valueForReplace);\n break;\n }\n }\n }\n }\n this._isProcessed = true;\n };\n StringWithSubstitutions.prototype.getOriginal = function () {\n return this._original;\n };\n StringWithSubstitutions.prototype.get = function () {\n if (!this._isProcessed) {\n return this._original;\n }\n else {\n return this._processed;\n }\n };\n StringWithSubstitutions.prototype.set = function (value) {\n this._original = value;\n this._isProcessed = false;\n };\n return StringWithSubstitutions;\n}());\nexports.StringWithSubstitutions = StringWithSubstitutions;\nvar SpacingDefinition = /** @class */ (function () {\n function SpacingDefinition(top, right, bottom, left) {\n if (top === void 0) { top = 0; }\n if (right === void 0) { right = 0; }\n if (bottom === void 0) { bottom = 0; }\n if (left === void 0) { left = 0; }\n this.left = 0;\n this.top = 0;\n this.right = 0;\n this.bottom = 0;\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n this.left = left;\n }\n return SpacingDefinition;\n}());\nexports.SpacingDefinition = SpacingDefinition;\nvar PaddingDefinition = /** @class */ (function () {\n function PaddingDefinition(top, right, bottom, left) {\n if (top === void 0) { top = Enums.Spacing.None; }\n if (right === void 0) { right = Enums.Spacing.None; }\n if (bottom === void 0) { bottom = Enums.Spacing.None; }\n if (left === void 0) { left = Enums.Spacing.None; }\n this.top = Enums.Spacing.None;\n this.right = Enums.Spacing.None;\n this.bottom = Enums.Spacing.None;\n this.left = Enums.Spacing.None;\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n this.left = left;\n }\n return PaddingDefinition;\n}());\nexports.PaddingDefinition = PaddingDefinition;\nvar SizeAndUnit = /** @class */ (function () {\n function SizeAndUnit(physicalSize, unit) {\n this.physicalSize = physicalSize;\n this.unit = unit;\n }\n SizeAndUnit.parse = function (input, requireUnitSpecifier) {\n if (requireUnitSpecifier === void 0) { requireUnitSpecifier = false; }\n var result = new SizeAndUnit(0, Enums.SizeUnit.Weight);\n if (typeof input === \"number\") {\n result.physicalSize = input;\n return result;\n }\n else if (typeof input === \"string\") {\n var regExp = /^([0-9]+)(px|\\*)?$/g;\n var matches = regExp.exec(input);\n var expectedMatchCount = requireUnitSpecifier ? 3 : 2;\n if (matches && matches.length >= expectedMatchCount) {\n result.physicalSize = parseInt(matches[1]);\n if (matches.length === 3) {\n if (matches[2] === \"px\") {\n result.unit = Enums.SizeUnit.Pixel;\n }\n }\n return result;\n }\n }\n throw new Error(\"Invalid size: \" + input);\n };\n return SizeAndUnit;\n}());\nexports.SizeAndUnit = SizeAndUnit;\n/**\n * Fast UUID generator, RFC4122 version 4 compliant.\n * @author Jeff Ward (jcward.com).\n * @license MIT license\n * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\n **/\n/* eslint-disable @typescript-eslint/no-extraneous-class, @typescript-eslint/naming-convention, no-bitwise */\nvar UUID = /** @class */ (function () {\n function UUID() {\n }\n UUID.generate = function () {\n var d0 = (Math.random() * 0xffffffff) | 0;\n var d1 = (Math.random() * 0xffffffff) | 0;\n var d2 = (Math.random() * 0xffffffff) | 0;\n var d3 = (Math.random() * 0xffffffff) | 0;\n return (UUID.lut[d0 & 0xff] +\n UUID.lut[(d0 >> 8) & 0xff] +\n UUID.lut[(d0 >> 16) & 0xff] +\n UUID.lut[(d0 >> 24) & 0xff] +\n \"-\" +\n UUID.lut[d1 & 0xff] +\n UUID.lut[(d1 >> 8) & 0xff] +\n \"-\" +\n UUID.lut[((d1 >> 16) & 0x0f) | 0x40] +\n UUID.lut[(d1 >> 24) & 0xff] +\n \"-\" +\n UUID.lut[(d2 & 0x3f) | 0x80] +\n UUID.lut[(d2 >> 8) & 0xff] +\n \"-\" +\n UUID.lut[(d2 >> 16) & 0xff] +\n UUID.lut[(d2 >> 24) & 0xff] +\n UUID.lut[d3 & 0xff] +\n UUID.lut[(d3 >> 8) & 0xff] +\n UUID.lut[(d3 >> 16) & 0xff] +\n UUID.lut[(d3 >> 24) & 0xff]);\n };\n UUID.initialize = function () {\n for (var i = 0; i < 256; i++) {\n UUID.lut[i] = (i < 16 ? \"0\" : \"\") + i.toString(16);\n }\n };\n UUID.lut = [];\n return UUID;\n}());\nexports.UUID = UUID;\nUUID.initialize();\n/* eslint-enable @typescript-eslint/no-extraneous-class, @typescript-eslint/naming-convention, no-bitwise */\n//# sourceMappingURL=shared.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.debounce = exports.addCancelSelectActionEventHandler = exports.clearElementChildren = exports.getScrollY = exports.getScrollX = exports.getFitStatus = exports.truncate = exports.truncateText = exports.stringToCssColor = exports.parseEnum = exports.getEnumValueByName = exports.parseBool = exports.parseNumber = exports.parseString = exports.appendChild = exports.generateUniqueId = exports.isMobileOS = exports.isInternetExplorer = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar Enums = require(\"./enums\");\nvar Shared = require(\"./shared\");\nfunction isInternetExplorer() {\n // The documentMode property only exists in IE\n return window.document.documentMode !== undefined;\n}\nexports.isInternetExplorer = isInternetExplorer;\nfunction isMobileOS() {\n var userAgent = window.navigator.userAgent;\n return (!!userAgent.match(/Android/i) || !!userAgent.match(/iPad/i) || !!userAgent.match(/iPhone/i));\n}\nexports.isMobileOS = isMobileOS;\n/**\n * Generate a UUID prepended with \"__ac-\"\n */\nfunction generateUniqueId() {\n return \"__ac-\" + Shared.UUID.generate();\n}\nexports.generateUniqueId = generateUniqueId;\nfunction appendChild(node, child) {\n if (child) {\n node.appendChild(child);\n }\n}\nexports.appendChild = appendChild;\nfunction parseString(obj, defaultValue) {\n return typeof obj === \"string\" ? obj : defaultValue;\n}\nexports.parseString = parseString;\nfunction parseNumber(obj, defaultValue) {\n return typeof obj === \"number\" ? obj : defaultValue;\n}\nexports.parseNumber = parseNumber;\nfunction parseBool(value, defaultValue) {\n if (typeof value === \"boolean\") {\n return value;\n }\n else if (typeof value === \"string\") {\n switch (value.toLowerCase()) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n return defaultValue;\n }\n }\n return defaultValue;\n}\nexports.parseBool = parseBool;\nfunction getEnumValueByName(enumType, name) {\n // eslint-disable-next-line guard-for-in\n for (var key in enumType) {\n var keyAsNumber = parseInt(key, 10);\n if (keyAsNumber >= 0) {\n var value = enumType[key];\n if (value && typeof value === \"string\" && value.toLowerCase() === name.toLowerCase()) {\n return keyAsNumber;\n }\n }\n }\n return undefined;\n}\nexports.getEnumValueByName = getEnumValueByName;\nfunction parseEnum(enumType, name, defaultValue) {\n if (!name) {\n return defaultValue;\n }\n var enumValue = getEnumValueByName(enumType, name);\n return enumValue !== undefined ? enumValue : defaultValue;\n}\nexports.parseEnum = parseEnum;\nfunction stringToCssColor(color) {\n if (color) {\n var regEx = /#([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})?/gi;\n var matches = regEx.exec(color);\n if (matches && matches[4]) {\n var a = parseInt(matches[1], 16) / 255;\n var r = parseInt(matches[2], 16);\n var g = parseInt(matches[3], 16);\n var b = parseInt(matches[4], 16);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + a + \")\";\n }\n }\n return color;\n}\nexports.stringToCssColor = stringToCssColor;\nfunction truncateWorker(element, maxHeight, fullText, truncateAt, lineHeight) {\n var fits = function () {\n // Allow a one pixel overflow to account for rounding differences\n // between browsers\n return maxHeight - element.scrollHeight >= -1.0;\n };\n if (fits()) {\n return;\n }\n var breakableIndices = findBreakableIndices(fullText);\n var lo = 0;\n var hi = breakableIndices.length;\n var bestBreakIdx = 0;\n // Do a binary search for the longest string that fits\n while (lo < hi) {\n var mid = Math.floor((lo + hi) / 2);\n truncateAt(fullText, breakableIndices[mid]);\n if (fits()) {\n bestBreakIdx = breakableIndices[mid];\n lo = mid + 1;\n }\n else {\n hi = mid;\n }\n }\n truncateAt(fullText, bestBreakIdx);\n // If we have extra room, try to expand the string letter by letter\n // (covers the case where we have to break in the middle of a long word)\n if (lineHeight && maxHeight - element.scrollHeight >= lineHeight - 1.0) {\n var idx = findNextCharacter(fullText, bestBreakIdx);\n while (idx < fullText.length) {\n truncateAt(fullText, idx);\n if (fits()) {\n bestBreakIdx = idx;\n idx = findNextCharacter(fullText, idx);\n }\n else {\n break;\n }\n }\n truncateAt(fullText, bestBreakIdx);\n }\n}\nfunction truncateText(element, maxHeight, lineHeight) {\n truncateWorker(element, maxHeight, element.innerText, function (text, idx) {\n element.innerText = text.substring(0, idx) + \"...\";\n }, lineHeight);\n}\nexports.truncateText = truncateText;\n/**\n * {@link truncate} has been deprecated and is no longer in use internally. This policy passes\n * content through as it always has, which is _supposed_ to be dealing with text only (see {@link\n * TextBlock.truncateIfSupported}), but had a bug where it might actually pass through an element\n * for which innerHTML yielded actual HTML (since fixed).\n */\nvar ttDeprecatedPolicy = (typeof window === 'undefined') ? undefined : (_a = window.trustedTypes) === null || _a === void 0 ? void 0 : _a.createPolicy(\"adaptivecards#deprecatedExportedFunctionPolicy\", {\n createHTML: function (value) { return value; }\n});\n/** @deprecated Use {@link truncateText} instead. */\nfunction truncate(element, maxHeight, lineHeight) {\n truncateWorker(element, maxHeight, element.innerHTML, function (text, idx) {\n var _a;\n var truncatedString = text.substring(0, idx) + \"...\";\n var truncatedHTML = (_a = ttDeprecatedPolicy === null || ttDeprecatedPolicy === void 0 ? void 0 : ttDeprecatedPolicy.createHTML(truncatedString)) !== null && _a !== void 0 ? _a : truncatedString;\n element.innerHTML = truncatedHTML;\n }, lineHeight);\n}\nexports.truncate = truncate;\nfunction findBreakableIndices(html) {\n var results = [];\n var idx = findNextCharacter(html, -1);\n while (idx < html.length) {\n if (html[idx] === \" \") {\n results.push(idx);\n }\n idx = findNextCharacter(html, idx);\n }\n return results;\n}\nfunction findNextCharacter(html, currIdx) {\n currIdx += 1;\n // If we found the start of an HTML tag, keep advancing until we get\n // past it, so we don't end up truncating in the middle of the tag\n while (currIdx < html.length && html[currIdx] === \"<\") {\n while (currIdx < html.length && html[currIdx++] !== \">\") {\n continue;\n }\n }\n return currIdx;\n}\nfunction getFitStatus(element, containerEnd) {\n var start = element.offsetTop;\n var end = start + element.clientHeight;\n if (end <= containerEnd) {\n return Enums.ContainerFitStatus.FullyInContainer;\n }\n else if (start < containerEnd) {\n return Enums.ContainerFitStatus.Overflowing;\n }\n else {\n return Enums.ContainerFitStatus.FullyOutOfContainer;\n }\n}\nexports.getFitStatus = getFitStatus;\nfunction getScrollX() {\n return window.pageXOffset;\n}\nexports.getScrollX = getScrollX;\nfunction getScrollY() {\n return window.pageYOffset;\n}\nexports.getScrollY = getScrollY;\nfunction clearElementChildren(element) {\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n}\nexports.clearElementChildren = clearElementChildren;\nfunction addCancelSelectActionEventHandler(element) {\n element.onclick = function (e) {\n e.preventDefault();\n e.cancelBubble = true;\n };\n}\nexports.addCancelSelectActionEventHandler = addCancelSelectActionEventHandler;\nfunction debounce(fn, delay) {\n var timer;\n function debouncedFn() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(function () {\n fn.apply(void 0, args);\n }, delay);\n }\n return debouncedFn;\n}\nexports.debounce = debounce;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Strings = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nvar Strings = /** @class */ (function () {\n function Strings() {\n }\n Strings.errors = {\n unknownElementType: function (typeName) {\n return \"Unknown element type \\\"\".concat(typeName, \"\\\". Fallback will be used if present.\");\n },\n unknownActionType: function (typeName) {\n return \"Unknown action type \\\"\".concat(typeName, \"\\\". Fallback will be used if present.\");\n },\n elementTypeNotAllowed: function (typeName) {\n return \"Element type \\\"\".concat(typeName, \"\\\" is not allowed in this context.\");\n },\n actionTypeNotAllowed: function (typeName) {\n return \"Action type \\\"\".concat(typeName, \"\\\" is not allowed in this context.\");\n },\n invalidPropertyValue: function (value, propertyName) {\n return \"Invalid value \\\"\".concat(value, \"\\\" for property \\\"\").concat(propertyName, \"\\\".\");\n },\n showCardMustHaveCard: function () {\n return \"\\\"An Action.ShowCard must have its \\\"card\\\" property set to a valid AdaptiveCard object.\";\n },\n invalidColumnWidth: function (invalidWidth) {\n return \"Invalid column width \\\"\".concat(invalidWidth, \"\\\" - defaulting to \\\"auto\\\".\");\n },\n invalidCardVersion: function (defaultingToVersion) {\n return \"Invalid card version. Defaulting to \\\"\".concat(defaultingToVersion, \"\\\".\");\n },\n invalidVersionString: function (versionString) {\n return \"Invalid version string \\\"\".concat(versionString, \"\\\".\");\n },\n propertyValueNotSupported: function (value, propertyName, supportedInVersion, versionUsed) {\n return \"Value \\\"\".concat(value, \"\\\" for property \\\"\").concat(propertyName, \"\\\" is supported in version \").concat(supportedInVersion, \", but you are using version \").concat(versionUsed, \".\");\n },\n propertyNotSupported: function (propertyName, supportedInVersion, versionUsed) {\n return \"Property \\\"\".concat(propertyName, \"\\\" is supported in version \").concat(supportedInVersion, \", but you are using version \").concat(versionUsed, \".\");\n },\n indexOutOfRange: function (index) { return \"Index out of range (\".concat(index, \").\"); },\n elementCannotBeUsedAsInline: function () {\n return \"RichTextBlock.addInline: the specified card element cannot be used as a RichTextBlock inline.\";\n },\n inlineAlreadyParented: function () {\n return \"RichTextBlock.addInline: the specified inline already belongs to another RichTextBlock.\";\n },\n interactivityNotAllowed: function () { return \"Interactivity is not allowed.\"; },\n inputsMustHaveUniqueId: function () { return \"All inputs must have a unique Id.\"; },\n choiceSetMustHaveAtLeastOneChoice: function () {\n return \"An Input.ChoiceSet must have at least one choice defined.\";\n },\n choiceSetChoicesMustHaveTitleAndValue: function () {\n return \"All choices in an Input.ChoiceSet must have their title and value properties set.\";\n },\n propertyMustBeSet: function (propertyName) { return \"Property \\\"\".concat(propertyName, \"\\\" must be set.\"); },\n actionHttpHeadersMustHaveNameAndValue: function () {\n return \"All headers of an Action.Http must have their name and value properties set.\";\n },\n tooManyActions: function (maximumActions) {\n return \"Maximum number of actions exceeded (\".concat(maximumActions, \").\");\n },\n tooLittleTimeDelay: function (minAutoplayDelay) {\n return \"Autoplay Delay is too short (\".concat(minAutoplayDelay, \").\");\n },\n tooManyCarouselPages: function (maxCarouselPages) {\n return \"Maximum number of Carousel pages exceeded (\".concat(maxCarouselPages, \").\");\n },\n invalidInitialPageIndex: function (initialPageIndex) {\n return \"InitialPage for carousel is invalid (\".concat(initialPageIndex, \").\");\n },\n columnAlreadyBelongsToAnotherSet: function () { return \"This column already belongs to another ColumnSet.\"; },\n invalidCardType: function () {\n return \"Invalid or missing card type. Make sure the card's type property is set to \\\"AdaptiveCard\\\".\";\n },\n unsupportedCardVersion: function (version, maxSupportedVersion) {\n return \"The specified card version (\".concat(version, \") is not supported or still in preview. The latest released card version is \").concat(maxSupportedVersion, \".\");\n },\n duplicateId: function (id) { return \"Duplicate Id \\\"\".concat(id, \"\\\".\"); },\n markdownProcessingNotEnabled: function () {\n return \"Markdown processing isn't enabled. Please see https://www.npmjs.com/package/adaptivecards#supporting-markdown\";\n },\n processMarkdownEventRemoved: function () {\n return \"The processMarkdown event has been removed. Please update your code and set onProcessMarkdown instead.\";\n },\n elementAlreadyParented: function () { return \"The element already belongs to another container.\"; },\n actionAlreadyParented: function () { return \"The action already belongs to another element.\"; },\n elementTypeNotStandalone: function (typeName) {\n return \"Elements of type \".concat(typeName, \" cannot be used as standalone elements.\");\n },\n invalidInputLabelWidth: function () {\n return \"Invalid input label width. Defaulting to label width from host config.\";\n },\n };\n Strings.magicCodeInputCard = {\n tryAgain: function () { return \"That didn't work... let's try again.\"; },\n pleaseLogin: function () {\n return 'Please login in the popup. You will obtain a magic code. Paste that code below and select \"Submit\"';\n },\n enterMagicCode: function () { return \"Enter magic code\"; },\n pleaseEnterMagicCodeYouReceived: function () { return \"Please enter the magic code you received.\"; },\n submit: function () { return \"Submit\"; },\n cancel: function () { return \"Cancel\"; },\n somethingWentWrong: function () { return \"Something went wrong. This action can't be handled.\"; },\n authenticationFailed: function () { return \"Authentication failed.\"; }\n };\n Strings.runtime = {\n automaticRefreshPaused: function () { return \"Automatic refresh paused.\"; },\n clckToRestartAutomaticRefresh: function () { return \"Click to restart.\"; },\n refreshThisCard: function () { return \"Refresh this card\"; }\n };\n Strings.hints = {\n dontUseWeightedAndStrecthedColumnsInSameSet: function () {\n return \"It is not recommended to use weighted and stretched columns in the same ColumnSet, because in such a situation stretched columns will always get the minimum amount of space.\";\n }\n };\n Strings.defaults = {\n inlineActionTitle: function () { return \"Inline Action\"; },\n overflowButtonText: function () { return \"...\"; },\n overflowButtonTooltip: function () { return \"More options\"; },\n emptyElementText: function (elementType) { return \"Empty \".concat(elementType); },\n mediaPlayerAriaLabel: function () { return \"Media content\"; },\n mediaPlayerPlayMedia: function () { return \"Play media\"; },\n youTubeVideoPlayer: function () { return \"YouTube video player\"; },\n vimeoVideoPlayer: function () { return \"Vimeo video player\"; },\n dailymotionVideoPlayer: function () { return \"Dailymotion video player\"; },\n carouselNavigationPreviousTooltip: function () { return \"Previous carousel page\"; },\n carouselNavigationNextTooltip: function () { return \"Next carousel page\"; }\n };\n return Strings;\n}());\nexports.Strings = Strings;\n//# sourceMappingURL=strings.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SerializableObject = exports.property = exports.SerializableObjectSchema = exports.CustomProperty = exports.SerializableObjectCollectionProperty = exports.SerializableObjectProperty = exports.EnumProperty = exports.ValueSetProperty = exports.StringArrayProperty = exports.PixelSizeProperty = exports.NumProperty = exports.BoolProperty = exports.StringProperty = exports.PropertyDefinition = exports.BaseSerializationContext = exports.isVersionLessOrEqual = exports.Versions = exports.Version = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar shared_1 = require(\"./shared\");\nvar Utils = require(\"./utils\");\nvar Enums = require(\"./enums\");\nvar strings_1 = require(\"./strings\");\nvar Version = /** @class */ (function () {\n function Version(major, minor, label) {\n if (major === void 0) { major = 1; }\n if (minor === void 0) { minor = 1; }\n this._isValid = true;\n this._major = major;\n this._minor = minor;\n this._label = label;\n }\n Version.parse = function (versionString, context) {\n if (!versionString) {\n return undefined;\n }\n var result = new Version();\n result._versionString = versionString;\n var regEx = /(\\d+).(\\d+)/gi;\n var matches = regEx.exec(versionString);\n if (matches != null && matches.length === 3) {\n result._major = parseInt(matches[1]);\n result._minor = parseInt(matches[2]);\n }\n else {\n result._isValid = false;\n }\n if (!result._isValid) {\n context.logParseEvent(undefined, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidVersionString(result._versionString));\n }\n return result;\n };\n Version.prototype.toString = function () {\n return !this._isValid ? this._versionString : this._major + \".\" + this._minor;\n };\n Version.prototype.toJSON = function () {\n return this.toString();\n };\n Version.prototype.compareTo = function (otherVersion) {\n if (!this.isValid || !otherVersion.isValid) {\n throw new Error(\"Cannot compare invalid version.\");\n }\n if (this.major > otherVersion.major) {\n return 1;\n }\n else if (this.major < otherVersion.major) {\n return -1;\n }\n else if (this.minor > otherVersion.minor) {\n return 1;\n }\n else if (this.minor < otherVersion.minor) {\n return -1;\n }\n return 0;\n };\n Object.defineProperty(Version.prototype, \"label\", {\n get: function () {\n return this._label ? this._label : this.toString();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Version.prototype, \"major\", {\n get: function () {\n return this._major;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Version.prototype, \"minor\", {\n get: function () {\n return this._minor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Version.prototype, \"isValid\", {\n get: function () {\n return this._isValid;\n },\n enumerable: false,\n configurable: true\n });\n return Version;\n}());\nexports.Version = Version;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nvar Versions = /** @class */ (function () {\n function Versions() {\n }\n /* eslint-enable @typescript-eslint/naming-convention */\n Versions.getAllDeclaredVersions = function () {\n var ctor = Versions;\n var properties = [];\n for (var propertyName in ctor) {\n if (propertyName.match(/^v[0-9_]*$/)) {\n // filter latest\n try {\n var propertyValue = ctor[propertyName];\n if (propertyValue instanceof Version) {\n properties.push(propertyValue);\n }\n }\n catch (_a) {\n // If a property happens to have a getter function and\n // it throws an exception, we need to catch it here\n }\n }\n }\n return properties.sort(function (v1, v2) { return v1.compareTo(v2); });\n };\n /* eslint-disable @typescript-eslint/naming-convention */\n Versions.v1_0 = new Version(1, 0);\n Versions.v1_1 = new Version(1, 1);\n Versions.v1_2 = new Version(1, 2);\n Versions.v1_3 = new Version(1, 3);\n Versions.v1_4 = new Version(1, 4);\n Versions.v1_5 = new Version(1, 5);\n // If preview tag is added/removed from any version,\n // don't forget to update .ac-schema-version-1-?::after too in adaptivecards-site\\themes\\adaptivecards\\source\\css\\style.css\n Versions.v1_6 = new Version(1, 6, \"1.6 Preview\");\n Versions.latest = Versions.v1_5;\n return Versions;\n}());\nexports.Versions = Versions;\nfunction isVersionLessOrEqual(version, targetVersion) {\n if (version instanceof Version) {\n if (targetVersion instanceof Version) {\n return targetVersion.compareTo(version) >= 0;\n }\n else {\n // Target version is *\n return true;\n }\n }\n else {\n // Version is *\n return true;\n }\n}\nexports.isVersionLessOrEqual = isVersionLessOrEqual;\nvar BaseSerializationContext = /** @class */ (function () {\n function BaseSerializationContext(targetVersion) {\n if (targetVersion === void 0) { targetVersion = Versions.latest; }\n this._validationEvents = [];\n this.targetVersion = targetVersion;\n }\n BaseSerializationContext.prototype.isTemplateString = function (value) {\n if (typeof value === \"string\") {\n return value.startsWith(\"${\");\n }\n else {\n return false;\n }\n };\n BaseSerializationContext.prototype.tryDeleteValue = function (target, propertyName) {\n if (!shared_1.GlobalSettings.enableFullJsonRoundTrip) {\n delete target[propertyName];\n }\n };\n BaseSerializationContext.prototype.tryDeleteDefaultValue = function (target, propertyName) {\n if (!shared_1.GlobalSettings.enableFullJsonRoundTrip || !this.isTemplateString(target[propertyName])) {\n delete target[propertyName];\n }\n };\n BaseSerializationContext.prototype.serializeValue = function (target, propertyName, propertyValue, defaultValue, forceDeleteIfNullOrDefault) {\n if (defaultValue === void 0) { defaultValue = undefined; }\n if (forceDeleteIfNullOrDefault === void 0) { forceDeleteIfNullOrDefault = false; }\n if (propertyValue === null ||\n propertyValue === undefined) {\n if (!shared_1.GlobalSettings.enableFullJsonRoundTrip || forceDeleteIfNullOrDefault) {\n delete target[propertyName];\n }\n }\n else if (propertyValue === defaultValue) {\n if (!shared_1.GlobalSettings.enableFullJsonRoundTrip || forceDeleteIfNullOrDefault || !this.isTemplateString(target[propertyName])) {\n delete target[propertyName];\n }\n }\n else {\n target[propertyName] = propertyValue;\n }\n };\n BaseSerializationContext.prototype.serializeString = function (target, propertyName, propertyValue, defaultValue) {\n if (propertyValue === null ||\n propertyValue === undefined) {\n this.tryDeleteValue(target, propertyName);\n }\n else if (propertyValue === defaultValue) {\n this.tryDeleteDefaultValue(target, propertyName);\n }\n else {\n target[propertyName] = propertyValue;\n }\n };\n BaseSerializationContext.prototype.serializeBool = function (target, propertyName, propertyValue, defaultValue) {\n if (propertyValue === null ||\n propertyValue === undefined) {\n this.tryDeleteValue(target, propertyName);\n }\n else if (propertyValue === defaultValue) {\n this.tryDeleteDefaultValue(target, propertyName);\n }\n else {\n target[propertyName] = propertyValue;\n }\n };\n BaseSerializationContext.prototype.serializeNumber = function (target, propertyName, propertyValue, defaultValue) {\n if (propertyValue === null ||\n propertyValue === undefined ||\n isNaN(propertyValue)) {\n this.tryDeleteValue(target, propertyName);\n }\n else if (propertyValue === defaultValue) {\n this.tryDeleteDefaultValue(target, propertyName);\n }\n else {\n target[propertyName] = propertyValue;\n }\n };\n BaseSerializationContext.prototype.serializeEnum = function (enumType, target, propertyName, propertyValue, defaultValue) {\n if (defaultValue === void 0) { defaultValue = undefined; }\n if (propertyValue === null ||\n propertyValue === undefined) {\n this.tryDeleteValue(target, propertyName);\n }\n else if (propertyValue === defaultValue) {\n this.tryDeleteDefaultValue(target, propertyName);\n }\n else {\n target[propertyName] = enumType[propertyValue];\n }\n };\n BaseSerializationContext.prototype.serializeArray = function (target, propertyName, propertyValue) {\n var items = [];\n if (propertyValue) {\n for (var _i = 0, propertyValue_1 = propertyValue; _i < propertyValue_1.length; _i++) {\n var item = propertyValue_1[_i];\n var serializedItem = undefined;\n if (item instanceof SerializableObject) {\n serializedItem = item.toJSON(this);\n }\n else if (item.toJSON) {\n serializedItem = item.toJSON();\n }\n else {\n serializedItem = item;\n }\n if (serializedItem !== undefined) {\n items.push(serializedItem);\n }\n }\n }\n if (items.length === 0) {\n if (target.hasOwnProperty(propertyName) && Array.isArray(target[propertyName])) {\n delete target[propertyName];\n }\n }\n else {\n this.serializeValue(target, propertyName, items);\n }\n };\n BaseSerializationContext.prototype.clearEvents = function () {\n this._validationEvents = [];\n };\n BaseSerializationContext.prototype.logEvent = function (source, phase, event, message) {\n this._validationEvents.push({\n source: source,\n phase: phase,\n event: event,\n message: message\n });\n };\n BaseSerializationContext.prototype.logParseEvent = function (source, event, message) {\n this.logEvent(source, Enums.ValidationPhase.Parse, event, message);\n };\n BaseSerializationContext.prototype.getEventAt = function (index) {\n return this._validationEvents[index];\n };\n Object.defineProperty(BaseSerializationContext.prototype, \"eventCount\", {\n get: function () {\n return this._validationEvents.length;\n },\n enumerable: false,\n configurable: true\n });\n return BaseSerializationContext;\n}());\nexports.BaseSerializationContext = BaseSerializationContext;\nvar SimpleSerializationContext = /** @class */ (function (_super) {\n __extends(SimpleSerializationContext, _super);\n function SimpleSerializationContext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return SimpleSerializationContext;\n}(BaseSerializationContext));\nvar PropertyDefinition = /** @class */ (function () {\n function PropertyDefinition(targetVersion, name, defaultValue, onGetInitialValue) {\n this.targetVersion = targetVersion;\n this.name = name;\n this.defaultValue = defaultValue;\n this.onGetInitialValue = onGetInitialValue;\n this.isSerializationEnabled = true;\n this.sequentialNumber = PropertyDefinition._sequentialNumber;\n PropertyDefinition._sequentialNumber++;\n }\n PropertyDefinition.prototype.getInternalName = function () {\n return this.name;\n };\n PropertyDefinition.prototype.parse = function (sender, source, context) {\n return source[this.name];\n };\n PropertyDefinition.prototype.toJSON = function (sender, target, value, context) {\n context.serializeValue(target, this.name, value, this.defaultValue);\n };\n PropertyDefinition._sequentialNumber = 0;\n return PropertyDefinition;\n}());\nexports.PropertyDefinition = PropertyDefinition;\nvar StringProperty = /** @class */ (function (_super) {\n __extends(StringProperty, _super);\n function StringProperty(targetVersion, name, treatEmptyAsUndefined, regEx, defaultValue, onGetInitialValue) {\n if (treatEmptyAsUndefined === void 0) { treatEmptyAsUndefined = true; }\n var _this = _super.call(this, targetVersion, name, defaultValue, onGetInitialValue) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.treatEmptyAsUndefined = treatEmptyAsUndefined;\n _this.regEx = regEx;\n _this.defaultValue = defaultValue;\n _this.onGetInitialValue = onGetInitialValue;\n return _this;\n }\n StringProperty.prototype.parse = function (sender, source, context) {\n var parsedValue = Utils.parseString(source[this.name], this.defaultValue);\n var isUndefined = parsedValue === undefined || (parsedValue === \"\" && this.treatEmptyAsUndefined);\n if (!isUndefined && this.regEx !== undefined) {\n var matches = this.regEx.exec(parsedValue);\n if (!matches) {\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidPropertyValue(parsedValue, this.name));\n return undefined;\n }\n }\n return parsedValue;\n };\n StringProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeString(target, this.name, value === \"\" && this.treatEmptyAsUndefined ? undefined : value, this.defaultValue);\n };\n return StringProperty;\n}(PropertyDefinition));\nexports.StringProperty = StringProperty;\nvar BoolProperty = /** @class */ (function (_super) {\n __extends(BoolProperty, _super);\n function BoolProperty(targetVersion, name, defaultValue, onGetInitialValue) {\n var _this = _super.call(this, targetVersion, name, defaultValue, onGetInitialValue) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.defaultValue = defaultValue;\n _this.onGetInitialValue = onGetInitialValue;\n return _this;\n }\n BoolProperty.prototype.parse = function (sender, source, context) {\n return Utils.parseBool(source[this.name], this.defaultValue);\n };\n BoolProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeBool(target, this.name, value, this.defaultValue);\n };\n return BoolProperty;\n}(PropertyDefinition));\nexports.BoolProperty = BoolProperty;\nvar NumProperty = /** @class */ (function (_super) {\n __extends(NumProperty, _super);\n function NumProperty(targetVersion, name, defaultValue, onGetInitialValue) {\n var _this = _super.call(this, targetVersion, name, defaultValue, onGetInitialValue) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.defaultValue = defaultValue;\n _this.onGetInitialValue = onGetInitialValue;\n return _this;\n }\n NumProperty.prototype.parse = function (sender, source, context) {\n return Utils.parseNumber(source[this.name], this.defaultValue);\n };\n NumProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeNumber(target, this.name, value, this.defaultValue);\n };\n return NumProperty;\n}(PropertyDefinition));\nexports.NumProperty = NumProperty;\nvar PixelSizeProperty = /** @class */ (function (_super) {\n __extends(PixelSizeProperty, _super);\n function PixelSizeProperty() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PixelSizeProperty.prototype.parse = function (sender, source, context) {\n var result = undefined;\n var value = source[this.name];\n if (typeof value === \"string\") {\n var isValid = false;\n try {\n var size = shared_1.SizeAndUnit.parse(value, true);\n if (size.unit === Enums.SizeUnit.Pixel) {\n result = size.physicalSize;\n isValid = true;\n }\n }\n catch (_a) {\n // Do nothing. A parse error is emitted below\n }\n if (!isValid) {\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidPropertyValue(source[this.name], this.name));\n }\n }\n return result;\n };\n PixelSizeProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeValue(target, this.name, typeof value === \"number\" && !isNaN(value) ? value + \"px\" : undefined);\n };\n return PixelSizeProperty;\n}(PropertyDefinition));\nexports.PixelSizeProperty = PixelSizeProperty;\nvar StringArrayProperty = /** @class */ (function (_super) {\n __extends(StringArrayProperty, _super);\n function StringArrayProperty(targetVersion, name, defaultValue, onGetInitialValue) {\n var _this = _super.call(this, targetVersion, name, defaultValue, onGetInitialValue) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.defaultValue = defaultValue;\n _this.onGetInitialValue = onGetInitialValue;\n return _this;\n }\n StringArrayProperty.prototype.parse = function (sender, source, context) {\n var sourceValue = source[this.name];\n if (sourceValue === undefined || !Array.isArray(sourceValue)) {\n return this.defaultValue;\n }\n var result = [];\n for (var _i = 0, sourceValue_1 = sourceValue; _i < sourceValue_1.length; _i++) {\n var value = sourceValue_1[_i];\n if (typeof value === \"string\") {\n result.push(value);\n }\n else {\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, \"Invalid array value \\\"\".concat(JSON.stringify(value), \"\\\" of type \\\"\").concat(typeof value, \"\\\" ignored for \\\"\").concat(this.name, \"\\\".\"));\n }\n }\n return result;\n };\n StringArrayProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeArray(target, this.name, value);\n };\n return StringArrayProperty;\n}(PropertyDefinition));\nexports.StringArrayProperty = StringArrayProperty;\nvar ValueSetProperty = /** @class */ (function (_super) {\n __extends(ValueSetProperty, _super);\n function ValueSetProperty(targetVersion, name, values, defaultValue, onGetInitialValue) {\n var _this = _super.call(this, targetVersion, name, defaultValue, onGetInitialValue) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.values = values;\n _this.defaultValue = defaultValue;\n _this.onGetInitialValue = onGetInitialValue;\n return _this;\n }\n ValueSetProperty.prototype.isValidValue = function (value, context) {\n for (var _i = 0, _a = this.values; _i < _a.length; _i++) {\n var versionedValue = _a[_i];\n if (value.toLowerCase() === versionedValue.value.toLowerCase()) {\n var targetVersion = versionedValue.targetVersion\n ? versionedValue.targetVersion\n : this.targetVersion;\n return targetVersion.compareTo(context.targetVersion) <= 0;\n }\n }\n return false;\n };\n ValueSetProperty.prototype.parse = function (sender, source, context) {\n var sourceValue = source[this.name];\n if (sourceValue === undefined) {\n return this.defaultValue;\n }\n if (typeof sourceValue === \"string\") {\n for (var _i = 0, _a = this.values; _i < _a.length; _i++) {\n var versionedValue = _a[_i];\n if (sourceValue.toLowerCase() === versionedValue.value.toLowerCase()) {\n var targetVersion = versionedValue.targetVersion\n ? versionedValue.targetVersion\n : this.targetVersion;\n if (targetVersion.compareTo(context.targetVersion) <= 0) {\n return versionedValue.value;\n }\n else {\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.propertyValueNotSupported(sourceValue, this.name, targetVersion.toString(), context.targetVersion.toString()));\n return this.defaultValue;\n }\n }\n }\n }\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidPropertyValue(sourceValue, this.name));\n return this.defaultValue;\n };\n ValueSetProperty.prototype.toJSON = function (sender, target, value, context) {\n var invalidValue = false;\n if (value !== undefined) {\n invalidValue = true;\n for (var _i = 0, _a = this.values; _i < _a.length; _i++) {\n var versionedValue = _a[_i];\n if (versionedValue.value === value) {\n var targetVersion = versionedValue.targetVersion\n ? versionedValue.targetVersion\n : this.targetVersion;\n if (targetVersion.compareTo(context.targetVersion) <= 0) {\n invalidValue = false;\n break;\n }\n else {\n context.logEvent(sender, Enums.ValidationPhase.ToJSON, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.propertyValueNotSupported(value, this.name, targetVersion.toString(), context.targetVersion.toString()));\n }\n }\n }\n }\n if (!invalidValue) {\n context.serializeValue(target, this.name, value, this.defaultValue, true);\n }\n };\n return ValueSetProperty;\n}(PropertyDefinition));\nexports.ValueSetProperty = ValueSetProperty;\nvar EnumProperty = /** @class */ (function (_super) {\n __extends(EnumProperty, _super);\n function EnumProperty(targetVersion, name, enumType, defaultValue, values, onGetInitialValue) {\n var _this = _super.call(this, targetVersion, name, defaultValue, onGetInitialValue) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.enumType = enumType;\n _this.defaultValue = defaultValue;\n _this.onGetInitialValue = onGetInitialValue;\n _this._values = [];\n if (!values) {\n // eslint-disable-next-line guard-for-in\n for (var key in enumType) {\n var keyAsNumber = parseInt(key, 10);\n if (keyAsNumber >= 0) {\n _this._values.push({ value: keyAsNumber });\n }\n }\n }\n else {\n _this._values = values;\n }\n return _this;\n }\n EnumProperty.prototype.parse = function (sender, source, context) {\n var sourceValue = source[this.name];\n if (typeof sourceValue !== \"string\") {\n return this.defaultValue;\n }\n var enumValue = Utils.getEnumValueByName(this.enumType, sourceValue);\n if (enumValue !== undefined) {\n for (var _i = 0, _a = this.values; _i < _a.length; _i++) {\n var versionedValue = _a[_i];\n if (versionedValue.value === enumValue) {\n var targetVersion = versionedValue.targetVersion\n ? versionedValue.targetVersion\n : this.targetVersion;\n if (targetVersion.compareTo(context.targetVersion) <= 0) {\n return enumValue;\n }\n else {\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.propertyValueNotSupported(sourceValue, this.name, targetVersion.toString(), context.targetVersion.toString()));\n return this.defaultValue;\n }\n }\n }\n }\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidPropertyValue(sourceValue, this.name));\n return this.defaultValue;\n };\n EnumProperty.prototype.toJSON = function (sender, target, value, context) {\n var invalidValue = false;\n if (value !== undefined) {\n invalidValue = true;\n for (var _i = 0, _a = this.values; _i < _a.length; _i++) {\n var versionedValue = _a[_i];\n if (versionedValue.value === value) {\n var targetVersion = versionedValue.targetVersion\n ? versionedValue.targetVersion\n : this.targetVersion;\n if (targetVersion.compareTo(context.targetVersion) <= 0) {\n invalidValue = false;\n break;\n }\n else {\n context.logEvent(sender, Enums.ValidationPhase.ToJSON, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidPropertyValue(value, this.name));\n }\n }\n }\n }\n if (!invalidValue) {\n context.serializeEnum(this.enumType, target, this.name, value, this.defaultValue);\n }\n };\n Object.defineProperty(EnumProperty.prototype, \"values\", {\n get: function () {\n return this._values;\n },\n enumerable: false,\n configurable: true\n });\n return EnumProperty;\n}(PropertyDefinition));\nexports.EnumProperty = EnumProperty;\nvar SerializableObjectProperty = /** @class */ (function (_super) {\n __extends(SerializableObjectProperty, _super);\n function SerializableObjectProperty(targetVersion, name, objectType, nullable, defaultValue) {\n if (nullable === void 0) { nullable = false; }\n var _this = _super.call(this, targetVersion, name, defaultValue, function (sender) {\n return _this.nullable ? undefined : new _this.objectType();\n }) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.objectType = objectType;\n _this.nullable = nullable;\n return _this;\n }\n SerializableObjectProperty.prototype.parse = function (sender, source, context) {\n var sourceValue = source[this.name];\n if (sourceValue === undefined) {\n return this.onGetInitialValue ? this.onGetInitialValue(sender) : this.defaultValue;\n }\n var result = new this.objectType();\n result.parse(sourceValue, context);\n return result;\n };\n SerializableObjectProperty.prototype.toJSON = function (sender, target, value, context) {\n var serializedValue = undefined;\n if (value !== undefined && !value.hasAllDefaultValues()) {\n serializedValue = value.toJSON(context);\n }\n if (typeof serializedValue === \"object\" && Object.keys(serializedValue).length === 0) {\n serializedValue = undefined;\n }\n context.serializeValue(target, this.name, serializedValue, this.defaultValue, true);\n };\n return SerializableObjectProperty;\n}(PropertyDefinition));\nexports.SerializableObjectProperty = SerializableObjectProperty;\nvar SerializableObjectCollectionProperty = /** @class */ (function (_super) {\n __extends(SerializableObjectCollectionProperty, _super);\n function SerializableObjectCollectionProperty(targetVersion, name, objectType, onItemAdded) {\n var _this = _super.call(this, targetVersion, name, undefined, function (sender) {\n return [];\n }) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.objectType = objectType;\n _this.onItemAdded = onItemAdded;\n return _this;\n }\n SerializableObjectCollectionProperty.prototype.parse = function (sender, source, context) {\n var result = [];\n var sourceCollection = source[this.name];\n if (Array.isArray(sourceCollection)) {\n for (var _i = 0, sourceCollection_1 = sourceCollection; _i < sourceCollection_1.length; _i++) {\n var sourceItem = sourceCollection_1[_i];\n var item = new this.objectType();\n item.parse(sourceItem, context);\n result.push(item);\n if (this.onItemAdded) {\n this.onItemAdded(sender, item);\n }\n }\n }\n return result.length > 0\n ? result\n : this.onGetInitialValue\n ? this.onGetInitialValue(sender)\n : undefined;\n };\n SerializableObjectCollectionProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeArray(target, this.name, value);\n };\n return SerializableObjectCollectionProperty;\n}(PropertyDefinition));\nexports.SerializableObjectCollectionProperty = SerializableObjectCollectionProperty;\nvar CustomProperty = /** @class */ (function (_super) {\n __extends(CustomProperty, _super);\n function CustomProperty(targetVersion, name, onParse, onToJSON, defaultValue, onGetInitialValue) {\n var _this = _super.call(this, targetVersion, name, defaultValue, onGetInitialValue) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.onParse = onParse;\n _this.onToJSON = onToJSON;\n _this.defaultValue = defaultValue;\n _this.onGetInitialValue = onGetInitialValue;\n if (!_this.onParse) {\n throw new Error(\"CustomPropertyDefinition instances must have an onParse handler.\");\n }\n if (!_this.onToJSON) {\n throw new Error(\"CustomPropertyDefinition instances must have an onToJSON handler.\");\n }\n return _this;\n }\n CustomProperty.prototype.parse = function (sender, source, context) {\n return this.onParse(sender, this, source, context);\n };\n CustomProperty.prototype.toJSON = function (sender, target, value, context) {\n this.onToJSON(sender, this, target, value, context);\n };\n return CustomProperty;\n}(PropertyDefinition));\nexports.CustomProperty = CustomProperty;\nvar SerializableObjectSchema = /** @class */ (function () {\n function SerializableObjectSchema() {\n this._properties = [];\n }\n SerializableObjectSchema.prototype.indexOf = function (prop) {\n for (var i = 0; i < this._properties.length; i++) {\n if (this._properties[i] === prop) {\n return i;\n }\n }\n return -1;\n };\n SerializableObjectSchema.prototype.add = function () {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n for (var _a = 0, properties_1 = properties; _a < properties_1.length; _a++) {\n var prop = properties_1[_a];\n if (this.indexOf(prop) === -1) {\n this._properties.push(prop);\n }\n }\n };\n SerializableObjectSchema.prototype.remove = function () {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n for (var _a = 0, properties_2 = properties; _a < properties_2.length; _a++) {\n var prop = properties_2[_a];\n while (true) {\n var index = this.indexOf(prop);\n if (index >= 0) {\n this._properties.splice(index, 1);\n }\n else {\n break;\n }\n }\n }\n };\n SerializableObjectSchema.prototype.getItemAt = function (index) {\n return this._properties[index];\n };\n SerializableObjectSchema.prototype.getCount = function () {\n return this._properties.length;\n };\n return SerializableObjectSchema;\n}());\nexports.SerializableObjectSchema = SerializableObjectSchema;\n// This is a decorator function, used to map SerializableObject descendant class members to\n// schema properties\nfunction property(prop) {\n return function (target, propertyKey) {\n var descriptor = Object.getOwnPropertyDescriptor(target, propertyKey) || {};\n if (!descriptor.get && !descriptor.set) {\n descriptor.get = function () {\n return this.getValue(prop);\n };\n descriptor.set = function (value) {\n this.setValue(prop, value);\n };\n Object.defineProperty(target, propertyKey, descriptor);\n }\n };\n}\nexports.property = property;\nvar SerializableObject = /** @class */ (function () {\n function SerializableObject() {\n this._propertyBag = {};\n this._rawProperties = {};\n this.maxVersion = SerializableObject.defaultMaxVersion;\n var s = this.getSchema();\n for (var i = 0; i < s.getCount(); i++) {\n var prop = s.getItemAt(i);\n if (prop.onGetInitialValue) {\n this.setValue(prop, prop.onGetInitialValue(this));\n }\n }\n }\n SerializableObject.prototype.getDefaultSerializationContext = function () {\n return new SimpleSerializationContext();\n };\n SerializableObject.prototype.populateSchema = function (schema) {\n var ctor = this.constructor;\n var properties = [];\n // eslint-disable-next-line guard-for-in\n for (var propertyName in ctor) {\n try {\n var propertyValue = ctor[propertyName];\n if (propertyValue instanceof PropertyDefinition) {\n properties.push(propertyValue);\n }\n }\n catch (_a) {\n // If a property happens to have a getter function and\n // it throws an exception, we need to catch it here\n }\n }\n if (properties.length > 0) {\n var sortedProperties = properties.sort(function (p1, p2) {\n if (p1.sequentialNumber > p2.sequentialNumber) {\n return 1;\n }\n else if (p1.sequentialNumber < p2.sequentialNumber) {\n return -1;\n }\n return 0;\n });\n schema.add.apply(schema, sortedProperties);\n }\n if (SerializableObject.onRegisterCustomProperties) {\n SerializableObject.onRegisterCustomProperties(this, schema);\n }\n };\n SerializableObject.prototype.getValue = function (prop) {\n return this._propertyBag.hasOwnProperty(prop.getInternalName())\n ? this._propertyBag[prop.getInternalName()]\n : prop.defaultValue;\n };\n SerializableObject.prototype.setValue = function (prop, value) {\n if (value === undefined || value === null) {\n delete this._propertyBag[prop.getInternalName()];\n }\n else {\n this._propertyBag[prop.getInternalName()] = value;\n }\n };\n SerializableObject.prototype.internalParse = function (source, context) {\n this._propertyBag = {};\n this._rawProperties = shared_1.GlobalSettings.enableFullJsonRoundTrip ? (source ? source : {}) : {};\n if (source) {\n var s = this.getSchema();\n for (var i = 0; i < s.getCount(); i++) {\n var prop = s.getItemAt(i);\n if (prop.isSerializationEnabled) {\n var propertyValue = prop.onGetInitialValue\n ? prop.onGetInitialValue(this)\n : undefined;\n if (source.hasOwnProperty(prop.name)) {\n if (prop.targetVersion.compareTo(context.targetVersion) <= 0) {\n propertyValue = prop.parse(this, source, context);\n }\n else {\n context.logParseEvent(this, Enums.ValidationEvent.UnsupportedProperty, strings_1.Strings.errors.propertyNotSupported(prop.name, prop.targetVersion.toString(), context.targetVersion.toString()));\n }\n }\n this.setValue(prop, propertyValue);\n }\n }\n }\n else {\n this.resetDefaultValues();\n }\n };\n SerializableObject.prototype.internalToJSON = function (target, context) {\n var s = this.getSchema();\n var serializedProperties = [];\n for (var i = 0; i < s.getCount(); i++) {\n var prop = s.getItemAt(i);\n // Avoid serializing the same property multiple times. This is necessary\n // because some property definitions map to the same underlying schema\n // property\n if (prop.isSerializationEnabled &&\n prop.targetVersion.compareTo(context.targetVersion) <= 0 &&\n serializedProperties.indexOf(prop.name) === -1) {\n prop.toJSON(this, target, this.getValue(prop), context);\n serializedProperties.push(prop.name);\n }\n }\n };\n SerializableObject.prototype.shouldSerialize = function (_context) {\n return true;\n };\n SerializableObject.prototype.parse = function (source, context) {\n this.internalParse(source, context ? context : new SimpleSerializationContext());\n };\n SerializableObject.prototype.toJSON = function (context) {\n var effectiveContext;\n if (context && context instanceof BaseSerializationContext) {\n effectiveContext = context;\n }\n else {\n effectiveContext = this.getDefaultSerializationContext();\n effectiveContext.toJSONOriginalParam = context;\n }\n if (this.shouldSerialize(effectiveContext)) {\n var result = void 0;\n if (shared_1.GlobalSettings.enableFullJsonRoundTrip &&\n this._rawProperties &&\n typeof this._rawProperties === \"object\") {\n result = this._rawProperties;\n }\n else {\n result = {};\n }\n this.internalToJSON(result, effectiveContext);\n return result;\n }\n else {\n return undefined;\n }\n };\n SerializableObject.prototype.hasDefaultValue = function (prop) {\n return this.getValue(prop) === prop.defaultValue;\n };\n SerializableObject.prototype.hasAllDefaultValues = function () {\n var s = this.getSchema();\n for (var i = 0; i < s.getCount(); i++) {\n var prop = s.getItemAt(i);\n if (!this.hasDefaultValue(prop)) {\n return false;\n }\n }\n return true;\n };\n SerializableObject.prototype.resetDefaultValues = function () {\n var s = this.getSchema();\n for (var i = 0; i < s.getCount(); i++) {\n var prop = s.getItemAt(i);\n this.setValue(prop, prop.defaultValue);\n }\n };\n SerializableObject.prototype.setCustomProperty = function (name, value) {\n var shouldDeleteProperty = (typeof value === \"string\" && !value) || value === undefined || value === null;\n if (shouldDeleteProperty) {\n delete this._rawProperties[name];\n }\n else {\n this._rawProperties[name] = value;\n }\n };\n SerializableObject.prototype.getCustomProperty = function (name) {\n return this._rawProperties[name];\n };\n SerializableObject.prototype.getSchema = function () {\n var schema = SerializableObject._schemaCache[this.getSchemaKey()];\n if (!schema) {\n schema = new SerializableObjectSchema();\n this.populateSchema(schema);\n SerializableObject._schemaCache[this.getSchemaKey()] = schema;\n }\n return schema;\n };\n SerializableObject.defaultMaxVersion = Versions.latest;\n SerializableObject._schemaCache = {};\n return SerializableObject;\n}());\nexports.SerializableObject = SerializableObject;\n//# sourceMappingURL=serialization.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HostCapabilities = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar serialization_1 = require(\"./serialization\");\nvar HostCapabilities = /** @class */ (function (_super) {\n __extends(HostCapabilities, _super);\n function HostCapabilities() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._capabilities = {};\n return _this;\n }\n HostCapabilities.prototype.getSchemaKey = function () {\n return \"HostCapabilities\";\n };\n HostCapabilities.prototype.internalParse = function (source, context) {\n _super.prototype.internalParse.call(this, source, context);\n if (source) {\n // eslint-disable-next-line guard-for-in\n for (var name_1 in source) {\n var jsonVersion = source[name_1];\n if (typeof jsonVersion === \"string\") {\n if (jsonVersion === \"*\") {\n this.addCapability(name_1, \"*\");\n }\n else {\n var version = serialization_1.Version.parse(jsonVersion, context);\n if (version === null || version === void 0 ? void 0 : version.isValid) {\n this.addCapability(name_1, version);\n }\n }\n }\n }\n }\n };\n HostCapabilities.prototype.internalToJSON = function (target, context) {\n _super.prototype.internalToJSON.call(this, target, context);\n // eslint-disable-next-line guard-for-in\n for (var key in this._capabilities) {\n target[key] = this._capabilities[key];\n }\n };\n HostCapabilities.prototype.addCapability = function (name, version) {\n this._capabilities[name] = version;\n };\n HostCapabilities.prototype.removeCapability = function (name) {\n delete this._capabilities[name];\n };\n HostCapabilities.prototype.clear = function () {\n this._capabilities = {};\n };\n HostCapabilities.prototype.hasCapability = function (name, version) {\n if (this._capabilities.hasOwnProperty(name)) {\n if (version === \"*\" || this._capabilities[name] === \"*\") {\n return true;\n }\n return version.compareTo(this._capabilities[name]) <= 0;\n }\n return false;\n };\n HostCapabilities.prototype.areAllMet = function (hostCapabilities) {\n for (var capabilityName in this._capabilities) {\n if (!hostCapabilities.hasCapability(capabilityName, this._capabilities[capabilityName])) {\n return false;\n }\n }\n return true;\n };\n return HostCapabilities;\n}(serialization_1.SerializableObject));\nexports.HostCapabilities = HostCapabilities;\n//# sourceMappingURL=host-capabilities.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultHostConfig = exports.HostConfig = exports.CarouselConfig = exports.FontTypeSet = exports.FontTypeDefinition = exports.ContainerStyleSet = exports.ContainerStyleDefinition = exports.ColorSetDefinition = exports.ActionsConfig = exports.ShowCardActionConfig = exports.FactSetConfig = exports.FactTitleDefinition = exports.FactTextDefinition = exports.InputConfig = exports.InputLabelConfig = exports.RequiredInputLabelTextDefinition = exports.TextBlockConfig = exports.TextStyleSet = exports.TextStyleDefinition = exports.BaseTextDefinition = exports.TableConfig = exports.MediaConfig = exports.ImageSetConfig = exports.AdaptiveCardConfig = exports.TextColorDefinition = exports.ColorDefinition = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar Enums = require(\"./enums\");\nvar Utils = require(\"./utils\");\nvar Shared = require(\"./shared\");\nvar host_capabilities_1 = require(\"./host-capabilities\");\nfunction parseHostConfigEnum(targetEnum, value, defaultValue) {\n if (typeof value === \"string\") {\n var parsedValue = Utils.parseEnum(targetEnum, value, defaultValue);\n return parsedValue !== undefined ? parsedValue : defaultValue;\n }\n else if (typeof value === \"number\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\nvar ColorDefinition = /** @class */ (function () {\n function ColorDefinition(defaultColor, subtleColor) {\n this.default = \"#000000\";\n this.subtle = \"#666666\";\n if (defaultColor) {\n this.default = defaultColor;\n }\n if (subtleColor) {\n this.subtle = subtleColor;\n }\n }\n ColorDefinition.prototype.parse = function (obj) {\n if (obj) {\n this.default = obj[\"default\"] || this.default;\n this.subtle = obj[\"subtle\"] || this.subtle;\n }\n };\n return ColorDefinition;\n}());\nexports.ColorDefinition = ColorDefinition;\nvar TextColorDefinition = /** @class */ (function (_super) {\n __extends(TextColorDefinition, _super);\n function TextColorDefinition() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.highlightColors = new ColorDefinition(\"#22000000\", \"#11000000\");\n return _this;\n }\n TextColorDefinition.prototype.parse = function (obj) {\n _super.prototype.parse.call(this, obj);\n if (obj) {\n this.highlightColors.parse(obj[\"highlightColors\"]);\n }\n };\n return TextColorDefinition;\n}(ColorDefinition));\nexports.TextColorDefinition = TextColorDefinition;\nvar AdaptiveCardConfig = /** @class */ (function () {\n function AdaptiveCardConfig(obj) {\n this.allowCustomStyle = false;\n if (obj) {\n this.allowCustomStyle = obj[\"allowCustomStyle\"] || this.allowCustomStyle;\n }\n }\n return AdaptiveCardConfig;\n}());\nexports.AdaptiveCardConfig = AdaptiveCardConfig;\nvar ImageSetConfig = /** @class */ (function () {\n function ImageSetConfig(obj) {\n this.imageSize = Enums.Size.Medium;\n this.maxImageHeight = 100;\n if (obj) {\n this.imageSize = obj[\"imageSize\"] != null ? obj[\"imageSize\"] : this.imageSize;\n this.maxImageHeight = Utils.parseNumber(obj[\"maxImageHeight\"], 100);\n }\n }\n ImageSetConfig.prototype.toJSON = function () {\n return {\n imageSize: Enums.Size[this.imageSize],\n maxImageHeight: this.maxImageHeight\n };\n };\n return ImageSetConfig;\n}());\nexports.ImageSetConfig = ImageSetConfig;\nvar MediaConfig = /** @class */ (function () {\n function MediaConfig(obj) {\n this.allowInlinePlayback = true;\n if (obj) {\n this.defaultPoster = obj[\"defaultPoster\"];\n this.allowInlinePlayback = obj[\"allowInlinePlayback\"] || this.allowInlinePlayback;\n }\n }\n MediaConfig.prototype.toJSON = function () {\n return {\n defaultPoster: this.defaultPoster,\n allowInlinePlayback: this.allowInlinePlayback\n };\n };\n return MediaConfig;\n}());\nexports.MediaConfig = MediaConfig;\nvar TableConfig = /** @class */ (function () {\n function TableConfig(obj) {\n this.cellSpacing = 8;\n if (obj) {\n this.cellSpacing =\n obj.cellSpacing && typeof obj.cellSpacing === \"number\"\n ? obj.cellSpacing\n : this.cellSpacing;\n }\n }\n TableConfig.prototype.toJSON = function () {\n return {\n cellSpacing: this.cellSpacing\n };\n };\n return TableConfig;\n}());\nexports.TableConfig = TableConfig;\nvar BaseTextDefinition = /** @class */ (function () {\n function BaseTextDefinition(obj) {\n this.size = Enums.TextSize.Default;\n this.color = Enums.TextColor.Default;\n this.isSubtle = false;\n this.weight = Enums.TextWeight.Default;\n this.parse(obj);\n }\n BaseTextDefinition.prototype.parse = function (obj) {\n if (obj) {\n this.size = parseHostConfigEnum(Enums.TextSize, obj[\"size\"], this.size);\n this.color = parseHostConfigEnum(Enums.TextColor, obj[\"color\"], this.color);\n this.isSubtle =\n obj.isSubtle !== undefined && typeof obj.isSubtle === \"boolean\"\n ? obj.isSubtle\n : this.isSubtle;\n this.weight = parseHostConfigEnum(Enums.TextWeight, obj[\"weight\"], this.getDefaultWeight());\n }\n };\n BaseTextDefinition.prototype.getDefaultWeight = function () {\n return Enums.TextWeight.Default;\n };\n BaseTextDefinition.prototype.toJSON = function () {\n return {\n size: Enums.TextSize[this.size],\n color: Enums.TextColor[this.color],\n isSubtle: this.isSubtle,\n weight: Enums.TextWeight[this.weight]\n };\n };\n return BaseTextDefinition;\n}());\nexports.BaseTextDefinition = BaseTextDefinition;\nvar TextStyleDefinition = /** @class */ (function (_super) {\n __extends(TextStyleDefinition, _super);\n function TextStyleDefinition() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.fontType = Enums.FontType.Default;\n return _this;\n }\n TextStyleDefinition.prototype.parse = function (obj) {\n _super.prototype.parse.call(this, obj);\n if (obj) {\n this.fontType = parseHostConfigEnum(Enums.FontType, obj.fontType, this.fontType);\n }\n };\n return TextStyleDefinition;\n}(BaseTextDefinition));\nexports.TextStyleDefinition = TextStyleDefinition;\nvar TextStyleSet = /** @class */ (function () {\n function TextStyleSet(obj) {\n this.default = new TextStyleDefinition();\n this.heading = new TextStyleDefinition({\n size: \"Large\",\n weight: \"Bolder\"\n });\n this.columnHeader = new TextStyleDefinition({\n weight: \"Bolder\"\n });\n if (obj) {\n this.heading.parse(obj.heading);\n this.columnHeader.parse(obj.columnHeader);\n }\n }\n TextStyleSet.prototype.getStyleByName = function (name) {\n switch (name.toLowerCase()) {\n case \"heading\":\n return this.heading;\n case \"columnHeader\":\n return this.columnHeader;\n default:\n return this.default;\n }\n };\n return TextStyleSet;\n}());\nexports.TextStyleSet = TextStyleSet;\nvar TextBlockConfig = /** @class */ (function () {\n function TextBlockConfig(obj) {\n if (obj) {\n this.headingLevel = Utils.parseNumber(obj.headingLevel);\n }\n }\n return TextBlockConfig;\n}());\nexports.TextBlockConfig = TextBlockConfig;\nvar RequiredInputLabelTextDefinition = /** @class */ (function (_super) {\n __extends(RequiredInputLabelTextDefinition, _super);\n function RequiredInputLabelTextDefinition() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.suffix = \" *\";\n _this.suffixColor = Enums.TextColor.Attention;\n return _this;\n }\n RequiredInputLabelTextDefinition.prototype.parse = function (obj) {\n _super.prototype.parse.call(this, obj);\n if (obj) {\n this.suffix = obj[\"suffix\"] || this.suffix;\n this.suffixColor = parseHostConfigEnum(Enums.TextColor, obj[\"suffixColor\"], this.suffixColor);\n }\n };\n RequiredInputLabelTextDefinition.prototype.toJSON = function () {\n var result = _super.prototype.toJSON.call(this);\n result[\"suffix\"] = this.suffix;\n result[\"suffixColor\"] = Enums.TextColor[this.suffixColor];\n return result;\n };\n return RequiredInputLabelTextDefinition;\n}(BaseTextDefinition));\nexports.RequiredInputLabelTextDefinition = RequiredInputLabelTextDefinition;\nvar InputLabelConfig = /** @class */ (function () {\n function InputLabelConfig(obj) {\n this.inputSpacing = Enums.Spacing.Small;\n this.width = 30;\n this.requiredInputs = new RequiredInputLabelTextDefinition();\n this.optionalInputs = new BaseTextDefinition();\n if (obj) {\n this.inputSpacing = parseHostConfigEnum(Enums.Spacing, obj[\"inputSpacing\"], this.inputSpacing);\n this.requiredInputs = new RequiredInputLabelTextDefinition(obj[\"requiredInputs\"]);\n this.optionalInputs = new BaseTextDefinition(obj[\"optionalInputs\"]);\n this.width =\n obj[\"width\"] != null ? obj[\"width\"] : this.width;\n }\n }\n return InputLabelConfig;\n}());\nexports.InputLabelConfig = InputLabelConfig;\nvar InputConfig = /** @class */ (function () {\n function InputConfig(obj) {\n this.label = new InputLabelConfig();\n this.errorMessage = new BaseTextDefinition({\n color: Enums.TextColor.Attention\n });\n this.debounceTimeInMilliSeconds = 0;\n this.allowRevealOnHoverStyle = false;\n if (obj) {\n this.label = new InputLabelConfig(obj[\"label\"]);\n this.errorMessage = new BaseTextDefinition(obj[\"errorMessage\"]);\n this.allowRevealOnHoverStyle = obj[\"allowRevealOnHoverStyle\"] || this.allowRevealOnHoverStyle;\n this.debounceTimeInMilliSeconds = obj.debounceTimeInMilliSeconds;\n }\n }\n return InputConfig;\n}());\nexports.InputConfig = InputConfig;\nvar FactTextDefinition = /** @class */ (function (_super) {\n __extends(FactTextDefinition, _super);\n function FactTextDefinition() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.wrap = true;\n return _this;\n }\n FactTextDefinition.prototype.parse = function (obj) {\n _super.prototype.parse.call(this, obj);\n if (obj) {\n this.wrap = obj[\"wrap\"] != null ? obj[\"wrap\"] : this.wrap;\n }\n };\n FactTextDefinition.prototype.toJSON = function () {\n var result = _super.prototype.toJSON.call(this);\n result[\"wrap\"] = this.wrap;\n return result;\n };\n return FactTextDefinition;\n}(BaseTextDefinition));\nexports.FactTextDefinition = FactTextDefinition;\nvar FactTitleDefinition = /** @class */ (function (_super) {\n __extends(FactTitleDefinition, _super);\n function FactTitleDefinition(obj) {\n var _this = _super.call(this, obj) || this;\n _this.maxWidth = 150;\n _this.weight = Enums.TextWeight.Bolder;\n if (obj) {\n _this.maxWidth = obj[\"maxWidth\"] != null ? obj[\"maxWidth\"] : _this.maxWidth;\n _this.weight = parseHostConfigEnum(Enums.TextWeight, obj[\"weight\"], Enums.TextWeight.Bolder);\n }\n return _this;\n }\n FactTitleDefinition.prototype.getDefaultWeight = function () {\n return Enums.TextWeight.Bolder;\n };\n return FactTitleDefinition;\n}(FactTextDefinition));\nexports.FactTitleDefinition = FactTitleDefinition;\nvar FactSetConfig = /** @class */ (function () {\n function FactSetConfig(obj) {\n this.title = new FactTitleDefinition();\n this.value = new FactTextDefinition();\n this.spacing = 10;\n if (obj) {\n this.title = new FactTitleDefinition(obj[\"title\"]);\n this.value = new FactTextDefinition(obj[\"value\"]);\n this.spacing =\n obj.spacing && obj.spacing != null ? obj.spacing && obj.spacing : this.spacing;\n }\n }\n return FactSetConfig;\n}());\nexports.FactSetConfig = FactSetConfig;\nvar ShowCardActionConfig = /** @class */ (function () {\n function ShowCardActionConfig(obj) {\n this.actionMode = Enums.ShowCardActionMode.Inline;\n this.inlineTopMargin = 16;\n this.style = Enums.ContainerStyle.Emphasis;\n if (obj) {\n this.actionMode = parseHostConfigEnum(Enums.ShowCardActionMode, obj[\"actionMode\"], Enums.ShowCardActionMode.Inline);\n this.inlineTopMargin =\n obj[\"inlineTopMargin\"] != null ? obj[\"inlineTopMargin\"] : this.inlineTopMargin;\n this.style =\n obj[\"style\"] && typeof obj[\"style\"] === \"string\"\n ? obj[\"style\"]\n : Enums.ContainerStyle.Emphasis;\n }\n }\n ShowCardActionConfig.prototype.toJSON = function () {\n return {\n actionMode: Enums.ShowCardActionMode[this.actionMode],\n inlineTopMargin: this.inlineTopMargin,\n style: this.style\n };\n };\n return ShowCardActionConfig;\n}());\nexports.ShowCardActionConfig = ShowCardActionConfig;\nvar ActionsConfig = /** @class */ (function () {\n function ActionsConfig(obj) {\n this.maxActions = 5;\n this.spacing = Enums.Spacing.Default;\n this.buttonSpacing = 20;\n this.showCard = new ShowCardActionConfig();\n this.preExpandSingleShowCardAction = false;\n this.actionsOrientation = Enums.Orientation.Horizontal;\n this.actionAlignment = Enums.ActionAlignment.Left;\n this.iconPlacement = Enums.ActionIconPlacement.LeftOfTitle;\n this.allowTitleToWrap = false;\n this.iconSize = 16;\n if (obj) {\n this.maxActions = obj[\"maxActions\"] != null ? obj[\"maxActions\"] : this.maxActions;\n this.spacing = parseHostConfigEnum(Enums.Spacing, obj.spacing && obj.spacing, Enums.Spacing.Default);\n this.buttonSpacing =\n obj[\"buttonSpacing\"] != null ? obj[\"buttonSpacing\"] : this.buttonSpacing;\n this.showCard = new ShowCardActionConfig(obj[\"showCard\"]);\n this.preExpandSingleShowCardAction = Utils.parseBool(obj[\"preExpandSingleShowCardAction\"], false);\n this.actionsOrientation = parseHostConfigEnum(Enums.Orientation, obj[\"actionsOrientation\"], Enums.Orientation.Horizontal);\n this.actionAlignment = parseHostConfigEnum(Enums.ActionAlignment, obj[\"actionAlignment\"], Enums.ActionAlignment.Left);\n this.iconPlacement = parseHostConfigEnum(Enums.ActionIconPlacement, obj[\"iconPlacement\"], Enums.ActionIconPlacement.LeftOfTitle);\n this.allowTitleToWrap =\n obj[\"allowTitleToWrap\"] != null ? obj[\"allowTitleToWrap\"] : this.allowTitleToWrap;\n try {\n var sizeAndUnit = Shared.SizeAndUnit.parse(obj[\"iconSize\"]);\n if (sizeAndUnit.unit === Enums.SizeUnit.Pixel) {\n this.iconSize = sizeAndUnit.physicalSize;\n }\n }\n catch (e) {\n // Swallow this, keep default icon size\n }\n }\n }\n ActionsConfig.prototype.toJSON = function () {\n return {\n maxActions: this.maxActions,\n spacing: Enums.Spacing[this.spacing],\n buttonSpacing: this.buttonSpacing,\n showCard: this.showCard,\n preExpandSingleShowCardAction: this.preExpandSingleShowCardAction,\n actionsOrientation: Enums.Orientation[this.actionsOrientation],\n actionAlignment: Enums.ActionAlignment[this.actionAlignment]\n };\n };\n return ActionsConfig;\n}());\nexports.ActionsConfig = ActionsConfig;\nvar ColorSetDefinition = /** @class */ (function () {\n function ColorSetDefinition(obj) {\n this.default = new TextColorDefinition();\n this.dark = new TextColorDefinition();\n this.light = new TextColorDefinition();\n this.accent = new TextColorDefinition();\n this.good = new TextColorDefinition();\n this.warning = new TextColorDefinition();\n this.attention = new TextColorDefinition();\n this.parse(obj);\n }\n ColorSetDefinition.prototype.parseSingleColor = function (obj, propertyName) {\n if (obj) {\n this[propertyName].parse(obj[propertyName]);\n }\n };\n ColorSetDefinition.prototype.parse = function (obj) {\n if (obj) {\n this.parseSingleColor(obj, \"default\");\n this.parseSingleColor(obj, \"dark\");\n this.parseSingleColor(obj, \"light\");\n this.parseSingleColor(obj, \"accent\");\n this.parseSingleColor(obj, \"good\");\n this.parseSingleColor(obj, \"warning\");\n this.parseSingleColor(obj, \"attention\");\n }\n };\n return ColorSetDefinition;\n}());\nexports.ColorSetDefinition = ColorSetDefinition;\nvar ContainerStyleDefinition = /** @class */ (function () {\n function ContainerStyleDefinition(obj) {\n this.foregroundColors = new ColorSetDefinition({\n \"default\": { default: \"#333333\", subtle: \"#EE333333\" },\n \"dark\": { default: \"#000000\", subtle: \"#66000000\" },\n \"light\": { default: \"#FFFFFF\", subtle: \"#33000000\" },\n \"accent\": { default: \"#2E89FC\", subtle: \"#882E89FC\" },\n \"good\": { default: \"#028A02\", subtle: \"#DD027502\" },\n \"warning\": { default: \"#E69500\", subtle: \"#DDE69500\" },\n \"attention\": { default: \"#CC3300\", subtle: \"#DDCC3300\" }\n });\n this.parse(obj);\n }\n ContainerStyleDefinition.prototype.parse = function (obj) {\n if (obj) {\n this.backgroundColor = obj[\"backgroundColor\"];\n this.foregroundColors.parse(obj[\"foregroundColors\"]);\n this.highlightBackgroundColor = obj[\"highlightBackgroundColor\"];\n this.highlightForegroundColor = obj[\"highlightForegroundColor\"];\n this.borderColor = obj[\"borderColor\"];\n }\n };\n Object.defineProperty(ContainerStyleDefinition.prototype, \"isBuiltIn\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n return ContainerStyleDefinition;\n}());\nexports.ContainerStyleDefinition = ContainerStyleDefinition;\nvar BuiltInContainerStyleDefinition = /** @class */ (function (_super) {\n __extends(BuiltInContainerStyleDefinition, _super);\n function BuiltInContainerStyleDefinition() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(BuiltInContainerStyleDefinition.prototype, \"isBuiltIn\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n return BuiltInContainerStyleDefinition;\n}(ContainerStyleDefinition));\nvar ContainerStyleSet = /** @class */ (function () {\n function ContainerStyleSet(obj) {\n this._allStyles = {};\n this._allStyles[Enums.ContainerStyle.Default] = new BuiltInContainerStyleDefinition();\n this._allStyles[Enums.ContainerStyle.Emphasis] = new BuiltInContainerStyleDefinition();\n this._allStyles[Enums.ContainerStyle.Accent] = new BuiltInContainerStyleDefinition();\n this._allStyles[Enums.ContainerStyle.Good] = new BuiltInContainerStyleDefinition();\n this._allStyles[Enums.ContainerStyle.Attention] = new BuiltInContainerStyleDefinition();\n this._allStyles[Enums.ContainerStyle.Warning] = new BuiltInContainerStyleDefinition();\n if (obj) {\n this._allStyles[Enums.ContainerStyle.Default].parse(obj[Enums.ContainerStyle.Default]);\n this._allStyles[Enums.ContainerStyle.Emphasis].parse(obj[Enums.ContainerStyle.Emphasis]);\n this._allStyles[Enums.ContainerStyle.Accent].parse(obj[Enums.ContainerStyle.Accent]);\n this._allStyles[Enums.ContainerStyle.Good].parse(obj[Enums.ContainerStyle.Good]);\n this._allStyles[Enums.ContainerStyle.Attention].parse(obj[Enums.ContainerStyle.Attention]);\n this._allStyles[Enums.ContainerStyle.Warning].parse(obj[Enums.ContainerStyle.Warning]);\n var customStyleArray = obj[\"customStyles\"];\n if (customStyleArray && Array.isArray(customStyleArray)) {\n for (var _i = 0, customStyleArray_1 = customStyleArray; _i < customStyleArray_1.length; _i++) {\n var customStyle = customStyleArray_1[_i];\n if (customStyle) {\n var styleName = customStyle[\"name\"];\n if (styleName && typeof styleName === \"string\") {\n if (this._allStyles.hasOwnProperty(styleName)) {\n this._allStyles[styleName].parse(customStyle[\"style\"]);\n }\n else {\n this._allStyles[styleName] = new ContainerStyleDefinition(customStyle[\"style\"]);\n }\n }\n }\n }\n }\n }\n }\n ContainerStyleSet.prototype.toJSON = function () {\n var _this = this;\n var customStyleArray = [];\n Object.keys(this._allStyles).forEach(function (key) {\n if (!_this._allStyles[key].isBuiltIn) {\n customStyleArray.push({\n name: key,\n style: _this._allStyles[key]\n });\n }\n });\n var result = {\n default: this.default,\n emphasis: this.emphasis\n };\n if (customStyleArray.length > 0) {\n result.customStyles = customStyleArray;\n }\n return result;\n };\n ContainerStyleSet.prototype.getStyleByName = function (name, defaultValue) {\n if (name && this._allStyles.hasOwnProperty(name)) {\n return this._allStyles[name];\n }\n else {\n return defaultValue ? defaultValue : this._allStyles[Enums.ContainerStyle.Default];\n }\n };\n Object.defineProperty(ContainerStyleSet.prototype, \"default\", {\n get: function () {\n return this._allStyles[Enums.ContainerStyle.Default];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContainerStyleSet.prototype, \"emphasis\", {\n get: function () {\n return this._allStyles[Enums.ContainerStyle.Emphasis];\n },\n enumerable: false,\n configurable: true\n });\n return ContainerStyleSet;\n}());\nexports.ContainerStyleSet = ContainerStyleSet;\nvar FontTypeDefinition = /** @class */ (function () {\n function FontTypeDefinition(fontFamily) {\n this.fontFamily = \"Segoe UI,Segoe,Segoe WP,Helvetica Neue,Helvetica,sans-serif\";\n this.fontSizes = {\n small: 12,\n default: 14,\n medium: 17,\n large: 21,\n extraLarge: 26\n };\n this.fontWeights = {\n lighter: 200,\n default: 400,\n bolder: 600\n };\n if (fontFamily) {\n this.fontFamily = fontFamily;\n }\n }\n FontTypeDefinition.prototype.parse = function (obj) {\n this.fontFamily = obj[\"fontFamily\"] || this.fontFamily;\n this.fontSizes = {\n small: (obj.fontSizes && obj.fontSizes[\"small\"]) || this.fontSizes.small,\n default: (obj.fontSizes && obj.fontSizes[\"default\"]) || this.fontSizes.default,\n medium: (obj.fontSizes && obj.fontSizes[\"medium\"]) || this.fontSizes.medium,\n large: (obj.fontSizes && obj.fontSizes[\"large\"]) || this.fontSizes.large,\n extraLarge: (obj.fontSizes && obj.fontSizes[\"extraLarge\"]) || this.fontSizes.extraLarge\n };\n this.fontWeights = {\n lighter: (obj.fontWeights && obj.fontWeights[\"lighter\"]) || this.fontWeights.lighter,\n default: (obj.fontWeights && obj.fontWeights[\"default\"]) || this.fontWeights.default,\n bolder: (obj.fontWeights && obj.fontWeights[\"bolder\"]) || this.fontWeights.bolder\n };\n };\n FontTypeDefinition.monospace = new FontTypeDefinition(\"'Courier New', Courier, monospace\");\n return FontTypeDefinition;\n}());\nexports.FontTypeDefinition = FontTypeDefinition;\nvar FontTypeSet = /** @class */ (function () {\n function FontTypeSet(obj) {\n this.default = new FontTypeDefinition();\n this.monospace = new FontTypeDefinition(\"'Courier New', Courier, monospace\");\n if (obj) {\n this.default.parse(obj[\"default\"]);\n this.monospace.parse(obj[\"monospace\"]);\n }\n }\n FontTypeSet.prototype.getStyleDefinition = function (style) {\n switch (style) {\n case Enums.FontType.Monospace:\n return this.monospace;\n case Enums.FontType.Default:\n default:\n return this.default;\n }\n };\n return FontTypeSet;\n}());\nexports.FontTypeSet = FontTypeSet;\nvar CarouselConfig = /** @class */ (function () {\n function CarouselConfig(obj) {\n this.maxCarouselPages = 10;\n this.minAutoplayDelay = 5000.0;\n if (obj) {\n this.maxCarouselPages =\n obj[\"maxCarouselPages\"] != null ? obj[\"maxCarouselPages\"] : this.maxCarouselPages;\n this.minAutoplayDelay =\n obj[\"minAutoplayDelay\"] != null ? obj[\"minAutoplayDelay\"] : this.minAutoplayDelay;\n }\n }\n CarouselConfig.prototype.toJSON = function () {\n return {\n maxCarouselPages: this.maxCarouselPages,\n minAutoplayDelay: this.minAutoplayDelay\n };\n };\n return CarouselConfig;\n}());\nexports.CarouselConfig = CarouselConfig;\nvar HostConfig = /** @class */ (function () {\n function HostConfig(obj) {\n this.hostCapabilities = new host_capabilities_1.HostCapabilities();\n this.choiceSetInputValueSeparator = \",\";\n this.supportsInteractivity = true;\n this.spacing = {\n small: 3,\n default: 8,\n medium: 20,\n large: 30,\n extraLarge: 40,\n padding: 15\n };\n this.separator = {\n lineThickness: 1,\n lineColor: \"#EEEEEE\"\n };\n this.imageSizes = {\n small: 40,\n medium: 80,\n large: 160\n };\n this.containerStyles = new ContainerStyleSet();\n this.inputs = new InputConfig();\n this.actions = new ActionsConfig();\n this.adaptiveCard = new AdaptiveCardConfig();\n this.imageSet = new ImageSetConfig();\n this.media = new MediaConfig();\n this.factSet = new FactSetConfig();\n this.table = new TableConfig();\n this.textStyles = new TextStyleSet();\n this.textBlock = new TextBlockConfig();\n this.carousel = new CarouselConfig();\n this.alwaysAllowBleed = false;\n if (obj) {\n if (typeof obj === \"string\" || obj instanceof String) {\n obj = JSON.parse(obj);\n }\n this.choiceSetInputValueSeparator =\n obj && typeof obj[\"choiceSetInputValueSeparator\"] === \"string\"\n ? obj[\"choiceSetInputValueSeparator\"]\n : this.choiceSetInputValueSeparator;\n this.supportsInteractivity =\n obj && typeof obj[\"supportsInteractivity\"] === \"boolean\"\n ? obj[\"supportsInteractivity\"]\n : this.supportsInteractivity;\n this._legacyFontType = new FontTypeDefinition();\n this._legacyFontType.parse(obj);\n if (obj.fontTypes) {\n this.fontTypes = new FontTypeSet(obj.fontTypes);\n }\n if (obj.lineHeights) {\n this.lineHeights = {\n small: obj.lineHeights[\"small\"],\n default: obj.lineHeights[\"default\"],\n medium: obj.lineHeights[\"medium\"],\n large: obj.lineHeights[\"large\"],\n extraLarge: obj.lineHeights[\"extraLarge\"]\n };\n }\n this.imageSizes = {\n small: (obj.imageSizes && obj.imageSizes[\"small\"]) || this.imageSizes.small,\n medium: (obj.imageSizes && obj.imageSizes[\"medium\"]) || this.imageSizes.medium,\n large: (obj.imageSizes && obj.imageSizes[\"large\"]) || this.imageSizes.large\n };\n this.containerStyles = new ContainerStyleSet(obj[\"containerStyles\"]);\n this.spacing = {\n small: (obj.spacing && obj.spacing[\"small\"]) || this.spacing.small,\n default: (obj.spacing && obj.spacing[\"default\"]) || this.spacing.default,\n medium: (obj.spacing && obj.spacing[\"medium\"]) || this.spacing.medium,\n large: (obj.spacing && obj.spacing[\"large\"]) || this.spacing.large,\n extraLarge: (obj.spacing && obj.spacing[\"extraLarge\"]) || this.spacing.extraLarge,\n padding: (obj.spacing && obj.spacing[\"padding\"]) || this.spacing.padding\n };\n this.separator = {\n lineThickness: (obj.separator && obj.separator[\"lineThickness\"]) ||\n this.separator.lineThickness,\n lineColor: (obj.separator && obj.separator[\"lineColor\"]) || this.separator.lineColor\n };\n this.inputs = new InputConfig(obj.inputs || this.inputs);\n this.actions = new ActionsConfig(obj.actions || this.actions);\n this.adaptiveCard = new AdaptiveCardConfig(obj.adaptiveCard || this.adaptiveCard);\n this.imageSet = new ImageSetConfig(obj[\"imageSet\"]);\n this.factSet = new FactSetConfig(obj[\"factSet\"]);\n this.textStyles = new TextStyleSet(obj[\"textStyles\"]);\n this.textBlock = new TextBlockConfig(obj[\"textBlock\"]);\n this.carousel = new CarouselConfig(obj[\"carousel\"]);\n }\n }\n HostConfig.prototype.getFontTypeDefinition = function (style) {\n if (this.fontTypes) {\n return this.fontTypes.getStyleDefinition(style);\n }\n else {\n return style === Enums.FontType.Monospace\n ? FontTypeDefinition.monospace\n : this._legacyFontType;\n }\n };\n HostConfig.prototype.getEffectiveSpacing = function (spacing) {\n switch (spacing) {\n case Enums.Spacing.Small:\n return this.spacing.small;\n case Enums.Spacing.Default:\n return this.spacing.default;\n case Enums.Spacing.Medium:\n return this.spacing.medium;\n case Enums.Spacing.Large:\n return this.spacing.large;\n case Enums.Spacing.ExtraLarge:\n return this.spacing.extraLarge;\n case Enums.Spacing.Padding:\n return this.spacing.padding;\n default:\n return 0;\n }\n };\n HostConfig.prototype.paddingDefinitionToSpacingDefinition = function (paddingDefinition) {\n return new Shared.SpacingDefinition(this.getEffectiveSpacing(paddingDefinition.top), this.getEffectiveSpacing(paddingDefinition.right), this.getEffectiveSpacing(paddingDefinition.bottom), this.getEffectiveSpacing(paddingDefinition.left));\n };\n HostConfig.prototype.makeCssClassNames = function () {\n var classNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n classNames[_i] = arguments[_i];\n }\n var result = [];\n for (var _a = 0, classNames_1 = classNames; _a < classNames_1.length; _a++) {\n var className = classNames_1[_a];\n result.push((this.cssClassNamePrefix ? this.cssClassNamePrefix + \"-\" : \"\") + className);\n }\n return result;\n };\n HostConfig.prototype.makeCssClassName = function () {\n var classNames = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n classNames[_i] = arguments[_i];\n }\n var result = this.makeCssClassNames.apply(this, classNames).join(\" \");\n return result ? result : \"\";\n };\n Object.defineProperty(HostConfig.prototype, \"fontFamily\", {\n get: function () {\n return this._legacyFontType.fontFamily;\n },\n set: function (value) {\n this._legacyFontType.fontFamily = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HostConfig.prototype, \"fontSizes\", {\n get: function () {\n return this._legacyFontType.fontSizes;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HostConfig.prototype, \"fontWeights\", {\n get: function () {\n return this._legacyFontType.fontWeights;\n },\n enumerable: false,\n configurable: true\n });\n return HostConfig;\n}());\nexports.HostConfig = HostConfig;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexports.defaultHostConfig = new HostConfig({\n supportsInteractivity: true,\n spacing: {\n small: 10,\n default: 20,\n medium: 30,\n large: 40,\n extraLarge: 50,\n padding: 20\n },\n separator: {\n lineThickness: 1,\n lineColor: \"#EEEEEE\"\n },\n fontTypes: {\n default: {\n fontFamily: \"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif\",\n fontSizes: {\n small: 12,\n default: 14,\n medium: 17,\n large: 21,\n extraLarge: 26\n },\n fontWeights: {\n lighter: 200,\n default: 400,\n bolder: 600\n }\n },\n monospace: {\n fontFamily: \"'Courier New', Courier, monospace\",\n fontSizes: {\n small: 12,\n default: 14,\n medium: 17,\n large: 21,\n extraLarge: 26\n },\n fontWeights: {\n lighter: 200,\n default: 400,\n bolder: 600\n }\n }\n },\n imageSizes: {\n small: 40,\n medium: 80,\n large: 160\n },\n containerStyles: {\n default: {\n backgroundColor: \"#FFFFFF\",\n foregroundColors: {\n default: {\n default: \"#333333\",\n subtle: \"#EE333333\"\n },\n dark: {\n default: \"#000000\",\n subtle: \"#66000000\"\n },\n light: {\n default: \"#FFFFFF\",\n subtle: \"#33000000\"\n },\n accent: {\n default: \"#2E89FC\",\n subtle: \"#882E89FC\"\n },\n attention: {\n default: \"#cc3300\",\n subtle: \"#DDcc3300\"\n },\n good: {\n default: \"#028A02\",\n subtle: \"#DD027502\"\n },\n warning: {\n default: \"#e69500\",\n subtle: \"#DDe69500\"\n }\n }\n },\n emphasis: {\n backgroundColor: \"#08000000\",\n foregroundColors: {\n default: {\n default: \"#333333\",\n subtle: \"#EE333333\"\n },\n dark: {\n default: \"#000000\",\n subtle: \"#66000000\"\n },\n light: {\n default: \"#FFFFFF\",\n subtle: \"#33000000\"\n },\n accent: {\n default: \"#2E89FC\",\n subtle: \"#882E89FC\"\n },\n attention: {\n default: \"#cc3300\",\n subtle: \"#DDcc3300\"\n },\n good: {\n default: \"#028A02\",\n subtle: \"#DD027502\"\n },\n warning: {\n default: \"#e69500\",\n subtle: \"#DDe69500\"\n }\n }\n },\n accent: {\n backgroundColor: \"#C7DEF9\",\n foregroundColors: {\n default: {\n default: \"#333333\",\n subtle: \"#EE333333\"\n },\n dark: {\n default: \"#000000\",\n subtle: \"#66000000\"\n },\n light: {\n default: \"#FFFFFF\",\n subtle: \"#33000000\"\n },\n accent: {\n default: \"#2E89FC\",\n subtle: \"#882E89FC\"\n },\n attention: {\n default: \"#cc3300\",\n subtle: \"#DDcc3300\"\n },\n good: {\n default: \"#028A02\",\n subtle: \"#DD027502\"\n },\n warning: {\n default: \"#e69500\",\n subtle: \"#DDe69500\"\n }\n }\n },\n good: {\n backgroundColor: \"#CCFFCC\",\n foregroundColors: {\n default: {\n default: \"#333333\",\n subtle: \"#EE333333\"\n },\n dark: {\n default: \"#000000\",\n subtle: \"#66000000\"\n },\n light: {\n default: \"#FFFFFF\",\n subtle: \"#33000000\"\n },\n accent: {\n default: \"#2E89FC\",\n subtle: \"#882E89FC\"\n },\n attention: {\n default: \"#cc3300\",\n subtle: \"#DDcc3300\"\n },\n good: {\n default: \"#028A02\",\n subtle: \"#DD027502\"\n },\n warning: {\n default: \"#e69500\",\n subtle: \"#DDe69500\"\n }\n }\n },\n attention: {\n backgroundColor: \"#FFC5B2\",\n foregroundColors: {\n default: {\n default: \"#333333\",\n subtle: \"#EE333333\"\n },\n dark: {\n default: \"#000000\",\n subtle: \"#66000000\"\n },\n light: {\n default: \"#FFFFFF\",\n subtle: \"#33000000\"\n },\n accent: {\n default: \"#2E89FC\",\n subtle: \"#882E89FC\"\n },\n attention: {\n default: \"#cc3300\",\n subtle: \"#DDcc3300\"\n },\n good: {\n default: \"#028A02\",\n subtle: \"#DD027502\"\n },\n warning: {\n default: \"#e69500\",\n subtle: \"#DDe69500\"\n }\n }\n },\n warning: {\n backgroundColor: \"#FFE2B2\",\n foregroundColors: {\n default: {\n default: \"#333333\",\n subtle: \"#EE333333\"\n },\n dark: {\n default: \"#000000\",\n subtle: \"#66000000\"\n },\n light: {\n default: \"#FFFFFF\",\n subtle: \"#33000000\"\n },\n accent: {\n default: \"#2E89FC\",\n subtle: \"#882E89FC\"\n },\n attention: {\n default: \"#cc3300\",\n subtle: \"#DDcc3300\"\n },\n good: {\n default: \"#028A02\",\n subtle: \"#DD027502\"\n },\n warning: {\n default: \"#e69500\",\n subtle: \"#DDe69500\"\n }\n }\n }\n },\n inputs: {\n label: {\n requiredInputs: {\n weight: Enums.TextWeight.Bolder,\n suffix: \" *\",\n suffixColor: Enums.TextColor.Attention\n },\n optionalInputs: {\n weight: Enums.TextWeight.Bolder\n }\n },\n errorMessage: {\n color: Enums.TextColor.Attention,\n weight: Enums.TextWeight.Bolder\n },\n debounceTimeInMilliSeconds: 250\n },\n actions: {\n maxActions: 5,\n spacing: Enums.Spacing.Default,\n buttonSpacing: 10,\n showCard: {\n actionMode: Enums.ShowCardActionMode.Inline,\n inlineTopMargin: 16\n },\n actionsOrientation: Enums.Orientation.Horizontal,\n actionAlignment: Enums.ActionAlignment.Left\n },\n adaptiveCard: {\n allowCustomStyle: false\n },\n imageSet: {\n imageSize: Enums.Size.Medium,\n maxImageHeight: 100\n },\n factSet: {\n title: {\n color: Enums.TextColor.Default,\n size: Enums.TextSize.Default,\n isSubtle: false,\n weight: Enums.TextWeight.Bolder,\n wrap: true,\n maxWidth: 150\n },\n value: {\n color: Enums.TextColor.Default,\n size: Enums.TextSize.Default,\n isSubtle: false,\n weight: Enums.TextWeight.Default,\n wrap: true\n },\n spacing: 10\n },\n carousel: {\n maxCarouselPages: 10,\n minAutoplayDuration: 5000\n },\n textBlock: {\n headingLevel: 2\n }\n});\n//# sourceMappingURL=host-config.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatText = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar AbstractTextFormatter = /** @class */ (function () {\n function AbstractTextFormatter(regularExpression) {\n this._regularExpression = regularExpression;\n }\n AbstractTextFormatter.prototype.format = function (lang, input) {\n var matches;\n if (input) {\n var result = input;\n while ((matches = this._regularExpression.exec(input)) != null) {\n result = result.replace(matches[0], this.internalFormat(lang, matches));\n }\n return result;\n }\n else {\n return input;\n }\n };\n return AbstractTextFormatter;\n}());\nvar DateFormatter = /** @class */ (function (_super) {\n __extends(DateFormatter, _super);\n function DateFormatter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DateFormatter.prototype.internalFormat = function (lang, matches) {\n var date = new Date(Date.parse(matches[1]));\n var format = matches[2] !== undefined ? matches[2].toLowerCase() : \"compact\";\n if (format !== \"compact\") {\n return date.toLocaleDateString(lang, {\n day: \"numeric\",\n weekday: format,\n month: format,\n year: \"numeric\"\n });\n }\n else {\n return date.toLocaleDateString();\n }\n };\n return DateFormatter;\n}(AbstractTextFormatter));\nvar TimeFormatter = /** @class */ (function (_super) {\n __extends(TimeFormatter, _super);\n function TimeFormatter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeFormatter.prototype.internalFormat = function (lang, matches) {\n var date = new Date(Date.parse(matches[1]));\n return date.toLocaleTimeString(lang, { hour: \"numeric\", minute: \"2-digit\" });\n };\n return TimeFormatter;\n}(AbstractTextFormatter));\nfunction formatText(lang, text) {\n var formatters = [\n new DateFormatter(/\\{{2}DATE\\((\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:Z|(?:(?:-|\\+)\\d{2}:\\d{2})))(?:, ?(COMPACT|LONG|SHORT))?\\)\\}{2}/g),\n new TimeFormatter(/\\{{2}TIME\\((\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:Z|(?:(?:-|\\+)\\d{2}:\\d{2})))\\)\\}{2}/g)\n ];\n var result = text;\n for (var _i = 0, formatters_1 = formatters; _i < formatters_1.length; _i++) {\n var formatter = formatters_1[_i];\n result = formatter.format(lang, result);\n }\n return result;\n}\nexports.formatText = formatText;\n//# sourceMappingURL=text-formatters.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\nvar __decorate = (this && this.__decorate) || function (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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CardObject = exports.ValidationResults = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar Enums = require(\"./enums\");\nvar strings_1 = require(\"./strings\");\nvar shared_1 = require(\"./shared\");\nvar host_capabilities_1 = require(\"./host-capabilities\");\nvar serialization_1 = require(\"./serialization\");\nvar ValidationResults = /** @class */ (function () {\n function ValidationResults() {\n this.allIds = {};\n this.validationEvents = [];\n }\n ValidationResults.prototype.addFailure = function (cardObject, event, message) {\n this.validationEvents.push({\n phase: Enums.ValidationPhase.Validation,\n source: cardObject,\n event: event,\n message: message\n });\n };\n return ValidationResults;\n}());\nexports.ValidationResults = ValidationResults;\nvar CardObject = /** @class */ (function (_super) {\n __extends(CardObject, _super);\n function CardObject() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n //#endregion\n _this._shouldFallback = false;\n return _this;\n }\n CardObject.prototype.getSchemaKey = function () {\n return this.getJsonTypeName();\n };\n Object.defineProperty(CardObject.prototype, \"requires\", {\n get: function () {\n return this.getValue(CardObject.requiresProperty);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Checks if this CardObject contains the given DOM Node.\n * @param node The DOM Node to look for.\n * @returns `true` if the DOM Node was found, `false` otherwise.\n */\n CardObject.prototype.contains = function (node) {\n if (this._renderedElement) {\n return this._renderedElement.contains(node);\n }\n return false;\n };\n CardObject.prototype.preProcessPropertyValue = function (prop, propertyValue) {\n var value = propertyValue === undefined ? this.getValue(prop) : propertyValue;\n if (shared_1.GlobalSettings.allowPreProcessingPropertyValues) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var currentObject = this;\n while (currentObject && !currentObject.onPreProcessPropertyValue) {\n currentObject = currentObject.parent;\n }\n if (currentObject && currentObject.onPreProcessPropertyValue) {\n return currentObject.onPreProcessPropertyValue(this, prop, value);\n }\n }\n return value;\n };\n CardObject.prototype.setParent = function (value) {\n this._parent = value;\n };\n CardObject.prototype.setShouldFallback = function (value) {\n this._shouldFallback = value;\n };\n CardObject.prototype.shouldFallback = function () {\n return this._shouldFallback || !this.requires.areAllMet(this.hostConfig.hostCapabilities);\n };\n CardObject.prototype.getRootObject = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var currentObject = this;\n while (currentObject.parent) {\n currentObject = currentObject.parent;\n }\n return currentObject;\n };\n CardObject.prototype.internalValidateProperties = function (context) {\n if (this.id) {\n if (context.allIds.hasOwnProperty(this.id)) {\n if (context.allIds[this.id] === 1) {\n context.addFailure(this, Enums.ValidationEvent.DuplicateId, strings_1.Strings.errors.duplicateId(this.id));\n }\n context.allIds[this.id] += 1;\n }\n else {\n context.allIds[this.id] = 1;\n }\n }\n };\n CardObject.prototype.validateProperties = function () {\n var result = new ValidationResults();\n this.internalValidateProperties(result);\n return result;\n };\n /**\n * Recursively searches this CardObject and any children to find the\n * innermost CardObject that owns the given DOM Node.\n *\n * @param node The DOM Node to look for.\n *\n * @returns The owner of the given DOM Node, or `undefined` if no owner was found.\n */\n CardObject.prototype.findDOMNodeOwner = function (node) {\n // default implementation for CardObjects with no associated children\n return this.contains(node) ? this : undefined;\n };\n CardObject.prototype.releaseDOMResources = function () {\n // Do nothing in base implementation\n };\n Object.defineProperty(CardObject.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardObject.prototype, \"renderedElement\", {\n get: function () {\n return this._renderedElement;\n },\n enumerable: false,\n configurable: true\n });\n CardObject.typeNameProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"type\", undefined, undefined, undefined, function (sender) {\n return sender.getJsonTypeName();\n });\n CardObject.idProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"id\");\n CardObject.requiresProperty = new serialization_1.SerializableObjectProperty(serialization_1.Versions.v1_2, \"requires\", host_capabilities_1.HostCapabilities, false, new host_capabilities_1.HostCapabilities());\n __decorate([\n (0, serialization_1.property)(CardObject.idProperty)\n ], CardObject.prototype, \"id\", void 0);\n __decorate([\n (0, serialization_1.property)(CardObject.requiresProperty)\n ], CardObject.prototype, \"requires\", null);\n return CardObject;\n}(serialization_1.SerializableObject));\nexports.CardObject = CardObject;\n//# sourceMappingURL=card-object.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalRegistry = exports.CardObjectRegistry = void 0;\nvar serialization_1 = require(\"./serialization\");\nvar CardObjectRegistry = /** @class */ (function () {\n function CardObjectRegistry() {\n this._items = {};\n }\n CardObjectRegistry.prototype.findByName = function (typeName) {\n return this._items.hasOwnProperty(typeName) ? this._items[typeName] : undefined;\n };\n CardObjectRegistry.prototype.clear = function () {\n this._items = {};\n };\n CardObjectRegistry.prototype.copyTo = function (target) {\n var keys = Object.keys(this._items);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var typeRegistration = this._items[key];\n target.register(typeRegistration.typeName, typeRegistration.objectType, typeRegistration.schemaVersion);\n }\n };\n CardObjectRegistry.prototype.register = function (typeName, objectType, schemaVersion) {\n if (schemaVersion === void 0) { schemaVersion = serialization_1.Versions.v1_0; }\n var registrationInfo = this.findByName(typeName);\n if (registrationInfo !== undefined) {\n registrationInfo.objectType = objectType;\n }\n else {\n registrationInfo = {\n typeName: typeName,\n objectType: objectType,\n schemaVersion: schemaVersion\n };\n }\n this._items[typeName] = registrationInfo;\n };\n CardObjectRegistry.prototype.unregister = function (typeName) {\n delete this._items[typeName];\n };\n CardObjectRegistry.prototype.createInstance = function (typeName, targetVersion) {\n var registrationInfo = this.findByName(typeName);\n return registrationInfo && registrationInfo.schemaVersion.compareTo(targetVersion) <= 0\n ? new registrationInfo.objectType()\n : undefined;\n };\n CardObjectRegistry.prototype.getItemCount = function () {\n return Object.keys(this._items).length;\n };\n CardObjectRegistry.prototype.getItemAt = function (index) {\n var _this = this;\n return Object.keys(this._items).map(function (e) { return _this._items[e]; })[index];\n };\n return CardObjectRegistry;\n}());\nexports.CardObjectRegistry = CardObjectRegistry;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nvar GlobalRegistry = /** @class */ (function () {\n function GlobalRegistry() {\n }\n GlobalRegistry.populateWithDefaultElements = function (registry) {\n registry.clear();\n GlobalRegistry.defaultElements.copyTo(registry);\n };\n GlobalRegistry.populateWithDefaultActions = function (registry) {\n registry.clear();\n GlobalRegistry.defaultActions.copyTo(registry);\n };\n Object.defineProperty(GlobalRegistry, \"elements\", {\n get: function () {\n if (!GlobalRegistry._elements) {\n GlobalRegistry._elements = new CardObjectRegistry();\n GlobalRegistry.populateWithDefaultElements(GlobalRegistry._elements);\n }\n return GlobalRegistry._elements;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GlobalRegistry, \"actions\", {\n get: function () {\n if (!GlobalRegistry._actions) {\n GlobalRegistry._actions = new CardObjectRegistry();\n GlobalRegistry.populateWithDefaultActions(GlobalRegistry._actions);\n }\n return GlobalRegistry._actions;\n },\n enumerable: false,\n configurable: true\n });\n GlobalRegistry.reset = function () {\n GlobalRegistry._elements = undefined;\n GlobalRegistry._actions = undefined;\n };\n GlobalRegistry.defaultElements = new CardObjectRegistry();\n GlobalRegistry.defaultActions = new CardObjectRegistry();\n return GlobalRegistry;\n}());\nexports.GlobalRegistry = GlobalRegistry;\n//# sourceMappingURL=registry.js.map","\"use strict\";\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Constants = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nvar Constants = /** @class */ (function () {\n function Constants() {\n }\n Constants.keys = {\n tab: \"Tab\",\n enter: \"Enter\",\n escape: \"Escape\",\n space: \" \",\n up: \"ArrowUp\",\n down: \"ArrowDown\",\n delete: \"Delete\"\n };\n return Constants;\n}());\nexports.Constants = Constants;\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MenuItem = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar host_config_1 = require(\"../host-config\");\nvar constants_1 = require(\"./constants\");\nvar MenuItem = /** @class */ (function () {\n function MenuItem(key, value) {\n this._isEnabled = true;\n this.key = key;\n this._value = value;\n }\n MenuItem.prototype.click = function () {\n if (this.isEnabled && this.onClick) {\n this.onClick(this);\n }\n };\n MenuItem.prototype.updateCssClasses = function () {\n if (this._element) {\n var effectiveHostConfig = this._hostConfig ? this._hostConfig : host_config_1.defaultHostConfig;\n this._element.className = effectiveHostConfig.makeCssClassName(\"ac-ctrl\");\n this._element.classList.add(effectiveHostConfig.makeCssClassName(this.isEnabled ? \"ac-ctrl-dropdown-item\" : \"ac-ctrl-dropdown-item-disabled\"));\n if (!this.isEnabled) {\n this._element.classList.add(effectiveHostConfig.makeCssClassName(\"ac-disabled\"));\n }\n }\n };\n MenuItem.prototype.toString = function () {\n return this.value;\n };\n MenuItem.prototype.render = function (hostConfig) {\n var _this = this;\n this._hostConfig = hostConfig;\n if (!this._element) {\n this._element = document.createElement(\"span\");\n this._element.innerText = this.value;\n this._element.setAttribute(\"role\", \"menuitem\");\n if (!this.isEnabled) {\n this._element.setAttribute(\"aria-disabled\", \"true\");\n }\n this._element.setAttribute(\"aria-current\", \"false\");\n this._element.onmouseup = function (_e) {\n _this.click();\n };\n this._element.onkeydown = function (e) {\n if (e.key === constants_1.Constants.keys.enter) {\n e.cancelBubble = true;\n _this.click();\n }\n };\n this.updateCssClasses();\n }\n return this._element;\n };\n Object.defineProperty(MenuItem.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n set: function (newValue) {\n this._value = newValue;\n if (this._element) {\n this._element.innerText = newValue;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MenuItem.prototype, \"isEnabled\", {\n get: function () {\n return this._isEnabled;\n },\n set: function (value) {\n if (this._isEnabled !== value) {\n this._isEnabled = value;\n this.updateCssClasses();\n }\n },\n enumerable: false,\n configurable: true\n });\n return MenuItem;\n}());\nexports.MenuItem = MenuItem;\n//# sourceMappingURL=menu-item.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Collection = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar Collection = /** @class */ (function () {\n function Collection() {\n this._items = [];\n }\n Collection.prototype.get = function (index) {\n return this._items[index];\n };\n Collection.prototype.add = function (item) {\n this._items.push(item);\n if (this.onItemAdded) {\n this.onItemAdded(item);\n }\n };\n Collection.prototype.remove = function (item) {\n var i = this._items.indexOf(item);\n if (i >= 0) {\n this._items = this._items.splice(i, 1);\n if (this.onItemRemoved) {\n this.onItemRemoved(item);\n }\n }\n };\n Collection.prototype.indexOf = function (item) {\n return this._items.indexOf(item);\n };\n Object.defineProperty(Collection.prototype, \"length\", {\n get: function () {\n return this._items.length;\n },\n enumerable: false,\n configurable: true\n });\n return Collection;\n}());\nexports.Collection = Collection;\n//# sourceMappingURL=collection.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PopupControl = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar constants_1 = require(\"./constants\");\nvar Utils = require(\"../utils\");\nvar host_config_1 = require(\"../host-config\");\nvar PopupControl = /** @class */ (function () {\n function PopupControl() {\n this._isOpen = false;\n }\n PopupControl.prototype.keyDown = function (e) {\n switch (e.key) {\n case constants_1.Constants.keys.escape:\n this.closePopup(true);\n break;\n }\n };\n PopupControl.prototype.render = function (_rootElementBounds) {\n var _this = this;\n var element = document.createElement(\"div\");\n element.tabIndex = 0;\n element.className = this.hostConfig.makeCssClassName(\"ac-ctrl\", \"ac-ctrl-popup-container\");\n element.setAttribute(\"role\", \"dialog\");\n element.setAttribute(\"aria-modal\", \"true\");\n element.onkeydown = function (e) {\n _this.keyDown(e);\n return !e.cancelBubble;\n };\n element.appendChild(this.renderContent());\n return element;\n };\n PopupControl.prototype.focus = function () {\n if (this._popupElement) {\n this._popupElement.firstElementChild.focus();\n }\n };\n PopupControl.prototype.popup = function (rootElement) {\n var _a, _b, _c, _d, _f;\n var _this = this;\n if (!this._isOpen) {\n this._overlayElement = document.createElement(\"div\");\n this._overlayElement.className = this.hostConfig.makeCssClassName(\"ac-ctrl-overlay\");\n this._overlayElement.tabIndex = 0;\n this._overlayElement.style.width = document.documentElement.scrollWidth + \"px\";\n this._overlayElement.style.height = document.documentElement.scrollHeight + \"px\";\n this._overlayElement.onfocus = function (_e) {\n _this.closePopup(true);\n };\n document.body.appendChild(this._overlayElement);\n var rootElementBounds = rootElement.getBoundingClientRect();\n this._popupElement = this.render(rootElementBounds);\n (_a = this._popupElement.classList).remove.apply(_a, this.hostConfig.makeCssClassNames(\"ac-ctrl-slide\", \"ac-ctrl-slideLeftToRight\", \"ac-ctrl-slideRightToLeft\", \"ac-ctrl-slideTopToBottom\", \"ac-ctrl-slideRightToLeft\"));\n window.addEventListener(\"resize\", function (_e) {\n _this.closePopup(true);\n });\n var rootElementLabel = rootElement.getAttribute(\"aria-label\");\n if (rootElementLabel) {\n this._popupElement.setAttribute(\"aria-label\", rootElementLabel);\n }\n this._overlayElement.appendChild(this._popupElement);\n var popupElementBounds = this._popupElement.getBoundingClientRect();\n var availableSpaceBelow = window.innerHeight - rootElementBounds.bottom;\n var availableSpaceAbove = rootElementBounds.top;\n var availableSpaceRight = window.innerWidth - rootElementBounds.right;\n var availableSpaceLeft = rootElementBounds.left;\n var left = rootElementBounds.left + Utils.getScrollX();\n var top_1;\n if (availableSpaceAbove < popupElementBounds.height &&\n availableSpaceBelow < popupElementBounds.height) {\n // Not enough space above or below root element\n var actualPopupHeight = Math.min(popupElementBounds.height, window.innerHeight);\n this._popupElement.style.maxHeight = actualPopupHeight + \"px\";\n if (actualPopupHeight < popupElementBounds.height) {\n top_1 = Utils.getScrollY();\n }\n else {\n top_1 =\n Utils.getScrollY() +\n rootElementBounds.top +\n (rootElementBounds.height - actualPopupHeight) / 2;\n }\n if (availableSpaceLeft < popupElementBounds.width &&\n availableSpaceRight < popupElementBounds.width) {\n // Not enough space left or right of root element\n var actualPopupWidth = Math.min(popupElementBounds.width, window.innerWidth);\n this._popupElement.style.maxWidth = actualPopupWidth + \"px\";\n if (actualPopupWidth < popupElementBounds.width) {\n left = Utils.getScrollX();\n }\n else {\n left =\n Utils.getScrollX() +\n rootElementBounds.left +\n (rootElementBounds.width - actualPopupWidth) / 2;\n }\n }\n else {\n // Enough space on the left or right of the root element\n if (availableSpaceRight >= popupElementBounds.width) {\n left = Utils.getScrollX() + rootElementBounds.right;\n (_b = this._popupElement.classList).add.apply(_b, this.hostConfig.makeCssClassNames(\"ac-ctrl-slide\", \"ac-ctrl-slideLeftToRight\"));\n }\n else {\n left =\n Utils.getScrollX() + rootElementBounds.left - popupElementBounds.width;\n (_c = this._popupElement.classList).add.apply(_c, this.hostConfig.makeCssClassNames(\"ac-ctrl-slide\", \"ac-ctrl-slideRightToLeft\"));\n }\n }\n }\n else {\n // Enough space above or below root element\n if (availableSpaceBelow >= popupElementBounds.height) {\n top_1 = Utils.getScrollY() + rootElementBounds.bottom;\n (_d = this._popupElement.classList).add.apply(_d, this.hostConfig.makeCssClassNames(\"ac-ctrl-slide\", \"ac-ctrl-slideTopToBottom\"));\n }\n else {\n top_1 = Utils.getScrollY() + rootElementBounds.top - popupElementBounds.height;\n (_f = this._popupElement.classList).add.apply(_f, this.hostConfig.makeCssClassNames(\"ac-ctrl-slide\", \"ac-ctrl-slideBottomToTop\"));\n }\n if (availableSpaceRight < popupElementBounds.width) {\n left = Utils.getScrollX() + rootElementBounds.right - popupElementBounds.width;\n }\n }\n this._popupElement.style.left = left + \"px\";\n this._popupElement.style.top = top_1 + \"px\";\n this._popupElement.focus();\n this._isOpen = true;\n }\n };\n PopupControl.prototype.closePopup = function (wasCancelled) {\n if (this._isOpen) {\n document.body.removeChild(this._overlayElement);\n this._isOpen = false;\n if (this.onClose) {\n this.onClose(this, wasCancelled);\n }\n }\n };\n Object.defineProperty(PopupControl.prototype, \"hostConfig\", {\n get: function () {\n return this._hostConfig ? this._hostConfig : host_config_1.defaultHostConfig;\n },\n set: function (value) {\n this._hostConfig = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupControl.prototype, \"isOpen\", {\n get: function () {\n return this._isOpen;\n },\n enumerable: false,\n configurable: true\n });\n return PopupControl;\n}());\nexports.PopupControl = PopupControl;\n//# sourceMappingURL=popup-control.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PopupMenu = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar constants_1 = require(\"./constants\");\nvar collection_1 = require(\"./collection\");\nvar popup_control_1 = require(\"./popup-control\");\nvar PopupMenu = /** @class */ (function (_super) {\n __extends(PopupMenu, _super);\n function PopupMenu() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._items = new collection_1.Collection();\n _this._renderedItems = [];\n _this._selectedIndex = -1;\n return _this;\n }\n PopupMenu.prototype.renderContent = function () {\n var element = document.createElement(\"div\");\n element.className = this.hostConfig.makeCssClassName(\"ac-ctrl ac-popup\");\n element.setAttribute(\"role\", \"listbox\");\n for (var i = 0; i < this._items.length; i++) {\n var renderedItem = this._items.get(i).render(this.hostConfig);\n renderedItem.tabIndex = 0;\n element.appendChild(renderedItem);\n if (i === this.selectedIndex) {\n renderedItem.focus();\n }\n this._renderedItems.push(renderedItem);\n }\n return element;\n };\n PopupMenu.prototype.keyDown = function (e) {\n _super.prototype.keyDown.call(this, e);\n var selectedItemIndex = this._selectedIndex;\n switch (e.key) {\n case constants_1.Constants.keys.tab:\n this.closePopup(true);\n break;\n /*\n case Constants.keys.enter:\n if (this.selectedIndex >= 0) {\n this.selectedIndex = this.selectedIndex;\n\n this.close();\n }\n\n break;\n */\n case constants_1.Constants.keys.up:\n if (selectedItemIndex <= 0) {\n selectedItemIndex = this._renderedItems.length - 1;\n }\n else {\n selectedItemIndex--;\n if (selectedItemIndex < 0) {\n selectedItemIndex = this._renderedItems.length - 1;\n }\n }\n this.selectedIndex = selectedItemIndex;\n e.cancelBubble = true;\n break;\n case constants_1.Constants.keys.down:\n if (selectedItemIndex < 0) {\n selectedItemIndex = 0;\n }\n else {\n selectedItemIndex++;\n if (selectedItemIndex >= this._renderedItems.length) {\n selectedItemIndex = 0;\n }\n }\n this.selectedIndex = selectedItemIndex;\n e.cancelBubble = true;\n break;\n }\n };\n Object.defineProperty(PopupMenu.prototype, \"items\", {\n get: function () {\n return this._items;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PopupMenu.prototype, \"selectedIndex\", {\n get: function () {\n return this._selectedIndex;\n },\n set: function (index) {\n if (index >= 0 && index < this._renderedItems.length) {\n this._renderedItems[index].focus();\n this._selectedIndex = index;\n }\n },\n enumerable: false,\n configurable: true\n });\n return PopupMenu;\n}(popup_control_1.PopupControl));\nexports.PopupMenu = PopupMenu;\n//# sourceMappingURL=popup-menu.js.map","\"use strict\";\nvar __createBinding = (this && this.__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}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Copyright (C) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\n__exportStar(require(\"./menu-item\"), exports);\n__exportStar(require(\"./popup-menu\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\nvar __decorate = (this && this.__decorate) || function (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};\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BackgroundImage = exports.ContainerBase = exports.StylableCardElementContainer = exports.ContainerStyleProperty = exports.ActionSet = exports.ShowCardAction = exports.HttpAction = exports.HttpHeader = exports.ToggleVisibilityAction = exports.OpenUrlAction = exports.DataQuery = exports.ExecuteAction = exports.UniversalAction = exports.SubmitAction = exports.SubmitActionBase = exports.Action = exports.TimeInput = exports.TimeProperty = exports.DateInput = exports.NumberInput = exports.FilteredChoiceSet = exports.ChoiceSetInput = exports.ChoiceSetInputDataQuery = exports.Choice = exports.ToggleInput = exports.TextInput = exports.Input = exports.Media = exports.YouTubePlayer = exports.DailymotionPlayer = exports.VimeoPlayer = exports.IFrameMediaMediaPlayer = exports.CustomMediaPlayer = exports.HTML5MediaPlayer = exports.MediaPlayer = exports.MediaSource = exports.CaptionSource = exports.ContentSource = exports.ImageSet = exports.CardElementContainer = exports.Image = exports.FactSet = exports.Fact = exports.RichTextBlock = exports.TextRun = exports.TextBlock = exports.BaseTextBlock = exports.ActionProperty = exports.CardElement = exports.renderSeparation = void 0;\nexports.SerializationContext = exports.AdaptiveCard = exports.Authentication = exports.TokenExchangeResource = exports.AuthCardButton = exports.RefreshDefinition = exports.RefreshActionProperty = exports.ContainerWithActions = exports.ColumnSet = exports.Column = exports.Container = void 0;\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nvar Enums = require(\"./enums\");\nvar shared_1 = require(\"./shared\");\nvar Utils = require(\"./utils\");\nvar host_config_1 = require(\"./host-config\");\nvar TextFormatters = require(\"./text-formatters\");\nvar card_object_1 = require(\"./card-object\");\nvar serialization_1 = require(\"./serialization\");\nvar registry_1 = require(\"./registry\");\nvar strings_1 = require(\"./strings\");\nvar controls_1 = require(\"./controls\");\nfunction clearElement(element) {\n var _a, _b;\n var trustedHtml = (typeof window === 'undefined') ? \"\" : ((_b = (_a = window.trustedTypes) === null || _a === void 0 ? void 0 : _a.emptyHTML) !== null && _b !== void 0 ? _b : \"\");\n element.innerHTML = trustedHtml;\n}\nfunction renderSeparation(hostConfig, separationDefinition, orientation) {\n if (separationDefinition.spacing > 0 ||\n (separationDefinition.lineThickness && separationDefinition.lineThickness > 0)) {\n var separator = document.createElement(\"div\");\n separator.className = hostConfig.makeCssClassName(\"ac-\" +\n (orientation === Enums.Orientation.Horizontal ? \"horizontal\" : \"vertical\") +\n \"-separator\");\n separator.setAttribute(\"aria-hidden\", \"true\");\n var color = separationDefinition.lineColor\n ? Utils.stringToCssColor(separationDefinition.lineColor)\n : \"\";\n if (orientation === Enums.Orientation.Horizontal) {\n if (separationDefinition.lineThickness) {\n separator.style.paddingTop = separationDefinition.spacing / 2 + \"px\";\n separator.style.marginBottom = separationDefinition.spacing / 2 + \"px\";\n separator.style.borderBottom =\n separationDefinition.lineThickness + \"px solid \" + color;\n }\n else {\n separator.style.height = separationDefinition.spacing + \"px\";\n }\n }\n else {\n if (separationDefinition.lineThickness) {\n separator.style.paddingLeft = separationDefinition.spacing / 2 + \"px\";\n separator.style.marginRight = separationDefinition.spacing / 2 + \"px\";\n separator.style.borderRight =\n separationDefinition.lineThickness + \"px solid \" + color;\n }\n else {\n separator.style.width = separationDefinition.spacing + \"px\";\n }\n }\n separator.style.overflow = \"hidden\";\n separator.style.flex = \"0 0 auto\";\n return separator;\n }\n else {\n return undefined;\n }\n}\nexports.renderSeparation = renderSeparation;\nvar CardElement = /** @class */ (function (_super) {\n __extends(CardElement, _super);\n function CardElement() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._truncatedDueToOverflow = false;\n return _this;\n }\n Object.defineProperty(CardElement.prototype, \"lang\", {\n get: function () {\n var lang = this.getValue(CardElement.langProperty);\n if (lang) {\n return lang;\n }\n else {\n if (this.parent) {\n return this.parent.lang;\n }\n else {\n return undefined;\n }\n }\n },\n set: function (value) {\n this.setValue(CardElement.langProperty, value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"isVisible\", {\n get: function () {\n return this.getValue(CardElement.isVisibleProperty);\n },\n set: function (value) {\n // If the element is going to be hidden, reset any changes that were due\n // to overflow truncation (this ensures that if the element is later\n // un-hidden it has the right content)\n if (shared_1.GlobalSettings.useAdvancedCardBottomTruncation && !value) {\n this.undoOverflowTruncation();\n }\n if (this.isVisible !== value) {\n this.setValue(CardElement.isVisibleProperty, value);\n this.updateRenderedElementVisibility();\n if (this._renderedElement) {\n raiseElementVisibilityChangedEvent(this);\n }\n }\n if (this._renderedElement) {\n this._renderedElement.setAttribute(\"aria-expanded\", value.toString());\n }\n },\n enumerable: false,\n configurable: true\n });\n CardElement.prototype.internalRenderSeparator = function () {\n var renderedSeparator = renderSeparation(this.hostConfig, {\n spacing: this.hostConfig.getEffectiveSpacing(this.spacing),\n lineThickness: this.separator ? this.hostConfig.separator.lineThickness : undefined,\n lineColor: this.separator ? this.hostConfig.separator.lineColor : undefined\n }, this.separatorOrientation);\n if (shared_1.GlobalSettings.alwaysBleedSeparators &&\n renderedSeparator &&\n this.separatorOrientation === Enums.Orientation.Horizontal) {\n // Adjust separator's margins if the option to always bleed separators is turned on\n var parentContainer = this.getParentContainer();\n if (parentContainer && parentContainer.getEffectivePadding()) {\n var parentPhysicalPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(parentContainer.getEffectivePadding());\n renderedSeparator.style.marginLeft = \"-\" + parentPhysicalPadding.left + \"px\";\n renderedSeparator.style.marginRight = \"-\" + parentPhysicalPadding.right + \"px\";\n }\n }\n return renderedSeparator;\n };\n CardElement.prototype.updateRenderedElementVisibility = function () {\n var displayMode = this.isDesignMode() || this.isVisible\n ? this._defaultRenderedElementDisplayMode\n : \"none\";\n if (this._renderedElement) {\n if (displayMode) {\n this._renderedElement.style.display = displayMode;\n }\n else {\n this._renderedElement.style.removeProperty(\"display\");\n }\n }\n if (this._separatorElement) {\n if (this.parent && this.parent.isFirstElement(this)) {\n this._separatorElement.style.display = \"none\";\n }\n else {\n if (displayMode) {\n this._separatorElement.style.display = displayMode;\n }\n else {\n this._separatorElement.style.removeProperty(\"display\");\n }\n }\n }\n };\n CardElement.prototype.hideElementDueToOverflow = function () {\n if (this._renderedElement && this.isVisible) {\n this._renderedElement.style.visibility = \"hidden\";\n this.isVisible = false;\n raiseElementVisibilityChangedEvent(this, false);\n }\n };\n CardElement.prototype.showElementHiddenDueToOverflow = function () {\n if (this._renderedElement && !this.isVisible) {\n this._renderedElement.style.removeProperty(\"visibility\");\n this.isVisible = true;\n raiseElementVisibilityChangedEvent(this, false);\n }\n };\n // Marked private to emulate internal access\n CardElement.prototype.handleOverflow = function (maxHeight) {\n if (this.isVisible || this.isHiddenDueToOverflow()) {\n var handled = this.truncateOverflow(maxHeight);\n // Even if we were unable to truncate the element to fit this time,\n // it still could have been previously truncated\n this._truncatedDueToOverflow = handled || this._truncatedDueToOverflow;\n if (!handled) {\n this.hideElementDueToOverflow();\n }\n else if (handled && !this.isVisible) {\n this.showElementHiddenDueToOverflow();\n }\n }\n };\n // Marked private to emulate internal access\n CardElement.prototype.resetOverflow = function () {\n var sizeChanged = false;\n if (this._truncatedDueToOverflow) {\n this.undoOverflowTruncation();\n this._truncatedDueToOverflow = false;\n sizeChanged = true;\n }\n if (this.isHiddenDueToOverflow()) {\n this.showElementHiddenDueToOverflow();\n }\n return sizeChanged;\n };\n CardElement.prototype.getDefaultSerializationContext = function () {\n return new SerializationContext();\n };\n CardElement.prototype.createPlaceholderElement = function () {\n var styleDefinition = this.getEffectiveStyleDefinition();\n var foregroundCssColor = Utils.stringToCssColor(styleDefinition.foregroundColors.default.subtle);\n var element = document.createElement(\"div\");\n element.style.border = \"1px dashed \" + foregroundCssColor;\n element.style.padding = \"4px\";\n element.style.minHeight = \"32px\";\n element.style.fontSize = \"10px\";\n if (foregroundCssColor) {\n element.style.color = foregroundCssColor;\n }\n element.innerText = strings_1.Strings.defaults.emptyElementText(this.getJsonTypeName());\n return element;\n };\n CardElement.prototype.adjustRenderedElementSize = function (renderedElement) {\n if (this.height === \"auto\") {\n renderedElement.style.flex = \"0 0 auto\";\n }\n else {\n renderedElement.style.flex = \"1 1 auto\";\n }\n };\n /*\n * Called when mouse enters or leaves the card.\n * Inputs elements need to update their visual state in such events like showing or hiding borders etc.\n * It calls Input.updateVisualState(eventType) for all inputs.\n * This method on input (updateVisualState) is supposed to be called from card level on mouse events.\n */\n CardElement.prototype.updateInputsVisualState = function (hover) {\n var allInputs = this.getAllInputs();\n var inputEventType = !!hover ? InputEventType.MouseEnterOnCard : InputEventType.MouseLeaveOnCard;\n allInputs.forEach(function (input) { return input.updateVisualState(inputEventType); });\n };\n CardElement.prototype.isDisplayed = function () {\n return (this._renderedElement !== undefined &&\n this.isVisible &&\n this._renderedElement.offsetHeight > 0);\n };\n CardElement.prototype.overrideInternalRender = function () {\n return this.internalRender();\n };\n CardElement.prototype.applyPadding = function () {\n if (this.separatorElement && this.separatorOrientation === Enums.Orientation.Horizontal) {\n if (shared_1.GlobalSettings.alwaysBleedSeparators && !this.isBleeding()) {\n var padding = new shared_1.PaddingDefinition();\n this.getImmediateSurroundingPadding(padding);\n var physicalPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(padding);\n this.separatorElement.style.marginLeft = \"-\" + physicalPadding.left + \"px\";\n this.separatorElement.style.marginRight = \"-\" + physicalPadding.right + \"px\";\n }\n else {\n this.separatorElement.style.marginRight = \"0\";\n this.separatorElement.style.marginLeft = \"0\";\n }\n }\n };\n /*\n * Called when this element overflows the bottom of the card.\n * maxHeight will be the amount of space still available on the card (0 if\n * the element is fully off the card).\n */\n CardElement.prototype.truncateOverflow = function (_maxHeight) {\n // Child implementations should return true if the element handled\n // the truncation request such that its content fits within maxHeight,\n // false if the element should fall back to being hidden\n return false;\n };\n /*\n * This should reverse any changes performed in truncateOverflow().\n */\n CardElement.prototype.undoOverflowTruncation = function () {\n return;\n };\n CardElement.prototype.getDefaultPadding = function () {\n return new shared_1.PaddingDefinition();\n };\n CardElement.prototype.getHasBackground = function (ignoreBackgroundImages) {\n if (ignoreBackgroundImages === void 0) { ignoreBackgroundImages = false; }\n return false;\n };\n CardElement.prototype.getHasBorder = function () {\n return false;\n };\n CardElement.prototype.getPadding = function () {\n return this._padding;\n };\n CardElement.prototype.setPadding = function (value) {\n this._padding = value;\n };\n CardElement.prototype.shouldSerialize = function (context) {\n return context.elementRegistry.findByName(this.getJsonTypeName()) !== undefined;\n };\n Object.defineProperty(CardElement.prototype, \"useDefaultSizing\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"separatorOrientation\", {\n get: function () {\n return Enums.Orientation.Horizontal;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"defaultStyle\", {\n get: function () {\n return Enums.ContainerStyle.Default;\n },\n enumerable: false,\n configurable: true\n });\n CardElement.prototype.parse = function (source, context) {\n _super.prototype.parse.call(this, source, context ? context : new SerializationContext());\n };\n CardElement.prototype.asString = function () {\n return \"\";\n };\n CardElement.prototype.isBleeding = function () {\n return false;\n };\n CardElement.prototype.getEffectiveStyle = function () {\n if (this.parent) {\n return this.parent.getEffectiveStyle();\n }\n return this.defaultStyle;\n };\n CardElement.prototype.getEffectiveStyleDefinition = function () {\n return this.hostConfig.containerStyles.getStyleByName(this.getEffectiveStyle());\n };\n CardElement.prototype.getEffectiveTextStyleDefinition = function () {\n if (this.parent) {\n return this.parent.getEffectiveTextStyleDefinition();\n }\n return this.hostConfig.textStyles.default;\n };\n CardElement.prototype.getForbiddenActionTypes = function () {\n return [];\n };\n CardElement.prototype.getImmediateSurroundingPadding = function (result, processTop, processRight, processBottom, processLeft) {\n if (processTop === void 0) { processTop = true; }\n if (processRight === void 0) { processRight = true; }\n if (processBottom === void 0) { processBottom = true; }\n if (processLeft === void 0) { processLeft = true; }\n if (this.parent) {\n var doProcessTop = processTop && this.parent.isTopElement(this);\n var doProcessRight = processRight && this.parent.isRightMostElement(this);\n var doProcessBottom = processBottom && this.parent.isBottomElement(this);\n var doProcessLeft = processLeft && this.parent.isLeftMostElement(this);\n var effectivePadding = this.parent.getEffectivePadding();\n if (effectivePadding) {\n if (doProcessTop && effectivePadding.top !== Enums.Spacing.None) {\n result.top = effectivePadding.top;\n doProcessTop = false;\n }\n if (doProcessRight && effectivePadding.right !== Enums.Spacing.None) {\n result.right = effectivePadding.right;\n doProcessRight = false;\n }\n if (doProcessBottom && effectivePadding.bottom !== Enums.Spacing.None) {\n result.bottom = effectivePadding.bottom;\n doProcessBottom = false;\n }\n if (doProcessLeft && effectivePadding.left !== Enums.Spacing.None) {\n result.left = effectivePadding.left;\n doProcessLeft = false;\n }\n }\n if (doProcessTop || doProcessRight || doProcessBottom || doProcessLeft) {\n this.parent.getImmediateSurroundingPadding(result, doProcessTop, doProcessRight, doProcessBottom, doProcessLeft);\n }\n }\n };\n CardElement.prototype.getActionCount = function () {\n return 0;\n };\n CardElement.prototype.getActionAt = function (index) {\n throw new Error(strings_1.Strings.errors.indexOutOfRange(index));\n };\n CardElement.prototype.indexOfAction = function (action) {\n for (var i = 0; i < this.getActionCount(); i++) {\n if (this.getActionAt(i) === action) {\n return i;\n }\n }\n return -1;\n };\n CardElement.prototype.remove = function () {\n if (this.parent && this.parent instanceof CardElementContainer) {\n return this.parent.removeItem(this);\n }\n return false;\n };\n CardElement.prototype.render = function () {\n this._renderedElement = this.overrideInternalRender();\n this._separatorElement = this.internalRenderSeparator();\n if (this._renderedElement) {\n if (this.id) {\n this._renderedElement.id = this.id;\n }\n if (this.customCssSelector) {\n this._renderedElement.classList.add(this.customCssSelector);\n }\n this._renderedElement.style.boxSizing = \"border-box\";\n this._defaultRenderedElementDisplayMode = this._renderedElement.style.display\n ? this._renderedElement.style.display\n : undefined;\n this.adjustRenderedElementSize(this._renderedElement);\n this.updateLayout(false);\n }\n else if (this.isDesignMode()) {\n this._renderedElement = this.createPlaceholderElement();\n }\n return this._renderedElement;\n };\n CardElement.prototype.updateLayout = function (_processChildren) {\n if (_processChildren === void 0) { _processChildren = true; }\n this.updateRenderedElementVisibility();\n this.applyPadding();\n };\n CardElement.prototype.updateActionsEnabledState = function () {\n var allActions = this.getRootElement().getAllActions();\n for (var _i = 0, allActions_1 = allActions; _i < allActions_1.length; _i++) {\n var action = allActions_1[_i];\n action.updateEnabledState();\n }\n };\n CardElement.prototype.indexOf = function (_cardElement) {\n return -1;\n };\n CardElement.prototype.isDesignMode = function () {\n var rootElement = this.getRootElement();\n return rootElement instanceof AdaptiveCard && rootElement.designMode;\n };\n CardElement.prototype.isFirstElement = function (_element) {\n return true;\n };\n CardElement.prototype.isLastElement = function (_element) {\n return true;\n };\n CardElement.prototype.isAtTheVeryLeft = function () {\n return this.parent\n ? this.parent.isLeftMostElement(this) && this.parent.isAtTheVeryLeft()\n : true;\n };\n CardElement.prototype.isAtTheVeryRight = function () {\n return this.parent\n ? this.parent.isRightMostElement(this) && this.parent.isAtTheVeryRight()\n : true;\n };\n CardElement.prototype.isAtTheVeryTop = function () {\n return this.parent\n ? this.parent.isFirstElement(this) && this.parent.isAtTheVeryTop()\n : true;\n };\n CardElement.prototype.isAtTheVeryBottom = function () {\n return this.parent\n ? this.parent.isLastElement(this) && this.parent.isAtTheVeryBottom()\n : true;\n };\n CardElement.prototype.isBleedingAtTop = function () {\n return false;\n };\n CardElement.prototype.isBleedingAtBottom = function () {\n return false;\n };\n CardElement.prototype.isLeftMostElement = function (_element) {\n return true;\n };\n CardElement.prototype.isRightMostElement = function (_element) {\n return true;\n };\n CardElement.prototype.isTopElement = function (element) {\n return this.isFirstElement(element);\n };\n CardElement.prototype.isBottomElement = function (element) {\n return this.isLastElement(element);\n };\n CardElement.prototype.isHiddenDueToOverflow = function () {\n return (this._renderedElement !== undefined &&\n this._renderedElement.style.visibility === \"hidden\");\n };\n CardElement.prototype.getRootElement = function () {\n return this.getRootObject();\n };\n CardElement.prototype.getParentContainer = function () {\n var currentElement = this.parent;\n while (currentElement) {\n if (currentElement instanceof Container) {\n return currentElement;\n }\n currentElement = currentElement.parent;\n }\n return undefined;\n };\n CardElement.prototype.getAllInputs = function (processActions) {\n if (processActions === void 0) { processActions = true; }\n return [];\n };\n CardElement.prototype.getAllActions = function () {\n var result = [];\n for (var i = 0; i < this.getActionCount(); i++) {\n var action = this.getActionAt(i);\n if (action) {\n result.push(action);\n }\n }\n return result;\n };\n CardElement.prototype.getResourceInformation = function () {\n return [];\n };\n CardElement.prototype.getElementById = function (id) {\n return this.id === id ? this : undefined;\n };\n CardElement.prototype.getActionById = function (_id) {\n return undefined;\n };\n CardElement.prototype.getElementByIdFromAction = function (id) {\n var result = undefined;\n for (var i = 0; i < this.getActionCount(); i++) {\n var action = this.getActionAt(i);\n if (action instanceof ShowCardAction) {\n result = action.card.getElementById(id);\n if (result) {\n break;\n }\n }\n }\n return result;\n };\n CardElement.prototype.getEffectivePadding = function () {\n var padding = this.getPadding();\n return padding ? padding : this.getDefaultPadding();\n };\n CardElement.prototype.getEffectiveHorizontalAlignment = function () {\n if (this.horizontalAlignment !== undefined) {\n return this.horizontalAlignment;\n }\n if (this.parent) {\n return this.parent.getEffectiveHorizontalAlignment();\n }\n return Enums.HorizontalAlignment.Left;\n };\n Object.defineProperty(CardElement.prototype, \"hostConfig\", {\n get: function () {\n if (this._hostConfig) {\n return this._hostConfig;\n }\n else {\n if (this.parent) {\n return this.parent.hostConfig;\n }\n else {\n return host_config_1.defaultHostConfig;\n }\n }\n },\n set: function (value) {\n this._hostConfig = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"index\", {\n get: function () {\n if (this.parent) {\n return this.parent.indexOf(this);\n }\n else {\n return 0;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"isInteractive\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"isStandalone\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"isInline\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"hasVisibleSeparator\", {\n get: function () {\n if (this.parent && this.separatorElement) {\n return !this.parent.isFirstElement(this) && (this.isVisible || this.isDesignMode());\n }\n else {\n return false;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"separatorElement\", {\n get: function () {\n return this._separatorElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CardElement.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: false,\n configurable: true\n });\n CardElement.langProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_1, \"lang\", true, /^[a-z]{2,3}$/gi);\n CardElement.isVisibleProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_2, \"isVisible\", true);\n CardElement.separatorProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_0, \"separator\", false);\n CardElement.heightProperty = new serialization_1.ValueSetProperty(serialization_1.Versions.v1_1, \"height\", [{ value: \"auto\" }, { value: \"stretch\" }], \"auto\");\n CardElement.horizontalAlignmentProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_0, \"horizontalAlignment\", Enums.HorizontalAlignment);\n CardElement.spacingProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_0, \"spacing\", Enums.Spacing, Enums.Spacing.Default);\n __decorate([\n (0, serialization_1.property)(CardElement.horizontalAlignmentProperty)\n ], CardElement.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n (0, serialization_1.property)(CardElement.spacingProperty)\n ], CardElement.prototype, \"spacing\", void 0);\n __decorate([\n (0, serialization_1.property)(CardElement.separatorProperty)\n ], CardElement.prototype, \"separator\", void 0);\n __decorate([\n (0, serialization_1.property)(CardElement.heightProperty)\n ], CardElement.prototype, \"height\", void 0);\n __decorate([\n (0, serialization_1.property)(CardElement.langProperty)\n ], CardElement.prototype, \"lang\", null);\n __decorate([\n (0, serialization_1.property)(CardElement.isVisibleProperty)\n ], CardElement.prototype, \"isVisible\", null);\n return CardElement;\n}(card_object_1.CardObject));\nexports.CardElement = CardElement;\nvar ActionProperty = /** @class */ (function (_super) {\n __extends(ActionProperty, _super);\n function ActionProperty(targetVersion, name, forbiddenActionTypes) {\n if (forbiddenActionTypes === void 0) { forbiddenActionTypes = []; }\n var _this = _super.call(this, targetVersion, name, undefined) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.forbiddenActionTypes = forbiddenActionTypes;\n return _this;\n }\n ActionProperty.prototype.parse = function (sender, source, context) {\n var parent = sender;\n return context.parseAction(parent, source[this.name], this.forbiddenActionTypes, parent.isDesignMode());\n };\n ActionProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeValue(target, this.name, value ? value.toJSON(context) : undefined, undefined, true);\n };\n return ActionProperty;\n}(serialization_1.PropertyDefinition));\nexports.ActionProperty = ActionProperty;\nvar BaseTextBlock = /** @class */ (function (_super) {\n __extends(BaseTextBlock, _super);\n function BaseTextBlock(text) {\n var _this = _super.call(this) || this;\n _this.ariaHidden = false;\n if (text) {\n _this.text = text;\n }\n return _this;\n }\n BaseTextBlock.prototype.populateSchema = function (schema) {\n _super.prototype.populateSchema.call(this, schema);\n // selectAction is declared on BaseTextBlock but is only exposed on TextRun,\n // so the property is removed from the BaseTextBlock schema.\n schema.remove(BaseTextBlock.selectActionProperty);\n };\n Object.defineProperty(BaseTextBlock.prototype, \"text\", {\n get: function () {\n return this.getValue(BaseTextBlock.textProperty);\n },\n set: function (value) {\n this.setText(value);\n },\n enumerable: false,\n configurable: true\n });\n //#endregion\n BaseTextBlock.prototype.getFontSize = function (fontType) {\n switch (this.effectiveSize) {\n case Enums.TextSize.Small:\n return fontType.fontSizes.small;\n case Enums.TextSize.Medium:\n return fontType.fontSizes.medium;\n case Enums.TextSize.Large:\n return fontType.fontSizes.large;\n case Enums.TextSize.ExtraLarge:\n return fontType.fontSizes.extraLarge;\n default:\n return fontType.fontSizes.default;\n }\n };\n BaseTextBlock.prototype.getColorDefinition = function (colorSet, color) {\n switch (color) {\n case Enums.TextColor.Accent:\n return colorSet.accent;\n case Enums.TextColor.Dark:\n return colorSet.dark;\n case Enums.TextColor.Light:\n return colorSet.light;\n case Enums.TextColor.Good:\n return colorSet.good;\n case Enums.TextColor.Warning:\n return colorSet.warning;\n case Enums.TextColor.Attention:\n return colorSet.attention;\n default:\n return colorSet.default;\n }\n };\n BaseTextBlock.prototype.setText = function (value) {\n this.setValue(BaseTextBlock.textProperty, value);\n };\n BaseTextBlock.prototype.init = function (textDefinition) {\n this.size = textDefinition.size;\n this.weight = textDefinition.weight;\n this.color = textDefinition.color;\n this.isSubtle = textDefinition.isSubtle;\n };\n BaseTextBlock.prototype.asString = function () {\n return this.text;\n };\n BaseTextBlock.prototype.applyStylesTo = function (targetElement) {\n var fontType = this.hostConfig.getFontTypeDefinition(this.effectiveFontType);\n if (fontType.fontFamily) {\n targetElement.style.fontFamily = fontType.fontFamily;\n }\n var fontSize;\n switch (this.effectiveSize) {\n case Enums.TextSize.Small:\n fontSize = fontType.fontSizes.small;\n break;\n case Enums.TextSize.Medium:\n fontSize = fontType.fontSizes.medium;\n break;\n case Enums.TextSize.Large:\n fontSize = fontType.fontSizes.large;\n break;\n case Enums.TextSize.ExtraLarge:\n fontSize = fontType.fontSizes.extraLarge;\n break;\n default:\n fontSize = fontType.fontSizes.default;\n break;\n }\n targetElement.style.fontSize = fontSize + \"px\";\n var colorDefinition = this.getColorDefinition(this.getEffectiveStyleDefinition().foregroundColors, this.effectiveColor);\n var targetColor = Utils.stringToCssColor(this.effectiveIsSubtle ? colorDefinition.subtle : colorDefinition.default);\n if (targetColor) {\n targetElement.style.color = targetColor;\n }\n var fontWeight;\n switch (this.effectiveWeight) {\n case Enums.TextWeight.Lighter:\n fontWeight = fontType.fontWeights.lighter;\n break;\n case Enums.TextWeight.Bolder:\n fontWeight = fontType.fontWeights.bolder;\n break;\n default:\n fontWeight = fontType.fontWeights.default;\n break;\n }\n targetElement.style.fontWeight = fontWeight.toString();\n if (this.ariaHidden) {\n targetElement.setAttribute(\"aria-hidden\", \"true\");\n }\n };\n BaseTextBlock.prototype.getAllActions = function () {\n var result = _super.prototype.getAllActions.call(this);\n if (this.selectAction) {\n result.push(this.selectAction);\n }\n return result;\n };\n Object.defineProperty(BaseTextBlock.prototype, \"effectiveColor\", {\n get: function () {\n return this.color !== undefined ? this.color : this.getEffectiveTextStyleDefinition().color;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseTextBlock.prototype, \"effectiveFontType\", {\n get: function () {\n return this.fontType !== undefined\n ? this.fontType\n : this.getEffectiveTextStyleDefinition().fontType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseTextBlock.prototype, \"effectiveIsSubtle\", {\n get: function () {\n return this.isSubtle !== undefined\n ? this.isSubtle\n : this.getEffectiveTextStyleDefinition().isSubtle;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseTextBlock.prototype, \"effectiveSize\", {\n get: function () {\n return this.size !== undefined ? this.size : this.getEffectiveTextStyleDefinition().size;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseTextBlock.prototype, \"effectiveWeight\", {\n get: function () {\n return this.weight !== undefined\n ? this.weight\n : this.getEffectiveTextStyleDefinition().weight;\n },\n enumerable: false,\n configurable: true\n });\n //#region Schema\n BaseTextBlock.textProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"text\", true);\n BaseTextBlock.sizeProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_0, \"size\", Enums.TextSize);\n BaseTextBlock.weightProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_0, \"weight\", Enums.TextWeight);\n BaseTextBlock.colorProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_0, \"color\", Enums.TextColor);\n BaseTextBlock.isSubtleProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_0, \"isSubtle\");\n BaseTextBlock.fontTypeProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_2, \"fontType\", Enums.FontType);\n BaseTextBlock.selectActionProperty = new ActionProperty(serialization_1.Versions.v1_1, \"selectAction\", [\n \"Action.ShowCard\"\n ]);\n __decorate([\n (0, serialization_1.property)(BaseTextBlock.sizeProperty)\n ], BaseTextBlock.prototype, \"size\", void 0);\n __decorate([\n (0, serialization_1.property)(BaseTextBlock.weightProperty)\n ], BaseTextBlock.prototype, \"weight\", void 0);\n __decorate([\n (0, serialization_1.property)(BaseTextBlock.colorProperty)\n ], BaseTextBlock.prototype, \"color\", void 0);\n __decorate([\n (0, serialization_1.property)(BaseTextBlock.fontTypeProperty)\n ], BaseTextBlock.prototype, \"fontType\", void 0);\n __decorate([\n (0, serialization_1.property)(BaseTextBlock.isSubtleProperty)\n ], BaseTextBlock.prototype, \"isSubtle\", void 0);\n __decorate([\n (0, serialization_1.property)(BaseTextBlock.textProperty)\n ], BaseTextBlock.prototype, \"text\", null);\n __decorate([\n (0, serialization_1.property)(BaseTextBlock.selectActionProperty)\n ], BaseTextBlock.prototype, \"selectAction\", void 0);\n return BaseTextBlock;\n}(CardElement));\nexports.BaseTextBlock = BaseTextBlock;\nvar TextBlock = /** @class */ (function (_super) {\n __extends(TextBlock, _super);\n function TextBlock() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.wrap = false;\n _this._treatAsPlainText = true;\n _this.useMarkdown = true;\n return _this;\n }\n TextBlock.prototype.restoreOriginalContent = function () {\n var _a, _b;\n if (this.renderedElement !== undefined) {\n if (this.maxLines && this.maxLines > 0) {\n this.renderedElement.style.maxHeight =\n this._computedLineHeight * this.maxLines + \"px\";\n }\n var originalHtml = (_b = (_a = TextBlock._ttRoundtripPolicy) === null || _a === void 0 ? void 0 : _a.createHTML(this._originalInnerHtml)) !== null && _b !== void 0 ? _b : this._originalInnerHtml;\n this.renderedElement.innerHTML = originalHtml;\n }\n };\n TextBlock.prototype.truncateIfSupported = function (maxHeight) {\n if (this.renderedElement !== undefined) {\n // For now, only truncate TextBlocks that contain just a single\n // paragraph -- since the maxLines calculation doesn't take into\n // account Markdown lists\n var children = this.renderedElement.children;\n var isTextOnly = !children.length;\n var truncationSupported = isTextOnly ||\n (children.length === 1 && children[0].tagName.toLowerCase() === \"p\" && !children[0].children.length);\n if (truncationSupported) {\n var element = isTextOnly ? this.renderedElement : children[0];\n Utils.truncateText(element, maxHeight, this._computedLineHeight);\n return true;\n }\n }\n return false;\n };\n TextBlock.prototype.setText = function (value) {\n _super.prototype.setText.call(this, value);\n this._processedText = undefined;\n };\n TextBlock.prototype.internalRender = function () {\n var _this = this;\n var _a, _b;\n this._processedText = undefined;\n if (this.text) {\n var preProcessedText = this.preProcessPropertyValue(BaseTextBlock.textProperty);\n var hostConfig = this.hostConfig;\n var element = void 0;\n if (this.forElementId) {\n var labelElement = document.createElement(\"label\");\n labelElement.htmlFor = this.forElementId;\n element = labelElement;\n }\n else {\n element = document.createElement(\"div\");\n }\n element.classList.add(hostConfig.makeCssClassName(\"ac-textBlock\"));\n element.style.overflow = \"hidden\";\n this.applyStylesTo(element);\n if (this.style === \"heading\") {\n element.setAttribute(\"role\", \"heading\");\n var headingLevel = this.hostConfig.textBlock.headingLevel;\n if (headingLevel !== undefined && headingLevel > 0) {\n element.setAttribute(\"aria-level\", headingLevel.toString());\n }\n }\n if (this.selectAction && hostConfig.supportsInteractivity) {\n element.onclick = function (e) {\n if (_this.selectAction && _this.selectAction.isEffectivelyEnabled()) {\n e.preventDefault();\n e.cancelBubble = true;\n _this.selectAction.execute();\n }\n };\n this.selectAction.setupElementForAccessibility(element);\n if (this.selectAction.isEffectivelyEnabled()) {\n element.classList.add(hostConfig.makeCssClassName(\"ac-selectable\"));\n }\n }\n if (!this._processedText) {\n this._treatAsPlainText = true;\n var formattedText = TextFormatters.formatText(this.lang, preProcessedText);\n if (this.useMarkdown && formattedText) {\n if (shared_1.GlobalSettings.allowMarkForTextHighlighting) {\n formattedText = formattedText\n .replace(/<mark>/g, \"===\")\n .replace(/<\\/mark>/g, \"/==/\");\n }\n var markdownProcessingResult = AdaptiveCard.applyMarkdown(formattedText);\n if (markdownProcessingResult.didProcess &&\n markdownProcessingResult.outputHtml) {\n this._processedText = markdownProcessingResult.outputHtml;\n this._treatAsPlainText = false;\n // Only process <mark> tag if markdown processing was applied because\n // markdown processing is also responsible for sanitizing the input string\n if (shared_1.GlobalSettings.allowMarkForTextHighlighting && this._processedText) {\n var markStyle = \"\";\n var effectiveStyle = this.getEffectiveStyleDefinition();\n if (effectiveStyle.highlightBackgroundColor) {\n markStyle +=\n \"background-color: \" +\n effectiveStyle.highlightBackgroundColor +\n \";\";\n }\n if (effectiveStyle.highlightForegroundColor) {\n markStyle +=\n \"color: \" + effectiveStyle.highlightForegroundColor + \";\";\n }\n if (markStyle) {\n markStyle = 'style=\"' + markStyle + '\"';\n }\n this._processedText = this._processedText\n .replace(/===/g, \"<mark \" + markStyle + \">\")\n .replace(/\\/==\\//g, \"</mark>\");\n }\n }\n else {\n this._processedText = formattedText;\n this._treatAsPlainText = true;\n }\n }\n else {\n this._processedText = formattedText;\n this._treatAsPlainText = true;\n }\n }\n if (!this._processedText) {\n this._processedText = \"\";\n }\n if (this._treatAsPlainText) {\n element.innerText = this._processedText;\n }\n else {\n var processedHtml = (_b = (_a = TextBlock._ttMarkdownPolicy) === null || _a === void 0 ? void 0 : _a.createHTML(this._processedText)) !== null && _b !== void 0 ? _b : this._processedText;\n element.innerHTML = processedHtml;\n }\n if (element.firstElementChild instanceof HTMLElement) {\n var firstElementChild = element.firstElementChild;\n firstElementChild.style.marginTop = \"0px\";\n firstElementChild.style.width = \"100%\";\n if (!this.wrap) {\n firstElementChild.style.overflow = \"hidden\";\n firstElementChild.style.textOverflow = \"ellipsis\";\n }\n }\n if (element.lastElementChild instanceof HTMLElement) {\n element.lastElementChild.style.marginBottom = \"0px\";\n }\n var anchors = element.getElementsByTagName(\"a\");\n var _loop_1 = function (anchor) {\n anchor.classList.add(hostConfig.makeCssClassName(\"ac-anchor\"));\n anchor.target = \"_blank\";\n anchor.onclick = function (e) {\n if (raiseAnchorClickedEvent(_this, anchor, e)) {\n e.preventDefault();\n e.cancelBubble = true;\n }\n };\n anchor.oncontextmenu = function (e) {\n if (raiseAnchorClickedEvent(_this, anchor, e)) {\n e.preventDefault();\n e.cancelBubble = true;\n return false;\n }\n return true;\n };\n };\n for (var _i = 0, _c = Array.from(anchors); _i < _c.length; _i++) {\n var anchor = _c[_i];\n _loop_1(anchor);\n }\n if (this.wrap) {\n element.style.wordWrap = \"break-word\";\n if (this.maxLines && this.maxLines > 0) {\n element.style.overflow = \"hidden\";\n if (Utils.isInternetExplorer() || !shared_1.GlobalSettings.useWebkitLineClamp) {\n element.style.maxHeight = this._computedLineHeight * this.maxLines + \"px\";\n }\n else {\n // While non standard, --webkit-line-clamp works in every browser (except IE)\n // and is a great solution to support the maxLines feature with ellipsis\n // truncation. With --webkit-line-clamp there is need to use explicit line heights\n element.style.removeProperty(\"line-height\");\n element.style.display = \"-webkit-box\";\n element.style.webkitBoxOrient = \"vertical\";\n element.style.webkitLineClamp = this.maxLines.toString();\n }\n }\n }\n else {\n element.style.whiteSpace = \"nowrap\";\n element.style.textOverflow = \"ellipsis\";\n }\n if (shared_1.GlobalSettings.useAdvancedTextBlockTruncation ||\n shared_1.GlobalSettings.useAdvancedCardBottomTruncation) {\n this._originalInnerHtml = element.innerHTML;\n }\n return element;\n }\n else {\n return undefined;\n }\n };\n TextBlock.prototype.truncateOverflow = function (maxHeight) {\n if (maxHeight >= this._computedLineHeight) {\n return this.truncateIfSupported(maxHeight);\n }\n return false;\n };\n TextBlock.prototype.undoOverflowTruncation = function () {\n this.restoreOriginalContent();\n if (shared_1.GlobalSettings.useAdvancedTextBlockTruncation && this.maxLines) {\n var maxHeight = this._computedLineHeight * this.maxLines;\n this.truncateIfSupported(maxHeight);\n }\n };\n TextBlock.prototype.applyStylesTo = function (targetElement) {\n _super.prototype.applyStylesTo.call(this, targetElement);\n switch (this.getEffectiveHorizontalAlignment()) {\n case Enums.HorizontalAlignment.Center:\n targetElement.style.textAlign = \"center\";\n break;\n case Enums.HorizontalAlignment.Right:\n targetElement.style.textAlign = \"end\";\n break;\n default:\n targetElement.style.textAlign = \"start\";\n break;\n }\n var lineHeights = this.hostConfig.lineHeights;\n if (lineHeights) {\n switch (this.effectiveSize) {\n case Enums.TextSize.Small:\n this._computedLineHeight = lineHeights.small;\n break;\n case Enums.TextSize.Medium:\n this._computedLineHeight = lineHeights.medium;\n break;\n case Enums.TextSize.Large:\n this._computedLineHeight = lineHeights.large;\n break;\n case Enums.TextSize.ExtraLarge:\n this._computedLineHeight = lineHeights.extraLarge;\n break;\n default:\n this._computedLineHeight = lineHeights.default;\n break;\n }\n }\n else {\n // Looks like 1.33 is the magic number to compute line-height\n // from font size.\n this._computedLineHeight =\n this.getFontSize(this.hostConfig.getFontTypeDefinition(this.effectiveFontType)) *\n 1.33;\n }\n targetElement.style.lineHeight = this._computedLineHeight + \"px\";\n };\n TextBlock.prototype.getJsonTypeName = function () {\n return \"TextBlock\";\n };\n TextBlock.prototype.getEffectiveTextStyleDefinition = function () {\n if (this.style) {\n return this.hostConfig.textStyles.getStyleByName(this.style);\n }\n return _super.prototype.getEffectiveTextStyleDefinition.call(this);\n };\n TextBlock.prototype.updateLayout = function (processChildren) {\n if (processChildren === void 0) { processChildren = false; }\n _super.prototype.updateLayout.call(this, processChildren);\n if (shared_1.GlobalSettings.useAdvancedTextBlockTruncation && this.maxLines && this.isDisplayed()) {\n // Reset the element's innerHTML in case the available room for\n // content has increased\n this.restoreOriginalContent();\n this.truncateIfSupported(this._computedLineHeight * this.maxLines);\n }\n };\n var _a, _b;\n TextBlock.wrapProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_0, \"wrap\", false);\n TextBlock.maxLinesProperty = new serialization_1.NumProperty(serialization_1.Versions.v1_0, \"maxLines\");\n TextBlock.styleProperty = new serialization_1.ValueSetProperty(serialization_1.Versions.v1_5, \"style\", [\n { value: \"default\" },\n { value: \"columnHeader\" },\n { value: \"heading\" }\n ]);\n // Markdown processing is handled outside of Adaptive Cards. It's up to the host to ensure that markdown is safely\n // processed.\n TextBlock._ttMarkdownPolicy = (typeof window === 'undefined') ? undefined : (_a = window.trustedTypes) === null || _a === void 0 ? void 0 : _a.createPolicy(\"adaptivecards#markdownPassthroughPolicy\", { createHTML: function (value) { return value; } });\n // When \"advanced\" truncation is enabled (see GlobalSettings.useAdvancedCardBottomTruncation and\n // GlobalSettings.useAdvancedTextBlockTruncation), we store the original pre-truncation content in\n // _originalInnerHtml so that we can restore/recalculate truncation later if space availability has changed (see\n // TextBlock.restoreOriginalContent())\n TextBlock._ttRoundtripPolicy = (typeof window === 'undefined') ? undefined : (_b = window.trustedTypes) === null || _b === void 0 ? void 0 : _b.createPolicy(\"adaptivecards#restoreContentsPolicy\", { createHTML: function (value) { return value; } });\n __decorate([\n (0, serialization_1.property)(TextBlock.wrapProperty)\n ], TextBlock.prototype, \"wrap\", void 0);\n __decorate([\n (0, serialization_1.property)(TextBlock.maxLinesProperty)\n ], TextBlock.prototype, \"maxLines\", void 0);\n __decorate([\n (0, serialization_1.property)(TextBlock.styleProperty)\n ], TextBlock.prototype, \"style\", void 0);\n return TextBlock;\n}(BaseTextBlock));\nexports.TextBlock = TextBlock;\nvar TextRun = /** @class */ (function (_super) {\n __extends(TextRun, _super);\n function TextRun() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.italic = false;\n _this.strikethrough = false;\n _this.highlight = false;\n _this.underline = false;\n return _this;\n }\n TextRun.prototype.populateSchema = function (schema) {\n _super.prototype.populateSchema.call(this, schema);\n schema.add(BaseTextBlock.selectActionProperty);\n };\n //#endregion\n TextRun.prototype.internalRender = function () {\n var _this = this;\n if (this.text) {\n var preProcessedText = this.preProcessPropertyValue(BaseTextBlock.textProperty);\n var hostConfig = this.hostConfig;\n var formattedText = TextFormatters.formatText(this.lang, preProcessedText);\n if (!formattedText) {\n formattedText = \"\";\n }\n var element = document.createElement(\"span\");\n element.classList.add(hostConfig.makeCssClassName(\"ac-textRun\"));\n this.applyStylesTo(element);\n if (this.selectAction && hostConfig.supportsInteractivity) {\n var anchor = document.createElement(\"a\");\n anchor.classList.add(hostConfig.makeCssClassName(\"ac-anchor\"));\n var href = this.selectAction.getHref();\n anchor.href = href ? href : \"\";\n anchor.target = \"_blank\";\n anchor.onclick = function (e) {\n if (_this.selectAction && _this.selectAction.isEffectivelyEnabled()) {\n e.preventDefault();\n e.cancelBubble = true;\n _this.selectAction.execute();\n }\n };\n this.selectAction.setupElementForAccessibility(anchor);\n anchor.innerText = formattedText;\n element.appendChild(anchor);\n }\n else {\n element.innerText = formattedText;\n }\n return element;\n }\n else {\n return undefined;\n }\n };\n TextRun.prototype.applyStylesTo = function (targetElement) {\n _super.prototype.applyStylesTo.call(this, targetElement);\n if (this.italic) {\n targetElement.style.fontStyle = \"italic\";\n }\n if (this.strikethrough) {\n targetElement.style.textDecoration = \"line-through\";\n }\n if (this.highlight) {\n var colorDefinition = this.getColorDefinition(this.getEffectiveStyleDefinition().foregroundColors, this.effectiveColor);\n var backgroundColor = Utils.stringToCssColor(this.effectiveIsSubtle\n ? colorDefinition.highlightColors.subtle\n : colorDefinition.highlightColors.default);\n if (backgroundColor) {\n targetElement.style.backgroundColor = backgroundColor;\n }\n }\n if (this.underline) {\n targetElement.style.textDecoration = \"underline\";\n }\n };\n TextRun.prototype.getJsonTypeName = function () {\n return \"TextRun\";\n };\n Object.defineProperty(TextRun.prototype, \"isStandalone\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextRun.prototype, \"isInline\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n TextRun.italicProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_2, \"italic\", false);\n TextRun.strikethroughProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_2, \"strikethrough\", false);\n TextRun.highlightProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_2, \"highlight\", false);\n TextRun.underlineProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_3, \"underline\", false);\n __decorate([\n (0, serialization_1.property)(TextRun.italicProperty)\n ], TextRun.prototype, \"italic\", void 0);\n __decorate([\n (0, serialization_1.property)(TextRun.strikethroughProperty)\n ], TextRun.prototype, \"strikethrough\", void 0);\n __decorate([\n (0, serialization_1.property)(TextRun.highlightProperty)\n ], TextRun.prototype, \"highlight\", void 0);\n __decorate([\n (0, serialization_1.property)(TextRun.underlineProperty)\n ], TextRun.prototype, \"underline\", void 0);\n return TextRun;\n}(BaseTextBlock));\nexports.TextRun = TextRun;\nvar RichTextBlock = /** @class */ (function (_super) {\n __extends(RichTextBlock, _super);\n function RichTextBlock() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._inlines = [];\n return _this;\n }\n RichTextBlock.prototype.internalAddInline = function (inline, forceAdd) {\n if (forceAdd === void 0) { forceAdd = false; }\n if (!inline.isInline) {\n throw new Error(strings_1.Strings.errors.elementCannotBeUsedAsInline());\n }\n var doAdd = inline.parent === undefined || forceAdd;\n if (!doAdd && inline.parent !== this) {\n throw new Error(strings_1.Strings.errors.inlineAlreadyParented());\n }\n else {\n inline.setParent(this);\n this._inlines.push(inline);\n }\n };\n RichTextBlock.prototype.internalParse = function (source, context) {\n _super.prototype.internalParse.call(this, source, context);\n this._inlines = [];\n if (Array.isArray(source[\"inlines\"])) {\n for (var _i = 0, _a = source[\"inlines\"]; _i < _a.length; _i++) {\n var jsonInline = _a[_i];\n var inline = void 0;\n if (typeof jsonInline === \"string\") {\n var textRun = new TextRun();\n textRun.text = jsonInline;\n inline = textRun;\n }\n else {\n // No fallback for inlines in 1.2\n inline = context.parseElement(this, jsonInline, [], false);\n }\n if (inline) {\n this.internalAddInline(inline, true);\n }\n }\n }\n };\n RichTextBlock.prototype.internalToJSON = function (target, context) {\n _super.prototype.internalToJSON.call(this, target, context);\n if (this._inlines.length > 0) {\n var jsonInlines = [];\n for (var _i = 0, _a = this._inlines; _i < _a.length; _i++) {\n var inline = _a[_i];\n jsonInlines.push(inline.toJSON(context));\n }\n context.serializeValue(target, \"inlines\", jsonInlines);\n }\n };\n RichTextBlock.prototype.internalRender = function () {\n if (this._inlines.length > 0) {\n var element = void 0;\n if (this.forElementId) {\n var labelElement = document.createElement(\"label\");\n labelElement.htmlFor = this.forElementId;\n element = labelElement;\n }\n else {\n element = document.createElement(\"div\");\n }\n element.className = this.hostConfig.makeCssClassName(\"ac-richTextBlock\");\n switch (this.getEffectiveHorizontalAlignment()) {\n case Enums.HorizontalAlignment.Center:\n element.style.textAlign = \"center\";\n break;\n case Enums.HorizontalAlignment.Right:\n element.style.textAlign = \"end\";\n break;\n default:\n element.style.textAlign = \"start\";\n break;\n }\n var renderedInlines = 0;\n for (var _i = 0, _a = this._inlines; _i < _a.length; _i++) {\n var inline = _a[_i];\n var renderedInline = inline.render();\n if (renderedInline) {\n element.appendChild(renderedInline);\n renderedInlines++;\n }\n }\n if (renderedInlines > 0) {\n return element;\n }\n }\n return undefined;\n };\n RichTextBlock.prototype.asString = function () {\n var result = \"\";\n for (var _i = 0, _a = this._inlines; _i < _a.length; _i++) {\n var inline = _a[_i];\n result += inline.asString();\n }\n return result;\n };\n RichTextBlock.prototype.getJsonTypeName = function () {\n return \"RichTextBlock\";\n };\n RichTextBlock.prototype.getInlineCount = function () {\n return this._inlines.length;\n };\n RichTextBlock.prototype.getInlineAt = function (index) {\n if (index >= 0 && index < this._inlines.length) {\n return this._inlines[index];\n }\n else {\n throw new Error(strings_1.Strings.errors.indexOutOfRange(index));\n }\n };\n RichTextBlock.prototype.addInline = function (inline) {\n if (typeof inline === \"string\") {\n this.internalAddInline(new TextRun(inline));\n }\n else {\n this.internalAddInline(inline);\n }\n };\n RichTextBlock.prototype.removeInline = function (inline) {\n var index = this._inlines.indexOf(inline);\n if (index >= 0) {\n this._inlines[index].setParent(undefined);\n this._inlines.splice(index, 1);\n return true;\n }\n return false;\n };\n return RichTextBlock;\n}(CardElement));\nexports.RichTextBlock = RichTextBlock;\nvar Fact = /** @class */ (function (_super) {\n __extends(Fact, _super);\n function Fact(name, value) {\n var _this = _super.call(this) || this;\n _this.name = name;\n _this.value = value;\n return _this;\n }\n //#endregion\n Fact.prototype.getSchemaKey = function () {\n return \"Fact\";\n };\n //#region Schema\n Fact.titleProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"title\");\n Fact.valueProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"value\");\n __decorate([\n (0, serialization_1.property)(Fact.titleProperty)\n ], Fact.prototype, \"name\", void 0);\n __decorate([\n (0, serialization_1.property)(Fact.valueProperty)\n ], Fact.prototype, \"value\", void 0);\n return Fact;\n}(serialization_1.SerializableObject));\nexports.Fact = Fact;\nvar FactSet = /** @class */ (function (_super) {\n __extends(FactSet, _super);\n function FactSet() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(FactSet.prototype, \"useDefaultSizing\", {\n //#endregion\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n FactSet.prototype.internalRender = function () {\n var element = undefined;\n var hostConfig = this.hostConfig;\n if (this.facts.length > 0) {\n element = document.createElement(\"table\");\n element.style.borderWidth = \"0px\";\n element.style.borderSpacing = \"0px\";\n element.style.borderStyle = \"none\";\n element.style.borderCollapse = \"collapse\";\n element.style.display = \"block\";\n element.style.overflow = \"hidden\";\n element.classList.add(hostConfig.makeCssClassName(\"ac-factset\"));\n element.setAttribute(\"role\", \"presentation\");\n for (var i = 0; i < this.facts.length; i++) {\n var trElement = document.createElement(\"tr\");\n if (i > 0) {\n trElement.style.marginTop = hostConfig.factSet.spacing + \"px\";\n }\n // Title column\n var tdElement = document.createElement(\"td\");\n tdElement.style.padding = \"0\";\n tdElement.classList.add(hostConfig.makeCssClassName(\"ac-fact-title\"));\n if (hostConfig.factSet.title.maxWidth) {\n tdElement.style.maxWidth = hostConfig.factSet.title.maxWidth + \"px\";\n }\n tdElement.style.verticalAlign = \"top\";\n var textBlock = new TextBlock();\n textBlock.setParent(this);\n textBlock.text =\n !this.facts[i].name && this.isDesignMode() ? \"Title\" : this.facts[i].name;\n textBlock.size = hostConfig.factSet.title.size;\n textBlock.color = hostConfig.factSet.title.color;\n textBlock.isSubtle = hostConfig.factSet.title.isSubtle;\n textBlock.weight = hostConfig.factSet.title.weight;\n textBlock.wrap = hostConfig.factSet.title.wrap;\n textBlock.spacing = Enums.Spacing.None;\n Utils.appendChild(tdElement, textBlock.render());\n Utils.appendChild(trElement, tdElement);\n // Spacer column\n tdElement = document.createElement(\"td\");\n tdElement.style.width = \"10px\";\n Utils.appendChild(trElement, tdElement);\n // Value column\n tdElement = document.createElement(\"td\");\n tdElement.style.padding = \"0\";\n tdElement.style.verticalAlign = \"top\";\n tdElement.classList.add(hostConfig.makeCssClassName(\"ac-fact-value\"));\n textBlock = new TextBlock();\n textBlock.setParent(this);\n textBlock.text = this.facts[i].value;\n textBlock.size = hostConfig.factSet.value.size;\n textBlock.color = hostConfig.factSet.value.color;\n textBlock.isSubtle = hostConfig.factSet.value.isSubtle;\n textBlock.weight = hostConfig.factSet.value.weight;\n textBlock.wrap = hostConfig.factSet.value.wrap;\n textBlock.spacing = Enums.Spacing.None;\n Utils.appendChild(tdElement, textBlock.render());\n Utils.appendChild(trElement, tdElement);\n Utils.appendChild(element, trElement);\n }\n }\n return element;\n };\n FactSet.prototype.getJsonTypeName = function () {\n return \"FactSet\";\n };\n //#region Schema\n FactSet.factsProperty = new serialization_1.SerializableObjectCollectionProperty(serialization_1.Versions.v1_0, \"facts\", Fact);\n __decorate([\n (0, serialization_1.property)(FactSet.factsProperty)\n ], FactSet.prototype, \"facts\", void 0);\n return FactSet;\n}(CardElement));\nexports.FactSet = FactSet;\nvar ImageDimensionProperty = /** @class */ (function (_super) {\n __extends(ImageDimensionProperty, _super);\n function ImageDimensionProperty(targetVersion, name, internalName, fallbackProperty) {\n var _this = _super.call(this, targetVersion, name) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.internalName = internalName;\n _this.fallbackProperty = fallbackProperty;\n return _this;\n }\n ImageDimensionProperty.prototype.getInternalName = function () {\n return this.internalName;\n };\n ImageDimensionProperty.prototype.parse = function (sender, source, context) {\n var result = undefined;\n var sourceValue = source[this.name];\n if (sourceValue === undefined) {\n return this.defaultValue;\n }\n var isValid = false;\n if (typeof sourceValue === \"string\") {\n try {\n var size = shared_1.SizeAndUnit.parse(sourceValue, true);\n if (size.unit === Enums.SizeUnit.Pixel) {\n result = size.physicalSize;\n isValid = true;\n }\n }\n catch (_a) {\n // Swallow the exception\n }\n // If the source value isn't valid per this property definition,\n // check its validity per the fallback property, if specified\n if (!isValid && this.fallbackProperty) {\n isValid = this.fallbackProperty.isValidValue(sourceValue, context);\n }\n }\n if (!isValid) {\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidPropertyValue(sourceValue, this.name));\n }\n return result;\n };\n ImageDimensionProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeValue(target, this.name, typeof value === \"number\" && !isNaN(value) ? value + \"px\" : undefined);\n };\n return ImageDimensionProperty;\n}(serialization_1.PropertyDefinition));\nvar Image = /** @class */ (function (_super) {\n __extends(Image, _super);\n function Image() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.size = Enums.Size.Auto;\n _this.style = Enums.ImageStyle.Default;\n return _this;\n }\n Image.prototype.populateSchema = function (schema) {\n _super.prototype.populateSchema.call(this, schema);\n schema.remove(CardElement.heightProperty);\n };\n //#endregion\n Image.prototype.applySize = function (element) {\n if (this.pixelWidth || this.pixelHeight) {\n if (this.pixelWidth) {\n element.style.width = this.pixelWidth + \"px\";\n }\n if (this.pixelHeight) {\n element.style.height = this.pixelHeight + \"px\";\n }\n }\n else {\n if (this.maxHeight) {\n // If the image is constrained in height, we set its height property and\n // auto and stretch are ignored (default to medium). THis is necessary for\n // ImageSet which uses a maximum image height as opposed to the cards width\n // as a constraining dimension\n switch (this.size) {\n case Enums.Size.Small:\n element.style.height = this.hostConfig.imageSizes.small + \"px\";\n break;\n case Enums.Size.Large:\n element.style.height = this.hostConfig.imageSizes.large + \"px\";\n break;\n default:\n element.style.height = this.hostConfig.imageSizes.medium + \"px\";\n break;\n }\n element.style.maxHeight = this.maxHeight + \"px\";\n }\n else {\n switch (this.size) {\n case Enums.Size.Stretch:\n element.style.width = \"100%\";\n break;\n case Enums.Size.Auto:\n element.style.maxWidth = \"100%\";\n break;\n case Enums.Size.Small:\n element.style.width = this.hostConfig.imageSizes.small + \"px\";\n break;\n case Enums.Size.Large:\n element.style.width = this.hostConfig.imageSizes.large + \"px\";\n break;\n case Enums.Size.Medium:\n element.style.width = this.hostConfig.imageSizes.medium + \"px\";\n break;\n }\n element.style.maxHeight = \"100%\";\n }\n }\n };\n Object.defineProperty(Image.prototype, \"useDefaultSizing\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Image.prototype.internalRender = function () {\n var _this = this;\n var element = undefined;\n if (this.url) {\n element = document.createElement(\"div\");\n element.style.display = \"flex\";\n element.style.alignItems = \"flex-start\";\n // Cache hostConfig to avoid walking the parent hierarchy multiple times\n var hostConfig = this.hostConfig;\n switch (this.getEffectiveHorizontalAlignment()) {\n case Enums.HorizontalAlignment.Center:\n element.style.justifyContent = \"center\";\n break;\n case Enums.HorizontalAlignment.Right:\n element.style.justifyContent = \"flex-end\";\n break;\n default:\n element.style.justifyContent = \"flex-start\";\n break;\n }\n var imageElement = document.createElement(\"img\");\n this.renderedImageElement = imageElement;\n imageElement.onload = function (_e) {\n raiseImageLoadedEvent(_this);\n };\n imageElement.onerror = function (_e) {\n if (_this.renderedElement) {\n var card = _this.getRootElement();\n clearElement(_this.renderedElement);\n if (card && card.designMode) {\n var errorElement = document.createElement(\"div\");\n errorElement.style.display = \"flex\";\n errorElement.style.alignItems = \"center\";\n errorElement.style.justifyContent = \"center\";\n errorElement.style.backgroundColor = \"#EEEEEE\";\n errorElement.style.color = \"black\";\n errorElement.innerText = \":-(\";\n errorElement.style.padding = \"10px\";\n _this.applySize(errorElement);\n _this.renderedElement.appendChild(errorElement);\n }\n }\n raiseImageLoadedEvent(_this);\n };\n imageElement.style.minWidth = \"0\";\n imageElement.classList.add(hostConfig.makeCssClassName(\"ac-image\"));\n if (this.selectAction && hostConfig.supportsInteractivity) {\n imageElement.onkeypress = function (e) {\n if (_this.selectAction &&\n _this.selectAction.isEffectivelyEnabled() &&\n (e.code === \"Enter\" || e.code === \"Space\")) {\n // enter or space pressed\n e.preventDefault();\n e.cancelBubble = true;\n _this.selectAction.execute();\n }\n };\n imageElement.onclick = function (e) {\n if (_this.selectAction && _this.selectAction.isEffectivelyEnabled()) {\n e.preventDefault();\n e.cancelBubble = true;\n _this.selectAction.execute();\n }\n };\n this.selectAction.setupElementForAccessibility(imageElement);\n if (this.selectAction.isEffectivelyEnabled()) {\n imageElement.classList.add(hostConfig.makeCssClassName(\"ac-selectable\"));\n }\n }\n this.applySize(imageElement);\n if (this.style === Enums.ImageStyle.Person) {\n imageElement.style.borderRadius = \"50%\";\n imageElement.style.backgroundPosition = \"50% 50%\";\n imageElement.style.backgroundRepeat = \"no-repeat\";\n }\n var backgroundColor = Utils.stringToCssColor(this.backgroundColor);\n if (backgroundColor) {\n imageElement.style.backgroundColor = backgroundColor;\n }\n this.setImageSource(imageElement);\n var altTextProperty = this.preProcessPropertyValue(Image.altTextProperty);\n if (altTextProperty) {\n imageElement.alt = altTextProperty;\n }\n element.appendChild(imageElement);\n }\n return element;\n };\n Image.prototype.getJsonTypeName = function () {\n return \"Image\";\n };\n Image.prototype.getAllActions = function () {\n var result = _super.prototype.getAllActions.call(this);\n if (this.selectAction) {\n result.push(this.selectAction);\n }\n return result;\n };\n Image.prototype.getActionById = function (id) {\n var result = _super.prototype.getActionById.call(this, id);\n if (!result && this.selectAction) {\n result = this.selectAction.getActionById(id);\n }\n return result;\n };\n Image.prototype.getResourceInformation = function () {\n return this.url ? [{ url: this.url, mimeType: \"image\" }] : [];\n };\n Image.prototype.setImageSource = function (imageElement) {\n var imageForceLoader = new ImageForceLoader(this.forceLoad, this.url);\n imageForceLoader.configureImage(this);\n imageElement.src = this.preProcessPropertyValue(Image.urlProperty);\n imageForceLoader.resetImage(this);\n };\n Image.urlProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"url\");\n Image.altTextProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"altText\");\n Image.backgroundColorProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_1, \"backgroundColor\");\n Image.styleProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_0, \"style\", Enums.ImageStyle, Enums.ImageStyle.Default);\n Image.sizeProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_0, \"size\", Enums.Size, Enums.Size.Auto);\n Image.pixelWidthProperty = new ImageDimensionProperty(serialization_1.Versions.v1_1, \"width\", \"pixelWidth\");\n Image.pixelHeightProperty = new ImageDimensionProperty(serialization_1.Versions.v1_1, \"height\", \"pixelHeight\", CardElement.heightProperty);\n Image.selectActionProperty = new ActionProperty(serialization_1.Versions.v1_1, \"selectAction\", [\n \"Action.ShowCard\"\n ]);\n Image.shouldForceLoadProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_6, \"forceLoad\", false);\n __decorate([\n (0, serialization_1.property)(Image.urlProperty)\n ], Image.prototype, \"url\", void 0);\n __decorate([\n (0, serialization_1.property)(Image.altTextProperty)\n ], Image.prototype, \"altText\", void 0);\n __decorate([\n (0, serialization_1.property)(Image.backgroundColorProperty)\n ], Image.prototype, \"backgroundColor\", void 0);\n __decorate([\n (0, serialization_1.property)(Image.sizeProperty)\n ], Image.prototype, \"size\", void 0);\n __decorate([\n (0, serialization_1.property)(Image.styleProperty)\n ], Image.prototype, \"style\", void 0);\n __decorate([\n (0, serialization_1.property)(Image.pixelWidthProperty)\n ], Image.prototype, \"pixelWidth\", void 0);\n __decorate([\n (0, serialization_1.property)(Image.pixelHeightProperty)\n ], Image.prototype, \"pixelHeight\", void 0);\n __decorate([\n (0, serialization_1.property)(Image.selectActionProperty)\n ], Image.prototype, \"selectAction\", void 0);\n __decorate([\n (0, serialization_1.property)(Image.shouldForceLoadProperty)\n ], Image.prototype, \"forceLoad\", void 0);\n return Image;\n}(CardElement));\nexports.Image = Image;\n// configures Image element to fetch a new image data from url source instead of relying on cache\n// currently rudimentary refreshing scheme is used\n// by attaching unique query string to url, we bypass the cache usage\nvar ImageForceLoader = /** @class */ (function () {\n function ImageForceLoader(doForceLoad, url) {\n this.doForceLoad = doForceLoad;\n this.url = url;\n if (url && url.length && doForceLoad) {\n // we can do better by appending unique key such as uuid instead of epoch\n // however the current usage is for front-end ui and networking, \n // since ui is running in single main thread, this is sufficient mechanism\n // without needing to depend on external library for our small use cases.\n this.uniqueHash = '?' + Date.now();\n this.urlWithForceLoadOption = url + this.uniqueHash;\n }\n }\n ImageForceLoader.prototype.configureImage = function (image) {\n if (this.urlWithForceLoadOption && this.urlWithForceLoadOption.length) {\n image.url = this.urlWithForceLoadOption;\n }\n };\n ImageForceLoader.prototype.resetImage = function (image) {\n image.url = this.url;\n };\n return ImageForceLoader;\n}());\nvar CardElementContainer = /** @class */ (function (_super) {\n __extends(CardElementContainer, _super);\n function CardElementContainer() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.allowVerticalOverflow = false;\n return _this;\n }\n CardElementContainer.prototype.populateSchema = function (schema) {\n _super.prototype.populateSchema.call(this, schema);\n if (!this.isSelectable) {\n schema.remove(CardElementContainer.selectActionProperty);\n }\n };\n //#endregion\n CardElementContainer.prototype.isElementAllowed = function (element) {\n return this.hostConfig.supportsInteractivity || !element.isInteractive;\n };\n CardElementContainer.prototype.applyPadding = function () {\n _super.prototype.applyPadding.call(this);\n if (!this.renderedElement) {\n return;\n }\n var physicalPadding = new shared_1.SpacingDefinition();\n if (this.getEffectivePadding()) {\n physicalPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(this.getEffectivePadding());\n }\n this.renderedElement.style.paddingTop = physicalPadding.top + \"px\";\n this.renderedElement.style.paddingRight = physicalPadding.right + \"px\";\n this.renderedElement.style.paddingBottom = physicalPadding.bottom + \"px\";\n this.renderedElement.style.paddingLeft = physicalPadding.left + \"px\";\n this.renderedElement.style.marginRight = \"0\";\n this.renderedElement.style.marginLeft = \"0\";\n };\n Object.defineProperty(CardElementContainer.prototype, \"isSelectable\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n CardElementContainer.prototype.forbiddenChildElements = function () {\n return [];\n };\n CardElementContainer.prototype.releaseDOMResources = function () {\n _super.prototype.releaseDOMResources.call(this);\n for (var i = 0; i < this.getItemCount(); i++) {\n this.getItemAt(i).releaseDOMResources();\n }\n };\n CardElementContainer.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n for (var i = 0; i < this.getItemCount(); i++) {\n var item = this.getItemAt(i);\n if (!this.hostConfig.supportsInteractivity && item.isInteractive) {\n context.addFailure(this, Enums.ValidationEvent.InteractivityNotAllowed, strings_1.Strings.errors.interactivityNotAllowed());\n }\n if (!this.isElementAllowed(item)) {\n context.addFailure(this, Enums.ValidationEvent.InteractivityNotAllowed, strings_1.Strings.errors.elementTypeNotAllowed(item.getJsonTypeName()));\n }\n item.internalValidateProperties(context);\n }\n if (this._selectAction) {\n this._selectAction.internalValidateProperties(context);\n }\n };\n CardElementContainer.prototype.render = function () {\n var _this = this;\n var element = _super.prototype.render.call(this);\n if (element) {\n var hostConfig = this.hostConfig;\n if (this.allowVerticalOverflow) {\n element.style.overflowX = \"hidden\";\n element.style.overflowY = \"auto\";\n }\n if (element &&\n this.isSelectable &&\n this._selectAction &&\n hostConfig.supportsInteractivity) {\n element.onclick = function (e) {\n if (_this._selectAction && _this._selectAction.isEffectivelyEnabled()) {\n e.preventDefault();\n e.cancelBubble = true;\n _this._selectAction.execute();\n }\n };\n element.onkeypress = function (e) {\n if (_this._selectAction &&\n _this._selectAction.isEffectivelyEnabled() &&\n (e.code === \"Enter\" || e.code === \"Space\")) {\n // Enter or space pressed\n e.preventDefault();\n e.cancelBubble = true;\n _this._selectAction.execute();\n }\n };\n this._selectAction.setupElementForAccessibility(element);\n if (this._selectAction.isEffectivelyEnabled()) {\n element.classList.add(hostConfig.makeCssClassName(\"ac-selectable\"));\n }\n }\n }\n return element;\n };\n CardElementContainer.prototype.updateLayout = function (processChildren) {\n if (processChildren === void 0) { processChildren = true; }\n _super.prototype.updateLayout.call(this, processChildren);\n if (processChildren) {\n for (var i = 0; i < this.getItemCount(); i++) {\n this.getItemAt(i).updateLayout();\n }\n }\n };\n CardElementContainer.prototype.getAllInputs = function (processActions) {\n if (processActions === void 0) { processActions = true; }\n var result = [];\n for (var i = 0; i < this.getItemCount(); i++) {\n result.push.apply(result, this.getItemAt(i).getAllInputs(processActions));\n }\n return result;\n };\n CardElementContainer.prototype.getAllActions = function () {\n var result = _super.prototype.getAllActions.call(this);\n for (var i = 0; i < this.getItemCount(); i++) {\n result.push.apply(result, this.getItemAt(i).getAllActions());\n }\n if (this._selectAction) {\n result.push(this._selectAction);\n }\n return result;\n };\n CardElementContainer.prototype.getResourceInformation = function () {\n var result = [];\n for (var i = 0; i < this.getItemCount(); i++) {\n result.push.apply(result, this.getItemAt(i).getResourceInformation());\n }\n return result;\n };\n CardElementContainer.prototype.getElementById = function (id) {\n var result = _super.prototype.getElementById.call(this, id);\n if (!result) {\n for (var i = 0; i < this.getItemCount(); i++) {\n result = this.getItemAt(i).getElementById(id);\n if (result) {\n break;\n }\n }\n }\n return result;\n };\n /**\n * @inheritdoc\n */\n CardElementContainer.prototype.findDOMNodeOwner = function (node) {\n var _a;\n var target = undefined;\n for (var i = 0; i < this.getItemCount(); i++) {\n // recur through child elements\n target = this.getItemAt(i).findDOMNodeOwner(node);\n if (target) {\n return target;\n }\n }\n // If not found in children, check the actions\n for (var i = 0; i < this.getActionCount(); i++) {\n target = (_a = this.getActionAt(i)) === null || _a === void 0 ? void 0 : _a.findDOMNodeOwner(node);\n if (target) {\n return target;\n }\n }\n // if not found in children or actions, defer to parent implementation\n return _super.prototype.findDOMNodeOwner.call(this, node);\n };\n CardElementContainer.selectActionProperty = new ActionProperty(serialization_1.Versions.v1_1, \"selectAction\", [\n \"Action.ShowCard\"\n ]);\n __decorate([\n (0, serialization_1.property)(CardElementContainer.selectActionProperty)\n ], CardElementContainer.prototype, \"_selectAction\", void 0);\n return CardElementContainer;\n}(CardElement));\nexports.CardElementContainer = CardElementContainer;\nvar ImageSet = /** @class */ (function (_super) {\n __extends(ImageSet, _super);\n function ImageSet() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._images = [];\n _this.imageSize = Enums.ImageSize.Medium;\n _this.presentationStyle = Enums.ImageSetPresentationStyle.Default;\n _this.pixelOffset = 0;\n return _this;\n }\n //#endregion\n ImageSet.prototype.internalRender = function () {\n var element = undefined;\n if (this._images.length > 0) {\n element = document.createElement(\"div\");\n element.style.display = \"flex\";\n element.style.flexWrap = \"wrap\";\n for (var _i = 0, _a = this._images; _i < _a.length; _i++) {\n var image = _a[_i];\n switch (this.imageSize) {\n case Enums.ImageSize.Small:\n image.size = Enums.Size.Small;\n break;\n case Enums.ImageSize.Large:\n image.size = Enums.Size.Large;\n break;\n default:\n image.size = Enums.Size.Medium;\n break;\n }\n image.maxHeight = this.hostConfig.imageSet.maxImageHeight;\n var renderedImage = image.render();\n if (renderedImage) {\n renderedImage.style.display = \"inline-flex\";\n renderedImage.style.margin = \"0px\";\n if (this.presentationStyle == Enums.ImageSetPresentationStyle.Default) {\n renderedImage.style.marginRight = \"10px\";\n }\n Utils.appendChild(element, renderedImage);\n }\n }\n if (this.presentationStyle == Enums.ImageSetPresentationStyle.Stacked) {\n this.applyStackedPresentationStyle();\n }\n }\n return element;\n };\n ImageSet.prototype.applyStackedPresentationStyle = function () {\n if (this._images[0].renderedImageElement) {\n var dimension = StackedImageConfigurator.parseNumericPixelDimension(this._images[0].renderedImageElement.style.height);\n var bgColor = this.getEffectiveBackgroundColor();\n if (dimension) {\n var stackedImageConfigurator = new StackedImageConfigurator(this.pixelOffset, dimension, bgColor);\n stackedImageConfigurator.configureImagesArrayAsStackedLayout(this._images);\n }\n }\n };\n ImageSet.prototype.getEffectiveBackgroundColor = function () {\n var parentContainer = this.getParentContainer();\n var style = parentContainer === null || parentContainer === void 0 ? void 0 : parentContainer.getEffectiveStyle();\n var styleDefinition = this.hostConfig.containerStyles.getStyleByName(style, this.hostConfig.containerStyles.getStyleByName(this.defaultStyle));\n return Utils.stringToCssColor(styleDefinition.backgroundColor);\n };\n ImageSet.prototype.getItemCount = function () {\n return this._images.length;\n };\n ImageSet.prototype.getItemAt = function (index) {\n return this._images[index];\n };\n ImageSet.prototype.getFirstVisibleRenderedItem = function () {\n return this._images && this._images.length > 0 ? this._images[0] : undefined;\n };\n ImageSet.prototype.getLastVisibleRenderedItem = function () {\n return this._images && this._images.length > 0\n ? this._images[this._images.length - 1]\n : undefined;\n };\n ImageSet.prototype.removeItem = function (item) {\n if (item instanceof Image) {\n var itemIndex = this._images.indexOf(item);\n if (itemIndex >= 0) {\n this._images.splice(itemIndex, 1);\n item.setParent(undefined);\n this.updateLayout();\n return true;\n }\n }\n return false;\n };\n ImageSet.prototype.getJsonTypeName = function () {\n return \"ImageSet\";\n };\n ImageSet.prototype.addImage = function (image) {\n if (!image.parent) {\n this._images.push(image);\n image.setParent(this);\n }\n else {\n throw new Error(\"This image already belongs to another ImageSet\");\n }\n };\n ImageSet.prototype.indexOf = function (cardElement) {\n return cardElement instanceof Image ? this._images.indexOf(cardElement) : -1;\n };\n ImageSet.imagesProperty = new serialization_1.SerializableObjectCollectionProperty(serialization_1.Versions.v1_0, \"images\", Image, function (sender, item) {\n item.setParent(sender);\n });\n ImageSet.imageSizeProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_0, \"imageSize\", Enums.ImageSize, Enums.ImageSize.Medium);\n ImageSet.imagePresentationStyle = new serialization_1.EnumProperty(serialization_1.Versions.v1_6, \"style\", Enums.ImageSetPresentationStyle, Enums.ImageSetPresentationStyle.Default);\n ImageSet.pixelOffset = new serialization_1.NumProperty(serialization_1.Versions.v1_6, \"offset\", 0, undefined);\n __decorate([\n (0, serialization_1.property)(ImageSet.imagesProperty)\n ], ImageSet.prototype, \"_images\", void 0);\n __decorate([\n (0, serialization_1.property)(ImageSet.imageSizeProperty)\n ], ImageSet.prototype, \"imageSize\", void 0);\n __decorate([\n (0, serialization_1.property)(ImageSet.imagePresentationStyle)\n ], ImageSet.prototype, \"presentationStyle\", void 0);\n __decorate([\n (0, serialization_1.property)(ImageSet.pixelOffset)\n ], ImageSet.prototype, \"pixelOffset\", void 0);\n return ImageSet;\n}(CardElementContainer));\nexports.ImageSet = ImageSet;\nvar StackedImageConfigurator = /** @class */ (function () {\n function StackedImageConfigurator(offset, dimension, style) {\n this.sign45 = 0.7071;\n this.maxImageCounts = 2;\n this.offset = 0;\n this.normalizationConstant = 0;\n this.border = 5;\n this.dimension = 0;\n this.dimension = dimension;\n this.normalizationConstant = (dimension * this.sign45 - 0.5 * dimension) * 2;\n // offset determines how far images are placed from each other\n // at zero, images are separated only by the border\n // there is no restriction on how far they are apart in positive values, their actual\n // positioning is limited by maximum size imposed by Image renderer\n // a negative value can decrease upto the diameter of the image since a value less than the diameter\n // put the images past each other, and the use of such value is not reasonable request\n // users should change image positions in such case.\n this.offset = this.sign45 * (Math.max(offset, -dimension) - this.normalizationConstant);\n this.style = style ? style : \"\";\n }\n StackedImageConfigurator.prototype.moveImageRight = function (element) {\n element.style.marginLeft = this.offset + \"px\";\n };\n StackedImageConfigurator.prototype.moveImageUp = function (element) {\n element.style.marginBottom = this.offset + this.dimension + \"px\";\n };\n StackedImageConfigurator.prototype.moveImageDown = function (element) {\n element.style.marginTop = this.offset + this.dimension + \"px\";\n };\n StackedImageConfigurator.prototype.makeImageRound = function (element) {\n element.style.borderRadius = \"50%\";\n element.style.backgroundPosition = \"50% 50%\";\n element.style.backgroundRepeat = \"no-repeat\";\n };\n StackedImageConfigurator.prototype.applyBorder = function (element) {\n element.style.height = (this.dimension + this.border * 2) + \"px\";\n element.style.border = this.border + \"px\" + \" solid \" + this.style;\n };\n StackedImageConfigurator.prototype.configureImageForBottomLeft = function (element) {\n this.moveImageDown(element);\n this.makeImageRound(element);\n this.applyBorder(element);\n element.style.zIndex = \"2\";\n };\n StackedImageConfigurator.prototype.configureImageForTopRight = function (element) {\n this.moveImageUp(element);\n this.moveImageRight(element);\n this.makeImageRound(element);\n element.style.zIndex = \"1\";\n };\n // stacked layout is applied when there are two images in ImageSet,\n // first image in the ImageSet is put bottom left of ImageSet,\n // second image is placed top right diagonally to the first image at 45 angle\n // first image is placed over the second image should the overlap to occur.\n StackedImageConfigurator.prototype.configureImagesArrayAsStackedLayout = function (elements) {\n if (elements.length == 1) {\n if (elements[0].renderedImageElement) {\n this.makeImageRound(elements[0].renderedImageElement);\n }\n }\n else if (elements.length <= this.maxImageCounts) {\n if (elements[0].renderedImageElement && elements[1].renderedImageElement) {\n this.configureImageForBottomLeft(elements[0].renderedImageElement);\n this.configureImageForTopRight(elements[1].renderedImageElement);\n }\n }\n };\n StackedImageConfigurator.parseNumericPixelDimension = function (dimension) {\n if ((dimension === null || dimension === void 0 ? void 0 : dimension.substring(dimension.length - 2)) == 'px') {\n return parseInt(dimension.substring(0, dimension.length - 2));\n }\n return undefined;\n };\n return StackedImageConfigurator;\n}());\nvar ContentSource = /** @class */ (function (_super) {\n __extends(ContentSource, _super);\n //#endregion\n function ContentSource(url, mimeType) {\n var _this = _super.call(this) || this;\n _this.url = url;\n _this.mimeType = mimeType;\n return _this;\n }\n ContentSource.prototype.isValid = function () {\n return this.mimeType && this.url ? true : false;\n };\n //#region Schema\n ContentSource.mimeTypeProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_1, \"mimeType\");\n ContentSource.urlProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_1, \"url\");\n __decorate([\n (0, serialization_1.property)(ContentSource.mimeTypeProperty)\n ], ContentSource.prototype, \"mimeType\", void 0);\n __decorate([\n (0, serialization_1.property)(ContentSource.urlProperty)\n ], ContentSource.prototype, \"url\", void 0);\n return ContentSource;\n}(serialization_1.SerializableObject));\nexports.ContentSource = ContentSource;\nvar CaptionSource = /** @class */ (function (_super) {\n __extends(CaptionSource, _super);\n //#endregion\n function CaptionSource(url, mimeType, label) {\n var _this = _super.call(this, url, mimeType) || this;\n _this.label = label;\n return _this;\n }\n CaptionSource.prototype.getSchemaKey = function () {\n return \"CaptionSource\";\n };\n CaptionSource.prototype.render = function () {\n var result = undefined;\n if (this.isValid()) {\n result = document.createElement(\"track\");\n result.src = this.url;\n result.kind = \"captions\";\n result.label = this.label;\n }\n return result;\n };\n //#region Schema\n CaptionSource.labelProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_6, \"label\");\n __decorate([\n (0, serialization_1.property)(CaptionSource.labelProperty)\n ], CaptionSource.prototype, \"label\", void 0);\n return CaptionSource;\n}(ContentSource));\nexports.CaptionSource = CaptionSource;\nvar MediaSource = /** @class */ (function (_super) {\n __extends(MediaSource, _super);\n function MediaSource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MediaSource.prototype.getSchemaKey = function () {\n return \"MediaSource\";\n };\n MediaSource.prototype.render = function () {\n var result = undefined;\n if (this.isValid()) {\n result = document.createElement(\"source\");\n result.src = this.url;\n result.type = this.mimeType;\n }\n return result;\n };\n return MediaSource;\n}(ContentSource));\nexports.MediaSource = MediaSource;\nvar MediaPlayer = /** @class */ (function () {\n function MediaPlayer() {\n }\n MediaPlayer.prototype.play = function () {\n // Do nothing in base implementation\n };\n Object.defineProperty(MediaPlayer.prototype, \"posterUrl\", {\n get: function () {\n return this._posterUrl;\n },\n set: function (value) {\n this._posterUrl = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MediaPlayer.prototype, \"selectedMediaType\", {\n get: function () {\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n return MediaPlayer;\n}());\nexports.MediaPlayer = MediaPlayer;\nvar HTML5MediaPlayer = /** @class */ (function (_super) {\n __extends(HTML5MediaPlayer, _super);\n function HTML5MediaPlayer(owner) {\n var _this = _super.call(this) || this;\n _this.owner = owner;\n _this._selectedSources = [];\n _this._captionSources = [];\n _this.processSources();\n return _this;\n }\n HTML5MediaPlayer.prototype.processSources = function () {\n var _a;\n this._selectedSources = [];\n this._captionSources = [];\n this._selectedMediaType = undefined;\n for (var _i = 0, _b = this.owner.sources; _i < _b.length; _i++) {\n var source = _b[_i];\n var mimeComponents = source.mimeType ? source.mimeType.split(\"/\") : [];\n if (mimeComponents.length === 2) {\n if (!this._selectedMediaType) {\n var index = HTML5MediaPlayer.supportedMediaTypes.indexOf(mimeComponents[0]);\n if (index >= 0) {\n this._selectedMediaType = HTML5MediaPlayer.supportedMediaTypes[index];\n }\n }\n if (mimeComponents[0] === this._selectedMediaType) {\n this._selectedSources.push(source);\n }\n }\n }\n (_a = this._captionSources).push.apply(_a, this.owner.captionSources);\n };\n HTML5MediaPlayer.prototype.canPlay = function () {\n return this._selectedSources.length > 0;\n };\n HTML5MediaPlayer.prototype.fetchVideoDetails = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n HTML5MediaPlayer.prototype.render = function () {\n if (this._selectedMediaType === \"video\") {\n this._mediaElement = document.createElement(\"video\");\n }\n else {\n this._mediaElement = document.createElement(\"audio\");\n }\n this._mediaElement.setAttribute(\"aria-label\", this.owner.altText ? this.owner.altText : strings_1.Strings.defaults.mediaPlayerAriaLabel());\n this._mediaElement.setAttribute(\"webkit-playsinline\", \"\");\n this._mediaElement.setAttribute(\"playsinline\", \"\");\n // We enable crossorigin for cases where the caption file has a different domain than\n // the video file. If the caption file lives in a different domain than the video file\n // and crossorigin is not set, then the caption file will fail to load.\n this._mediaElement.setAttribute(\"crossorigin\", \"\");\n this._mediaElement.autoplay = true;\n this._mediaElement.controls = true;\n if (Utils.isMobileOS()) {\n this._mediaElement.muted = true;\n }\n this._mediaElement.preload = \"none\";\n this._mediaElement.style.width = \"100%\";\n for (var _i = 0, _a = this.owner.sources; _i < _a.length; _i++) {\n var source = _a[_i];\n var renderedSource = source.render();\n Utils.appendChild(this._mediaElement, renderedSource);\n }\n for (var _b = 0, _c = this.owner.captionSources; _b < _c.length; _b++) {\n var captionSource = _c[_b];\n if (captionSource.mimeType == \"vtt\") {\n var renderedCaptionSource = captionSource.render();\n Utils.appendChild(this._mediaElement, renderedCaptionSource);\n }\n }\n return this._mediaElement;\n };\n HTML5MediaPlayer.prototype.play = function () {\n if (this._mediaElement) {\n this._mediaElement.play();\n }\n };\n Object.defineProperty(HTML5MediaPlayer.prototype, \"selectedMediaType\", {\n get: function () {\n return this._selectedMediaType;\n },\n enumerable: false,\n configurable: true\n });\n HTML5MediaPlayer.supportedMediaTypes = [\"audio\", \"video\"];\n return HTML5MediaPlayer;\n}(MediaPlayer));\nexports.HTML5MediaPlayer = HTML5MediaPlayer;\nvar CustomMediaPlayer = /** @class */ (function (_super) {\n __extends(CustomMediaPlayer, _super);\n function CustomMediaPlayer(matches) {\n return _super.call(this) || this;\n }\n return CustomMediaPlayer;\n}(MediaPlayer));\nexports.CustomMediaPlayer = CustomMediaPlayer;\nvar IFrameMediaMediaPlayer = /** @class */ (function (_super) {\n __extends(IFrameMediaMediaPlayer, _super);\n function IFrameMediaMediaPlayer(matches, iFrameTitle) {\n var _this = _super.call(this, matches) || this;\n _this.iFrameTitle = iFrameTitle;\n if (matches.length >= 2) {\n _this._videoId = matches[1];\n }\n return _this;\n }\n IFrameMediaMediaPlayer.prototype.canPlay = function () {\n return this._videoId !== undefined;\n };\n IFrameMediaMediaPlayer.prototype.render = function () {\n var container = document.createElement(\"div\");\n container.style.position = \"relative\";\n container.style.width = \"100%\";\n container.style.height = \"0\";\n container.style.paddingBottom = \"56.25%\";\n var iFrame = document.createElement(\"iframe\");\n iFrame.style.position = \"absolute\";\n iFrame.style.top = \"0\";\n iFrame.style.left = \"0\";\n iFrame.style.width = \"100%\";\n iFrame.style.height = \"100%\";\n iFrame.src = this.getEmbedVideoUrl();\n iFrame.frameBorder = \"0\";\n if (this.iFrameTitle) {\n iFrame.title = this.iFrameTitle;\n }\n iFrame.allow =\n \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\";\n iFrame.allowFullscreen = true;\n container.appendChild(iFrame);\n return container;\n };\n Object.defineProperty(IFrameMediaMediaPlayer.prototype, \"videoId\", {\n get: function () {\n return this._videoId;\n },\n enumerable: false,\n configurable: true\n });\n return IFrameMediaMediaPlayer;\n}(CustomMediaPlayer));\nexports.IFrameMediaMediaPlayer = IFrameMediaMediaPlayer;\nvar VimeoPlayer = /** @class */ (function (_super) {\n __extends(VimeoPlayer, _super);\n function VimeoPlayer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VimeoPlayer.prototype.fetchVideoDetails = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oEmbedUrl, response, json;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n oEmbedUrl = \"https://vimeo.com/api/oembed.json?url=\".concat(this.getEmbedVideoUrl());\n return [4 /*yield*/, fetch(oEmbedUrl)];\n case 1:\n response = _a.sent();\n if (!response.ok) return [3 /*break*/, 3];\n return [4 /*yield*/, response.json()];\n case 2:\n json = _a.sent();\n this.posterUrl = json[\"thumbnail_url\"];\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n VimeoPlayer.prototype.getEmbedVideoUrl = function () {\n return \"https://player.vimeo.com/video/\".concat(this.videoId, \"?autoplay=1\");\n };\n return VimeoPlayer;\n}(IFrameMediaMediaPlayer));\nexports.VimeoPlayer = VimeoPlayer;\nvar DailymotionPlayer = /** @class */ (function (_super) {\n __extends(DailymotionPlayer, _super);\n function DailymotionPlayer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DailymotionPlayer.prototype.fetchVideoDetails = function () {\n return __awaiter(this, void 0, void 0, function () {\n var apiUrl, response, json;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n apiUrl = \"https://api.dailymotion.com/video/\".concat(this.videoId, \"?fields=thumbnail_720_url\");\n return [4 /*yield*/, fetch(apiUrl)];\n case 1:\n response = _a.sent();\n if (!response.ok) return [3 /*break*/, 3];\n return [4 /*yield*/, response.json()];\n case 2:\n json = _a.sent();\n this.posterUrl = json[\"thumbnail_720_url\"];\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n DailymotionPlayer.prototype.getEmbedVideoUrl = function () {\n return \"https://www.dailymotion.com/embed/video/\".concat(this.videoId, \"?autoplay=1\");\n };\n return DailymotionPlayer;\n}(IFrameMediaMediaPlayer));\nexports.DailymotionPlayer = DailymotionPlayer;\nvar YouTubePlayer = /** @class */ (function (_super) {\n __extends(YouTubePlayer, _super);\n function YouTubePlayer(matches, iFrameTitle) {\n var _this = _super.call(this, matches, iFrameTitle) || this;\n _this.iFrameTitle = iFrameTitle;\n if (matches.length >= 3 && matches[2] !== undefined) {\n _this._startTimeIndex = parseInt(matches[2]);\n }\n return _this;\n }\n YouTubePlayer.prototype.fetchVideoDetails = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.posterUrl = this.videoId\n ? \"https://img.youtube.com/vi/\".concat(this.videoId, \"/maxresdefault.jpg\")\n : undefined;\n return [2 /*return*/];\n });\n });\n };\n YouTubePlayer.prototype.getEmbedVideoUrl = function () {\n var url = \"https://www.youtube.com/embed/\".concat(this.videoId, \"?autoplay=1\");\n if (this._startTimeIndex !== undefined) {\n url += \"&start=\".concat(this._startTimeIndex);\n }\n return url;\n };\n return YouTubePlayer;\n}(IFrameMediaMediaPlayer));\nexports.YouTubePlayer = YouTubePlayer;\nvar Media = /** @class */ (function (_super) {\n __extends(Media, _super);\n function Media() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.sources = [];\n _this.captionSources = [];\n return _this;\n }\n Media.prototype.createMediaPlayer = function () {\n for (var _i = 0, _a = Media.customMediaPlayers; _i < _a.length; _i++) {\n var provider = _a[_i];\n for (var _b = 0, _c = this.sources; _b < _c.length; _b++) {\n var source = _c[_b];\n if (source.url) {\n for (var _d = 0, _f = provider.urlPatterns; _d < _f.length; _d++) {\n var pattern = _f[_d];\n var matches = pattern.exec(source.url);\n if (matches !== null) {\n return provider.createMediaPlayer(matches);\n }\n }\n }\n }\n }\n return new HTML5MediaPlayer(this);\n };\n Media.prototype.handlePlayButtonInvoke = function (event) {\n if (this.hostConfig.media.allowInlinePlayback) {\n event.preventDefault();\n event.cancelBubble = true;\n if (this.renderedElement) {\n var mediaPlayerElement = this._mediaPlayer.render();\n clearElement(this.renderedElement);\n this.renderedElement.appendChild(mediaPlayerElement);\n this._mediaPlayer.play();\n mediaPlayerElement.focus();\n }\n }\n else {\n if (Media.onPlay) {\n event.preventDefault();\n event.cancelBubble = true;\n Media.onPlay(this);\n }\n }\n };\n Media.prototype.displayPoster = function () {\n return __awaiter(this, void 0, void 0, function () {\n var playButtonArrowWidth, playButtonArrowHeight, posterRootElement_1, posterUrl, posterImageElement_1, playButtonOuterElement, playButtonInnerElement, playButtonContainer;\n var _this = this;\n return __generator(this, function (_a) {\n if (this.renderedElement) {\n playButtonArrowWidth = 12;\n playButtonArrowHeight = 15;\n posterRootElement_1 = document.createElement(\"div\");\n posterRootElement_1.className = this.hostConfig.makeCssClassName(\"ac-media-poster\");\n posterRootElement_1.setAttribute(\"role\", \"contentinfo\");\n posterRootElement_1.setAttribute(\"aria-label\", this.altText ? this.altText : strings_1.Strings.defaults.mediaPlayerAriaLabel());\n posterRootElement_1.style.position = \"relative\";\n posterRootElement_1.style.display = \"flex\";\n posterUrl = this.poster ? this.poster : this._mediaPlayer.posterUrl;\n if (!posterUrl) {\n posterUrl = this.hostConfig.media.defaultPoster;\n }\n if (posterUrl) {\n posterImageElement_1 = document.createElement(\"img\");\n posterImageElement_1.style.width = \"100%\";\n posterImageElement_1.style.height = \"100%\";\n posterImageElement_1.setAttribute(\"role\", \"presentation\");\n posterImageElement_1.onerror = function (_e) {\n if (posterImageElement_1.parentNode) {\n posterImageElement_1.parentNode.removeChild(posterImageElement_1);\n }\n posterRootElement_1.classList.add(\"empty\");\n posterRootElement_1.style.minHeight = \"150px\";\n };\n posterImageElement_1.src = posterUrl;\n posterRootElement_1.appendChild(posterImageElement_1);\n }\n else {\n posterRootElement_1.classList.add(\"empty\");\n posterRootElement_1.style.minHeight = \"150px\";\n }\n if (this.hostConfig.supportsInteractivity && this._mediaPlayer.canPlay()) {\n playButtonOuterElement = document.createElement(\"div\");\n playButtonOuterElement.tabIndex = 0;\n playButtonOuterElement.setAttribute(\"role\", \"button\");\n playButtonOuterElement.setAttribute(\"aria-label\", strings_1.Strings.defaults.mediaPlayerPlayMedia());\n playButtonOuterElement.className =\n this.hostConfig.makeCssClassName(\"ac-media-playButton\");\n playButtonOuterElement.style.display = \"flex\";\n playButtonOuterElement.style.alignItems = \"center\";\n playButtonOuterElement.style.justifyContent = \"center\";\n playButtonOuterElement.onclick = function (e) {\n _this.handlePlayButtonInvoke(e);\n };\n playButtonOuterElement.onkeypress = function (e) {\n if (e.code === \"Enter\" || e.code === \"Space\") {\n // space or enter\n _this.handlePlayButtonInvoke(e);\n }\n };\n playButtonInnerElement = document.createElement(\"div\");\n playButtonInnerElement.className = this.hostConfig.makeCssClassName(\"ac-media-playButton-arrow\");\n playButtonInnerElement.style.width = playButtonArrowWidth + \"px\";\n playButtonInnerElement.style.height = playButtonArrowHeight + \"px\";\n playButtonInnerElement.style.borderTopWidth = playButtonArrowHeight / 2 + \"px\";\n playButtonInnerElement.style.borderBottomWidth = playButtonArrowHeight / 2 + \"px\";\n playButtonInnerElement.style.borderLeftWidth = playButtonArrowWidth + \"px\";\n playButtonInnerElement.style.borderRightWidth = \"0\";\n playButtonInnerElement.style.borderStyle = \"solid\";\n playButtonInnerElement.style.borderTopColor = \"transparent\";\n playButtonInnerElement.style.borderRightColor = \"transparent\";\n playButtonInnerElement.style.borderBottomColor = \"transparent\";\n playButtonInnerElement.style.transform =\n \"translate(\" + playButtonArrowWidth / 10 + \"px,0px)\";\n playButtonOuterElement.appendChild(playButtonInnerElement);\n playButtonContainer = document.createElement(\"div\");\n playButtonContainer.style.position = \"absolute\";\n playButtonContainer.style.left = \"0\";\n playButtonContainer.style.top = \"0\";\n playButtonContainer.style.width = \"100%\";\n playButtonContainer.style.height = \"100%\";\n playButtonContainer.style.display = \"flex\";\n playButtonContainer.style.justifyContent = \"center\";\n playButtonContainer.style.alignItems = \"center\";\n playButtonContainer.appendChild(playButtonOuterElement);\n posterRootElement_1.appendChild(playButtonContainer);\n }\n clearElement(this.renderedElement);\n this.renderedElement.appendChild(posterRootElement_1);\n }\n return [2 /*return*/];\n });\n });\n };\n Media.prototype.internalRender = function () {\n var element = document.createElement(\"div\");\n element.className = this.hostConfig.makeCssClassName(\"ac-media\");\n return element;\n };\n Media.prototype.render = function () {\n var _this = this;\n var result = _super.prototype.render.call(this);\n if (result) {\n this._mediaPlayer = this.createMediaPlayer();\n this._mediaPlayer.fetchVideoDetails().then(function () { return _this.displayPoster(); });\n }\n return result;\n };\n Media.prototype.releaseDOMResources = function () {\n _super.prototype.releaseDOMResources.call(this);\n this.displayPoster();\n };\n Media.prototype.getJsonTypeName = function () {\n return \"Media\";\n };\n Media.prototype.getResourceInformation = function () {\n var result = [];\n if (this._mediaPlayer) {\n var posterUrl = this.poster ? this.poster : this.hostConfig.media.defaultPoster;\n if (posterUrl) {\n result.push({ url: posterUrl, mimeType: \"image\" });\n }\n }\n for (var _i = 0, _a = this.sources; _i < _a.length; _i++) {\n var mediaSource = _a[_i];\n if (mediaSource.isValid()) {\n result.push({\n /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion -- `mediaSource.url` is of type `string | undefined`, but is validated by `isValid()` call */\n url: mediaSource.url,\n mimeType: mediaSource.mimeType\n /* eslint-enable @typescript-eslint/no-unnecessary-type-assertion */\n });\n }\n }\n for (var _b = 0, _c = this.captionSources; _b < _c.length; _b++) {\n var captionSource = _c[_b];\n if (captionSource.isValid()) {\n result.push({\n /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion -- `captionSource.url` is of type `string | undefined`, but is validated by `isValid()` call */\n url: captionSource.url,\n mimeType: captionSource.mimeType\n /* eslint-enable @typescript-eslint/no-unnecessary-type-assertion */\n });\n }\n }\n return result;\n };\n Object.defineProperty(Media.prototype, \"selectedMediaType\", {\n get: function () {\n return this._mediaPlayer.selectedMediaType;\n },\n enumerable: false,\n configurable: true\n });\n Media.customMediaPlayers = [\n {\n urlPatterns: [\n /^(?:https?:\\/\\/)?(?:www.)?youtube.com\\/watch\\?(?=.*v=([\\w\\d-_]+))(?=(?:.*t=(\\d+))?).*/gi,\n /^(?:https?:\\/\\/)?youtu.be\\/([\\w\\d-_]+)(?:\\?t=(\\d+))?/gi\n ],\n createMediaPlayer: function (matches) {\n return new YouTubePlayer(matches, strings_1.Strings.defaults.youTubeVideoPlayer());\n }\n },\n {\n urlPatterns: [/^(?:https?:\\/\\/)?vimeo.com\\/([\\w\\d-_]+).*/gi],\n createMediaPlayer: function (matches) {\n return new VimeoPlayer(matches, strings_1.Strings.defaults.vimeoVideoPlayer());\n }\n },\n {\n urlPatterns: [/^(?:https?:\\/\\/)?(?:www.)?dailymotion.com\\/video\\/([\\w\\d-_]+).*/gi],\n createMediaPlayer: function (matches) {\n return new DailymotionPlayer(matches, strings_1.Strings.defaults.dailymotionVideoPlayer());\n }\n }\n ];\n //#region Schema\n Media.sourcesProperty = new serialization_1.SerializableObjectCollectionProperty(serialization_1.Versions.v1_1, \"sources\", MediaSource);\n Media.captionSourcesProperty = new serialization_1.SerializableObjectCollectionProperty(serialization_1.Versions.v1_6, \"captionSources\", CaptionSource);\n Media.posterProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_1, \"poster\");\n Media.altTextProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_1, \"altText\");\n __decorate([\n (0, serialization_1.property)(Media.sourcesProperty)\n ], Media.prototype, \"sources\", void 0);\n __decorate([\n (0, serialization_1.property)(Media.captionSourcesProperty)\n ], Media.prototype, \"captionSources\", void 0);\n __decorate([\n (0, serialization_1.property)(Media.posterProperty)\n ], Media.prototype, \"poster\", void 0);\n __decorate([\n (0, serialization_1.property)(Media.altTextProperty)\n ], Media.prototype, \"altText\", void 0);\n return Media;\n}(CardElement));\nexports.Media = Media;\nvar InputEventType;\n(function (InputEventType) {\n InputEventType[InputEventType[\"InitialRender\"] = 0] = \"InitialRender\";\n InputEventType[InputEventType[\"MouseEnterOnCard\"] = 1] = \"MouseEnterOnCard\";\n InputEventType[InputEventType[\"MouseLeaveOnCard\"] = 2] = \"MouseLeaveOnCard\";\n InputEventType[InputEventType[\"FocusLeave\"] = 3] = \"FocusLeave\";\n})(InputEventType || (InputEventType = {}));\nvar Input = /** @class */ (function (_super) {\n __extends(Input, _super);\n function Input() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputStyle = Enums.InputStyle.Default;\n return _this;\n }\n Input.prototype.getAllLabelIds = function () {\n var labelIds = [];\n if (this.labelledBy) {\n labelIds.push(this.labelledBy);\n }\n if (this._renderedLabelElement) {\n labelIds.push(this._renderedLabelElement.id);\n }\n if (this._renderedErrorMessageElement) {\n labelIds.push(this._renderedErrorMessageElement.id);\n }\n return labelIds;\n };\n Input.prototype.updateInputControlAriaLabelledBy = function () {\n if (this._renderedInputControlElement) {\n var labelIds = this.getAllLabelIds();\n if (labelIds.length > 0) {\n this._renderedInputControlElement.setAttribute(\"aria-labelledby\", labelIds.join(\" \"));\n }\n else {\n this._renderedInputControlElement.removeAttribute(\"aria-labelledby\");\n }\n }\n };\n Object.defineProperty(Input.prototype, \"isNullable\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"renderedInputControlElement\", {\n get: function () {\n return this._renderedInputControlElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"inputControlContainerElement\", {\n get: function () {\n return this._inputControlContainerElement;\n },\n enumerable: false,\n configurable: true\n });\n Input.prototype.overrideInternalRender = function () {\n var _this = this;\n var hostConfig = this.hostConfig;\n this._outerContainerElement = document.createElement(\"div\");\n this._outerContainerElement.style.display = \"flex\";\n if (this.labelPosition === Enums.InputLabelPosition.Inline) {\n this._outerContainerElement.style.flexDirection = \"row\";\n }\n else {\n this._outerContainerElement.style.flexDirection = \"column\";\n }\n var renderedInputControlId = Utils.generateUniqueId();\n if (this.label) {\n var labelRichTextBlock = new RichTextBlock();\n labelRichTextBlock.setParent(this);\n labelRichTextBlock.forElementId = renderedInputControlId;\n var labelInline = new TextRun(this.label);\n labelRichTextBlock.addInline(labelInline);\n if (this.isRequired) {\n labelInline.init(hostConfig.inputs.label.requiredInputs);\n var isRequiredCueInline = new TextRun(hostConfig.inputs.label.requiredInputs.suffix);\n isRequiredCueInline.color = hostConfig.inputs.label.requiredInputs.suffixColor;\n isRequiredCueInline.ariaHidden = true;\n labelRichTextBlock.addInline(isRequiredCueInline);\n }\n else {\n labelInline.init(hostConfig.inputs.label.optionalInputs);\n }\n this._renderedLabelElement = labelRichTextBlock.render();\n if (this._renderedLabelElement) {\n this._renderedLabelElement.id = Utils.generateUniqueId();\n if (this.labelPosition === Enums.InputLabelPosition.Inline) {\n // For inline label position: label should be in center of the div and no extra spacing needed\n this._renderedLabelElement.style.alignSelf = \"center\";\n }\n else {\n this._renderedLabelElement.style.marginBottom =\n hostConfig.getEffectiveSpacing(hostConfig.inputs.label.inputSpacing) + \"px\";\n }\n this._outerContainerElement.appendChild(this._renderedLabelElement);\n }\n }\n this._inputControlContainerElement = document.createElement(\"div\");\n this._inputControlContainerElement.className =\n hostConfig.makeCssClassName(\"ac-input-container\");\n this._inputControlContainerElement.style.display = \"flex\";\n if (this.height === \"stretch\") {\n this._inputControlContainerElement.style.alignItems = \"stretch\";\n this._inputControlContainerElement.style.flex = \"1 1 auto\";\n }\n this._renderedInputControlElement = this.internalRender();\n if (this._renderedInputControlElement) {\n this._renderedInputControlElement.id = renderedInputControlId;\n this._renderedInputControlElement.style.minWidth = \"0px\";\n if (this.isNullable && this.isRequired) {\n this._renderedInputControlElement.setAttribute(\"aria-required\", \"true\");\n this._renderedInputControlElement.classList.add(hostConfig.makeCssClassName(\"ac-input-required\"));\n }\n this._inputControlContainerElement.appendChild(this._renderedInputControlElement);\n this._outerContainerElement.appendChild(this._inputControlContainerElement);\n if (this._renderedLabelElement && this.labelPosition === Enums.InputLabelPosition.Inline) {\n if (!this.labelWidth) {\n var defaultLabelWidth = hostConfig.inputs.label.width;\n this._renderedLabelElement.style.width = defaultLabelWidth.toString() + \"%\";\n this._inputControlContainerElement.style.width = (100 - defaultLabelWidth) + \"%\";\n }\n else if (this.labelWidth.unit == Enums.SizeUnit.Weight) {\n var labelWidthInPercent = this.labelWidth.physicalSize;\n this._renderedLabelElement.style.width = labelWidthInPercent.toString() + \"%\";\n this._inputControlContainerElement.style.width = (100 - labelWidthInPercent).toString() + \"%\";\n }\n else if (this.labelWidth.unit == Enums.SizeUnit.Pixel) {\n var labelWidthInPixel = this.labelWidth.physicalSize;\n this._renderedLabelElement.style.width = labelWidthInPixel.toString() + \"px\";\n }\n }\n this.updateVisualState(InputEventType.InitialRender);\n if (this._renderedInputControlElement) {\n this._renderedInputControlElement.onblur = function (ev) {\n _this.updateVisualState(InputEventType.FocusLeave);\n };\n }\n this.updateInputControlAriaLabelledBy();\n return this._outerContainerElement;\n }\n this.resetDirtyState();\n return undefined;\n };\n Input.prototype.valueChanged = function () {\n this.getRootElement().updateActionsEnabledState();\n if (this.isValid()) {\n this.resetValidationFailureCue();\n }\n if (this.onValueChanged) {\n this.onValueChanged(this);\n }\n raiseInputValueChangedEvent(this);\n };\n Input.prototype.resetValidationFailureCue = function () {\n if (this.renderedInputControlElement) {\n this.renderedInputControlElement.classList.remove(this.hostConfig.makeCssClassName(\"ac-input-validation-failed\"));\n this.updateInputControlAriaLabelledBy();\n if (this._renderedErrorMessageElement) {\n this._outerContainerElement.removeChild(this._renderedErrorMessageElement);\n this._renderedErrorMessageElement = undefined;\n }\n }\n };\n Input.prototype.showValidationErrorMessage = function () {\n if (this.renderedElement &&\n this.errorMessage &&\n shared_1.GlobalSettings.displayInputValidationErrors) {\n var errorMessageTextBlock = new TextBlock();\n errorMessageTextBlock.setParent(this);\n errorMessageTextBlock.text = this.errorMessage;\n errorMessageTextBlock.wrap = true;\n errorMessageTextBlock.init(this.hostConfig.inputs.errorMessage);\n this._renderedErrorMessageElement = errorMessageTextBlock.render();\n if (this._renderedErrorMessageElement) {\n this._renderedErrorMessageElement.id = Utils.generateUniqueId();\n this._outerContainerElement.appendChild(this._renderedErrorMessageElement);\n this.updateInputControlAriaLabelledBy();\n }\n }\n };\n Object.defineProperty(Input.prototype, \"allowRevealOnHoverStyle\", {\n get: function () {\n return this.hostConfig.inputs && this.hostConfig.inputs.allowRevealOnHoverStyle;\n },\n enumerable: false,\n configurable: true\n });\n Input.prototype.shouldHideInputAdornersForRevealOnHover = function (input, eventType) {\n // show/hide input adorners (date picker, time picker, select dropdown picker) with inputStyle RevealOnHover\n // 1. intial render of card: hide input adorners\n // 2. mouse hover on the card: show input adorners\n // 3. mouse hover outside the card: hide input adorners unless input is still in focus state\n // 4. input loses focus: hide the input adorners unless mouse is still hovering on the card\n // check if input still has the focus\n var isInputInFocus = input === document.activeElement;\n // check if mouse is still on the card\n var inputHoverClassName = this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onhover\");\n var isMouseOverCard = input.classList.contains(inputHoverClassName);\n var hideInputAdorners = (eventType === InputEventType.InitialRender) ||\n (eventType === InputEventType.FocusLeave && !isMouseOverCard) ||\n (eventType === InputEventType.MouseLeaveOnCard && !isInputInFocus);\n return hideInputAdorners;\n };\n Input.prototype.updateVisualState = function (eventType) {\n if (!this.allowRevealOnHoverStyle ||\n !this._renderedInputControlElement ||\n this.inputStyle !== Enums.InputStyle.RevealOnHover) {\n return;\n }\n if (eventType === InputEventType.InitialRender) {\n // on initial render, we will show input fields as read only view\n this._renderedInputControlElement.classList.add(this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onrender\"));\n }\n else if (eventType === InputEventType.MouseEnterOnCard) {\n // on hover on the card, we will reveal the inputs by showing borders etc\n // ac-inputStyle-revealOnHover-onhover class is also used to identify if mouse is hovering on the card\n this._renderedInputControlElement.classList.add(this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onhover\"));\n }\n else if (eventType === InputEventType.MouseLeaveOnCard) {\n this._renderedInputControlElement.classList.remove(this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onhover\"));\n }\n };\n Input.prototype.focus = function () {\n if (this._renderedInputControlElement) {\n this._renderedInputControlElement.focus();\n }\n };\n Input.prototype.isValid = function () {\n return true;\n };\n Input.prototype.isDirty = function () {\n return this.value !== this._oldValue;\n };\n Input.prototype.resetDirtyState = function () {\n this._oldValue = this.value;\n };\n Input.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n if (!this.id) {\n context.addFailure(this, Enums.ValidationEvent.PropertyCantBeNull, strings_1.Strings.errors.inputsMustHaveUniqueId());\n }\n if (this.isRequired) {\n if (!this.label) {\n context.addFailure(this, Enums.ValidationEvent.RequiredInputsShouldHaveLabel, \"Required inputs should have a label\");\n }\n if (!this.errorMessage) {\n context.addFailure(this, Enums.ValidationEvent.RequiredInputsShouldHaveErrorMessage, \"Required inputs should have an error message\");\n }\n }\n };\n Input.prototype.validateValue = function () {\n this.resetValidationFailureCue();\n var result = this.isRequired ? this.isSet() && this.isValid() : this.isValid();\n if (!result && this.renderedInputControlElement) {\n this.renderedInputControlElement.classList.add(this.hostConfig.makeCssClassName(\"ac-input-validation-failed\"));\n this.showValidationErrorMessage();\n }\n return result;\n };\n Input.prototype.getAllInputs = function (processActions) {\n if (processActions === void 0) { processActions = true; }\n return [this];\n };\n Input.prototype.render = function () {\n var result = _super.prototype.render.call(this);\n this.resetDirtyState();\n return result;\n };\n Object.defineProperty(Input.prototype, \"isInteractive\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n //#region Schema\n Input.labelProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_3, \"label\", true);\n Input.isRequiredProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_3, \"isRequired\", false);\n Input.errorMessageProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_3, \"errorMessage\", true);\n Input.inputStyleProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_6, \"inputStyle\", Enums.InputStyle, Enums.InputStyle.Default, [\n { value: Enums.InputStyle.RevealOnHover },\n { value: Enums.InputStyle.Default }\n ]);\n Input.labelWidthProperty = new serialization_1.CustomProperty(serialization_1.Versions.v1_6, \"labelWidth\", function (sender, prop, source, context) {\n var result = prop.defaultValue;\n var value = source[prop.name];\n var invalidLabelWidth = false;\n if (typeof value === \"number\" && !isNaN(value)) {\n result = new shared_1.SizeAndUnit(value, Enums.SizeUnit.Weight);\n if (result.physicalSize < 0 || result.physicalSize > 100) {\n invalidLabelWidth = true;\n }\n }\n else if (typeof value === \"string\") {\n try {\n result = shared_1.SizeAndUnit.parse(value);\n }\n catch (e) {\n invalidLabelWidth = true;\n }\n }\n else {\n invalidLabelWidth = true;\n }\n if (invalidLabelWidth) {\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidInputLabelWidth());\n result = undefined;\n }\n return result;\n }, function (sender, property, target, value, context) {\n if (value instanceof shared_1.SizeAndUnit) {\n if (value.unit === Enums.SizeUnit.Pixel) {\n context.serializeValue(target, \"labelWidth\", value.physicalSize + \"px\");\n }\n else {\n context.serializeNumber(target, \"labelWidth\", value.physicalSize);\n }\n }\n }, undefined);\n Input.labelPositionProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_6, \"labelPosition\", Enums.InputLabelPosition, Enums.InputLabelPosition.Above, [\n { value: Enums.InputLabelPosition.Inline },\n { value: Enums.InputLabelPosition.Above }\n ]);\n __decorate([\n (0, serialization_1.property)(Input.labelProperty)\n ], Input.prototype, \"label\", void 0);\n __decorate([\n (0, serialization_1.property)(Input.isRequiredProperty)\n ], Input.prototype, \"isRequired\", void 0);\n __decorate([\n (0, serialization_1.property)(Input.errorMessageProperty)\n ], Input.prototype, \"errorMessage\", void 0);\n __decorate([\n (0, serialization_1.property)(Input.inputStyleProperty)\n ], Input.prototype, \"inputStyle\", void 0);\n __decorate([\n (0, serialization_1.property)(Input.labelWidthProperty)\n ], Input.prototype, \"labelWidth\", void 0);\n __decorate([\n (0, serialization_1.property)(Input.labelPositionProperty)\n ], Input.prototype, \"labelPosition\", void 0);\n return Input;\n}(CardElement));\nexports.Input = Input;\nvar TextInput = /** @class */ (function (_super) {\n __extends(TextInput, _super);\n function TextInput() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isMultiline = false;\n _this.style = Enums.InputTextStyle.Text;\n return _this;\n }\n //#endregion\n TextInput.prototype.setupInput = function (input) {\n var _this = this;\n input.style.flex = \"1 1 auto\";\n input.tabIndex = this.isDesignMode() ? -1 : 0;\n if (this.placeholder) {\n input.placeholder = this.placeholder;\n input.setAttribute(\"aria-label\", this.placeholder);\n }\n if (this.defaultValue) {\n input.value = this.defaultValue;\n }\n if (this.maxLength && this.maxLength > 0) {\n input.maxLength = this.maxLength;\n }\n input.oninput = function () {\n _this.valueChanged();\n };\n input.onkeypress = function (e) {\n // Ctrl+Enter pressed\n if (e.ctrlKey &&\n e.code === \"Enter\" &&\n _this.inlineAction &&\n _this.inlineAction.isEffectivelyEnabled()) {\n _this.inlineAction.execute();\n }\n };\n };\n TextInput.prototype.internalRender = function () {\n var result;\n if (this.isMultiline && this.style !== Enums.InputTextStyle.Password) {\n result = document.createElement(\"textarea\");\n result.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-textInput\", \"ac-multiline\");\n if (this.height === \"stretch\") {\n result.style.height = \"initial\";\n }\n }\n else {\n result = document.createElement(\"input\");\n result.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-textInput\");\n result.type = Enums.InputTextStyle[this.style].toLowerCase();\n }\n this.setupInput(result);\n return result;\n };\n TextInput.prototype.overrideInternalRender = function () {\n var _this = this;\n var renderedInputControl = _super.prototype.overrideInternalRender.call(this);\n if (this.inlineAction) {\n var button_1 = document.createElement(\"button\");\n button_1.className = this.hostConfig.makeCssClassName(this.inlineAction.isEffectivelyEnabled()\n ? \"ac-inlineActionButton\"\n : \"ac-inlineActionButton-disabled\");\n button_1.onclick = function (e) {\n if (_this.inlineAction && _this.inlineAction.isEffectivelyEnabled()) {\n e.preventDefault();\n e.cancelBubble = true;\n _this.inlineAction.execute();\n }\n };\n if (this.inlineAction.iconUrl) {\n button_1.classList.add(\"iconOnly\");\n var icon_1 = document.createElement(\"img\");\n icon_1.style.height = \"100%\";\n icon_1.setAttribute(\"role\", \"presentation\");\n // The below trick is necessary as a workaround in Chrome where the icon is initially displayed\n // at its native size then resized to 100% of the button's height. This cfreates an unpleasant\n // flicker. On top of that, Chrome's flex implementation fails to prperly re-layout the button\n // after the image has loaded and been gicven its final size. The below trick also fixes that.\n icon_1.style.display = \"none\";\n icon_1.onload = function () {\n icon_1.style.removeProperty(\"display\");\n };\n icon_1.onerror = function () {\n button_1.removeChild(icon_1);\n button_1.classList.remove(\"iconOnly\");\n button_1.classList.add(\"textOnly\");\n button_1.textContent =\n _this.inlineAction && _this.inlineAction.title\n ? _this.inlineAction.title\n : strings_1.Strings.defaults.inlineActionTitle();\n };\n icon_1.src = this.inlineAction.iconUrl;\n button_1.appendChild(icon_1);\n button_1.title = this.inlineAction.title\n ? this.inlineAction.title\n : strings_1.Strings.defaults.inlineActionTitle();\n }\n else {\n button_1.classList.add(\"textOnly\");\n button_1.textContent = this.inlineAction.title\n ? this.inlineAction.title\n : strings_1.Strings.defaults.inlineActionTitle();\n }\n this.inlineAction.setupElementForAccessibility(button_1, true);\n button_1.style.marginLeft = \"8px\";\n this.inputControlContainerElement.appendChild(button_1);\n }\n return renderedInputControl;\n };\n TextInput.prototype.updateVisualState = function (eventType) {\n if (!this.allowRevealOnHoverStyle) {\n return;\n }\n if (!(this.inlineAction || this.isMultiline)) {\n _super.prototype.updateVisualState.call(this, eventType);\n }\n };\n TextInput.prototype.getJsonTypeName = function () {\n return \"Input.Text\";\n };\n TextInput.prototype.getAllActions = function () {\n var result = _super.prototype.getAllActions.call(this);\n if (this.inlineAction) {\n result.push(this.inlineAction);\n }\n return result;\n };\n TextInput.prototype.getActionById = function (id) {\n var result = _super.prototype.getActionById.call(this, id);\n if (!result && this.inlineAction) {\n result = this.inlineAction.getActionById(id);\n }\n return result;\n };\n TextInput.prototype.isSet = function () {\n return this.value ? true : false;\n };\n TextInput.prototype.isValid = function () {\n if (!this.value) {\n return true;\n }\n if (this.regex) {\n return new RegExp(this.regex, \"g\").test(this.value);\n }\n return true;\n };\n Object.defineProperty(TextInput.prototype, \"value\", {\n get: function () {\n if (this.renderedInputControlElement) {\n if (this.isMultiline) {\n return this.renderedInputControlElement.value;\n }\n else {\n return this.renderedInputControlElement.value;\n }\n }\n else {\n return undefined;\n }\n },\n enumerable: false,\n configurable: true\n });\n TextInput.valueProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"value\");\n TextInput.maxLengthProperty = new serialization_1.NumProperty(serialization_1.Versions.v1_0, \"maxLength\");\n TextInput.isMultilineProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_0, \"isMultiline\", false);\n TextInput.placeholderProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"placeholder\");\n TextInput.styleProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_0, \"style\", Enums.InputTextStyle, Enums.InputTextStyle.Text, [\n { value: Enums.InputTextStyle.Text },\n { value: Enums.InputTextStyle.Tel },\n { value: Enums.InputTextStyle.Url },\n { value: Enums.InputTextStyle.Email },\n { value: Enums.InputTextStyle.Password, targetVersion: serialization_1.Versions.v1_5 }\n ]);\n TextInput.inlineActionProperty = new ActionProperty(serialization_1.Versions.v1_0, \"inlineAction\", [\n \"Action.ShowCard\"\n ]);\n TextInput.regexProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_3, \"regex\", true);\n __decorate([\n (0, serialization_1.property)(TextInput.valueProperty)\n ], TextInput.prototype, \"defaultValue\", void 0);\n __decorate([\n (0, serialization_1.property)(TextInput.maxLengthProperty)\n ], TextInput.prototype, \"maxLength\", void 0);\n __decorate([\n (0, serialization_1.property)(TextInput.isMultilineProperty)\n ], TextInput.prototype, \"isMultiline\", void 0);\n __decorate([\n (0, serialization_1.property)(TextInput.placeholderProperty)\n ], TextInput.prototype, \"placeholder\", void 0);\n __decorate([\n (0, serialization_1.property)(TextInput.styleProperty)\n ], TextInput.prototype, \"style\", void 0);\n __decorate([\n (0, serialization_1.property)(TextInput.inlineActionProperty)\n ], TextInput.prototype, \"inlineAction\", void 0);\n __decorate([\n (0, serialization_1.property)(TextInput.regexProperty)\n ], TextInput.prototype, \"regex\", void 0);\n return TextInput;\n}(Input));\nexports.TextInput = TextInput;\nvar ToggleInput = /** @class */ (function (_super) {\n __extends(ToggleInput, _super);\n function ToggleInput() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.valueOn = \"true\";\n _this.valueOff = \"false\";\n _this.wrap = false;\n return _this;\n }\n ToggleInput.prototype.updateInputControlAriaLabelledBy = function () {\n if (this._checkboxInputElement) {\n var joinedLabelIds = this.getAllLabelIds().join(\" \");\n if (this._checkboxInputLabelElement && this._checkboxInputLabelElement.id) {\n joinedLabelIds += \" \" + this._checkboxInputLabelElement.id;\n }\n if (joinedLabelIds) {\n this._checkboxInputElement.setAttribute(\"aria-labelledby\", joinedLabelIds);\n }\n else {\n this._checkboxInputElement.removeAttribute(\"aria-labelledby\");\n }\n }\n };\n ToggleInput.prototype.internalRender = function () {\n var _this = this;\n var element = document.createElement(\"div\");\n element.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-toggleInput\");\n element.style.width = \"100%\";\n element.style.display = \"flex\";\n element.style.alignItems = \"center\";\n this._checkboxInputElement = document.createElement(\"input\");\n this._checkboxInputElement.id = Utils.generateUniqueId();\n this._checkboxInputElement.type = \"checkbox\";\n this._checkboxInputElement.style.display = \"inline-block\";\n this._checkboxInputElement.style.verticalAlign = \"middle\";\n this._checkboxInputElement.style.margin = \"0\";\n this._checkboxInputElement.style.flex = \"0 0 auto\";\n if (this.title) {\n this._checkboxInputElement.setAttribute(\"aria-label\", this.title);\n }\n if (this.isRequired) {\n this._checkboxInputElement.setAttribute(\"aria-required\", \"true\");\n }\n this._checkboxInputElement.tabIndex = this.isDesignMode() ? -1 : 0;\n if (this.defaultValue === this.valueOn) {\n this._checkboxInputElement.checked = true;\n }\n this._oldCheckboxValue = this._checkboxInputElement.checked;\n this._checkboxInputElement.onchange = function () {\n _this.valueChanged();\n };\n Utils.appendChild(element, this._checkboxInputElement);\n if (this.title || this.isDesignMode()) {\n var label = new TextBlock();\n label.setParent(this);\n label.forElementId = this._checkboxInputElement.id;\n label.hostConfig = this.hostConfig;\n label.text = !this.title ? this.getJsonTypeName() : this.title;\n label.useMarkdown = shared_1.GlobalSettings.useMarkdownInRadioButtonAndCheckbox;\n label.wrap = this.wrap;\n this._checkboxInputLabelElement = label.render();\n if (this._checkboxInputLabelElement) {\n this._checkboxInputLabelElement.id = Utils.generateUniqueId();\n this._checkboxInputLabelElement.style.display = \"inline-block\";\n this._checkboxInputLabelElement.style.flex = \"1 1 auto\";\n this._checkboxInputLabelElement.style.marginLeft = \"6px\";\n this._checkboxInputLabelElement.style.verticalAlign = \"middle\";\n var spacerElement = document.createElement(\"div\");\n spacerElement.style.width = \"6px\";\n Utils.appendChild(element, spacerElement);\n Utils.appendChild(element, this._checkboxInputLabelElement);\n }\n }\n return element;\n };\n Object.defineProperty(ToggleInput.prototype, \"isNullable\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n ToggleInput.prototype.updateVisualState = function (eventType) {\n };\n ToggleInput.prototype.getJsonTypeName = function () {\n return \"Input.Toggle\";\n };\n ToggleInput.prototype.focus = function () {\n if (this._checkboxInputElement) {\n this._checkboxInputElement.focus();\n }\n };\n ToggleInput.prototype.isSet = function () {\n if (this.isRequired) {\n return this.value === this.valueOn;\n }\n return this.value ? true : false;\n };\n ToggleInput.prototype.isDirty = function () {\n return this._checkboxInputElement\n ? this._checkboxInputElement.checked !== this._oldCheckboxValue\n : false;\n };\n Object.defineProperty(ToggleInput.prototype, \"value\", {\n get: function () {\n if (this._checkboxInputElement) {\n return this._checkboxInputElement.checked ? this.valueOn : this.valueOff;\n }\n else {\n return undefined;\n }\n },\n enumerable: false,\n configurable: true\n });\n ToggleInput.valueProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"value\");\n ToggleInput.titleProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"title\");\n ToggleInput.valueOnProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"valueOn\", true, undefined, \"true\", function (sender) {\n return \"true\";\n });\n ToggleInput.valueOffProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"valueOff\", true, undefined, \"false\", function (sender) {\n return \"false\";\n });\n ToggleInput.wrapProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_2, \"wrap\", false);\n __decorate([\n (0, serialization_1.property)(ToggleInput.valueProperty)\n ], ToggleInput.prototype, \"defaultValue\", void 0);\n __decorate([\n (0, serialization_1.property)(ToggleInput.titleProperty)\n ], ToggleInput.prototype, \"title\", void 0);\n __decorate([\n (0, serialization_1.property)(ToggleInput.valueOnProperty)\n ], ToggleInput.prototype, \"valueOn\", void 0);\n __decorate([\n (0, serialization_1.property)(ToggleInput.valueOffProperty)\n ], ToggleInput.prototype, \"valueOff\", void 0);\n __decorate([\n (0, serialization_1.property)(ToggleInput.wrapProperty)\n ], ToggleInput.prototype, \"wrap\", void 0);\n return ToggleInput;\n}(Input));\nexports.ToggleInput = ToggleInput;\nvar Choice = /** @class */ (function (_super) {\n __extends(Choice, _super);\n function Choice(title, value) {\n var _this = _super.call(this) || this;\n _this.title = title;\n _this.value = value;\n return _this;\n }\n //#endregion\n Choice.prototype.getSchemaKey = function () {\n return \"Choice\";\n };\n //#region Schema\n Choice.titleProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"title\");\n Choice.valueProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"value\");\n __decorate([\n (0, serialization_1.property)(Choice.titleProperty)\n ], Choice.prototype, \"title\", void 0);\n __decorate([\n (0, serialization_1.property)(Choice.valueProperty)\n ], Choice.prototype, \"value\", void 0);\n return Choice;\n}(serialization_1.SerializableObject));\nexports.Choice = Choice;\n/**\n * DataQuery class is declared later in the file and derives from subsequent base classes\n * Hence, it cannot be used in ChoiceSetInput.\n * Refactor is needed to separate elements and actions in separate files.\n */\nvar ChoiceSetInputDataQuery = /** @class */ (function (_super) {\n __extends(ChoiceSetInputDataQuery, _super);\n function ChoiceSetInputDataQuery() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n //#endregion\n ChoiceSetInputDataQuery.prototype.getSchemaKey = function () {\n return \"choices.data\";\n };\n //#region Schema\n ChoiceSetInputDataQuery.typeProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_6, \"type\", true, new RegExp(\"^Data.Query$\"));\n ChoiceSetInputDataQuery.datasetProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_6, \"dataset\");\n ChoiceSetInputDataQuery.countProperty = new serialization_1.NumProperty(serialization_1.Versions.v1_6, \"count\");\n ChoiceSetInputDataQuery.skipProperty = new serialization_1.NumProperty(serialization_1.Versions.v1_6, \"skip\");\n __decorate([\n (0, serialization_1.property)(ChoiceSetInputDataQuery.typeProperty)\n ], ChoiceSetInputDataQuery.prototype, \"type\", void 0);\n __decorate([\n (0, serialization_1.property)(ChoiceSetInputDataQuery.datasetProperty)\n ], ChoiceSetInputDataQuery.prototype, \"dataset\", void 0);\n __decorate([\n (0, serialization_1.property)(ChoiceSetInputDataQuery.countProperty)\n ], ChoiceSetInputDataQuery.prototype, \"count\", void 0);\n __decorate([\n (0, serialization_1.property)(ChoiceSetInputDataQuery.skipProperty)\n ], ChoiceSetInputDataQuery.prototype, \"skip\", void 0);\n return ChoiceSetInputDataQuery;\n}(serialization_1.SerializableObject));\nexports.ChoiceSetInputDataQuery = ChoiceSetInputDataQuery;\nvar ChoiceSetInput = /** @class */ (function (_super) {\n __extends(ChoiceSetInput, _super);\n function ChoiceSetInput() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isMultiSelect = false;\n _this.wrap = false;\n _this.choices = [];\n return _this;\n }\n Object.defineProperty(ChoiceSetInput.prototype, \"isCompact\", {\n get: function () {\n return !this.style || this.style === \"compact\";\n },\n set: function (value) {\n this.style = value ? undefined : \"expanded\";\n },\n enumerable: false,\n configurable: true\n });\n ChoiceSetInput.getUniqueCategoryName = function () {\n var uniqueCategoryName = \"__ac-category\" + ChoiceSetInput._uniqueCategoryCounter;\n ChoiceSetInput._uniqueCategoryCounter++;\n return uniqueCategoryName;\n };\n ChoiceSetInput.prototype.isDynamicTypeahead = function () {\n return (!!this.choicesData &&\n !!this.choicesData.dataset &&\n this.choicesData.type === \"Data.Query\");\n };\n ChoiceSetInput.prototype.getFilterForDynamicSearch = function () {\n var _a, _b;\n return (_b = (_a = this._filteredChoiceSet) === null || _a === void 0 ? void 0 : _a.textInput) === null || _b === void 0 ? void 0 : _b.value;\n };\n ChoiceSetInput.prototype.renderChoices = function (fetchedChoices) {\n var _a;\n (_a = this._filteredChoiceSet) === null || _a === void 0 ? void 0 : _a.processResponse(fetchedChoices);\n };\n ChoiceSetInput.prototype.showLoadingIndicator = function () {\n var _a;\n (_a = this._filteredChoiceSet) === null || _a === void 0 ? void 0 : _a.showLoadingIndicator();\n };\n ChoiceSetInput.prototype.removeLoadingIndicator = function () {\n var _a;\n (_a = this._filteredChoiceSet) === null || _a === void 0 ? void 0 : _a.removeLoadingIndicator();\n };\n ChoiceSetInput.prototype.showErrorIndicator = function (error) {\n var _a;\n (_a = this._filteredChoiceSet) === null || _a === void 0 ? void 0 : _a.showErrorIndicator(error);\n };\n ChoiceSetInput.prototype.createPlaceholderOptionWhenValueDoesNotExist = function () {\n if (!this.value) {\n var placeholderOption = document.createElement(\"option\");\n placeholderOption.selected = true;\n placeholderOption.disabled = true;\n placeholderOption.hidden = true;\n placeholderOption.value = \"\";\n if (this.placeholder) {\n placeholderOption.text = this.placeholder;\n }\n return placeholderOption;\n }\n return undefined;\n };\n // Make sure `aria-current` is applied to the currently-selected item\n ChoiceSetInput.prototype.internalApplyAriaCurrent = function () {\n if (this._selectElement) {\n var options = this._selectElement.options;\n if (options) {\n for (var _i = 0, _a = Array.from(options); _i < _a.length; _i++) {\n var option = _a[_i];\n if (option.selected) {\n option.setAttribute(\"aria-current\", \"true\");\n }\n else {\n option.removeAttribute(\"aria-current\");\n }\n }\n }\n }\n };\n ChoiceSetInput.prototype.renderCompoundInput = function (cssClassName, type, defaultValues) {\n var _this = this;\n var element = document.createElement(\"div\");\n element.className = this.hostConfig.makeCssClassName(\"ac-input\", cssClassName);\n element.style.width = \"100%\";\n element.tabIndex = this.isDesignMode() ? -1 : 0;\n this._toggleInputs = [];\n this._labels = [];\n for (var _i = 0, _a = this.choices; _i < _a.length; _i++) {\n var choice = _a[_i];\n var input = document.createElement(\"input\");\n input.id = Utils.generateUniqueId();\n input.type = type;\n input.style.margin = \"0\";\n input.style.display = \"inline-block\";\n input.style.verticalAlign = \"middle\";\n input.style.flex = \"0 0 auto\";\n input.name = this.id ? this.id : this._uniqueCategoryName;\n if (this.isRequired) {\n input.setAttribute(\"aria-required\", \"true\");\n }\n input.tabIndex = this.isDesignMode() ? -1 : 0;\n if (choice.value) {\n input.value = choice.value;\n }\n if (choice.title) {\n input.setAttribute(\"aria-label\", choice.title);\n }\n if (defaultValues && choice.value) {\n if (defaultValues.indexOf(choice.value) >= 0) {\n input.checked = true;\n }\n }\n input.onchange = function () {\n _this.valueChanged();\n };\n this._toggleInputs.push(input);\n var compoundInput = document.createElement(\"div\");\n compoundInput.style.display = \"flex\";\n compoundInput.style.alignItems = \"center\";\n Utils.appendChild(compoundInput, input);\n var label = new TextBlock();\n label.setParent(this);\n label.forElementId = input.id;\n label.hostConfig = this.hostConfig;\n label.text = choice.title ? choice.title : \"Choice \" + this._toggleInputs.length;\n label.useMarkdown = shared_1.GlobalSettings.useMarkdownInRadioButtonAndCheckbox;\n label.wrap = this.wrap;\n var labelElement = label.render();\n this._labels.push(labelElement);\n if (labelElement) {\n labelElement.id = Utils.generateUniqueId();\n labelElement.style.display = \"inline-block\";\n labelElement.style.flex = \"1 1 auto\";\n labelElement.style.marginLeft = \"6px\";\n labelElement.style.verticalAlign = \"middle\";\n var spacerElement = document.createElement(\"div\");\n spacerElement.style.width = \"6px\";\n Utils.appendChild(compoundInput, spacerElement);\n Utils.appendChild(compoundInput, labelElement);\n }\n Utils.appendChild(element, compoundInput);\n }\n return element;\n };\n ChoiceSetInput.prototype.updateInputControlAriaLabelledBy = function () {\n if ((this.isMultiSelect || this.style === \"expanded\") &&\n this._toggleInputs &&\n this._labels) {\n var labelIds = this.getAllLabelIds();\n for (var i = 0; i < this._toggleInputs.length; i++) {\n var joinedLabelIds = labelIds.join(\" \");\n var label = this._labels[i];\n if (label && label.id) {\n joinedLabelIds += \" \" + label.id;\n }\n if (joinedLabelIds) {\n this._toggleInputs[i].setAttribute(\"aria-labelledby\", joinedLabelIds);\n }\n else {\n this._toggleInputs[i].removeAttribute(\"aria-labelledby\");\n }\n }\n }\n else {\n _super.prototype.updateInputControlAriaLabelledBy.call(this);\n }\n };\n ChoiceSetInput.prototype.internalRender = function () {\n var _this = this;\n this._uniqueCategoryName = ChoiceSetInput.getUniqueCategoryName();\n if (this.isDynamicTypeahead()) {\n var filteredChoiceSet_1 = new FilteredChoiceSet(ChoiceSetInput._uniqueCategoryCounter, this.choices, this.hostConfig);\n filteredChoiceSet_1.render();\n if (filteredChoiceSet_1.textInput) {\n this._textInput = filteredChoiceSet_1.textInput;\n if (this.defaultValue) {\n this._textInput.value = this.defaultValue;\n }\n if (this.placeholder && !this._textInput.value) {\n this._textInput.placeholder = this.placeholder;\n this._textInput.setAttribute(\"aria-label\", this.placeholder);\n }\n this._textInput.tabIndex = this.isDesignMode() ? -1 : 0;\n var onInputChangeEventHandler = Utils.debounce(function () {\n filteredChoiceSet_1.processStaticChoices();\n _this.valueChanged();\n if (_this._textInput) {\n // Remove aria-label when value is not empty so narration software doesn't\n // read the placeholder\n if (_this.value) {\n _this._textInput.removeAttribute(\"placeholder\");\n _this._textInput.removeAttribute(\"aria-label\");\n }\n else if (_this.placeholder) {\n _this._textInput.placeholder = _this.placeholder;\n _this._textInput.setAttribute(\"aria-label\", _this.placeholder);\n }\n }\n }, this.hostConfig.inputs.debounceTimeInMilliSeconds);\n this._textInput.onclick = onInputChangeEventHandler;\n this._textInput.oninput = onInputChangeEventHandler;\n }\n filteredChoiceSet_1.parent = this;\n this._filteredChoiceSet = filteredChoiceSet_1;\n return filteredChoiceSet_1.renderedElement;\n }\n else if (this.isMultiSelect) {\n // Render as a list of toggle inputs\n return this.renderCompoundInput(\"ac-choiceSetInput-multiSelect\", \"checkbox\", this.defaultValue\n ? this.defaultValue.split(this.hostConfig.choiceSetInputValueSeparator)\n : undefined);\n }\n else {\n if (this.style === \"expanded\") {\n // Render as a series of radio buttons\n return this.renderCompoundInput(\"ac-choiceSetInput-expanded\", \"radio\", this.defaultValue ? [this.defaultValue] : undefined);\n }\n else if (this.style === \"filtered\") {\n // Render as a text input coupled with a datalist\n var inputContainer = document.createElement(\"div\");\n inputContainer.style.width = \"100%\";\n this._textInput = document.createElement(\"input\");\n this._textInput.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-multichoiceInput\", \"ac-choiceSetInput-filtered\");\n this._textInput.type = \"text\";\n this._textInput.style.width = \"100%\";\n this._textInput.oninput = function () {\n _this.valueChanged();\n if (_this._textInput) {\n // Remove aria-label when value is not empty so narration software doesn't\n // read the placeholder\n if (_this.value) {\n _this._textInput.removeAttribute(\"placeholder\");\n _this._textInput.removeAttribute(\"aria-label\");\n }\n else if (_this.placeholder) {\n _this._textInput.placeholder = _this.placeholder;\n _this._textInput.setAttribute(\"aria-label\", _this.placeholder);\n }\n }\n };\n if (this.defaultValue) {\n this._textInput.value = this.defaultValue;\n }\n if (this.placeholder && !this._textInput.value) {\n this._textInput.placeholder = this.placeholder;\n this._textInput.setAttribute(\"aria-label\", this.placeholder);\n }\n this._textInput.tabIndex = this.isDesignMode() ? -1 : 0;\n var dataList = document.createElement(\"datalist\");\n dataList.id = Utils.generateUniqueId();\n for (var _i = 0, _a = this.choices; _i < _a.length; _i++) {\n var choice = _a[_i];\n var option = document.createElement(\"option\");\n // To fix https://stackoverflow.com/questions/29882361/show-datalist-labels-but-submit-the-actual-value\n // value is mapped to choice.title other than choice.value\n if (choice.title) {\n option.value = choice.title;\n option.setAttribute(\"aria-label\", choice.title);\n }\n option.tabIndex = this.isDesignMode() ? -1 : 0;\n dataList.appendChild(option);\n }\n this._textInput.setAttribute(\"list\", dataList.id);\n inputContainer.append(this._textInput, dataList);\n return inputContainer;\n }\n else {\n // Render as a combo box\n this._selectElement = document.createElement(\"select\");\n this._selectElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-multichoiceInput\", \"ac-choiceSetInput-compact\");\n this._selectElement.style.width = \"100%\";\n this._selectElement.tabIndex = this.isDesignMode() ? -1 : 0;\n var placeholderOption = this.createPlaceholderOptionWhenValueDoesNotExist();\n Utils.appendChild(this._selectElement, placeholderOption);\n for (var _b = 0, _c = this.choices; _b < _c.length; _b++) {\n var choice = _c[_b];\n var option = document.createElement(\"option\");\n option.value = choice.value;\n if (choice.title) {\n option.text = choice.title;\n option.setAttribute(\"aria-label\", choice.title);\n }\n option.tabIndex = this.isDesignMode() ? -1 : 0;\n if (choice.value === this.defaultValue) {\n option.selected = true;\n }\n Utils.appendChild(this._selectElement, option);\n }\n this._selectElement.onchange = function () {\n _this.internalApplyAriaCurrent();\n _this.valueChanged();\n };\n this.internalApplyAriaCurrent();\n return this._selectElement;\n }\n }\n };\n ChoiceSetInput.prototype.updateVisualState = function (eventType) {\n if (!this.allowRevealOnHoverStyle) {\n return;\n }\n if (!this.isMultiSelect && this.isCompact) {\n _super.prototype.updateVisualState.call(this, eventType);\n if (this._selectElement && this.inputStyle === Enums.InputStyle.RevealOnHover) {\n var hideDropDownPicker = this.shouldHideInputAdornersForRevealOnHover(this._selectElement, eventType);\n if (hideDropDownPicker) {\n this._selectElement.style.appearance = \"none\";\n this._selectElement.classList.remove(this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onfocus\"));\n }\n else {\n this._selectElement.style.appearance = \"auto\";\n this._selectElement.classList.add(this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onfocus\"));\n }\n }\n }\n };\n ChoiceSetInput.prototype.getJsonTypeName = function () {\n return \"Input.ChoiceSet\";\n };\n ChoiceSetInput.prototype.focus = function () {\n if (this._toggleInputs && (this.isMultiSelect || this.style === \"expanded\")) {\n if (this._toggleInputs.length > 0) {\n this._toggleInputs[0].focus();\n }\n }\n else if (this._textInput) {\n this._textInput.focus();\n }\n else {\n _super.prototype.focus.call(this);\n }\n };\n ChoiceSetInput.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n if (this.choices.length === 0) {\n context.addFailure(this, Enums.ValidationEvent.CollectionCantBeEmpty, strings_1.Strings.errors.choiceSetMustHaveAtLeastOneChoice());\n }\n for (var _i = 0, _a = this.choices; _i < _a.length; _i++) {\n var choice = _a[_i];\n if (!choice.title || !choice.value) {\n context.addFailure(this, Enums.ValidationEvent.PropertyCantBeNull, strings_1.Strings.errors.choiceSetChoicesMustHaveTitleAndValue());\n }\n }\n };\n ChoiceSetInput.prototype.isSet = function () {\n return this.value ? true : false;\n };\n ChoiceSetInput.prototype.isValid = function () {\n if (this._textInput) {\n if (this.value === \"\" || this.value === this.placeholder) {\n return true;\n }\n for (var _i = 0, _a = this.choices; _i < _a.length; _i++) {\n var choice = _a[_i];\n if (this.value === choice.value) {\n return true;\n }\n }\n if (this.dynamicChoices) {\n for (var _b = 0, _c = this.dynamicChoices; _b < _c.length; _b++) {\n var choice = _c[_b];\n if (this.value === choice) {\n return true;\n }\n }\n }\n return false;\n }\n return _super.prototype.isValid.call(this);\n };\n Object.defineProperty(ChoiceSetInput.prototype, \"value\", {\n get: function () {\n if (!this.isMultiSelect) {\n if (this._selectElement) {\n return this._selectElement.selectedIndex > 0\n ? this._selectElement.value\n : undefined;\n }\n else if (this._textInput) {\n for (var _i = 0, _a = this.choices; _i < _a.length; _i++) {\n var choice = _a[_i];\n if (choice.title && this._textInput.value === choice.title) {\n return choice.value;\n }\n }\n return this._textInput.value;\n }\n else if (this._toggleInputs && this._toggleInputs.length > 0) {\n for (var _b = 0, _c = this._toggleInputs; _b < _c.length; _b++) {\n var toggleInput = _c[_b];\n if (toggleInput.checked) {\n return toggleInput.value;\n }\n }\n }\n return undefined;\n }\n else {\n if (!this._toggleInputs || this._toggleInputs.length === 0) {\n return undefined;\n }\n var result = \"\";\n for (var _d = 0, _f = this._toggleInputs; _d < _f.length; _d++) {\n var toggleInput = _f[_d];\n if (toggleInput.checked) {\n if (result !== \"\") {\n result += this.hostConfig.choiceSetInputValueSeparator;\n }\n result += toggleInput.value;\n }\n }\n return result ? result : undefined;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ChoiceSetInput.prototype, \"dynamicChoices\", {\n get: function () {\n var _a;\n return (_a = this._filteredChoiceSet) === null || _a === void 0 ? void 0 : _a.dynamicChoices;\n },\n enumerable: false,\n configurable: true\n });\n ChoiceSetInput.valueProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"value\");\n ChoiceSetInput.choicesProperty = new serialization_1.SerializableObjectCollectionProperty(serialization_1.Versions.v1_0, \"choices\", Choice);\n ChoiceSetInput.choicesDataProperty = new serialization_1.SerializableObjectProperty(serialization_1.Versions.v1_6, \"choices.data\", ChoiceSetInputDataQuery);\n ChoiceSetInput.styleProperty = new serialization_1.ValueSetProperty(serialization_1.Versions.v1_0, \"style\", [\n { value: \"compact\" },\n { value: \"expanded\" },\n { value: \"filtered\", targetVersion: serialization_1.Versions.v1_5 }\n ], \"compact\");\n ChoiceSetInput.isMultiSelectProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_0, \"isMultiSelect\", false);\n ChoiceSetInput.placeholderProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"placeholder\");\n ChoiceSetInput.wrapProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_2, \"wrap\", false);\n //#endregion\n ChoiceSetInput._uniqueCategoryCounter = 0;\n __decorate([\n (0, serialization_1.property)(ChoiceSetInput.valueProperty)\n ], ChoiceSetInput.prototype, \"defaultValue\", void 0);\n __decorate([\n (0, serialization_1.property)(ChoiceSetInput.styleProperty)\n ], ChoiceSetInput.prototype, \"style\", void 0);\n __decorate([\n (0, serialization_1.property)(ChoiceSetInput.isMultiSelectProperty)\n ], ChoiceSetInput.prototype, \"isMultiSelect\", void 0);\n __decorate([\n (0, serialization_1.property)(ChoiceSetInput.placeholderProperty)\n ], ChoiceSetInput.prototype, \"placeholder\", void 0);\n __decorate([\n (0, serialization_1.property)(ChoiceSetInput.wrapProperty)\n ], ChoiceSetInput.prototype, \"wrap\", void 0);\n __decorate([\n (0, serialization_1.property)(ChoiceSetInput.choicesProperty)\n ], ChoiceSetInput.prototype, \"choices\", void 0);\n __decorate([\n (0, serialization_1.property)(ChoiceSetInput.choicesDataProperty)\n ], ChoiceSetInput.prototype, \"choicesData\", void 0);\n return ChoiceSetInput;\n}(Input));\nexports.ChoiceSetInput = ChoiceSetInput;\nvar FilteredChoiceSet = /** @class */ (function () {\n function FilteredChoiceSet(choiceSetId, choices, hostConfig) {\n this._choiceSetId = choiceSetId;\n this._choices = choices;\n this._dynamicChoices = [];\n this._visibleChoiceCount = 0;\n this._hostConfig = hostConfig;\n }\n FilteredChoiceSet.prototype.render = function () {\n var _this = this;\n var choiceSetContainer = document.createElement(\"div\");\n choiceSetContainer.style.position = \"relative\";\n choiceSetContainer.style.width = \"100%\";\n this._textInput = document.createElement(\"input\");\n this._textInput.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-multichoiceInput\", \"ac-choiceSetInput-filtered\");\n this._textInput.type = \"text\";\n this._textInput.style.width = \"100%\";\n this._textInput.onkeydown = function (event) {\n if (event.key === \"ArrowDown\") {\n _this.focusChoice(0);\n }\n };\n this._dropdown = document.createElement(\"div\");\n this._dropdown.style.display = \"none\";\n this._dropdown.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-multichoiceInput\", \"ac-choiceSetInput-filtered-dropdown\");\n choiceSetContainer.append(this._textInput, this._dropdown);\n document.onclick = function (event) {\n if (_this._dropdown) {\n var child = _this._dropdown.firstChild;\n while (child && event.target !== child) {\n child = child.nextSibling;\n }\n // Dropdown closes if user clicks outside the choiceset.\n if (child || !(event.target === _this._textInput)) {\n _this._dropdown.style.display = \"none\";\n }\n }\n };\n this._renderedElement = choiceSetContainer;\n };\n FilteredChoiceSet.prototype.createChoice = function (value, filter, id) {\n var _this = this;\n var choice = document.createElement(\"span\");\n choice.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-choiceSetInput-choice\");\n choice.id = \"ac-choiceSetInput-\".concat(this._choiceSetId, \"-choice-\").concat(id);\n choice.innerHTML = value.replace(filter, \"<b>\".concat(filter, \"</b>\"));\n choice.tabIndex = -1;\n choice.addEventListener(\"focusin\", function () {\n choice.classList.add(\"focused\");\n });\n choice.addEventListener(\"focusout\", function () {\n choice.classList.remove(\"focused\");\n });\n choice.onclick = function () {\n if (_this._textInput) {\n _this._textInput.value = choice.innerText;\n }\n if (_this._dropdown) {\n _this._dropdown.style.display = \"none\";\n }\n };\n choice.onkeydown = function (event) {\n if (event.key === \"ArrowDown\") {\n _this.focusChoice(id + 1);\n }\n else if (event.key === \"ArrowUp\") {\n _this.focusChoice(id - 1);\n }\n else if (event.key === \"Enter\") {\n choice.click();\n }\n };\n choice.onmouseover = function () {\n _this.focusChoice(id);\n };\n return choice;\n };\n FilteredChoiceSet.prototype.focusChoice = function (id) {\n var choice = document.getElementById(\"ac-choiceSetInput-\".concat(this._choiceSetId, \"-choice-\").concat(id));\n if (choice) {\n choice.focus();\n }\n else if (this._textInput) {\n this._textInput.focus();\n var textLength = this._textInput.value.length;\n this._textInput.setSelectionRange(textLength, textLength);\n }\n };\n FilteredChoiceSet.prototype.filterChoices = function (isDynamic) {\n var _a, _b;\n var filter = (_a = this._textInput) === null || _a === void 0 ? void 0 : _a.value.toLowerCase();\n if (filter) {\n var choices = isDynamic ? this._dynamicChoices : this._choices;\n for (var _i = 0, choices_1 = choices; _i < choices_1.length; _i++) {\n var choice = choices_1[_i];\n if (choice.title) {\n var matchIndex = choice.title.toLowerCase().indexOf(filter);\n if (matchIndex !== -1) {\n var matchedText = choice.title.substring(matchIndex, matchIndex + filter.length);\n var choiceContainer = this.createChoice(choice.title, matchedText, this._visibleChoiceCount++);\n (_b = this._dropdown) === null || _b === void 0 ? void 0 : _b.appendChild(choiceContainer);\n }\n }\n }\n }\n };\n FilteredChoiceSet.prototype.getStatusIndicator = function (error) {\n if (error) {\n if (!this._errorIndicator) {\n var errorIndicator = document.createElement(\"div\");\n errorIndicator.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-choiceSetInput-statusIndicator\", \"ac-choiceSetInput-errorIndicator\");\n this._errorIndicator = errorIndicator;\n }\n this._errorIndicator.innerText = error;\n return this._errorIndicator;\n }\n else {\n if (!this._loadingIndicator) {\n var loadingIndicator = document.createElement(\"div\");\n loadingIndicator.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-choiceSetInput-statusIndicator\");\n this._loadingIndicator = loadingIndicator;\n }\n this._loadingIndicator.innerText =\n this._visibleChoiceCount === 0 ? \"Loading...\" : \"Loading more...\";\n return this._loadingIndicator;\n }\n };\n FilteredChoiceSet.prototype.resetDropdown = function () {\n this._dynamicChoices = [];\n if (this._dropdown) {\n Utils.clearElementChildren(this._dropdown);\n this._visibleChoiceCount = 0;\n }\n };\n FilteredChoiceSet.prototype.showDropdown = function () {\n var _a;\n if ((_a = this._dropdown) === null || _a === void 0 ? void 0 : _a.hasChildNodes) {\n this._dropdown.style.display = \"block\";\n }\n };\n FilteredChoiceSet.prototype.processStaticChoices = function () {\n this.resetDropdown();\n this.filterChoices();\n this.showDropdown();\n };\n FilteredChoiceSet.prototype.processResponse = function (fetchedChoices) {\n this._dynamicChoices = fetchedChoices;\n this.filterChoices(true);\n if (this._visibleChoiceCount === 0) {\n this.showErrorIndicator(\"No results found.\");\n }\n };\n FilteredChoiceSet.prototype.showLoadingIndicator = function () {\n var _a;\n var loadingIndicator = this.getStatusIndicator();\n (_a = this._dropdown) === null || _a === void 0 ? void 0 : _a.appendChild(loadingIndicator);\n this.showDropdown();\n };\n FilteredChoiceSet.prototype.removeLoadingIndicator = function () {\n var _a, _b;\n if (this._loadingIndicator && ((_a = this._dropdown) === null || _a === void 0 ? void 0 : _a.contains(this._loadingIndicator))) {\n (_b = this._dropdown) === null || _b === void 0 ? void 0 : _b.removeChild(this._loadingIndicator);\n }\n };\n FilteredChoiceSet.prototype.showErrorIndicator = function (error) {\n var _a;\n this.removeLoadingIndicator();\n var errorIndicator = this.getStatusIndicator(error);\n (_a = this._dropdown) === null || _a === void 0 ? void 0 : _a.appendChild(errorIndicator);\n };\n Object.defineProperty(FilteredChoiceSet.prototype, \"dynamicChoices\", {\n get: function () {\n var _a;\n return (_a = this._dynamicChoices) === null || _a === void 0 ? void 0 : _a.map(function (choice) { return choice.title; });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FilteredChoiceSet.prototype, \"hostConfig\", {\n get: function () {\n if (this._hostConfig) {\n return this._hostConfig;\n }\n else {\n if (this.parent) {\n return this.parent.hostConfig;\n }\n else {\n return host_config_1.defaultHostConfig;\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FilteredChoiceSet.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n set: function (value) {\n this._parent = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FilteredChoiceSet.prototype, \"renderedElement\", {\n get: function () {\n return this._renderedElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FilteredChoiceSet.prototype, \"textInput\", {\n get: function () {\n return this._textInput;\n },\n enumerable: false,\n configurable: true\n });\n return FilteredChoiceSet;\n}());\nexports.FilteredChoiceSet = FilteredChoiceSet;\nvar NumberInput = /** @class */ (function (_super) {\n __extends(NumberInput, _super);\n function NumberInput() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NumberInput.prototype.internalRender = function () {\n var _this = this;\n this._numberInputElement = document.createElement(\"input\");\n this._numberInputElement.setAttribute(\"type\", \"number\");\n if (this.min !== undefined) {\n this._numberInputElement.setAttribute(\"min\", this.min.toString());\n }\n if (this.max !== undefined) {\n this._numberInputElement.setAttribute(\"max\", this.max.toString());\n }\n this._numberInputElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-numberInput\");\n this._numberInputElement.style.width = \"100%\";\n this._numberInputElement.tabIndex = this.isDesignMode() ? -1 : 0;\n if (this.defaultValue !== undefined) {\n this._numberInputElement.valueAsNumber = this.defaultValue;\n }\n if (this.placeholder) {\n this._numberInputElement.placeholder = this.placeholder;\n this._numberInputElement.setAttribute(\"aria-label\", this.placeholder);\n }\n this._numberInputElement.oninput = function () {\n _this.valueChanged();\n };\n return this._numberInputElement;\n };\n NumberInput.prototype.getJsonTypeName = function () {\n return \"Input.Number\";\n };\n NumberInput.prototype.isSet = function () {\n return this.value !== undefined && !isNaN(this.value);\n };\n NumberInput.prototype.isValid = function () {\n if (this.value === undefined) {\n return !this.isRequired;\n }\n var result = true;\n if (this.min !== undefined) {\n result = result && this.value >= this.min;\n }\n if (this.max !== undefined) {\n result = result && this.value <= this.max;\n }\n return result;\n };\n Object.defineProperty(NumberInput.prototype, \"value\", {\n get: function () {\n return this._numberInputElement ? this._numberInputElement.valueAsNumber : undefined;\n },\n set: function (value) {\n if (value && this._numberInputElement) {\n this._numberInputElement.value = value.toString();\n }\n },\n enumerable: false,\n configurable: true\n });\n //#region Schema\n NumberInput.valueProperty = new serialization_1.NumProperty(serialization_1.Versions.v1_0, \"value\");\n NumberInput.placeholderProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"placeholder\");\n NumberInput.minProperty = new serialization_1.NumProperty(serialization_1.Versions.v1_0, \"min\");\n NumberInput.maxProperty = new serialization_1.NumProperty(serialization_1.Versions.v1_0, \"max\");\n __decorate([\n (0, serialization_1.property)(NumberInput.valueProperty)\n ], NumberInput.prototype, \"defaultValue\", void 0);\n __decorate([\n (0, serialization_1.property)(NumberInput.minProperty)\n ], NumberInput.prototype, \"min\", void 0);\n __decorate([\n (0, serialization_1.property)(NumberInput.maxProperty)\n ], NumberInput.prototype, \"max\", void 0);\n __decorate([\n (0, serialization_1.property)(NumberInput.placeholderProperty)\n ], NumberInput.prototype, \"placeholder\", void 0);\n return NumberInput;\n}(Input));\nexports.NumberInput = NumberInput;\nvar DateInput = /** @class */ (function (_super) {\n __extends(DateInput, _super);\n function DateInput() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DateInput.prototype.internalRender = function () {\n var _this = this;\n this._dateInputElement = document.createElement(\"input\");\n this._dateInputElement.setAttribute(\"type\", \"date\");\n if (this.min) {\n this._dateInputElement.setAttribute(\"min\", this.min);\n }\n if (this.max) {\n this._dateInputElement.setAttribute(\"max\", this.max);\n }\n if (this.placeholder) {\n this._dateInputElement.placeholder = this.placeholder;\n this._dateInputElement.setAttribute(\"aria-label\", this.placeholder);\n }\n this._dateInputElement.tabIndex = this.isDesignMode() ? -1 : 0;\n this._dateInputElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-dateInput\");\n this._dateInputElement.style.width = \"100%\";\n this._dateInputElement.oninput = function () {\n _this.valueChanged();\n };\n if (this.defaultValue) {\n this._dateInputElement.value = this.defaultValue;\n }\n return this._dateInputElement;\n };\n DateInput.prototype.updateVisualState = function (eventType) {\n if (!this.allowRevealOnHoverStyle) {\n return;\n }\n _super.prototype.updateVisualState.call(this, eventType);\n if (this._dateInputElement && this.inputStyle === Enums.InputStyle.RevealOnHover) {\n var hideDatePicker = this.shouldHideInputAdornersForRevealOnHover(this._dateInputElement, eventType);\n if (hideDatePicker) {\n this._dateInputElement.classList.remove(this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onfocus\"));\n }\n else {\n this._dateInputElement.classList.add(this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onfocus\"));\n }\n updateInputAdornersVisibility(this._dateInputElement, hideDatePicker /*hide*/);\n }\n };\n DateInput.prototype.getJsonTypeName = function () {\n return \"Input.Date\";\n };\n DateInput.prototype.isSet = function () {\n return this.value ? true : false;\n };\n DateInput.prototype.isValid = function () {\n if (!this.value) {\n return !this.isRequired;\n }\n var valueAsDate = new Date(this.value);\n var result = true;\n if (this.min) {\n var minDate = new Date(this.min);\n result = result && valueAsDate >= minDate;\n }\n if (this.max) {\n var maxDate = new Date(this.max);\n result = result && valueAsDate <= maxDate;\n }\n return result;\n };\n Object.defineProperty(DateInput.prototype, \"value\", {\n get: function () {\n return this._dateInputElement ? this._dateInputElement.value : undefined;\n },\n enumerable: false,\n configurable: true\n });\n //#region Schema\n DateInput.valueProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"value\");\n DateInput.placeholderProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"placeholder\");\n DateInput.minProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"min\");\n DateInput.maxProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"max\");\n __decorate([\n (0, serialization_1.property)(DateInput.valueProperty)\n ], DateInput.prototype, \"defaultValue\", void 0);\n __decorate([\n (0, serialization_1.property)(DateInput.minProperty)\n ], DateInput.prototype, \"min\", void 0);\n __decorate([\n (0, serialization_1.property)(DateInput.maxProperty)\n ], DateInput.prototype, \"max\", void 0);\n __decorate([\n (0, serialization_1.property)(DateInput.placeholderProperty)\n ], DateInput.prototype, \"placeholder\", void 0);\n return DateInput;\n}(Input));\nexports.DateInput = DateInput;\nvar TimeProperty = /** @class */ (function (_super) {\n __extends(TimeProperty, _super);\n function TimeProperty(targetVersion, name) {\n var _this = _super.call(this, targetVersion, name, function (sender, prop, source, context) {\n var value = source[prop.name];\n if (typeof value === \"string\" && value && /^[0-9]{2}:[0-9]{2}$/.test(value)) {\n return value;\n }\n return undefined;\n }, function (sender, prop, target, value, context) {\n context.serializeValue(target, prop.name, value);\n }) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n return _this;\n }\n return TimeProperty;\n}(serialization_1.CustomProperty));\nexports.TimeProperty = TimeProperty;\nvar TimeInput = /** @class */ (function (_super) {\n __extends(TimeInput, _super);\n function TimeInput() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeInput.convertTimeStringToDate = function (timeString) {\n return new Date(\"1973-09-04T\" + timeString + \":00Z\");\n };\n TimeInput.prototype.internalRender = function () {\n var _this = this;\n this._timeInputElement = document.createElement(\"input\");\n this._timeInputElement.setAttribute(\"type\", \"time\");\n if (this.min) {\n this._timeInputElement.setAttribute(\"min\", this.min);\n }\n if (this.max) {\n this._timeInputElement.setAttribute(\"max\", this.max);\n }\n this._timeInputElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-timeInput\");\n this._timeInputElement.style.width = \"100%\";\n this._timeInputElement.oninput = function () {\n _this.valueChanged();\n };\n if (this.placeholder) {\n this._timeInputElement.placeholder = this.placeholder;\n this._timeInputElement.setAttribute(\"aria-label\", this.placeholder);\n }\n this._timeInputElement.tabIndex = this.isDesignMode() ? -1 : 0;\n if (this.defaultValue) {\n this._timeInputElement.value = this.defaultValue;\n }\n return this._timeInputElement;\n };\n TimeInput.prototype.updateVisualState = function (eventType) {\n if (!this.allowRevealOnHoverStyle) {\n return;\n }\n _super.prototype.updateVisualState.call(this, eventType);\n if (this._timeInputElement && this.inputStyle === Enums.InputStyle.RevealOnHover) {\n var hideTimePicker = this.shouldHideInputAdornersForRevealOnHover(this._timeInputElement, eventType);\n if (hideTimePicker) {\n this._timeInputElement.classList.remove(this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onfocus\"));\n }\n else {\n this._timeInputElement.classList.add(this.hostConfig.makeCssClassName(\"ac-inputStyle-revealOnHover-onfocus\"));\n }\n updateInputAdornersVisibility(this._timeInputElement, hideTimePicker /*hide*/);\n }\n };\n TimeInput.prototype.getJsonTypeName = function () {\n return \"Input.Time\";\n };\n TimeInput.prototype.isSet = function () {\n return this.value ? true : false;\n };\n TimeInput.prototype.isValid = function () {\n if (!this.value) {\n return !this.isRequired;\n }\n var valueAsDate = TimeInput.convertTimeStringToDate(this.value);\n var result = true;\n if (this.min) {\n var minDate = TimeInput.convertTimeStringToDate(this.min);\n result = result && valueAsDate >= minDate;\n }\n if (this.max) {\n var maxDate = TimeInput.convertTimeStringToDate(this.max);\n result = result && valueAsDate <= maxDate;\n }\n return result;\n };\n Object.defineProperty(TimeInput.prototype, \"value\", {\n get: function () {\n return this._timeInputElement ? this._timeInputElement.value : undefined;\n },\n enumerable: false,\n configurable: true\n });\n //#region Schema\n TimeInput.valueProperty = new TimeProperty(serialization_1.Versions.v1_0, \"value\");\n TimeInput.placeholderProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"placeholder\");\n TimeInput.minProperty = new TimeProperty(serialization_1.Versions.v1_0, \"min\");\n TimeInput.maxProperty = new TimeProperty(serialization_1.Versions.v1_0, \"max\");\n __decorate([\n (0, serialization_1.property)(TimeInput.valueProperty)\n ], TimeInput.prototype, \"defaultValue\", void 0);\n __decorate([\n (0, serialization_1.property)(TimeInput.minProperty)\n ], TimeInput.prototype, \"min\", void 0);\n __decorate([\n (0, serialization_1.property)(TimeInput.maxProperty)\n ], TimeInput.prototype, \"max\", void 0);\n __decorate([\n (0, serialization_1.property)(TimeInput.placeholderProperty)\n ], TimeInput.prototype, \"placeholder\", void 0);\n return TimeInput;\n}(Input));\nexports.TimeInput = TimeInput;\nvar Action = /** @class */ (function (_super) {\n __extends(Action, _super);\n function Action() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.style = Enums.ActionStyle.Default;\n _this.mode = Enums.ActionMode.Primary;\n _this._state = 0 /* Normal */;\n _this._isFocusable = true;\n return _this;\n }\n //#endregion\n Action.prototype.renderButtonContent = function () {\n if (this.renderedElement) {\n // Cache hostConfig for perf\n var hostConfig = this.hostConfig;\n var titleElement = document.createElement(\"div\");\n titleElement.style.overflow = \"hidden\";\n titleElement.style.textOverflow = \"ellipsis\";\n if (!(hostConfig.actions.iconPlacement === Enums.ActionIconPlacement.AboveTitle ||\n hostConfig.actions.allowTitleToWrap)) {\n titleElement.style.whiteSpace = \"nowrap\";\n }\n if (this.title) {\n titleElement.innerText = this.title;\n }\n if (!this.iconUrl) {\n this.renderedElement.classList.add(\"noIcon\");\n this.renderedElement.appendChild(titleElement);\n }\n else {\n var iconElement = document.createElement(\"img\");\n iconElement.src = this.iconUrl;\n iconElement.style.width = hostConfig.actions.iconSize + \"px\";\n iconElement.style.height = hostConfig.actions.iconSize + \"px\";\n iconElement.style.flex = \"0 0 auto\";\n if (hostConfig.actions.iconPlacement === Enums.ActionIconPlacement.AboveTitle) {\n this.renderedElement.classList.add(\"iconAbove\");\n this.renderedElement.style.flexDirection = \"column\";\n if (this.title) {\n iconElement.style.marginBottom = \"6px\";\n }\n }\n else {\n this.renderedElement.classList.add(\"iconLeft\");\n iconElement.style.maxHeight = \"100%\";\n if (this.title) {\n iconElement.style.marginRight = \"6px\";\n }\n }\n this.renderedElement.appendChild(iconElement);\n this.renderedElement.appendChild(titleElement);\n }\n }\n };\n Action.prototype.getParentContainer = function () {\n if (this.parent instanceof Container) {\n return this.parent;\n }\n return this.parent ? this.parent.getParentContainer() : undefined;\n };\n Action.prototype.isDesignMode = function () {\n var rootElement = this.getRootObject();\n return rootElement instanceof CardElement && rootElement.isDesignMode();\n };\n Action.prototype.updateCssClasses = function () {\n var _a, _b;\n if (this.parent && this.renderedElement) {\n var hostConfig = this.parent.hostConfig;\n this.renderedElement.className = hostConfig.makeCssClassName(this.isEffectivelyEnabled() ? \"ac-pushButton\" : \"ac-pushButton-disabled\");\n var parentContainer = this.getParentContainer();\n if (parentContainer) {\n var parentContainerStyle = parentContainer.getEffectiveStyle();\n if (parentContainerStyle) {\n this.renderedElement.classList.add(\"style-\" + parentContainerStyle);\n }\n }\n this.renderedElement.tabIndex = !this.isDesignMode() && this.isFocusable ? 0 : -1;\n switch (this._state) {\n case 0 /* Normal */:\n // No additional classes needed\n break;\n case 1 /* Expanded */:\n this.renderedElement.classList.add(hostConfig.makeCssClassName(\"expanded\"));\n break;\n case 2 /* Subdued */:\n this.renderedElement.classList.add(hostConfig.makeCssClassName(\"subdued\"));\n break;\n }\n if (this.style && this.isEffectivelyEnabled()) {\n if (this.style === Enums.ActionStyle.Positive) {\n (_a = this.renderedElement.classList).add.apply(_a, hostConfig.makeCssClassNames(\"primary\", \"style-positive\"));\n }\n else {\n (_b = this.renderedElement.classList).add.apply(_b, hostConfig.makeCssClassNames(\"style-\" + this.style.toLowerCase()));\n }\n }\n }\n };\n Action.prototype.getDefaultSerializationContext = function () {\n return new SerializationContext();\n };\n Action.prototype.internalGetReferencedInputs = function () {\n return {};\n };\n Action.prototype.internalPrepareForExecution = function (_inputs) {\n // Do nothing in base implementation\n };\n Action.prototype.internalValidateInputs = function (referencedInputs) {\n var result = [];\n if (referencedInputs) {\n for (var _i = 0, _a = Object.keys(referencedInputs); _i < _a.length; _i++) {\n var key = _a[_i];\n var input = referencedInputs[key];\n if (!input.validateValue()) {\n result.push(input);\n }\n }\n }\n return result;\n };\n Action.prototype.shouldSerialize = function (context) {\n return context.actionRegistry.findByName(this.getJsonTypeName()) !== undefined;\n };\n Action.prototype.raiseExecuteActionEvent = function () {\n if (this.onExecute) {\n this.onExecute(this);\n }\n raiseExecuteActionEvent(this);\n };\n Action.prototype.internalAfterExecute = function () {\n var rootObject = this.getRootObject();\n if (rootObject instanceof CardElement) {\n rootObject.updateActionsEnabledState();\n }\n };\n Action.prototype.getHref = function () {\n return \"\";\n };\n Action.prototype.getAriaRole = function () {\n var ariaRole = this.getAriaRoleFromEnum();\n return ariaRole !== null && ariaRole !== void 0 ? ariaRole : \"button\";\n };\n Action.prototype.getAriaRoleFromEnum = function () {\n switch (this.role) {\n case Enums.ActionRole.Button:\n return \"button\";\n case Enums.ActionRole.Link:\n return \"link\";\n case Enums.ActionRole.Menu:\n return \"menu\";\n case Enums.ActionRole.MenuItem:\n return \"menuitem\";\n case Enums.ActionRole.Tab:\n return \"tab\";\n default:\n return undefined;\n }\n };\n Action.prototype.setupElementForAccessibility = function (element, promoteTooltipToLabel) {\n if (promoteTooltipToLabel === void 0) { promoteTooltipToLabel = false; }\n element.tabIndex = this.isEffectivelyEnabled() && !this.isDesignMode() ? 0 : -1;\n element.setAttribute(\"role\", this.getAriaRole());\n if (element instanceof HTMLButtonElement) {\n element.disabled = !this.isEffectivelyEnabled();\n }\n if (!this.isEffectivelyEnabled()) {\n element.setAttribute(\"aria-disabled\", \"true\");\n }\n else {\n element.removeAttribute(\"aria-disabled\");\n element.classList.add(this.hostConfig.makeCssClassName(\"ac-selectable\"));\n }\n if (this.title) {\n element.setAttribute(\"aria-label\", this.title);\n element.title = this.title;\n }\n else {\n element.removeAttribute(\"aria-label\");\n element.removeAttribute(\"title\");\n }\n if (this.tooltip) {\n if (promoteTooltipToLabel && !this.title) {\n element.setAttribute(\"aria-label\", this.tooltip);\n }\n element.title = this.tooltip;\n }\n };\n Action.prototype.parse = function (source, context) {\n return _super.prototype.parse.call(this, source, context ? context : new SerializationContext());\n };\n Action.prototype.render = function () {\n var _this = this;\n var buttonElement = document.createElement(\"button\");\n buttonElement.type = \"button\";\n buttonElement.style.display = \"flex\";\n buttonElement.style.alignItems = \"center\";\n buttonElement.style.justifyContent = \"center\";\n buttonElement.onclick = function (e) {\n if (_this.isEffectivelyEnabled()) {\n e.preventDefault();\n e.cancelBubble = true;\n _this.execute();\n }\n };\n this._renderedElement = buttonElement;\n this.renderButtonContent();\n this.updateCssClasses();\n this.setupElementForAccessibility(buttonElement);\n };\n Action.prototype.execute = function () {\n if (this._actionCollection) {\n this._actionCollection.actionExecuted(this);\n }\n this.raiseExecuteActionEvent();\n this.internalAfterExecute();\n };\n Action.prototype.prepareForExecution = function () {\n var referencedInputs = this.getReferencedInputs();\n var invalidInputs = this.internalValidateInputs(referencedInputs);\n if (invalidInputs.length > 0) {\n invalidInputs[0].focus();\n return false;\n }\n this.internalPrepareForExecution(referencedInputs);\n return true;\n };\n Action.prototype.remove = function () {\n if (this._actionCollection) {\n return this._actionCollection.removeAction(this);\n }\n return false;\n };\n Action.prototype.getAllInputs = function (processActions) {\n if (processActions === void 0) { processActions = true; }\n return [];\n };\n Action.prototype.getAllActions = function () {\n return [this];\n };\n Action.prototype.getResourceInformation = function () {\n return this.iconUrl ? [{ url: this.iconUrl, mimeType: \"image\" }] : [];\n };\n Action.prototype.getActionById = function (id) {\n return this.id === id ? this : undefined;\n };\n Action.prototype.getReferencedInputs = function () {\n return this.internalGetReferencedInputs();\n };\n /**\n * Validates the inputs associated with this action.\n *\n * @returns A list of inputs that failed validation, or an empty array if no input failed validation.\n */\n Action.prototype.validateInputs = function () {\n return this.internalValidateInputs(this.getReferencedInputs());\n };\n Action.prototype.updateEnabledState = function () {\n // Do nothing in base implementation\n };\n Action.prototype.isEffectivelyEnabled = function () {\n return this.isEnabled;\n };\n Object.defineProperty(Action.prototype, \"isPrimary\", {\n get: function () {\n return this.style === Enums.ActionStyle.Positive;\n },\n set: function (value) {\n if (value) {\n this.style = Enums.ActionStyle.Positive;\n }\n else {\n if (this.style === Enums.ActionStyle.Positive) {\n this.style = Enums.ActionStyle.Default;\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Action.prototype, \"hostConfig\", {\n get: function () {\n return this.parent ? this.parent.hostConfig : host_config_1.defaultHostConfig;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Action.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Action.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n set: function (value) {\n if (this._state !== value) {\n this._state = value;\n this.updateCssClasses();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Action.prototype, \"isFocusable\", {\n get: function () {\n return this._isFocusable;\n },\n set: function (value) {\n if (this._isFocusable !== value) {\n this._isFocusable = value;\n this.updateCssClasses();\n }\n },\n enumerable: false,\n configurable: true\n });\n Action.titleProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"title\");\n Action.iconUrlProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_1, \"iconUrl\");\n Action.styleProperty = new serialization_1.ValueSetProperty(serialization_1.Versions.v1_2, \"style\", [\n { value: Enums.ActionStyle.Default },\n { value: Enums.ActionStyle.Positive },\n { value: Enums.ActionStyle.Destructive }\n ], Enums.ActionStyle.Default);\n Action.modeProperty = new serialization_1.ValueSetProperty(serialization_1.Versions.v1_5, \"mode\", [{ value: Enums.ActionMode.Primary }, { value: Enums.ActionMode.Secondary }], Enums.ActionMode.Primary);\n Action.tooltipProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_5, \"tooltip\");\n Action.isEnabledProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_5, \"isEnabled\", true);\n Action.roleProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_6, \"role\", Enums.ActionRole);\n __decorate([\n (0, serialization_1.property)(Action.titleProperty)\n ], Action.prototype, \"title\", void 0);\n __decorate([\n (0, serialization_1.property)(Action.iconUrlProperty)\n ], Action.prototype, \"iconUrl\", void 0);\n __decorate([\n (0, serialization_1.property)(Action.styleProperty)\n ], Action.prototype, \"style\", void 0);\n __decorate([\n (0, serialization_1.property)(Action.modeProperty)\n ], Action.prototype, \"mode\", void 0);\n __decorate([\n (0, serialization_1.property)(Action.tooltipProperty)\n ], Action.prototype, \"tooltip\", void 0);\n __decorate([\n (0, serialization_1.property)(Action.isEnabledProperty)\n ], Action.prototype, \"isEnabled\", void 0);\n __decorate([\n (0, serialization_1.property)(Action.roleProperty)\n ], Action.prototype, \"role\", void 0);\n return Action;\n}(card_object_1.CardObject));\nexports.Action = Action;\nvar SubmitActionBase = /** @class */ (function (_super) {\n __extends(SubmitActionBase, _super);\n function SubmitActionBase() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.disabledUnlessAssociatedInputsChange = false;\n //#endregion\n _this._isPrepared = false;\n _this._areReferencedInputsDirty = false;\n return _this;\n }\n SubmitActionBase.prototype.internalGetReferencedInputs = function () {\n var result = {};\n if (this.associatedInputs !== \"none\") {\n var current = this.parent;\n var inputs = [];\n while (current) {\n inputs.push.apply(inputs, current.getAllInputs(false));\n current = current.parent;\n }\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n if (input.id) {\n result[input.id] = input;\n }\n }\n }\n return result;\n };\n SubmitActionBase.prototype.internalPrepareForExecution = function (inputs) {\n if (this._originalData) {\n this._processedData = JSON.parse(JSON.stringify(this._originalData));\n }\n else {\n this._processedData = {};\n }\n if (this._processedData && inputs) {\n for (var _i = 0, _a = Object.keys(inputs); _i < _a.length; _i++) {\n var key = _a[_i];\n var input = inputs[key];\n if (input.id && input.isSet()) {\n this._processedData[input.id] =\n typeof input.value === \"string\" ? input.value : input.value.toString();\n }\n }\n }\n this._isPrepared = true;\n };\n SubmitActionBase.prototype.internalAfterExecute = function () {\n if (shared_1.GlobalSettings.resetInputsDirtyStateAfterActionExecution) {\n this.resetReferencedInputsDirtyState();\n }\n };\n SubmitActionBase.prototype.resetReferencedInputsDirtyState = function () {\n var referencedInputs = this.getReferencedInputs();\n this._areReferencedInputsDirty = false;\n if (referencedInputs) {\n for (var _i = 0, _a = Object.keys(referencedInputs); _i < _a.length; _i++) {\n var key = _a[_i];\n var input = referencedInputs[key];\n input.resetDirtyState();\n }\n }\n };\n SubmitActionBase.prototype.updateEnabledState = function () {\n this._areReferencedInputsDirty = false;\n var referencedInputs = this.getReferencedInputs();\n if (referencedInputs) {\n for (var _i = 0, _a = Object.keys(referencedInputs); _i < _a.length; _i++) {\n var key = _a[_i];\n var input = referencedInputs[key];\n if (input.isDirty()) {\n this._areReferencedInputsDirty = true;\n break;\n }\n }\n }\n this.updateCssClasses();\n if (this._renderedElement) {\n this.setupElementForAccessibility(this._renderedElement);\n }\n };\n SubmitActionBase.prototype.isEffectivelyEnabled = function () {\n var result = _super.prototype.isEffectivelyEnabled.call(this);\n return this.disabledUnlessAssociatedInputsChange\n ? result && this._areReferencedInputsDirty\n : result;\n };\n Object.defineProperty(SubmitActionBase.prototype, \"data\", {\n get: function () {\n return this._isPrepared ? this._processedData : this._originalData;\n },\n set: function (value) {\n this._originalData = value;\n this._isPrepared = false;\n },\n enumerable: false,\n configurable: true\n });\n SubmitActionBase.dataProperty = new serialization_1.PropertyDefinition(serialization_1.Versions.v1_0, \"data\");\n SubmitActionBase.associatedInputsProperty = new serialization_1.CustomProperty(serialization_1.Versions.v1_3, \"associatedInputs\", function (sender, prop, source, context) {\n var value = source[prop.name];\n if (value !== undefined && typeof value === \"string\") {\n return value.toLowerCase() === \"none\" ? \"none\" : \"auto\";\n }\n return undefined;\n }, function (sender, prop, target, value, context) {\n context.serializeValue(target, prop.name, value);\n });\n SubmitActionBase.disabledUnlessAssociatedInputsChangeProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_6, \"disabledUnlessAssociatedInputsChange\", false);\n __decorate([\n (0, serialization_1.property)(SubmitActionBase.dataProperty)\n ], SubmitActionBase.prototype, \"_originalData\", void 0);\n __decorate([\n (0, serialization_1.property)(SubmitActionBase.associatedInputsProperty)\n ], SubmitActionBase.prototype, \"associatedInputs\", void 0);\n __decorate([\n (0, serialization_1.property)(SubmitActionBase.disabledUnlessAssociatedInputsChangeProperty)\n ], SubmitActionBase.prototype, \"disabledUnlessAssociatedInputsChange\", void 0);\n return SubmitActionBase;\n}(Action));\nexports.SubmitActionBase = SubmitActionBase;\nvar SubmitAction = /** @class */ (function (_super) {\n __extends(SubmitAction, _super);\n function SubmitAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SubmitAction.prototype.getJsonTypeName = function () {\n return SubmitAction.JsonTypeName;\n };\n // Note the \"weird\" way this field is declared is to work around a breaking\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\n SubmitAction.JsonTypeName = \"Action.Submit\";\n return SubmitAction;\n}(SubmitActionBase));\nexports.SubmitAction = SubmitAction;\nvar UniversalAction = /** @class */ (function (_super) {\n __extends(UniversalAction, _super);\n function UniversalAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return UniversalAction;\n}(SubmitActionBase));\nexports.UniversalAction = UniversalAction;\nvar ExecuteAction = /** @class */ (function (_super) {\n __extends(ExecuteAction, _super);\n function ExecuteAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n //#endregion\n ExecuteAction.prototype.getJsonTypeName = function () {\n return ExecuteAction.JsonTypeName;\n };\n // Note the \"weird\" way this field is declared is to work around a breaking\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\n ExecuteAction.JsonTypeName = \"Action.Execute\";\n //#region Schema\n ExecuteAction.verbProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"verb\");\n __decorate([\n (0, serialization_1.property)(ExecuteAction.verbProperty)\n ], ExecuteAction.prototype, \"verb\", void 0);\n return ExecuteAction;\n}(UniversalAction));\nexports.ExecuteAction = ExecuteAction;\nvar DataQuery = /** @class */ (function (_super) {\n __extends(DataQuery, _super);\n function DataQuery() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n //#endregion\n DataQuery.prototype.getJsonTypeName = function () {\n return DataQuery.JsonTypeName;\n };\n Object.defineProperty(DataQuery.prototype, \"isStandalone\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n // Note the \"weird\" way this field is declared is to work around a breaking\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\n DataQuery.JsonTypeName = \"Data.Query\";\n //#region Schema\n DataQuery.datasetProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_6, \"dataset\");\n DataQuery.filterProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_6, \"filter\");\n DataQuery.countProperty = new serialization_1.NumProperty(serialization_1.Versions.v1_6, \"count\");\n DataQuery.skipProperty = new serialization_1.NumProperty(serialization_1.Versions.v1_6, \"skip\");\n __decorate([\n (0, serialization_1.property)(DataQuery.datasetProperty)\n ], DataQuery.prototype, \"dataset\", void 0);\n __decorate([\n (0, serialization_1.property)(DataQuery.filterProperty)\n ], DataQuery.prototype, \"filter\", void 0);\n __decorate([\n (0, serialization_1.property)(DataQuery.countProperty)\n ], DataQuery.prototype, \"count\", void 0);\n __decorate([\n (0, serialization_1.property)(DataQuery.skipProperty)\n ], DataQuery.prototype, \"skip\", void 0);\n return DataQuery;\n}(UniversalAction));\nexports.DataQuery = DataQuery;\nvar OpenUrlAction = /** @class */ (function (_super) {\n __extends(OpenUrlAction, _super);\n function OpenUrlAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OpenUrlAction.prototype.getJsonTypeName = function () {\n return OpenUrlAction.JsonTypeName;\n };\n OpenUrlAction.prototype.getAriaRole = function () {\n var ariaRole = this.getAriaRoleFromEnum();\n return ariaRole !== null && ariaRole !== void 0 ? ariaRole : \"link\";\n };\n OpenUrlAction.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n if (!this.url) {\n context.addFailure(this, Enums.ValidationEvent.PropertyCantBeNull, strings_1.Strings.errors.propertyMustBeSet(\"url\"));\n }\n };\n OpenUrlAction.prototype.getHref = function () {\n return this.url;\n };\n //#region Schema\n OpenUrlAction.urlProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"url\");\n //#endregion\n // Note the \"weird\" way this field is declared is to work around a breaking\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\n OpenUrlAction.JsonTypeName = \"Action.OpenUrl\";\n __decorate([\n (0, serialization_1.property)(OpenUrlAction.urlProperty)\n ], OpenUrlAction.prototype, \"url\", void 0);\n return OpenUrlAction;\n}(Action));\nexports.OpenUrlAction = OpenUrlAction;\nvar ToggleVisibilityAction = /** @class */ (function (_super) {\n __extends(ToggleVisibilityAction, _super);\n function ToggleVisibilityAction() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.targetElements = {};\n return _this;\n }\n ToggleVisibilityAction.prototype.updateAriaControlsAttribute = function () {\n // apply aria labels to make it clear which elements this action will toggle\n if (this.targetElements) {\n var elementIds = Object.keys(this.targetElements);\n if (this._renderedElement) {\n if (elementIds.length > 0) {\n this._renderedElement.setAttribute(\"aria-controls\", elementIds.join(\" \"));\n }\n else {\n this._renderedElement.removeAttribute(\"aria-controls\");\n }\n }\n }\n };\n ToggleVisibilityAction.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n if (!this.targetElements) {\n context.addFailure(this, Enums.ValidationEvent.PropertyCantBeNull, strings_1.Strings.errors.propertyMustBeSet(\"targetElements\"));\n }\n };\n ToggleVisibilityAction.prototype.getJsonTypeName = function () {\n return ToggleVisibilityAction.JsonTypeName;\n };\n ToggleVisibilityAction.prototype.render = function () {\n _super.prototype.render.call(this);\n this.updateAriaControlsAttribute();\n };\n ToggleVisibilityAction.prototype.execute = function () {\n _super.prototype.execute.call(this);\n if (this.parent) {\n for (var _i = 0, _a = Object.keys(this.targetElements); _i < _a.length; _i++) {\n var elementId = _a[_i];\n var targetElement = this.parent.getRootElement().getElementById(elementId);\n if (targetElement) {\n if (typeof this.targetElements[elementId] === \"boolean\") {\n targetElement.isVisible = this.targetElements[elementId];\n }\n else {\n targetElement.isVisible = !targetElement.isVisible;\n }\n }\n }\n }\n };\n ToggleVisibilityAction.prototype.addTargetElement = function (elementId, isVisible) {\n if (isVisible === void 0) { isVisible = undefined; }\n this.targetElements[elementId] = isVisible;\n this.updateAriaControlsAttribute();\n };\n ToggleVisibilityAction.prototype.removeTargetElement = function (elementId) {\n delete this.targetElements[elementId];\n this.updateAriaControlsAttribute();\n };\n ToggleVisibilityAction.targetElementsProperty = new serialization_1.CustomProperty(serialization_1.Versions.v1_2, \"targetElements\", function (sender, prop, source, context) {\n var result = {};\n if (Array.isArray(source[prop.name])) {\n for (var _i = 0, _a = source[prop.name]; _i < _a.length; _i++) {\n var item = _a[_i];\n if (typeof item === \"string\") {\n result[item] = undefined;\n }\n else if (typeof item === \"object\") {\n var elementId = item[\"elementId\"];\n if (typeof elementId === \"string\") {\n result[elementId] = Utils.parseBool(item[\"isVisible\"]);\n }\n }\n }\n }\n return result;\n }, function (sender, prop, target, value, context) {\n var targetElements = [];\n for (var _i = 0, _a = Object.keys(value); _i < _a.length; _i++) {\n var id = _a[_i];\n if (typeof value[id] === \"boolean\") {\n targetElements.push({\n elementId: id,\n isVisible: value[id]\n });\n }\n else {\n targetElements.push(id);\n }\n }\n context.serializeArray(target, prop.name, targetElements);\n }, {}, function (sender) {\n return {};\n });\n //#endregion\n // Note the \"weird\" way this field is declared is to work around a breaking\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\n ToggleVisibilityAction.JsonTypeName = \"Action.ToggleVisibility\";\n __decorate([\n (0, serialization_1.property)(ToggleVisibilityAction.targetElementsProperty)\n ], ToggleVisibilityAction.prototype, \"targetElements\", void 0);\n return ToggleVisibilityAction;\n}(Action));\nexports.ToggleVisibilityAction = ToggleVisibilityAction;\nvar StringWithSubstitutionProperty = /** @class */ (function (_super) {\n __extends(StringWithSubstitutionProperty, _super);\n function StringWithSubstitutionProperty(targetVersion, name) {\n var _this = _super.call(this, targetVersion, name, undefined, function () {\n return new shared_1.StringWithSubstitutions();\n }) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n return _this;\n }\n StringWithSubstitutionProperty.prototype.parse = function (sender, source, context) {\n var result = new shared_1.StringWithSubstitutions();\n result.set(Utils.parseString(source[this.name]));\n return result;\n };\n StringWithSubstitutionProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeValue(target, this.name, value.getOriginal());\n };\n return StringWithSubstitutionProperty;\n}(serialization_1.PropertyDefinition));\nvar HttpHeader = /** @class */ (function (_super) {\n __extends(HttpHeader, _super);\n //#endregion\n function HttpHeader(name, value) {\n if (name === void 0) { name = \"\"; }\n if (value === void 0) { value = \"\"; }\n var _this = _super.call(this) || this;\n _this.name = name;\n _this.value = value;\n return _this;\n }\n HttpHeader.prototype.getSchemaKey = function () {\n return \"HttpHeader\";\n };\n HttpHeader.prototype.getReferencedInputs = function (inputs, referencedInputs) {\n this._value.getReferencedInputs(inputs, referencedInputs);\n };\n HttpHeader.prototype.prepareForExecution = function (inputs) {\n this._value.substituteInputValues(inputs, shared_1.ContentTypes.applicationXWwwFormUrlencoded);\n };\n Object.defineProperty(HttpHeader.prototype, \"value\", {\n get: function () {\n return this._value.get();\n },\n set: function (newValue) {\n this._value.set(newValue);\n },\n enumerable: false,\n configurable: true\n });\n //#region Schema\n HttpHeader.nameProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"name\");\n HttpHeader.valueProperty = new StringWithSubstitutionProperty(serialization_1.Versions.v1_0, \"value\");\n __decorate([\n (0, serialization_1.property)(HttpHeader.nameProperty)\n ], HttpHeader.prototype, \"name\", void 0);\n __decorate([\n (0, serialization_1.property)(HttpHeader.valueProperty)\n ], HttpHeader.prototype, \"_value\", void 0);\n return HttpHeader;\n}(serialization_1.SerializableObject));\nexports.HttpHeader = HttpHeader;\nvar HttpAction = /** @class */ (function (_super) {\n __extends(HttpAction, _super);\n function HttpAction() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._ignoreInputValidation = false;\n return _this;\n }\n HttpAction.prototype.internalGetReferencedInputs = function () {\n var allInputs = this.parent ? this.parent.getRootElement().getAllInputs() : [];\n var result = {};\n this._url.getReferencedInputs(allInputs, result);\n for (var _i = 0, _a = this.headers; _i < _a.length; _i++) {\n var header = _a[_i];\n header.getReferencedInputs(allInputs, result);\n }\n this._body.getReferencedInputs(allInputs, result);\n return result;\n };\n HttpAction.prototype.internalPrepareForExecution = function (inputs) {\n if (inputs) {\n this._url.substituteInputValues(inputs, shared_1.ContentTypes.applicationXWwwFormUrlencoded);\n var contentType = shared_1.ContentTypes.applicationJson;\n for (var _i = 0, _a = this.headers; _i < _a.length; _i++) {\n var header = _a[_i];\n header.prepareForExecution(inputs);\n if (header.name && header.name.toLowerCase() === \"content-type\") {\n contentType = header.value;\n }\n }\n this._body.substituteInputValues(inputs, contentType);\n }\n };\n HttpAction.prototype.getJsonTypeName = function () {\n return HttpAction.JsonTypeName;\n };\n HttpAction.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n if (!this.url) {\n context.addFailure(this, Enums.ValidationEvent.PropertyCantBeNull, strings_1.Strings.errors.propertyMustBeSet(\"url\"));\n }\n if (this.headers.length > 0) {\n for (var _i = 0, _a = this.headers; _i < _a.length; _i++) {\n var header = _a[_i];\n if (!header.name) {\n context.addFailure(this, Enums.ValidationEvent.PropertyCantBeNull, strings_1.Strings.errors.actionHttpHeadersMustHaveNameAndValue());\n }\n }\n }\n };\n Object.defineProperty(HttpAction.prototype, \"ignoreInputValidation\", {\n get: function () {\n return this._ignoreInputValidation;\n },\n set: function (value) {\n this._ignoreInputValidation = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HttpAction.prototype, \"url\", {\n get: function () {\n return this._url.get();\n },\n set: function (value) {\n this._url.set(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HttpAction.prototype, \"body\", {\n get: function () {\n return this._body.get();\n },\n set: function (value) {\n this._body.set(value);\n },\n enumerable: false,\n configurable: true\n });\n HttpAction.urlProperty = new StringWithSubstitutionProperty(serialization_1.Versions.v1_0, \"url\");\n HttpAction.bodyProperty = new StringWithSubstitutionProperty(serialization_1.Versions.v1_0, \"body\");\n HttpAction.methodProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"method\");\n HttpAction.headersProperty = new serialization_1.SerializableObjectCollectionProperty(serialization_1.Versions.v1_0, \"headers\", HttpHeader);\n HttpAction.ignoreInputValidationProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_3, \"ignoreInputValidation\", false);\n //#endregion\n // Note the \"weird\" way this field is declared is to work around a breaking\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\n HttpAction.JsonTypeName = \"Action.Http\";\n __decorate([\n (0, serialization_1.property)(HttpAction.urlProperty)\n ], HttpAction.prototype, \"_url\", void 0);\n __decorate([\n (0, serialization_1.property)(HttpAction.bodyProperty)\n ], HttpAction.prototype, \"_body\", void 0);\n __decorate([\n (0, serialization_1.property)(HttpAction.methodProperty)\n ], HttpAction.prototype, \"method\", void 0);\n __decorate([\n (0, serialization_1.property)(HttpAction.headersProperty)\n ], HttpAction.prototype, \"headers\", void 0);\n __decorate([\n (0, serialization_1.property)(HttpAction.ignoreInputValidationProperty)\n ], HttpAction.prototype, \"_ignoreInputValidation\", void 0);\n return HttpAction;\n}(Action));\nexports.HttpAction = HttpAction;\nvar ShowCardAction = /** @class */ (function (_super) {\n __extends(ShowCardAction, _super);\n function ShowCardAction() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.card = new InlineAdaptiveCard();\n return _this;\n }\n ShowCardAction.prototype.updateCssClasses = function () {\n _super.prototype.updateCssClasses.call(this);\n if (this.renderedElement) {\n var effectiveHostConfig = this.parent ? this.parent.hostConfig : host_config_1.defaultHostConfig;\n this.renderedElement.classList.add(effectiveHostConfig.makeCssClassName(\"expandable\"));\n this.renderedElement.setAttribute(\"aria-expanded\", (this.state === 1 /* Expanded */).toString());\n }\n };\n ShowCardAction.prototype.internalParse = function (source, context) {\n _super.prototype.internalParse.call(this, source, context);\n var jsonCard = source[\"card\"];\n if (jsonCard) {\n this.card.parse(jsonCard, context);\n }\n else {\n context.logParseEvent(this, Enums.ValidationEvent.PropertyCantBeNull, strings_1.Strings.errors.showCardMustHaveCard());\n }\n };\n ShowCardAction.prototype.internalToJSON = function (target, context) {\n _super.prototype.internalToJSON.call(this, target, context);\n if (this.card) {\n context.serializeValue(target, \"card\", this.card.toJSON(context));\n }\n };\n ShowCardAction.prototype.raiseExecuteActionEvent = function () {\n if (this.hostConfig.actions.showCard.actionMode === Enums.ShowCardActionMode.Popup) {\n // Only raise the event in Popup mode.\n _super.prototype.raiseExecuteActionEvent.call(this);\n }\n };\n ShowCardAction.prototype.releaseDOMResources = function () {\n _super.prototype.releaseDOMResources.call(this);\n this.card.releaseDOMResources();\n };\n ShowCardAction.prototype.getJsonTypeName = function () {\n return ShowCardAction.JsonTypeName;\n };\n ShowCardAction.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n this.card.internalValidateProperties(context);\n };\n ShowCardAction.prototype.setParent = function (value) {\n _super.prototype.setParent.call(this, value);\n this.card.setParent(value);\n };\n ShowCardAction.prototype.getAllInputs = function (processActions) {\n if (processActions === void 0) { processActions = true; }\n return this.card.getAllInputs(processActions);\n };\n ShowCardAction.prototype.getAllActions = function () {\n var result = _super.prototype.getAllActions.call(this);\n result.push.apply(result, this.card.getAllActions());\n return result;\n };\n ShowCardAction.prototype.getResourceInformation = function () {\n var result = _super.prototype.getResourceInformation.call(this);\n result.push.apply(result, this.card.getResourceInformation());\n return result;\n };\n ShowCardAction.prototype.getActionById = function (id) {\n var result = _super.prototype.getActionById.call(this, id);\n if (!result) {\n result = this.card.getActionById(id);\n }\n return result;\n };\n // Note the \"weird\" way this field is declared is to work around a breaking\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\n ShowCardAction.JsonTypeName = \"Action.ShowCard\";\n return ShowCardAction;\n}(Action));\nexports.ShowCardAction = ShowCardAction;\nvar OverflowAction = /** @class */ (function (_super) {\n __extends(OverflowAction, _super);\n function OverflowAction(actions) {\n var _this = _super.call(this) || this;\n _this._actions = actions;\n _this.title = strings_1.Strings.defaults.overflowButtonText();\n _this.tooltip = strings_1.Strings.defaults.overflowButtonTooltip();\n return _this;\n }\n OverflowAction.prototype.getActions = function () {\n return this._actions;\n };\n OverflowAction.prototype.getAllActions = function () {\n var result = _super.prototype.getAllActions.call(this);\n result.push.apply(result, this._actions);\n return result;\n };\n OverflowAction.prototype.getJsonTypeName = function () {\n return ShowCardAction.JsonTypeName;\n };\n OverflowAction.prototype.execute = function () {\n var _this = this;\n var _a;\n var shouldDisplayPopupMenu = !raiseDisplayOverflowActionMenuEvent(this, this.renderedElement);\n if (shouldDisplayPopupMenu && this.renderedElement) {\n var contextMenu_1 = new controls_1.PopupMenu();\n contextMenu_1.hostConfig = this.hostConfig;\n var _loop_2 = function (i) {\n var menuItem = new controls_1.MenuItem(i.toString(), (_a = this_1._actions[i].title) !== null && _a !== void 0 ? _a : \"\");\n menuItem.isEnabled = this_1._actions[i].isEnabled;\n menuItem.onClick = function () {\n var actionToExecute = _this._actions[i];\n contextMenu_1.closePopup(false);\n if (actionToExecute.isEnabled) {\n actionToExecute.execute();\n }\n };\n contextMenu_1.items.add(menuItem);\n };\n var this_1 = this;\n for (var i = 0; i < this._actions.length; i++) {\n _loop_2(i);\n }\n contextMenu_1.onClose = function () {\n var _a;\n (_a = _this.renderedElement) === null || _a === void 0 ? void 0 : _a.setAttribute(\"aria-expanded\", \"false\");\n };\n this.renderedElement.setAttribute(\"aria-expanded\", \"true\");\n contextMenu_1.popup(this.renderedElement);\n }\n };\n OverflowAction.prototype.setupElementForAccessibility = function (element, promoteTooltipToLabel) {\n if (promoteTooltipToLabel === void 0) { promoteTooltipToLabel = false; }\n _super.prototype.setupElementForAccessibility.call(this, element, promoteTooltipToLabel);\n element.setAttribute(\"aria-label\", strings_1.Strings.defaults.overflowButtonTooltip());\n element.setAttribute(\"aria-expanded\", \"false\");\n };\n OverflowAction.JsonTypeName = \"Action.Overflow\";\n return OverflowAction;\n}(Action));\nvar ActionCollection = /** @class */ (function () {\n function ActionCollection(owner) {\n this._items = [];\n this._renderedActions = [];\n this._owner = owner;\n }\n ActionCollection.prototype.isActionAllowed = function (action) {\n var forbiddenTypes = this._owner.getForbiddenActionTypes();\n if (forbiddenTypes) {\n for (var _i = 0, forbiddenTypes_1 = forbiddenTypes; _i < forbiddenTypes_1.length; _i++) {\n var forbiddenType = forbiddenTypes_1[_i];\n if (action.constructor === forbiddenType) {\n return false;\n }\n }\n }\n return true;\n };\n ActionCollection.prototype.refreshContainer = function () {\n clearElement(this._actionCardContainer);\n if (!this._actionCard) {\n this._actionCardContainer.style.marginTop = \"0px\";\n return;\n }\n this._actionCardContainer.style.marginTop =\n this.renderedActionCount > 0\n ? this._owner.hostConfig.actions.showCard.inlineTopMargin + \"px\"\n : \"0px\";\n var padding = this._owner.getEffectivePadding();\n this._owner.getImmediateSurroundingPadding(padding);\n var physicalPadding = this._owner.hostConfig.paddingDefinitionToSpacingDefinition(padding);\n if (this._actionCard) {\n this._actionCard.style.paddingLeft = physicalPadding.left + \"px\";\n this._actionCard.style.paddingRight = physicalPadding.right + \"px\";\n this._actionCard.style.marginLeft = \"-\" + physicalPadding.left + \"px\";\n this._actionCard.style.marginRight = \"-\" + physicalPadding.right + \"px\";\n if (physicalPadding.bottom !== 0 && !this._owner.isDesignMode()) {\n this._actionCard.style.paddingBottom = physicalPadding.bottom + \"px\";\n this._actionCard.style.marginBottom = \"-\" + physicalPadding.bottom + \"px\";\n }\n Utils.appendChild(this._actionCardContainer, this._actionCard);\n }\n };\n ActionCollection.prototype.layoutChanged = function () {\n this._owner.getRootElement().updateLayout();\n };\n ActionCollection.prototype.showActionCard = function (action, suppressStyle, raiseEvent) {\n if (suppressStyle === void 0) { suppressStyle = false; }\n if (raiseEvent === void 0) { raiseEvent = true; }\n action.card.suppressStyle = suppressStyle;\n // Always re-render a ShowCard action in design mode; reuse already rendered ShowCard (if available) otherwise\n var renderedCard = action.card.renderedElement && !this._owner.isDesignMode()\n ? action.card.renderedElement\n : action.card.render();\n this._actionCard = renderedCard;\n this._expandedAction = action;\n this.refreshContainer();\n if (raiseEvent) {\n this.layoutChanged();\n raiseInlineCardExpandedEvent(action, true);\n }\n };\n ActionCollection.prototype.collapseExpandedAction = function () {\n for (var _i = 0, _a = this._renderedActions; _i < _a.length; _i++) {\n var action = _a[_i];\n action.state = 0 /* Normal */;\n }\n var previouslyExpandedAction = this._expandedAction;\n this._expandedAction = undefined;\n this._actionCard = undefined;\n this.refreshContainer();\n if (previouslyExpandedAction) {\n this.layoutChanged();\n raiseInlineCardExpandedEvent(previouslyExpandedAction, false);\n }\n };\n ActionCollection.prototype.expandShowCardAction = function (action, raiseEvent) {\n var _this = this;\n var afterSelectedAction = false;\n for (var _i = 0, _a = this._renderedActions; _i < _a.length; _i++) {\n var renderedAction = _a[_i];\n // Remove actions after selected action from tabOrder if the actions are oriented horizontally, to skip focus directly to expanded card\n if (this._owner.hostConfig.actions.actionsOrientation == Enums.Orientation.Horizontal &&\n afterSelectedAction) {\n renderedAction.isFocusable = false;\n }\n if (renderedAction !== action) {\n renderedAction.state = 2 /* Subdued */;\n }\n else {\n renderedAction.state = 1 /* Expanded */;\n afterSelectedAction = true;\n if (renderedAction.renderedElement) {\n renderedAction.renderedElement.onblur = function (_e) {\n for (var _i = 0, _a = _this._renderedActions; _i < _a.length; _i++) {\n var ra = _a[_i];\n ra.isFocusable = true;\n }\n };\n }\n }\n }\n this.showActionCard(action, !(this._owner.isAtTheVeryLeft() && this._owner.isAtTheVeryRight()), raiseEvent);\n };\n ActionCollection.prototype.releaseDOMResources = function () {\n for (var _i = 0, _a = this._renderedActions; _i < _a.length; _i++) {\n var action = _a[_i];\n action.releaseDOMResources();\n }\n };\n ActionCollection.prototype.actionExecuted = function (action) {\n if (!(action instanceof ShowCardAction)) {\n this.collapseExpandedAction();\n }\n else {\n if (action === this._expandedAction) {\n this.collapseExpandedAction();\n }\n else if (this._owner.hostConfig.actions.showCard.actionMode ===\n Enums.ShowCardActionMode.Inline) {\n this.expandShowCardAction(action, true);\n }\n }\n };\n ActionCollection.prototype.parse = function (source, context) {\n this.clear();\n if (Array.isArray(source)) {\n for (var _i = 0, source_1 = source; _i < source_1.length; _i++) {\n var jsonAction = source_1[_i];\n var forbiddenActions = [];\n // If the action owner is a ContainerWithActions, we should check for forbidden actions\n if (this._owner instanceof ContainerWithActions) {\n forbiddenActions = this._owner.getForbiddenActionNames();\n }\n var action = context.parseAction(this._owner, jsonAction, forbiddenActions, !this._owner.isDesignMode());\n if (action) {\n this.addAction(action);\n }\n }\n }\n };\n ActionCollection.prototype.toJSON = function (target, propertyName, context) {\n context.serializeArray(target, propertyName, this._items);\n };\n ActionCollection.prototype.getActionAt = function (id) {\n return this._items[id];\n };\n ActionCollection.prototype.getActionCount = function () {\n return this._items.length;\n };\n ActionCollection.prototype.getActionById = function (id) {\n var result = undefined;\n for (var _i = 0, _a = this._items; _i < _a.length; _i++) {\n var item = _a[_i];\n result = item.getActionById(id);\n if (result) {\n break;\n }\n }\n return result;\n };\n ActionCollection.prototype.validateProperties = function (context) {\n if (this._owner.hostConfig.actions.maxActions &&\n this._items.length > this._owner.hostConfig.actions.maxActions) {\n context.addFailure(this._owner, Enums.ValidationEvent.TooManyActions, strings_1.Strings.errors.tooManyActions(this._owner.hostConfig.actions.maxActions));\n }\n if (this._items.length > 0 && !this._owner.hostConfig.supportsInteractivity) {\n context.addFailure(this._owner, Enums.ValidationEvent.InteractivityNotAllowed, strings_1.Strings.errors.interactivityNotAllowed());\n }\n for (var _i = 0, _a = this._items; _i < _a.length; _i++) {\n var item = _a[_i];\n if (!this.isActionAllowed(item)) {\n context.addFailure(this._owner, Enums.ValidationEvent.ActionTypeNotAllowed, strings_1.Strings.errors.actionTypeNotAllowed(item.getJsonTypeName()));\n }\n item.internalValidateProperties(context);\n }\n };\n ActionCollection.prototype.render = function (orientation) {\n // Cache hostConfig for better perf\n var hostConfig = this._owner.hostConfig;\n if (!hostConfig.supportsInteractivity) {\n return undefined;\n }\n var element = document.createElement(\"div\");\n var maxActions = hostConfig.actions.maxActions\n ? Math.min(hostConfig.actions.maxActions, this._items.length)\n : this._items.length;\n this._actionCardContainer = document.createElement(\"div\");\n this._renderedActions = [];\n if (hostConfig.actions.preExpandSingleShowCardAction &&\n maxActions === 1 &&\n this._items[0] instanceof ShowCardAction &&\n this.isActionAllowed(this._items[0])) {\n this.showActionCard(this._items[0], true);\n this._renderedActions.push(this._items[0]);\n }\n else {\n var buttonStrip = document.createElement(\"div\");\n buttonStrip.className = hostConfig.makeCssClassName(\"ac-actionSet\");\n buttonStrip.style.display = \"flex\";\n if (orientation === Enums.Orientation.Horizontal) {\n buttonStrip.style.flexDirection = \"row\";\n if (this._owner.horizontalAlignment &&\n hostConfig.actions.actionAlignment !== Enums.ActionAlignment.Stretch) {\n switch (this._owner.horizontalAlignment) {\n case Enums.HorizontalAlignment.Center:\n buttonStrip.style.justifyContent = \"center\";\n break;\n case Enums.HorizontalAlignment.Right:\n buttonStrip.style.justifyContent = \"flex-end\";\n break;\n default:\n buttonStrip.style.justifyContent = \"flex-start\";\n break;\n }\n }\n else {\n switch (hostConfig.actions.actionAlignment) {\n case Enums.ActionAlignment.Center:\n buttonStrip.style.justifyContent = \"center\";\n break;\n case Enums.ActionAlignment.Right:\n buttonStrip.style.justifyContent = \"flex-end\";\n break;\n default:\n buttonStrip.style.justifyContent = \"flex-start\";\n break;\n }\n }\n }\n else {\n buttonStrip.style.flexDirection = \"column\";\n if (this._owner.horizontalAlignment &&\n hostConfig.actions.actionAlignment !== Enums.ActionAlignment.Stretch) {\n switch (this._owner.horizontalAlignment) {\n case Enums.HorizontalAlignment.Center:\n buttonStrip.style.alignItems = \"center\";\n break;\n case Enums.HorizontalAlignment.Right:\n buttonStrip.style.alignItems = \"flex-end\";\n break;\n default:\n buttonStrip.style.alignItems = \"flex-start\";\n break;\n }\n }\n else {\n switch (hostConfig.actions.actionAlignment) {\n case Enums.ActionAlignment.Center:\n buttonStrip.style.alignItems = \"center\";\n break;\n case Enums.ActionAlignment.Right:\n buttonStrip.style.alignItems = \"flex-end\";\n break;\n case Enums.ActionAlignment.Stretch:\n buttonStrip.style.alignItems = \"stretch\";\n break;\n default:\n buttonStrip.style.alignItems = \"flex-start\";\n break;\n }\n }\n }\n var allowedActions = this._items.filter(this.isActionAllowed.bind(this));\n var primaryActions_1 = [];\n var secondaryActions_1 = [];\n if (!this._owner.isDesignMode()) {\n allowedActions.forEach(function (action) {\n return action.mode === Enums.ActionMode.Secondary\n ? secondaryActions_1.push(action)\n : primaryActions_1.push(action);\n });\n // If primaryActions.length > maxActions, extra actions are moved to overflow\n var overflowPrimaryActions = primaryActions_1.splice(hostConfig.actions.maxActions);\n if (shared_1.GlobalSettings.allowMoreThanMaxActionsInOverflowMenu) {\n secondaryActions_1.push.apply(secondaryActions_1, overflowPrimaryActions);\n }\n var shouldRenderOverflowActionButton = true;\n if (secondaryActions_1.length > 0) {\n if (!this._overflowAction) {\n this._overflowAction = new OverflowAction(secondaryActions_1);\n this._overflowAction.setParent(this._owner);\n this._overflowAction[\"_actionCollection\"] = this;\n }\n var isRootAction = this._owner instanceof AdaptiveCard && !this._owner.parent;\n shouldRenderOverflowActionButton = !raiseRenderOverflowActionsEvent(this._overflowAction, isRootAction);\n }\n if (this._overflowAction && shouldRenderOverflowActionButton) {\n primaryActions_1.push(this._overflowAction);\n }\n }\n else {\n primaryActions_1 = allowedActions;\n }\n for (var i = 0; i < primaryActions_1.length; i++) {\n var action = primaryActions_1[i];\n action.render();\n if (action.renderedElement) {\n if (hostConfig.actions.actionsOrientation === Enums.Orientation.Horizontal &&\n hostConfig.actions.actionAlignment === Enums.ActionAlignment.Stretch) {\n action.renderedElement.style.flex = \"0 1 100%\";\n }\n else {\n action.renderedElement.style.flex = \"0 1 auto\";\n }\n buttonStrip.appendChild(action.renderedElement);\n this._renderedActions.push(action);\n if (i < primaryActions_1.length - 1 && hostConfig.actions.buttonSpacing > 0) {\n var spacer = document.createElement(\"div\");\n if (orientation === Enums.Orientation.Horizontal) {\n spacer.style.flex = \"0 0 auto\";\n spacer.style.width = hostConfig.actions.buttonSpacing + \"px\";\n }\n else {\n spacer.style.height = hostConfig.actions.buttonSpacing + \"px\";\n }\n Utils.appendChild(buttonStrip, spacer);\n }\n }\n }\n var buttonStripContainer = document.createElement(\"div\");\n buttonStripContainer.style.overflow = \"hidden\";\n buttonStripContainer.appendChild(buttonStrip);\n Utils.appendChild(element, buttonStripContainer);\n }\n Utils.appendChild(element, this._actionCardContainer);\n for (var _i = 0, _a = this._renderedActions; _i < _a.length; _i++) {\n var renderedAction = _a[_i];\n if (renderedAction.state === 1 /* Expanded */) {\n this.expandShowCardAction(renderedAction, false);\n break;\n }\n }\n return this._renderedActions.length > 0 ? element : undefined;\n };\n ActionCollection.prototype.addAction = function (action) {\n if (!action) {\n throw new Error(\"The action parameter cannot be null.\");\n }\n if ((!action.parent || action.parent === this._owner) && this._items.indexOf(action) < 0) {\n this._items.push(action);\n if (!action.parent) {\n action.setParent(this._owner);\n }\n action[\"_actionCollection\"] = this;\n }\n else {\n throw new Error(strings_1.Strings.errors.actionAlreadyParented());\n }\n };\n ActionCollection.prototype.removeAction = function (action) {\n if (this.expandedAction && this._expandedAction === action) {\n this.collapseExpandedAction();\n }\n var actionIndex = this._items.indexOf(action);\n if (actionIndex >= 0) {\n this._items.splice(actionIndex, 1);\n action.setParent(undefined);\n action[\"_actionCollection\"] = undefined;\n for (var i = 0; i < this._renderedActions.length; i++) {\n if (this._renderedActions[i] === action) {\n this._renderedActions.splice(i, 1);\n break;\n }\n }\n return true;\n }\n return false;\n };\n ActionCollection.prototype.clear = function () {\n this._items = [];\n this._renderedActions = [];\n this._expandedAction = undefined;\n };\n ActionCollection.prototype.getAllInputs = function (processActions) {\n if (processActions === void 0) { processActions = true; }\n var result = [];\n if (processActions) {\n for (var _i = 0, _a = this._items; _i < _a.length; _i++) {\n var action = _a[_i];\n result.push.apply(result, action.getAllInputs());\n }\n }\n return result;\n };\n ActionCollection.prototype.getResourceInformation = function () {\n var result = [];\n for (var _i = 0, _a = this._items; _i < _a.length; _i++) {\n var action = _a[_i];\n result.push.apply(result, action.getResourceInformation());\n }\n return result;\n };\n Object.defineProperty(ActionCollection.prototype, \"renderedActionCount\", {\n get: function () {\n return this._renderedActions.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ActionCollection.prototype, \"expandedAction\", {\n get: function () {\n return this._expandedAction;\n },\n enumerable: false,\n configurable: true\n });\n return ActionCollection;\n}());\nvar ActionSet = /** @class */ (function (_super) {\n __extends(ActionSet, _super);\n function ActionSet() {\n var _this = _super.call(this) || this;\n _this._actionCollection = new ActionCollection(_this);\n return _this;\n }\n ActionSet.prototype.internalParse = function (source, context) {\n _super.prototype.internalParse.call(this, source, context);\n this._actionCollection.parse(source[\"actions\"], context);\n };\n ActionSet.prototype.internalToJSON = function (target, context) {\n _super.prototype.internalToJSON.call(this, target, context);\n this._actionCollection.toJSON(target, \"actions\", context);\n };\n ActionSet.prototype.internalRender = function () {\n return this._actionCollection.render(this.orientation !== undefined\n ? this.orientation\n : this.hostConfig.actions.actionsOrientation);\n };\n ActionSet.prototype.releaseDOMResources = function () {\n _super.prototype.releaseDOMResources.call(this);\n this._actionCollection.releaseDOMResources();\n };\n ActionSet.prototype.isBleedingAtBottom = function () {\n if (this._actionCollection.renderedActionCount === 0) {\n return _super.prototype.isBleedingAtBottom.call(this);\n }\n else {\n if (this._actionCollection.getActionCount() === 1) {\n return (this._actionCollection.expandedAction !== undefined &&\n !this.hostConfig.actions.preExpandSingleShowCardAction);\n }\n else {\n return this._actionCollection.expandedAction !== undefined;\n }\n }\n };\n ActionSet.prototype.getJsonTypeName = function () {\n return \"ActionSet\";\n };\n ActionSet.prototype.getActionCount = function () {\n return this._actionCollection.getActionCount();\n };\n ActionSet.prototype.getActionAt = function (index) {\n if (index >= 0 && index < this.getActionCount()) {\n return this._actionCollection.getActionAt(index);\n }\n else {\n return _super.prototype.getActionAt.call(this, index);\n }\n };\n ActionSet.prototype.getActionById = function (id) {\n var result = this._actionCollection.getActionById(id);\n return result ? result : _super.prototype.getActionById.call(this, id);\n };\n ActionSet.prototype.getAllActions = function () {\n var result = _super.prototype.getAllActions.call(this);\n for (var i = 0; i < this.getActionCount(); i++) {\n var action = this.getActionAt(i);\n if (action) {\n result.push(action);\n }\n }\n return result;\n };\n ActionSet.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n this._actionCollection.validateProperties(context);\n };\n ActionSet.prototype.addAction = function (action) {\n this._actionCollection.addAction(action);\n };\n ActionSet.prototype.getAllInputs = function (processActions) {\n if (processActions === void 0) { processActions = true; }\n return processActions ? this._actionCollection.getAllInputs() : [];\n };\n ActionSet.prototype.getResourceInformation = function () {\n return this._actionCollection.getResourceInformation();\n };\n /**\n * @inheritdoc\n */\n ActionSet.prototype.findDOMNodeOwner = function (node) {\n var target = undefined;\n for (var i = 0; i < this.getActionCount(); i++) {\n var action = this.getActionAt(i);\n if (action) {\n // recur through each Action\n target = action.findDOMNodeOwner(node);\n if (target) {\n return target;\n }\n }\n }\n // if not found in any Action, defer to parent implementation\n return _super.prototype.findDOMNodeOwner.call(this, node);\n };\n ActionSet.prototype.getElementById = function (id) {\n var result = _super.prototype.getElementById.call(this, id);\n if (!result) {\n result = this.getElementByIdFromAction(id);\n }\n return result;\n };\n Object.defineProperty(ActionSet.prototype, \"isInteractive\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n //#region Schema\n ActionSet.orientationProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_1, \"orientation\", Enums.Orientation);\n __decorate([\n (0, serialization_1.property)(ActionSet.orientationProperty)\n ], ActionSet.prototype, \"orientation\", void 0);\n return ActionSet;\n}(CardElement));\nexports.ActionSet = ActionSet;\nvar ContainerStyleProperty = /** @class */ (function (_super) {\n __extends(ContainerStyleProperty, _super);\n function ContainerStyleProperty(targetVersion, name, defaultValue, onGetInitialValue) {\n var _this = _super.call(this, targetVersion, name, [\n { value: Enums.ContainerStyle.Default },\n { value: Enums.ContainerStyle.Emphasis },\n { targetVersion: serialization_1.Versions.v1_2, value: Enums.ContainerStyle.Accent },\n { targetVersion: serialization_1.Versions.v1_2, value: Enums.ContainerStyle.Good },\n { targetVersion: serialization_1.Versions.v1_2, value: Enums.ContainerStyle.Attention },\n { targetVersion: serialization_1.Versions.v1_2, value: Enums.ContainerStyle.Warning }\n ], defaultValue, onGetInitialValue) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n _this.defaultValue = defaultValue;\n _this.onGetInitialValue = onGetInitialValue;\n return _this;\n }\n return ContainerStyleProperty;\n}(serialization_1.ValueSetProperty));\nexports.ContainerStyleProperty = ContainerStyleProperty;\nvar StylableCardElementContainer = /** @class */ (function (_super) {\n __extends(StylableCardElementContainer, _super);\n function StylableCardElementContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(StylableCardElementContainer.prototype, \"style\", {\n get: function () {\n if (this.allowCustomStyle) {\n var style = this.getValue(StylableCardElementContainer.styleProperty);\n if (style && this.hostConfig.containerStyles.getStyleByName(style)) {\n return style;\n }\n }\n return undefined;\n },\n set: function (value) {\n this.setValue(StylableCardElementContainer.styleProperty, value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StylableCardElementContainer.prototype, \"allowCustomStyle\", {\n //#endregion\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StylableCardElementContainer.prototype, \"hasExplicitStyle\", {\n get: function () {\n return this.getValue(StylableCardElementContainer.styleProperty) !== undefined;\n },\n enumerable: false,\n configurable: true\n });\n StylableCardElementContainer.prototype.applyBorder = function () {\n // No border in base implementation\n };\n StylableCardElementContainer.prototype.applyBackground = function () {\n if (this.renderedElement) {\n var styleDefinition = this.hostConfig.containerStyles.getStyleByName(this.style, this.hostConfig.containerStyles.getStyleByName(this.defaultStyle));\n if (styleDefinition.backgroundColor) {\n var bgColor = Utils.stringToCssColor(styleDefinition.backgroundColor);\n if (bgColor) {\n this.renderedElement.style.backgroundColor = bgColor;\n }\n }\n }\n };\n StylableCardElementContainer.prototype.applyPadding = function () {\n _super.prototype.applyPadding.call(this);\n if (!this.renderedElement) {\n return;\n }\n var physicalPadding = new shared_1.SpacingDefinition();\n if (this.getEffectivePadding()) {\n physicalPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(this.getEffectivePadding());\n }\n this.renderedElement.style.paddingTop = physicalPadding.top + \"px\";\n this.renderedElement.style.paddingRight = physicalPadding.right + \"px\";\n this.renderedElement.style.paddingBottom = physicalPadding.bottom + \"px\";\n this.renderedElement.style.paddingLeft = physicalPadding.left + \"px\";\n if (this.isBleeding()) {\n // Bleed into the first parent that does have padding\n var padding = new shared_1.PaddingDefinition();\n this.getImmediateSurroundingPadding(padding);\n var surroundingPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(padding);\n this.renderedElement.style.marginRight = \"-\" + surroundingPadding.right + \"px\";\n this.renderedElement.style.marginLeft = \"-\" + surroundingPadding.left + \"px\";\n if (!this.isDesignMode()) {\n this.renderedElement.style.marginTop = \"-\" + surroundingPadding.top + \"px\";\n this.renderedElement.style.marginBottom = \"-\" + surroundingPadding.bottom + \"px\";\n }\n if (this.separatorElement &&\n this.separatorOrientation === Enums.Orientation.Horizontal) {\n this.separatorElement.style.marginLeft = \"-\" + surroundingPadding.left + \"px\";\n this.separatorElement.style.marginRight = \"-\" + surroundingPadding.right + \"px\";\n }\n }\n else {\n this.renderedElement.style.marginRight = \"0\";\n this.renderedElement.style.marginLeft = \"0\";\n this.renderedElement.style.marginTop = \"0\";\n this.renderedElement.style.marginBottom = \"0\";\n if (this.separatorElement &&\n this.separatorOrientation === Enums.Orientation.Horizontal) {\n this.separatorElement.style.marginRight = \"0\";\n this.separatorElement.style.marginLeft = \"0\";\n }\n }\n };\n StylableCardElementContainer.prototype.getHasBackground = function (ignoreBackgroundImages) {\n if (ignoreBackgroundImages === void 0) { ignoreBackgroundImages = false; }\n var currentElement = this.parent;\n while (currentElement) {\n var currentElementHasBackgroundImage = false;\n if (ignoreBackgroundImages) {\n currentElementHasBackgroundImage = false;\n }\n else {\n currentElementHasBackgroundImage =\n currentElement instanceof Container\n ? currentElement.backgroundImage.isValid()\n : false;\n }\n if (currentElement instanceof StylableCardElementContainer) {\n if (this.hasExplicitStyle &&\n (currentElement.getEffectiveStyle() !== this.getEffectiveStyle() ||\n currentElementHasBackgroundImage)) {\n return true;\n }\n }\n currentElement = currentElement.parent;\n }\n return false;\n };\n StylableCardElementContainer.prototype.getDefaultPadding = function () {\n return this.getHasBackground() || this.getHasBorder()\n ? new shared_1.PaddingDefinition(Enums.Spacing.Padding, Enums.Spacing.Padding, Enums.Spacing.Padding, Enums.Spacing.Padding)\n : _super.prototype.getDefaultPadding.call(this);\n };\n StylableCardElementContainer.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n var explicitStyle = this.getValue(StylableCardElementContainer.styleProperty);\n if (explicitStyle !== undefined) {\n var styleDefinition = this.hostConfig.containerStyles.getStyleByName(explicitStyle);\n if (!styleDefinition) {\n context.addFailure(this, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidPropertyValue(explicitStyle, \"style\"));\n }\n }\n };\n StylableCardElementContainer.prototype.render = function () {\n var renderedElement = _super.prototype.render.call(this);\n if (renderedElement && this.getHasBackground()) {\n this.applyBackground();\n }\n this.applyBorder();\n return renderedElement;\n };\n StylableCardElementContainer.prototype.getEffectiveStyle = function () {\n var effectiveStyle = this.style;\n return effectiveStyle ? effectiveStyle : _super.prototype.getEffectiveStyle.call(this);\n };\n //#region Schema\n StylableCardElementContainer.styleProperty = new ContainerStyleProperty(serialization_1.Versions.v1_0, \"style\");\n __decorate([\n (0, serialization_1.property)(StylableCardElementContainer.styleProperty)\n ], StylableCardElementContainer.prototype, \"style\", null);\n return StylableCardElementContainer;\n}(CardElementContainer));\nexports.StylableCardElementContainer = StylableCardElementContainer;\nvar ContainerBase = /** @class */ (function (_super) {\n __extends(ContainerBase, _super);\n function ContainerBase() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._bleed = false;\n return _this;\n }\n //#endregion\n ContainerBase.prototype.adjustRenderedElementSize = function (renderedElement) {\n _super.prototype.adjustRenderedElementSize.call(this, renderedElement);\n if (this.minPixelHeight) {\n renderedElement.style.minHeight = this.minPixelHeight + \"px\";\n }\n };\n ContainerBase.prototype.getHasExpandedAction = function () {\n return false;\n };\n ContainerBase.prototype.getBleed = function () {\n return this._bleed;\n };\n ContainerBase.prototype.setBleed = function (value) {\n this._bleed = value;\n };\n Object.defineProperty(ContainerBase.prototype, \"renderedActionCount\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n ContainerBase.prototype.isBleeding = function () {\n return (this.getHasBackground() || this.hostConfig.alwaysAllowBleed) && this.getBleed();\n };\n ContainerBase.bleedProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_2, \"bleed\", false);\n ContainerBase.minHeightProperty = new serialization_1.PixelSizeProperty(serialization_1.Versions.v1_2, \"minHeight\");\n __decorate([\n (0, serialization_1.property)(ContainerBase.bleedProperty)\n ], ContainerBase.prototype, \"_bleed\", void 0);\n __decorate([\n (0, serialization_1.property)(ContainerBase.minHeightProperty)\n ], ContainerBase.prototype, \"minPixelHeight\", void 0);\n return ContainerBase;\n}(StylableCardElementContainer));\nexports.ContainerBase = ContainerBase;\nvar BackgroundImage = /** @class */ (function (_super) {\n __extends(BackgroundImage, _super);\n function BackgroundImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n //#endregion\n BackgroundImage.prototype.getSchemaKey = function () {\n return \"BackgroundImage\";\n };\n BackgroundImage.prototype.internalParse = function (source, context) {\n if (typeof source === \"string\") {\n this.resetDefaultValues();\n this.url = source;\n }\n else {\n return _super.prototype.internalParse.call(this, source, context);\n }\n };\n BackgroundImage.prototype.apply = function (element) {\n if (this.url && element.renderedElement) {\n element.renderedElement.style.backgroundImage =\n \"url('\" +\n element.preProcessPropertyValue(BackgroundImage.urlProperty, this.url) +\n \"')\";\n switch (this.fillMode) {\n case Enums.FillMode.Repeat:\n element.renderedElement.style.backgroundRepeat = \"repeat\";\n break;\n case Enums.FillMode.RepeatHorizontally:\n element.renderedElement.style.backgroundRepeat = \"repeat-x\";\n break;\n case Enums.FillMode.RepeatVertically:\n element.renderedElement.style.backgroundRepeat = \"repeat-y\";\n break;\n case Enums.FillMode.Cover:\n default:\n element.renderedElement.style.backgroundRepeat = \"no-repeat\";\n element.renderedElement.style.backgroundSize = \"cover\";\n break;\n }\n switch (this.horizontalAlignment) {\n case Enums.HorizontalAlignment.Left:\n break;\n case Enums.HorizontalAlignment.Center:\n element.renderedElement.style.backgroundPositionX = \"center\";\n break;\n case Enums.HorizontalAlignment.Right:\n element.renderedElement.style.backgroundPositionX = \"right\";\n break;\n }\n switch (this.verticalAlignment) {\n case Enums.VerticalAlignment.Top:\n break;\n case Enums.VerticalAlignment.Center:\n element.renderedElement.style.backgroundPositionY = \"center\";\n break;\n case Enums.VerticalAlignment.Bottom:\n element.renderedElement.style.backgroundPositionY = \"bottom\";\n break;\n }\n }\n };\n BackgroundImage.prototype.isValid = function () {\n return this.url ? true : false;\n };\n //#region Schema\n BackgroundImage.urlProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"url\");\n BackgroundImage.fillModeProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_2, \"fillMode\", Enums.FillMode, Enums.FillMode.Cover);\n BackgroundImage.horizontalAlignmentProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_2, \"horizontalAlignment\", Enums.HorizontalAlignment, Enums.HorizontalAlignment.Left);\n BackgroundImage.verticalAlignmentProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_2, \"verticalAlignment\", Enums.VerticalAlignment, Enums.VerticalAlignment.Top);\n __decorate([\n (0, serialization_1.property)(BackgroundImage.urlProperty)\n ], BackgroundImage.prototype, \"url\", void 0);\n __decorate([\n (0, serialization_1.property)(BackgroundImage.fillModeProperty)\n ], BackgroundImage.prototype, \"fillMode\", void 0);\n __decorate([\n (0, serialization_1.property)(BackgroundImage.horizontalAlignmentProperty)\n ], BackgroundImage.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n (0, serialization_1.property)(BackgroundImage.verticalAlignmentProperty)\n ], BackgroundImage.prototype, \"verticalAlignment\", void 0);\n return BackgroundImage;\n}(serialization_1.SerializableObject));\nexports.BackgroundImage = BackgroundImage;\nvar Container = /** @class */ (function (_super) {\n __extends(Container, _super);\n function Container() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n //#endregion\n _this._items = [];\n _this._renderedItems = [];\n return _this;\n }\n Object.defineProperty(Container.prototype, \"backgroundImage\", {\n get: function () {\n return this.getValue(Container.backgroundImageProperty);\n },\n enumerable: false,\n configurable: true\n });\n Container.prototype.insertItemAt = function (item, index, forceInsert) {\n if (!item.parent || forceInsert) {\n if (item.isStandalone) {\n if (index < 0 || index >= this._items.length) {\n this._items.push(item);\n }\n else {\n this._items.splice(index, 0, item);\n }\n item.setParent(this);\n }\n else {\n throw new Error(strings_1.Strings.errors.elementTypeNotStandalone(item.getJsonTypeName()));\n }\n }\n else {\n throw new Error(strings_1.Strings.errors.elementAlreadyParented());\n }\n };\n Container.prototype.getItemsCollectionPropertyName = function () {\n return \"items\";\n };\n Container.prototype.applyBackground = function () {\n if (this.backgroundImage.isValid() && this.renderedElement) {\n this.backgroundImage.apply(this);\n }\n _super.prototype.applyBackground.call(this);\n };\n Container.prototype.applyRTL = function (element) {\n if (this.rtl !== undefined) {\n element.dir = this.rtl ? \"rtl\" : \"ltr\";\n }\n };\n Container.prototype.internalRender = function () {\n this._renderedItems = [];\n // Cache hostConfig to avoid walking the parent hierarchy several times\n var hostConfig = this.hostConfig;\n var element = document.createElement(\"div\");\n this.applyRTL(element);\n element.classList.add(hostConfig.makeCssClassName(\"ac-container\"));\n element.style.display = \"flex\";\n element.style.flexDirection = \"column\";\n if (shared_1.GlobalSettings.useAdvancedCardBottomTruncation) {\n // Forces the container to be at least as tall as its content.\n //\n // Fixes a quirk in Chrome where, for nested flex elements, the\n // inner element's height would never exceed the outer element's\n // height. This caused overflow truncation to break -- containers\n // would always be measured as not overflowing, since their heights\n // were constrained by their parents as opposed to truly reflecting\n // the height of their content.\n //\n // See the \"Browser Rendering Notes\" section of this answer:\n // https://stackoverflow.com/questions/36247140/why-doesnt-flex-item-shrink-past-content-size\n element.style.minHeight = \"-webkit-min-content\";\n }\n switch (this.getEffectiveVerticalContentAlignment()) {\n case Enums.VerticalAlignment.Center:\n element.style.justifyContent = \"center\";\n break;\n case Enums.VerticalAlignment.Bottom:\n element.style.justifyContent = \"flex-end\";\n break;\n default:\n element.style.justifyContent = \"flex-start\";\n break;\n }\n if (this._items.length > 0) {\n for (var _i = 0, _a = this._items; _i < _a.length; _i++) {\n var item = _a[_i];\n var renderedItem = this.isElementAllowed(item) ? item.render() : undefined;\n if (renderedItem) {\n if (this._renderedItems.length > 0 && item.separatorElement) {\n item.separatorElement.style.flex = \"0 0 auto\";\n Utils.appendChild(element, item.separatorElement);\n }\n Utils.appendChild(element, renderedItem);\n this._renderedItems.push(item);\n }\n }\n }\n else {\n if (this.isDesignMode()) {\n var placeholderElement = this.createPlaceholderElement();\n placeholderElement.style.width = \"100%\";\n placeholderElement.style.height = \"100%\";\n element.appendChild(placeholderElement);\n }\n }\n return element;\n };\n Container.prototype.truncateOverflow = function (maxHeight) {\n if (this.renderedElement) {\n // Add 1 to account for rounding differences between browsers\n var boundary_1 = this.renderedElement.offsetTop + maxHeight + 1;\n var handleElement_1 = function (cardElement) {\n var elt = cardElement.renderedElement;\n if (elt) {\n switch (Utils.getFitStatus(elt, boundary_1)) {\n case Enums.ContainerFitStatus.FullyInContainer:\n var sizeChanged = cardElement[\"resetOverflow\"]();\n // If the element's size changed after resetting content,\n // we have to check if it still fits fully in the card\n if (sizeChanged) {\n handleElement_1(cardElement);\n }\n break;\n case Enums.ContainerFitStatus.Overflowing:\n var containerMaxHeight = boundary_1 - elt.offsetTop;\n cardElement[\"handleOverflow\"](containerMaxHeight);\n break;\n case Enums.ContainerFitStatus.FullyOutOfContainer:\n cardElement[\"handleOverflow\"](0);\n break;\n }\n }\n };\n for (var _i = 0, _a = this._items; _i < _a.length; _i++) {\n var item = _a[_i];\n handleElement_1(item);\n }\n return true;\n }\n return false;\n };\n Container.prototype.undoOverflowTruncation = function () {\n for (var _i = 0, _a = this._items; _i < _a.length; _i++) {\n var item = _a[_i];\n item[\"resetOverflow\"]();\n }\n };\n Container.prototype.getHasBackground = function (ignoreBackgroundImages) {\n if (ignoreBackgroundImages === void 0) { ignoreBackgroundImages = false; }\n var result = ignoreBackgroundImages ? false : this.backgroundImage.isValid();\n return result || _super.prototype.getHasBackground.call(this, ignoreBackgroundImages);\n };\n Container.prototype.internalParse = function (source, context) {\n _super.prototype.internalParse.call(this, source, context);\n this.clear();\n this.setShouldFallback(false);\n var jsonItems = source[this.getItemsCollectionPropertyName()];\n if (Array.isArray(jsonItems)) {\n for (var _i = 0, jsonItems_1 = jsonItems; _i < jsonItems_1.length; _i++) {\n var item = jsonItems_1[_i];\n var element = context.parseElement(this, item, this.forbiddenChildElements(), !this.isDesignMode());\n if (element) {\n this.insertItemAt(element, -1, true);\n }\n }\n }\n };\n Container.prototype.internalToJSON = function (target, context) {\n _super.prototype.internalToJSON.call(this, target, context);\n var collectionPropertyName = this.getItemsCollectionPropertyName();\n context.serializeArray(target, collectionPropertyName, this._items);\n };\n Object.defineProperty(Container.prototype, \"isSelectable\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Container.prototype.getEffectivePadding = function () {\n if (shared_1.GlobalSettings.removePaddingFromContainersWithBackgroundImage &&\n !this.getHasBackground(true)) {\n return new shared_1.PaddingDefinition();\n }\n return _super.prototype.getEffectivePadding.call(this);\n };\n Container.prototype.getEffectiveVerticalContentAlignment = function () {\n if (this.verticalContentAlignment !== undefined) {\n return this.verticalContentAlignment;\n }\n var parentContainer = this.getParentContainer();\n return parentContainer\n ? parentContainer.getEffectiveVerticalContentAlignment()\n : Enums.VerticalAlignment.Top;\n };\n Container.prototype.getItemCount = function () {\n return this._items.length;\n };\n Container.prototype.getItemAt = function (index) {\n return this._items[index];\n };\n Container.prototype.getFirstVisibleRenderedItem = function () {\n if (this.renderedElement && this._renderedItems && this._renderedItems.length > 0) {\n for (var _i = 0, _a = this._renderedItems; _i < _a.length; _i++) {\n var item = _a[_i];\n if (item.isVisible) {\n return item;\n }\n }\n }\n return undefined;\n };\n Container.prototype.getLastVisibleRenderedItem = function () {\n if (this.renderedElement && this._renderedItems && this._renderedItems.length > 0) {\n for (var i = this._renderedItems.length - 1; i >= 0; i--) {\n if (this._renderedItems[i].isVisible) {\n return this._renderedItems[i];\n }\n }\n }\n return undefined;\n };\n Container.prototype.getJsonTypeName = function () {\n return \"Container\";\n };\n Container.prototype.isFirstElement = function (element) {\n var designMode = this.isDesignMode();\n for (var _i = 0, _a = this._items; _i < _a.length; _i++) {\n var item = _a[_i];\n if (item.isVisible || designMode) {\n return item === element;\n }\n }\n return false;\n };\n Container.prototype.isLastElement = function (element) {\n var designMode = this.isDesignMode();\n for (var i = this._items.length - 1; i >= 0; i--) {\n if (this._items[i].isVisible || designMode) {\n return this._items[i] === element;\n }\n }\n return false;\n };\n Container.prototype.isRtl = function () {\n if (this.rtl !== undefined) {\n return this.rtl;\n }\n else {\n var parentContainer = this.getParentContainer();\n return parentContainer ? parentContainer.isRtl() : false;\n }\n };\n Container.prototype.isBleedingAtTop = function () {\n var firstRenderedItem = this.getFirstVisibleRenderedItem();\n return (this.isBleeding() || (firstRenderedItem ? firstRenderedItem.isBleedingAtTop() : false));\n };\n Container.prototype.isBleedingAtBottom = function () {\n var lastRenderedItem = this.getLastVisibleRenderedItem();\n return (this.isBleeding() ||\n (lastRenderedItem\n ? lastRenderedItem.isBleedingAtBottom() &&\n lastRenderedItem.getEffectiveStyle() === this.getEffectiveStyle()\n : false));\n };\n Container.prototype.indexOf = function (cardElement) {\n return this._items.indexOf(cardElement);\n };\n Container.prototype.addItem = function (item) {\n this.insertItemAt(item, -1, false);\n };\n Container.prototype.insertItemBefore = function (item, insertBefore) {\n this.insertItemAt(item, this._items.indexOf(insertBefore), false);\n };\n Container.prototype.insertItemAfter = function (item, insertAfter) {\n this.insertItemAt(item, this._items.indexOf(insertAfter) + 1, false);\n };\n Container.prototype.removeItem = function (item) {\n var itemIndex = this._items.indexOf(item);\n if (itemIndex >= 0) {\n this._items.splice(itemIndex, 1);\n item.setParent(undefined);\n this.updateLayout();\n return true;\n }\n return false;\n };\n Container.prototype.clear = function () {\n this._items = [];\n this._renderedItems = [];\n };\n Container.prototype.getResourceInformation = function () {\n var result = _super.prototype.getResourceInformation.call(this);\n if (this.backgroundImage.isValid()) {\n result.push({\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- validated by `isValid()`\n url: this.backgroundImage.url,\n mimeType: \"image\"\n });\n }\n return result;\n };\n Container.prototype.getActionById = function (id) {\n var result = _super.prototype.getActionById.call(this, id);\n if (!result) {\n if (this.selectAction) {\n result = this.selectAction.getActionById(id);\n }\n if (!result) {\n for (var _i = 0, _a = this._items; _i < _a.length; _i++) {\n var item = _a[_i];\n result = item.getActionById(id);\n if (result) {\n break;\n }\n }\n }\n }\n return result;\n };\n Object.defineProperty(Container.prototype, \"padding\", {\n get: function () {\n return this.getPadding();\n },\n set: function (value) {\n this.setPadding(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"selectAction\", {\n get: function () {\n return this._selectAction;\n },\n set: function (value) {\n this._selectAction = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Container.prototype, \"bleed\", {\n get: function () {\n return this.getBleed();\n },\n set: function (value) {\n this.setBleed(value);\n },\n enumerable: false,\n configurable: true\n });\n //#region Schema\n Container.backgroundImageProperty = new serialization_1.SerializableObjectProperty(serialization_1.Versions.v1_0, \"backgroundImage\", BackgroundImage);\n Container.verticalContentAlignmentProperty = new serialization_1.EnumProperty(serialization_1.Versions.v1_1, \"verticalContentAlignment\", Enums.VerticalAlignment);\n Container.rtlProperty = new serialization_1.BoolProperty(serialization_1.Versions.v1_0, \"rtl\");\n __decorate([\n (0, serialization_1.property)(Container.backgroundImageProperty)\n ], Container.prototype, \"backgroundImage\", null);\n __decorate([\n (0, serialization_1.property)(Container.verticalContentAlignmentProperty)\n ], Container.prototype, \"verticalContentAlignment\", void 0);\n __decorate([\n (0, serialization_1.property)(Container.rtlProperty)\n ], Container.prototype, \"rtl\", void 0);\n return Container;\n}(ContainerBase));\nexports.Container = Container;\nvar Column = /** @class */ (function (_super) {\n __extends(Column, _super);\n function Column(width) {\n if (width === void 0) { width = \"stretch\"; }\n var _this = _super.call(this) || this;\n _this.width = \"stretch\";\n //#endregion\n _this._computedWeight = 0;\n _this.width = width;\n return _this;\n }\n Column.prototype.adjustRenderedElementSize = function (renderedElement) {\n var minDesignTimeColumnHeight = 20;\n if (this.isDesignMode()) {\n renderedElement.style.minWidth = \"20px\";\n renderedElement.style.minHeight =\n (!this.minPixelHeight\n ? minDesignTimeColumnHeight\n : Math.max(this.minPixelHeight, minDesignTimeColumnHeight)) + \"px\";\n }\n else {\n renderedElement.style.minWidth = \"0\";\n if (this.minPixelHeight) {\n renderedElement.style.minHeight = this.minPixelHeight + \"px\";\n }\n }\n if (this.width === \"auto\") {\n renderedElement.style.flex = \"0 1 auto\";\n }\n else if (this.width === \"stretch\") {\n renderedElement.style.flex = \"1 1 50px\";\n }\n else if (this.width instanceof shared_1.SizeAndUnit) {\n if (this.width.unit === Enums.SizeUnit.Pixel) {\n renderedElement.style.flex = \"0 0 auto\";\n renderedElement.style.width = this.width.physicalSize + \"px\";\n }\n else {\n renderedElement.style.flex =\n \"1 1 \" +\n (this._computedWeight > 0 ? this._computedWeight : this.width.physicalSize) +\n \"%\";\n }\n }\n };\n Column.prototype.shouldSerialize = function (_context) {\n return true;\n };\n Object.defineProperty(Column.prototype, \"separatorOrientation\", {\n get: function () {\n return Enums.Orientation.Vertical;\n },\n enumerable: false,\n configurable: true\n });\n Column.prototype.getJsonTypeName = function () {\n return \"Column\";\n };\n Object.defineProperty(Column.prototype, \"hasVisibleSeparator\", {\n get: function () {\n if (this.parent && this.parent instanceof ColumnSet) {\n return this.separatorElement !== undefined && !this.parent.isLeftMostElement(this);\n }\n else {\n return false;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Column.prototype, \"isStandalone\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n //#region Schema\n Column.widthProperty = new serialization_1.CustomProperty(serialization_1.Versions.v1_0, \"width\", function (sender, prop, source, context) {\n var result = prop.defaultValue;\n var value = source[prop.name];\n var invalidWidth = false;\n if (typeof value === \"number\" && !isNaN(value)) {\n result = new shared_1.SizeAndUnit(value, Enums.SizeUnit.Weight);\n }\n else if (value === \"auto\" || value === \"stretch\") {\n result = value;\n }\n else if (typeof value === \"string\") {\n try {\n result = shared_1.SizeAndUnit.parse(value);\n if (result.unit === Enums.SizeUnit.Pixel &&\n prop.targetVersion.compareTo(context.targetVersion) > 0) {\n invalidWidth = true;\n }\n }\n catch (e) {\n invalidWidth = true;\n }\n }\n else {\n invalidWidth = true;\n }\n if (invalidWidth) {\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidColumnWidth(value));\n result = \"auto\";\n }\n return result;\n }, function (sender, property, target, value, context) {\n if (value instanceof shared_1.SizeAndUnit) {\n if (value.unit === Enums.SizeUnit.Pixel) {\n context.serializeValue(target, \"width\", value.physicalSize + \"px\");\n }\n else {\n context.serializeNumber(target, \"width\", value.physicalSize);\n }\n }\n else {\n context.serializeValue(target, \"width\", value);\n }\n }, \"stretch\");\n __decorate([\n (0, serialization_1.property)(Column.widthProperty)\n ], Column.prototype, \"width\", void 0);\n return Column;\n}(Container));\nexports.Column = Column;\nvar ColumnSet = /** @class */ (function (_super) {\n __extends(ColumnSet, _super);\n function ColumnSet() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._columns = [];\n return _this;\n }\n ColumnSet.prototype.createColumnInstance = function (source, context) {\n return context.parseCardObject(this, source, [], !this.isDesignMode(), function (typeName) {\n return !typeName || typeName === \"Column\" ? new Column() : undefined;\n }, function (typeName, _errorType) {\n context.logParseEvent(undefined, Enums.ValidationEvent.ElementTypeNotAllowed, strings_1.Strings.errors.elementTypeNotAllowed(typeName));\n });\n };\n ColumnSet.prototype.internalRender = function () {\n this._renderedColumns = [];\n if (this._columns.length > 0) {\n // Cache hostConfig to avoid walking the parent hierarchy several times\n var hostConfig = this.hostConfig;\n var element = document.createElement(\"div\");\n element.className = hostConfig.makeCssClassName(\"ac-columnSet\");\n element.style.display = \"flex\";\n if (shared_1.GlobalSettings.useAdvancedCardBottomTruncation) {\n // See comment in Container.internalRender()\n element.style.minHeight = \"-webkit-min-content\";\n }\n switch (this.getEffectiveHorizontalAlignment()) {\n case Enums.HorizontalAlignment.Center:\n element.style.justifyContent = \"center\";\n break;\n case Enums.HorizontalAlignment.Right:\n element.style.justifyContent = \"flex-end\";\n break;\n default:\n element.style.justifyContent = \"flex-start\";\n break;\n }\n var totalWeight = 0;\n for (var _i = 0, _a = this._columns; _i < _a.length; _i++) {\n var column = _a[_i];\n if (column.width instanceof shared_1.SizeAndUnit &&\n column.width.unit === Enums.SizeUnit.Weight) {\n totalWeight += column.width.physicalSize;\n }\n }\n for (var _b = 0, _c = this._columns; _b < _c.length; _b++) {\n var column = _c[_b];\n if (column.width instanceof shared_1.SizeAndUnit &&\n column.width.unit === Enums.SizeUnit.Weight &&\n totalWeight > 0) {\n var computedWeight = (100 / totalWeight) * column.width.physicalSize;\n // Best way to emulate \"internal\" access I know of\n column[\"_computedWeight\"] = computedWeight;\n }\n var renderedColumn = column.render();\n if (renderedColumn) {\n if (this._renderedColumns.length > 0 && column.separatorElement) {\n column.separatorElement.style.flex = \"0 0 auto\";\n Utils.appendChild(element, column.separatorElement);\n }\n Utils.appendChild(element, renderedColumn);\n this._renderedColumns.push(column);\n }\n }\n return this._renderedColumns.length > 0 ? element : undefined;\n }\n else {\n return undefined;\n }\n };\n ColumnSet.prototype.truncateOverflow = function (maxHeight) {\n for (var _i = 0, _a = this._columns; _i < _a.length; _i++) {\n var column = _a[_i];\n column[\"handleOverflow\"](maxHeight);\n }\n return true;\n };\n ColumnSet.prototype.undoOverflowTruncation = function () {\n for (var _i = 0, _a = this._columns; _i < _a.length; _i++) {\n var column = _a[_i];\n column[\"resetOverflow\"]();\n }\n };\n Object.defineProperty(ColumnSet.prototype, \"isSelectable\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n ColumnSet.prototype.internalParse = function (source, context) {\n _super.prototype.internalParse.call(this, source, context);\n this._columns = [];\n this._renderedColumns = [];\n var jsonColumns = source[\"columns\"];\n if (Array.isArray(jsonColumns)) {\n for (var _i = 0, jsonColumns_1 = jsonColumns; _i < jsonColumns_1.length; _i++) {\n var item = jsonColumns_1[_i];\n var column = this.createColumnInstance(item, context);\n if (column) {\n this._columns.push(column);\n }\n }\n }\n };\n ColumnSet.prototype.internalToJSON = function (target, context) {\n _super.prototype.internalToJSON.call(this, target, context);\n context.serializeArray(target, \"columns\", this._columns);\n };\n ColumnSet.prototype.isFirstElement = function (element) {\n for (var _i = 0, _a = this._columns; _i < _a.length; _i++) {\n var column = _a[_i];\n if (column.isVisible) {\n return column === element;\n }\n }\n return false;\n };\n ColumnSet.prototype.isBleedingAtTop = function () {\n if (this.isBleeding()) {\n return true;\n }\n if (this._renderedColumns && this._renderedColumns.length > 0) {\n for (var _i = 0, _a = this._columns; _i < _a.length; _i++) {\n var column = _a[_i];\n if (column.isBleedingAtTop()) {\n return true;\n }\n }\n }\n return false;\n };\n ColumnSet.prototype.isBleedingAtBottom = function () {\n if (this.isBleeding()) {\n return true;\n }\n if (this._renderedColumns && this._renderedColumns.length > 0) {\n for (var _i = 0, _a = this._columns; _i < _a.length; _i++) {\n var column = _a[_i];\n if (column.isBleedingAtBottom()) {\n return true;\n }\n }\n }\n return false;\n };\n ColumnSet.prototype.getItemCount = function () {\n return this._columns.length;\n };\n ColumnSet.prototype.getFirstVisibleRenderedItem = function () {\n if (this.renderedElement && this._renderedColumns && this._renderedColumns.length > 0) {\n return this._renderedColumns[0];\n }\n else {\n return undefined;\n }\n };\n ColumnSet.prototype.getLastVisibleRenderedItem = function () {\n if (this.renderedElement && this._renderedColumns && this._renderedColumns.length > 0) {\n return this._renderedColumns[this._renderedColumns.length - 1];\n }\n else {\n return undefined;\n }\n };\n ColumnSet.prototype.getColumnAt = function (index) {\n return this._columns[index];\n };\n ColumnSet.prototype.getItemAt = function (index) {\n return this.getColumnAt(index);\n };\n ColumnSet.prototype.getJsonTypeName = function () {\n return \"ColumnSet\";\n };\n ColumnSet.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n var weightedColumns = 0;\n var stretchedColumns = 0;\n for (var _i = 0, _a = this._columns; _i < _a.length; _i++) {\n var column = _a[_i];\n if (typeof column.width === \"number\") {\n weightedColumns++;\n }\n else if (column.width === \"stretch\") {\n stretchedColumns++;\n }\n }\n if (weightedColumns > 0 && stretchedColumns > 0) {\n context.addFailure(this, Enums.ValidationEvent.Hint, strings_1.Strings.hints.dontUseWeightedAndStrecthedColumnsInSameSet());\n }\n };\n ColumnSet.prototype.addColumn = function (column) {\n if (!column.parent) {\n this._columns.push(column);\n column.setParent(this);\n }\n else {\n throw new Error(strings_1.Strings.errors.columnAlreadyBelongsToAnotherSet());\n }\n };\n ColumnSet.prototype.removeItem = function (item) {\n if (item instanceof Column) {\n var itemIndex = this._columns.indexOf(item);\n if (itemIndex >= 0) {\n this._columns.splice(itemIndex, 1);\n item.setParent(undefined);\n this.updateLayout();\n return true;\n }\n }\n return false;\n };\n ColumnSet.prototype.indexOf = function (cardElement) {\n return cardElement instanceof Column ? this._columns.indexOf(cardElement) : -1;\n };\n ColumnSet.prototype.isLeftMostElement = function (element) {\n return this._columns.indexOf(element) === 0;\n };\n ColumnSet.prototype.isRightMostElement = function (element) {\n return this._columns.indexOf(element) === this._columns.length - 1;\n };\n ColumnSet.prototype.isTopElement = function (element) {\n return this._columns.indexOf(element) >= 0;\n };\n ColumnSet.prototype.isBottomElement = function (element) {\n return this._columns.indexOf(element) >= 0;\n };\n ColumnSet.prototype.getActionById = function (id) {\n var result = undefined;\n for (var _i = 0, _a = this._columns; _i < _a.length; _i++) {\n var column = _a[_i];\n result = column.getActionById(id);\n if (result) {\n break;\n }\n }\n return result;\n };\n Object.defineProperty(ColumnSet.prototype, \"bleed\", {\n get: function () {\n return this.getBleed();\n },\n set: function (value) {\n this.setBleed(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColumnSet.prototype, \"padding\", {\n get: function () {\n return this.getPadding();\n },\n set: function (value) {\n this.setPadding(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColumnSet.prototype, \"selectAction\", {\n get: function () {\n return this._selectAction;\n },\n set: function (value) {\n this._selectAction = value;\n },\n enumerable: false,\n configurable: true\n });\n return ColumnSet;\n}(ContainerBase));\nexports.ColumnSet = ColumnSet;\nfunction raiseImageLoadedEvent(image) {\n var card = image.getRootElement();\n var onImageLoadedHandler = card && card.onImageLoaded ? card.onImageLoaded : AdaptiveCard.onImageLoaded;\n if (onImageLoadedHandler) {\n onImageLoadedHandler(image);\n }\n}\nfunction raiseAnchorClickedEvent(element, anchor, ev) {\n var card = element.getRootElement();\n var onAnchorClickedHandler = card && card.onAnchorClicked ? card.onAnchorClicked : AdaptiveCard.onAnchorClicked;\n return onAnchorClickedHandler !== undefined\n ? onAnchorClickedHandler(element, anchor, ev)\n : false;\n}\nfunction raiseExecuteActionEvent(action) {\n var card = action.parent ? action.parent.getRootElement() : undefined;\n var onExecuteActionHandler = card && card.onExecuteAction ? card.onExecuteAction : AdaptiveCard.onExecuteAction;\n if (action.prepareForExecution() && onExecuteActionHandler) {\n onExecuteActionHandler(action);\n }\n}\nfunction raiseInlineCardExpandedEvent(action, isExpanded) {\n var card = action.parent ? action.parent.getRootElement() : undefined;\n var onInlineCardExpandedHandler = card && card.onInlineCardExpanded\n ? card.onInlineCardExpanded\n : AdaptiveCard.onInlineCardExpanded;\n if (onInlineCardExpandedHandler) {\n onInlineCardExpandedHandler(action, isExpanded);\n }\n}\nfunction raiseInputValueChangedEvent(input) {\n var card = input.getRootElement();\n var onInputValueChangedHandler = card && card.onInputValueChanged\n ? card.onInputValueChanged\n : AdaptiveCard.onInputValueChanged;\n if (onInputValueChangedHandler) {\n onInputValueChangedHandler(input);\n }\n}\nfunction raiseElementVisibilityChangedEvent(element, shouldUpdateLayout) {\n if (shouldUpdateLayout === void 0) { shouldUpdateLayout = true; }\n var rootElement = element.getRootElement();\n if (shouldUpdateLayout) {\n rootElement.updateLayout();\n }\n var card = rootElement;\n var onElementVisibilityChangedHandler = card && card.onElementVisibilityChanged\n ? card.onElementVisibilityChanged\n : AdaptiveCard.onElementVisibilityChanged;\n if (onElementVisibilityChangedHandler !== undefined) {\n onElementVisibilityChangedHandler(element);\n }\n}\nfunction updateInputAdornersVisibility(input, hide) {\n if (!!hide) {\n // hides the time/date picker icon\n input.readOnly = true;\n // hides the cross button icon\n input.required = true;\n }\n else {\n // shows the time/date picker icon\n input.readOnly = false;\n // shows the cross button icon\n input.required = false;\n }\n}\n/**\n * @returns return false to continue with default context menu; return true to skip SDK default context menu\n */\nfunction raiseDisplayOverflowActionMenuEvent(action, target) {\n var card = action.parent ? action.parent.getRootElement() : undefined;\n var onDisplayOverflowActionMenuHandler = card && card.onDisplayOverflowActionMenu\n ? card.onDisplayOverflowActionMenu\n : AdaptiveCard.onDisplayOverflowActionMenu;\n return onDisplayOverflowActionMenuHandler !== undefined\n ? onDisplayOverflowActionMenuHandler(action.getActions(), target)\n : false;\n}\n/**\n * @returns return false to continue with default action button; return true to skip SDK default action button\n */\nfunction raiseRenderOverflowActionsEvent(action, isAtRootLevelActions) {\n var card = action.parent ? action.parent.getRootElement() : undefined;\n var onRenderOverflowActionsHandler = card && card.onRenderOverflowActions\n ? card.onRenderOverflowActions\n : AdaptiveCard.onRenderOverflowActions;\n return onRenderOverflowActionsHandler !== undefined\n ? onRenderOverflowActionsHandler(action.getActions(), isAtRootLevelActions)\n : false;\n}\nvar ContainerWithActions = /** @class */ (function (_super) {\n __extends(ContainerWithActions, _super);\n function ContainerWithActions() {\n var _this = _super.call(this) || this;\n _this._actionCollection = new ActionCollection(_this);\n return _this;\n }\n ContainerWithActions.prototype.internalParse = function (source, context) {\n _super.prototype.internalParse.call(this, source, context);\n this.parseActions(source, context);\n };\n ContainerWithActions.prototype.parseActions = function (source, context) {\n this._actionCollection.parse(source[\"actions\"], context);\n };\n ContainerWithActions.prototype.internalToJSON = function (target, context) {\n _super.prototype.internalToJSON.call(this, target, context);\n this._actionCollection.toJSON(target, \"actions\", context);\n };\n ContainerWithActions.prototype.internalRender = function () {\n var element = _super.prototype.internalRender.call(this);\n if (element) {\n var renderedActions = this._actionCollection.render(this.hostConfig.actions.actionsOrientation);\n if (renderedActions) {\n Utils.appendChild(element, renderSeparation(this.hostConfig, {\n spacing: this.hostConfig.getEffectiveSpacing(this.hostConfig.actions.spacing)\n }, Enums.Orientation.Horizontal));\n Utils.appendChild(element, renderedActions);\n }\n if (this.renderIfEmpty) {\n return element;\n }\n else {\n return element.children.length > 0 ? element : undefined;\n }\n }\n else {\n return undefined;\n }\n };\n ContainerWithActions.prototype.getHasExpandedAction = function () {\n if (this.renderedActionCount === 0) {\n return false;\n }\n else if (this.renderedActionCount === 1) {\n return (this._actionCollection.expandedAction !== undefined &&\n !this.hostConfig.actions.preExpandSingleShowCardAction);\n }\n else {\n return this._actionCollection.expandedAction !== undefined;\n }\n };\n Object.defineProperty(ContainerWithActions.prototype, \"renderedActionCount\", {\n get: function () {\n return this._actionCollection.renderedActionCount;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContainerWithActions.prototype, \"renderIfEmpty\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n ContainerWithActions.prototype.releaseDOMResources = function () {\n _super.prototype.releaseDOMResources.call(this);\n this._actionCollection.releaseDOMResources();\n };\n ContainerWithActions.prototype.getActionCount = function () {\n return this._actionCollection.getActionCount();\n };\n ContainerWithActions.prototype.getActionAt = function (index) {\n if (index >= 0 && index < this.getActionCount()) {\n return this._actionCollection.getActionAt(index);\n }\n else {\n return _super.prototype.getActionAt.call(this, index);\n }\n };\n ContainerWithActions.prototype.getActionById = function (id) {\n var result = this._actionCollection.getActionById(id);\n return result ? result : _super.prototype.getActionById.call(this, id);\n };\n ContainerWithActions.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n if (this._actionCollection) {\n this._actionCollection.validateProperties(context);\n }\n };\n ContainerWithActions.prototype.isLastElement = function (element) {\n return _super.prototype.isLastElement.call(this, element) && this._actionCollection.getActionCount() === 0;\n };\n ContainerWithActions.prototype.addAction = function (action) {\n this._actionCollection.addAction(action);\n };\n ContainerWithActions.prototype.clear = function () {\n _super.prototype.clear.call(this);\n this._actionCollection.clear();\n };\n ContainerWithActions.prototype.getAllInputs = function (processActions) {\n if (processActions === void 0) { processActions = true; }\n var result = _super.prototype.getAllInputs.call(this, processActions);\n if (processActions) {\n result.push.apply(result, this._actionCollection.getAllInputs(processActions));\n }\n return result;\n };\n ContainerWithActions.prototype.getResourceInformation = function () {\n var result = _super.prototype.getResourceInformation.call(this);\n result.push.apply(result, this._actionCollection.getResourceInformation());\n return result;\n };\n ContainerWithActions.prototype.isBleedingAtBottom = function () {\n if (this._actionCollection.renderedActionCount === 0) {\n return _super.prototype.isBleedingAtBottom.call(this);\n }\n else {\n if (this._actionCollection.getActionCount() === 1) {\n return (this._actionCollection.expandedAction !== undefined &&\n !this.hostConfig.actions.preExpandSingleShowCardAction);\n }\n else {\n return this._actionCollection.expandedAction !== undefined;\n }\n }\n };\n ContainerWithActions.prototype.getForbiddenActionNames = function () {\n return [];\n };\n ContainerWithActions.prototype.getElementById = function (id) {\n var result = _super.prototype.getElementById.call(this, id);\n if (!result) {\n result = this.getElementByIdFromAction(id);\n }\n return result;\n };\n Object.defineProperty(ContainerWithActions.prototype, \"isStandalone\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n return ContainerWithActions;\n}(Container));\nexports.ContainerWithActions = ContainerWithActions;\nvar RefreshActionProperty = /** @class */ (function (_super) {\n __extends(RefreshActionProperty, _super);\n function RefreshActionProperty(targetVersion, name) {\n var _this = _super.call(this, targetVersion, name, undefined) || this;\n _this.targetVersion = targetVersion;\n _this.name = name;\n return _this;\n }\n RefreshActionProperty.prototype.parse = function (sender, source, context) {\n var action = context.parseAction(sender.parent, source[this.name], [], false);\n if (action !== undefined) {\n if (action instanceof ExecuteAction) {\n return action;\n }\n context.logParseEvent(sender, Enums.ValidationEvent.ActionTypeNotAllowed, strings_1.Strings.errors.actionTypeNotAllowed(action.getJsonTypeName()));\n }\n context.logParseEvent(sender, Enums.ValidationEvent.PropertyCantBeNull, strings_1.Strings.errors.propertyMustBeSet(\"action\"));\n return undefined;\n };\n RefreshActionProperty.prototype.toJSON = function (sender, target, value, context) {\n context.serializeValue(target, this.name, value ? value.toJSON(context) : undefined, undefined, true);\n };\n return RefreshActionProperty;\n}(serialization_1.PropertyDefinition));\nexports.RefreshActionProperty = RefreshActionProperty;\nvar RefreshDefinition = /** @class */ (function (_super) {\n __extends(RefreshDefinition, _super);\n function RefreshDefinition() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(RefreshDefinition.prototype, \"action\", {\n get: function () {\n return this.getValue(RefreshDefinition.actionProperty);\n },\n set: function (value) {\n this.setValue(RefreshDefinition.actionProperty, value);\n if (value) {\n value.setParent(this.parent);\n }\n },\n enumerable: false,\n configurable: true\n });\n RefreshDefinition.prototype.getSchemaKey = function () {\n return \"RefreshDefinition\";\n };\n //#region Schema\n RefreshDefinition.actionProperty = new RefreshActionProperty(serialization_1.Versions.v1_4, \"action\");\n RefreshDefinition.userIdsProperty = new serialization_1.StringArrayProperty(serialization_1.Versions.v1_4, \"userIds\");\n __decorate([\n (0, serialization_1.property)(RefreshDefinition.actionProperty)\n ], RefreshDefinition.prototype, \"action\", null);\n __decorate([\n (0, serialization_1.property)(RefreshDefinition.userIdsProperty)\n ], RefreshDefinition.prototype, \"userIds\", void 0);\n return RefreshDefinition;\n}(serialization_1.SerializableObject));\nexports.RefreshDefinition = RefreshDefinition;\nvar AuthCardButton = /** @class */ (function (_super) {\n __extends(AuthCardButton, _super);\n function AuthCardButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AuthCardButton.prototype.getSchemaKey = function () {\n return \"AuthCardButton\";\n };\n //#region Schema\n AuthCardButton.typeProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"type\");\n AuthCardButton.titleProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"title\");\n AuthCardButton.imageProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"image\");\n AuthCardButton.valueProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"value\");\n __decorate([\n (0, serialization_1.property)(AuthCardButton.typeProperty)\n ], AuthCardButton.prototype, \"type\", void 0);\n __decorate([\n (0, serialization_1.property)(AuthCardButton.titleProperty)\n ], AuthCardButton.prototype, \"title\", void 0);\n __decorate([\n (0, serialization_1.property)(AuthCardButton.imageProperty)\n ], AuthCardButton.prototype, \"image\", void 0);\n __decorate([\n (0, serialization_1.property)(AuthCardButton.valueProperty)\n ], AuthCardButton.prototype, \"value\", void 0);\n return AuthCardButton;\n}(serialization_1.SerializableObject));\nexports.AuthCardButton = AuthCardButton;\nvar TokenExchangeResource = /** @class */ (function (_super) {\n __extends(TokenExchangeResource, _super);\n function TokenExchangeResource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TokenExchangeResource.prototype.getSchemaKey = function () {\n return \"TokenExchangeResource\";\n };\n //#region Schema\n TokenExchangeResource.idProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"id\");\n TokenExchangeResource.uriProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"uri\");\n TokenExchangeResource.providerIdProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"providerId\");\n __decorate([\n (0, serialization_1.property)(TokenExchangeResource.idProperty)\n ], TokenExchangeResource.prototype, \"id\", void 0);\n __decorate([\n (0, serialization_1.property)(TokenExchangeResource.uriProperty)\n ], TokenExchangeResource.prototype, \"uri\", void 0);\n __decorate([\n (0, serialization_1.property)(TokenExchangeResource.providerIdProperty)\n ], TokenExchangeResource.prototype, \"providerId\", void 0);\n return TokenExchangeResource;\n}(serialization_1.SerializableObject));\nexports.TokenExchangeResource = TokenExchangeResource;\nvar Authentication = /** @class */ (function (_super) {\n __extends(Authentication, _super);\n function Authentication() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Authentication.prototype.getSchemaKey = function () {\n return \"Authentication\";\n };\n //#region Schema\n Authentication.textProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"text\");\n Authentication.connectionNameProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_4, \"connectionName\");\n Authentication.buttonsProperty = new serialization_1.SerializableObjectCollectionProperty(serialization_1.Versions.v1_4, \"buttons\", AuthCardButton);\n Authentication.tokenExchangeResourceProperty = new serialization_1.SerializableObjectProperty(serialization_1.Versions.v1_4, \"tokenExchangeResource\", TokenExchangeResource, true);\n __decorate([\n (0, serialization_1.property)(Authentication.textProperty)\n ], Authentication.prototype, \"text\", void 0);\n __decorate([\n (0, serialization_1.property)(Authentication.connectionNameProperty)\n ], Authentication.prototype, \"connectionName\", void 0);\n __decorate([\n (0, serialization_1.property)(Authentication.buttonsProperty)\n ], Authentication.prototype, \"buttons\", void 0);\n __decorate([\n (0, serialization_1.property)(Authentication.tokenExchangeResourceProperty)\n ], Authentication.prototype, \"tokenExchangeResource\", void 0);\n return Authentication;\n}(serialization_1.SerializableObject));\nexports.Authentication = Authentication;\n// @dynamic\nvar AdaptiveCard = /** @class */ (function (_super) {\n __extends(AdaptiveCard, _super);\n function AdaptiveCard() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.designMode = false;\n return _this;\n }\n Object.defineProperty(AdaptiveCard.prototype, \"refresh\", {\n get: function () {\n return this.getValue(AdaptiveCard.refreshProperty);\n },\n set: function (value) {\n this.setValue(AdaptiveCard.refreshProperty, value);\n if (value) {\n value.parent = this;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AdaptiveCard, \"processMarkdown\", {\n get: function () {\n throw new Error(strings_1.Strings.errors.processMarkdownEventRemoved());\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n set: function (_value) {\n throw new Error(strings_1.Strings.errors.processMarkdownEventRemoved());\n },\n enumerable: false,\n configurable: true\n });\n AdaptiveCard.applyMarkdown = function (text) {\n var result = {\n didProcess: false\n };\n if (AdaptiveCard.onProcessMarkdown) {\n AdaptiveCard.onProcessMarkdown(text, result);\n }\n else if (window.markdownit) {\n // Check for markdownit\n var markdownIt = window.markdownit;\n result.outputHtml = markdownIt().render(text);\n result.didProcess = true;\n }\n else if (!AdaptiveCard._haveWarnedAboutNoMarkdownProcessing) {\n // eslint-disable-next-line no-console\n console.warn(strings_1.Strings.errors.markdownProcessingNotEnabled);\n AdaptiveCard._haveWarnedAboutNoMarkdownProcessing = true;\n }\n return result;\n };\n AdaptiveCard.prototype.isVersionSupported = function () {\n if (this.bypassVersionCheck) {\n return true;\n }\n else {\n var unsupportedVersion = !this.version ||\n !this.version.isValid ||\n this.maxVersion.major < this.version.major ||\n (this.maxVersion.major === this.version.major &&\n this.maxVersion.minor < this.version.minor);\n return !unsupportedVersion;\n }\n };\n AdaptiveCard.prototype.getDefaultSerializationContext = function () {\n return new SerializationContext(this.version);\n };\n AdaptiveCard.prototype.getItemsCollectionPropertyName = function () {\n return \"body\";\n };\n AdaptiveCard.prototype.internalParse = function (source, context) {\n this._fallbackCard = undefined;\n var fallbackElement = context.parseElement(undefined, source[\"fallback\"], this.forbiddenChildElements(), !this.isDesignMode());\n if (fallbackElement) {\n this._fallbackCard = new AdaptiveCard();\n this._fallbackCard.addItem(fallbackElement);\n }\n _super.prototype.internalParse.call(this, source, context);\n };\n AdaptiveCard.prototype.internalToJSON = function (target, context) {\n this.setValue(AdaptiveCard.versionProperty, context.targetVersion);\n _super.prototype.internalToJSON.call(this, target, context);\n };\n AdaptiveCard.prototype.internalRender = function () {\n var renderedElement = _super.prototype.internalRender.call(this);\n if (shared_1.GlobalSettings.useAdvancedCardBottomTruncation && renderedElement) {\n // Unlike containers, the root card element should be allowed to\n // be shorter than its content (otherwise the overflow truncation\n // logic would never get triggered)\n renderedElement.style.removeProperty(\"minHeight\");\n }\n return renderedElement;\n };\n AdaptiveCard.prototype.getHasBackground = function (ignoreBackgroundImages) {\n if (ignoreBackgroundImages === void 0) { ignoreBackgroundImages = false; }\n return true;\n };\n AdaptiveCard.prototype.getDefaultPadding = function () {\n return new shared_1.PaddingDefinition(Enums.Spacing.Padding, Enums.Spacing.Padding, Enums.Spacing.Padding, Enums.Spacing.Padding);\n };\n AdaptiveCard.prototype.shouldSerialize = function (_context) {\n return true;\n };\n Object.defineProperty(AdaptiveCard.prototype, \"renderIfEmpty\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AdaptiveCard.prototype, \"bypassVersionCheck\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AdaptiveCard.prototype, \"allowCustomStyle\", {\n get: function () {\n return this.hostConfig.adaptiveCard && this.hostConfig.adaptiveCard.allowCustomStyle;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AdaptiveCard.prototype, \"hasBackground\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n AdaptiveCard.prototype.getJsonTypeName = function () {\n return \"AdaptiveCard\";\n };\n AdaptiveCard.prototype.internalValidateProperties = function (context) {\n _super.prototype.internalValidateProperties.call(this, context);\n if (this.getValue(CardElement.typeNameProperty) !== \"AdaptiveCard\") {\n context.addFailure(this, Enums.ValidationEvent.MissingCardType, strings_1.Strings.errors.invalidCardType());\n }\n if (!this.bypassVersionCheck && !this.version) {\n context.addFailure(this, Enums.ValidationEvent.PropertyCantBeNull, strings_1.Strings.errors.propertyMustBeSet(\"version\"));\n }\n else if (!this.isVersionSupported()) {\n context.addFailure(this, Enums.ValidationEvent.UnsupportedCardVersion, strings_1.Strings.errors.unsupportedCardVersion(this.version.toString(), this.maxVersion.toString()));\n }\n };\n AdaptiveCard.prototype.render = function (target) {\n var _this = this;\n var renderedCard;\n if (this.shouldFallback() && this._fallbackCard) {\n this._fallbackCard.hostConfig = this.hostConfig;\n renderedCard = this._fallbackCard.render();\n }\n else {\n renderedCard = _super.prototype.render.call(this);\n if (renderedCard) {\n renderedCard.classList.add(this.hostConfig.makeCssClassName(\"ac-adaptiveCard\"));\n // Having a tabIndex on the root container for a card can mess up accessibility in some scenarios.\n // However, we've shipped this behavior before, and so can't just turn it off in a point release. For\n // now, to unblock accessibility scenarios for our customers, we've got an option to turn it off. In a\n // future release, we should strongly consider flipping the default such that we *don't* emit a tabIndex\n // by default.\n if (shared_1.GlobalSettings.setTabIndexAtCardRoot) {\n renderedCard.tabIndex = 0;\n }\n if (this.speak) {\n renderedCard.setAttribute(\"aria-label\", this.speak);\n }\n renderedCard.onmouseenter = function (ev) {\n _this.updateInputsVisualState(true /* hover */);\n };\n renderedCard.onmouseleave = function (ev) {\n _this.updateInputsVisualState(false /* hover */);\n };\n this.getRootElement().updateActionsEnabledState();\n }\n }\n if (target) {\n Utils.appendChild(target, renderedCard);\n this.updateLayout();\n }\n return renderedCard;\n };\n AdaptiveCard.prototype.updateLayout = function (processChildren) {\n if (processChildren === void 0) { processChildren = true; }\n _super.prototype.updateLayout.call(this, processChildren);\n if (shared_1.GlobalSettings.useAdvancedCardBottomTruncation && this.isDisplayed()) {\n var padding = this.hostConfig.getEffectiveSpacing(Enums.Spacing.Default);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n this[\"handleOverflow\"](this.renderedElement.offsetHeight - padding);\n }\n };\n AdaptiveCard.prototype.shouldFallback = function () {\n return _super.prototype.shouldFallback.call(this) || !this.isVersionSupported();\n };\n Object.defineProperty(AdaptiveCard.prototype, \"hasVisibleSeparator\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n AdaptiveCard.schemaUrl = \"http://adaptivecards.io/schemas/adaptive-card.json\";\n //#region Schema\n // eslint-disable-next-line @typescript-eslint/naming-convention\n AdaptiveCard.$schemaProperty = new serialization_1.CustomProperty(serialization_1.Versions.v1_0, \"$schema\", function (sender, property, source, context) {\n return AdaptiveCard.schemaUrl;\n }, function (sender, prop, target, value, context) {\n context.serializeValue(target, prop.name, AdaptiveCard.schemaUrl);\n });\n AdaptiveCard.versionProperty = new serialization_1.CustomProperty(serialization_1.Versions.v1_0, \"version\", function (sender, prop, source, context) {\n var version = serialization_1.Version.parse(source[prop.name], context);\n if (version === undefined) {\n version = serialization_1.Versions.latest;\n context.logParseEvent(sender, Enums.ValidationEvent.InvalidPropertyValue, strings_1.Strings.errors.invalidCardVersion(version.toString()));\n }\n return version;\n }, function (sender, prop, target, value, context) {\n if (value !== undefined) {\n context.serializeValue(target, prop.name, value.toString());\n }\n }, serialization_1.Versions.v1_0);\n AdaptiveCard.fallbackTextProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"fallbackText\");\n AdaptiveCard.speakProperty = new serialization_1.StringProperty(serialization_1.Versions.v1_0, \"speak\");\n AdaptiveCard.refreshProperty = new serialization_1.SerializableObjectProperty(serialization_1.Versions.v1_4, \"refresh\", RefreshDefinition, true);\n AdaptiveCard.authenticationProperty = new serialization_1.SerializableObjectProperty(serialization_1.Versions.v1_4, \"authentication\", Authentication, true);\n //#endregion\n AdaptiveCard._haveWarnedAboutNoMarkdownProcessing = false;\n __decorate([\n (0, serialization_1.property)(AdaptiveCard.versionProperty)\n ], AdaptiveCard.prototype, \"version\", void 0);\n __decorate([\n (0, serialization_1.property)(AdaptiveCard.fallbackTextProperty)\n ], AdaptiveCard.prototype, \"fallbackText\", void 0);\n __decorate([\n (0, serialization_1.property)(AdaptiveCard.speakProperty)\n ], AdaptiveCard.prototype, \"speak\", void 0);\n __decorate([\n (0, serialization_1.property)(AdaptiveCard.refreshProperty)\n ], AdaptiveCard.prototype, \"refresh\", null);\n __decorate([\n (0, serialization_1.property)(AdaptiveCard.authenticationProperty)\n ], AdaptiveCard.prototype, \"authentication\", void 0);\n return AdaptiveCard;\n}(ContainerWithActions));\nexports.AdaptiveCard = AdaptiveCard;\nvar InlineAdaptiveCard = /** @class */ (function (_super) {\n __extends(InlineAdaptiveCard, _super);\n function InlineAdaptiveCard() {\n //#region Schema\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.suppressStyle = false;\n return _this;\n }\n InlineAdaptiveCard.prototype.getSchemaKey = function () {\n return \"InlineAdaptiveCard\";\n };\n InlineAdaptiveCard.prototype.populateSchema = function (schema) {\n _super.prototype.populateSchema.call(this, schema);\n schema.remove(AdaptiveCard.$schemaProperty, AdaptiveCard.versionProperty);\n };\n //#endregion\n InlineAdaptiveCard.prototype.getDefaultPadding = function () {\n return new shared_1.PaddingDefinition(this.suppressStyle ? Enums.Spacing.None : Enums.Spacing.Padding, Enums.Spacing.Padding, this.suppressStyle ? Enums.Spacing.None : Enums.Spacing.Padding, Enums.Spacing.Padding);\n };\n Object.defineProperty(InlineAdaptiveCard.prototype, \"bypassVersionCheck\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InlineAdaptiveCard.prototype, \"defaultStyle\", {\n get: function () {\n if (this.suppressStyle) {\n return Enums.ContainerStyle.Default;\n }\n else {\n return this.hostConfig.actions.showCard.style\n ? this.hostConfig.actions.showCard.style\n : Enums.ContainerStyle.Emphasis;\n }\n },\n enumerable: false,\n configurable: true\n });\n InlineAdaptiveCard.prototype.render = function (target) {\n var renderedCard = _super.prototype.render.call(this, target);\n if (renderedCard) {\n renderedCard.setAttribute(\"aria-live\", \"polite\");\n renderedCard.removeAttribute(\"tabindex\");\n }\n return renderedCard;\n };\n return InlineAdaptiveCard;\n}(AdaptiveCard));\nvar SerializationContext = /** @class */ (function (_super) {\n __extends(SerializationContext, _super);\n function SerializationContext() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._forbiddenTypes = new Set();\n return _this;\n }\n SerializationContext.prototype.internalParseCardObject = function (parent, source, forbiddenTypes, allowFallback, createInstanceCallback, logParseEvent) {\n var _this = this;\n var result = undefined;\n if (source && typeof source === \"object\") {\n var oldForbiddenTypes_1 = new Set();\n this._forbiddenTypes.forEach(function (type) {\n oldForbiddenTypes_1.add(type);\n });\n forbiddenTypes.forEach(function (type) {\n _this._forbiddenTypes.add(type);\n });\n var typeName = Utils.parseString(source[\"type\"]);\n if (typeName && this._forbiddenTypes.has(typeName)) {\n logParseEvent(typeName, Enums.TypeErrorType.ForbiddenType);\n }\n else {\n var tryToFallback = false;\n result = createInstanceCallback(typeName);\n if (!result) {\n tryToFallback = shared_1.GlobalSettings.enableFallback && allowFallback;\n logParseEvent(typeName, Enums.TypeErrorType.UnknownType);\n }\n else {\n result.setParent(parent);\n result.parse(source, this);\n tryToFallback =\n shared_1.GlobalSettings.enableFallback && allowFallback && result.shouldFallback();\n }\n if (tryToFallback) {\n var fallback = source[\"fallback\"];\n if (!fallback && parent) {\n parent.setShouldFallback(true);\n }\n if (typeof fallback === \"string\" && fallback.toLowerCase() === \"drop\") {\n result = undefined;\n }\n else if (typeof fallback === \"object\") {\n result = this.internalParseCardObject(parent, fallback, forbiddenTypes, true, createInstanceCallback, logParseEvent);\n }\n }\n }\n this._forbiddenTypes = oldForbiddenTypes_1;\n }\n return result;\n };\n SerializationContext.prototype.cardObjectParsed = function (o, source) {\n if (o instanceof Action && this.onParseAction) {\n this.onParseAction(o, source, this);\n }\n else if (o instanceof CardElement && this.onParseElement) {\n this.onParseElement(o, source, this);\n }\n };\n SerializationContext.prototype.shouldSerialize = function (o) {\n if (o instanceof Action) {\n return this.actionRegistry.findByName(o.getJsonTypeName()) !== undefined;\n }\n else if (o instanceof CardElement) {\n return this.elementRegistry.findByName(o.getJsonTypeName()) !== undefined;\n }\n else {\n return true;\n }\n };\n SerializationContext.prototype.parseCardObject = function (parent, source, forbiddenTypeNames, allowFallback, createInstanceCallback, logParseEvent) {\n var forbiddenTypes = new Set(forbiddenTypeNames);\n var result = this.internalParseCardObject(parent, source, forbiddenTypes, allowFallback, createInstanceCallback, logParseEvent);\n if (result !== undefined) {\n this.cardObjectParsed(result, source);\n }\n return result;\n };\n SerializationContext.prototype.parseElement = function (parent, source, forbiddenTypes, allowFallback) {\n var _this = this;\n return this.parseCardObject(parent, source, forbiddenTypes, allowFallback, function (typeName) {\n return _this.elementRegistry.createInstance(typeName, _this.targetVersion);\n }, function (typeName, errorType) {\n if (errorType === Enums.TypeErrorType.UnknownType) {\n _this.logParseEvent(undefined, Enums.ValidationEvent.UnknownElementType, strings_1.Strings.errors.unknownElementType(typeName));\n }\n else {\n _this.logParseEvent(undefined, Enums.ValidationEvent.ElementTypeNotAllowed, strings_1.Strings.errors.elementTypeNotAllowed(typeName));\n }\n });\n };\n SerializationContext.prototype.parseAction = function (parent, source, forbiddenActionTypes, allowFallback) {\n var _this = this;\n return this.parseCardObject(parent, source, forbiddenActionTypes, allowFallback, function (typeName) {\n return _this.actionRegistry.createInstance(typeName, _this.targetVersion);\n }, function (typeName, errorType) {\n if (errorType === Enums.TypeErrorType.UnknownType) {\n _this.logParseEvent(undefined, Enums.ValidationEvent.UnknownActionType, strings_1.Strings.errors.unknownActionType(typeName));\n }\n else {\n _this.logParseEvent(undefined, Enums.ValidationEvent.ActionTypeNotAllowed, strings_1.Strings.errors.actionTypeNotAllowed(typeName));\n }\n });\n };\n Object.defineProperty(SerializationContext.prototype, \"elementRegistry\", {\n get: function () {\n var _a;\n return (_a = this._elementRegistry) !== null && _a !== void 0 ? _a : registry_1.GlobalRegistry.elements;\n },\n enumerable: false,\n configurable: true\n });\n // Not using a property setter here because the setter should accept \"undefined\"\n // whereas the getter should never return undefined.\n SerializationContext.prototype.setElementRegistry = function (value) {\n this._elementRegistry = value;\n };\n Object.defineProperty(SerializationContext.prototype, \"actionRegistry\", {\n get: function () {\n var _a;\n return (_a = this._actionRegistry) !== null && _a !== void 0 ? _a : registry_1.GlobalRegistry.actions;\n },\n enumerable: false,\n configurable: true\n });\n // Not using a property setter here because the setter should accept \"undefined\"\n // whereas the getter should never return undefined.\n SerializationContext.prototype.setActionRegistry = function (value) {\n this._actionRegistry = value;\n };\n return SerializationContext;\n}(serialization_1.BaseSerializationContext));\nexports.SerializationContext = SerializationContext;\nregistry_1.GlobalRegistry.defaultElements.register(\"Container\", Container);\nregistry_1.GlobalRegistry.defaultElements.register(\"TextBlock\", TextBlock);\nregistry_1.GlobalRegistry.defaultElements.register(\"RichTextBlock\", RichTextBlock, serialization_1.Versions.v1_2);\nregistry_1.GlobalRegistry.defaultElements.register(\"TextRun\", TextRun, serialization_1.Versions.v1_2);\nregistry_1.GlobalRegistry.defaultElements.register(\"Image\", Image);\nregistry_1.GlobalRegistry.defaultElements.register(\"ImageSet\", ImageSet);\nregistry_1.GlobalRegistry.defaultElements.register(\"Media\", Media, serialization_1.Versions.v1_1);\nregistry_1.GlobalRegistry.defaultElements.register(\"FactSet\", FactSet);\nregistry_1.GlobalRegistry.defaultElements.register(\"ColumnSet\", ColumnSet);\nregistry_1.GlobalRegistry.defaultElements.register(\"ActionSet\", ActionSet, serialization_1.Versions.v1_2);\nregistry_1.GlobalRegistry.defaultElements.register(\"Input.Text\", TextInput);\nregistry_1.GlobalRegistry.defaultElements.register(\"Input.Date\", DateInput);\nregistry_1.GlobalRegistry.defaultElements.register(\"Input.Time\", TimeInput);\nregistry_1.GlobalRegistry.defaultElements.register(\"Input.Number\", NumberInput);\nregistry_1.GlobalRegistry.defaultElements.register(\"Input.ChoiceSet\", ChoiceSetInput);\nregistry_1.GlobalRegistry.defaultElements.register(\"Input.Toggle\", ToggleInput);\nregistry_1.GlobalRegistry.defaultActions.register(OpenUrlAction.JsonTypeName, OpenUrlAction);\nregistry_1.GlobalRegistry.defaultActions.register(SubmitAction.JsonTypeName, SubmitAction);\nregistry_1.GlobalRegistry.defaultActions.register(ShowCardAction.JsonTypeName, ShowCardAction);\nregistry_1.GlobalRegistry.defaultActions.register(ToggleVisibilityAction.JsonTypeName, ToggleVisibilityAction, serialization_1.Versions.v1_2);\nregistry_1.GlobalRegistry.defaultActions.register(ExecuteAction.JsonTypeName, ExecuteAction, serialization_1.Versions.v1_4);\n//# sourceMappingURL=card-elements.js.map","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\nimport {\n Action,\n ExecuteAction,\n OpenUrlAction,\n ShowCardAction,\n SubmitAction,\n ToggleVisibilityAction,\n} from \"adaptivecards/lib/card-elements\";\nimport { Button, FluentProvider, IdPrefixProvider, Theme } from \"@fluentui/react-components\";\n\nimport { ActionIconPlacement } from \"adaptivecards/lib/enums\";\nimport { CardObjectRegistry } from \"adaptivecards/lib/registry\";\nimport { generateUniqueId } from \"adaptivecards\";\nimport { hostCapabilitiesFluentUIThemeKey } from \"./HostCapability\";\n\nexport interface IActionButtonProps {\n text: string;\n className?: string;\n iconUrl?: string;\n iconPlacement?: ActionIconPlacement;\n iconSize?: number;\n actionClickHandler: (\n e:\n | React.MouseEvent<HTMLAnchorElement>\n | React.MouseEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLDivElement>\n | React.MouseEvent<HTMLSpanElement>\n ) => void;\n style: string;\n theme?: Theme;\n}\n\nconst ActionButton = (props: IActionButtonProps): JSX.Element => {\n let control: JSX.Element;\n\n if (props.iconUrl) {\n // If an icon is provided, render a button with a compound layout.\n control = (\n <Button\n className={props.className}\n onClick={props.actionClickHandler}\n appearance=\"primary\"\n >\n <div\n style={{\n display: \"flex\",\n flexDirection:\n props.iconPlacement === ActionIconPlacement.LeftOfTitle\n ? \"row\"\n : \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <img\n src={props.iconUrl}\n style={{\n width: props.iconSize,\n height: props.iconSize,\n flexShrink: 0,\n marginRight:\n props.iconPlacement === ActionIconPlacement.LeftOfTitle ? 4 : 0,\n marginBottom:\n props.iconPlacement !== ActionIconPlacement.LeftOfTitle ? 4 : 0,\n }}\n alt=\"\"\n />\n <span>{props.text}</span>\n </div>\n </Button>\n );\n } else {\n // Render text-only buttons based on the style property.\n if (props.style.toLocaleLowerCase().trim() === \"positive\") {\n control = (\n <Button\n className={props.className}\n onClick={props.actionClickHandler}\n appearance=\"primary\"\n >\n {props.text}\n </Button>\n );\n } else if (props.style.toLocaleLowerCase().trim() === \"destructive\") {\n control = (\n <Button\n className={props.className}\n onClick={props.actionClickHandler}\n appearance=\"primary\"\n >\n {props.text}\n </Button>\n );\n } else {\n control = (\n <Button className={props.className} onClick={props.actionClickHandler}>\n {props.text}\n </Button>\n );\n }\n }\n\n return control;\n};\n\nconst createActionDiv = (\n title: string,\n iconUrl: string,\n baseCssClass: string,\n iconPlacement: string | ActionIconPlacement,\n iconSize: number,\n actionClickHandler: (\n e:\n | React.MouseEvent<HTMLAnchorElement>\n | React.MouseEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLDivElement>\n | React.MouseEvent<HTMLSpanElement>\n ) => void,\n style: string,\n theme?: Theme\n): HTMLDivElement => {\n const div = document.createElement(\"div\");\n div.className = \"fluentUI\";\n\n ReactDOM.render(\n <IdPrefixProvider value={generateUniqueId()}>\n <FluentProvider theme={theme}>\n <ActionButton\n text={title}\n className={baseCssClass}\n iconUrl={iconUrl}\n iconPlacement={iconPlacement as ActionIconPlacement}\n iconSize={iconSize}\n actionClickHandler={\n actionClickHandler as (\n e:\n | React.MouseEvent<HTMLAnchorElement>\n | React.MouseEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLDivElement>\n | React.MouseEvent<HTMLSpanElement>\n ) => void\n }\n style={style}\n theme={theme}\n />\n </FluentProvider>\n </IdPrefixProvider>,\n div\n );\n\n div.addEventListener(\"DOMNodeRemoved\", () => {\n ReactDOM.unmountComponentAtNode(div);\n });\n\n return div;\n};\n\nexport class FluentUIExecuteAction extends ExecuteAction {\n protected updateCssClasses(): void {\n // no-op;\n }\n\n private actionClickHandler = (\n e:\n | React.MouseEvent<HTMLAnchorElement>\n | React.MouseEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLDivElement>\n | React.MouseEvent<HTMLSpanElement>\n ): void => {\n e.stopPropagation();\n e.preventDefault();\n this.execute();\n };\n\n public render(baseCssClass?: string): void {\n const theme: Theme = this.hostConfig.hostCapabilities.getCustomProperty(\n hostCapabilitiesFluentUIThemeKey\n );\n const actionsConfig = this.parent?.hostConfig?.actions ?? {\n iconPlacement: \"left\",\n iconSize: 24,\n };\n this._renderedElement = createActionDiv(\n this.title ?? \"\",\n this.iconUrl || \"\",\n baseCssClass || \"\",\n actionsConfig.iconPlacement as ActionIconPlacement,\n actionsConfig.iconSize,\n this.actionClickHandler,\n this.style,\n theme\n );\n }\n}\n\nexport class FluentUIOpenUrlAction extends OpenUrlAction {\n protected updateCssClasses(): void {\n // no-op;\n }\n\n private actionClickHandler = (\n e:\n | React.MouseEvent<HTMLAnchorElement>\n | React.MouseEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLDivElement>\n | React.MouseEvent<HTMLSpanElement>\n ): void => {\n e.stopPropagation();\n e.preventDefault();\n this.execute();\n };\n\n public render(baseCssClass?: string): void {\n const theme: Theme = this.hostConfig.hostCapabilities.getCustomProperty(\n hostCapabilitiesFluentUIThemeKey\n );\n const actionsConfig = this.parent?.hostConfig?.actions ?? {\n iconPlacement: \"left\",\n iconSize: 24,\n };\n this._renderedElement = createActionDiv(\n this.title ?? \"\",\n this.iconUrl || \"\",\n baseCssClass || \"\",\n actionsConfig.iconPlacement as ActionIconPlacement,\n actionsConfig.iconSize,\n this.actionClickHandler,\n this.style,\n theme\n );\n }\n}\n\nexport class FluentUIShowCardAction extends ShowCardAction {\n protected updateCssClasses(): void {\n if (this.renderedElement) {\n // Work around for isolatedModules and ambient const enums\n const isExpanded = (this.state as any) === 1; // ActionButtonState.Expanded = 1\n this.renderedElement.setAttribute(\n \"aria-expanded\",\n isExpanded.toString()\n );\n }\n }\n\n private actionClickHandler = (\n e:\n | React.MouseEvent<HTMLAnchorElement>\n | React.MouseEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLDivElement>\n | React.MouseEvent<HTMLSpanElement>\n ): void => {\n e.stopPropagation();\n e.preventDefault();\n this.execute();\n };\n\n public render(_baseCssClass?: string): void {\n // const theme: Theme = this.hostConfig.hostCapabilities.getCustomProperty(\n // hostCapabilitiesFluentUIThemeKey\n // );\n const actionsConfig = this.parent?.hostConfig?.actions ?? {\n iconPlacement: \"left\",\n iconSize: 24,\n };\n this._renderedElement = createActionDiv(\n this.title || \"Default Title\",\n this.iconUrl || \"\",\n this.iconUrl ?? \"\",\n actionsConfig.iconPlacement as ActionIconPlacement,\n actionsConfig.iconSize,\n this.actionClickHandler,\n this.style\n );\n }\n}\n\nexport class FluentUISubmitAction extends SubmitAction {\n protected updateCssClasses(): void {\n // no-op;\n }\n\n private actionClickHandler = (\n e:\n | React.MouseEvent<HTMLAnchorElement>\n | React.MouseEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLDivElement>\n | React.MouseEvent<HTMLSpanElement>\n ): void => {\n e.stopPropagation();\n e.preventDefault();\n this.execute();\n };\n\n public render(baseCssClass?: string): void {\n const theme: Theme = this.hostConfig.hostCapabilities.getCustomProperty(\n hostCapabilitiesFluentUIThemeKey\n );\n const actionsConfig = this.parent?.hostConfig?.actions ?? {\n iconPlacement: \"left\",\n iconSize: 24,\n };\n this._renderedElement = createActionDiv(\n this.title ?? \"\",\n this.iconUrl ?? \"\",\n baseCssClass || \"\",\n actionsConfig.iconPlacement as ActionIconPlacement,\n actionsConfig.iconSize,\n this.actionClickHandler,\n this.style,\n theme\n );\n }\n}\n\nexport class FluentUIToggleVisibilityAction extends ToggleVisibilityAction {\n protected updateCssClasses(): void {\n if (this.renderedElement) {\n // Work around for isolatedModules and ambient const enums\n const isExpanded = (this.state as any) === 1; // ActionButtonState.Expanded = 1\n this.renderedElement.setAttribute(\n \"aria-expanded\",\n isExpanded.toString()\n );\n }\n }\n\n private actionClickHandler = (\n e:\n | React.MouseEvent<HTMLAnchorElement>\n | React.MouseEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLDivElement>\n | React.MouseEvent<HTMLSpanElement>\n ): void => {\n e.stopPropagation();\n e.preventDefault();\n this.execute();\n };\n\n public render(baseCssClass?: string): void {\n const theme: Theme = this.hostConfig.hostCapabilities.getCustomProperty(\n hostCapabilitiesFluentUIThemeKey\n );\n const actionsConfig = this.parent?.hostConfig?.actions ?? {\n iconPlacement: \"left\",\n iconSize: 24,\n };\n this._renderedElement = createActionDiv(\n this.title ?? \"\",\n this.iconUrl ?? \"\",\n baseCssClass || \"\",\n actionsConfig.iconPlacement as ActionIconPlacement,\n actionsConfig.iconSize,\n this.actionClickHandler,\n this.style,\n theme\n );\n }\n}\n\nexport function registerFluentUIActions(\n registry: CardObjectRegistry<Action>\n): void {\n // In Fluent UI v9, icon initialization is not required.\n registry.register(\"Action.Submit\", FluentUISubmitAction);\n registry.register(\"Action.OpenUrl\", FluentUIOpenUrlAction);\n registry.register(\"Action.ShowCard\", FluentUIShowCardAction);\n registry.register(\"Action.ToggleVisibility\", FluentUIToggleVisibilityAction);\n registry.register(\"Action.Execute\", FluentUIExecuteAction);\n}\n","import * as ReactDOM from \"react-dom\";\n\nexport const internalRender = (renderReact: () => JSX.Element): HTMLElement => {\n const div = document.createElement(\"div\");\n ReactDOM.render(renderReact(), div); // eslint-disable-line @microsoft/spfx/pair-react-dom-render-unmount\n return div;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from \"react\";\n\nimport {\n BoolProperty,\n Choice,\n Input,\n SerializableObjectCollectionProperty,\n StringProperty,\n Strings,\n ValidationEvent,\n ValidationResults,\n ValueSetProperty,\n Versions,\n generateUniqueId,\n property,\n} from \"adaptivecards\";\nimport {\n Checkbox,\n Combobox,\n FluentProvider,\n IdPrefixProvider,\n Option,\n Radio,\n RadioGroup,\n Theme,\n} from \"@fluentui/react-components\";\n\nimport { getFluentUIThemeFromHostCapability } from \"./HostCapability\";\nimport { internalRender } from \"./internalRender\";\n\nexport class FluentUIChoiceSetInput extends Input {\n public static readonly valueProperty = new StringProperty(\n Versions.v1_5,\n \"value\"\n );\n public static readonly choicesProperty =\n new SerializableObjectCollectionProperty(Versions.v1_5, \"choices\", Choice);\n public static readonly styleProperty = new ValueSetProperty(\n Versions.v1_5,\n \"style\",\n [\n { value: \"compact\" },\n { value: \"expanded\" },\n { value: \"filtered\", targetVersion: Versions.v1_5 },\n ],\n \"compact\"\n );\n public static readonly isMultiSelectProperty = new BoolProperty(\n Versions.v1_5,\n \"isMultiSelect\",\n false\n );\n public static readonly placeholderProperty = new StringProperty(\n Versions.v1_5,\n \"placeholder\"\n );\n public static readonly wrapProperty = new BoolProperty(\n Versions.v1_5,\n \"wrap\",\n false\n );\n\n @property(FluentUIChoiceSetInput.valueProperty)\n public defaultValue?: string;\n\n @property(FluentUIChoiceSetInput.styleProperty)\n public style?: \"compact\" | \"expanded\" | \"filtered\";\n\n public get isCompact(): boolean {\n return !this.style || this.style === \"compact\";\n }\n\n public set isCompact(value: boolean) {\n this.style = value ? undefined : \"expanded\";\n }\n\n @property(FluentUIChoiceSetInput.isMultiSelectProperty)\n public isMultiSelect: boolean = false;\n\n @property(FluentUIChoiceSetInput.placeholderProperty)\n public placeholder?: string;\n\n @property(FluentUIChoiceSetInput.wrapProperty)\n public wrap: boolean = false;\n\n @property(FluentUIChoiceSetInput.choicesProperty)\n public choices: Choice[] = [];\n\n private element: HTMLElement | undefined;\n private refControl: any; // Reference to the rendered control\n // Internal storage of selected values (as strings).\n private selectedValues: string[] = [];\n private defaultSelectedValues: string[] = [];\n\n private updateSelectedValues = (\n key: string,\n isMultiSelect: boolean,\n selected: boolean\n ): void => {\n if (isMultiSelect) {\n if (selected) {\n if (!this.selectedValues.includes(key)) {\n this.selectedValues.push(key);\n }\n } else {\n this.removeItemFromArray(this.selectedValues, key);\n }\n } else {\n this.selectedValues = [key];\n }\n };\n\n private removeItemFromArray = (arr: any[], item: any): void => {\n const index = arr.indexOf(item);\n if (index > -1) {\n arr.splice(index, 1);\n }\n };\n\n protected internalRender(): HTMLElement | undefined {\n const theme: Theme = getFluentUIThemeFromHostCapability(this.hostConfig);\n\n // Prepare options from the choices.\n const options = this.choices\n ? this.choices.map((x) => ({ key: x.value, text: x.title }))\n : [];\n // Initialize default selected values if defaultValue exists.\n if (this.defaultValue) {\n this.defaultSelectedValues = this.defaultValue.split(\n this.hostConfig.choiceSetInputValueSeparator\n );\n \n this.selectedValues = [...this.defaultSelectedValues];\n }\n\n // Define a controlled ComboBox component using React state.\n const ComboBoxControl: React.FC = () => {\n // Capture the current selected values into state.\n const [selected, setSelected] = React.useState<string[]>(\n this.selectedValues\n );\n\n // When this.selectedValues changes externally, update local state.\n React.useEffect(() => {\n setSelected(this.selectedValues);\n }, [\n this.selectedValues.join(this.hostConfig.choiceSetInputValueSeparator),\n ]);\n\n return (\n <Combobox\n style={{ width: \"100%\" }}\n placeholder={this.placeholder}\n multiselect={this.isMultiSelect}\n // For single-select, control via the `value` prop.\n value={\n !this.isMultiSelect\n ? options.find((value) => selected[0] === value.key)?.text\n : selected\n .map(\n (key) => options.find((option) => option.key === key)?.text\n )\n .join(this.hostConfig.choiceSetInputValueSeparator)\n }\n // For multi-select, use the `selectedOptions` prop.\n selectedOptions={this.isMultiSelect ? selected : [selected[0]]}\n autoComplete={this.style === \"filtered\" ? \"on\" : \"off\"}\n onOptionSelect={(_, data) => {\n if (this.isMultiSelect) {\n setSelected(data.selectedOptions);\n this.selectedValues = data.selectedOptions;\n } else {\n const newVal = data.optionValue ?? \"\";\n setSelected([newVal]);\n this.selectedValues = [newVal];\n }\n this.valueChanged();\n }}\n ref={(node) => {\n this.refControl = node;\n }}\n >\n {options.map((option) => (\n <Option key={option.key} value={option.key}>\n {option.text ?? \"\"}\n </Option>\n ))}\n </Combobox>\n );\n };\n\n const control = (): JSX.Element => (\n <>\n {/* Expanded style for single select: using RadioGroup */}\n {!this.isMultiSelect && this.style === \"expanded\" && (\n <IdPrefixProvider value={generateUniqueId()}>\n <FluentProvider theme={theme}>\n <RadioGroup\n defaultValue={this.defaultValue}\n onChange={(_, data) => {\n this.updateSelectedValues(\n data.value,\n this.isMultiSelect,\n true\n );\n this.valueChanged();\n }}\n ref={(node) => {\n this.refControl = node;\n }}\n >\n {this.choices.map((x, index) => (\n <Radio\n key={x.value}\n value={x.value}\n label={x.title}\n style={{\n marginTop:\n index > 0 ? this.hostConfig.spacing.default : 0,\n }}\n />\n ))}\n </RadioGroup>\n </FluentProvider>\n </IdPrefixProvider>\n )}\n\n {/* Expanded style for multi-select: using a flex container of Checkboxes */}\n {this.isMultiSelect && this.style === \"expanded\" && (\n <div\n style={{ display: \"flex\", gap: this.hostConfig.spacing.default }}\n >\n {this.choices.map((x, index) => {\n const defaultChecked =\n this.defaultSelectedValues.indexOf(x.value ?? \"\") > -1;\n return (\n <IdPrefixProvider key={x.value} value={generateUniqueId()}>\n <FluentProvider theme={theme}>\n <Checkbox\n label={x.title}\n defaultChecked={defaultChecked}\n onChange={(_ev, checked) => {\n this.updateSelectedValues(\n x.value ?? \"\",\n this.isMultiSelect,\n !!checked\n );\n this.valueChanged();\n }}\n ref={(node) => {\n if (index === 0) this.refControl = node;\n }}\n />\n </FluentProvider>\n </IdPrefixProvider>\n );\n })}\n </div>\n )}\n\n {/* Compact or filtered style: using a controlled ComboBox */}\n {(this.style === \"compact\" || this.style === \"filtered\") && (\n <IdPrefixProvider value={generateUniqueId()}>\n <FluentProvider theme={theme}>\n <ComboBoxControl />\n </FluentProvider>\n </IdPrefixProvider>\n )}\n </>\n );\n\n this.element = internalRender(control);\n this.element.style.width = \"100%\";\n return this.element;\n }\n\n public getJsonTypeName(): string {\n return \"Input.ChoiceSet\";\n }\n\n public focus(): void {\n if (this.refControl && this.refControl.focus) {\n this.refControl.focus();\n }\n }\n\n public internalValidateProperties(context: ValidationResults): void {\n super.internalValidateProperties(context);\n\n if (this.choices.length === 0) {\n context.addFailure(\n this,\n ValidationEvent.CollectionCantBeEmpty,\n Strings.errors.choiceSetMustHaveAtLeastOneChoice()\n );\n }\n\n for (const choice of this.choices) {\n if (!choice.title || !choice.value) {\n context.addFailure(\n this,\n ValidationEvent.PropertyCantBeNull,\n Strings.errors.choiceSetChoicesMustHaveTitleAndValue()\n );\n }\n }\n }\n\n public isSet(): boolean {\n return !!this.value;\n }\n\n public isValid(): boolean {\n if (!this.value) {\n return !this.isRequired;\n }\n return true;\n }\n\n public get value(): string | undefined {\n if (this.selectedValues) {\n return this.selectedValues.join(\n this.hostConfig.choiceSetInputValueSeparator\n );\n }\n return undefined;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { FluentProvider, IdPrefixProvider } from \"@fluentui/react-components\";\nimport { Input, StringProperty, Versions, property } from \"adaptivecards\";\n\nimport { DatePicker } from \"@fluentui/react-datepicker-compat\";\nimport { generateUniqueId } from \"adaptivecards\";\nimport { getFluentUIThemeFromHostCapability } from \"./HostCapability\";\nimport { internalRender } from \"./internalRender\";\n\nexport class FluentUIDateInput extends Input {\n public static readonly valueProperty = new StringProperty(\n Versions.v1_5,\n \"value\"\n );\n public static readonly placeholderProperty = new StringProperty(\n Versions.v1_5,\n \"placeholder\"\n );\n public static readonly minProperty = new StringProperty(Versions.v1_0, \"min\");\n public static readonly maxProperty = new StringProperty(Versions.v1_0, \"max\");\n\n @property(FluentUIDateInput.valueProperty)\n public defaultValue?: string;\n\n @property(FluentUIDateInput.minProperty)\n public min?: string;\n\n @property(FluentUIDateInput.maxProperty)\n public max?: string;\n\n @property(FluentUIDateInput.placeholderProperty)\n public placeholder?: string;\n\n private _value?: Date;\n private refControl: any;\n private element: HTMLElement | undefined;\n\n protected internalRender(): HTMLElement | undefined {\n const theme = getFluentUIThemeFromHostCapability(this.hostConfig);\n\n const control = (): JSX.Element => (\n <IdPrefixProvider value={generateUniqueId()} >\n <FluentProvider theme={theme}>\n <DatePicker\n id={this.id}\n placeholder={this.placeholder}\n minDate={this.convertStringToDate(this.min)}\n maxDate={this.convertStringToDate(this.max)}\n onSelectDate={(date: Date | null | undefined) => {\n this._value = date ?? undefined;\n this.valueChanged();\n }}\n ref={(node) => {\n this.refControl = node;\n }}\n style={{ width: \"100%\" }}\n\n />\n </FluentProvider>\n </IdPrefixProvider>\n );\n\n this.element = internalRender(control);\n this.element.style.width = \"100%\";\n return this.element;\n }\n\n /**\n * Converts a string (or undefined) to a Date.\n * Returns undefined if the value is not provided or invalid.\n */\n private convertStringToDate(value: string | undefined): Date | undefined {\n if (!value) {\n return undefined;\n }\n try {\n const date = new Date(value);\n // Return undefined if the date is invalid\n return isNaN(date.getTime()) ? undefined : date;\n } catch {\n return undefined;\n }\n }\n\n public getJsonTypeName(): string {\n return \"Input.Date\";\n }\n\n public focus(): void {\n this.refControl?.focus();\n }\n\n protected updateInputControlAriaLabelledBy(): void {\n if (this.element) {\n const joinedLabelIds = this.getAllLabelIds().join(\" \");\n if (joinedLabelIds) {\n this.element.setAttribute(\"aria-labelledby\", joinedLabelIds);\n } else {\n this.element.removeAttribute(\"aria-labelledby\");\n }\n }\n }\n\n public isSet(): boolean {\n return !!this.value;\n }\n\n public isValid(): boolean {\n if (!this.value) {\n return !this.isRequired;\n }\n\n const valueAsDate = new Date(this.value);\n let result = true;\n\n if (this.min) {\n const minDate = new Date(this.min);\n result = result && valueAsDate >= minDate;\n }\n\n if (this.max) {\n const maxDate = new Date(this.max);\n result = result && valueAsDate <= maxDate;\n }\n\n return result;\n }\n\n public get value(): string | undefined {\n if (this._value) {\n const offset = this._value.getTimezoneOffset();\n const adjustedDate = new Date(this._value.getTime() - offset * 60 * 1000);\n return adjustedDate.toISOString().split(\"T\")[0];\n }\n return undefined;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { FluentProvider, IdPrefixProvider, SpinButton } from \"@fluentui/react-components\";\nimport {\n Input,\n NumProperty,\n StringProperty,\n Versions,\n generateUniqueId,\n property,\n} from \"adaptivecards\";\n\nimport { getFluentUIThemeFromHostCapability } from \"./HostCapability\";\nimport { internalRender } from \"./internalRender\";\n\nexport class FluentUINumberInput extends Input {\n public static readonly valueProperty = new NumProperty(\n Versions.v1_5,\n \"value\"\n );\n public static readonly placeholderProperty = new StringProperty(\n Versions.v1_5,\n \"placeholder\"\n );\n public static readonly minProperty = new NumProperty(Versions.v1_0, \"min\");\n public static readonly maxProperty = new NumProperty(Versions.v1_0, \"max\");\n\n @property(FluentUINumberInput.valueProperty)\n public defaultValue?: number;\n\n @property(FluentUINumberInput.minProperty)\n public min?: number;\n\n @property(FluentUINumberInput.maxProperty)\n public max?: number;\n\n @property(FluentUINumberInput.placeholderProperty)\n public placeholder?: string;\n\n // Store a reference to the SpinButton control.\n private refControl: any | null = null;\n private element: HTMLElement | undefined;\n\n protected internalRender(): HTMLElement | undefined {\n const theme = getFluentUIThemeFromHostCapability(this.hostConfig);\n\n const control = (): JSX.Element => (\n <IdPrefixProvider value={generateUniqueId()}>\n <FluentProvider theme={theme}>\n <SpinButton\n style={{width: 'calc(100% - 10px)'}}\n id={this.id}\n // Convert defaultValue to string or provide an empty string if undefined.\n defaultValue={\n this.defaultValue !== undefined ? this.defaultValue : undefined\n }\n placeholder={this.placeholder}\n min={this.min}\n max={this.max}\n onChange={() => {\n // Notify that the value has changed.\n this.valueChanged();\n }}\n ref={(node) => {\n this.refControl = node;\n }}\n />\n </FluentProvider>\n </IdPrefixProvider>\n );\n\n this.element = internalRender(control);\n this.element.style.width = \"100%\";\n return this.element;\n }\n\n public getJsonTypeName(): string {\n return \"Input.Number\";\n }\n\n public focus(): void {\n this.refControl?.focus();\n }\n\n protected updateInputControlAriaLabelledBy(): void {\n if (this.element) {\n const joinedLabelIds = this.getAllLabelIds().join(\" \");\n if (joinedLabelIds) {\n this.element.setAttribute(\"aria-labelledby\", joinedLabelIds);\n } else {\n this.element.removeAttribute(\"aria-labelledby\");\n }\n }\n }\n\n public isSet(): boolean {\n const value = this.value;\n return value !== undefined && !isNaN(value);\n }\n\n public isValid(): boolean {\n const value = this.value;\n if (value === undefined) {\n return !this.isRequired;\n }\n let result = true;\n if (this.min !== undefined) {\n result = result && value >= this.min;\n }\n if (this.max !== undefined) {\n result = result && value <= this.max;\n }\n return result;\n }\n\n public get value(): number | undefined {\n return this.refControl ? Number(this.refControl.value) : undefined;\n }\n}\n","// IconButton.tsx\nimport * as React from \"react\";\n\nimport { Button } from \"@fluentui/react-components\";\n\nexport interface IconButtonProps {\n /** Accessible label for the button */\n ariaLabel: string;\n /** Icon properties: image source, and optionally height and width */\n iconProps: {\n src: string;\n height?: string;\n width?: string;\n };\n /** Optional custom styles for the button root */\n styles?: React.CSSProperties;\n /** Optional CSS class name for the button */\n className?: string;\n /** Optional click event handler */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nexport const IconButton: React.FC<IconButtonProps> = (props) => {\n const { ariaLabel, iconProps, styles, className, onClick, ...rest } = props;\n return (\n <Button\n appearance=\"transparent\"\n aria-label={ariaLabel}\n className={className}\n onClick={onClick}\n style={styles}\n {...rest}\n >\n <img\n src={iconProps.src}\n alt={ariaLabel}\n style={{\n height: iconProps.height || \"100%\",\n width: iconProps.width || \"auto\",\n }}\n />\n </Button>\n );\n};\n","\n\nexport const inlineButtonRootStyle: React.CSSProperties = {\n marginLeft: 8,\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from \"react\";\n\nimport {\n Action,\n ActionProperty,\n Input as AdaptiveInput,\n BoolProperty,\n EnumProperty,\n InputTextStyle,\n NumProperty,\n StringProperty,\n Versions,\n generateUniqueId,\n property,\n} from \"adaptivecards\";\nimport {\n Button,\n Input as FluentInput,\n FluentProvider,\n IdPrefixProvider,\n Textarea,\n Theme,\n} from \"@fluentui/react-components\";\nimport {\n getFluentUIThemeFromHostCapability,\n hostCapabilitiesFluentUIThemeKey,\n} from \"./HostCapability\";\n\nimport { IconButton } from \"./IconButton\";\nimport { inlineButtonRootStyle } from \"./inlineButtonRootStyle\";\nimport { internalRender } from \"./internalRender\";\n\nexport class FluentUITextInput extends AdaptiveInput {\n public static readonly valueProperty = new StringProperty(\n Versions.v1_0,\n \"value\"\n );\n public static readonly maxLengthProperty = new NumProperty(\n Versions.v1_0,\n \"maxLength\"\n );\n public static readonly isMultilineProperty = new BoolProperty(\n Versions.v1_0,\n \"isMultiline\",\n false\n );\n public static readonly placeholderProperty = new StringProperty(\n Versions.v1_0,\n \"placeholder\"\n );\n public static readonly styleProperty = new EnumProperty(\n Versions.v1_0,\n \"style\",\n InputTextStyle,\n InputTextStyle.Text\n );\n public static readonly inlineActionProperty = new ActionProperty(\n Versions.v1_0,\n \"inlineAction\",\n [\"Action.ShowCard\"]\n );\n public static readonly regexProperty = new StringProperty(\n Versions.v1_3,\n \"regex\",\n true\n );\n\n @property(FluentUITextInput.valueProperty)\n public defaultValue?: string;\n\n @property(FluentUITextInput.maxLengthProperty)\n public maxLength?: number;\n\n @property(FluentUITextInput.isMultilineProperty)\n public isMultiline: boolean = false;\n\n @property(FluentUITextInput.placeholderProperty)\n public placeholder?: string;\n\n @property(FluentUITextInput.styleProperty)\n public style: InputTextStyle = InputTextStyle.Text;\n\n @property(FluentUITextInput.inlineActionProperty)\n public inlineAction?: Action;\n\n @property(FluentUITextInput.regexProperty)\n public regex?: string;\n\n // Reference to the underlying HTML input (or textarea) element.\n private refControl: HTMLInputElement | HTMLTextAreaElement | null = null;\n private element: HTMLElement | undefined;\n private _value: string = this.defaultValue || \"\";\n\n protected internalRender(): HTMLElement | undefined {\n const theme: Theme = getFluentUIThemeFromHostCapability(this.hostConfig);\n\n const control = (): JSX.Element => (\n <IdPrefixProvider value={generateUniqueId()}>\n <FluentProvider theme={theme}>\n {this.isMultiline ? (\n <Textarea\n resize=\"vertical\"\n style={{ width: '100%' }}\n id={this.id}\n defaultValue={this.defaultValue}\n placeholder={this.placeholder}\n maxLength={this.maxLength}\n onChange={(_, data) => {\n this._value = data.value;\n this.valueChanged();\n }}\n onKeyDown={this.handleKeyDown}\n ref={node => {\n // For Textarea, the underlying element is the Textarea itself.\n this.refControl = node;\n }}\n />\n ) : (\n <FluentInput\n id={this.id}\n style={{ width: '100%' }}\n type={\n InputTextStyle[this.style].toLowerCase() as\n | 'number'\n | 'time'\n | 'text'\n | 'search'\n | 'tel'\n | 'url'\n | 'email'\n | 'date'\n | 'password'\n | 'datetime-local'\n | 'month'\n | 'week'\n }\n defaultValue={this.defaultValue}\n placeholder={this.placeholder}\n maxLength={this.maxLength}\n onChange={(_, data) => {\n this._value = data.value;\n this.valueChanged();\n }}\n onKeyDown={this.handleKeyDown}\n ref={node => {\n // For FluentInput, assume node.inputElement is the underlying HTMLInputElement.\n this.refControl = node ? (node as any).inputElement : null;\n }}\n />\n )}\n </FluentProvider>\n </IdPrefixProvider>\n );\n\n this.element = internalRender(control);\n this.element.style.width = \"100%\";\n return this.element;\n }\n\n private handleKeyDown = (\n e: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>\n ): void => {\n // When the Enter key is pressed, execute the inline action if one is defined.\n if (e.key === \"Enter\" && this.inlineAction) {\n this.inlineAction?.execute();\n }\n };\n\n protected overrideInternalRender(): HTMLElement {\n const inputControl = super.overrideInternalRender();\n\n if (this.inlineAction) {\n this.inputControlContainerElement.appendChild(\n this.buildInlineActionButton()\n );\n }\n return inputControl || document.createElement(\"div\");\n }\n\n private buildInlineActionButton = (): HTMLElement => {\n return internalRender(\n this.inlineAction?.iconUrl\n ? this.inlineIconActionButton\n : this.buildTextOnlyInlineActionActionButton\n );\n };\n\n private inlineActionClickHandler = (\n e: React.MouseEvent<HTMLButtonElement>\n ): void => {\n e.stopPropagation();\n e.preventDefault();\n this.inlineAction?.execute();\n };\n\n private inlineIconActionButton = (): JSX.Element => {\n const theme = this.hostConfig.hostCapabilities.getCustomProperty(\n hostCapabilitiesFluentUIThemeKey\n );\n return (\n <FluentProvider theme={theme}>\n <IconButton\n ariaLabel={this.inlineAction?.title || \"Inline action\"}\n className={this.hostConfig.makeCssClassName(\n \"ac-inlineActionButton\",\n \"iconOnly\"\n )}\n iconProps={{ src: this.inlineAction?.iconUrl ?? \"\" }}\n onClick={this.inlineActionClickHandler}\n styles={inlineButtonRootStyle as React.CSSProperties}\n />\n </FluentProvider>\n );\n };\n\n private buildTextOnlyInlineActionActionButton = (): JSX.Element => {\n const theme = this.hostConfig.hostCapabilities.getCustomProperty(\n hostCapabilitiesFluentUIThemeKey\n );\n return (\n <IdPrefixProvider value={generateUniqueId()}>\n <FluentProvider theme={theme}>\n <Button\n appearance=\"primary\"\n className={this.hostConfig.makeCssClassName(\n \"ac-inlineActionButton\",\n \"textOnly\"\n )}\n onClick={this.inlineActionClickHandler}\n style={inlineButtonRootStyle as React.CSSProperties}\n >\n {this.inlineAction?.title ?? \"\"}\n </Button>\n </FluentProvider>\n </IdPrefixProvider>\n );\n };\n\n public getJsonTypeName(): string {\n return \"Input.Text\";\n }\n\n public focus(): void {\n this.refControl?.focus();\n }\n\n protected updateInputControlAriaLabelledBy(): void {\n if (this.element) {\n const joinedLabelIds = this.getAllLabelIds().join(\" \");\n if (joinedLabelIds) {\n this.element.setAttribute(\"aria-labelledby\", joinedLabelIds);\n } else {\n this.element.removeAttribute(\"aria-labelledby\");\n }\n }\n }\n\n public getActionById(id: string): Action {\n let result = super.getActionById(id);\n\n if (!result && this.inlineAction) {\n result = this.inlineAction.getActionById(id);\n }\n\n if (!result) {\n throw new Error(`Action with id '${id}' not found.`);\n }\n return result;\n }\n\n public isSet(): boolean {\n return this.value ? true : false;\n }\n\n public isValid(): boolean {\n if (!this.value) {\n return !this.isRequired;\n }\n\n if (this.regex) {\n return new RegExp(this.regex, \"g\").test(this.value); \n }\n\n return true;\n }\n\n public get value(): string | undefined {\n if (this._value) { \n return this._value;\n }\n return undefined;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from \"react\";\n\nimport {\n FluentProvider,\n IdPrefixProvider,\n Theme,\n} from \"@fluentui/react-components\";\nimport {\n Input,\n StringProperty,\n TimeProperty,\n Versions,\n generateUniqueId,\n property,\n} from \"adaptivecards\";\n\nimport { ClockRegular } from \"@fluentui/react-icons\";\nimport { TimePicker as FluentUITimePicker } from \"@fluentui/react-timepicker-compat\";\nimport { formatDateToTimeString } from \"@fluentui/react-timepicker-compat\";\nimport { getFluentUIThemeFromHostCapability } from \"./HostCapability\";\nimport { internalRender } from \"./internalRender\";\n\nexport interface ITimePickerProps {\n id: string;\n defaultTime?: Date;\n minTime?: Date;\n maxTime?: Date;\n placeholder?: string;\n theme: Theme;\n // Callback invoked when the time changes.\n onTimeChange?: (\n selectedTime: Date | undefined,\n selectedTimeText?: string\n ) => void;\n}\n\nexport const TimePicker: React.FunctionComponent<ITimePickerProps> = (\n props: React.PropsWithChildren<ITimePickerProps>\n) => {\n const {\n id,\n defaultTime,\n minTime,\n maxTime,\n placeholder,\n theme,\n onTimeChange,\n } = props;\n const [time, setTime] = React.useState<Date | undefined>(defaultTime);\n const [timePickerValue, setTimePickerValue] = React.useState<string>(\n defaultTime ? formatDateToTimeString(defaultTime ?? new Date()) : \"\"\n );\n\n const onTimeChangeHandler = (_ev: React.SyntheticEvent, data: any): void => {\n const newTime = data.selectedTime ?? undefined;\n const newValue = data.selectedTimeText ?? \"\";\n setTime(newTime);\n setTimePickerValue(newValue);\n if (onTimeChange && newTime) {\n onTimeChange(newTime, newValue);\n }\n };\n\n const onInputHandler = (ev: React.ChangeEvent<HTMLInputElement>): void => {\n setTimePickerValue(ev.target.value);\n };\n\n return (\n <IdPrefixProvider value={id}>\n <FluentProvider theme={theme}>\n <FluentUITimePicker\n style={{ width: \"100%\" }}\n expandIcon={<ClockRegular />}\n id={id}\n freeform\n min={minTime ? formatDateToTimeString(minTime) : undefined}\n max={maxTime ? formatDateToTimeString(maxTime) : undefined}\n placeholder={placeholder}\n value={time ? formatDateToTimeString(time) : timePickerValue}\n onTimeChange={onTimeChangeHandler}\n onInput={onInputHandler}\n />\n </FluentProvider>\n </IdPrefixProvider>\n );\n};\n\nexport class FluentUITimeInput extends Input {\n // Helper: converts a time string (e.g. \"13:45\") to a Date using a fixed date.\n private static convertTimeStringToDate(timeString: string): Date {\n return new Date(\"1973-09-04T\" + timeString + \":00Z\");\n }\n\n public static readonly valueProperty = new TimeProperty(\n Versions.v1_0,\n \"value\"\n );\n public static readonly placeholderProperty = new StringProperty(\n Versions.v1_0,\n \"placeholder\"\n );\n public static readonly minProperty = new TimeProperty(Versions.v1_0, \"min\");\n public static readonly maxProperty = new TimeProperty(Versions.v1_0, \"max\");\n\n @property(FluentUITimeInput.valueProperty)\n public defaultValue?: string;\n\n @property(FluentUITimeInput.minProperty)\n public min?: string;\n\n @property(FluentUITimeInput.maxProperty)\n public max?: string;\n\n @property(FluentUITimeInput.placeholderProperty)\n public placeholder?: string;\n\n // Internal storage for the selected time.\n private _time?: Date;\n\n private element: HTMLElement | undefined;\n\n protected internalRender(): HTMLElement | undefined {\n const theme: Theme = getFluentUIThemeFromHostCapability(this.hostConfig);\n const defaultTime = this.defaultValue\n ? FluentUITimeInput.convertTimeStringToDate(this.defaultValue)\n : undefined;\n const minTime = this.min\n ? FluentUITimeInput.convertTimeStringToDate(this.min)\n : undefined;\n const maxTime = this.max\n ? FluentUITimeInput.convertTimeStringToDate(this.max)\n : undefined;\n\n const control = (): JSX.Element => (\n <TimePicker\n \n id={generateUniqueId()}\n defaultTime={defaultTime}\n minTime={minTime}\n maxTime={maxTime}\n placeholder={this.placeholder}\n theme={theme}\n onTimeChange={(selectedTime, ) => {\n this._time = selectedTime;\n this.valueChanged();\n }}\n />\n );\n\n this.element = internalRender(control);\n this.element.style.width = \"100%\";\n return this.element;\n }\n\n public getJsonTypeName(): string {\n return \"Input.Time\";\n }\n\n public focus(): void {\n \n }\n\n protected updateInputControlAriaLabelledBy(): void {\n if (this.element) {\n const joinedLabelIds = this.getAllLabelIds().join(\" \");\n if (joinedLabelIds) {\n this.element.setAttribute(\"aria-labelledby\", joinedLabelIds);\n } else {\n this.element.removeAttribute(\"aria-labelledby\");\n }\n }\n }\n\n public isSet(): boolean {\n return !!this.value;\n }\n\n public isValid(): boolean {\n if (!this.value) {\n return !this.isRequired;\n }\n if (!this._time) {\n return false;\n }\n let result = true;\n if (this.min) {\n const minDate = FluentUITimeInput.convertTimeStringToDate(this.min);\n result = result && this._time >= minDate;\n }\n if (this.max) {\n const maxDate = FluentUITimeInput.convertTimeStringToDate(this.max);\n result = result && this._time <= maxDate;\n }\n return result;\n }\n\n public get value(): string | undefined {\n return this._time ? formatDateToTimeString(this._time) : undefined;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from \"react\";\n\nimport {\n BoolProperty,\n Input,\n SerializableObject,\n StringProperty,\n Versions,\n generateUniqueId,\n property,\n} from \"adaptivecards\";\nimport { FluentProvider, IdPrefixProvider, Switch, Theme } from \"@fluentui/react-components\";\n\nimport { getFluentUIThemeFromHostCapability } from \"./HostCapability\";\nimport { internalRender } from \"./internalRender\";\n\nexport class FluentUIToggleInput extends Input {\n public static readonly valueProperty = new StringProperty(\n Versions.v1_5,\n \"value\"\n );\n public static readonly titleProperty = new StringProperty(\n Versions.v1_5,\n \"title\"\n );\n public static readonly valueOnProperty = new StringProperty(\n Versions.v1_5,\n \"valueOn\",\n true,\n undefined,\n \"true\",\n (_sender: SerializableObject) => {\n return \"true\";\n }\n );\n public static readonly valueOffProperty = new StringProperty(\n Versions.v1_5,\n \"valueOff\",\n true,\n undefined,\n \"false\",\n (_sender: SerializableObject) => {\n return \"false\";\n }\n );\n public static readonly wrapProperty = new BoolProperty(\n Versions.v1_2,\n \"wrap\",\n false\n );\n\n @property(FluentUIToggleInput.valueProperty)\n public defaultValue?: string;\n\n @property(FluentUIToggleInput.titleProperty)\n public title?: string;\n\n @property(FluentUIToggleInput.valueOnProperty)\n public valueOn: string = \"true\";\n\n @property(FluentUIToggleInput.valueOffProperty)\n public valueOff: string = \"false\";\n\n @property(FluentUIToggleInput.wrapProperty)\n public wrap: boolean = false;\n\n private _value?: boolean;\n // Reference to the underlying Switch control.\n private refControl: any | null = null;\n private element: HTMLElement | undefined;\n\n protected internalRender(): HTMLElement | undefined {\n const theme: Theme = getFluentUIThemeFromHostCapability(this.hostConfig);\n\n const control = (): JSX.Element => (\n <IdPrefixProvider value={generateUniqueId()}>\n <FluentProvider theme={theme} style={{ backgroundColor: \"transparent\" }}>\n <Switch\n id={this.id}\n label={this.title}\n onChange={(\n _ev: React.ChangeEvent<HTMLInputElement>,\n data: { checked: boolean }\n ) => {\n this._value = data.checked;\n this.valueChanged();\n }}\n defaultChecked={this.defaultValue === this.valueOn}\n style={ { marginBottom: 0, marginTop: 0 }}\n ref={(node) => {\n this.refControl = node;\n }}\n />\n </FluentProvider>\n </IdPrefixProvider>\n );\n\n this.element = internalRender(control);\n this.element.style.width = \"100%\";\n return this.element;\n }\n\n protected get isNullable(): boolean {\n return false;\n }\n\n public getJsonTypeName(): string {\n return \"Input.Toggle\";\n }\n\n public focus(): void {\n this.refControl?.focus();\n }\n\n protected updateInputControlAriaLabelledBy(): void {\n if (this.element) {\n const joinedLabelIds = this.getAllLabelIds().join(\" \");\n if (joinedLabelIds) {\n this.element.setAttribute(\"aria-labelledby\", joinedLabelIds);\n } else {\n this.element.removeAttribute(\"aria-labelledby\");\n }\n }\n }\n\n public isSet(): boolean {\n if (this.isRequired) {\n return this.value === this.valueOn;\n }\n return this.value ? true : false;\n }\n\n public get value(): string | undefined {\n if (this._value !== null && this._value !== undefined) {\n return this._value ? this.valueOn : this.valueOff;\n } else {\n return this.isRequired ? undefined : this.valueOff;\n }\n }\n}\n","import {\n Action,\n AdaptiveCard,\n CardElement,\n CardObjectRegistry,\n ExecuteAction,\n GlobalRegistry,\n OpenUrlAction,\n SerializationContext,\n SubmitAction,\n} from \"adaptivecards\";\nimport {\n FluentProvider,\n IdPrefixProvider,\n Theme,\n teamsDarkTheme,\n teamsHighContrastTheme,\n teamsLightTheme,\n webLightTheme,\n} from \"@fluentui/react-components\";\nimport {\n initProcessMarkdown,\n injectContextProperty,\n} from \"./AdaptiveCardHost.Utilities\";\nimport { registerFluentUIActions, registerFluentUIElements } from \"./fluentUI\";\nimport { useCallback, useEffect, useRef } from \"react\";\n\nimport { AdaptiveCardHostThemeType } from \"./models/AdaptiveCardHostThemeType\";\nimport { Expression } from \"adaptive-expressions\";\nimport { IAdaptiveCardHostActionResult } from \"./models/IAdaptiveCardHostActionResult\";\nimport { IAdaptiveCardHostProps } from \"./IAdaptiveCardHostProps\";\nimport { Template } from \"adaptivecards-templating\";\nimport { initializeAdaptiveCardHost } from \"./AdaptiveCardHost.HostConfig\";\n\nconsole.log( 'expression:', Expression);\nconst getTheme = (themeType: AdaptiveCardHostThemeType): Theme => {\n switch (themeType) {\n case AdaptiveCardHostThemeType.SharePoint:\n return webLightTheme;\n case AdaptiveCardHostThemeType.Teams:\n return teamsLightTheme;\n case AdaptiveCardHostThemeType.TeamsDark:\n return teamsDarkTheme;\n case AdaptiveCardHostThemeType.TeamsHighContrast:\n return teamsHighContrastTheme;\n default:\n return webLightTheme;\n }\n};\n\nexport const AdaptiveCardHost = (\n props: IAdaptiveCardHostProps\n): JSX.Element => {\n const renderElementRef = useRef<HTMLDivElement>(null);\n const adaptiveCardInstanceRef = useRef<AdaptiveCard | null>(null);\n const serializationContextInstanceRef = useRef<SerializationContext | null>(\n null\n );\n const fluentUIThemeInstanceRef = useRef<Theme | null>(null);\n\n // Init Process Markdown\n useEffect(() => {\n initProcessMarkdown();\n }, []);\n\n // create the instance of AdaptiveCard & SerializationContext\n useEffect(() => {\n adaptiveCardInstanceRef.current = null;\n adaptiveCardInstanceRef.current = new AdaptiveCard();\n serializationContextInstanceRef.current = new SerializationContext();\n }, [props]);\n\n // create executeAction\n const invokeAction = useCallback(\n (action: Action) => {\n if (props.onInvokeAction) {\n let actionResult: IAdaptiveCardHostActionResult = {\n type: \"\",\n title: \"\",\n };\n const type = action.getJsonTypeName();\n switch (type) {\n case OpenUrlAction.JsonTypeName:\n {\n const openUrlAction = action as OpenUrlAction;\n actionResult = {\n type: type,\n title: openUrlAction.title,\n url: openUrlAction.url,\n };\n }\n break;\n case SubmitAction.JsonTypeName:\n {\n const submitAction = action as SubmitAction;\n actionResult = {\n type: type,\n title: submitAction.title,\n data: submitAction.data,\n };\n }\n break;\n case ExecuteAction.JsonTypeName:\n {\n const executeAction = action as ExecuteAction;\n actionResult = {\n type: type,\n title: executeAction.title,\n data: executeAction.data,\n verb: executeAction.verb,\n };\n }\n break;\n default:\n actionResult = {\n type: type,\n title: \"Unknown Action\",\n };\n break;\n }\n\n props.onInvokeAction(actionResult);\n }\n },\n [props.onInvokeAction ]\n );\n // *****\n\n // set hostConfig\n useEffect(() => {\n // set the input Fluent UI Theme\n let inputFluentUITheme: Theme;\n let inputThemeType = props.themeType;\n fluentUIThemeInstanceRef.current = null;\n\n if (!inputThemeType) {\n inputThemeType = AdaptiveCardHostThemeType.SharePoint;\n }\n\n \n if (props.theme) {\n inputFluentUITheme = props.theme;\n } else {\n inputFluentUITheme = getTheme(inputThemeType);\n }\n\n const hostConfigResult = initializeAdaptiveCardHost(\n inputThemeType,\n inputFluentUITheme\n );\n const currentHostConfig = hostConfigResult.hostConfig;\n console.log('hostconfig:', currentHostConfig);\n fluentUIThemeInstanceRef.current = inputFluentUITheme;\n if (adaptiveCardInstanceRef.current) {\n adaptiveCardInstanceRef.current.hostConfig = hostConfigResult.hostConfig;\n }\n\n if (props.onUpdateHostCapabilities) {\n props.onUpdateHostCapabilities(currentHostConfig.hostCapabilities);\n }\n }, [props]);\n\n // set invokeAction\n useEffect(() => {\n if (adaptiveCardInstanceRef.current) {\n adaptiveCardInstanceRef.current.onExecuteAction = invokeAction;\n }\n }, [props, invokeAction]);\n\n // set elements & actions registry\n useEffect(() => {\n const elementRegistry = new CardObjectRegistry<CardElement>();\n const actionRegistry = new CardObjectRegistry<Action>();\n\n GlobalRegistry.populateWithDefaultElements(elementRegistry);\n GlobalRegistry.populateWithDefaultActions(actionRegistry);\n\n registerFluentUIElements(elementRegistry);\n registerFluentUIActions(actionRegistry);\n\n if (props.onSetCustomElements) {\n props.onSetCustomElements(elementRegistry);\n }\n\n if (props.onSetCustomActions) {\n props.onSetCustomActions(actionRegistry);\n }\n\n const currentSerializationContext = serializationContextInstanceRef.current;\n if (currentSerializationContext) {\n currentSerializationContext.setElementRegistry(elementRegistry);\n }\n if (currentSerializationContext) {\n currentSerializationContext.setActionRegistry(actionRegistry);\n }\n }, [props]);\n\n // set Adaptive Card\n useEffect(() => {\n while (renderElementRef?.current?.firstChild) {\n if (renderElementRef.current.lastChild) {\n renderElementRef.current.removeChild(renderElementRef.current.lastChild);\n }\n }\n const currentRenderElement = renderElementRef.current;\n\n if (!currentRenderElement) {\n return;\n }\n\n const currentAdaptiveCard = adaptiveCardInstanceRef.current;\n try {\n const template = new Template(props.card);\n const evaluationContext = injectContextProperty(\n props.data ?? { $root: {} },\n \n getTheme(props.themeType ?? AdaptiveCardHostThemeType.SharePoint),\n props.context\n );\n const cardPayload = template.expand(evaluationContext);\n\n if (currentAdaptiveCard) {\n currentAdaptiveCard.parse(\n cardPayload,\n serializationContextInstanceRef.current ?? undefined\n );\n }\n if (currentAdaptiveCard) {\n const renderedElement = currentAdaptiveCard.render();\n if (\n renderedElement &&\n renderedElement.outerHTML !== currentRenderElement.innerHTML\n ) {\n // If this isn't acceptable, we should compare the old template with the new template\n if (renderedElement.outerHTML !== currentRenderElement.innerHTML) {\n currentRenderElement.innerHTML = \"\";\n currentRenderElement.appendChild(renderedElement);\n }\n }\n }\n } catch (cardRenderError) {\n if (props.onError) {\n props.onError(cardRenderError as Error);\n }\n }\n }, [props, getTheme ]);\n\n return (\n <IdPrefixProvider value=\"adaptiveCardHost\">\n <FluentProvider\n theme={\n fluentUIThemeInstanceRef.current\n ? fluentUIThemeInstanceRef.current\n : getTheme(props.themeType ?? AdaptiveCardHostThemeType.SharePoint)\n }\n >\n <div\n ref={renderElementRef}\n className={`${props.className ? props.className : \"\"}`}\n style={props.style}\n />\n </FluentProvider>\n </IdPrefixProvider>\n );\n};\n","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value;\n var parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.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';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n var newProps = {};\n\n for (var _key in props) {\n if (hasOwn.call(props, _key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var _key2 in props) {\n if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n newProps[_key2] = props[_key2];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-f0de968e.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-f0de968e.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx = function jsx(type, props) {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n(function (_jsx) {\n var JSX;\n\n (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));\n})(jsx || (jsx = {}));\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nfunction keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n}\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import * as ReactJSXRuntime from 'react/jsx-runtime';\nimport { h as hasOwn, E as Emotion, c as createEmotionProps } from '../../dist/emotion-element-f0de968e.browser.esm.js';\nimport 'react';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar Fragment = ReactJSXRuntime.Fragment;\nvar jsx = function jsx(type, props, key) {\n if (!hasOwn.call(props, 'css')) {\n return ReactJSXRuntime.jsx(type, props, key);\n }\n\n return ReactJSXRuntime.jsx(Emotion, createEmotionProps(type, props), key);\n};\nvar jsxs = function jsxs(type, props, key) {\n if (!hasOwn.call(props, 'css')) {\n return ReactJSXRuntime.jsxs(type, props, key);\n }\n\n return ReactJSXRuntime.jsxs(Emotion, createEmotionProps(type, props), key);\n};\n\nexport { Fragment, jsx, jsxs };\n","/** @jsxImportSource @emotion/react */\nimport * as React from 'react';\n\nimport { SerializedStyles, css } from '@emotion/react';\n\nimport { SearchRegular } from '@fluentui/react-icons';\nimport { tokens } from '@fluentui/react-components';\n\nexport interface IAISearchIconProps {\n size?: number;\n className?: string;\n color?: string;\n aiIndicatorColor?: string;\n}\n\n// Emotion CSS styles\nconst containerStyle = css`\n position: relative;\n display: inline-block;\n line-height: 0;\n \n`;\n\nconst searchIconStyle = css`\n display: block;\n`;\n\n// Simple AI text badge overlay - Theme aware using only tokens\nconst aiBadgeStyle = css`\n position: absolute;\n top: -1px;\n right: -6px;\n font-size: 8px;\n font-weight: 700;\n font-family: ${tokens.fontFamilyBase};\n color: ${tokens.colorNeutralForegroundOnBrand};\n background: ${tokens.colorBrandBackground};\n padding: 1px 3px;\n border-radius: ${tokens.borderRadiusSmall};\n line-height: 1;\n letter-spacing: 0.2px;\n text-transform: uppercase;\n box-shadow: ${tokens.shadow4};\n border: 1px solid ${tokens.colorTransparentStroke};\n transform: scale(0.9);\n transition: all 0.2s ease;\n\n &:hover {\n transform: scale(1);\n box-shadow: ${tokens.shadow8};\n background: ${tokens.colorBrandBackgroundHover};\n }\n`;\n\nconst aiBadgeLargeStyle = css`\n ${aiBadgeStyle};\n font-size: 9px;\n padding: 2px 4px;\n border-radius: 8px;\n top: -2px;\n right: -7px;\n`;\n\nconst aiBadgeSmallStyle = css`\n ${aiBadgeStyle};\n font-size: 6px;\n padding: 1px 2px;\n border-radius: 4px;\n top: 0px;\n right: -4px;\n letter-spacing: 0.1px;\n`;\n\n/**\n * AI Search Icon Component\n * Theme-aware icon that adapts to different button backgrounds like FluentUI icons\n */\nexport const AISearchIcon: React.FunctionComponent<IAISearchIconProps> = ({\n size = 20,\n className,\n color, // If not provided, will inherit from parent context\n aiIndicatorColor,\n}) => {\n const getBadgeStyle = (): SerializedStyles => {\n if (size >= 24) return aiBadgeLargeStyle;\n if (size <= 16) return aiBadgeSmallStyle;\n return aiBadgeStyle;\n };\n\n // Create dynamic badge style that respects custom colors but falls back to theme\n const dynamicBadgeStyle = css`\n ${getBadgeStyle()};\n ${aiIndicatorColor ? `\n background: ${aiIndicatorColor};\n border-color: ${aiIndicatorColor};\n ` : ''}\n `;\n\n // Search icon inherits color from parent if not specified (like FluentUI icons)\n const searchIconDynamicStyle = css`\n ${searchIconStyle};\n font-size: ${size}px;\n ${color ? `color: ${color};` : 'color: inherit;'}\n `;\n\n return (\n <span css={[containerStyle, className && css`${className}`]}>\n <SearchRegular css={searchIconDynamicStyle} />\n <span css={dynamicBadgeStyle}>\n AI\n </span>\n </span>\n );\n};\n\nexport default AISearchIcon;\n","import * as React from 'react';\n\nimport { Button, makeStyles, tokens } from '@fluentui/react-components';\n\nimport { AISearchIcon } from './AISearchIcon';\n\nconst useExampleStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n gap: '20px',\n padding: '20px',\n },\n section: {\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n },\n iconRow: {\n display: 'flex',\n alignItems: 'center',\n gap: '15px',\n padding: '10px',\n border: `1px solid ${tokens.colorNeutralStroke2}`,\n borderRadius: '8px',\n },\n label: {\n minWidth: '150px',\n fontWeight: 600,\n },\n buttonExample: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n },\n codeBlock: {\n background: tokens.colorNeutralBackground2,\n padding: '10px',\n borderRadius: '4px',\n fontSize: '12px',\n overflow: 'auto',\n border: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n});\n\n/**\n * Example component demonstrating the AI Search Icon usage\n */\nexport const AISearchIconExample: React.FunctionComponent = () => {\n const styles = useExampleStyles();\n\n return (\n <div className={styles.container}>\n <h2>AI Search Icon Examples</h2>\n \n <div className={styles.section}>\n <h3>Standard AI Search Icon</h3>\n \n <div className={styles.iconRow}>\n <span className={styles.label}>Small (16px):</span>\n <AISearchIcon size={16} />\n </div>\n \n <div className={styles.iconRow}>\n <span className={styles.label}>Medium (20px):</span>\n <AISearchIcon size={20} />\n </div>\n \n <div className={styles.iconRow}>\n <span className={styles.label}>Large (24px):</span>\n <AISearchIcon size={24} />\n </div>\n \n <div className={styles.iconRow}>\n <span className={styles.label}>Extra Large (32px):</span>\n <AISearchIcon size={32} />\n </div>\n \n <div className={styles.iconRow}>\n <span className={styles.label}>Custom Colors:</span>\n <AISearchIcon \n size={24} \n color={tokens.colorPaletteBlueForeground2}\n aiIndicatorColor={tokens.colorPaletteGreenForeground2}\n />\n </div>\n </div>\n\n <div className={styles.section}>\n <h3>Usage in Buttons</h3>\n \n <div className={styles.iconRow}>\n <span className={styles.label}>Primary Button:</span>\n <Button \n appearance=\"primary\"\n icon={<AISearchIcon size={16} />}\n >\n AI Search\n </Button>\n </div>\n \n <div className={styles.iconRow}>\n <span className={styles.label}>Secondary Button:</span>\n <Button \n appearance=\"secondary\"\n icon={<AISearchIcon size={16} />}\n >\n Smart Search\n </Button>\n </div>\n \n <div className={styles.iconRow}>\n <span className={styles.label}>Icon Only Button:</span>\n <Button \n appearance=\"subtle\"\n icon={<AISearchIcon size={20} />}\n title=\"AI Search\"\n />\n </div>\n </div>\n\n <div className={styles.section}>\n <h3>Usage Example Code</h3>\n <pre className={styles.codeBlock}>\n{`// Basic usage\nimport { AISearchIcon } from './AISearchIcon';\n\n// Standard icon with AI badge\n<AISearchIcon size={20} />\n\n// Icon with custom colors\n<AISearchIcon \n size={24} \n color={tokens.colorPaletteBlueForeground2}\n aiIndicatorColor={tokens.colorPaletteGreenForeground2}\n/>\n\n// In a button\n<Button \n appearance=\"primary\"\n icon={<AISearchIcon size={16} />}\n>\n AI Search\n</Button>`}\n </pre>\n </div>\n </div>\n );\n};\n","import React, { useCallback, useMemo, useState } from 'react';\n\nimport { IconButtonProps } from './IconButtonProps';\nimport { tokens } from '@fluentui/react-components';\n\nexport const IconButton: React.FC<IconButtonProps> = ({\n icon,\n hoverIcon,\n imageSrc,\n width = 24,\n height = 24,\n color,\n hoverColor,\n onClick,\n enabled = true,\n}) => {\n // Use Fluent UI 9 tokens directly.\n const defaultIconColor = color || tokens.colorBrandBackground;\n const defaultHoverColor = hoverColor || tokens.colorBrandBackgroundHover;\n const defaultFontFamily = tokens.fontFamilyBase;\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n if (enabled) {\n setIsHovered(true);\n }\n }, [enabled]);\n\n const handleMouseLeave = useCallback(() => {\n if (enabled) {\n setIsHovered(false);\n }\n }, [enabled]);\n\n // Memoize the current icon to render.\n const currentIcon = useMemo(() => {\n if (!enabled) {\n return icon;\n }\n return isHovered && hoverIcon ? hoverIcon : icon;\n }, [isHovered, hoverIcon, icon, enabled]);\n\n // Memoize style for the icon element.\n const iconStyle = useMemo<React.CSSProperties>(\n () => ({\n width,\n height,\n color: isHovered ? defaultHoverColor : defaultIconColor,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n opacity: enabled ? 1 : 0.5,\n fontFamily: defaultFontFamily,\n fontSize: 'inherit',\n }),\n [width, height, isHovered, defaultHoverColor, defaultIconColor, enabled, defaultFontFamily]\n );\n\n // Memoize button and image styles.\n const buttonStyle = useMemo<React.CSSProperties>(\n () => ({\n border: 'none',\n background: 'none',\n padding: 0,\n cursor: enabled ? 'pointer' : 'default',\n }),\n [enabled]\n );\n\n const imageStyle = useMemo<React.CSSProperties>(\n () => ({\n width,\n height,\n objectFit: 'contain',\n opacity: enabled ? 1 : 0.5,\n }),\n [width, height, enabled]\n );\n\n return (\n <button\n onClick={enabled ? onClick : undefined}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n disabled={!enabled}\n style={buttonStyle}\n >\n {imageSrc ? (\n <img src={imageSrc} alt=\"icon\" style={imageStyle} />\n ) : (\n React.cloneElement(currentIcon, {\n style: { ...currentIcon.props.style, ...iconStyle },\n })\n )}\n </button>\n );\n};\n\nexport default React.memo(IconButton);","import * as React from 'react';\n\nimport {\n ArrowCircleUp32Filled,\n ArrowCircleUp32Regular,\n RecordStopFilled,\n RecordStopRegular,\n} from '@fluentui/react-icons';\n\nimport { ChatInputProps } from './ChatInputProps';\nimport IconButton from '../iconButton/IconButton';\nimport { Stack } from '../Stack';\nimport { useChatInputStyles } from './useChatInputStyles';\n\nexport interface Styles {\n container: string;\n textarea: string;\n iconContainer: string;\n buttonSend: string;\n}\n\nexport const ChatInput = React.forwardRef<HTMLTextAreaElement, ChatInputProps>(\n (\n {\n value,\n onChange,\n onSend,\n placeholder = 'Type a message',\n isRunning,\n onAbort,\n },\n ref\n ) => {\n const styles = useChatInputStyles();\n\n const handleSend = React.useCallback(() => {\n const trimmed = value.trim();\n if (trimmed.length > 0) {\n onSend(trimmed);\n }\n }, [value, onSend]);\n\n // For multiline: pressing Enter (without Shift) sends the message,\n // while Shift+Enter allows newlines.\n const handleKeyDown = (\n e: React.KeyboardEvent<HTMLTextAreaElement>\n ): void => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSend();\n }\n };\n\n return (\n <Stack width={'100%'} className={styles.container}>\n <textarea\n ref={ref}\n className={styles.textarea}\n placeholder={placeholder}\n value={value}\n onChange={ev => onChange(ev.target.value)}\n onKeyDown={handleKeyDown}\n rows={3}\n />\n <Stack horizontal horizontalAlign=\"end\" width={'100%'}>\n {!isRunning ? (\n <IconButton\n icon={<ArrowCircleUp32Regular />}\n hoverIcon={<ArrowCircleUp32Filled />}\n width={32}\n height={32}\n onClick={handleSend}\n enabled={value.trim().length > 0}\n />\n ) : (\n <IconButton\n icon={<RecordStopRegular />}\n hoverIcon={<RecordStopFilled />}\n width={32}\n height={32}\n onClick={onAbort}\n />\n )}\n </Stack>\n </Stack>\n );\n }\n);\n","import { Styles } from './ChatInput';\nimport { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useChatInputStyles = (): Styles => {\n return {\n container: css({\n backgroundColor: tokens.colorNeutralBackground1,\n border: '1px solid ' + tokens.colorNeutralStroke1,\n borderRadius: tokens.borderRadiusLarge,\n padding: `${tokens.spacingVerticalXS} ${tokens.spacingHorizontalS}`,\n minHeight: '40px',\n\n // When any child is focused, show a brand-colored bottom border:\n ':focus-within::after': {\n borderBottom: `2px solid ${tokens.colorBrandStroke1}`,\n },\n }),\n textarea: css({\n width: `calc(100% - 5px)`,\n flex: 1,\n border: 'none',\n outline: 'none',\n backgroundColor: 'transparent',\n fontSize: tokens.fontSizeBase300,\n color: tokens.colorNeutralForeground1,\n resize: 'none',\n '::placeholder': {\n // Using a lighter grey like Fluent UI Input's placeholder:\n color: tokens.colorNeutralForegroundDisabled,\n },\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n }),\n iconContainer: css({\n display: 'flex',\n alignItems: 'center',\n gap: tokens.spacingHorizontalXS,\n marginLeft: tokens.spacingHorizontalXS,\n }),\n buttonSend: css({\n width: '36px !important',\n height: '36px !important',\n maxWidth: '36px !important',\n maxHeight: '36px !important',\n minWidth: '36px !important',\n minHeight: '36px !important',\n }),\n };\n};\n","import { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport interface IUseMensionsStyles {\n listContainer: string;\n suggestionsHeader: string;\n noResults: string;\n \n \n}\n\nexport const useMensionsStyles = (): IUseMensionsStyles => ({\n listContainer: css({\n display: 'grid',\n gridTemplateColumns: '1fr',\n gap: tokens.spacingVerticalXXS,\n maxHeight: '400px',\n overflowY: 'auto',\n overflowX: 'hidden',\n padding: tokens.spacingVerticalS,\n minWidth: '280px',\n \n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n }),\n suggestionsHeader: css({\n color: tokens.colorBrandBackground,\n padding: tokens.spacingVerticalXS,\n }),\n noResults: css({\n padding: tokens.spacingVerticalS,\n textAlign: 'center',\n color: tokens.colorNeutralForeground3,\n }),\n \n \n \n});\n","import {\n Body1Strong,\n Caption1,\n Card,\n CardHeader,\n Divider,\n Persona,\n webLightTheme,\n} from '@fluentui/react-components';\nimport { GraphUser, MensionsProps } from './IMensionsProps';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Popup } from '../Popup';\nimport { debounce } from '../../utils/lodash';\nimport getCaretCoordinates from 'textarea-caret';\nimport { useMensionsStyles } from './useMensionsStyles';\nimport { useApplicationContext } from '../Provider';\n\ninterface MenuPosition {\n top: number;\n left: number;\n}\n\nexport const Mensions: React.FC<MensionsProps> = ({\n context: providedContext,\n inputValue,\n parentRef,\n mentionChars,\n onUserSelect,\n theme = webLightTheme,\n suggestionsHeader = 'Suggestions',\n maxSuggestions = 100,\n userFilter,\n}) => {\n const contextFromProvider = useApplicationContext();\n const context = providedContext || contextFromProvider;\n const graphClient = context?.graphClient;\n const webUrl = context?.pageContext?.web?.absoluteUrl || '';\n \n const [showMenu, setShowMenu] = useState(false);\n const [menuPosition, setMenuPosition] = useState<MenuPosition>({\n top: 0,\n left: 0,\n });\n const [suggestions, setSuggestions] = useState<GraphUser[]>([]);\n const [currentMentionChar, setCurrentMentionChar] = useState<string>('');\n const [currentQuery, setCurrentQuery] = useState<string>('');\n\n // Cache for user queries\n const cacheRef = useRef<{ [key: string]: GraphUser[] }>({});\n const styles = useMensionsStyles();\n\n // Fetch users from Graph API\n const fetchUsers = useCallback(\n async (query: string): Promise<GraphUser[]> => {\n if (!graphClient) {\n console.warn('Graph client not available');\n return [];\n }\n\n const cacheKey = `${query}_${maxSuggestions}`;\n if (cacheRef.current[cacheKey]) {\n return cacheRef.current[cacheKey];\n }\n\n try {\n const filter =\n query && query.length > 0\n ? `startswith(displayName,'${query}') or startswith(givenName,'${query}') or startswith(surname,'${query}')`\n : '';\n \n const api =\n filter\n ? `/users?$filter=${filter}&$select=id,displayName,mail,userPrincipalName&$top=${maxSuggestions}`\n : `/users?$select=id,displayName,mail,userPrincipalName&$orderby=displayName&$top=${maxSuggestions}`;\n\n console.log('[fetchUsers]: API query:', api);\n\n const response = await graphClient.get<{ value: GraphUser[] }>(api);\n\n console.log('[fetchUsers]: Graph response:', response);\n\n const users: GraphUser[] = response.value || [];\n\n // Ensure users have required fields\n const processedUsers = users\n .map(user => ({\n id: user.id || '',\n displayName:\n user.displayName || user.userPrincipalName || 'Unknown User',\n mail: user.mail || user.userPrincipalName || '',\n avatar: webUrl\n ? `${webUrl}/_layouts/15/userphoto.aspx?size=S&accountname=${user.mail || user.userPrincipalName}`\n : undefined,\n }))\n .filter(user => user.id && user.displayName);\n\n console.log('[fetchUsers]: Processed users:', processedUsers);\n\n cacheRef.current[cacheKey] = processedUsers;\n return processedUsers;\n } catch (error) {\n console.error('[fetchUsers]: Error fetching users from Graph:', error);\n return [];\n }\n },\n [graphClient, webUrl, maxSuggestions]\n );\n\n // Debounced fetch to reduce API calls\n const debouncedFetch = useCallback(\n debounce(async (query: string, mentionChar: string) => {\n console.log(\n '[debouncedFetch]: Fetching users for query:',\n query,\n 'with char:',\n mentionChar\n );\n const users = await fetchUsers(query);\n\n // Apply custom filter if provided\n const filteredUsers = userFilter\n ? users.filter(user => userFilter(user, query))\n : users;\n\n console.log('[debouncedFetch]: Filtered users:', filteredUsers);\n filteredUsers.sort((a, b) => a.displayName.localeCompare(b.displayName));\n setSuggestions(filteredUsers);\n setCurrentMentionChar(mentionChar);\n setCurrentQuery(query);\n setShowMenu(true);\n console.log('[debouncedFetch]: Menu should be shown now');\n }, 300),\n [context, maxSuggestions, userFilter, fetchUsers]\n );\n\n // Calculate caret position for popup\n const calculateMenuPosition = (mentionPos: number): MenuPosition => {\n const parentElement = parentRef.current;\n if (!parentElement) return { top: 0, left: 0 };\n\n // Handle textarea elements\n if (parentElement.tagName === 'TEXTAREA') {\n const textarea = parentElement as HTMLTextAreaElement;\n const caretPos = getCaretCoordinates(textarea, mentionPos);\n const textareaRect = textarea.getBoundingClientRect();\n return {\n top: textareaRect.top + caretPos.top + 22,\n left: textareaRect.left + caretPos.left + 16,\n };\n }\n\n // Handle other input elements or contentEditable\n const parentRect = parentElement.getBoundingClientRect();\n return {\n top: parentRect.bottom + 5,\n left: parentRect.left,\n };\n };\n\n // Analyze input for mentions\n useEffect(() => {\n if (!inputValue) {\n setShowMenu(false);\n return;\n }\n\n console.log('[Mensions]: Analyzing input:', inputValue);\n let foundMention = false;\n\n for (const mentionChar of mentionChars) {\n const lastMentionPos = inputValue.lastIndexOf(mentionChar);\n\n console.log(\n '[Mensions]: Checking mention char:',\n mentionChar,\n 'at position:',\n lastMentionPos\n );\n\n if (\n lastMentionPos !== -1 &&\n (lastMentionPos === 0 || inputValue[lastMentionPos - 1] === ' ')\n ) {\n const searchText = inputValue.slice(lastMentionPos + 1);\n console.log('[Mensions]: Search text:', searchText);\n\n // Check if there's a space after the mention (complete mention)\n if (!searchText.includes(' ')) {\n foundMention = true;\n const position = calculateMenuPosition(lastMentionPos);\n console.log('[Mensions]: Menu position:', position);\n setMenuPosition(position);\n debouncedFetch(searchText, mentionChar);\n break;\n }\n }\n }\n\n if (!foundMention) {\n console.log('[Mensions]: No mention found, hiding menu');\n setShowMenu(false);\n }\n }, [inputValue, mentionChars, parentRef, debouncedFetch]);\n\n // Handle suggestion selection\n const handleUserSelect = (user: GraphUser): void => {\n onUserSelect(user, currentMentionChar);\n setShowMenu(false);\n setSuggestions([]);\n };\n\n // Render suggestion list\n const RenderList = useCallback(\n ({ users }: { users: GraphUser[] }) => (\n <div className={styles.listContainer}>\n {users.length === 0 && (\n <Caption1 className={styles.noResults}>\n No users found for \"{currentQuery}\"\n </Caption1>\n )}\n {users.map(user => (\n <Card\n key={user.id}\n appearance=\"subtle\"\n onMouseDown={e => e.preventDefault()} // Prevent focus loss\n onClick={() => handleUserSelect(user)}\n >\n <Persona\n name={user.displayName || 'Unknown User'}\n role=\"gridcell\"\n secondaryText={user.mail || user.userPrincipalName || ''}\n avatar={{\n image: {\n src: user.avatar,\n },\n }}\n />\n </Card>\n ))}\n </div>\n ),\n [styles, currentQuery, handleUserSelect]\n );\n\n return (\n <Popup\n theme={theme}\n anchorPoint={menuPosition}\n isOpen={showMenu}\n onClose={() => setShowMenu(false)}\n excludeRefs={parentRef ? [parentRef] : []}\n >\n <CardHeader\n header={\n <Body1Strong className={styles.suggestionsHeader}>\n {suggestionsHeader}\n </Body1Strong>\n }\n />\n <Divider />\n <RenderList users={suggestions} />\n </Popup>\n );\n};\n\nexport default Mensions;\n","import { IUseStyles } from './ChatInputWithMensionsV1';\nimport { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useChatInputWithMensionsStyles = (): IUseStyles => ({\n inputContainer: css({\n marginTop: 'auto',\n marginLeft: 'auto',\n // Pseudo-element for focus bottom border:\n \"::after\": {\n content: '\"\"',\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n borderBottom: `2px solid transparent`,\n pointerEvents: \"none\",\n borderRadius: tokens.borderRadiusMedium,\n },\n }),\n listContainer: css({\n maxHeight: '400px',\n overflowY: 'auto',\n overflowX: 'hidden',\n\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n }),\n sugestionsHeader: css({\n color: tokens.colorBrandBackground,\n }),\n});\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport { ChatInput } from './ChatInput';\nimport { ChatInputWithMensionsProps } from './ChatInputWithMensionsProps';\nimport { GraphUser } from '../mensions/IMensionsProps';\nimport { Mensions } from '../mensions';\nimport { Stack } from '../Stack';\nimport { useChatInputWithMensionsStyles } from './useChatInputWithMensionsStyles';\nimport { webLightTheme } from '@fluentui/react-components';\n\nexport const ChatInputWithMensions: React.FC<ChatInputWithMensionsProps> = ({\n context,\n onChange,\n value,\n placeholder,\n onSend,\n theme = webLightTheme,\n isRunning,\n onAbort\n}) => {\n const [inputValue, setInputValue] = useState(value || '');\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const styles = useChatInputWithMensionsStyles();\n\n useEffect(() => {\n textareaRef.current?.focus();\n setInputValue(value || '');\n }, [value]);\n\n // Handle input change\n const handleInputChange = (newValue: string): void => {\n setInputValue(newValue);\n onChange && onChange(newValue);\n };\n\n // Handle user selection from mentions\n const handleUserSelect = (user: GraphUser, mentionChar: string): void => {\n // Replace the incomplete mention with the selected user\n const regex = new RegExp(`${mentionChar.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}(\\\\w*)$`);\n const updatedText = inputValue.replace(regex, `${mentionChar}${user.mail} `);\n \n setInputValue(updatedText);\n onChange && onChange(updatedText);\n \n // Keep focus on the input\n setTimeout(() => {\n textareaRef.current?.focus();\n }, 0);\n };\n\n return (\n <Stack horizontal width={'100%'} className={styles.inputContainer}>\n <ChatInput\n ref={textareaRef}\n onSend={onSend}\n value={inputValue}\n onChange={handleInputChange}\n theme={theme}\n placeholder={placeholder}\n isRunning={isRunning}\n onAbort={onAbort}\n />\n \n <Mensions\n context={context}\n inputValue={inputValue}\n parentRef={textareaRef}\n mentionChars={['@']}\n onUserSelect={handleUserSelect}\n theme={theme}\n suggestionsHeader=\"Suggestions\"\n maxSuggestions={10}\n />\n </Stack>\n );\n};\n\nexport default ChatInputWithMensions;\n","import useLoadingDotsStyle from './useLoadingDotsStyles';\n\nconst LoadingDots = () => {\n const styles = useLoadingDotsStyle();\n\n return (\n <div className={styles.root}>\n <div className={`${styles.dot} ${styles.dot1}`} />\n <div className={`${styles.dot} ${styles.dot2}`} />\n <div className={`${styles.dot} ${styles.dot3}`} />\n </div>\n );\n};\n\nexport default LoadingDots;","import { css, keyframes } from '@emotion/css';\n\nimport { tokens } from '@fluentui/react-components';\n\nexport const useLoadingDotsStyle = () => {\n\n const brandColor = tokens.colorBrandBackground;\n\n // Define keyframes for the blink animation\n const blinkAnimation = keyframes`\n 0%, 80%, 100% {\n opacity: 0;\n transform: scale(0.8);\n }\n 40% {\n opacity: 1;\n transform: scale(1);\n }\n `;\n\n // Container style to center the dots\n const root = css`\n display: flex;\n align-items: start;\n justify-content: start;\n height: fit-content;\n padding: 5px 0;\n `;\n\n // Base style for each dot using the Fluent UI brand color\n const dot = css`\n width: 8px;\n height: 8px;\n margin: 0 4px;\n background-color: ${brandColor};\n border-radius: 50%;\n animation: ${blinkAnimation} 1.4s infinite ease-in-out both;\n `;\n\n // Styles to stagger the animation delays for a sequential effect\n const dot1 = css`\n animation-delay: 0s;\n `;\n const dot2 = css`\n animation-delay: 0.2s;\n `;\n const dot3 = css`\n animation-delay: 0.4s;\n `;\n\n return { root, dot, dot1, dot2, dot3 };\n};\n\nexport default useLoadingDotsStyle;","import { ChatAction } from './ChatAction';\nimport { ChatState } from './ChatState';\n\nexport const chatReducer = (state: ChatState, action: ChatAction): ChatState => {\n switch (action.type) {\n case 'INIT':\n return { ...state, messages: [action.welcomeMessage], isLoading: false };\n case 'SET_INPUT':\n return { ...state, inputText: action.inputText };\n case 'ADD_USER_MESSAGE':\n return { ...state, messages: [...state.messages, action.message] };\n case 'ADD_ASSISTANT_MESSAGE':\n return { ...state, messages: [...state.messages, action.message] };\n case 'UPDATE_LAST_ASSISTANT_MESSAGE': {\n const messagesCopy = [...state.messages];\n const lastIndex = messagesCopy.length - 1;\n if (lastIndex >= 0 &&\n messagesCopy[lastIndex].senderName === 'Assistant') {\n messagesCopy[lastIndex] = action.message;\n }\n return { ...state, messages: messagesCopy };\n }\n case 'SET_ERROR':\n return { ...state, error: action.error };\n case 'CLEAR_INPUT':\n return { ...state, inputText: '' };\n case 'SET_IS_RUNNING':\n return { ...state, isRunning: !state.isRunning };\n default:\n return state;\n }\n};\n","/* eslint-disable @typescript-eslint/no-floating-promises */\nimport * as React from 'react';\n\nimport { Chat, ChatMessage, ChatMyMessage } from '@fluentui-contrib/react-chat';\nimport { Spinner, tokens } from '@fluentui/react-components';\n\nimport { ChatInputWithMensions } from './ChatInputWithMensions';\nimport { EMessageType } from '../../constants';\nimport { IAIAssistantProps } from './IAIAssistantProps';\nimport { IChatItem } from './IChatItem';\nimport { IResponse } from './IResponse';\nimport { Icon } from '@iconify/react';\nimport LoadingDots from './LoadingDots';\nimport { ShowMessage } from '../showMessage';\nimport { chatReducer } from './chatReducer';\nimport { useAIAssistantStyles } from './useAIAssistantStyles';\nimport { useStreamRequest } from './useStreamRequest';\nimport { useTimeZoneHelper } from '../../hooks/useTimeZoneHelper';\n\nconst getTimestamp = (\n timezone: string | undefined,\n currentUICultureName: string\n): string => {\n const { getFormatRelative } = useTimeZoneHelper(timezone, currentUICultureName);\n return getFormatRelative(new Date());\n};\n\nexport const AIAssistant: React.FC<IAIAssistantProps> = props => {\n const {\n instrutions,\n timezone,\n locale,\n onResponse,\n openAIConfig,\n theme,\n placeholder,\n context,\n } = props;\n const [state, dispatch] = React.useReducer(chatReducer, {\n messages: [],\n inputText: '',\n isLoading: true,\n error: undefined,\n isRunning: false,\n });\n const { messages, inputText, isLoading, error, isRunning } = state;\n const chatHistory = React.useRef<string[]>([]);\n const styles = useAIAssistantStyles();\n const chatListRef = React.useRef<HTMLDivElement>(null);\n\n // Use the custom streaming hook\n const { sendRequest, cancelRequest, error: streamError } = useStreamRequest();\n\n const forceScrollToBottom = React.useCallback(() => {\n if (chatListRef.current) {\n chatListRef.current.scrollTop =\n chatListRef.current.scrollHeight - chatListRef.current.clientHeight;\n }\n }, []);\n\n // Initialize with a welcome message\n\n React.useEffect(() => {\n const welcomeMessage: IChatItem = {\n message: 'Welcome to AI Assistant! How can I help you today?',\n senderName: 'Assistant',\n timeStamp: getTimestamp(\n timezone,\n context?.pageContext?.cultureInfo?.currentUICultureName || 'en-US'\n ),\n status: 'received',\n };\n dispatch({ type: 'INIT', welcomeMessage });\n }, []);\n\n // Handler for sending a message using the custom hook for streaming POST requests\n const handleSend = React.useCallback(async (): Promise<void> => {\n if (!inputText.trim()) return;\n\n const userMessage: IChatItem = {\n message: inputText,\n senderName: 'User',\n timeStamp: getTimestamp(\n timezone,\n context?.pageContext?.cultureInfo?.currentUICultureName || 'en-US'\n ),\n status: 'received',\n };\n const currentInput = inputText;\n\n // Add user's message and clear input\n dispatch({ type: 'ADD_USER_MESSAGE', message: userMessage });\n dispatch({ type: 'CLEAR_INPUT' });\n dispatch({ type: 'SET_IS_RUNNING' });\n\n // Add an empty assistant message that will be updated with streaming tokens\n const assistantMessage: IChatItem = {\n message: <LoadingDots />,\n senderName: 'Assistant',\n timeStamp: getTimestamp(\n timezone,\n context?.pageContext?.cultureInfo?.currentUICultureName || 'en-US'\n ),\n status: 'sending',\n };\n dispatch({\n type: 'ADD_ASSISTANT_MESSAGE',\n message: assistantMessage,\n });\n // Force scroll to bottom\n forceScrollToBottom();\n let currentResponse = '';\n const endpoint =\n openAIConfig?.endpoint || 'http://localhost:7071/api/EventAssistant';\n\n const payload = {\n instructions: instrutions,\n input: currentInput,\n timezone,\n locale,\n history: chatHistory.current,\n };\n\n try {\n // Use the hook to send the request and process incoming chunks.\n await sendRequest(endpoint, payload, undefined, (chunk: string) => {\n currentResponse += chunk;\n onResponse?.(currentResponse).then((response: IResponse) => {\n const { message, status } = response;\n dispatch({\n type: 'UPDATE_LAST_ASSISTANT_MESSAGE',\n message: {\n ...assistantMessage,\n message: message ? message : currentResponse,\n status: status ? status : 'received',\n },\n });\n // Finalize the assistant message\n dispatch({\n type: 'SET_IS_RUNNING',\n });\n });\n });\n } catch (err) {\n console.error('Error during streaming:', err);\n dispatch({\n type: 'UPDATE_LAST_ASSISTANT_MESSAGE',\n message: {\n ...assistantMessage,\n message: 'Error occurred while processing your request.',\n status: 'failed',\n },\n });\n dispatch({ type: 'SET_IS_RUNNING' });\n }\n\n // Update chat history\n chatHistory.current.push(currentInput);\n chatHistory.current.push(currentResponse);\n\n // Force scroll to bottom\n forceScrollToBottom();\n }, [\n inputText,\n instrutions,\n locale,\n onResponse,\n openAIConfig,\n timezone,\n sendRequest,\n streamError,\n ]);\n\n // Handler for updating input text\n const handleInputChange = React.useCallback((value: string): void => {\n dispatch({ type: 'SET_INPUT', inputText: value });\n }, []);\n\n if (isLoading) {\n return <Spinner size=\"medium\" />;\n }\n\n if (error) {\n return (\n <ShowMessage\n message=\"There was an error processing your request.\"\n messageType={EMessageType.INFO}\n />\n );\n }\n\n return (\n <div id=\"aiAssistant\" className={styles.chatAIAssistantRoot}>\n <Chat className={styles.chatList} ref={chatListRef}>\n {messages.map((message, index) =>\n message.senderName === 'User' ? (\n <ChatMyMessage\n status={message.status}\n key={index}\n author={message.senderName}\n timestamp={message.timeStamp}\n >\n {message.message}\n </ChatMyMessage>\n ) : (\n <ChatMessage\n key={index}\n decoration={message.status === 'failed' ? 'important' : undefined}\n avatar={\n <Icon\n icon=\"carbon:ibm-consulting-advantage-assistant\"\n width=\"32\"\n height=\"32\"\n style={{ color: tokens.colorBrandBackground }}\n />\n }\n author={message.senderName}\n timestamp={message.timeStamp}\n >\n {message.message}\n </ChatMessage>\n )\n )}\n </Chat>\n <div className={styles.inputContainer}>\n <ChatInputWithMensions\n context={context}\n value={inputText}\n onChange={handleInputChange}\n placeholder={placeholder}\n onSend={handleSend}\n onAbort={cancelRequest}\n theme={theme}\n isRunning={isRunning}\n />\n </div>\n </div>\n );\n};\n\nexport default AIAssistant;\n","/* eslint-disable @typescript-eslint/no-floating-promises */\n\nimport * as React from \"react\";\nimport { ILivePersonaProps } from \".\";\n\n/**\n * LivePersona Component - Universal Version\n * \n * Note: This is a simplified version that works across all frameworks.\n * In non-SPFx environments, it simply renders the template without SharePoint's LivePersonaCard.\n * \n * For SPFx environments with full SharePoint hover card functionality, use the SPFx adapter\n * which will dynamically load SharePoint's LivePersonaCard component.\n */\nexport const LivePersona: React.FunctionComponent<ILivePersonaProps> = (\n props: React.PropsWithChildren<ILivePersonaProps>\n) => {\n const { template } = props;\n\n // In universal version, just render the template\n // The SPFx adapter version will load the actual SharePoint LivePersonaCard\n return <>{template}</>;\n};\n","/* eslint-disable @typescript-eslint/no-floating-promises */\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { IApplicationContext, ErrorType } from '../../abstractions';\nimport { useApplicationContext } from '../Provider';\nimport { useLogging } from '../../hooks/useLogging';\nimport { usePolling } from '../../hooks/usePolling';\nimport { DELAY_TO_CHECK_PRESENCE } from './constants';\nimport { Presence, User } from '@microsoft/microsoft-graph-types';\n\n// Define IUserInfo locally since it's specific to this component\nexport interface IUserInfo extends User {\n presence?: Presence;\n userPhoto?: string; // Photo URL for the user\n}\n\n// Global cache to store user data across component instances\nconst userCache = new Map<string, {\n data: IUserInfo;\n timestamp: number;\n expiresAt: number;\n}>();\n\n// Cache duration: 5 minutes for user data, 2 minutes for presence\nconst USER_CACHE_DURATION = 5 * 60 * 1000; // 5 minutes\nconst PRESENCE_CACHE_DURATION = 2 * 60 * 1000; // 2 minutes\n\n// Clean up expired cache entries periodically\nconst cleanupCache = () => {\n const now = Date.now();\n const keysToDelete: string[] = [];\n \n userCache.forEach((value, key) => {\n if (now > value.expiresAt) {\n keysToDelete.push(key);\n }\n });\n \n keysToDelete.forEach(key => userCache.delete(key));\n};\n\n// Run cleanup every 10 minutes\nsetInterval(cleanupCache, 10 * 60 * 1000);\n\n/**\n * Custom hook that encapsulates fetching the user data (including presence)\n * and periodically updating the presence using polling.\n * \n * Optimized for virtualization with caching to prevent redundant API calls.\n */\nexport const useUserProfile = (\n userId: string | undefined,\n providedContext?: IApplicationContext\n): {\n user: IUserInfo | undefined;\n loading: boolean;\n refetch: () => Promise<void>;\n} => {\n const contextFromProvider = useApplicationContext();\n const context = providedContext || contextFromProvider;\n \n const graphClient = context?.graphClient;\n const { error: logError } = useLogging();\n const [user, setUser] = useState<IUserInfo | undefined>(undefined);\n const [loading, setLoading] = useState(true);\n\n // Helper function to get user by ID\n const getUserById = useCallback(async (id: string): Promise<IUserInfo | null> => {\n if (!graphClient) {\n console.warn('Graph client not available');\n return null;\n }\n\n try {\n return await graphClient.get<IUserInfo>(`/users/${id}`);\n } catch (error) {\n console.error('Error fetching user:', error);\n return null;\n }\n }, [graphClient]);\n\n // Helper function to get user presence\n const getUserPresence = useCallback(async (id: string): Promise<Presence | null> => {\n if (!graphClient) {\n console.warn('Graph client not available');\n return null;\n }\n\n try {\n return await graphClient.get<Presence>(`/users/${id}/presence`);\n } catch (error) {\n console.error('Error fetching user presence:', error);\n return null;\n }\n }, [graphClient]);\n\n // Fetches the full user data and initial presence.\n const fetchUser = useCallback(async () => {\n if (!userId) {\n setLoading(false);\n return;\n }\n\n // Check cache first\n const cached = userCache.get(userId);\n const now = Date.now();\n \n if (cached && now < cached.expiresAt) {\n // Use cached data\n setUser(cached.data);\n setLoading(false);\n return;\n }\n\n try {\n const fetchedUser = await getUserById(userId);\n if (!fetchedUser) return;\n\n let presence: Presence = { availability: 'Offline', activity: 'Offline' };\n try {\n if (fetchedUser.id) {\n const fetchedPresence = await getUserPresence(fetchedUser.id);\n if (fetchedPresence) {\n presence = fetchedPresence;\n }\n }\n } catch (error) {\n if ((error as Error)?.message?.toLowerCase().includes('exceed')) {\n logError(\n 'fetchUser: Exceeded resource error during presence check',\n error as Error,\n ErrorType.Error\n );\n presence = fetchedUser.presence || {\n availability: 'Offline',\n activity: 'Offline',\n };\n } else {\n logError(\n 'fetchUser: Error fetching user presence',\n error as Error,\n ErrorType.Error\n );\n }\n }\n \n const userData = { ...fetchedUser, presence };\n \n // Cache the user data\n userCache.set(userId, {\n data: userData,\n timestamp: now,\n expiresAt: now + USER_CACHE_DURATION\n });\n \n setUser(userData);\n } catch (error) {\n logError('fetchUser: Error fetching user', error as Error, ErrorType.Error);\n } finally {\n setLoading(false);\n }\n }, [userId, getUserById, getUserPresence, logError]);\n\n // Updates only the user presence data.\n const checkUserPresence = useCallback(async () => {\n if (!userId || !user) return;\n\n // Check if presence was recently updated\n const cached = userCache.get(userId);\n const now = Date.now();\n \n if (cached && cached.data.presence && (now - cached.timestamp) < PRESENCE_CACHE_DURATION) {\n // Presence is still fresh, skip update\n return;\n }\n\n try {\n let presence: Presence = { availability: 'Offline', activity: 'Offline' };\n try {\n if (user.id) {\n const fetchedPresence = await getUserPresence(user.id);\n if (fetchedPresence) {\n presence = fetchedPresence;\n }\n }\n } catch (error) {\n if ((error as Error).message?.toLowerCase().includes('exceed')) {\n logError(\n 'checkUserPresence: Exceeded resource error during presence check',\n error as Error,\n ErrorType.Error\n );\n presence = user.presence || {\n availability: 'Offline',\n activity: 'Offline',\n };\n } else {\n logError(\n 'checkUserPresence: Error fetching user presence',\n error as Error,\n ErrorType.Error\n );\n }\n }\n \n const updatedUser = { ...user, presence };\n \n // Update cache with new presence\n userCache.set(userId, {\n data: updatedUser,\n timestamp: now,\n expiresAt: (cached?.expiresAt || now + USER_CACHE_DURATION)\n });\n \n setUser(updatedUser);\n } catch (error) {\n logError(\n 'checkUserPresence: Error in checkUserPresence',\n error as Error,\n ErrorType.Error\n );\n }\n }, [userId, user, getUserPresence, logError]);\n\n useEffect(() => {\n (async () => {\n await fetchUser();\n })();\n }, [fetchUser]);\n\n // Use polling hook - it auto-starts\n const { startPolling, stopPolling } = usePolling(\n checkUserPresence,\n user ? DELAY_TO_CHECK_PRESENCE : DELAY_TO_CHECK_PRESENCE * 2,\n false // Don't call immediately\n );\n\n // Start polling when user data is available\n useEffect(() => {\n if (user) {\n startPolling();\n }\n return () => {\n stopPolling();\n };\n }, [user, startPolling, stopPolling]);\n\n return { user, loading, refetch: fetchUser };\n};\n","import {\n Avatar,\n Body1Strong,\n Persona,\n mergeClasses,\n} from '@fluentui/react-components';\nimport React, { useMemo } from 'react';\n\nimport { IUserCardProps } from './IUserCardProps';\nimport { LivePersona } from '../LivePersona';\nimport { useUserCardStyles } from './useUserCardStyles';\nimport { useUserProfile } from './useUserProfile';\n\n/**\n * UserCard Component\n *\n * This component displays a user's profile and their current presence status using Fluent UI 9 Persona.\n * It shows only the name and presence status for a simplified display.\n * \n * Optimized for virtualization: Uses React.memo to prevent unnecessary re-renders\n */\nconst UserCardComponent: React.FC<IUserCardProps> = ({\n userId,\n avatarSize = 32,\n showHoverCard = true,\n context,\n textPosition = 'after',\n className,\n avatarOnly = false,\n secondaryText,\n tertiaryText,\n quaternaryText,\n}) => {\n const styles = useUserCardStyles();\n const { user, } = useUserProfile(userId, context);\n\n // Determine the presence status based on the user's availability.\n // Fluent UI 9 Persona handles the icons automatically based on status\n const getPresenceInfo = useMemo(() => {\n const availability = user?.presence?.availability?.toLowerCase();\n const activity = user?.presence?.activity?.toLowerCase();\n\n switch (availability) {\n case 'available':\n return {\n status: 'available' as const,\n text: 'Available',\n };\n case 'availableidle':\n return {\n status: 'available' as const,\n text: 'Available, idle',\n };\n case 'away':\n return {\n status: 'away' as const,\n text: 'Away',\n };\n case 'busy':\n return {\n status: 'busy' as const,\n text: 'Busy',\n };\n case 'busyidle':\n return {\n status: 'busy' as const,\n text: 'Busy, idle',\n };\n case 'donotdisturb':\n return {\n status: 'do-not-disturb' as const,\n text: 'Do not disturb',\n };\n case 'berighback':\n return {\n status: 'away' as const,\n text: 'Be right back',\n };\n case 'invisible':\n return {\n status: 'offline' as const,\n text: 'Appear offline',\n };\n case 'presenceunknown':\n return {\n status: 'unknown' as const,\n text: 'Unknown',\n };\n case 'offline':\n return {\n status: 'offline' as const,\n text: activity === 'outofoffice' ? 'Out of office' : 'Offline',\n outOfOffice: activity === 'outofoffice',\n };\n default:\n return {\n status: 'offline' as const,\n text: 'Offline',\n outOfOffice: activity === 'outofoffice',\n };\n }\n }, [user?.presence?.availability, user?.presence?.activity]);\n\n \n\n return (\n <LivePersona\n upn={showHoverCard ? user?.mail || '' : ''}\n template={\n <div className={mergeClasses(styles.root, className)}>\n {avatarOnly ? (\n <Avatar\n color=\"colorful\"\n image={{\n src: user?.userPhoto,\n alt: user?.displayName || 'User Avatar',\n }}\n size={avatarSize}\n name={user?.displayName || userId || 'Unknown User'}\n badge={{\n status: getPresenceInfo.status,\n outOfOffice: getPresenceInfo.outOfOffice,\n }}\n />\n ) : (\n <Persona\n primaryText={<Body1Strong className={styles.textStyle}> {user?.displayName || userId || 'Unknown User'}</Body1Strong>}\n textPosition={textPosition ?? 'after'}\n presence={{\n status: getPresenceInfo.status,\n outOfOffice: getPresenceInfo.outOfOffice,\n }}\n secondaryText={\n secondaryText?.showSecondaryText ? (\n secondaryText.text ? (\n <>{<span className={styles.textStyle}>{secondaryText.text}</span>}</>\n ) : (\n <>{<span className={styles.textStyle}>{user?.jobTitle || 'Unknown Job Title'}</span>}</>\n )\n ) : (\n undefined\n )\n }\n tertiaryText={\n tertiaryText?.showTertiaryText ? (\n tertiaryText.text ? (\n <>{<span className={styles.textStyle}>{tertiaryText.text}</span>}</>\n ) : (\n <>{<span className={styles.textStyle}>{user?.mail || 'Unknown Email'}</span>}</> \n )\n ) : (\n undefined\n )\n }\n quaternaryText={\n quaternaryText?.showQuaternaryText ? (\n quaternaryText.text ? (\n <>{<span className={styles.textStyle}>{quaternaryText.text}</span> }</>\n ) : (\n <>{<span className={styles.textStyle}>{getPresenceInfo.text}</span>}</>\n )\n ) : (\n undefined\n )\n }\n avatar={{\n color: 'colorful',\n image: {\n src: user?.userPhoto,\n alt: user?.displayName || 'User Avatar',\n },\n size: avatarSize,\n }}\n textAlignment=\"start\"\n />\n )}\n </div>\n }\n />\n );\n};\n\n// Memoize the component to prevent unnecessary re-renders during virtualization\nexport const UserCard = React.memo(UserCardComponent, (prevProps, nextProps) => {\n // Custom comparison function for better performance in virtualized lists\n return (\n prevProps.userId === nextProps.userId &&\n prevProps.avatarSize === nextProps.avatarSize &&\n prevProps.showHoverCard === nextProps.showHoverCard &&\n prevProps.textPosition === nextProps.textPosition &&\n prevProps.avatarOnly === nextProps.avatarOnly &&\n prevProps.className === nextProps.className &&\n JSON.stringify(prevProps.secondaryText) === JSON.stringify(nextProps.secondaryText) &&\n JSON.stringify(prevProps.tertiaryText) === JSON.stringify(nextProps.tertiaryText) &&\n JSON.stringify(prevProps.quaternaryText) === JSON.stringify(nextProps.quaternaryText)\n // Note: context is excluded from comparison as it's typically stable\n );\n});\n","import { css } from '@emotion/css';\n\nexport interface IUserCardStyles {\n root: string;\n personContainer: string;\n textStyle: string;\n spinnerContainer: string;\n}\n\nexport const useUserCardStyles = (): IUserCardStyles => {\n return {\n root: css({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n width: \"fit-content\",\n gap: \"10px\",\n '&[data-fui-focus-within]:focus-within::after': {\n borderWidth: \"0px\",\n },\n }),\n \n personContainer: css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n width: \"100%\",\n maxWidth: \"100%\",\n overflow: \"hidden\",\n paddingBottom: \"0px\",\n }),\n \n textStyle: css({\n width: \"100%\",\n maxWidth: \"100%\",\n overflow: \"hidden\",\n display: \"-webkit-box\",\n WebkitLineClamp: \"1\",\n WebkitBoxOrient: \"vertical\",\n paddingBottom: \"0px\",\n textAlign: \"start\",\n wordBreak: \"break-all\",\n textOverflow: \"ellipsis\",\n textOverlay: \"hidden\",\n }),\n \n spinnerContainer: css({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n }),\n };\n};\n","/**\n * Constants for UserCard component\n */\n\nimport { AvatarSize } from '@fluentui/react-components';\n\nexport const DELAY_TO_CHECK_PRESENCE = 60000; // Polling interval in milliseconds (60 seconds)\n\n/**\n * Default avatar size when none is specified\n */\nexport const DEFAULT_AVATAR_SIZE = 32;\n\n/**\n * Configuration mapping for avatar sizes to maximum lines displayed\n * Following responsive design best practices\n */\nexport const AVATAR_SIZE_LINE_CONFIG: Record<AvatarSize, number> = {\n 16: 1, // Extra small - only main line\n 20: 1, // Small - only main line \n 24: 1, // Small - only main line\n 28: 2, // Medium small - name + job title\n 32: 2, // Medium - name + job title\n 36: 3, // Medium large - name + job title + department\n 40: 3, // Large - name + job title + department\n 48: 4, // Extra large - all lines\n 56: 4, // Extra extra large - all lines\n 64: 4, // Extra extra large - all lines\n 72: 4, // Extra extra large - all lines\n 96: 4, // Extra extra large - all lines\n 120: 4, // Extra extra large - all lines\n 128: 4, // Extra extra large - all lines\n};","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-floating-promises */\nimport * as React from 'react';\n\nimport {\n AddRegular,\n ArrowMoveRegular,\n ArrowSyncRegular,\n CommentRegular,\n DeleteRegular,\n EditRegular,\n HistoryRegular,\n MentionRegular,\n OpenRegular,\n PeopleRegular,\n RenameRegular,\n} from '@fluentui/react-icons';\n\nimport { Fade } from '@fluentui/react-motion-components-preview';\nimport { IAction } from './IAction';\nimport { IActivity } from './IActivity';\nimport { IActivityMessageProps } from './IActivityMessageProps';\nimport { IActor } from './IActor';\nimport { Stack } from '../Stack';\nimport {\n tokens,\n} from '@fluentui/react-components';\nimport { useSharePointActivities } from './useSharePointActivities';\n\nconst styles = {\n width: \"20px\",\n height: \"20px\",\n color: tokens.colorBrandBackground,\n};\n\ninterface IMessage {\n message: string;\n icon: JSX.Element;\n}\n\nconst actions = [\n \"access\",\n \"comment\",\n \"create\",\n \"delete\",\n \"edit\",\n \"mention\",\n \"move\",\n \"rename\",\n \"restore\",\n \"share\",\n \"version\",\n];\n\nconst defaultMessages = new Map<string, { message: string }>([\n [\"access\", { message: \"accessed this\" }],\n [\"comment\", { message: \"commented on this\" }],\n [\"create\", { message: \"created this\" }],\n [\"delete\", { message: \"deleted this\" }],\n [\"edit\", { message: \"edited this\" }],\n [\"mention\", { message: \"mentioned you in this\" }],\n [\"move\", { message: \"moved this\" }],\n [\"rename\", { message: \"renamed this\" }],\n [\"restore\", { message: \"restored this\" }],\n [\"share\", { message: \"shared this\" }],\n [\"version\", { message: \"versioned this\" }],\n]);\n\nexport const ListItemActivityMessage: React.FC<IActivityMessageProps> = ({\n siteId,\n listId,\n itemId,\n currentUserEmail,\n strings,\n context,\n}) => {\n const { getItemActivities } = useSharePointActivities(context);\n const actionMessages = new Map<string, IMessage>([\n [\n \"access\",\n {\n message: strings?.access || defaultMessages.get(\"access\")?.message || \"\",\n icon: <OpenRegular style={styles} />,\n },\n ],\n [\n \"comment\",\n {\n message: strings?.comment || defaultMessages.get(\"comment\")?.message || \"\",\n icon: <CommentRegular style={styles} />,\n },\n ],\n [\n \"create\",\n { message: strings?.create || defaultMessages.get(\"create\")?.message || \"\", icon: <AddRegular style={styles} /> },\n ],\n [\n \"delete\",\n {\n message: strings?.delete || defaultMessages.get(\"delete\")?.message || \"\",\n icon: <DeleteRegular style={styles} />,\n },\n ],\n [\n \"edit\",\n { message: strings?.edit || defaultMessages.get(\"edit\")?.message || \"\", icon: <EditRegular style={styles} /> },\n ],\n [\n \"mention\",\n {\n message: strings?.mention || defaultMessages.get(\"mention\")?.message || \"\",\n icon: <MentionRegular style={styles} />,\n },\n ],\n [\n \"move\",\n {\n message: strings?.move || defaultMessages.get(\"move\")?.message || \"\",\n icon: <ArrowMoveRegular style={styles} />,\n },\n ],\n [\n \"rename\",\n {\n message: strings?.rename || defaultMessages.get(\"rename\")?.message || \"\",\n icon: <RenameRegular style={styles} />,\n },\n ],\n [\n \"restore\",\n {\n message: strings?.restore || defaultMessages.get(\"restore\")?.message || \"\",\n icon: <ArrowSyncRegular style={styles} />,\n },\n ],\n [\n \"share\",\n {\n message: strings?.share || defaultMessages.get(\"share\")?.message || \"\",\n icon: <PeopleRegular style={styles} />,\n },\n ],\n [\n \"version\",\n {\n message: strings?.version || defaultMessages.get(\"version\")?.message || \"\",\n icon: <HistoryRegular style={styles} />,\n },\n ],\n ]);\n\n const [activityMessage, setActivityMessage] = React.useState<IMessage>({ message: \"\", icon: <></> });\n const [isLoading, setIsLoading] = React.useState<boolean>(true);\n const lastActivityRef = React.useRef<IActivity | undefined>(undefined);\n const motionRef = React.useRef<any>(undefined);\n const [playbackRate] = React.useState<number>(30);\n\n const isActorCurrentUser = React.useCallback(\n (actor: IActor): boolean => actor.user.email === currentUserEmail,\n [currentUserEmail]\n );\n\n const getActivityMessage = React.useCallback(\n (activity: IActivity): IMessage => {\n if (!activity) return { message: \"\", icon: <></> };\n\n const { action, actor } = activity;\n const { displayName } = actor?.user || { displayName: \"\" };\n const actionType = actions.find((key) => action[key as keyof IAction]);\n\n if (actionType) {\n const actionDetail = actionMessages.get(actionType);\n if (actionDetail) {\n const message = `${isActorCurrentUser(actor) ? \"You\" : displayName} ${actionDetail.message}`;\n return { message, icon: actionDetail.icon };\n }\n }\n return { message: \"\", icon: <></> };\n },\n [actionMessages, isActorCurrentUser]\n );\n\n \n\n React.useEffect(() => {\n motionRef.current?.setPlaybackRate(playbackRate / 100);\n }, [playbackRate, isLoading]);\n\n React.useEffect(() => {\n let isCancelled = false;\n\n const fetchActivityWithBackoff = async (retryDelay = 1000) => {\n if (siteId && listId && itemId) {\n try {\n const OrganizedActivity = await getItemActivities(siteId as string, listId as string, itemId as string);\n if (isCancelled) return;\n const latestActivity = OrganizedActivity.activities[0];\n if (!lastActivityRef.current || JSON.stringify(lastActivityRef.current) !== JSON.stringify(latestActivity)) {\n lastActivityRef.current = latestActivity;\n setActivityMessage(getActivityMessage(latestActivity));\n }\n } catch (error ) {\n if ((error as any).status === 429) {\n // If throttled, check for a Retry-After header or use the default delay\n const retryAfter = (error as any).headers?.get(\"Retry-After\");\n const delay = retryAfter ? parseInt(retryAfter, 10) * 1000 : retryDelay;\n console.warn(`Throttled. Retrying after ${delay}ms`);\n setTimeout(() => fetchActivityWithBackoff(delay * 2), delay);\n return;\n } else {\n console.error(\"Activity Error\", error);\n }\n } finally {\n if (!isCancelled) setIsLoading(false);\n }\n }\n };\n\n // Debounce the initial API call by 1 second\n const timer = setTimeout(() => {\n fetchActivityWithBackoff();\n }, 1000);\n\n return () => {\n clearTimeout(timer);\n isCancelled = true;\n };\n }, [siteId, listId, itemId, getItemActivities, getActivityMessage]);\n\n return (\n <Fade imperativeRef={motionRef} visible={!isLoading}>\n <div>\n <Stack horizontal verticalAlign=\"center\" horizontalAlign=\"center\" RowGap={4} columnGap={4}>\n {activityMessage.icon} {activityMessage.message}\n </Stack>\n </div>\n </Fade>\n );\n};\n","import * as React from 'react';\n\n/**\n * Simple Business Report Icon SVG\n */\nconst BusinessReportIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width=\"100\"\n height=\"100\"\n viewBox=\"0 0 100 100\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect x=\"20\" y=\"30\" width=\"60\" height=\"50\" fill=\"#0078D4\" opacity=\"0.1\" />\n <rect x=\"30\" y=\"50\" width=\"10\" height=\"20\" fill=\"#0078D4\" />\n <rect x=\"45\" y=\"40\" width=\"10\" height=\"30\" fill=\"#0078D4\" />\n <rect x=\"60\" y=\"35\" width=\"10\" height=\"35\" fill=\"#0078D4\" />\n </svg>\n);\n\nexport default BusinessReportIcon;\n","import * as React from 'react';\n\nimport BusinessReportIcon from '../svgImages/BusinessReportIcon';\nimport { Text } from '@fluentui/react-components';\n\nexport interface INoDashboardsProps {\n height?: string;\n}\n\nexport const NoDashboards: React.FunctionComponent<INoDashboardsProps> = (props: React.PropsWithChildren<INoDashboardsProps>) => {\n const { height } = props;\n\n return (\n <div style={{ height: height || \"100%\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\", flexDirection: \"column\" }}>\n <BusinessReportIcon width={200} height={200} />\n <Text size={500} weight='semibold'>No Dashboards Available</Text>\n </div>\n );\n};","import * as React from \"react\";\n\nimport {\n Caption1,\n Menu,\n MenuButton,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n Tooltip,\n tokens,\n} from \"@fluentui/react-components\";\nimport {\n Settings20Filled,\n Settings20Regular,\n bundleIcon,\n} from \"@fluentui/react-icons\";\n\nimport { RenderLabel } from \"../../RenderLabel\";\nimport { css } from \"@emotion/css\";\n\nexport interface ISelectZoomProps {\n IsOpen: boolean;\n onChange?: (value: { spanCols: number; spanRows: number }) => void;\n values: { spanCols: number; spanRows: number };\n maxCols: number;\n maxRows: number;\n}\n\nconst useStyles = (): {\n gridContainer: string;\n cell: string;\n hoveredCell: string;\n selectedCell: string;\n menuPopover: string;\n bottomText: string;\n zoomContainer: string;\n} => ({\n gridContainer: css`\n display: grid;\n gap: 4px;\n padding: 8px;\n justify-content: center;\n `,\n cell: css`\n width: 30px;\n height: 30px;\n border: 1px solid ${tokens.colorNeutralStroke1};\n background-color: ${tokens.colorNeutralBackground1};\n cursor: pointer;\n transition: background-color 150ms ease, transform 150ms ease;\n will-change: background-color, transform;\n `,\n hoveredCell: css`\n background-color: ${tokens.colorNeutralBackground1Hover};\n transform: scale(1.05);\n `,\n selectedCell: css`\n background-color: ${tokens.colorNeutralBackground1Selected};\n `,\n menuPopover: css`\n min-width: fit-content;\n `,\n bottomText: css`\n padding-left: 8px;\n padding-right: 8px;\n `,\n zoomContainer: css({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '6px',\n width: '100%',\n boxSizing: 'border-box',\n \n padding: '8px 0px',\n \n }),\n});\n\nexport const SelectZoom: React.FunctionComponent<ISelectZoomProps> = (\n props: React.PropsWithChildren<ISelectZoomProps>\n) => {\n const { onChange, values: defaultValues, maxCols, maxRows } = props;\n const Settings = bundleIcon(Settings20Filled, Settings20Regular);\n const styles = useStyles();\n\n const [values, setValues] = React.useState(defaultValues);\n const [hovered, setHovered] = React.useState<{\n spanCols: number;\n spanRows: number;\n } | null>(null);\n const [open, setOpen] = React.useState(false);\n\n React.useEffect(() => {\n setValues(defaultValues);\n }, [defaultValues]);\n\n const onOpenChange: MenuProps[\"onOpenChange\"] = (_, data) => {\n setOpen(data.open);\n setHovered(null);\n };\n\n const handleCellClick = (row: number, col: number):void => {\n const newValues = { spanCols: col + 1, spanRows: row + 1 };\n setValues(newValues);\n onChange?.(newValues);\n setOpen(false);\n };\n\n const handleCellHover = (row: number, col: number):void => {\n setHovered({ spanCols: col + 1, spanRows: row + 1 });\n };\n\n const handleMouseLeave = ():void => {\n setHovered(null);\n };\n\n const renderGridCells = (): React.ReactNode[] => {\n const cells: React.ReactNode[] = [];\n for (let row = 0; row < maxRows; row++) {\n for (let col = 0; col < maxCols; col++) {\n const isSelected = row < values.spanRows && col < values.spanCols;\n const isHovered =\n hovered && row < hovered.spanRows && col < hovered.spanCols;\n cells.push(\n <div\n key={`${row}-${col}`}\n className={`${styles.cell} ${isHovered ? styles.hoveredCell : \"\"} ${\n isSelected ? styles.selectedCell : \"\"\n }`}\n onMouseEnter={() => handleCellHover(row, col)}\n onClick={() => handleCellClick(row, col)}\n />\n );\n }\n }\n return cells;\n };\n\n // Compute popover width dynamically\n const popoverWidth = React.useMemo(() => (30 * maxCols) + (4 * (maxCols - 1)) + 32, [maxCols]); // 30px for each cell, 4px gap, and 32px padding (16 left and right)\n\n return (\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <Tooltip content=\"Configure\" relationship=\"label\">\n <MenuButton\n icon={<Settings />}\n size=\"small\"\n appearance=\"transparent\"\n />\n </Tooltip>\n </MenuTrigger>\n\n <MenuPopover\n style={{ width: `${popoverWidth}px`, minWidth: \"120px\", padding: 8 }}\n >\n <div\n className={styles.zoomContainer} \n >\n <RenderLabel\n label={`Span (${values.spanCols} × ${values.spanRows})`}\n \n />\n </div>\n\n {/* Grid */}\n <div\n className={styles.gridContainer}\n style={{\n gridTemplateColumns: `repeat(${maxCols}, 30px)`,\n gridTemplateRows: `repeat(${maxRows}, 30px)`,\n }}\n onMouseLeave={handleMouseLeave}\n >\n {renderGridCells()}\n </div>\n\n <Caption1 className={styles.bottomText}>Click to set span</Caption1>\n </MenuPopover>\n </Menu>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n// useStyles.ts\nimport { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useAIAssistantStyles = () => {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n padding: '10px',\n width: '100%',\n height: '600px',\n\n borderRadius: '8px',\n boxShadow: '0 2px 10px rgba(0, 0, 0, 0.1)',\n overflowY: 'auto',\n overflowX: 'hidden',\n position: 'relative',\n zIndex: 1000,\n }),\n chatList: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n padding: '10px',\n overflowY: 'auto',\n overflowX: 'hidden',\n height: '100%',\n width: '100%',\n // Scrollbar styles\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n }),\n \n chatAIAssistantRoot: css({\n padding: '10px',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n height: `calc(100% - 20px)`,\n \n }),\n inputContainer: css({\n display: 'flex',\n flexDirection: 'row',\n flex: 1,\n marginTop: '10px',\n\n gap: '10px',\n alignItems: 'center',\n }),\n input: css({\n width: '100%',\n fontSize: '14px',\n }),\n };\n};\n","import { useCallback, useRef, useState } from 'react';\n\ninterface StreamRequestResult {\n data: string;\n isLoading: boolean;\n error: string | null;\n sendRequest: (\n endpoint: string,\n payload: any,\n options?: RequestInit,\n onChunk?: (chunk: string) => void\n ) => Promise<void>;\n cancelRequest: () => void;\n}\n\nexport function useStreamRequest(): StreamRequestResult {\n const [data, setData] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const sendRequest = useCallback(\n async (\n endpoint: string,\n payload: any,\n options?: RequestInit,\n onChunk?: (chunk: string) => void\n ) => {\n setData('');\n setError(null);\n setIsLoading(true);\n\n const controller = new AbortController();\n abortControllerRef.current = controller;\n\n try {\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n signal: controller.signal,\n ...options,\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const reader = response.body?.getReader();\n if (!reader) {\n throw new Error('No response body');\n }\n const decoder = new TextDecoder('utf-8');\n let done = false;\n let accumulatedData = '';\n\n while (!done) {\n const { value, done: doneReading } = await reader.read();\n done = doneReading;\n if (value) {\n const chunk = decoder.decode(value, { stream: true });\n accumulatedData += chunk;\n setData(accumulatedData);\n if (onChunk) {\n onChunk(chunk);\n }\n }\n }\n } catch (err) {\n if (err instanceof Error && err.name === 'AbortError') {\n setError('Request aborted');\n throw err; // Propagate the error by rethrowing it\n } else {\n setError(err instanceof Error ? err.message : 'Error occurred');\n throw err; // Propagate the error by rethrowing it\n }\n } finally {\n setIsLoading(false);\n }\n },\n []\n );\n\n const cancelRequest = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n }, []);\n\n return { data, isLoading, error, sendRequest, cancelRequest };\n}","/** @jsxImportSource @emotion/react */\nimport * as React from \"react\";\n\nimport { useLogging } from \"../../hooks/useLogging\";\n\n// TODO: Create useAzureOpenAI hook - this is Azure AI specific\n// For now, we'll create a local stub\nconst useAzureOpenAI = (_config: any) => ({\n generateText: async (prompt: string, userInput?: string) => {\n console.warn('useAzureOpenAI not implemented - add your Azure OpenAI implementation', { prompt, userInput });\n return 'Azure OpenAI not configured - please provide configuration';\n },\n isConfigured: false,\n});\n\n// TODO: Create sanitization utility\nconst sanitizeUserData = (data: any): string => {\n return JSON.stringify(data);\n};\n\nexport interface IAzureOpenAIConfig {\n endpoint: string;\n apiKey?: string;\n deploymentName: string;\n}\n\nimport { useCallback, useRef, useState } from \"react\";\n\nimport { AISearchIcon } from \"./AISearchIcon\";\nimport { SearchBox } from \"@fluentui/react-components\";\nimport { useAISearchControlStyles } from \"./useAISearchControlStyles\";\n\nexport interface IAISearchControlProps {\n systemPromptTemplate: string;\n azureOpenAIConfig: IAzureOpenAIConfig;\n placeholder?: string;\n onSearchQueryGenerated?: (searchQuery: string, originalInput: string) => void;\n onSearchStart?: (originalInput: string) => void;\n onSearchError?: (error: string, originalInput: string) => void;\n disabled?: boolean;\n className?: string;\n width?: string | number;\n}\n\nexport const AISearchControl: React.FunctionComponent<\n IAISearchControlProps\n> = ({\n systemPromptTemplate,\n azureOpenAIConfig,\n placeholder = \"Ask AI to generate search query... (e.g., 'Find engineers in the Seattle office')\",\n onSearchQueryGenerated,\n onSearchStart,\n onSearchError,\n disabled = false,\n className,\n width,\n}) => {\n const { error } = useLogging();\n const { generateText, isConfigured } = useAzureOpenAI({\n config: azureOpenAIConfig,\n });\n\n const [isLoading, setIsLoading] = useState(false);\n const [searchInput, setSearchInput] = useState(\"\");\n const searchBoxRef = useRef<HTMLInputElement>(null);\n\n // Get styles from custom hook\n const { searchBoxStyles, iconWrapperStyles } = useAISearchControlStyles();\n\n /**\n * Generate AI search query\n */\n const handleAISearch = useCallback(\n async (inputValue: string) => {\n if (!inputValue.trim()) {\n return;\n }\n\n if (!isConfigured) {\n const configError =\n \"Azure OpenAI is not properly configured. Please check your configuration.\";\n onSearchError?.(configError, inputValue.trim());\n return;\n }\n\n const trimmedInput = inputValue.trim();\n setIsLoading(true);\n\n try {\n onSearchStart?.(trimmedInput);\n\n // Generate search query using AI\n const searchQuery = await generateText(\n systemPromptTemplate,\n trimmedInput\n );\n\n // Return the generated search query to the host application\n onSearchQueryGenerated?.(searchQuery, trimmedInput);\n } catch (err) {\n const errorMessage =\n err instanceof Error\n ? err.message\n : \"An error occurred during AI search query generation\";\n\n error(\n \"AISearchControl - Error generating AI search query: \" + sanitizeUserData({\n operation: \"handleAISearch\",\n userInput: trimmedInput,\n errorMessage,\n isConfigured,\n })\n );\n\n onSearchError?.(errorMessage, trimmedInput);\n } finally {\n setIsLoading(false);\n }\n },\n [\n generateText,\n systemPromptTemplate,\n onSearchQueryGenerated,\n onSearchStart,\n onSearchError,\n error,\n isConfigured,\n ]\n );\n\n /**\n * Handle search input changes\n */\n const handleSearchChange = useCallback(\n (_event: any, data: { value: string }) => {\n setSearchInput(data.value);\n },\n []\n );\n\n /**\n * Handle dismiss/clear button click\n */\n const handleDismiss = useCallback(() => {\n setSearchInput(\"\");\n\n searchBoxRef.current?.blur();\n // Notify the host that search was cleared\n onSearchQueryGenerated?.(\"\", \"\");\n }, [onSearchQueryGenerated]);\n\n /**\n * Handle Enter and Escape key presses\n */\n const handleKeyPress = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" && !isLoading && searchInput.trim()) {\n handleAISearch(searchInput).catch((error) => {\n console.error(\"Error in handleAISearch:\", error);\n });\n } else if (event.key === \"Escape\") {\n searchBoxRef.current?.blur();\n // Clear the search input when Escape is pressed\n setSearchInput(\"\");\n // Notify the host that search was cleared\n onSearchQueryGenerated?.(\"\", \"\");\n }\n },\n [handleAISearch, isLoading, searchInput, onSearchQueryGenerated]\n );\n\n return (\n <SearchBox\n ref={searchBoxRef}\n css={searchBoxStyles}\n className={className}\n style={{ width: width }}\n placeholder={placeholder}\n value={searchInput}\n onChange={handleSearchChange}\n onKeyDown={handleKeyPress}\n disabled={disabled || isLoading}\n contentBefore={\n <span css={iconWrapperStyles}>\n <AISearchIcon size={20} />\n </span>\n }\n dismiss={{\n onClick: handleDismiss,\n }}\n />\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport { SerializedStyles, css } from \"@emotion/react\";\n\nimport { tokens } from \"@fluentui/react-components\";\n\n/**\n * Custom hook for AI Search Control styles\n * Provides emotion CSS styles for the modern circular SearchBox design\n */\nexport const useAISearchControlStyles = (): {\n searchBoxStyles: SerializedStyles;\n iconWrapperStyles: SerializedStyles;\n} => {\n // Main SearchBox styling\n const searchBoxStyles = css`\n border: 1px solid ${tokens.colorNeutralStroke2};\n border-radius: 50px; /* Fully circular/pill shape */\n background-color: ${tokens.colorNeutralBackground1};\n padding: 5px 10px;\n box-shadow: none;\n transition: all 0.2s ease;\n position: relative;\n\n /* Remove default FluentUI focus styling */\n &::after {\n display: none !important;\n }\n\n &:hover {\n border-color: ${tokens.colorBrandStroke1};\n \n }\n\n &:focus-within {\n outline: none;\n border-color: ${tokens.colorBrandStroke1};\n \n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n border-color: ${tokens.colorNeutralStroke3};\n background-color: ${tokens.colorNeutralBackground3};\n }\n\n /* Style the input directly */\n input {\n border: none !important;\n outline: none !important;\n background: transparent !important;\n font-size: ${tokens.fontSizeBase300};\n color: ${tokens.colorNeutralForeground1};\n box-shadow: none !important;\n\n &::placeholder {\n color: ${tokens.colorNeutralForeground3};\n }\n\n &:focus {\n border: none !important;\n outline: none !important;\n box-shadow: none !important;\n }\n }\n\n /* Remove any internal focus indicators */\n * {\n &:focus {\n outline: none !important;\n box-shadow: none !important;\n }\n }\n `;\n\n // Icon wrapper styling\n const iconWrapperStyles = css`\n display: flex;\n align-items: center;\n padding: 2px;\n margin-right: 8px;\n `;\n\n return {\n searchBoxStyles,\n iconWrapperStyles,\n };\n};\n","import * as markdown from 'markdown-it';\n\nimport { AdaptiveCard } from 'adaptivecards';\nimport { IApplicationContext } from '../../abstractions';\nimport { IAdaptiveCardHostEvaluationContext } from './models/IAdaptiveCardHostEvaluationContext';\nimport { IEvaluationContext } from 'adaptivecards-templating/lib/template-engine';\nimport { Theme } from '@fluentui/react-components';\n\nexport const initProcessMarkdown = (): void => {\n if (!AdaptiveCard.onProcessMarkdown) {\n AdaptiveCard.onProcessMarkdown = (text, result) => {\n result.outputHtml = new markdown.default().render(text);\n result.didProcess = true;\n\n try {\n result.outputHtml = new markdown.default().render(text);\n result.didProcess = true;\n } catch (error) {\n console.error('AdaptiveCardHost: Error parsing Markdown', error);\n result.didProcess = false;\n }\n };\n }\n};\n\nexport const injectContextProperty = (dataObject: { \"$root\": object }, theme: Theme, appContext?: IApplicationContext): IEvaluationContext => {\n let evaluationContext: IEvaluationContext;\n let context: IAdaptiveCardHostEvaluationContext;\n\n if (appContext) {\n context = {\n theme: theme,\n aadInfo: (appContext?.pageContext?.aadInfo) ? {\n instanceUrl: appContext.pageContext.aadInfo.instanceUrl || '',\n tenantId: appContext.pageContext.aadInfo.tenantId || '',\n userId: appContext.pageContext.aadInfo.userId || '',\n } : undefined,\n cultureInfo: (appContext?.pageContext?.cultureInfo) ? {\n currentCultureName: appContext.pageContext.cultureInfo.currentCultureName,\n currentUICultureName: appContext.pageContext.cultureInfo.currentUICultureName,\n isRightToLeft: appContext.pageContext.cultureInfo.isRightToLeft || false\n } : undefined,\n userInfo: (appContext?.pageContext?.user) ? {\n displayName: appContext.pageContext.user.displayName,\n email: appContext.pageContext.user.email,\n isAnonymousGuestUser: appContext.pageContext.user.isAnonymousGuestUser || false,\n isExternalGuestUser: appContext.pageContext.user.isExternalGuestUser || false,\n loginName: appContext.pageContext.user.loginName,\n preferUserTimeZone: appContext.pageContext.user.preferUserTimeZone || false\n } : undefined,\n spListInfo: (appContext?.pageContext?.list) ? {\n id: appContext.pageContext.list.id,\n serverRelativeUrl: appContext.pageContext.list.serverRelativeUrl || '',\n title: appContext.pageContext.list.title\n } : undefined,\n spListItemInfo: (appContext?.pageContext?.listItem) ? {\n id: appContext.pageContext.listItem.id.toString(),\n } : undefined,\n spSiteInfo: (appContext?.pageContext?.site) ? {\n absoluteUrl: appContext.pageContext.site.absoluteUrl,\n cdnPrefix: appContext.pageContext.site.cdnPrefix || '',\n classification: appContext.pageContext.site.classification || '',\n correlationId: appContext.pageContext.site.correlationId || '',\n id: appContext.pageContext.site.id,\n isNoScriptEnabled: appContext.pageContext.site.isNoScriptEnabled || false,\n recycleBinItemCount: appContext.pageContext.site.recycleBinItemCount || 0,\n serverRelativeUrl: appContext.pageContext.site.serverRelativeUrl || '',\n serverRequestPath: appContext.pageContext.site.serverRequestPath || '',\n sitePagesEnabled: appContext.pageContext.site.sitePagesEnabled || false\n } : undefined,\n spWebInfo: (appContext?.pageContext?.web) ? {\n absoluteUrl: appContext.pageContext.web.absoluteUrl,\n id: appContext.pageContext.web.id,\n isAppWeb: appContext.pageContext.web.isAppWeb || false,\n language: appContext.pageContext.web.language || 0,\n languageName: appContext.pageContext.web.languageName || '',\n logoUrl: appContext.pageContext.web.logoUrl || '',\n serverRelativeUrl: appContext.pageContext.web.serverRelativeUrl || '',\n templateName: appContext.pageContext.web.templateName || '',\n title: appContext.pageContext.web.title,\n description: appContext.pageContext.web.description || ''\n } : undefined\n };\n } else {\n context = {\n theme: theme\n };\n }\n\n if (dataObject) {\n evaluationContext = { $root: { ...dataObject?.$root, \"@context\": context } };\n } else {\n evaluationContext = { $root: { \"@context\": context } };\n }\n\n return evaluationContext;\n};\n","import { CardElement } from \"adaptivecards/lib/card-elements\";\nimport { CardObjectRegistry } from \"adaptivecards/lib/registry\";\nimport { FluentUIChoiceSetInput } from \"./FluentUIChoiceSetInput\";\nimport { FluentUIDateInput } from \"./FluentUIDateInput\";\nimport { FluentUINumberInput } from \"./FluentUINumberInput\";\nimport { FluentUITextInput } from \"./FluentUITextInput\";\nimport { FluentUITimeInput } from \"./FluentUITimeInput\";\nimport { FluentUIToggleInput } from \"./FluentUIToggleInput\";\nimport { initializeIcons } from \"@fluentui/react/lib/Icons\";\n\nexport function registerFluentUIElements(registry: CardObjectRegistry<CardElement>): void {\n initializeIcons();\n\n registry.register(\"Input.Text\", FluentUITextInput);\n registry.register(\"Input.Number\", FluentUINumberInput);\n registry.register(\"Input.Time\", FluentUITimeInput);\n registry.register(\"Input.Date\", FluentUIDateInput);\n registry.register(\"Input.Toggle\", FluentUIToggleInput);\n registry.register(\"Input.ChoiceSet\", FluentUIChoiceSetInput);\n}\n","import { Card, CardHeader, Text } from '@fluentui/react-components';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { IAppCardContainer } from '../../models/IAppCardContainer';\nimport { IAppDashboardProps } from './IAppDashboardProps';\nimport { NoDashboards } from './NoDashboards';\nimport { SelectZoom } from './selectZoom/SelectZoom';\nimport { useDashboardStyles } from './useDashboardStyles';\nimport { useIndexedDBCache } from '../../hooks/useIndexedDB';\n\n\nconst MINIMUM_DASHBOARD_WIDTH = 600;\nconst MAX_ROWS = 4;\nconst DEFAULT_CACHE_PREFIX = 'app-dashboard';\nconst CACHE_EXPIRATION_DAYS = 30;\n\nexport const AppDashboard: React.FC<IAppDashboardProps> = ({\n cards,\n containerWidth,\n containerHeight = '100%',\n maxSpanRows = MAX_ROWS,\n enableDragAndDrop = true,\n enableCache = true,\n cacheKeyPrefix = DEFAULT_CACHE_PREFIX,\n onCardsReorder,\n onCardResize,\n}) => {\n const styles = useDashboardStyles();\n \n const layoutCacheKey = `${cacheKeyPrefix}-layout-settings`;\n const orderCacheKey = `${cacheKeyPrefix}-card-order`;\n \n // Cache with 30-day expiration for dashboard layout settings\n const { getCachedData, setCachedData } = useIndexedDBCache<Record<string, { spanCols: number; spanRows: number }>>();\n const getData = (key: string) => getCachedData(key);\n const setData = (key: string, value: Record<string, { spanCols: number; spanRows: number }>) => \n setCachedData(key, value, CACHE_EXPIRATION_DAYS * 24 * 60);\n\n // Cache for card order\n const { \n getCachedData: getOrderCachedData, \n setCachedData: setOrderCachedData \n } = useIndexedDBCache<string[]>();\n const getOrderData = (key: string) => getOrderCachedData(key);\n const setOrderData = (key: string, value: string[]) => \n setOrderCachedData(key, value, CACHE_EXPIRATION_DAYS * 24 * 60);\n\n const [cardContainers, setCardContainers] = useState<IAppCardContainer[]>([]);\n const [sizes, setSizes] = useState<\n Record<string, { spanCols: number; spanRows: number }>\n >({});\n const dragItem = useRef<number | null>(null);\n const dragOverItem = useRef<number | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n // Load cached card order and sizes\n const initializeData = async () => {\n try {\n let orderedCards = cards;\n let initialSizes: Record<string, { spanCols: number; spanRows: number }> = {};\n \n if (enableCache) {\n const [cachedSizes, cachedOrder] = await Promise.all([\n getData(layoutCacheKey),\n getOrderData(orderCacheKey)\n ]);\n \n // Restore card order if available, otherwise use original order\n if (cachedOrder && cachedOrder.length > 0) {\n // Reorder cards based on cached order, but handle cases where cards might have been added/removed\n const cardMap = new Map(cards.map(card => [card.id, card]));\n const validCachedOrder = cachedOrder.filter(id => cardMap.has(id));\n const missingCards = cards.filter(card => !cachedOrder.includes(card.id));\n \n orderedCards = [\n ...validCachedOrder.map(id => cardMap.get(id)!),\n ...missingCards\n ];\n }\n \n // Initialize sizes from cache or defaults\n cards.forEach(c => {\n const cachedSize = cachedSizes?.[c.id];\n initialSizes[c.id] = {\n spanCols: cachedSize?.spanCols ?? c.defaultSpan?.spanCols ?? 1,\n spanRows: cachedSize?.spanRows ?? c.defaultSpan?.spanRows ?? 1,\n };\n });\n } else {\n // No cache - use defaults\n cards.forEach(c => {\n initialSizes[c.id] = {\n spanCols: c.defaultSpan?.spanCols ?? 1,\n spanRows: c.defaultSpan?.spanRows ?? 1,\n };\n });\n }\n \n setCardContainers(orderedCards);\n setSizes(initialSizes);\n } catch (error) {\n // Fallback to default values if cache fails\n console.warn('Failed to load dashboard data from cache:', error);\n setCardContainers(cards);\n const fallbackSizes: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n cards.forEach(c => {\n fallbackSizes[c.id] = {\n spanCols: c.defaultSpan?.spanCols ?? 1,\n spanRows: c.defaultSpan?.spanRows ?? 1,\n };\n });\n setSizes(fallbackSizes);\n }\n };\n \n initializeData();\n }, [cards, enableCache, layoutCacheKey, orderCacheKey]); // getData/getOrderData are stable\n\n // Save sizes to cache whenever they change\n useEffect(() => {\n if (!enableCache) return;\n \n const saveSizesToCache = async () => {\n try {\n await setData(layoutCacheKey, sizes);\n } catch (error) {\n console.warn('Failed to save dashboard layout to cache:', error);\n }\n };\n\n // Only save if sizes is not empty (avoid saving initial empty state)\n if (Object.keys(sizes).length > 0) {\n saveSizesToCache();\n }\n }, [sizes, enableCache, layoutCacheKey, setData]);\n\n // Save card order to cache whenever it changes\n useEffect(() => {\n if (!enableCache) return;\n \n const saveOrderToCache = async () => {\n try {\n const cardOrder = cardContainers.map(card => card.id);\n await setOrderData(orderCacheKey, cardOrder);\n } catch (error) {\n console.warn('Failed to save dashboard order to cache:', error);\n }\n };\n\n // Only save if cardContainers is not empty\n if (cardContainers.length > 0) {\n saveOrderToCache();\n }\n }, [cardContainers, enableCache, orderCacheKey, setOrderData]);\n\n useEffect(() => {\n if (containerWidth <= MINIMUM_DASHBOARD_WIDTH) {\n setSizes(() => {\n const reset: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n cardContainers.forEach(c => {\n reset[c.id] = { spanCols: 1, spanRows: 1 };\n });\n return reset;\n });\n }\n }, [containerWidth, cardContainers]);\n\n const showZoom = useMemo(() => containerWidth > MINIMUM_DASHBOARD_WIDTH, [\n containerWidth,\n ]);\n\n const { minCardWidth, gridGap, containerPadding } = useMemo(\n () => ({\n minCardWidth: 350,\n gridGap: 16,\n containerPadding: 20,\n }),\n []\n );\n\n const innerWidth = containerWidth - containerPadding * 2;\n const columns = useMemo(\n () => Math.floor((innerWidth + gridGap) / (minCardWidth + gridGap)),\n [innerWidth, gridGap, minCardWidth]\n );\n const maxZoom = Math.max(columns, 1);\n\n const handleSort = useCallback(() => {\n if (\n dragItem.current !== null &&\n dragOverItem.current !== null &&\n dragItem.current !== dragOverItem.current\n ) {\n const copy = [...cardContainers];\n const [moved] = copy.splice(dragItem.current, 1);\n copy.splice(dragOverItem.current, 0, moved);\n setCardContainers(copy);\n \n // Trigger callback if provided\n if (onCardsReorder) {\n onCardsReorder(copy);\n }\n }\n dragItem.current = null;\n dragOverItem.current = null;\n }, [cardContainers, onCardsReorder]);\n\n const handleZoomSelect = useCallback(\n (id: string, span: { spanCols: number; spanRows: number }) => {\n const newSizes = {\n spanCols: Math.min(Math.max(span.spanCols, 1), maxZoom),\n spanRows: Math.min(Math.max(span.spanRows, 1), maxSpanRows),\n };\n \n setSizes(prev => ({\n ...prev,\n [id]: newSizes,\n }));\n \n // Trigger callback if provided\n if (onCardResize) {\n onCardResize(id, newSizes);\n }\n },\n [maxZoom, maxSpanRows, onCardResize]\n );\n\n const defaultColsAndRowSpanBasedOnNumberColumns = useMemo(() => {\n return cardContainers.reduce((acc, card) => {\n acc[card.id] = {\n spanCols: Math.min(card.defaultSpan?.spanCols ?? 1, columns),\n spanRows: card.defaultSpan?.spanRows ?? 1,\n };\n return acc;\n }, {} as Record<string, { spanCols: number; spanRows: number }>);\n }, [cardContainers, columns]);\n\n const renderCards = useMemo(() => {\n return cardContainers.map((cardContainer, idx) => {\n const shouldShowZoom = cardContainer.showZoom !== false && showZoom;\n \n // Determine header action - either custom or default zoom control\n let headerAction: React.ReactNode = undefined;\n if (cardContainer.headerAction) {\n headerAction = cardContainer.headerAction;\n } else if (shouldShowZoom) {\n headerAction = (\n <SelectZoom\n values={\n sizes[cardContainer.id] ||\n defaultColsAndRowSpanBasedOnNumberColumns[cardContainer.id] || \n { spanCols: 1, spanRows: 1 }\n }\n maxCols={maxZoom}\n maxRows={maxSpanRows}\n IsOpen={false}\n onChange={v => handleZoomSelect(cardContainer.id, v)}\n />\n );\n }\n\n return (\n <div\n className={styles.cardWrapper}\n key={cardContainer.id}\n draggable={enableDragAndDrop}\n onDragStart={() => enableDragAndDrop && (dragItem.current = idx)}\n onDragEnter={() => enableDragAndDrop && (dragOverItem.current = idx)}\n onDragOver={e => enableDragAndDrop && e.preventDefault()}\n onDragEnd={enableDragAndDrop ? handleSort : undefined}\n style={{\n gridColumnEnd: sizes[cardContainer.id]?.spanCols\n ? `span ${sizes[cardContainer.id].spanCols}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanCols || 1}`,\n gridRowEnd: sizes[cardContainer.id]?.spanRows\n ? `span ${sizes[cardContainer.id].spanRows}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanRows || 1}`,\n cursor: enableDragAndDrop ? 'grab' : 'default',\n }}\n >\n <Card className={`${styles.cardBody} ${cardContainer.className || ''}`}>\n <CardHeader\n header={\n <div>\n <Text weight=\"semibold\" size={400}>\n {cardContainer.cardTitle}\n </Text>\n {cardContainer.cardDescription && (\n <Text className={styles.cardDescription} size={200}>\n {cardContainer.cardDescription}\n </Text>\n )}\n </div>\n }\n action={headerAction as any}\n />\n <div\n className={styles.chartContainer}\n style={{ \n height: containerHeight,\n ...cardContainer.style \n }}\n >\n {cardContainer.content}\n </div>\n </Card>\n </div>\n );\n });\n }, [\n cardContainers,\n enableDragAndDrop,\n handleSort,\n sizes,\n styles.cardBody,\n styles.cardDescription,\n styles.chartContainer,\n styles.cardWrapper,\n showZoom,\n maxZoom,\n maxSpanRows,\n handleZoomSelect,\n containerHeight,\n defaultColsAndRowSpanBasedOnNumberColumns,\n ]);\n\n if (cardContainers.length === 0) {\n return <NoDashboards />;\n }\n\n return (\n <div \n ref={containerRef} \n className={styles.dashboardContainer} \n style={{ height: containerHeight }}\n >\n {renderCards}\n </div>\n );\n};\n\nexport default AppDashboard;\n","import { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useDashboardStyles = (): {\n dashboardContainer: string;\n cardBody: string;\n chartContainer: string;\n cardDescription: string;\n cardWrapper: string;\n} => {\n return {\n dashboardContainer: css({\n display: 'grid',\n padding: '20px',\n gap: '16px',\n backgroundColor: tokens.colorNeutralBackground2,\n gridTemplateColumns: 'repeat(auto-fill, minmax(350px, 1fr))',\n gridAutoRows: '350px',\n overflowY: 'auto',\n overflowX: 'hidden',\n\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n\n justifyContent: 'center',\n gridAutoFlow: 'dense',\n }),\n cardBody: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n minHeight: '320px',\n }),\n chartContainer: css({\n flex: 1,\n width: '100%',\n minHeight: '280px',\n }),\n cardDescription: css({\n color: `${tokens.colorNeutralForeground2}`,\n marginTop: '4px',\n }),\n\n cardWrapper: css({\n position: 'relative',\n height: '100%',\n minHeight: '300px',\n borderRadius: tokens.borderRadiusMedium,\n transition: 'all 0.2s ease',\n\n '&:hover': {\n transform: 'translateY(-2px)',\n boxShadow: `${tokens.shadow16}`,\n },\n\n '&:active': {\n transform: 'translateY(0)',\n boxShadow: `${tokens.shadow8}`,\n },\n }),\n };\n};\n","import React from 'react';\n\ninterface AspectRatioProps {\n ratio: number;\n children?: React.ReactNode;\n maxWidth?: string | number;\n maxHeight?: string | number;\n style?: React.CSSProperties;\n [key: string]: any;\n}\n\nexport const AspectRatio: React.FC<AspectRatioProps> = ({ ratio, children, maxWidth, maxHeight, style = {}, ...props }) => {\n const aspectStyle: React.CSSProperties = {\n position: 'relative',\n width: '100%',\n paddingTop: `${100 / ratio}%`,\n maxWidth: maxWidth || 'none',\n maxHeight: maxHeight || 'none',\n ...style,\n };\n\n const innerStyle: React.CSSProperties = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n };\n\n return (\n <div style={aspectStyle} {...props}>\n <div style={innerStyle}>{children}</div>\n </div>\n );\n};\n\n\nexport default AspectRatio;\n","import {\n Button,\n Text,\n mergeClasses,\n} from '@fluentui/react-components';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { ChevronRightRegular } from '@fluentui/react-icons';\nimport { IBreadcrumbItem } from './IBreadcrumItem';\nimport { IBreadcrumbProps } from './IBreadcrumProps';\nimport OverflowMenu from './OverflowMenu'; // Import the OverflowMenu component\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { Stack } from '../Stack';\nimport { useBreadcrumStyles } from './useBreadcrumStyles';\n\n// Utility: Debounce function to limit ResizeObserver calls\n const debounce = (func: (...args: any[]) => void, delay: number) => {\n let timeout: NodeJS.Timeout;\n return (...args: any[]) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => func(...args), delay);\n };\n };\n \n export const Breadcrumb: React.FC<IBreadcrumbProps> = ({\n items,\n maxWidth = '100%',\n styles: customStyles,\n theme,\n size = 'medium',\n currentIndex = items.length - 1,\n className,\n }) => {\n const { styles, getStyles } = useBreadcrumStyles();\n const containerRef = useRef<HTMLDivElement>(null);\n const [visibleItems, setVisibleItems] = useState<IBreadcrumbItem[]>([]);\n const [overflowItems, setOverflowItems] = useState<IBreadcrumbItem[]>([]);\n \n useEffect(() => {\n const updateVisibleItems = () => {\n if (!containerRef.current) return;\n \n const containerWidth = containerRef.current.offsetWidth;\n let currentWidth = 0;\n const visible: IBreadcrumbItem[] = [];\n const overflow: IBreadcrumbItem[] = [];\n \n items.forEach(item => {\n const estimatedWidth = 80; // Estimate width for each item (adjust if necessary)\n if (currentWidth + estimatedWidth <= containerWidth - 50) {\n visible.push(item);\n currentWidth += estimatedWidth;\n } else {\n overflow.push(item);\n }\n });\n \n setVisibleItems(visible);\n setOverflowItems(overflow);\n };\n \n const handleResize = debounce(updateVisibleItems, 100);\n \n // Set up ResizeObserver\n const resizeObserver = new ResizeObserver(() => {\n handleResize();\n });\n \n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n \n // Initial update\n updateVisibleItems();\n \n // Cleanup observer on unmount\n return () => {\n resizeObserver.disconnect();\n };\n }, [items]);\n \n return (\n \n <div\n ref={containerRef}\n className={mergeClasses(styles.container, className)}\n style={{ maxWidth, ...customStyles }}\n >\n <Stack horizontal verticalAlign=\"center\" horizontalAlign=\"start\">\n {visibleItems.map((item, index) => {\n return (\n <>\n {index === currentIndex ? (\n <Stack\n horizontal\n verticalAlign=\"center\"\n horizontalAlign=\"start\"\n columnGap={5}\n styles={{ overflow: 'hidden' }}\n >\n {item.icon\n ? React.cloneElement(item.icon, {\n style: { fontSize: size === 'large' ? '20px' : size === 'medium' ? '16px' : '12px' },\n })\n : null}\n <Text\n key={item.label}\n className={mergeClasses(\n styles.breadcrumbItem,\n getStyles(item, size),\n getStyles(item, 'current')\n )}\n aria-current=\"page\"\n >\n {item.label}\n </Text>\n </Stack>\n ) : (\n <Button\n icon={item.icon ? item.icon : null}\n key={item.label}\n appearance=\"transparent\"\n className={`${styles.breadcrumbItem}`}\n onClick={item.onClick}\n >\n <Text className={getStyles(item, size)}>\n {item.label}\n </Text>\n </Button>\n )}\n {index < visibleItems.length - 1 && (\n <ChevronRightRegular\n style={{\n fontSize:\n size === 'large'\n ? '20px'\n : size === 'medium'\n ? '16px'\n : '12px',\n }}\n />\n )}\n </>\n );\n })}\n \n {overflowItems.length > 0 && (\n <OverflowMenu items={overflowItems} theme={theme} />\n )}\n </Stack>\n </div>\n \n );\n };\n \n export default Breadcrumb;\n","/* eslint-disable no-unused-expressions */\n/* eslint-disable require-atomic-updates */\n/* eslint-disable @typescript-eslint/no-unused-expressions */\n\nimport {\n Body1Strong,\n Caption1,\n Card,\n CardHeader,\n Divider,\n Persona,\n webLightTheme,\n} from '@fluentui/react-components';\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { ChatInput } from './ChatInput';\nimport { ChatInputWithMensionsProps } from './ChatInputWithMensionsProps';\nimport { Popup } from '../Popup';\nimport { Stack } from '../Stack';\nimport { debounce } from '../../utils/lodash';\nimport getCaretCoordinates from 'textarea-caret';\nimport { useChatInputWithMensionsStyles } from './useChatInputWithMensionsStyles';\n\nexport interface GraphUser {\n id: string;\n displayName: string;\n mail?: string;\n avatar?: string;\n}\n\ninterface MenuPosition {\n top: number;\n left: number;\n}\n\nexport interface IUseStyles {\n inputContainer: string;\n listContainer: string;\n sugestionsHeader: string;\n}\n\nexport const ChatInputWithMensionsV1: React.FC<ChatInputWithMensionsProps> = ({\n context,\n onChange,\n value,\n placeholder,\n onSend,\n theme = webLightTheme, \n isRunning,\n onAbort\n}) => {\n const [inputValue, setInputValue] = useState(value || '');\n const [showMenu, setShowMenu] = useState(false);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const [menuPosition, setMenuPosition] = useState<MenuPosition>({\n top: 0,\n left: 0,\n });\n const [suggestions, setSuggestions] = useState<GraphUser[]>([]);\n // Cache for user queries.\n const cacheRef = useRef<{ [key: string]: GraphUser[] }>({});\n const styles = useChatInputWithMensionsStyles();\n\n\n React.useEffect(() => {\n \n textareaRef.current?.focus();\n setInputValue(value || '');\n }\n , [value]);\n\n // Fetch users from Graph API.\n const fetchUsers = async (query: string): Promise<GraphUser[]> => {\n if (cacheRef.current[query]) {\n return cacheRef.current[query];\n }\n \n if (!context?.graphClient) {\n console.warn('Graph client not available');\n return [];\n }\n \n try {\n const api =\n query && query.length > 0\n ? `/users?$filter=startswith(displayName,'${query}')`\n : `/users?$orderby=displayName&$top=10`;\n \n const response = await context.graphClient.get(api);\n const users: GraphUser[] = (response as any)?.value || [];\n \n // Use web URL if available, otherwise use default Graph photo endpoint\n const webUrl = context.pageContext?.web?.absoluteUrl || '';\n users.forEach(user => {\n if (webUrl) {\n user.avatar = `${webUrl}/_layouts/15/userphoto.aspx?size=S&accountname=${user.mail}`;\n } else {\n user.avatar = `https://graph.microsoft.com/v1.0/users/${user.id}/photo/$value`;\n }\n });\n \n cacheRef.current[query] = users;\n return users;\n } catch (error) {\n console.error('Error fetching users from Graph:', error);\n return [];\n }\n };\n\n // Debounced fetch to reduce API calls.\n const debouncedFetch = useCallback(\n debounce(async (query: string) => {\n const users = await fetchUsers(query);\n users.sort((a, b) => a.displayName.localeCompare(b.displayName));\n setSuggestions(users);\n setShowMenu(true);\n // Ensure the Textarea stays focused.\n setTimeout(() => {\n textareaRef.current?.focus();\n }, 0);\n }, 300),\n [context]\n );\n\n // Handle input change.\n const handleInputChange = async (value: string): Promise<void> => {\n setInputValue(value);\n onChange && onChange(value);\n textareaRef.current?.focus();\n\n const lastAtPos = value.lastIndexOf('@');\n if (lastAtPos !== -1 && (lastAtPos === 0 || value[lastAtPos - 1] === ' ')) {\n const searchText = value.slice(lastAtPos + 1); // use value for searchText\n await debouncedFetch(searchText);\n\n const textarea = textareaRef.current;\n if (textarea) {\n const caretPos = getCaretCoordinates(textarea, lastAtPos);\n const textareaRect = textarea.getBoundingClientRect();\n const top = textareaRect.top + caretPos.top + 22; // adjust as needed\n const left = textareaRect.left + caretPos.left + 16;\n setMenuPosition({ top, left });\n }\n } else {\n setShowMenu(false);\n }\n };\n\n // Handle suggestion selection.\n const handleItemClick = (item: string): void => {\n const updatedText = inputValue.replace(/@(\\w*)$/, `@${item} `);\n setInputValue(updatedText);\n onChange && onChange(updatedText);\n setShowMenu(false);\n setSuggestions([]);\n textareaRef.current?.focus();\n };\n\n // Render suggestion list.\n const RenderList = useCallback(\n ({ users }: { users: GraphUser[] }) => (\n <div className={styles.listContainer}>\n {users.length === 0 && <Caption1>No users found</Caption1>}\n {users.map(user => (\n <Card\n size=\"small\"\n key={user.id}\n appearance=\"subtle\"\n onMouseDown={e => e.preventDefault()} // Prevent focus loss.\n onClick={() => handleItemClick(user.mail as string)}\n >\n <Persona\n name={user.displayName}\n role=\"gridcell\"\n secondaryText={user.mail}\n avatar={{\n image: {\n src: user.avatar,\n },\n }}\n />\n </Card>\n ))}\n </div>\n ),\n [styles.listContainer, handleItemClick]\n );\n\n return (\n <Stack horizontal width={'100%'} className={styles.inputContainer} >\n <ChatInput\n ref={textareaRef}\n onSend={onSend}\n value={inputValue}\n onChange={handleInputChange}\n theme={theme}\n placeholder={placeholder}\n isRunning={isRunning}\n onAbort={onAbort}\n />\n <Popup\n theme={theme}\n anchorPoint={menuPosition}\n isOpen={showMenu}\n onClose={() => setShowMenu(false)}\n // Exclude the textarea so that clicks there do not close the popup.\n excludeRefs={[textareaRef]}\n >\n <CardHeader\n header={\n <Body1Strong className={styles.sugestionsHeader}>\n Sugestions\n </Body1Strong>\n }\n />\n <Divider />\n <RenderList users={suggestions} />\n </Popup>\n </Stack>\n );\n};\n\nexport default ChatInputWithMensionsV1;\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\nimport { ResizeObserver, ResizeObserverEntry } from '@juggle/resize-observer';\n\nimport { Center } from '../Center/Center';\nimport { debounce } from 'lodash';\nimport { useContainerStyles } from './useContainerStyles';\n\nexport interface IContainerProps {\n className?: string;\n children?: React.ReactNode;\n style?: React.CSSProperties; // Allow custom inline styles\n alignItems?: 'flex-start' | 'center' | 'flex-end' | 'stretch';\n justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around';\n flexDirection?: 'row' | 'column';\n centerContent?: boolean; // Toggle the use of the Center component\n}\n\nexport const Container: React.FC<React.PropsWithChildren<IContainerProps>> = (props) => {\n const {\n className,\n children,\n style,\n alignItems = 'center',\n justifyContent = 'center',\n flexDirection = 'row',\n centerContent = true,\n } = props;\n\n const ref = React.useRef<HTMLDivElement>(null);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const { containerStyles } = useContainerStyles(props);\n\n // Debounced resize handler\n const debouncedResize = React.useMemo(\n () =>\n debounce((entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setWidth(width);\n setHeight(height);\n }\n }, 200),\n []\n );\n\n React.useEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n debouncedResize(entries);\n });\n\n if (ref.current) {\n resizeObserver.observe(ref.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n debouncedResize.cancel();\n };\n }, [debouncedResize]);\n\n return (\n <div\n id=\"container\"\n className={className}\n style={{\n ...containerStyles(width, height),\n display: 'flex',\n justifyContent,\n alignItems,\n flexDirection,\n ...style, // Allow overriding styles via props\n }}\n ref={ref}\n >\n {centerContent ? <Center>{children}</Center> : children}\n </div>\n );\n};\n","import * as React from \"react\";\n\nimport {\n Body1Strong,\n DataGridBody,\n DataGridCell,\n DataGrid as DataGridFUI,\n DataGridHeader,\n DataGridHeaderCell,\n DataGridRow,\n Spinner,\n TableCellLayout,\n TableColumnDefinition,\n TableRowId,\n createTableColumn,\n} from \"@fluentui/react-components\";\n\nimport { IDataGridProps } from \"./IDataGridProps\";\nimport { ISortState } from \"./ISortState\";\nimport Stack from \"./stack/Stack\";\nimport { useDataGridStyles } from \"./useDataGridStyles\";\n\n// Generic DataGrid component\nexport const DataGrid = <T,>(props: IDataGridProps<T>): JSX.Element => {\n const {\n items,\n columns,\n defaultSelectedItems = [],\n enableSorting = false,\n selectionMode = \"none\",\n onSelectionChange,\n onSortChange,\n defaultSortState,\n columnSizingOptions,\n enableResizing = false,\n noItemsMessage,\n isLoadingData,\n isLoadingDataMessage,\n dataGridBodyClassName,\n dataGridBodyStyles,\n refreshData,\n } = props;\n\n const getItemIndex = (item: T): number => items.findIndex((i) => i === item);\n\n const [selectedItems, setSelectedItems] = React.useState<Set<number>>(\n new Set(defaultSelectedItems.map((item) => getItemIndex(item)))\n );\n\n const ref = React.useRef<HTMLDivElement>(null);\n const { styles } = useDataGridStyles<T>(props);\n\n React.useEffect(() => {\n if (defaultSelectedItems.length > 0) {\n setSelectedItems(\n new Set(defaultSelectedItems.map((item) => getItemIndex(item)))\n );\n }\n }, [defaultSelectedItems, items]);\n\n // deselect items if refreshing data\n React.useEffect(() => {\n if (refreshData) {\n setSelectedItems(new Set());\n }\n }, [refreshData]);\n\n // Dynamically create TableColumnDefinition array from ColumnConfig array\n const tableColumns: TableColumnDefinition<T>[] = columns.map((colConfig) =>\n createTableColumn<T>({\n columnId: colConfig.column as string,\n renderHeaderCell: () => <Body1Strong>{colConfig.header}</Body1Strong>,\n renderCell: (item) => (\n <TableCellLayout\n media={colConfig.media ? colConfig.media(item) : undefined}\n className={colConfig?.className}\n style={colConfig?.style}\n >\n {colConfig.onRender\n ? colConfig.onRender(item)\n : String(item[colConfig?.column] ?? \"\")}\n </TableCellLayout>\n ),\n compare: colConfig.order,\n })\n );\n\n // Handle selection change\n const handleSelectionChange = (\n _e: React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element>,\n data: { selectedItems: Set<TableRowId> }\n ): void => {\n const newSelectedItems = new Set<number>();\n data.selectedItems.forEach((id) => {\n const index = Number(id);\n if (!isNaN(index)) {\n newSelectedItems.add(index);\n }\n });\n setSelectedItems(newSelectedItems);\n if (onSelectionChange) {\n const selectedObjects = Array.from(newSelectedItems).map(\n (index) => items[index]\n );\n onSelectionChange(selectedObjects);\n }\n };\n\n // Handle sort change\n const handleSortChange = (\n _e: React.MouseEvent<Element>,\n sortState: ISortState\n ): void => {\n if (onSortChange) {\n onSortChange(sortState);\n }\n };\n\n const onRowClick = React.useCallback(\n (e: React.MouseEvent<HTMLTableRowElement>, item: T) => {\n e.stopPropagation();\n if (selectionMode === \"row\") {\n if (onSelectionChange) {\n onSelectionChange([item]);\n }\n }\n },\n [selectionMode, onSelectionChange]\n );\n\n const rowSelectionStyles = React.useMemo(() => {\n if (selectionMode === \"row\") {\n return styles.rowSelection;\n }\n return \"\";\n }, [selectionMode, styles.rowSelection]);\n\n const RenderDataGridBody = React.useCallback(() => {\n return (\n <DataGridBody<T> style={dataGridBodyStyles ?? {}} className={dataGridBodyClassName ?? \"\"}>\n {({ item, rowId }) => (\n <DataGridRow<T>\n key={rowId}\n className={rowSelectionStyles}\n onClick={(e: React.MouseEvent<HTMLTableRowElement>) =>\n onRowClick(e, item)\n }\n >\n {({ renderCell }: { renderCell: (item: T) => React.ReactNode }) => (\n <DataGridCell>{renderCell(item)}</DataGridCell>\n )}\n </DataGridRow>\n )}\n </DataGridBody>\n );\n }, [onRowClick, rowSelectionStyles, dataGridBodyStyles, dataGridBodyClassName]);\n\n const hasData = React.useMemo(\n () => items.length && !isLoadingData,\n [items, isLoadingData]\n );\n\n const RenderGridContent = React.useCallback(() => {\n if (isLoadingData) {\n return (\n <>\n {isLoadingDataMessage ?? (\n <Stack\n direction=\"vertical\"\n gap=\"s\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{ height: \"100%\", minHeight: 200, width: \"100%\" }}\n >\n <Spinner />\n </Stack>\n )}\n </>\n );\n }\n if (hasData) {\n return <RenderDataGridBody />;\n } else if (!isLoadingData && !items.length) {\n return <div>{noItemsMessage}</div>;\n }\n return <></>;\n }, [hasData, isLoadingData, items, noItemsMessage]);\n\n return (\n <div ref={ref}>\n <DataGridFUI\n as=\"div\"\n items={items}\n onSelectionChange={\n handleSelectionChange as (\n e:\n | React.MouseEvent<Element, MouseEvent>\n | React.KeyboardEvent<Element>,\n data: { selectedItems: Set<TableRowId> }\n ) => void\n }\n sortable={enableSorting}\n columns={tableColumns}\n selectionMode={\n selectionMode === \"none\" || selectionMode === \"row\"\n ? undefined\n : selectionMode === \"multiple\"\n ? \"multiselect\"\n : selectionMode === \"single\"\n ? \"single\"\n : undefined\n }\n selectedItems={selectedItems}\n defaultSortState={defaultSortState}\n onSortChange={handleSortChange}\n columnSizingOptions={columnSizingOptions}\n resizableColumns={enableResizing}\n resizableColumnsOptions={{ autoFitColumns: false }}\n >\n <DataGridHeader>\n <DataGridRow>\n {({ renderHeaderCell }) => (\n <DataGridHeaderCell>{renderHeaderCell()}</DataGridHeaderCell>\n )}\n </DataGridRow>\n </DataGridHeader>\n\n <RenderGridContent />\n </DataGridFUI>\n </div>\n );\n};\n","import * as React from 'react';\nimport { useState } from 'react';\n\nimport {\n Dropdown,\n Field,\n Option,\n} from '@fluentui/react-components';\nimport {\n CheckmarkCircle12Filled,\n ErrorCircle12Filled,\n Warning12Filled,\n} from '@fluentui/react-icons';\n\nimport { IDropdownFieldProps } from './IDropDownFieldProps';\nimport { IOption } from './IOption';\n\nexport const DropdownField: React.FC<IDropdownFieldProps> = ({\n options,\n onChange,\n renderItem,\n validate,\n label,\n placeholder,\n message,\n messageType,\n required,\n size,\n hint,\n}) => {\n const [selectedValue, setSelectedValue] = useState<string>(\"\");\n const [error, setError] = useState<string>(\"\");\n\n const handleSelectionChange = (_event: React.FormEvent<HTMLButtonElement>, option?: IOption): void => {\n const value = option?.value || \"\"; // Getting the selected value\n setSelectedValue(value);\n\n // Validate the selected value\n const validationError = validate ? validate(value) : \"\";\n setError(validationError);\n\n // Call the onChange callback with the selected value if valid\n if (!validationError && onChange) {\n onChange(value);\n }\n };\n\n // Memoize the validation state\n const validationState = React.useMemo(() => {\n return error ? \"error\" : messageType === \"warning\" ? \"warning\" : messageType === \"info\" ? \"success\" : \"none\";\n }, [error, messageType]); // Dependencies for memoization\n\n // Use the custom message if provided, otherwise use the validation error\n const validationMessage = React.useMemo(() => error || message, [error, message]); // Dependencies for memoization\n\n const getValidationIcon = React.useCallback(() => {\n switch (validationState) {\n case \"error\":\n return <ErrorCircle12Filled />;\n case \"warning\":\n return <Warning12Filled />;\n case \"success\":\n return <CheckmarkCircle12Filled />;\n default:\n return null;\n }\n }, [validationState]);\n\n return (\n <Field\n label={label}\n required={required}\n validationMessage={validationMessage}\n validationMessageIcon={getValidationIcon()}\n size={size}\n hint={hint}\n validationState={validationState} // Set the validation state\n >\n <Dropdown\n placeholder={placeholder} // Using the placeholder prop here\n onChange={handleSelectionChange}\n value={selectedValue}\n >\n {options.map((option) => (\n <Option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n checkIcon={option.checkIcon as React.ReactElement}\n as={option.as} // Pass additional properties to Option\n text={option.text || \"\"}\n >\n {renderItem && renderItem(option)} {/* Render the item using the renderItem function */}\n </Option>\n ))}\n </Dropdown>\n </Field>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\nimport { IGridProps } from './IGridProps';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { useGridStyles } from './useGridStyles';\n\nexport const Grid = (\n props: React.PropsWithChildren<IGridProps>\n) => {\n const { children, className } = props;\n const { gridStyles } = useGridStyles(props);\n const ref = React.useRef<HTMLDivElement>(null);\n \n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n\n React.useEffect(() => {\n let resizeObserver: ResizeObserver;\n if (ref.current) {\n // observer to detect changes in the size of the container \n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setWidth(width);\n setHeight(height);\n }\n });\n resizeObserver.observe(ref.current);\n }\n return () => {\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n }\n }, []);\n return (\n <>\n <div className={className} style={gridStyles(width, height)} ref={ref}>\n {children}\n </div>\n </>\n );\n};\n","import * as React from 'react';\n\nexport interface ILayoutItemProps {\n area?: string;\n \n}\n\nexport const LayoutItem = (props: React.PropsWithChildren<ILayoutItemProps>):JSX.Element => {\n const { area, children } = props;\n return (\n <>\n <div style={{gridArea: area, }}>{children}</div>\n </>\n );\n};","import { useCallback } from 'react';\nimport { IApplicationContext } from '../../abstractions';\nimport { useApplicationContext } from '../Provider';\nimport { IActivity } from './IActivity';\n\ninterface IOrganizedActivities {\n activities: IActivity[];\n}\n\n/**\n * Hook for SharePoint list item activities\n * This is a SharePoint-specific hook that requires SharePoint Graph API access\n * \n * Note: This component is primarily for SharePoint environments\n * For non-SharePoint apps, you'll need to implement your own activity tracking\n */\nexport const useSharePointActivities = (providedContext?: IApplicationContext) => {\n const contextFromProvider = useApplicationContext();\n const context = providedContext || contextFromProvider;\n const graphClient = context?.graphClient;\n\n const getItemActivities = useCallback(\n async (siteId: string, listId: string, itemId: string): Promise<IOrganizedActivities> => {\n if (!graphClient) {\n console.warn('Graph client not available for SharePoint activities');\n return { activities: [] };\n }\n\n try {\n // SharePoint-specific Graph API call\n // https://learn.microsoft.com/en-us/graph/api/listitem-getactivitiesbyinterval\n const response = await graphClient.get<any>(\n `/sites/${siteId}/lists/${listId}/items/${itemId}/getActivitiesByInterval(startDateTime='',endDateTime='',interval='')`\n );\n\n // Process and return activities\n if (response && response.value) {\n return {\n activities: response.value.map((item: any) => ({\n action: item.action || {},\n actor: item.actor || {},\n times: item.times || {},\n })),\n };\n }\n\n return { activities: [] };\n } catch (error) {\n console.error('Error fetching SharePoint activities:', error);\n // Re-throw to allow caller to handle throttling\n throw error;\n }\n },\n [graphClient]\n );\n\n return {\n getItemActivities,\n };\n};\n","import { Input, Textarea, webLightTheme } from '@fluentui/react-components';\nimport React, { useRef, useState } from 'react';\n\nimport { IApplicationContext } from '../../abstractions';\nimport { GraphUser } from './IMensionsProps';\nimport { Mensions } from './Mensions';\nimport { Stack } from '../Stack';\n\ninterface MensionsExampleProps {\n context?: IApplicationContext;\n}\n\n/**\n * Example component demonstrating how to use the Mensions component\n * with different input types (Input, Textarea, etc.)\n */\nexport const MensionsExample: React.FC<MensionsExampleProps> = ({ context }) => {\n const [inputValue, setInputValue] = useState('');\n const [textareaValue, setTextareaValue] = useState('');\n \n const inputRef = useRef<HTMLInputElement>(null);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n // Handle user selection for input field\n const handleInputUserSelect = (user: GraphUser, mentionChar: string): void => {\n const regex = new RegExp(`${mentionChar.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}(\\\\w*)$`);\n const updatedText = inputValue.replace(regex, `${mentionChar}${user.displayName} `);\n setInputValue(updatedText);\n \n // Keep focus on the input\n setTimeout(() => {\n inputRef.current?.focus();\n }, 0);\n };\n\n // Handle user selection for textarea\n const handleTextareaUserSelect = (user: GraphUser, mentionChar: string): void => {\n const regex = new RegExp(`${mentionChar.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}(\\\\w*)$`);\n const updatedText = textareaValue.replace(regex, `${mentionChar}${user.displayName} `);\n setTextareaValue(updatedText);\n \n // Keep focus on the textarea\n setTimeout(() => {\n textareaRef.current?.focus();\n }, 0);\n };\n\n return (\n <Stack RowGap={20}>\n <div>\n <h3>Input with @ mentions</h3>\n <Input\n ref={inputRef}\n value={inputValue}\n onChange={(_, data) => setInputValue(data.value)}\n placeholder=\"Type @ to mention someone...\"\n />\n \n <Mensions\n context={context}\n inputValue={inputValue}\n parentRef={inputRef}\n mentionChars={['@']}\n onUserSelect={handleInputUserSelect}\n theme={webLightTheme}\n suggestionsHeader=\"Mention User\"\n maxSuggestions={8}\n />\n </div>\n\n <div>\n <h3>Textarea with @ and # mentions</h3>\n <Textarea\n ref={textareaRef}\n value={textareaValue}\n onChange={(_, data) => setTextareaValue(data.value)}\n placeholder=\"Type @ to mention someone or # for tags...\"\n rows={4}\n />\n \n <Mensions\n context={context}\n inputValue={textareaValue}\n parentRef={textareaRef}\n mentionChars={['@', '#']}\n onUserSelect={handleTextareaUserSelect}\n theme={webLightTheme}\n suggestionsHeader=\"Select User or Tag\"\n maxSuggestions={10}\n userFilter={(user, query) => {\n // Custom filter: show users whose display name or email contains the query\n return user.displayName.toLowerCase().includes(query.toLowerCase()) ||\n (user.mail?.toLowerCase().includes(query.toLowerCase()) ?? false);\n }}\n />\n </div>\n </Stack>\n );\n};\n\nexport default MensionsExample;\n","import * as AC from \"adaptivecards\";\n\nimport React, { useEffect, useRef } from \"react\";\n\nimport { Template } from \"adaptivecards-templating\";\n\nexport interface RenderAdaptiveCardProps {\n // JSON definition of the Adaptive Card template\n card: any;\n // Data object to bind to the template\n data: any;\n}\n\nexport const RenderAdaptiveCard: React.FC<RenderAdaptiveCardProps> = ({ card, data }) => {\n const cardContainer = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!cardContainer.current) return;\n\n // Clear previous content if any\n cardContainer.current.innerHTML = \"\";\n\n // Create a template instance and expand it with the data.\n const template = new Template(card);\n const cardPayload = template.expand({ $root: data });\n\n // Create an AdaptiveCard instance and parse the expanded JSON.\n const adaptiveCard = new AC.AdaptiveCard();\n adaptiveCard?.parse(cardPayload);\n\n // Render the adaptive card and attach it to the container.\n const renderedCard = adaptiveCard.render();\n if (renderedCard) {\n cardContainer.current.appendChild(renderedCard);\n }\n }, [card, data]);\n\n return <div ref={cardContainer} />;\n};\n\nexport default RenderAdaptiveCard;","import * as React from 'react';\n\nimport {\n Drawer,\n DrawerBody,\n DrawerFooter,\n DrawerHeader,\n DrawerHeaderTitle,\n DrawerProps,\n} from '@fluentui/react-components/unstable';\n\ntype DrawerType = Required<DrawerProps>[\"type\"];\n\nexport interface IRenderDrawerProps {\n isOpen: boolean;\n onOpenChange?: (open: boolean) => void;\n title?: string | React.ReactNode;\n headerActions?: JSX.Element;\n footerActions?: JSX.Element;\n size?: \"small\" | \"medium\" | \"large\" | \"full\";\n separator?: boolean;\n type?: DrawerType;\n style?: React.CSSProperties;\n children: React.ReactNode;\n position?: \"start\" | \"end\";\n classNameHeader?: string;\n classNameBody?: string;\n classNameFooter?: string;\n}\n\nexport const RenderDrawer: React.FunctionComponent<IRenderDrawerProps> = (\n props: React.PropsWithChildren<IRenderDrawerProps>\n) => {\n const {\n isOpen,\n onOpenChange,\n title,\n headerActions,\n footerActions,\n size,\n separator,\n type,\n style,\n children,\n position,\n classNameHeader = \"\",\n classNameBody = \"\",\n classNameFooter = \"\",\n } = props;\n return (\n <>\n <Drawer\n type={type}\n separator={separator}\n open={isOpen}\n onOpenChange={(_ev: React.SyntheticEvent<HTMLElement>, data: { open: boolean }) => {\n if (onOpenChange) {\n onOpenChange(data.open);\n }\n }}\n size={size}\n style={style}\n position={position}\n >\n <DrawerHeader className={classNameHeader}>\n <DrawerHeaderTitle style={{ width: \"100%\" }} action={headerActions}>\n {title}\n </DrawerHeaderTitle>\n </DrawerHeader>\n <DrawerBody className={classNameBody}>{children}</DrawerBody>\n <DrawerFooter className={classNameFooter}>{footerActions}</DrawerFooter>\n </Drawer>\n </>\n );\n};\n","import * as React from \"react\";\n\nimport { Button, Caption1, Subtitle1 } from \"@fluentui/react-components\";\n\nimport { Dismiss24Regular } from \"@fluentui/react-icons\";\nimport { IRenderHeaderProps } from \"./IRenderHeaderProps\";\nimport { Icon } from \"@iconify/react\";\nimport { useRenderHeaderStyles } from \"./useRenderHeaderStyles\";\n\nexport const RenderHeader: React.FunctionComponent<IRenderHeaderProps> = (\n props: React.PropsWithChildren<IRenderHeaderProps>\n) => {\n const { onDismiss, title, description, icon, showCloseButton = true } = props;\n const styles = useRenderHeaderStyles();\n\n return (\n <>\n <div id=\"RenderHedaermain\" className={styles.renderHeaderContent}>\n <div className={styles.renderHeaderHeader}>\n <Button\n style={{ display: showCloseButton ? \"block\" : \"none\" }}\n appearance=\"subtle\"\n className={styles.closeButton}\n onClick={(ev: React.MouseEvent<HTMLButtonElement>) => {\n ev.stopPropagation();\n ev.preventDefault();\n onDismiss(false);\n }}\n icon={<Dismiss24Regular />}\n />\n\n <div className={styles.renderHeaderTitleContainer}>\n {React.isValidElement(icon) ? icon : <Icon icon={icon as string} />}\n <div className={styles.dialogTitleAndDescriptionContainer}>\n {React.isValidElement(title) ? (\n title\n ) : (\n <Subtitle1 className={styles.renderHeaderTitle}>\n {title}\n </Subtitle1>\n )}\n {React.isValidElement(description) ? (\n description\n ) : (\n <Caption1 className={styles.renderHeaderDescription}>\n {description}\n </Caption1>\n )}\n </div>\n </div>\n </div>\n <div className={styles.divider} />\n </div>\n </>\n );\n};\n","import React, { useEffect, useState } from \"react\";\n\nimport { ButtonMenu } from \"../buttonMenu/ButtonMenu\";\nimport { IButtonMenuOption } from \"../buttonMenu/IButtonMenuOption\";\nimport { Label } from \"@fluentui/react-components\";\nimport { StackV2 as Stack } from \"../stackv2\";\n\nexport interface SelectViewProps {\n onChange: (value: string) => void;\n defaultKey?: string;\n label?: string;\n options: IButtonMenuOption[]; \n}\n\n\n\nexport const SelectView: React.FC<SelectViewProps> = ({\n onChange,\n defaultKey,\n label,\n options: baseOptions = [],\n}) => {\n const [options, setOptions] = useState<IButtonMenuOption[]>(() => {\n return baseOptions.map((option) => ({\n ...option,\n selected: option.key === (defaultKey ?? \"status\"),\n }));\n });\n\n useEffect(() => {\n const selectedOption = options.find((opt) => opt.selected);\n if (selectedOption) {\n onChange(selectedOption.key);\n }\n }, []); // Run once on mount\n\n const handleSelect = React.useCallback((selected: IButtonMenuOption) => {\n const updatedOptions = options.map((option) => ({\n ...option,\n selected: option.key === selected.key,\n }));\n setOptions(updatedOptions);\n onChange(selected.key);\n }, [options, onChange]);\n\n return (\n <Stack gap=\"s\" alignItems=\"center\" >\n {label && <Label>{label}</Label>}\n <ButtonMenu options={options} onSelected={handleSelect} styles={{width: 220}} />\n </Stack>\n );\n};\n\nexport default SelectView;\n","import * as React from 'react';\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { RenderDialog } from '../renderDialog';\n\ninterface IEventData {\n name: string;\n command: string;\n width: number;\n height: number;\n}\n\ninterface IDialogOptions {\n siteUrl?: string;\n listId?: string;\n itemId?: string | number;\n name?: string;\n}\n\ninterface ShareDialogProps {\n isOpen: boolean;\n options: IDialogOptions;\n onClose: () => void;\n}\n\nexport const ShareDialog: React.FC<ShareDialogProps> = ({ isOpen, options, onClose }) => {\n const [dialogUrl, setDialogUrl] = useState<string | undefined>(undefined);\n console.log(dialogUrl);\n const iframeRef = useRef<HTMLIFrameElement>(null);\n const [iFrameHeight, setIFrameHeight] = useState<number>(400);\n\n const { siteUrl, listId, itemId, name } = options;\n\n const closeDialog = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const handleIframeMessage = useCallback(\n (event: MessageEvent) => {\n if (event.origin !== window.location.origin) return;\n\n console.log(\"Message from iframe:\", event.data);\n const { name, height } = JSON.parse(event.data) as IEventData;\n switch (name) {\n case \"share_dismiss\":\n closeDialog();\n break;\n case \"share_resize\":\n setIFrameHeight(height);\n break;\n case \"share_scriptsLoaded\":\n break;\n case \"share_uiReady\":\n break;\n case \"share_ready\":\n break;\n default:\n break;\n }\n },\n [closeDialog]\n );\n\n useEffect(() => {\n window.addEventListener(\"message\", handleIframeMessage);\n return () => {\n window.removeEventListener(\"message\", handleIframeMessage);\n };\n }, [handleIframeMessage]);\n\n useEffect(() => {\n if (isOpen) {\n const clientId = \"sharePoint\";\n const policyTip = 0;\n const folderColor = \"\";\n const clickTime = new Date().getTime();\n const fullScreenMode = false;\n const origin = encodeURIComponent(window.location.origin);\n const encodeName = encodeURIComponent(name as string);\n\n const url =\n `${siteUrl}/_layouts/15/sharedialog.aspx` +\n `?listId=${listId}` +\n `&listItemId=${itemId}` +\n `&clientId=${clientId}` +\n `&policyTip=${policyTip}` +\n `&folderColor=${folderColor}` +\n `&clickTime=${clickTime}` +\n `&ma=0` +\n `&fullScreenMode=${fullScreenMode}` +\n `&itemName= ${encodeName}` +\n `&channelId=` +\n `&origin=${origin}`;\n console.log(url);\n setDialogUrl(url);\n } else {\n setDialogUrl(undefined);\n }\n }, [isOpen, siteUrl, listId, itemId]);\n\n return (\n <RenderDialog isOpen={isOpen} onDismiss={closeDialog} maxHeight={\"fit-content\"}>\n \n <iframe\n ref={iframeRef}\n src={dialogUrl || \"\"}\n style={{ width: \"100%\", height: iFrameHeight, border: \"none\" }}\n onLoad={() => console.log(\"Iframe loaded\")}\n />\n </RenderDialog>\n );\n};\n","import { Body1, Card, Title3 } from \"@fluentui/react-components\";\n\nimport { ErrorCircleRegular } from \"@fluentui/react-icons\";\nimport { IErrorDisplayProps } from \"./IErrorDisplayProps\";\nimport React from \"react\";\nimport { StackV2 as Stack } from \"../stackv2\";\nimport { useShowErrorStyles } from \"./useShowErrorStyles\";\n\nexport const ShowError: React.FC<IErrorDisplayProps> = ({ title, message }) => {\n const styles = useShowErrorStyles();\n return (\n <Card className={styles.container}>\n <Stack gap=\"l\" alignItems=\"center\">\n <ErrorCircleRegular className={styles.icon} />\n\n <Stack gap=\"s\" alignItems=\"center\">\n <Title3 className={styles.title}>{title}</Title3>\n <Body1 className={styles.message}>{message}</Body1>\n </Stack>\n </Stack>\n </Card>\n );\n};\n\nexport default ShowError;\n","import * as React from 'react';\nimport {ResizeObserver} from '@juggle/resize-observer';\nimport { ISpaceProps } from './ISpaceProps';\nimport { useSpaceStyles } from './useSpaceStyles';\n \nexport const Space = (\n props: React.PropsWithChildren<ISpaceProps>\n) :JSX.Element => {\n \n\n const ref = React.useRef<HTMLDivElement>(null);\n const [width, setWidth] = React.useState(0);\n \n const {spaceStyles } = useSpaceStyles(props);\n \n React.useEffect(() => {\n let resizeObserver:ResizeObserver ; \n if (ref.current) {\n // observer to detect changes in the size of the container \n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, } = entry.contentRect;\n setWidth(width);\n \n }\n });\n resizeObserver.observe(ref.current);\n }\n return () => {\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n }\n }, []);\n \n \n return (\n <>\n <div id=\"-space\" style={spaceStyles(width, )} ref={ref} >\n \n </div>\n </>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\nimport { ResizeObserver } from '@juggle/resize-observer';\n\nimport { IBaseProps } from '../baseComponentProps/IBaseProps';\nimport { useComponentUtils } from '../../utils';\n\nexport interface IStackItemProps extends IBaseProps {\n grow?: boolean | number;\n disableShrink?: boolean;\n shrink?: boolean | number | \"inherit\" | \"initial\" | \"unset\";\n alignSelf?: \"auto\" | \"flex-start\" | \"flex-end\" | \"center\" | \"baseline\" | \"stretch\";\n order?: number;\n verticalFill?: boolean;\n}\n\nexport const StackItem = (\n props: React.PropsWithChildren<IStackItemProps>\n) => {\n const { children, grow, disableShrink, shrink, order, alignSelf, verticalFill } = props;\n const { getBaseStyles } = useComponentUtils();\n const ref = React.useRef<HTMLDivElement>(null);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n\n const baseStyles = getBaseStyles(props, width, height);\n\n React.useEffect(() => {\n let resizeObserver: ResizeObserver;\n if (ref.current) {\n // observer to detect changes in the size of the container\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n setWidth(width);\n setHeight(height);\n }\n });\n resizeObserver.observe(ref.current);\n }\n return () => {\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n }\n }, []);\n\n const styles: React.CSSProperties = {\n ...baseStyles,\n alignSelf: alignSelf,\n order: order,\n height: verticalFill ? \"100%\" : \"auto\",\n flexGrow: grow ? (typeof grow === \"boolean\" ? 1 : grow) : undefined,\n flexShrink: disableShrink || (!grow && !shrink) ? 0 : 1,\n minWidth: 0,\n minHeight: 0,\n width: \"auto\",\n \n };\n\n return (\n <>\n <div ref={ref} style={styles}>\n {children}\n </div>\n </>\n );\n};\n","import {\n Button,\n Popover,\n PopoverSurface,\n PopoverTrigger\n} from '@fluentui/react-components';\nimport React, { useMemo } from 'react';\n\nimport { IStackedUsersProps } from './IStackedUsersProps';\nimport { StackV2 as Stack } from '../stackv2';\nimport { UserCard } from '../userCard/UserCard';\nimport { useStackedUsersStyles } from './useStackedUsersStyles';\n\n/**\n * StackedUsers Component\n * \n * A component that displays user in a stacked layout similar to AvatarGroup (FUI 9),\n * with popover functionality for overflow users. Uses the existing UserCard component\n * for consistent styling and behavior.\n */\nexport const StackedUsers: React.FC<IStackedUsersProps> = ({\n users,\n maxVisible = 5,\n avatarSize = 32,\n showHoverCard = true,\n context,\n className,\n layout = \"stack\",\n overflowText,\n}) => {\n const styles = useStackedUsersStyles();\n\n // Split users into visible and overflow arrays\n const { visibleUsers, overflowUsers } = useMemo(() => {\n if (!users || users.length === 0) {\n return { visibleUsers: [], overflowUsers: [] };\n }\n\n const visible = users.slice(0, maxVisible);\n const overflow = users.slice(maxVisible);\n \n return {\n visibleUsers: visible,\n overflowUsers: overflow,\n };\n }, [users, maxVisible]);\n\n // Generate overflow text\n const displayOverflowText = useMemo(() => {\n if (overflowText) return overflowText;\n return `+${overflowUsers.length}`;\n }, [overflowText, overflowUsers.length]);\n \n // Don't render if no users\n if (!users || users.length === 0) {\n return null;\n }\n\n return (\n <Stack \n direction=\"horizontal\"\n alignItems=\"start\" \n gap={layout === \"stack\" ? \"4px\" : \"12px\"}\n className={`${layout === \"stack\" ? styles.stackLayout : styles.spreadLayout} ${className || ''}`}\n >\n {/* Render visible users */}\n {visibleUsers.map((user, index) => (\n <div \n key={`user-${user.id || index}`} \n className={styles.userCardWrapper}\n >\n <UserCard\n userId={user.id}\n avatarSize={avatarSize}\n showHoverCard={showHoverCard ?? true}\n context={context}\n avatarOnly={true} // Show only avatar in stacked layout\n />\n </div>\n ))}\n\n {/* Render overflow button with popover if there are overflow users */}\n {overflowUsers.length > 0 && (\n <Popover withArrow>\n <PopoverTrigger disableButtonEnhancement>\n <Button \n className={styles.overflowButton}\n style={{\n width: `${avatarSize}px`,\n height: `${avatarSize}px`,\n fontSize: avatarSize > 40 ? \"14px\" : \"12px\",\n }}\n appearance=\"subtle\"\n >\n {displayOverflowText}\n </Button>\n </PopoverTrigger>\n \n <PopoverSurface className={styles.popover}>\n <div className={styles.popoverUserList}>\n {overflowUsers.map((user, index) => (\n <div \n key={`overflow-user-${user.id || index}`}\n className={styles.popoverUserCard}\n >\n <UserCard\n userId={user.id}\n avatarSize={32} // Fixed size for popover\n showHoverCard={showHoverCard ?? true}\n context={context}\n textPosition=\"after\" // Show text in popover\n avatarOnly={false} // Show full info in popover\n />\n </div>\n ))}\n </div>\n </PopoverSurface>\n </Popover>\n )}\n </Stack>\n );\n};\n\nexport default StackedUsers;\n","import { css } from '@emotion/css';\nimport { tokens } from \"@fluentui/react-components\";\n\nexport interface IStackedUsersCardStyles {\n container: string;\n stackLayout: string;\n spreadLayout: string;\n userCardWrapper: string;\n overflowButton: string;\n popover: string;\n popoverUserList: string;\n popoverUserCard: string;\n}\n\nexport const useStackedUsersStyles = (): IStackedUsersCardStyles => ({\n container: css({\n display: \"flex\",\n alignItems: \"center\",\n gap: \"4px\",\n }),\n \n stackLayout: css({\n \"& > *:not(:first-child)\": {\n marginLeft: \"-8px\", // Overlap for stacked effect\n },\n }),\n \n spreadLayout: css({\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"8px\",\n \"& > *\": {\n marginLeft: \"0\", // No overlap for spread layout\n },\n }),\n \n userCardWrapper: css({\n position: \"relative\",\n zIndex: 1,\n transition: \"transform 0.2s ease, z-index 0.2s ease\",\n \n \"&:hover\": {\n transform: \"scale(1.1)\",\n zIndex: 10,\n },\n }),\n \n overflowButton: css({\n backgroundColor: tokens.colorNeutralBackground1,\n border: `2px solid ${tokens.colorNeutralStroke1}`,\n borderRadius: \"50%\",\n color: tokens.colorNeutralForeground1,\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: \"12px\",\n fontWeight: 600,\n minWidth: \"32px\",\n minHeight: \"32px\",\n position: \"relative\",\n zIndex: 1,\n transition: \"all 0.2s ease\",\n \n \"&:hover\": {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n /* transform: \"scale(1.1)\", */\n zIndex: 10,\n },\n }),\n \n popover: css({\n maxWidth: \"300px\",\n padding: \"12px\",\n }),\n \n popoverUserList: css({\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n }),\n \n popoverUserCard: css({\n padding: \"4px\",\n borderRadius: \"4px\",\n transition: \"background-color 0.2s ease\",\n \n \"&:hover\": {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n },\n }),\n});\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\nimport {\n Button,\n mergeClasses,\n} from '@fluentui/react-components';\n\nimport React from 'react';\nimport ReactPlayer from 'react-player';\nimport { useState } from 'react';\nimport { useVideoStyles } from './useVideoStyles';\n\nexport interface IVideoPlayerProps {\n // ReactPlayerProps.ts\n\n url: string | string[] | MediaStream;\n playing?: boolean;\n loop?: boolean;\n controls?: boolean;\n volume?: number;\n muted?: boolean;\n playbackRate?: number;\n width?: string | number;\n height?: string | number;\n style?: React.CSSProperties;\n progressInterval?: number;\n playsinline?: boolean;\n pip?: boolean;\n stopOnUnmount?: boolean;\n light?: boolean | string;\n playIcon?: React.ReactElement;\n previewTabIndex?: number;\n fallback?: React.ReactElement;\n oEmbedUrl?: string;\n wrapper?: React.ElementType;\n config?: {\n youtube?: {\n playerVars?: Record<string, unknown>;\n embedOptions?: Record<string, unknown>;\n onUnstarted?: () => void;\n };\n facebook?: {\n appId?: string;\n };\n soundcloud?: {\n options?: Record<string, unknown>;\n };\n vimeo?: {\n playerOptions?: Record<string, unknown>;\n };\n file?: {\n attributes?: Record<string, unknown>;\n tracks?: {\n kind: string;\n src: string;\n srcLang?: string;\n default?: boolean;\n label?: string;\n }[];\n forceVideo?: boolean;\n forceAudio?: boolean;\n forceHLS?: boolean;\n forceDASH?: boolean;\n forceFLV?: boolean;\n hlsOptions?: Record<string, unknown>;\n hlsVersion?: string;\n dashVersion?: string;\n flvVersion?: string;\n };\n wistia?: {\n options?: Record<string, unknown>;\n };\n mixcloud?: {\n options?: Record<string, unknown>;\n };\n dailymotion?: {\n params?: Record<string, unknown>;\n };\n vidyard?: {\n options?: Record<string, unknown>;\n };\n kaltura?: {\n options?: Record<string, unknown>;\n };\n twitch?: {\n options?: Record<string, unknown>;\n playerId?: string;\n };\n streamable?: {\n options?: Record<string, unknown>;\n };\n };\n onReady?: (player: any) => void;\n onStart?: () => void;\n onPlay?: () => void;\n onEnablePIP?: () => void;\n onDisablePIP?: () => void;\n onPause?: () => void;\n onBuffer?: () => void;\n onBufferEnd?: () => void;\n onSeek?: (seconds: number) => void;\n onEnded?: () => void;\n onError?: (error: any, data?: any, hlsInstance?: any, hlsGlobal?: any) => void;\n onClickPreview?: () => void;\n onEnableControls?: () => void;\n onDisableControls?: () => void;\n onDuration?: (duration: number) => void;\n onProgress?: (state: { played: number; playedSeconds: number; loaded: number; loadedSeconds: number }) => void;\n}\n\nexport const VideoPlayer = (props: IVideoPlayerProps) => {\n const { url, controls = true, width = \"100%\", height = \"100%\", loop = false, muted = false } = props;\n const [playing, setPlaying] = useState(false);\n const classes = useVideoStyles(props);\n\n const handlePlayPause = () => {\n setPlaying(!playing);\n };\n\n return (\n <div className={classes.videoPlayerContainer}>\n <ReactPlayer\n url={url}\n controls={controls}\n width={width}\n height={height}\n playing={playing}\n loop={loop}\n muted={muted}\n onPause={() => setPlaying(false)}\n onPlay={() => setPlaying(true)}\n className={classes.reactPlayer}\n />\n {!playing && (\n <Button className={mergeClasses(classes.playButton)} onClick={handlePlayPause}>\n ►\n </Button>\n )}\n </div>\n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport * as React from 'react';\n\nimport { IAspectRatioProps } from './IAspectRationProps';\nimport { useComponentUtils } from '../../utils';\n\nexport const useAspectRatioStyles = (props: IAspectRatioProps) => {\n const { styles } = props;\n\n const { getBaseStyles } = useComponentUtils();\n const aspectRatioStyles = React.useCallback(\n (containerWidth: number, containerHeight: number): React.CSSProperties => {\n \n const baseStyles = getBaseStyles(props, containerWidth, containerHeight);\n return {\n ...baseStyles,\n ...styles,\n \n };\n },\n [getBaseStyles, props, styles]\n );\n\n return { aspectRatioStyles };\n};\n","import { differenceInDays, parseISO } from \"date-fns\";\n\nimport { useTimeZoneHelper } from \"../hooks/useTimeZoneHelper\";\n\nexport const useDateUtils = (locale: string, timezone: string, _spCultureName?: string) => {\n const { getFormatRelative, formatDate } = useTimeZoneHelper(timezone, locale);\n \n const formatUtcDate = (utcdate: string, format: string = \"PP\"): string => {\n const diffDays = differenceInDays(new Date(), parseISO(utcdate));\n let result = \"\";\n if (utcdate !== undefined) {\n if (diffDays > 7) {\n result = formatDate(utcdate, format);\n } else {\n result = getFormatRelative(utcdate);\n }\n }\n return result;\n };\n\n const formatTime = (time: Date): string => {\n\n return time.toLocaleTimeString(locale, { timeZone: timezone });\n };\n\n /**\n * Converts a date from a specified time zone to a UTC Date.\n * @param {string | Date} dateInput - The input date (as an ISO string or Date object).\n * @param {string} timeZone - A valid IANA time zone identifier (e.g., \"America/New_York\").\n * @returns {Date} - The UTC Date corresponding to the input date in the given time zone.\n */\nconst convertDateToUTC = (dateInput: string | Date, ): Date => {\n // Create a Date object from the input.\n const date = typeof dateInput === 'string' ? new Date(dateInput) : dateInput;\n \n // Create a formatter that outputs parts in the target time zone.\n const formatter = new Intl.DateTimeFormat(locale, {\n timeZone: timezone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n });\n \n // Extract formatted parts.\n const parts = formatter.formatToParts(date);\n let year, month, day, hour, minute, second;\n for (const part of parts) {\n switch (part.type) {\n case 'year':\n year = part.value;\n break;\n case 'month':\n month = part.value;\n break;\n case 'day':\n day = part.value;\n break;\n case 'hour':\n hour = part.value;\n break;\n case 'minute':\n minute = part.value;\n break;\n case 'second':\n second = part.value;\n break;\n default:\n break;\n }\n }\n \n // Construct an ISO string in UTC by appending 'Z'.\n const utcString = `${year}-${month}-${day}T${hour}:${minute}:${second}Z`;\n return new Date(utcString);\n}\n\n return { formatUtcDate, formatTime, convertDateToUTC };\n}","import { User } from '@microsoft/microsoft-graph-types';\nimport { useApplicationContext } from '../components/Provider';\nimport { useCallback } from 'react';\n\n/**\n * Hook for Microsoft Graph API operations\n * Uses the graph client from the application context\n */\nexport const useGraphAPI = () => {\n const context = useApplicationContext();\n const graphClient = context?.graphClient;\n\n const getUser = useCallback(async (userId: string): Promise<User | null> => {\n if (!graphClient) {\n console.warn('Graph client not available');\n return null;\n }\n\n try {\n return await graphClient.get<User>(`/users/${userId}`);\n } catch (error) {\n console.error('Error fetching user:', error);\n return null;\n }\n }, [graphClient]);\n\n const getCurrentUser = useCallback(async (): Promise<User | null> => {\n if (!graphClient) {\n console.warn('Graph client not available');\n return null;\n }\n\n try {\n return await graphClient.get<User>('/me');\n } catch (error) {\n console.error('Error fetching current user:', error);\n return null;\n }\n }, [graphClient]);\n\n const searchUsers = useCallback(async (query: string, top: number = 10): Promise<User[]> => {\n if (!graphClient) {\n console.warn('Graph client not available');\n return [];\n }\n\n try {\n const result = await graphClient.get<{ value: User[] }>(\n `/users?$search=\"displayName:${query}\" OR \"mail:${query}\"&$top=${top}`\n );\n return result.value || [];\n } catch (error) {\n console.error('Error searching users:', error);\n return [];\n }\n }, [graphClient]);\n\n const getUserPhoto = useCallback(async (userId: string): Promise<string | null> => {\n if (!graphClient) {\n console.warn('Graph client not available');\n return null;\n }\n\n try {\n const photoBlob = await graphClient.get<Blob>(`/users/${userId}/photo/$value`);\n return URL.createObjectURL(photoBlob);\n } catch (error) {\n console.error('Error fetching user photo:', error);\n return null;\n }\n }, [graphClient]);\n\n return {\n getUser,\n getCurrentUser,\n searchUsers,\n getUserPhoto,\n graphClient,\n };\n};\n\n/**\n * User information interface for convenience\n */\nexport interface IUserInfo {\n displayName?: string;\n email?: string;\n jobTitle?: string;\n officeLocation?: string;\n mobilePhone?: string;\n businessPhones?: string[];\n}\n","import { IUseStyles } from './ChatInputWithMensionsV1';\nimport { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useStyles = (): IUseStyles => ({\n inputContainer: css({\n marginTop: 'auto',\n marginLeft: 'auto',\n // Pseudo-element for focus bottom border:\n \"::after\": {\n content: '\"\"',\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n borderBottom: `2px solid transparent`,\n pointerEvents: \"none\",\n borderRadius: tokens.borderRadiusMedium,\n },\n }),\n listContainer: css({\n maxHeight: '400px',\n overflowY: 'auto',\n overflowX: 'hidden',\n\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n }),\n sugestionsHeader: css({\n color: tokens.colorBrandBackground,\n }),\n});\n","import { useMemo } from 'react';\n// @ts-ignore - date-fns-tz has type definition issues with package.json exports\nimport { format, toZonedTime, fromZonedTime } from 'date-fns-tz';\nimport { useApplicationContext } from '../components/Provider';\n\n/**\n * Hook for timezone helper functions\n * Uses timezone information from the application context\n */\nexport const useTimeZoneHelper = () => {\n const context = useApplicationContext();\n \n // Get timezone from context or use browser default\n const timeZone = useMemo(() => {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n }, []);\n\n const convertToUserTimeZone = (date: Date, targetTimeZone?: string): Date => {\n const tz = targetTimeZone || timeZone;\n return toZonedTime(date, tz);\n };\n\n const convertFromUserTimeZone = (date: Date, sourceTimeZone?: string): Date => {\n const tz = sourceTimeZone || timeZone;\n return fromZonedTime(date, tz);\n };\n\n const formatInTimeZone = (\n date: Date,\n formatStr: string,\n targetTimeZone?: string\n ): string => {\n const tz = targetTimeZone || timeZone;\n return format(toZonedTime(date, tz), formatStr, { timeZone: tz });\n };\n\n const getUserTimeZone = (): string => {\n // Check if user has a preferred timezone in context\n if (context?.pageContext?.user?.preferUserTimeZone) {\n return timeZone;\n }\n return timeZone;\n };\n\n return {\n timeZone,\n convertToUserTimeZone,\n convertFromUserTimeZone,\n formatInTimeZone,\n getUserTimeZone,\n };\n};\n"],"names":["EBreakPoints","EMessageType","ApplicationContext","createContext","useApplicationContext","useContext","useLogging","context","logger","loggingProvider","log","message","level","LogLevel","Info","data","console","error","err","errorType","warn","info","verbose","debug","ErrorType","useIndexedDBCache","storage","storageProvider","getCachedData","useCallback","async","key","get","setCachedData","value","expirationInMinutes","set","removeCachedData","remove","clearCache","clear","usePolling","callback","interval","immediate","isPolling","setIsPolling","useState","intervalRef","useRef","callbackRef","useEffect","current","startPolling","setInterval","stopPolling","clearInterval","useComponentUtils","getCacheKey","React","uniqueId","validateUrl","url","URL","e","trimBeginDoubleSlash","charAt","substring","length","isValidGUID","str","regex","RegExp","test","getPageNameFromUrl","urlParts","split","getSPSiteAbsoluteUrl","absolutefileUrl","hostname","window","location","rootSiteUrl","indexOf","webName","webAbsoluteUrl","getFileServerRelativeUrlFromAbsoluteUrl","absoluteFileUrl","fileServerRelativeUrl","encodeRestUrl","query","encodeURIComponent","replace","checkValueBreakPoint","Object","prototype","hasOwnProperty","call","getProperty","obj","toString","toLowerCase","getCurrentDevice","containerWidth","XXXLarge","ExtraExtraLarge","ExtraLarge","Number","Large","Medium","Small","getSpacingBreakPoint","device","breakPoints","ExtraSmall","newValue","getSpacing","type","newType","spacingTokens","padding","vertical","horizontal","tokens","getBaseStyles","baseProps","_containerHeight","verticalSpacing","horizontalSpacing","paddingLeft","paddingRight","paddingBottom","background","width","maxWidth","height","maxHeight","marginLeft","marginRight","marginTop","marginBottom","paddingTop","margin","styles","wpaddingTop","wpaddingLeft","wpaddingRight","wpaddingBottom","wpadding","wmarginLeft","wmarginRight","wmarginTop","wmarginBottom","wmargin","gap","overflow","getLayoutBreakPoint","buildFormatLongFn","args","options","arguments","String","defaultWidth","format","formats","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","Array","isArray","findIndex","pattern","findKey","valueCallback","rest","slice","object","predicate","array","buildMatchPatternFn","parseResult","parsePattern","_typeof","o","Symbol","iterator","constructor","toInteger","dirtyNumber","NaN","number","isNaN","Math","ceil","floor","requiredArgs","required","TypeError","toDate","argument","argStr","Date","getTime","Error","stack","defaultOptions","getDefaultOptions","startOfUTCWeek","dirtyDate","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","locale","RangeError","date","day","getUTCDay","diff","setUTCDate","getUTCDate","setUTCHours","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","code","formatDistance","token","count","result","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parseInt","any","index","firstWeekContainsDate","isSameUTCWeek","dirtyDateLeft","dirtyDateRight","dateLeftStartOfWeek","dateRightStartOfWeek","standalone","withPreposition","monthValues","formattingMonthValues","formatRelativeLocalePlural","getUTCHours","form","unit","includes","weekdays","thisWeek","baseDate","_lastWeek","_nextWeek","oneWithSuffix","otherWithSuffix","concat","weekday","checkWeek","localeMap","en-US","enUS","es-ES","es","fr-FR","fr","de-DE","de","it-IT","it","pt-BR","pt","pt-PT","ja-JP","ja","ko-KR","ko","zh-CN","useTimeZoneHelper","timezone","currentLocale","getFormatRelative","dateObj","parseISO","formatDistanceToNow","convertDateToUTC","toUTCString","formatDate","formatString","getTimezoneOffset","convertToTimezone","tz","targetTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","toLocaleString","DEBUG","process","env","NODE_ENV","debounce","func","wait","timeout","this","clearTimeout","setTimeout","apply","useCardStyles","props","cardStyles","containerHeight","bodyCardDefaultStyles","useMemo","display","flexDirection","justifyContent","alignItems","Card","className","cardBody","cardBodyClassName","cardHeader","cardHeaderClassName","cardHeaderImage","cardHeaderAction","cardHeaderDescription","cardFooterAction","cardFooterClassName","cardFooterContent","cardPreviewImage","cardPreviewLogo","cardPreviewPosition","ref","setWidth","setHeight","resizeObserver","ResizeObserver","entries","entry","contentRect","observe","disconnect","jsx","Fragment","children","jsxs","CarFUI","style","CardPreview","logo","CardHeader","image","header","description","action","mergeClasses","CardFooter","useGridStyles","cols","gridItemAutoFlow","minItemWidth","gridStyles","baseStyles","wgap","gridTemplateColumns","numberCols","min","useLayoutStyles","maxWith","rootStyles","LayoutWidth","LayoutHeight","layoutGridStyles","css","defaultLayoutConfig","areas","columns","rows","useSpaceStyles","spaceStyles","useStackStyles","horizontalAlign","verticalAlign","verticalFill","wrap","columnGap","RowGap","stackStyles","alignValue","justifyValue","wflexFlow","flexFlow","rowGap","Stack","useCenterStyles","centerStyles","childrenStyles","textAlign","Center","debouncedResize","delay","id","useContainerStyles","containerStyles","usePrevNextButtons","emblaApi","prevBtnDisabled","setPrevBtnDisabled","nextBtnDisabled","setNextBtnDisabled","onPrevButtonClick","scrollPrev","onNextButtonClick","scrollNext","onSelect","canScrollPrev","canScrollNext","on","useCarouselStyles","_props","slideSizeBasedOnWidth","slideSize","getSlideSpacing","deviceSize","slideSpacing","spacingVerticalM","spacingVerticalL","spacingVerticalXL","enableControls","embla__viewport","embla__container","backfaceVisibility","touchAction","embla",".embla","embla__slide","minWidth","flex","embla__buttons","useCarouselStylesMain","carouselStyles","useStyle","makeStyles","titleStyles","textOverflow","-webkit-line-clamp","-webkit-box-orient","Popup","anchorPoint","isOpen","onClose","excludeRefs","theme","popupRef","position","setPosition","card","zIndex","useLayoutEffect","rect","getBoundingClientRect","newLeft","left","newTop","top","innerWidth","innerHeight","handleClickOutside","target","contains","some","document","addEventListener","handleEscapeKey","removeEventListener","ReactDOM","createPortal","FluentProvider","teamsLightTheme","body","sizeMap","xs","spacingHorizontalXS","s","spacingHorizontalS","m","spacingHorizontalM","l","spacingHorizontalL","xl","spacingHorizontalXL","xxl","spacingHorizontalXXL","StackV2","memo","direction","stackStyle","flexWrap","backgroundColor","useRenderLabelStyles","labelContainer","shorthands","iconStyles","item","RenderLabel","label","icon","isRequired","isValidElement","Icon","color","colorBrandForeground1","Caption1","colorPaletteRedForeground1","useStyles","root","spinner","fontSizeMap","fontSizeBase200","fontSizeBase300","fontSizeBase400","fontSizeBase500","fontSizeBase600","fontSizeHero700","spacingMap","fontWeightMap","regular","fontWeightRegular","semibold","fontWeightSemibold","bold","fontWeightBold","ButtonMenu","onSelected","apparence","shape","iconSelectedRef","selectedOption","setSelectedOption","checkedValues","setCheckedValues","option","_a","fieldRef","find","open","setOpen","onOpenChange","_e","getOptionLabel","text","onCheckedValueChange","name","checkedItems","newOption","Field","Menu","MenuTrigger","disableButtonEnhancement","MenuButton","appearance","MenuPopover","MenuList","_b","offsetWidth","map","MenuItemRadio","disabled","useBreadcrumStyles","container","alignContent","whiteSpace","breadcrumbItem","separator","getStyles","size","fontSize","fontWeight","cursor","wordBreak","fontFamily","fontFamilyBase","OverflowMenu","items","showDropdown","setShowDropdown","buttonRef","dropdownRef","dropdownStyles","setDropdownStyles","handleOutsideClick","event","Button","MoreHorizontalRegular","onClick","buttonRect","viewportWidth","viewportHeight","dropdownWidth","dropdownHeight","offsetHeight","bottom","scrollY","scrollX","prev","Text","useUtils","getSpanSlots","start","end","startDate","endDate","startSlot","getHours","getMinutes","endSlot","spanSlots","generateLightAndHoverColors","baseColor","lightnessIncrease","hoverIncrease","hslToHex","h","a","f","n","k","max","round","padStart","hex","r","g","b","delta","hexToHsl","lightColor","hoverColor","getEventColors","category","defaultColors","colorNeutralBackground3","colorNeutralBackground3Hover","no category","meeting","colorPaletteBlueBackground2","colorPaletteBlueBorderActive","appointment","colorPaletteGreenBackground2","colorPaletteGreenBorderActive","task","colorPaletteRedBackground2","colorPaletteRedBorderActive","deadline","colorPaletteYellowBackground2","colorPaletteYellowBorderActive","holiday","colorPalettePurpleBackground2","colorPalettePurpleBorderActive","celebration","colorPaletteDarkOrangeBackground2","colorPaletteDarkOrangeBorderActive","reminder","colorPaletteTealBackground2","colorPaletteTealBorderActive","workshop","webinar","colorPaletteMagentaBackground2","colorPaletteMagentaBorderActive","conference","colorPaletteBrownBackground2","colorPaletteBrownBorderActive","generateColor","hash","i","charCodeAt","c","toUpperCase","getCalendarColors","colorName","calendarColorMap","beige","colorPaletteBeigeBackground2","colorPaletteBeigeBorderActive","blue","brown","gold","colorPaletteGoldBackground2","colorPaletteGoldBorderActive","lavender","colorPaletteLavenderBackground2","colorPaletteLavenderBorderActive","magenta","navy","colorPaletteNavyBackground2","colorPaletteNavyBorderActive","pink","colorPalettePinkBackground2","colorPalettePinkBorderActive","plum","colorPalettePlumBackground2","colorPalettePlumBorderActive","purple","red","teal","anchor","colorPaletteAnchorBackground2","colorPaletteAnchorBorderActive","dark-red","colorPaletteDarkRedBackground2","colorPaletteDarkRedBorderActive","cranberry","colorPaletteCranberryBackground2","colorPaletteCranberryBorderActive","pumpkin","colorPalettePumpkinBackground2","colorPalettePumpkinBorderActive","peach","colorPalettePeachBackground2","colorPalettePeachBorderActive","marigold","colorPaletteMarigoldBackground2","colorPaletteMarigoldBorderActive","brass","colorPaletteBrassBackground2","colorPaletteBrassBorderActive","forest","colorPaletteForestBackground2","colorPaletteForestBorderActive","seafoam","colorPaletteSeafoamBackground2","colorPaletteSeafoamBorderActive","dark-green","colorPaletteDarkGreenBackground2","colorPaletteDarkGreenBorderActive","light-teal","colorPaletteLightTealBackground2","colorPaletteLightTealBorderActive","steel","colorPaletteSteelBackground2","colorPaletteSteelBorderActive","royal-blue","colorPaletteRoyalBlueBackground2","colorPaletteRoyalBlueBorderActive","cornflower","colorPaletteCornflowerBackground2","colorPaletteCornflowerBorderActive","grape","colorPaletteGrapeBackground2","colorPaletteGrapeBorderActive","lilac","colorPaletteLilacBackground2","colorPaletteLilacBorderActive","mink","colorPaletteMinkBackground2","colorPaletteMinkBorderActive","platinum","colorPalettePlatinumBackground2","colorPalettePlatinumBorderActive","dateISO","dateFormat","defaultEventDetailsPopoverStrings","attendees","details","RenderProperty","fieldLabel","fieldValue","Body1","EventDetailsPopover","strings","title","weblink","banner","fieldContainer","lineClamp","WebkitBoxOrient","WebkitLineClamp","formatedStartDate","formatedEndDate","partitionedItems","partitionAvatarGroupItems","attendee","getAttendee","RenderAttendees","AvatarGroup","layout","inlineItems","AvatarGroupItem","src","imageUrl","overflowItems","AvatarGroupPopover","Subtitle1","Divider","Badge","useCalendarStyles","calendarWrapper","gridTemplateRows","gridAutoRows","dayHeader","borderBottom","colorNeutralStroke1","border","colorNeutralBackground1","otherMonthDay","colorNeutralStroke2","colorNeutralBackground2","cardDay","minHeight","borderRadius","cardDayOnHover",":hover","currentDay","borderTop","colorBrandBackground","currentDayLabel","eventCard","eventContainer","overflowY","::-webkit-scrollbar","::-webkit-scrollbar-track","colorNeutralBackground4","::-webkit-scrollbar-thumb","colorBrandStroke2Hover","::-webkit-scrollbar-thumb:hover","eventCardWeekView","colorNeutralForegroundOnBrand","popoverContent","borderTopWidth","borderTopStyle","cardMonthTitle","applyEventHouverColorClass","houverColor","colorBrandBackgroundHover","RenderEventToDayOfMonth","headerId","useId","events","onCardHoverChange","columnHeight","positioningRef","handleMouseEnter","eventTitle","handleMouseLeave","el","setTarget","renderCard","calEvent","colors","onMouseEnter","onMouseLeave","renderCardWithPopOver","Popover","withArrow","mouseLeaveDelay","closeOnScroll","closeOnIframeFocus","openOnHover","PopoverTrigger","PopoverSurface","aria-labelledby","eventStart","startOfDay","eventEnd","endOfDay","isWithinInterval","customRender","onRenderInMonthView","cloneElement","enableOnHouver","Day","currentMonth","onDayClick","currentDate","isEventHovered","setIsEventHovered","isCurrentDayAndMonth","isSameDay","renderCurrentDayLabel","Body2","handleCardHoverChange","isHovered","useWeekViewStyles","weekGrid","scrollbarWidth","scrollbarColor","&::-webkit-scrollbar","&::-webkit-scrollbar-track","&::-webkit-scrollbar-thumb","&::-webkit-scrollbar-thumb:hover","blankHeader","gridColumn","colorNeutralStroke3","timeColumn","gridRow","borderRight","timeCell","colorNeutralForeground3","fullDayRow","fullDayLabel","fullDayCell","fullDayEvent","dayHeaderCell","todayHeaderCell","pointerEvents","dayCell","FlexDirection","currentTimeIndicator","currentHalfHourCell","appyDynamicStyles","eventIndex","eventCount","rowHeight","defaultEventPopoverCardStrings","timeSeparator","hourSuffix","EventPopoverCard","cardRef","cardContent","Caption1Strong","EventRenderer","view","customOnRenderEvent","onRenderInDayView","onRenderInWeekView","getRandomValues","byteToHex","push","rnds8","Uint8Array","rng","crypto","bind","native","randomUUID","v4","buf","offset","rnds","random","arr","unsafeStringify","useCalendar","initializeEventsWithId","uuidv4","toLocalDate","dateString","getMonthCalendar","year","eventsWithId","daysInMonth","getDate","calendarEventsByDay","forEach","setDate","getWeekEvents","weekEvents","dayTimeSlots","from","_","fullDayEvents","isFullDay","currentSlot","slotIndex","setMinutes","timeSlots","useDayViewStyles","dayGrid","houveColor","defaultDayViewStrings","allDay","DayView","calendarRef","renderTimeColumn","hour","Body1Strong","renderDayHeaders","dayIndex","addDays","isTodayClass","isToday","weight","renderFullDayEvents","toISOString","weekDay","dayEvents","renderDayCells","timeSlot","ECalendarViews","defaultSelectCalendarViewStrings","week","SelectCalendarView","selectedView","setSelectedView","Month","bundleIcon","CalendarDayFilled","CalendarDayRegular","MonthView","CalendarMonthFilled","CalendarMonthRegular","WeekView","CalendarWorkWeekFilled","CalendarWorkWeekRegular","viewIcon","Week","getViewLabel","newView","SelectDay","selectedDate","setSelectedDate","selectedLabel","setSelectedLabel","initialDate","MonthIcon","onSelectDate","zonedDate","utcToZonedTime","Calendar","highlightSelectedMonth","showGoToToday","defaultCalendarMonthStrings","months","shortMonths","days","shortDays","goToToday","CalendarMonth","onDateChange","defaultSelectedDate","onDismiss","outline","_selectedDateRangeArray","dateRangeType","DateRangeType","isDayPickerVisible","allFocusable","SelectMonth","defaultSelectWeekStrings","selectWeekPlaceholder","formatWeekLabel","startMonth","endMonth","getWeekRange","getDay","SelectWeek","selectedWeek","setSelectedWeek","weekRange","weekLabel","firstDayOfWeek","defaultToolbarStrings","previous","next","Toolbar","onSelectedView","setCurrentDate","onWeekChange","onMonthChange","onDayChange","ArrowDown","ArrowDownFilled","ArrowDownRegular","ArrowUp","ArrowUpFilled","ArrowUpRegular","onSelectWeek","onSelectMonth","onSelectDay","RenderSelectView","RenderToday","Tooltip","content","relationship","CalendarTodayRegular","handleNavigation","newDate","setMonth","getMonth","defaultWeekViewStrings","setRowHeight","weekStart","startOfWeek","observer","firstRowCell","querySelector","defaultCalendarControlStrings","daysOfWeek","RenderMonthView","getCalendarDays","getEventsForDay","onDaySlotClick","RenderWeekView","RenderDayView","useDataGridStyles","loadingContainer","noItemsMessage","rowSelection","DataGridV2","forwardRef","enableSorting","enableResizing","selectionMode","onSelectionChange","defaultSelectedItems","defaultSortState","onSortChange","columnSizingOptions","resizableColumnsOptions","isLoadingData","isLoadingDataMessage","dataGridBodyClassName","dataGridBodyStyles","refreshData","enableInfiniteScroll","onLoadMore","infiniteScrollPageSize","hasNextPage","isLoadingMore","autoShowLastPage","virtualizedHeight","virtualizedItemSize","startIndex","onRowClick","tableColumns","colConfig","createTableColumn","columnId","column","renderHeaderCell","renderCell","TableCellLayout","media","onRender","compare","order","getItemIndex","selectedItems","setSelectedItems","Set","gridKey","setGridKey","rowSelectedIndex","setRowSelectedIndex","itemIndexMap","Map","listRef","prevCountRef","didInitScrollRef","skippedFirstItemsRendered","pendingLoadRef","useImperativeHandle","scrollToIndex","align","list","scrollToItem","resetGrid","lastLoadTriggerLength","getSelectedRow","setSelectedRow","grew","handleItemsRendered","visibleStopIndex","pageSize","prefetchWindow","hostStyle","overflowX","Spinner","VWDataGrid","sortable","sortState","newSel","idx","add","resizableColumns","focusMode","DataGridHeader","DataGridRow","DataGridHeaderCell","DataGridBody","itemSize","listProps","onItemsRendered","row","isRowMode","isSelected","colorSubtleBackgroundSelected","aria-selected","DataGridCell","displayName","dialog","dialogBody","RenderDialog","dialogTitle","dialogActions","Dialog","modalType","DialogSurface","DialogTitle","DialogBody","DialogContent","DialogActions","fluid","useRenderHeaderStyles","closeButton","right","divider","renderHeaderContent","renderHeaderHeader","renderHeaderFooter","renderHeaderBody","renderHeaderTitleContainer","renderHeaderTitle","renderHeaderDescription","dialogTitleAndDescriptionContainer","useShowErrorStyles","borderRadiusLarge","spacingVerticalXXL","boxShadow","shadow4","animation","@keyframes pulse","0%","transform","50%","100%","colorNeutralForeground1","colorNeutralForeground2","lineHeight","lineHeightBase400","useShowMessageStyles","iconClass","errorContainer","colorStatusDangerBackground1","errorIcon","ShowMessage","messageType","renderMessageIcon","setRenderMessageIcon","RenderError","colorStatusDangerForeground1","SUCCESS","CheckmarkCircle32Regular","primaryFill","colorStatusSuccessForeground1","INFO","Info32Regular","colorStatusWarningForeground1","ERROR","OverflowMenuItem","onSelectedItem","useIsOverflowItemVisible","MenuItem","overflowCount","isOverflowing","useOverflowMenu","MoreHorizontal","MoreHorizontalFilled","IdPrefixProvider","aria-label","role","useVideoStyles","videoPlayerContainer","reactPlayer","playButton","userSelect","&:hover","AdaptiveCardHostThemeType","createHostConfig","HostConfig","lineThickness","lineColor","default","foregroundColors","subtle","dark","colorNeutralForeground4","light","accent","colorBrandForeground2","attention","colorPaletteRedBackground3","good","colorPaletteGreenBackground3","warning","colorPaletteYellowBackground3","emphasis","inputs","requiredInputs","optionalInputs","errorMessage","actions","buttonSpacing","actionAlignment","getFluentUIThemeFromHostCapability","hostConfig","hostCapabilities","getCustomProperty","webLightTheme","initializeAdaptiveCardHost","themeType","currentTheme","hostConfigResult","SharePoint","Teams","TeamsDark","teamsDarkTheme","TeamsHighContrast","teamsHighContrastTheme","cssClassNamePrefix","setCustomProperty","classPrefix","nanoCss","create","put","WebkitUserSelect","MozUserSelect","MsUserSelect","colorNeutralStrokeAccessible","colorNeutralStrokeDisabled","colorNeutralBackgroundDisabled","colorNeutralForegroundDisabled","boxSizing","animationDuration","animationTimingFunction","animationName","applyAdaptiveCardHostStyles","defineProperty","exports","ActionRole","CarouselInteractionEvent","RefreshMode","TypeErrorType","ValidationEvent","ValidationPhase","InputLabelPosition","InputTextStyle","ActionIconPlacement","FillMode","Orientation","ShowCardActionMode","ActionAlignment","VerticalAlignment","HorizontalAlignment","TextColor","Spacing","FontType","TextWeight","InputStyle","SizeUnit","ImageSetPresentationStyle","ImageSize","Size","ActionMode","ActionStyle","ContainerStyle","Default","Emphasis","Accent","Good","Attention","Warning","Positive","Destructive","TextSize","ImageStyle","ContainerFitStatus","Primary","Secondary","UUID","SizeAndUnit","SpacingDefinition","StringWithSubstitutions","GlobalSettings","Enums","require$$0","useAdvancedTextBlockTruncation","useAdvancedCardBottomTruncation","useMarkdownInRadioButtonAndCheckbox","allowMarkForTextHighlighting","alwaysBleedSeparators","enableFullJsonRoundTrip","displayInputValidationErrors","allowPreProcessingPropertyValues","setTabIndexAtCardRoot","enableFallback","useWebkitLineClamp","allowMoreThanMaxActionsInOverflowMenu","removePaddingFromContainersWithBackgroundImage","resetInputsDirtyStateAfterActionExecution","applets","logEnabled","logLevel","maximumRetryAttempts","defaultTimeBetweenRetryAttempts","authPromptWidth","authPromptHeight","refresh","mode","Manual","timeBetweenAutomaticRefreshes","maximumConsecutiveAutomaticRefreshes","allowManualRefreshesAfterAutomaticRefreshes","ContentTypes","applicationJson","applicationXWwwFormUrlencoded","_isProcessed","getReferencedInputs","referencedInputs","_original","_i","inputs_1","input","exec","substituteInputValues","contentType","_processed","regEx","matches","keys","matchedInput","valueForReplace","JSON","stringify","getOriginal","PaddingDefinition","None","physicalSize","parse","requireUnitSpecifier","Weight","expectedMatchCount","Pixel","generate","d0","d1","d2","d3","lut","initialize","utils","addCancelSelectActionEventHandler","clearElementChildren","getScrollX","getFitStatus","truncate","truncateText","parseEnum","getEnumValueByName","parseBool","parseNumber","appendChild","generateUniqueId","isMobileOS","Shared","require$$1","enumType","keyAsNumber","truncateWorker","element","fullText","truncateAt","fits","scrollHeight","breakableIndices","html","results","findNextCharacter","findBreakableIndices","lo","hi","bestBreakIdx","mid","isInternetExplorer","documentMode","userAgent","navigator","node","child","parseString","defaultValue","enumValue","stringToCssColor","innerText","ttDeprecatedPolicy","trustedTypes","createPolicy","createHTML","currIdx","innerHTML","truncatedString","truncatedHTML","containerEnd","offsetTop","clientHeight","FullyInContainer","Overflowing","FullyOutOfContainer","pageXOffset","getScrollY","pageYOffset","firstChild","removeChild","onclick","preventDefault","cancelBubble","fn","timer","Strings","errors","unknownElementType","typeName","unknownActionType","elementTypeNotAllowed","actionTypeNotAllowed","invalidPropertyValue","propertyName","showCardMustHaveCard","invalidColumnWidth","invalidWidth","invalidCardVersion","defaultingToVersion","invalidVersionString","versionString","propertyValueNotSupported","supportedInVersion","versionUsed","propertyNotSupported","indexOutOfRange","elementCannotBeUsedAsInline","inlineAlreadyParented","interactivityNotAllowed","inputsMustHaveUniqueId","choiceSetMustHaveAtLeastOneChoice","choiceSetChoicesMustHaveTitleAndValue","propertyMustBeSet","actionHttpHeadersMustHaveNameAndValue","tooManyActions","maximumActions","tooLittleTimeDelay","minAutoplayDelay","tooManyCarouselPages","maxCarouselPages","invalidInitialPageIndex","initialPageIndex","columnAlreadyBelongsToAnotherSet","invalidCardType","unsupportedCardVersion","version","maxSupportedVersion","duplicateId","markdownProcessingNotEnabled","processMarkdownEventRemoved","elementAlreadyParented","actionAlreadyParented","elementTypeNotStandalone","invalidInputLabelWidth","magicCodeInputCard","tryAgain","pleaseLogin","enterMagicCode","pleaseEnterMagicCodeYouReceived","submit","cancel","somethingWentWrong","authenticationFailed","runtime","automaticRefreshPaused","clckToRestartAutomaticRefresh","refreshThisCard","hints","dontUseWeightedAndStrecthedColumnsInSameSet","defaults","inlineActionTitle","overflowButtonText","overflowButtonTooltip","emptyElementText","elementType","mediaPlayerAriaLabel","mediaPlayerPlayMedia","youTubeVideoPlayer","vimeoVideoPlayer","dailymotionVideoPlayer","carouselNavigationPreviousTooltip","carouselNavigationNextTooltip","__extends","extendStatics","d","setPrototypeOf","__proto__","p","__","serialization","SerializableObject","property","SerializableObjectSchema","SerializableObjectCollectionProperty","SerializableObjectProperty","EnumProperty","ValueSetProperty","PixelSizeProperty","NumProperty","BoolProperty","StringProperty","BaseSerializationContext","isVersionLessOrEqual","Versions","shared_1","Utils","require$$2","strings_1","require$$3","Version","major","minor","_isValid","_major","_minor","_label","_versionString","logParseEvent","InvalidPropertyValue","toJSON","compareTo","otherVersion","isValid","enumerable","configurable","getAllDeclaredVersions","ctor","properties","propertyValue","sort","v1","v2","v1_0","v1_1","v1_2","v1_3","v1_4","v1_5","v1_6","latest","targetVersion","_validationEvents","isTemplateString","startsWith","tryDeleteValue","tryDeleteDefaultValue","serializeValue","forceDeleteIfNullOrDefault","serializeString","serializeBool","serializeNumber","serializeEnum","serializeArray","propertyValue_1","serializedItem","clearEvents","logEvent","source","phase","Parse","getEventAt","SimpleSerializationContext","_super","PropertyDefinition","onGetInitialValue","isSerializationEnabled","sequentialNumber","_sequentialNumber","getInternalName","sender","treatEmptyAsUndefined","_this","parsedValue","StringArrayProperty","sourceValue","sourceValue_1","isValidValue","versionedValue","invalidValue","ToJSON","_values","objectType","nullable","serializedValue","hasAllDefaultValues","onItemAdded","sourceCollection","sourceCollection_1","sourceItem","CustomProperty","onParse","onToJSON","_properties","prop","properties_1","properties_2","splice","getItemAt","getCount","propertyKey","descriptor","getOwnPropertyDescriptor","getValue","setValue","_propertyBag","_rawProperties","maxVersion","defaultMaxVersion","getSchema","getDefaultSerializationContext","populateSchema","schema","sortedProperties","p1","p2","onRegisterCustomProperties","internalParse","UnsupportedProperty","resetDefaultValues","internalToJSON","serializedProperties","shouldSerialize","_context","effectiveContext","toJSONOriginalParam","hasDefaultValue","_schemaCache","getSchemaKey","HostCapabilities","serialization_1","_capabilities","name_1","jsonVersion","addCapability","removeCapability","hasCapability","areAllMet","capabilityName","defaultHostConfig","CarouselConfig","FontTypeDefinition","ContainerStyleSet","ContainerStyleDefinition","ColorSetDefinition","ActionsConfig","ShowCardActionConfig","FactTitleDefinition","FactTextDefinition","InputConfig","InputLabelConfig","RequiredInputLabelTextDefinition","TextBlockConfig","TextStyleDefinition","BaseTextDefinition","TableConfig","MediaConfig","ImageSetConfig","AdaptiveCardConfig","TextColorDefinition","ColorDefinition","host_capabilities_1","parseHostConfigEnum","targetEnum","defaultColor","subtleColor","highlightColors","allowCustomStyle","imageSize","maxImageHeight","allowInlinePlayback","defaultPoster","cellSpacing","isSubtle","getDefaultWeight","fontType","TextStyleSet","heading","columnHeader","getStyleByName","headingLevel","suffix","suffixColor","inputSpacing","debounceTimeInMilliSeconds","allowRevealOnHoverStyle","Bolder","FactSetConfig","spacing","actionMode","Inline","inlineTopMargin","maxActions","showCard","preExpandSingleShowCardAction","actionsOrientation","Horizontal","Left","iconPlacement","LeftOfTitle","allowTitleToWrap","iconSize","sizeAndUnit","parseSingleColor","highlightBackgroundColor","highlightForegroundColor","borderColor","BuiltInContainerStyleDefinition","_allStyles","customStyleArray","customStyleArray_1","customStyle","styleName","isBuiltIn","customStyles","fontSizes","small","large","extraLarge","fontWeights","lighter","bolder","monospace","FontTypeSet","getStyleDefinition","Monospace","choiceSetInputValueSeparator","supportsInteractivity","imageSizes","adaptiveCard","imageSet","factSet","table","textStyles","textBlock","carousel","alwaysAllowBleed","_legacyFontType","fontTypes","lineHeights","getFontTypeDefinition","getEffectiveSpacing","Padding","paddingDefinitionToSpacingDefinition","paddingDefinition","makeCssClassNames","classNames","classNames_1","makeCssClassName","join","minAutoplayDuration","textFormatters","formatText","AbstractTextFormatter","regularExpression","_regularExpression","lang","internalFormat","DateFormatter","toLocaleDateString","TimeFormatter","toLocaleTimeString","minute","formatters_1","__decorate","decorators","desc","Reflect","decorate","cardObject","CardObject","ValidationResults","require$$4","allIds","validationEvents","addFailure","Validation","_shouldFallback","getJsonTypeName","requiresProperty","_renderedElement","preProcessPropertyValue","currentObject","onPreProcessPropertyValue","parent","setParent","_parent","setShouldFallback","shouldFallback","requires","getRootObject","internalValidateProperties","DuplicateId","validateProperties","findDOMNodeOwner","releaseDOMResources","typeNameProperty","idProperty","registry","GlobalRegistry","CardObjectRegistry","_items","findByName","copyTo","keys_1","typeRegistration","register","schemaVersion","registrationInfo","unregister","createInstance","getItemCount","populateWithDefaultElements","defaultElements","populateWithDefaultActions","defaultActions","_elements","_actions","reset","constants","Constants","tab","enter","escape","space","up","down","delete","menuItem","host_config_1","constants_1","_isEnabled","_value","click","isEnabled","updateCssClasses","_element","effectiveHostConfig","_hostConfig","classList","render","createElement","setAttribute","onmouseup","onkeydown","collection","Collection","onItemRemoved","popupControl","PopupControl","_isOpen","keyDown","closePopup","_rootElementBounds","tabIndex","renderContent","focus","_popupElement","firstElementChild","popup","rootElement","_c","_d","_f","_overlayElement","documentElement","scrollWidth","onfocus","rootElementBounds","rootElementLabel","getAttribute","top_1","popupElementBounds","availableSpaceBelow","availableSpaceAbove","availableSpaceRight","availableSpaceLeft","actualPopupHeight","actualPopupWidth","wasCancelled","popupMenu","PopupMenu","__createBinding","__exportStar","collection_1","_renderedItems","_selectedIndex","renderedItem","selectedIndex","selectedItemIndex","k2","__esModule","writable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","done","then","__generator","y","t","sent","trys","ops","verb","throw","return","v","op","pop","cardElements","BackgroundImage","StylableCardElementContainer","ContainerStyleProperty","ActionSet","ShowCardAction","HttpHeader","ToggleVisibilityAction","DataQuery","ExecuteAction","UniversalAction","SubmitAction","Action","TimeInput","TimeProperty","DateInput","FilteredChoiceSet","ChoiceSetInput","Choice","ToggleInput","TextInput","Input","YouTubePlayer","DailymotionPlayer","VimeoPlayer","IFrameMediaMediaPlayer","HTML5MediaPlayer","MediaPlayer","CaptionSource","ContentSource","ImageSet","CardElementContainer","FactSet","Fact","RichTextBlock","TextRun","BaseTextBlock","ActionProperty","CardElement","renderSeparation","SerializationContext","Authentication","TokenExchangeResource","AuthCardButton","RefreshDefinition","ContainerWithActions","ColumnSet","Column","Container","TextFormatters","card_object_1","require$$5","require$$6","registry_1","require$$7","require$$8","controls_1","require$$9","clearElement","trustedHtml","emptyHTML","separationDefinition","orientation","_truncatedDueToOverflow","langProperty","isVisibleProperty","undoOverflowTruncation","isVisible","updateRenderedElementVisibility","raiseElementVisibilityChangedEvent","internalRenderSeparator","renderedSeparator","separatorOrientation","parentContainer","getParentContainer","getEffectivePadding","parentPhysicalPadding","displayMode","isDesignMode","_defaultRenderedElementDisplayMode","removeProperty","_separatorElement","isFirstElement","hideElementDueToOverflow","visibility","showElementHiddenDueToOverflow","handleOverflow","isHiddenDueToOverflow","handled","truncateOverflow","resetOverflow","sizeChanged","createPlaceholderElement","styleDefinition","getEffectiveStyleDefinition","foregroundCssColor","adjustRenderedElementSize","renderedElement","updateInputsVisualState","hover","allInputs","getAllInputs","inputEventType","InputEventType","MouseEnterOnCard","MouseLeaveOnCard","updateVisualState","isDisplayed","overrideInternalRender","internalRender","applyPadding","separatorElement","isBleeding","getImmediateSurroundingPadding","physicalPadding","_maxHeight","getDefaultPadding","getHasBackground","ignoreBackgroundImages","getHasBorder","getPadding","_padding","setPadding","elementRegistry","asString","getEffectiveStyle","defaultStyle","getEffectiveTextStyleDefinition","getForbiddenActionTypes","processTop","processRight","processBottom","processLeft","doProcessTop","isTopElement","doProcessRight","isRightMostElement","doProcessBottom","isBottomElement","doProcessLeft","isLeftMostElement","effectivePadding","getActionCount","getActionAt","indexOfAction","removeItem","customCssSelector","updateLayout","_processChildren","updateActionsEnabledState","allActions_1","getRootElement","getAllActions","updateEnabledState","_cardElement","AdaptiveCard","designMode","isLastElement","isAtTheVeryLeft","isAtTheVeryRight","isAtTheVeryTop","isAtTheVeryBottom","isBleedingAtTop","isBleedingAtBottom","currentElement","processActions","getResourceInformation","getElementById","getActionById","_id","getElementByIdFromAction","getEffectiveHorizontalAlignment","horizontalAlignment","separatorProperty","heightProperty","horizontalAlignmentProperty","spacingProperty","forbiddenActionTypes","parseAction","ariaHidden","selectActionProperty","textProperty","setText","getFontSize","effectiveSize","getColorDefinition","colorSet","Dark","Light","init","textDefinition","applyStylesTo","targetElement","effectiveFontType","colorDefinition","effectiveColor","targetColor","effectiveIsSubtle","effectiveWeight","Lighter","selectAction","sizeProperty","weightProperty","colorProperty","isSubtleProperty","fontTypeProperty","TextBlock","_treatAsPlainText","useMarkdown","restoreOriginalContent","maxLines","_computedLineHeight","originalHtml","_ttRoundtripPolicy","_originalInnerHtml","truncateIfSupported","isTextOnly","tagName","_processedText","preProcessedText","forElementId","labelElement","htmlFor","isEffectivelyEnabled","execute","setupElementForAccessibility","formattedText","markdownProcessingResult","applyMarkdown","didProcess","outputHtml","markStyle","effectiveStyle","processedHtml","_ttMarkdownPolicy","HTMLElement","lastElementChild","anchors","getElementsByTagName","_loop_1","raiseAnchorClickedEvent","oncontextmenu","wordWrap","webkitBoxOrient","webkitLineClamp","Right","processChildren","wrapProperty","maxLinesProperty","styleProperty","italic","strikethrough","highlight","underline","href","getHref","fontStyle","textDecoration","italicProperty","strikethroughProperty","highlightProperty","underlineProperty","_inlines","internalAddInline","inline","forceAdd","isInline","jsonInline","textRun","parseElement","jsonInlines","renderedInlines","renderedInline","getInlineCount","getInlineAt","addInline","removeInline","titleProperty","valueProperty","facts","borderWidth","borderSpacing","borderStyle","borderCollapse","trElement","tdElement","factsProperty","ImageDimensionProperty","internalName","fallbackProperty","Image","Auto","applySize","pixelWidth","pixelHeight","Stretch","imageElement","renderedImageElement","onload","raiseImageLoadedEvent","onerror","errorElement","onkeypress","Person","backgroundPosition","backgroundRepeat","setImageSource","altTextProperty","alt","mimeType","imageForceLoader","ImageForceLoader","forceLoad","configureImage","urlProperty","resetImage","backgroundColorProperty","pixelWidthProperty","pixelHeightProperty","shouldForceLoadProperty","doForceLoad","uniqueHash","now","urlWithForceLoadOption","allowVerticalOverflow","isSelectable","isElementAllowed","isInteractive","forbiddenChildElements","InteractivityNotAllowed","_selectAction","_images","presentationStyle","pixelOffset","renderedImage","Stacked","applyStackedPresentationStyle","dimension","StackedImageConfigurator","parseNumericPixelDimension","bgColor","getEffectiveBackgroundColor","configureImagesArrayAsStackedLayout","getFirstVisibleRenderedItem","getLastVisibleRenderedItem","itemIndex","addImage","cardElement","imagesProperty","imageSizeProperty","imagePresentationStyle","sign45","maxImageCounts","normalizationConstant","moveImageRight","moveImageUp","moveImageDown","makeImageRound","applyBorder","configureImageForBottomLeft","configureImageForTopRight","elements","mimeTypeProperty","kind","labelProperty","MediaSource","play","_posterUrl","owner","_selectedSources","_captionSources","processSources","_selectedMediaType","sources","mimeComponents","supportedMediaTypes","captionSources","canPlay","fetchVideoDetails","_mediaElement","altText","autoplay","controls","muted","preload","renderedSource","captionSource","renderedCaptionSource","CustomMediaPlayer","iFrameTitle","_videoId","iFrame","getEmbedVideoUrl","frameBorder","allow","allowFullscreen","oEmbedUrl","response","json","fetch","ok","posterUrl","videoId","apiUrl","_startTimeIndex","Media","createMediaPlayer","customMediaPlayers","provider","urlPatterns","handlePlayButtonInvoke","mediaPlayerElement","_mediaPlayer","onPlay","displayPoster","posterRootElement_1","posterImageElement_1","playButtonOuterElement","playButtonInnerElement","playButtonContainer","poster","parentNode","playButtonArrowWidth","playButtonArrowHeight","borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopColor","borderRightColor","borderBottomColor","mediaSource","selectedMediaType","sourcesProperty","captionSourcesProperty","posterProperty","inputStyle","getAllLabelIds","labelIds","labelledBy","_renderedLabelElement","_renderedErrorMessageElement","updateInputControlAriaLabelledBy","_renderedInputControlElement","removeAttribute","_inputControlContainerElement","_outerContainerElement","labelPosition","renderedInputControlId","labelRichTextBlock","labelInline","isRequiredCueInline","alignSelf","isNullable","labelWidth","labelWidthInPercent","labelWidthInPixel","defaultLabelWidth","InitialRender","onblur","ev","FocusLeave","resetDirtyState","valueChanged","onInputValueChangedHandler","resetValidationFailureCue","onValueChanged","onInputValueChanged","renderedInputControlElement","showValidationErrorMessage","errorMessageTextBlock","shouldHideInputAdornersForRevealOnHover","eventType","isInputInFocus","activeElement","inputHoverClassName","isMouseOverCard","RevealOnHover","isDirty","_oldValue","PropertyCantBeNull","RequiredInputsShouldHaveLabel","RequiredInputsShouldHaveErrorMessage","validateValue","isSet","isRequiredProperty","errorMessageProperty","inputStyleProperty","labelWidthProperty","invalidLabelWidth","labelPositionProperty","Above","isMultiline","setupInput","placeholder","maxLength","oninput","ctrlKey","inlineAction","Password","renderedInputControl","button_1","iconUrl","icon_1","textContent","inputControlContainerElement","maxLengthProperty","isMultilineProperty","placeholderProperty","Tel","Url","Email","inlineActionProperty","regexProperty","valueOn","valueOff","_checkboxInputElement","joinedLabelIds","_checkboxInputLabelElement","checked","_oldCheckboxValue","onchange","spacerElement","valueOnProperty","valueOffProperty","ChoiceSetInputDataQuery","typeProperty","datasetProperty","countProperty","skipProperty","isMultiSelect","choices","getUniqueCategoryName","uniqueCategoryName","_uniqueCategoryCounter","isDynamicTypeahead","choicesData","dataset","getFilterForDynamicSearch","_filteredChoiceSet","textInput","renderChoices","fetchedChoices","processResponse","showLoadingIndicator","removeLoadingIndicator","showErrorIndicator","createPlaceholderOptionWhenValueDoesNotExist","placeholderOption","selected","hidden","internalApplyAriaCurrent","_selectElement","renderCompoundInput","cssClassName","defaultValues","_toggleInputs","_labels","choice","_uniqueCategoryName","compoundInput","filteredChoiceSet_1","_textInput","onInputChangeEventHandler","processStaticChoices","inputContainer","dataList","append","isCompact","CollectionCantBeEmpty","dynamicChoices","toggleInput","choicesProperty","choicesDataProperty","isMultiSelectProperty","choiceSetId","_choiceSetId","_choices","_dynamicChoices","_visibleChoiceCount","choiceSetContainer","focusChoice","_dropdown","nextSibling","createChoice","filter","onmouseover","textLength","setSelectionRange","filterChoices","isDynamic","choices_1","matchIndex","matchedText","choiceContainer","getStatusIndicator","_errorIndicator","errorIndicator","_loadingIndicator","loadingIndicator","resetDropdown","hasChildNodes","NumberInput","_numberInputElement","valueAsNumber","minProperty","maxProperty","_dateInputElement","hideDatePicker","updateInputAdornersVisibility","valueAsDate","minDate","maxDate","convertTimeStringToDate","timeString","_timeInputElement","hideTimePicker","_state","_isFocusable","renderButtonContent","titleElement","AboveTitle","iconElement","parentContainerStyle","isFocusable","internalGetReferencedInputs","internalPrepareForExecution","_inputs","internalValidateInputs","actionRegistry","raiseExecuteActionEvent","onExecuteActionHandler","onExecute","onExecuteAction","prepareForExecution","internalAfterExecute","rootObject","getAriaRole","ariaRole","getAriaRoleFromEnum","Link","Tab","promoteTooltipToLabel","HTMLButtonElement","tooltip","buttonElement","_actionCollection","actionExecuted","invalidInputs","removeAction","validateInputs","iconUrlProperty","modeProperty","tooltipProperty","isEnabledProperty","roleProperty","SubmitActionBase","disabledUnlessAssociatedInputsChange","_isPrepared","_areReferencedInputsDirty","associatedInputs","_originalData","_processedData","resetReferencedInputsDirtyState","dataProperty","associatedInputsProperty","disabledUnlessAssociatedInputsChangeProperty","JsonTypeName","SubmitAction_1","verbProperty","ExecuteAction_1","filterProperty","OpenUrlAction","OpenUrlAction_1","targetElements","updateAriaControlsAttribute","elementIds","elementId","addTargetElement","removeTargetElement","targetElementsProperty","ToggleVisibilityAction_1","StringWithSubstitutionProperty","nameProperty","HttpAction","_ignoreInputValidation","_url","headers","_body","bodyProperty","methodProperty","headersProperty","ignoreInputValidationProperty","InlineAdaptiveCard","state","jsonCard","ShowCardAction_1","OverflowAction","getActions","onDisplayOverflowActionMenuHandler","onDisplayOverflowActionMenu","contextMenu_1","_loop_2","this_1","actionToExecute","ActionCollection","_renderedActions","_owner","isActionAllowed","forbiddenTypes","forbiddenTypes_1","forbiddenType","refreshContainer","_actionCardContainer","_actionCard","renderedActionCount","layoutChanged","showActionCard","suppressStyle","raiseEvent","renderedCard","_expandedAction","raiseInlineCardExpandedEvent","collapseExpandedAction","previouslyExpandedAction","expandShowCardAction","afterSelectedAction","renderedAction","source_1","jsonAction","forbiddenActions","getForbiddenActionNames","addAction","TooManyActions","ActionTypeNotAllowed","buttonStrip","allowedActions","primaryActions_1","secondaryActions_1","overflowPrimaryActions","shouldRenderOverflowActionButton","_overflowAction","isRootAction","isAtRootLevelActions","onRenderOverflowActionsHandler","onRenderOverflowActions","raiseRenderOverflowActionsEvent","spacer","buttonStripContainer","expandedAction","actionIndex","orientationProperty","applyBackground","surroundingPadding","currentElementHasBackgroundImage","backgroundImage","hasExplicitStyle","explicitStyle","ContainerBase","_bleed","minPixelHeight","getHasExpandedAction","getBleed","setBleed","bleedProperty","minHeightProperty","fillMode","Repeat","RepeatHorizontally","RepeatVertically","Cover","backgroundSize","backgroundPositionX","verticalAlignment","Top","backgroundPositionY","Bottom","fillModeProperty","verticalAlignmentProperty","backgroundImageProperty","insertItemAt","forceInsert","isStandalone","getItemsCollectionPropertyName","applyRTL","rtl","dir","getEffectiveVerticalContentAlignment","placeholderElement","boundary_1","handleElement_1","elt","containerMaxHeight","jsonItems","jsonItems_1","collectionPropertyName","verticalContentAlignment","isRtl","firstRenderedItem","lastRenderedItem","addItem","insertItemBefore","insertBefore","insertItemAfter","insertAfter","verticalContentAlignmentProperty","rtlProperty","_computedWeight","Vertical","widthProperty","_columns","createColumnInstance","parseCardObject","_errorType","ElementTypeNotAllowed","_renderedColumns","totalWeight","computedWeight","renderedColumn","jsonColumns","jsonColumns_1","getColumnAt","weightedColumns","stretchedColumns","Hint","addColumn","onImageLoadedHandler","onImageLoaded","onAnchorClickedHandler","onAnchorClicked","isExpanded","onInlineCardExpandedHandler","onInlineCardExpanded","shouldUpdateLayout","onElementVisibilityChangedHandler","onElementVisibilityChanged","hide","readOnly","parseActions","renderedActions","renderIfEmpty","RefreshActionProperty","actionProperty","userIdsProperty","imageProperty","uriProperty","providerIdProperty","connectionNameProperty","buttonsProperty","tokenExchangeResourceProperty","refreshProperty","onProcessMarkdown","markdownit","markdownIt","_haveWarnedAboutNoMarkdownProcessing","isVersionSupported","bypassVersionCheck","_fallbackCard","fallbackElement","versionProperty","MissingCardType","UnsupportedCardVersion","speak","onmouseenter","onmouseleave","schemaUrl","$schemaProperty","fallbackTextProperty","speakProperty","authenticationProperty","_forbiddenTypes","internalParseCardObject","allowFallback","createInstanceCallback","oldForbiddenTypes_1","has","ForbiddenType","tryToFallback","UnknownType","fallback","cardObjectParsed","onParseAction","onParseElement","forbiddenTypeNames","UnknownElementType","UnknownActionType","_elementRegistry","setElementRegistry","_actionRegistry","setActionRegistry","ActionButton","control","actionClickHandler","flexShrink","toLocaleLowerCase","trim","createActionDiv","baseCssClass","div","unmountComponentAtNode","FluentUIExecuteAction","[object Object]","super","__publicField","stopPropagation","actionsConfig","FluentUIOpenUrlAction","FluentUIShowCardAction","_baseCssClass","FluentUISubmitAction","FluentUIToggleVisibilityAction","renderReact","_FluentUIChoiceSetInput","selectedValues","removeItemFromArray","x","defaultSelectedValues","ComboBoxControl","setSelected","Combobox","multiselect","selectedOptions","autoComplete","onOptionSelect","newVal","optionValue","refControl","Option","RadioGroup","onChange","updateSelectedValues","Radio","defaultChecked","Checkbox","_ev","__decorateClass","FluentUIChoiceSetInput","_FluentUIDateInput","DatePicker","convertStringToDate","FluentUIDateInput","_FluentUINumberInput","SpinButton","FluentUINumberInput","IconButton","ariaLabel","iconProps","inlineButtonRootStyle","_FluentUITextInput","AdaptiveInput","inlineIconActionButton","buildTextOnlyInlineActionActionButton","inlineActionClickHandler","Textarea","resize","onKeyDown","handleKeyDown","FluentInput","inputElement","inputControl","buildInlineActionButton","FluentUITextInput","TimePicker","defaultTime","minTime","maxTime","onTimeChange","setTime","timePickerValue","setTimePickerValue","formatDateToTimeString","FluentUITimePicker","expandIcon","ClockRegular","freeform","newTime","selectedTime","selectedTimeText","onInput","_FluentUITimeInput","_time","FluentUITimeInput","_FluentUIToggleInput","Switch","_sender","FluentUIToggleInput","Expression","getTheme","StyleSheet","_insertTag","tag","before","tags","insertionPoint","prepend","isSpeedy","speedy","ctr","nonce","_proto","hydrate","nodes","insert","rule","createTextNode","createStyleElement","sheet","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","flush","_tag$parentNode","MS","MOZ","WEBKIT","abs","fromCharCode","assign","replacement","indexof","search","charat","substr","begin","strlen","sizeof","line","character","characters","copy","peek","caret","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","identifier","compile","rules","rulesets","pseudo","points","declarations","atrule","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","j","z","serialize","output","memoize","cache","arg","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","WeakMap","compat","isImplicitRule","parentRules","removeLabel","prefix","defaultStylisPlugins","combine","createCache","ssrStyles","querySelectorAll","head","_insert","stylisPlugins","inserted","nodesToHydrate","attrib","currentSheet","finalizingPlugins","serializer","selector","serialized","shouldCache","registered","reactIsModule","for","q","w","u","$$typeof","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextProvider","Element","ForwardRef","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","$$typeofType","ContextConsumer","Lazy","hasWarnedAboutDeprecatedIsAsyncMode","reactIs_development","isPortal","reactIs","TYPE_STATICS","defaultProps","propTypes","registerStyles","isStringTag","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexGrow","flexPositive","flexNegative","flexOrder","gridRowEnd","gridRowSpan","gridRowStart","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","opacity","orphans","scale","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","processStyleValue","unitless","handleInterpolation","mergedProps","interpolation","componentSelector","__emotion_styles","keyframes","anim","serializedStyles","interpolated","createStringFromObject","previousCursor","labelPattern","serializeStyles","stringMode","raw","lastIndex","identifierName","len","hashString","useInsertionEffectAlwaysWithSyncFallback","EmotionCacheContext","Provider","_jsx","JSX","withEmotionCache","ThemeContext","hasOwn","typePropName","createEmotionProps","newProps","_key","Insertion","insertStyles","Emotion$1","cssProp","WrappedComponent","registeredStyles","rawClassName","getRegisteredStyles","_key2","ReactJSXRuntime","Emotion","argsLength","createElementArgArray","_len","containerStyle","searchIconStyle","aiBadgeStyle","borderRadiusSmall","colorTransparentStroke","shadow8","aiBadgeLargeStyle","aiBadgeSmallStyle","AISearchIcon","aiIndicatorColor","dynamicBadgeStyle","searchIconDynamicStyle","SearchRegular","useExampleStyles","section","iconRow","buttonExample","codeBlock","hoverIcon","imageSrc","enabled","defaultIconColor","defaultHoverColor","defaultFontFamily","setIsHovered","currentIcon","iconStyle","buttonStyle","imageStyle","objectFit","ChatInput","onSend","isRunning","onAbort","spacingVerticalXS",":focus-within::after","colorBrandStroke1","textarea","::placeholder","iconContainer","buttonSend","handleSend","trimmed","shiftKey","RecordStopRegular","RecordStopFilled","ArrowCircleUp32Regular","ArrowCircleUp32Filled","useMensionsStyles","listContainer","spacingVerticalXXS","spacingVerticalS","suggestionsHeader","noResults","Mensions","providedContext","inputValue","parentRef","mentionChars","onUserSelect","maxSuggestions","userFilter","contextFromProvider","graphClient","webUrl","pageContext","web","absoluteUrl","showMenu","setShowMenu","menuPosition","setMenuPosition","suggestions","setSuggestions","currentMentionChar","setCurrentMentionChar","currentQuery","setCurrentQuery","cacheRef","fetchUsers","cacheKey","api","processedUsers","user","userPrincipalName","mail","avatar","debouncedFetch","mentionChar","users","filteredUsers","localeCompare","calculateMenuPosition","mentionPos","parentElement","caretPos","getCaretCoordinates","textareaRect","parentRect","foundMention","lastMentionPos","lastIndexOf","searchText","handleUserSelect","RenderList","onMouseDown","Persona","secondaryText","useChatInputWithMensionsStyles","::after","borderRadiusMedium","sugestionsHeader","ChatInputWithMensions","setInputValue","textareaRef","updatedText","LoadingDots","brandColor","blinkAnimation","dot","dot1","dot2","dot3","useLoadingDotsStyle","chatReducer","messages","welcomeMessage","isLoading","inputText","messagesCopy","senderName","getTimestamp","currentUICultureName","LivePersona","template","userCache","keysToDelete","expiresAt","UserCard","userId","avatarSize","showHoverCard","textPosition","avatarOnly","tertiaryText","quaternaryText","&[data-fui-focus-within]:focus-within::after","personContainer","textStyle","textOverlay","spinnerContainer","logError","setUser","loading","setLoading","getUserById","getUserPresence","fetchUser","cached","fetchedUser","presence","availability","activity","fetchedPresence","userData","timestamp","checkUserPresence","updatedUser","DELAY_TO_CHECK_PRESENCE","refetch","useUserProfile","getPresenceInfo","status","outOfOffice","upn","Avatar","userPhoto","badge","primaryText","showSecondaryText","jobTitle","showTertiaryText","showQuaternaryText","textAlignment","prevProps","nextProps","defaultMessages","BusinessReportIcon","viewBox","fill","xmlns","NoDashboards","SelectZoom","maxCols","maxRows","Settings","Settings20Filled","Settings20Regular","gridContainer","cell","hoveredCell","colorNeutralBackground1Hover","selectedCell","colorNeutralBackground1Selected","menuPopover","bottomText","zoomContainer","setValues","hovered","setHovered","handleCellClick","col","newValues","spanCols","spanRows","handleCellHover","popoverWidth","cells","renderGridCells","instrutions","onResponse","openAIConfig","dispatch","useReducer","chatHistory","chatList","chatAIAssistantRoot","chatListRef","sendRequest","cancelRequest","streamError","setData","setIsLoading","setError","abortControllerRef","endpoint","payload","onChunk","controller","AbortController","method","Content-Type","signal","reader","getReader","decoder","TextDecoder","accumulatedData","doneReading","read","chunk","decode","stream","abort","useStreamRequest","forceScrollToBottom","scrollTop","timeStamp","cultureInfo","userMessage","currentInput","assistantMessage","currentResponse","instructions","history","handleInputChange","Chat","ChatMyMessage","author","ChatMessage","decoration","systemPromptTemplate","azureOpenAIConfig","onSearchQueryGenerated","onSearchStart","onSearchError","generateText","isConfigured","prompt","userInput","searchInput","setSearchInput","searchBoxRef","searchBoxStyles","iconWrapperStyles","handleAISearch","configError","handleSearchChange","_event","handleDismiss","blur","handleKeyPress","catch","SearchBox","contentBefore","dismiss","colorPaletteBlueForeground2","colorPaletteGreenForeground2","renderElementRef","adaptiveCardInstanceRef","serializationContextInstanceRef","fluentUIThemeInstanceRef","markdown","invokeAction","onInvokeAction","actionResult","openUrlAction","submitAction","executeAction","inputFluentUITheme","inputThemeType","currentHostConfig","onUpdateHostCapabilities","initializeIcons","registerFluentUIActions","onSetCustomElements","onSetCustomActions","currentSerializationContext","lastChild","currentRenderElement","currentAdaptiveCard","Template","evaluationContext","dataObject","appContext","aadInfo","instanceUrl","tenantId","currentCultureName","isRightToLeft","userInfo","email","isAnonymousGuestUser","isExternalGuestUser","loginName","preferUserTimeZone","spListInfo","serverRelativeUrl","spListItemInfo","listItem","spSiteInfo","site","cdnPrefix","classification","correlationId","isNoScriptEnabled","recycleBinItemCount","serverRequestPath","sitePagesEnabled","spWebInfo","_g","isAppWeb","language","languageName","logoUrl","templateName","$root","@context","injectContextProperty","cardPayload","expand","outerHTML","cardRenderError","onError","cards","maxSpanRows","enableDragAndDrop","enableCache","cacheKeyPrefix","onCardsReorder","onCardResize","dashboardContainer","gridAutoFlow","chartContainer","cardDescription","cardWrapper","transition","shadow16","&:active","layoutCacheKey","orderCacheKey","CACHE_EXPIRATION_DAYS","getOrderCachedData","setOrderCachedData","getOrderData","setOrderData","cardContainers","setCardContainers","sizes","setSizes","dragItem","dragOverItem","containerRef","orderedCards","initialSizes","cachedSizes","cachedOrder","all","cardMap","validCachedOrder","missingCards","cachedSize","defaultSpan","fallbackSizes","initializeData","saveSizesToCache","cardOrder","saveOrderToCache","showZoom","minCardWidth","gridGap","containerPadding","maxZoom","handleSort","moved","handleZoomSelect","span","newSizes","defaultColsAndRowSpanBasedOnNumberColumns","reduce","acc","renderCards","cardContainer","shouldShowZoom","headerAction","IsOpen","draggable","onDragStart","onDragEnter","onDragOver","onDragEnd","cardTitle","ratio","aspectStyle","currentIndex","visibleItems","setVisibleItems","setOverflowItems","updateVisibleItems","currentWidth","visible","handleResize","aria-current","ChevronRightRegular","onViewChange","defaultView","rowHeightRef","firstDayOfMonth","startOfMonth","relativeDay","handleMonthChange","handleDayChange","handleWeekChange","handleViewChange","getFullYear","flatMap","slot","requestAnimationFrame","firstDataColumnCell","RenderContent","calendarControl","weekView","dayView","toolbar","emblaRef","useEmblaCarousel","clientWidth","Subtitle2","ChevronLeftRegular","handleItemClick","lastAtPos","centerContent","selectedItemId","renderControl","text1LineStyle","button","onItemSelect","itemId","Overflow","OverflowItem","priority","rowSelectionStyles","RenderDataGridBody","rowId","hasData","RenderGridContent","DataGridFUI","as","newSelectedItems","selectedObjects","autoFitColumns","renderItem","validate","hint","selectedValue","setSelectedValue","validationState","validationMessage","getValidationIcon","ErrorCircle12Filled","Warning12Filled","CheckmarkCircle12Filled","validationMessageIcon","Dropdown","validationError","checkIcon","keyExtractor","layoutConfig","useDebounce","gridTemplateAreas","Children","childElement","gridArea","area","siteId","listId","currentUserEmail","getItemActivities","activities","actor","times","useSharePointActivities","actionMessages","access","OpenRegular","CommentRegular","AddRegular","DeleteRegular","edit","EditRegular","mention","MentionRegular","move","ArrowMoveRegular","rename","_h","RenameRegular","restore","ArrowSyncRegular","share","_j","PeopleRegular","_k","HistoryRegular","activityMessage","setActivityMessage","lastActivityRef","motionRef","playbackRate","isActorCurrentUser","getActivityMessage","actionType","actionDetail","setPlaybackRate","isCancelled","fetchActivityWithBackoff","retryDelay","OrganizedActivity","latestActivity","retryAfter","Fade","imperativeRef","textareaValue","setTextareaValue","inputRef","AC","headerActions","footerActions","classNameHeader","classNameBody","classNameFooter","Drawer","DrawerHeader","DrawerHeaderTitle","DrawerBody","DrawerFooter","showCloseButton","Dismiss24Regular","defaultKey","baseOptions","setOptions","opt","handleSelect","updatedOptions","Label","dialogUrl","setDialogUrl","iframeRef","iFrameHeight","setIFrameHeight","siteUrl","closeDialog","handleIframeMessage","origin","clientId","policyTip","folderColor","clickTime","fullScreenMode","encodeName","onLoad","ErrorCircleRegular","Title3","grow","disableShrink","shrink","maxVisible","overflowText","stackLayout","& > *:not(:first-child)","spreadLayout","& > *","userCardWrapper","overflowButton","popover","popoverUserList","popoverUserCard","visibleUsers","overflowUsers","displayOverflowText","numberOfLines","typographyStyle","loop","playing","setPlaying","classes","ReactPlayer","onPause","cloneDeep","clonedObj","every","path","iteratee","lastKey","remaining","seen","aspectRatioStyles","_spCultureName","formatUtcDate","utcdate","diffDays","differenceInDays","formatTime","dateInput","parts","second","hour12","formatToParts","part","getUser","getCurrentUser","searchUsers","getUserPhoto","photoBlob","createObjectURL","base64FromSVGUrl","svg","btoa","getImageBase64","pictureUrl","customWidth","customHeight","crossOrigin","tempCanvas","base64Str","getContext","drawImage","toDataURL","isBase64Image","isEmpty","getBase64ImageFromDOMImg","imgElementId","imgElement","canvas","ctx","convertToUserTimeZone","targetTimeZone","toZonedTime","convertFromUserTimeZone","sourceTimeZone","fromZonedTime","formatInTimeZone","formatStr","getUserTimeZone"],"mappings":"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","x_google_ignoreList":[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,107,108,109,110,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187]}
|